Changeset 50754 in vbox for trunk/src/VBox/Main
- Timestamp:
- Mar 12, 2014 5:43:09 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 92767
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/DisplayImpl.h
r50677 r50754 174 174 void handleCrHgsmiControlCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam); 175 175 #endif 176 176 int handleCrHgcmCtlSubmit(struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd, 177 PFNCRCTLCOMPLETION pfnCompletion, 178 void *pvCompletion); 177 179 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 178 180 void handleCrAsyncCmdCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam); … … 271 273 static DECLCALLBACK(void) displayCrHgsmiControlCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam, void *pvContext); 272 274 #endif 273 275 static DECLCALLBACK(int) displayCrHgcmCtlSubmit(PPDMIDISPLAYCONNECTOR pInterface, 276 struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd, 277 PFNCRCTLCOMPLETION pfnCompletion, 278 void *pvCompletion); 279 static DECLCALLBACK(void) displayCrHgcmCtlSubmitCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam, void *pvContext); 274 280 #ifdef VBOX_WITH_HGSMI 275 281 static DECLCALLBACK(int) displayVBVAEnable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, PVBVAHOSTFLAGS pHostFlags); -
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r50677 r50754 4304 4304 void Display::handleCrHgsmiCommandProcess(PVBOXVDMACMD_CHROMIUM_CMD pCmd, uint32_t cbCmd) 4305 4305 { 4306 int rc = VERR_ INVALID_FUNCTION;4306 int rc = VERR_NOT_SUPPORTED; 4307 4307 VBOXHGCMSVCPARM parm; 4308 4308 parm.type = VBOX_HGCM_SVC_PARM_PTR; … … 4332 4332 void Display::handleCrHgsmiControlProcess(PVBOXVDMACMD_CHROMIUM_CTL pCtl, uint32_t cbCtl) 4333 4333 { 4334 int rc = VERR_ INVALID_FUNCTION;4334 int rc = VERR_NOT_SUPPORTED; 4335 4335 VBOXHGCMSVCPARM parm; 4336 4336 parm.type = VBOX_HGCM_SVC_PARM_PTR; … … 4383 4383 } 4384 4384 #endif 4385 4386 DECLCALLBACK(void) Display::displayCrHgcmCtlSubmitCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam, void *pvContext) 4387 { 4388 VBOXCRCMDCTL *pCmd = (VBOXCRCMDCTL*)pParam->u.pointer.addr; 4389 if (pCmd->pfnInternal) 4390 ((PFNCRCTLCOMPLETION)pCmd->pfnInternal)(pCmd, pParam->u.pointer.size, result, pvContext); 4391 } 4392 4393 int Display::handleCrHgcmCtlSubmit(struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd, 4394 PFNCRCTLCOMPLETION pfnCompletion, 4395 void *pvCompletion) 4396 { 4397 VMMDev *pVMMDev = mParent->getVMMDev(); 4398 if (!pVMMDev) 4399 { 4400 AssertMsgFailed(("no vmmdev\n")); 4401 return VERR_INVALID_STATE; 4402 } 4403 4404 Assert(mhCrOglSvc); 4405 VBOXHGCMSVCPARM parm; 4406 parm.type = VBOX_HGCM_SVC_PARM_PTR; 4407 parm.u.pointer.addr = pCmd; 4408 parm.u.pointer.size = cbCmd; 4409 4410 pCmd->pfnInternal = (void(*)())pfnCompletion; 4411 int rc = pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_CTL, &parm, displayCrHgcmCtlSubmitCompletion, pvCompletion); 4412 if (!RT_SUCCESS(rc)) 4413 AssertMsgFailed(("hgcmHostFastCallAsync failed rc %n", rc)); 4414 4415 return rc; 4416 } 4417 4418 DECLCALLBACK(int) Display::displayCrHgcmCtlSubmit(PPDMIDISPLAYCONNECTOR pInterface, 4419 struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd, 4420 PFNCRCTLCOMPLETION pfnCompletion, 4421 void *pvCompletion) 4422 { 4423 PDRVMAINDISPLAY pDrv = PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface); 4424 Display *pThis = pDrv->pDisplay; 4425 return pThis->handleCrHgcmCtlSubmit(pCmd, cbCmd, pfnCompletion, pvCompletion); 4426 } 4385 4427 4386 4428 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) … … 5007 5049 pThis->IConnector.pfnCrHgsmiControlProcess = Display::displayCrHgsmiControlProcess; 5008 5050 #endif 5051 pThis->IConnector.pfnCrHgcmCtlSubmit = Display::displayCrHgcmCtlSubmit; 5009 5052 #ifdef VBOX_WITH_HGSMI 5010 5053 pThis->IConnector.pfnVBVAEnable = Display::displayVBVAEnable;
Note:
See TracChangeset
for help on using the changeset viewer.