Changeset 40483 in vbox for trunk/src/VBox/Additions/common
- Timestamp:
- Mar 15, 2012 2:20:20 PM (13 years ago)
- Location:
- trunk/src/VBox/Additions/common
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp
r40198 r40483 1893 1893 PVBOXGUESTSESSION pSession, 1894 1894 VBoxGuestHGCMCallInfo *pInfo, 1895 uint32_t cMillies, bool fInterruptible, bool f32bit, 1895 uint32_t cMillies, bool fInterruptible, bool f32bit, bool fUserData, 1896 1896 size_t cbExtra, size_t cbData, size_t *pcbDataReturned) 1897 1897 { … … 1949 1949 */ 1950 1950 Log(("VBoxGuestCommonIOCtl: HGCM_CALL: u32Client=%RX32\n", pInfo->u32ClientID)); 1951 fFlags = pSession->R0Process == NIL_RTR0PROCESS ? VBGLR0_HGCMCALL_F_KERNEL : VBGLR0_HGCMCALL_F_USER;1951 fFlags = !fUserData && pSession->R0Process == NIL_RTR0PROCESS ? VBGLR0_HGCMCALL_F_KERNEL : VBGLR0_HGCMCALL_F_USER; 1952 1952 #ifdef RT_ARCH_AMD64 1953 1953 if (f32bit) … … 2449 2449 CHECKRET_MIN_SIZE("HGCM_CALL", sizeof(VBoxGuestHGCMCallInfo)); 2450 2450 rc = VBoxGuestCommonIOCtl_HGCMCall(pDevExt, pSession, (VBoxGuestHGCMCallInfo *)pvData, RT_INDEFINITE_WAIT, 2451 fInterruptible, false /*f32bit*/, 2451 fInterruptible, false /*f32bit*/, false /* fUserData */, 2452 2452 0, cbData, pcbDataReturned); 2453 2453 } … … 2458 2458 rc = VBoxGuestCommonIOCtl_HGCMCall(pDevExt, pSession, &pInfo->info, pInfo->u32Timeout, 2459 2459 !!pInfo->fInterruptible || pSession->R0Process != NIL_RTR0PROCESS, 2460 false /*f32bit*/, 2460 false /*f32bit*/, false /* fUserData */, 2461 2461 RT_OFFSETOF(VBoxGuestHGCMCallInfoTimed, info), cbData, pcbDataReturned); 2462 } 2463 else if (VBOXGUEST_IOCTL_STRIP_SIZE(iFunction) == VBOXGUEST_IOCTL_STRIP_SIZE(VBOXGUEST_IOCTL_HGCM_CALL_USERDATA(0))) 2464 { 2465 bool fInterruptible = true; 2466 CHECKRET_MIN_SIZE("HGCM_CALL", sizeof(VBoxGuestHGCMCallInfo)); 2467 rc = VBoxGuestCommonIOCtl_HGCMCall(pDevExt, pSession, (VBoxGuestHGCMCallInfo *)pvData, RT_INDEFINITE_WAIT, 2468 fInterruptible, false /*f32bit*/, true /* fUserData */, 2469 0, cbData, pcbDataReturned); 2462 2470 } 2463 2471 # ifdef RT_ARCH_AMD64 … … 2467 2475 CHECKRET_MIN_SIZE("HGCM_CALL", sizeof(VBoxGuestHGCMCallInfo)); 2468 2476 rc = VBoxGuestCommonIOCtl_HGCMCall(pDevExt, pSession, (VBoxGuestHGCMCallInfo *)pvData, RT_INDEFINITE_WAIT, 2469 fInterruptible, true /*f32bit*/, 2477 fInterruptible, true /*f32bit*/, false /* fUserData */, 2470 2478 0, cbData, pcbDataReturned); 2471 2479 } … … 2476 2484 rc = VBoxGuestCommonIOCtl_HGCMCall(pDevExt, pSession, &pInfo->info, pInfo->u32Timeout, 2477 2485 !!pInfo->fInterruptible || pSession->R0Process != NIL_RTR0PROCESS, 2478 true /*f32bit*/, 2486 true /*f32bit*/, false /* fUserData */, 2479 2487 RT_OFFSETOF(VBoxGuestHGCMCallInfoTimed, info), cbData, pcbDataReturned); 2480 2488 } -
trunk/src/VBox/Additions/common/VBoxGuestLib/HGCM.cpp
r28800 r40483 198 198 } 199 199 200 DECLVBGL(int) VbglHGCMCallUserData (VBGLHGCMHANDLE handle, VBoxGuestHGCMCallInfo *pData, uint32_t cbData) 201 { 202 int rc = VINF_SUCCESS; 203 204 VBGL_HGCM_ASSERTMsg(cbData >= sizeof (VBoxGuestHGCMCallInfo) + pData->cParms * sizeof (HGCMFunctionParameter), 205 ("cbData = %d, cParms = %d (calculated size %d)\n", cbData, pData->cParms, sizeof (VBoxGuestHGCMCallInfo) + pData->cParms * sizeof (VBoxGuestHGCMCallInfo))); 206 207 rc = vbglDriverIOCtl (&handle->driver, VBOXGUEST_IOCTL_HGCM_CALL_USERDATA(cbData), pData, cbData); 208 209 return rc; 210 } 211 212 200 213 DECLVBGL(int) VbglHGCMCallTimed (VBGLHGCMHANDLE handle, 201 214 VBoxGuestHGCMCallInfoTimed *pData, uint32_t cbData) -
trunk/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
r40211 r40483 64 64 HGCM.cpp \ 65 65 VBoxGuestR0LibSharedFolders.c \ 66 VBoxGuestR0LibCrOgl.cpp \ 66 67 VbglR0CanUsePhysPageList.cpp 67 68
Note:
See TracChangeset
for help on using the changeset viewer.