Changeset 76145 in vbox for trunk/src/VBox/Devices/VMMDev
- Timestamp:
- Dec 11, 2018 12:16:18 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 127390
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp
r75990 r76145 1191 1191 * @param pCmd Completed call command. 1192 1192 * @param pHGCMCall The guestrequest which needs updating (cached in the host memory). 1193 */ 1194 static int vmmdevHGCMCompleteCallRequest(PVMMDEV pThis, PVBOXHGCMCMD pCmd, VMMDevHGCMCall *pHGCMCall) 1193 * @param pbReq The request copy or locked memory for handling 1194 * embedded buffers. 1195 */ 1196 static int vmmdevHGCMCompleteCallRequest(PVMMDEV pThis, PVBOXHGCMCMD pCmd, VMMDevHGCMCall *pHGCMCall, uint8_t *pbReq) 1195 1197 { 1196 1198 AssertReturn(pCmd->enmCmdType == VBOXHGCMCMDTYPE_CALL, VERR_INTERNAL_ERROR); … … 1247 1249 uint32_t cbSrc = pHostParm->u.pointer.size; 1248 1250 uint32_t cbToCopy = RT_MIN(cbSrc, pPtr->cbData); 1249 if (pCmd->pvReqLocked) 1250 memcpy((uint8_t *)pCmd->pvReqLocked + pPtr->offFirstPage, pvSrc, cbToCopy); 1251 else 1252 rc = PDMDevHlpPhysWrite(pThis->pDevInsR3, pGuestParm->u.ptr.GCPhysSinglePage, pvSrc, cbToCopy); 1251 memcpy(pbReq + pPtr->offFirstPage, pvSrc, cbToCopy); 1253 1252 } 1254 1253 break; … … 1346 1345 { 1347 1346 VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; 1348 rc = vmmdevHGCMCompleteCallRequest(pThis, pCmd, pHGCMCall );1347 rc = vmmdevHGCMCompleteCallRequest(pThis, pCmd, pHGCMCall, (uint8_t *)pHeader); 1349 1348 #ifdef VBOX_WITH_DTRACE 1350 1349 idFunction = pCmd->u.call.u32Function; … … 1429 1428 { 1430 1429 VMMDevHGCMCall *pHGCMCall = (VMMDevHGCMCall *)pHeader; 1431 rc = vmmdevHGCMCompleteCallRequest(pThis, pCmd, pHGCMCall );1430 rc = vmmdevHGCMCompleteCallRequest(pThis, pCmd, pHGCMCall, (uint8_t *)pHeader); 1432 1431 #ifdef VBOX_WITH_DTRACE 1433 1432 idFunction = pCmd->u.call.u32Function;
Note:
See TracChangeset
for help on using the changeset viewer.