Changeset 13871 in vbox
- Timestamp:
- Nov 5, 2008 2:45:31 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 38869
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm.h
r13858 r13871 277 277 278 278 VMMR0DECL(int) VMMR0EntryInt(PVM pVM, VMMR0OPERATION enmOperation, void *pvArg); 279 VMMR0DECL(void) VMMR0EntryFast(PVM pVM, unsigned idC PU, VMMR0OPERATION enmOperation);279 VMMR0DECL(void) VMMR0EntryFast(PVM pVM, unsigned idCpu, VMMR0OPERATION enmOperation); 280 280 VMMR0DECL(int) VMMR0EntryEx(PVM pVM, VMMR0OPERATION enmOperation, PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION); 281 281 VMMR0DECL(int) VMMR0CallHost(PVM pVM, VMMCALLHOST enmOperation, uint64_t uArg); -
trunk/src/VBox/HostDrivers/Support/SUPDrv.c
r13858 r13871 155 155 #ifdef RT_WITH_W64_UNWIND_HACK 156 156 DECLASM(int) supdrvNtWrapVMMR0EntryEx(PFNRT pfnVMMR0EntryEx, PVM pVM, unsigned uOperation, PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION pSession); 157 DECLASM(int) supdrvNtWrapVMMR0EntryFast(PFNRT pfnVMMR0EntryFast, PVM pVM, unsigned idC PU, unsigned uOperation);157 DECLASM(int) supdrvNtWrapVMMR0EntryFast(PFNRT pfnVMMR0EntryFast, PVM pVM, unsigned idCpu, unsigned uOperation); 158 158 DECLASM(void) supdrvNtWrapObjDestructor(PFNRT pfnDestruction, void *pvObj, void *pvUser1, void *pvUser2); 159 159 DECLASM(void *) supdrvNtWrapQueryFactoryInterface(PFNRT pfnQueryFactoryInterface, struct SUPDRVFACTORY const *pSupDrvFactory, PSUPDRVSESSION pSession, const char *pszInterfaceUuid); … … 861 861 * @returns VBox status code that should be passed down to ring-3 unchanged. 862 862 * @param uIOCtl Function number. 863 * @param idC PUVMCPU id.863 * @param idCpu VMCPU id. 864 864 * @param pDevExt Device extention. 865 865 * @param pSession Session data. 866 866 */ 867 int VBOXCALL supdrvIOCtlFast(uintptr_t uIOCtl, unsigned idC PU, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession)867 int VBOXCALL supdrvIOCtlFast(uintptr_t uIOCtl, unsigned idCpu, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession) 868 868 { 869 869 /* … … 876 876 case SUP_IOCTL_FAST_DO_RAW_RUN: 877 877 #ifdef RT_WITH_W64_UNWIND_HACK 878 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idC PU, SUP_VMMR0_DO_RAW_RUN);878 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idCpu, SUP_VMMR0_DO_RAW_RUN); 879 879 #else 880 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idC PU, SUP_VMMR0_DO_RAW_RUN);880 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idCpu, SUP_VMMR0_DO_RAW_RUN); 881 881 #endif 882 882 break; 883 883 case SUP_IOCTL_FAST_DO_HWACC_RUN: 884 884 #ifdef RT_WITH_W64_UNWIND_HACK 885 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idC PU, SUP_VMMR0_DO_HWACC_RUN);885 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idCpu, SUP_VMMR0_DO_HWACC_RUN); 886 886 #else 887 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idC PU, SUP_VMMR0_DO_HWACC_RUN);887 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idCpu, SUP_VMMR0_DO_HWACC_RUN); 888 888 #endif 889 889 break; 890 890 case SUP_IOCTL_FAST_DO_NOP: 891 891 #ifdef RT_WITH_W64_UNWIND_HACK 892 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idC PU, SUP_VMMR0_DO_NOP);892 supdrvNtWrapVMMR0EntryFast((PFNRT)pDevExt->pfnVMMR0EntryFast, pSession->pVM, idCpu, SUP_VMMR0_DO_NOP); 893 893 #else 894 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idC PU, SUP_VMMR0_DO_NOP);894 pDevExt->pfnVMMR0EntryFast(pSession->pVM, idCpu, SUP_VMMR0_DO_NOP); 895 895 #endif 896 896 break; -
trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h
r13858 r13871 647 647 DECLR0CALLBACKMEMBER(int, pfnVMMR0EntryInt, (PVM pVM, unsigned uOperation, void *pvArg)); 648 648 /** VMMR0EntryFast() pointer. */ 649 DECLR0CALLBACKMEMBER(void, pfnVMMR0EntryFast, (PVM pVM, unsigned idC PU, unsigned uOperation));649 DECLR0CALLBACKMEMBER(void, pfnVMMR0EntryFast, (PVM pVM, unsigned idCpu, unsigned uOperation)); 650 650 /** VMMR0EntryEx() pointer. */ 651 651 DECLR0CALLBACKMEMBER(int, pfnVMMR0EntryEx, (PVM pVM, unsigned uOperation, PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION pSession)); … … 703 703 *******************************************************************************/ 704 704 int VBOXCALL supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr); 705 int VBOXCALL supdrvIOCtlFast(uintptr_t uIOCtl, unsigned idC PU, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession);705 int VBOXCALL supdrvIOCtlFast(uintptr_t uIOCtl, unsigned idCpu, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession); 706 706 int VBOXCALL supdrvIDC(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPDRVIDCREQHDR pReqHdr); 707 707 int VBOXCALL supdrvInitDevExt(PSUPDRVDEVEXT pDevExt); -
trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
r13858 r13871 565 565 566 566 567 SUPR3DECL(int) SUPCallVMMR0Fast(PVMR0 pVMR0, unsigned uOperation, unsigned idC PU)567 SUPR3DECL(int) SUPCallVMMR0Fast(PVMR0 pVMR0, unsigned uOperation, unsigned idCpu) 568 568 { 569 569 if (RT_LIKELY(uOperation == SUP_VMMR0_DO_RAW_RUN)) 570 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_RAW_RUN, idC PU);570 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_RAW_RUN, idCpu); 571 571 if (RT_LIKELY(uOperation == SUP_VMMR0_DO_HWACC_RUN)) 572 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_HWACC_RUN, idC PU);572 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_HWACC_RUN, idCpu); 573 573 if (RT_LIKELY(uOperation == SUP_VMMR0_DO_NOP)) 574 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_NOP, idC PU);574 return suplibOsIOCtlFast(&g_supLibData, SUP_IOCTL_FAST_DO_NOP, idCpu); 575 575 576 576 AssertMsgFailed(("%#x\n", uOperation)); -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r13858 r13871 566 566 * @param pVM The VM to operate on. 567 567 * The return code is stored in pVM->vmm.s.iLastGZRc. 568 * @param idC PUVMCPU id.568 * @param idCpu VMCPU id. 569 569 * @param enmOperation Which operation to execute. 570 570 * @remarks Assume called with interrupts _enabled_. 571 571 */ 572 VMMR0DECL(void) VMMR0EntryFast(PVM pVM, unsigned idCPU, VMMR0OPERATION enmOperation) 573 { 572 VMMR0DECL(void) VMMR0EntryFast(PVM pVM, unsigned idCpu, VMMR0OPERATION enmOperation) 573 { 574 if (RT_UNLIKELY(idCpu >= pVM->cCPUs)) 575 { 576 pVM->vmm.s.iLastGZRc = VERR_INVALID_PARAMETER; 577 return; 578 } 579 574 580 switch (enmOperation) 575 581 { … … 621 627 622 628 STAM_COUNTER_INC(&pVM->vmm.s.StatRunRC); 623 624 if (idCPU >= pVM->cCPUs)625 {626 pVM->vmm.s.iLastGZRc = VERR_INVALID_PARAMETER;627 return;628 }629 629 630 630 #ifndef RT_OS_WINDOWS /** @todo check other hosts */
Note:
See TracChangeset
for help on using the changeset viewer.