# HG changeset patch # User Faisal Memon # Date 1282760229 -3600 # Node ID ccf5191a9db1d55f2f2dc34818bd5d09889f889b # Parent e8ccf068ac7f2d504268997560b51eb54cb43d17 The guestvideohw.ldd now compiles ok. The graphics changeset e40433e31c87 is needed, or later. Only a stub has been put in for the dynamic framebuffer base address. This needs to be properly ported from Jani's earlier work on platsim. diff -r e8ccf068ac7f -r ccf5191a9db1 guestrendering/guestvideodriver/ldd/group/virtualvideohwdevice.mmp --- a/guestrendering/guestvideodriver/ldd/group/virtualvideohwdevice.mmp Wed Aug 25 17:57:53 2010 +0100 +++ b/guestrendering/guestvideodriver/ldd/group/virtualvideohwdevice.mmp Wed Aug 25 19:17:09 2010 +0100 @@ -17,11 +17,13 @@ TARGET guestvideohw.ldd TARGETTYPE ldd + UID 0 0x20026A2E //- 0x20026A32 LINKAS guestvideohw.ldd VENDORID 0x70000001 CAPABILITY all +DEFFILE /epoc32/include/def/eabi/guestvideohw.def OS_LAYER_SYSTEMINCLUDE OS_LAYER_KERNEL_SYSTEMINCLUDE diff -r e8ccf068ac7f -r ccf5191a9db1 guestrendering/guestvideodriver/ldd/src/devicereqhandler.cpp --- a/guestrendering/guestvideodriver/ldd/src/devicereqhandler.cpp Wed Aug 25 17:57:53 2010 +0100 +++ b/guestrendering/guestvideodriver/ldd/src/devicereqhandler.cpp Wed Aug 25 19:17:09 2010 +0100 @@ -216,7 +216,9 @@ iRequestBuffer.InitBuffer(); //Register this object with the extension VVHW_TRACE( "DDeviceReqHandler calling ReqHandlerExtension" ); +#ifdef FAISALMEMON_S4_SGIMAGE ReqHandlerExtension::SetReqHandler( this ); +#endif } // ----------------------------------------------------------------------------- @@ -798,6 +800,7 @@ case DriverRFC::EDrvCreatePbufferSg: { VVHW_TRACE( "DDeviceReqHandler::ConsumeSchedulerInitiatedRequestResult : EDrvCreatePbufferSg" ); +#ifdef FAISALMEMON_S4_SGIMAGE if( iSchedulerInitiatedTransactionData ) { ((TSgImageMetaData*)iSchedulerInitiatedTransactionData)->iPbufferHandle = aReq->iRemoteFunctionCall.Header().iReturnValue; @@ -812,12 +815,14 @@ aReq->iAsyncClient, aReq->iStatus ); *(aReq->iStatus) = 0;//REquestComplete doesn't work +#endif VVHW_TRACE( "Pbuffer creation RequestComplete" ); break; } case DriverRFC::EDrvCreateVGImageSg: { VVHW_TRACE( "DDeviceReqHandler::ConsumeSchedulerInitiatedRequestResult : EDrvCreateVGImageSg" ); +#ifdef FAISALMEMON_S4_SGIMAGE if( iSchedulerInitiatedTransactionData ) { ((TSgImageMetaData*)iSchedulerInitiatedTransactionData)->iVGImageHandle = aReq->iRemoteFunctionCall.Header().iReturnValue; @@ -831,6 +836,7 @@ aReq->iAsyncClient, aReq->iStatus ); *(aReq->iStatus) = 0;//REquestComplete doesn't work +#endif VVHW_TRACE( "VGImage creation RequestComplete" ); break; } @@ -909,6 +915,7 @@ VVHW_TRACE("DDeviceReqHandle::ConsumeSchedulerInitiatedRequestResult done."); } +#ifdef FAISALMEMON_S4_SGIMAGE /** * DDeviceReqHandler::CreateSgImagePbuffer * @param aInfo the info @@ -991,9 +998,7 @@ VVHW_TRACE("DDeviceReqHandler::CreateSgImageVGImage <-"); return; } - - - +#endif TInt DDeviceReqHandler::DestroySgImage( const TUint64 aId ) { @@ -1430,6 +1435,7 @@ return alreadyProcessed; } +#ifdef FAISALMEMON_S4_SGIMAGE HBuf8* DDeviceReqHandler::OpenSgImageMetaData( const TUint64 aId, DSgResource*& aResource ) { VVHW_TRACE("DDeviceReqHandler::OpenSgImageMetaData 0x%lx", aId ); @@ -1449,3 +1455,4 @@ } return data;//If there was a problem, this is zero. Ownership belongs to caller } +#endif diff -r e8ccf068ac7f -r ccf5191a9db1 guestrendering/guestvideodriver/ldd/src/virtualvideohwinterface.cpp --- a/guestrendering/guestvideodriver/ldd/src/virtualvideohwinterface.cpp Wed Aug 25 17:57:53 2010 +0100 +++ b/guestrendering/guestvideodriver/ldd/src/virtualvideohwinterface.cpp Wed Aug 25 19:17:09 2010 +0100 @@ -263,5 +263,22 @@ } } +// TODO FAISALMEMON This is the first portion of the port of Jani's +// Dynamic framebuffer base address code. Inspect this code, and also +// put in the rest of the code. +EXPORT_C TPhysAddr DVirtualVideoHwInterface::GetFrameBase() + { +#ifdef FAISALMEMON_DONE_DYNAMIC_FRAMEBUFFER_PORT + TPhysAddr ret = 0; + if(DVirtualVideoHwInterface::pVVHIf != NULL) + { + ret = DVirtualVideoHwInterface::pVVHIf->iFrameRamPhys; + } + return ret; +#else + return 0; +#endif +} + // End of file