Lines Matching refs:pCmd

791 DECLINLINE(void) vbvaVHWAHHCommandRelease (VBOXVHWACMD* pCmd)
793 uint32_t cRefs = ASMAtomicDecU32(&pCmd->cRefs);
796 RTMemFree(pCmd);
800 DECLINLINE(void) vbvaVHWAHHCommandRetain (VBOXVHWACMD* pCmd)
802 ASMAtomicIncU32(&pCmd->cRefs);
1027 static void vbvaVHWAHandleCommand(PVGASTATE pVGAState, PVBOXVHWACMD pCmd)
1031 if (vbvaVHWACommandSubmit(pVGAState, pCmd, false))
1035 vbvaVHWACommandPend(pVGAState, pCmd);
1043 static int vbvaVHWAHHCommandPost(PVGASTATE pVGAState, VBOXVHWACMD* pCmd)
1051 vbvaVHWAHHCommandRetain (pCmd);
1052 VBOXVHWA_HH_CALLBACK_SET(pCmd, vbvaVHWAHHCommandSetEventCallback, (void*)hComplEvent);
1053 vbvaVHWAHandleCommand(pVGAState, pCmd);
1054 if((ASMAtomicReadU32((volatile uint32_t *)&pCmd->Flags) & VBOXVHWACMD_FLAG_HG_ASYNCH) != 0)
1068 vbvaVHWAHHCommandRelease(pCmd);
1078 VBOXVHWACMD *pCmd = vbvaVHWAHHCommandCreate(pVGAState, VBOXVHWACMD_TYPE_HH_CONSTRUCT, 0, sizeof(VBOXVHWACMD_HH_CONSTRUCT));
1079 Assert(pCmd);
1080 if(pCmd)
1084 VBOXVHWACMD_HH_CONSTRUCT * pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_HH_CONSTRUCT);
1097 rc = vbvaVHWAHHCommandPost(pVGAState, pCmd);
1101 rc = pCmd->rc;
1119 vbvaVHWAHHCommandReinit(pCmd, VBOXVHWACMD_TYPE_HH_CONSTRUCT, (int32_t)iDisplay);
1122 vbvaVHWAHHCommandRelease(pCmd);
1134 VBOXVHWACMD *pCmd = vbvaVHWAHHCommandCreate(pVGAState, VBOXVHWACMD_TYPE_HH_RESET, 0, 0);
1135 Assert(pCmd);
1136 if(pCmd)
1143 rc =vbvaVHWAHHCommandPost(pVGAState, pCmd);
1147 rc = pCmd->rc;
1159 vbvaVHWAHHCommandReinit(pCmd, VBOXVHWACMD_TYPE_HH_RESET, (int32_t)iDisplay);
1163 vbvaVHWAHHCommandRelease(pCmd);
1170 typedef DECLCALLBACK(bool) FNVBOXVHWAHHCMDPRECB(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, void *pvContext);
1173 typedef DECLCALLBACK(bool) FNVBOXVHWAHHCMDPOSTCB(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, int rc, void *pvContext);
1176 int vbvaVHWAHHPost(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, PFNVBOXVHWAHHCMDPRECB pfnPre, PFNVBOXVHWAHHCMDPOSTCB pfnPost, void *pvContext)
1178 const VBOXVHWACMD_TYPE enmType = pCmd->enmCmd;
1184 if (!pfnPre || pfnPre(pVGAState, pCmd, iDisplay, pvContext))
1186 rc = vbvaVHWAHHCommandPost(pVGAState, pCmd);
1190 if (!pfnPost(pVGAState, pCmd, iDisplay, rc, pvContext))
1199 rc = pCmd->rc;
1214 vbvaVHWAHHCommandReinit(pCmd, enmType, (int32_t)iDisplay);
1224 VBOXVHWACMD *pCmd = vbvaVHWAHHCommandCreate(pVGAState,
1227 Assert(pCmd);
1228 if(pCmd)
1230 int rc = vbvaVHWAHHPost (pVGAState, pCmd, NULL, NULL, NULL);
1231 vbvaVHWAHHCommandRelease(pCmd);
1249 int vbvaVHWACommandCompleteAsync(PPDMIDISPLAYVBVACALLBACKS pInterface, PVBOXVHWACMD pCmd)
1252 Log(("VGA Command <<< Async rc %d %#p, %d\n", pCmd->rc, pCmd, pCmd->enmCmd));
1254 if((pCmd->Flags & VBOXVHWACMD_FLAG_HH_CMD) == 0)
1259 Assert(pCmd->Flags & VBOXVHWACMD_FLAG_HG_ASYNCH);
1263 rc = HGSMICompleteGuestCommand(pIns, pCmd, !!(pCmd->Flags & VBOXVHWACMD_FLAG_GH_ASYNCH_IRQ));
1270 int32_t iDisplay = pCmd->iDisplay;
1272 if(pCmd->Flags & VBOXVHWACMD_FLAG_GH_ASYNCH_EVENT)
1283 pHostCmd->iDstID = pCmd->iDisplay;
1286 pBody->pEvent = pCmd->GuestVBVAReserved1;
1291 HGSMIOFFSET offCmd = HGSMIPointerToOffsetHost (pIns, pCmd);
1304 pHostCmd->iDstID = pCmd->iDisplay;
1318 rc = HGSMIHostCommandProcessAndFreeAsynch(pIns, pHostCmd, (pCmd->Flags & VBOXVHWACMD_FLAG_GH_ASYNCH_IRQ) != 0);
1330 PFNVBOXVHWA_HH_CALLBACK pfn = VBOXVHWA_HH_CALLBACK_GET(pCmd);
1333 pfn(VBOXVHWA_HH_CALLBACK_GET_ARG(pCmd));
1347 static DECLCALLBACK(bool) vboxVBVASaveStateBeginPostCb(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, int rc, void *pvContext)
1365 Assert(RT_SUCCESS(pCmd->rc) || pCmd->rc == VERR_NOT_IMPLEMENTED);
1366 if (RT_SUCCESS(pCmd->rc))
1370 else if (pCmd->rc != VERR_NOT_IMPLEMENTED)
1372 pData->rc = pCmd->rc;
1379 static DECLCALLBACK(bool) vboxVBVASaveStatePerformPreCb(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, void *pvContext)
1415 static DECLCALLBACK(bool) vboxVBVASaveStateEndPreCb(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, void *pvContext)
1427 static DECLCALLBACK(bool) vboxVBVALoadStatePerformPostCb(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, int rc, void *pvContext)
1445 Assert(RT_SUCCESS(pCmd->rc) || pCmd->rc == VERR_NOT_IMPLEMENTED);
1446 if (pCmd->rc == VERR_NOT_IMPLEMENTED)
1452 if (RT_FAILURE(pCmd->rc))
1454 pData->rc = pCmd->rc;
1461 static DECLCALLBACK(bool) vboxVBVALoadStatePerformPreCb(PVGASTATE pVGAState, VBOXVHWACMD *pCmd, uint32_t iDisplay, void *pvContext)
1628 VBOXVHWACMD *pCmd = vbvaVHWAHHCommandCreate(pVGAState, VBOXVHWACMD_TYPE_HH_SAVESTATE_SAVEBEGIN, 0, cbCmd);
1629 Assert(pCmd);
1630 if(pCmd)
1632 vbvaVHWAHHPost (pVGAState, pCmd, NULL, vboxVBVASaveStateBeginPostCb, &VhwaData);
1643 vbvaVHWAHHCommandReinit(pCmd, VBOXVHWACMD_TYPE_HH_SAVESTATE_SAVEPERFORM, 0);
1644 VBOXVHWACMD_HH_SAVESTATE_SAVEPERFORM *pSave = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_HH_SAVESTATE_SAVEPERFORM);
1646 vbvaVHWAHHPost (pVGAState, pCmd, vboxVBVASaveStatePerformPreCb, NULL, &VhwaData);
1654 vbvaVHWAHHCommandReinit(pCmd, VBOXVHWACMD_TYPE_HH_SAVESTATE_SAVEEND, 0);
1655 vbvaVHWAHHPost (pVGAState, pCmd, vboxVBVASaveStateEndPreCb, NULL, &VhwaData);
1662 vbvaVHWAHHCommandRelease(pCmd);
1874 VBOXVHWACMD *pCmd = vbvaVHWAHHCommandCreate(pVGAState, VBOXVHWACMD_TYPE_HH_SAVESTATE_LOADPERFORM, 0, cbCmd);
1875 Assert(pCmd);
1876 if(pCmd)
1880 VBOXVHWACMD_HH_SAVESTATE_LOADPERFORM *pLoad = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_HH_SAVESTATE_LOADPERFORM);
1882 vbvaVHWAHHPost (pVGAState, pCmd, vboxVBVALoadStatePerformPreCb, vboxVBVALoadStatePerformPostCb, &VhwaData);
1884 vbvaVHWAHHCommandRelease(pCmd);
2144 PVBOXVDMACBUF_DR pCmd = (PVBOXVDMACBUF_DR)VBoxSHGSMIBufferData ((PVBOXSHGSMIHEADER)pvBuffer);
2145 vboxVDMACommand(pVGAState->pVdma, pCmd, cbBuffer - VBoxSHGSMIBufferHeaderSize());
2156 PVBOXVDMA_CTL pCmd = (PVBOXVDMA_CTL)VBoxSHGSMIBufferData ((PVBOXSHGSMIHEADER)pvBuffer);
2157 vboxVDMAControl(pVGAState->pVdma, pCmd, cbBuffer - VBoxSHGSMIBufferHeaderSize());