Changeset 105352 in vbox
- Timestamp:
- Jul 16, 2024 11:21:19 AM (6 months ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pdmdev.h
r101617 r105352 3437 3437 * @remarks See remarks on VMR3ReqCallVU. 3438 3438 */ 3439 DECLR3CALLBACKMEMBER(int, pfnVMReqCallNoWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, va_list Args)); 3439 DECLR3CALLBACKMEMBER(int, pfnVMReqCallNoWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, 3440 va_list Args)) RT_IPRT_CALL_ATTR(3, 4, 0); 3440 3441 3441 3442 /** … … 3458 3459 * @remarks See remarks on VMR3ReqCallVU. 3459 3460 */ 3460 DECLR3CALLBACKMEMBER(int, pfnVMReqPriorityCallWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, va_list Args)); 3461 DECLR3CALLBACKMEMBER(int, pfnVMReqPriorityCallWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, 3462 va_list Args)) RT_IPRT_CALL_ATTR(3, 4, 0); 3461 3463 3462 3464 /** … … 7612 7614 * @remarks See remarks on VMR3ReqCallVU. 7613 7615 */ 7614 DECLINLINE(int) PDMDevHlpVMReqCallNoWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7616 DECLINLINE(int) RT_IPRT_CALL_ATTR(3, 4, 5) 7617 PDMDevHlpVMReqCallNoWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7615 7618 { 7616 7619 va_list Args; … … 7640 7643 * @remarks See remarks on VMR3ReqCallVU. 7641 7644 */ 7642 DECLINLINE(int) PDMDevHlpVMReqPriorityCallWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7645 DECLINLINE(int) RT_IPRT_CALL_ATTR(3, 4, 5) 7646 PDMDevHlpVMReqPriorityCallWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7643 7647 { 7644 7648 va_list Args; -
trunk/include/VBox/vmm/vmapi.h
r99576 r105352 435 435 VMMR3_INT_DECL(uint32_t) VMR3GetRuntimeErrorCount(PUVM pUVM); 436 436 437 VMMR3DECL(int) VMR3ReqCallU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, RTMSINTERVAL cMillies, uint32_t fFlags, PFNRT pfnFunction, unsigned cArgs, ...); 438 VMMR3DECL(int) VMR3ReqCallVU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, RTMSINTERVAL cMillies, uint32_t fFlags, PFNRT pfnFunction, unsigned cArgs, va_list Args); 439 VMMR3_INT_DECL(int) VMR3ReqCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 440 VMMR3DECL(int) VMR3ReqCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 441 VMMR3DECL(int) VMR3ReqCallNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 442 VMMR3DECL(int) VMR3ReqCallNoWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 443 VMMR3_INT_DECL(int) VMR3ReqCallVoidWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 444 VMMR3DECL(int) VMR3ReqCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 445 VMMR3DECL(int) VMR3ReqCallVoidNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 446 VMMR3DECL(int) VMR3ReqPriorityCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 447 VMMR3DECL(int) VMR3ReqPriorityCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 448 VMMR3DECL(int) VMR3ReqPriorityCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...); 437 /** Maximum argument count for VMR3ReqCallU and friends. */ 438 #define VMREQ_MAX_ARGS 9 439 /** Maximum argument count for VMR3ReqCallU and friends when 440 * VMREQ_F_EXTRA_ARGS_ALL_PTRS is used. */ 441 #define VMREQ_MAX_ARGS_EXTENDED 15 442 /** Flag to OR into the argumnet count to indicate that all arguments 443 * starting with VMREQ_MAX_ARGS are pointer size and won't cause trouble. 444 * @see @bugref{10725} and VMR3ReqCallVU caveats. */ 445 #define VMREQ_F_EXTRA_ARGS_ALL_PTRS 0x00008000U 446 VMMR3DECL(int) VMR3ReqCallU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, RTMSINTERVAL cMillies, uint32_t fFlags, 447 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(6, 7, 8); 448 VMMR3DECL(int) VMR3ReqCallVU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, RTMSINTERVAL cMillies, uint32_t fFlags, 449 PFNRT pfnFunction, unsigned cArgs, va_list Args) RT_IPRT_CALL_ATTR(6, 7, 0); 450 VMMR3_INT_DECL(int) VMR3ReqCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 451 VMMR3DECL(int) VMR3ReqCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 452 VMMR3DECL(int) VMR3ReqCallNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 453 VMMR3DECL(int) VMR3ReqCallNoWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 454 VMMR3_INT_DECL(int) VMR3ReqCallVoidWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 455 VMMR3DECL(int) VMR3ReqCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 456 VMMR3DECL(int) VMR3ReqCallVoidNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 457 VMMR3DECL(int) VMR3ReqPriorityCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 458 VMMR3DECL(int) VMR3ReqPriorityCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 459 VMMR3DECL(int) VMR3ReqPriorityCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5); 449 460 VMMR3DECL(int) VMR3ReqAlloc(PUVM pUVM, PVMREQ *ppReq, VMREQTYPE enmType, VMCPUID idDstCpu); 450 461 VMMR3DECL(int) VMR3ReqFree(PVMREQ pReq); -
trunk/include/iprt/cdefs.h
r104365 r105352 1511 1511 #else 1512 1512 # define RT_IPRT_FORMAT_ATTR_MAYBE_NULL(a_iFmt, a_iArgs) 1513 #endif 1514 1515 /** @def RT_IPRT_CALL_ATTR 1516 * Identifies a function taking an IPRT format string. 1517 * @param a_iFn The index (1-based) of the function pointer argument. 1518 * @param a_iArgc The index (1-based) of the argument count. 1519 * @param a_iArgs The index (1-based) of the first argument, use 0 for 1520 * va_list. 1521 */ 1522 #if defined(__GNUC__) && defined(WITH_IPRT_CALL_ATTRIBUTE) 1523 # define RT_IPRT_CALL_ATTR(a_iFn, a_iArgc, a_iArgs) __attribute__((__iprt_call__(a_iFn, a_iArgc, a_iArgs))) 1524 #else 1525 # define RT_IPRT_CALL_ATTR(a_iFn, a_iArgc, a_iArgs) 1513 1526 #endif 1514 1527 -
trunk/src/VBox/Main/include/ConsoleImpl.h
r105266 r105352 812 812 HRESULT *phrc); 813 813 int i_configMediumProperties(PCFGMNODE pCur, IMedium *pMedium, bool *pfHostIP, bool *pfEncrypted); 814 /** i_reconfigureMediumAttachment has too many problematic arguments for 815 * passing directly to VMR3ReqCallUV, so we pack them up. @bugref{10725} */ 816 struct ReconfigureMediumAttachmentArgs 817 { 818 const char *pcszDevice; /**< The name of the controller type. */ 819 unsigned uInstance; /**< The instance of the controller. */ 820 StorageBus_T enmBus; /**< The storage bus type of the controller. */ 821 bool fUseHostIOCache; /**< Use the host I/O cache (disable async I/O). */ 822 bool fBuiltinIOCache; /**< Use the builtin I/O cache. */ 823 bool fInsertDiskIntegrityDrv; /**< Flag whether to insert the disk integrity driver into the chain for additionalk debugging aids. */ 824 bool fSetupMerge; /**< Whether to set up a medium merge */ 825 unsigned uMergeSource; /**< Merge source image index */ 826 unsigned uMergeTarget; /**< Merge target image index */ 827 IMediumAttachment *aMediumAtt; /**< The medium attachment. */ 828 MachineState_T aMachineState; /**< The current machine state. */ 829 }; 814 830 static DECLCALLBACK(int) i_reconfigureMediumAttachment(Console *pThis, 815 831 PUVM pUVM, 816 832 PCVMMR3VTABLE pVMM, 817 const char *pcszDevice, 818 unsigned uInstance, 819 StorageBus_T enmBus, 820 bool fUseHostIOCache, 821 bool fBuiltinIoCache, 822 bool fInsertDiskIntegrityDrv, 823 bool fSetupMerge, 824 unsigned uMergeSource, 825 unsigned uMergeTarget, 826 IMediumAttachment *aMediumAtt, 827 MachineState_T aMachineState, 833 ReconfigureMediumAttachmentArgs const *pArgs, 828 834 HRESULT *phrc); 829 835 static DECLCALLBACK(int) i_changeRemovableMedium(Console *pThis, … … 892 898 893 899 static DECLCALLBACK(int) i_usbAttachCallback(Console *that, PUVM pUVM, PCVMMR3VTABLE pVMM, IUSBDevice *aHostDevice, 894 PCRTUUID aUuid, const char *aBackend, const char *aAddress, 895 PCFGMNODE pRemoteCfg, USBConnectionSpeed_T enmSpeed, ULONG aMaskedIfs,900 PCRTUUID aUuid, const char *aBackend, const char *aAddress, PCFGMNODE pRemoteCfg, 901 USBConnectionSpeed_T *penmSpeed, ULONG *pfMaskedIfs, 896 902 const char *pszCaptureFilename); 897 903 static DECLCALLBACK(int) i_usbDetachCallback(Console *that, PUVM pUVM, PCVMMR3VTABLE pVMM, PCRTUUID aUuid); -
trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
r105301 r105352 2531 2531 */ 2532 2532 PVMREQ pReq; 2533 vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, 2534 (PFNRT)i_unplugCpu, 4, 2533 vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, (PFNRT)i_unplugCpu, 4, 2535 2534 this, pUVM, pVMM, (VMCPUID)aCpu); 2536 2535 … … 2636 2635 */ 2637 2636 PVMREQ pReq; 2638 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, 2639 (PFNRT)i_plugCpu, 4, 2637 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, (PFNRT)i_plugCpu, 4, 2640 2638 this, pUVM, pVMM, aCpu); 2641 2639 … … 3805 3803 */ 3806 3804 PVMREQ pReq; 3807 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, 3808 (PFNRT)i_changeRemovableMedium, 9, 3805 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, (PFNRT)i_changeRemovableMedium, 9, 3809 3806 this, pUVM, pVMM, pszDevice, uInstance, enmBus, fUseHostIOCache, aMediumAttachment, fForce); 3810 3807 … … 3984 3981 */ 3985 3982 PVMREQ pReq; 3986 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, 3987 (PFNRT)i_attachStorageDevice, 9, 3983 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, (PFNRT)i_attachStorageDevice, 9, 3988 3984 this, pUVM, pVMM, pszDevice, uInstance, enmBus, fUseHostIOCache, aMediumAttachment, fSilent); 3989 3985 … … 4159 4155 */ 4160 4156 PVMREQ pReq; 4161 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, 4162 (PFNRT)i_detachStorageDevice, 8, 4157 int vrc = pVMM->pfnVMR3ReqCallU(pUVM, 0, &pReq, 0 /* no wait! */, VMREQFLAGS_VBOX_STATUS, (PFNRT)i_detachStorageDevice, 8, 4163 4158 this, pUVM, pVMM, pszDevice, uInstance, enmBus, aMediumAttachment, fSilent); 4164 4159 … … 5212 5207 * here to make requests from under the lock in order to serialize them. 5213 5208 */ 5214 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /*idDstCpu*/, 5215 (PFNRT)i_changeNetworkAttachment, 7, 5209 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /*idDstCpu*/, (PFNRT)i_changeNetworkAttachment, 7, 5216 5210 this, pUVM, pVMM, pszDevice, uInstance, uLun, aNetworkAdapter); 5217 5211 … … 6922 6916 6923 6917 alock.release(); 6924 vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, 6925 (PFNRT)i_reconfigureMediumAttachment, 15, 6926 this, ptrVM.rawUVM(), ptrVM.vtable(), pcszDevice, uInstance, enmBus, 6927 fUseHostIOCache, fBuiltinIOCache, fInsertDiskIntegrityDrv, true /* fSetupMerge */, 6928 aSourceIdx, aTargetIdx, aMediumAttachment, mMachineState, &hrc); 6918 6919 Console::ReconfigureMediumAttachmentArgs Args1; 6920 Args1.pcszDevice = pcszDevice; 6921 Args1.uInstance = uInstance; 6922 Args1.enmBus = enmBus; 6923 Args1.fUseHostIOCache = fUseHostIOCache; 6924 Args1.fBuiltinIOCache = fBuiltinIOCache; 6925 Args1.fInsertDiskIntegrityDrv = fInsertDiskIntegrityDrv; 6926 Args1.fSetupMerge = true; 6927 Args1.uMergeSource = aSourceIdx; 6928 Args1.uMergeTarget = aTargetIdx; 6929 Args1.aMediumAtt = aMediumAttachment; 6930 Args1.aMachineState = mMachineState; 6931 vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)i_reconfigureMediumAttachment, 5, 6932 this, ptrVM.rawUVM(), ptrVM.vtable(), &Args1, &hrc); 6929 6933 /* error handling is after resuming the VM */ 6930 6934 … … 6967 6971 hrc = mControl->FinishOnlineMergeMedium(); 6968 6972 6969 vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, 6970 (PFNRT)i_reconfigureMediumAttachment, 15, 6971 this, ptrVM.rawUVM(), ptrVM.vtable(), pcszDevice, uInstance, enmBus, 6972 fUseHostIOCache, fBuiltinIOCache, fInsertDiskIntegrityDrv, false /* fSetupMerge */, 6973 0 /* uMergeSource */, 0 /* uMergeTarget */, aMediumAttachment, mMachineState, &hrc); 6973 Console::ReconfigureMediumAttachmentArgs Args2; 6974 Args2.pcszDevice = pcszDevice; 6975 Args2.uInstance = uInstance; 6976 Args2.enmBus = enmBus; 6977 Args2.fUseHostIOCache = fUseHostIOCache; 6978 Args2.fBuiltinIOCache = fBuiltinIOCache; 6979 Args2.fInsertDiskIntegrityDrv = fInsertDiskIntegrityDrv; 6980 Args2.fSetupMerge = false; 6981 Args2.uMergeSource = 0; 6982 Args2.uMergeTarget = 0; 6983 Args2.aMediumAtt = aMediumAttachment; 6984 Args2.aMachineState = mMachineState; 6985 vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)i_reconfigureMediumAttachment, 5, 6986 this, ptrVM.rawUVM(), ptrVM.vtable(), &Args2, &hrc); 6974 6987 /* error handling is after resuming the VM */ 6975 6988 … … 7053 7066 7054 7067 hrc = S_OK; 7055 IMediumAttachment *pAttachment = aAttachments[i]; 7056 int vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, 7057 (PFNRT)i_reconfigureMediumAttachment, 15, 7058 this, ptrVM.rawUVM(), ptrVM.vtable(), pcszDevice, lInstance, enmBus, 7059 fUseHostIOCache, fBuiltinIOCache, fInsertDiskIntegrityDrv, 7060 false /* fSetupMerge */, 0 /* uMergeSource */, 0 /* uMergeTarget */, 7061 pAttachment, mMachineState, &hrc); 7068 Console::ReconfigureMediumAttachmentArgs Args; 7069 Args.pcszDevice = pcszDevice; 7070 Args.uInstance = lInstance; 7071 Args.enmBus = enmBus; 7072 Args.fUseHostIOCache = fUseHostIOCache; 7073 Args.fBuiltinIOCache = fBuiltinIOCache; 7074 Args.fInsertDiskIntegrityDrv = fInsertDiskIntegrityDrv; 7075 Args.fSetupMerge = false; 7076 Args.uMergeSource = 0; 7077 Args.uMergeTarget = 0; 7078 Args.aMediumAtt = aAttachments[i]; 7079 Args.aMachineState = mMachineState; 7080 int vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)i_reconfigureMediumAttachment, 5, 7081 this, ptrVM.rawUVM(), ptrVM.vtable(), &Args, &hrc); 7062 7082 if (RT_FAILURE(vrc)) 7063 7083 throw setErrorBoth(E_FAIL, vrc, "%Rrc", vrc); … … 10346 10366 10347 10367 int vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), 0 /* idDstCpu (saved state, see #6232) */, 10348 (PFNRT)i_usbAttachCallback, 11 ,10368 (PFNRT)i_usbAttachCallback, 11 | VMREQ_F_EXTRA_ARGS_ALL_PTRS, 10349 10369 this, ptrVM.rawUVM(), ptrVM.vtable(), aHostDevice, uuid.raw(), 10350 strBackend.c_str(), Address.c_str(), pRemoteCfg, enmSpeed, aMaskedIfs, 10351 aCaptureFilename.isEmpty() ? NULL : aCaptureFilename.c_str()); 10370 strBackend.c_str(), Address.c_str(), pRemoteCfg, /* extra arg (ptrs only): */ 10371 &enmSpeed, &aMaskedIfs, aCaptureFilename.isEmpty() 10372 ? (const char *)NULL : aCaptureFilename.c_str()); 10352 10373 if (RT_SUCCESS(vrc)) 10353 10374 { … … 10398 10419 DECLCALLBACK(int) 10399 10420 Console::i_usbAttachCallback(Console *that, PUVM pUVM, PCVMMR3VTABLE pVMM, IUSBDevice *aHostDevice, PCRTUUID aUuid, 10400 const char *pszBackend, const char *aAddress, PCFGMNODE pRemoteCfg, USBConnectionSpeed_T aEnmSpeed,10401 U LONG aMaskedIfs, const char *pszCaptureFilename)10421 const char *pszBackend, const char *aAddress, PCFGMNODE pRemoteCfg, 10422 USBConnectionSpeed_T *penmSpeed, ULONG *pfMaskedIfs, const char *pszCaptureFilename) 10402 10423 { 10403 10424 RT_NOREF(aHostDevice); … … 10409 10430 10410 10431 VUSBSPEED enmSpeed = VUSB_SPEED_UNKNOWN; 10411 switch ( aEnmSpeed)10432 switch (*penmSpeed) 10412 10433 { 10413 10434 case USBConnectionSpeed_Low: enmSpeed = VUSB_SPEED_LOW; break; … … 10420 10441 10421 10442 int vrc = pVMM->pfnPDMR3UsbCreateProxyDevice(pUVM, aUuid, pszBackend, aAddress, pRemoteCfg, 10422 enmSpeed, aMaskedIfs, pszCaptureFilename);10443 enmSpeed, *pfMaskedIfs, pszCaptureFilename); 10423 10444 LogFlowFunc(("vrc=%Rrc\n", vrc)); 10424 10445 LogFlowFuncLeave(); … … 10469 10490 alock.release(); 10470 10491 int vrc = ptrVM.vtable()->pfnVMR3ReqCallWaitU(ptrVM.rawUVM(), 0 /* idDstCpu (saved state, see #6232) */, 10471 (PFNRT)i_usbDetachCallback, 4, 10472 this, ptrVM.rawUVM(), ptrVM.vtable(), pUuid); 10492 (PFNRT)i_usbDetachCallback, 4, this, ptrVM.rawUVM(), ptrVM.vtable(), pUuid); 10473 10493 if (RT_SUCCESS(vrc)) 10474 10494 { … … 11642 11662 * @param pUVM The VM handle. 11643 11663 * @param pVMM The VMM vtable. 11644 * @param pcszDevice The name of the controller type. 11645 * @param uInstance The instance of the controller. 11646 * @param enmBus The storage bus type of the controller. 11647 * @param fUseHostIOCache Use the host I/O cache (disable async I/O). 11648 * @param fBuiltinIOCache Use the builtin I/O cache. 11649 * @param fInsertDiskIntegrityDrv Flag whether to insert the disk integrity driver into the chain 11650 * for additionalk debugging aids. 11651 * @param fSetupMerge Whether to set up a medium merge 11652 * @param uMergeSource Merge source image index 11653 * @param uMergeTarget Merge target image index 11654 * @param aMediumAtt The medium attachment. 11655 * @param aMachineState The current machine state. 11664 * @param pArgs Argument package. 11656 11665 * @param phrc Where to store com error - only valid if we return VERR_GENERAL_FAILURE. 11657 11666 * @return VBox status code. … … 11661 11670 PUVM pUVM, 11662 11671 PCVMMR3VTABLE pVMM, 11663 const char *pcszDevice, 11664 unsigned uInstance, 11665 StorageBus_T enmBus, 11666 bool fUseHostIOCache, 11667 bool fBuiltinIOCache, 11668 bool fInsertDiskIntegrityDrv, 11669 bool fSetupMerge, 11670 unsigned uMergeSource, 11671 unsigned uMergeTarget, 11672 IMediumAttachment *aMediumAtt, 11673 MachineState_T aMachineState, 11672 Console::ReconfigureMediumAttachmentArgs const *pArgs, 11674 11673 HRESULT *phrc) 11675 11674 { 11676 LogFlowFunc(("pUVM=%p aMediumAtt=%p phrc=%p\n", pUVM, aMediumAtt, phrc));11675 LogFlowFunc(("pUVM=%p aMediumAtt=%p phrc=%p\n", pUVM, pArgs->aMediumAtt, phrc)); 11677 11676 11678 11677 HRESULT hrc; … … 11684 11683 * not subject to snapshotting in general. */ 11685 11684 DeviceType_T lType; 11686 hrc = aMediumAtt->COMGETTER(Type)(&lType);H();11685 hrc = pArgs->aMediumAtt->COMGETTER(Type)(&lType); H(); 11687 11686 if (lType != DeviceType_HardDisk) 11688 11687 return VINF_SUCCESS; 11689 11688 11690 11689 /* Update the device instance configuration. */ 11691 int vrc = pThis->i_configMediumAttachment(p cszDevice,11692 uInstance,11693 enmBus,11694 fUseHostIOCache,11695 fBuiltinIOCache,11696 fInsertDiskIntegrityDrv,11697 fSetupMerge,11698 uMergeSource,11699 uMergeTarget,11700 aMediumAtt,11701 aMachineState,11690 int vrc = pThis->i_configMediumAttachment(pArgs->pcszDevice, 11691 pArgs->uInstance, 11692 pArgs->enmBus, 11693 pArgs->fUseHostIOCache, 11694 pArgs->fBuiltinIOCache, 11695 pArgs->fInsertDiskIntegrityDrv, 11696 pArgs->fSetupMerge, 11697 pArgs->uMergeSource, 11698 pArgs->uMergeTarget, 11699 pArgs->aMediumAtt, 11700 pArgs->aMachineState, 11702 11701 phrc, 11703 11702 true /* fAttachDetach */, -
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r105135 r105352 1595 1595 Console::SafeVMPtrQuiet ptrVM(mParent); 1596 1596 if (ptrVM.isOk()) /** @todo r=andy This apparently *never* is true at this point? */ 1597 ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 1598 3,this, aScreenId, false);1597 ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 3, 1598 this, aScreenId, false); 1599 1599 1600 1600 LogRelFlowFunc(("Attached to %d %RTuuid\n", aScreenId, aId.raw())); … … 2677 2677 alock.release(); 2678 2678 2679 int vrc = ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 2680 3,this, 0, true);2679 int vrc = ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 3, 2680 this, 0, true); 2681 2681 alock.acquire(); 2682 2682 … … 2697 2697 if (SUCCEEDED(hrc)) 2698 2698 { 2699 int vrc = ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 2700 3,this, aScreenId, false);2699 int vrc = ptrVM.vtable()->pfnVMR3ReqCallNoWaitU(ptrVM.rawUVM(), VMCPUID_ANY, (PFNRT)Display::i_InvalidateAndUpdateEMT, 3, 2700 this, aScreenId, false); 2701 2701 if (RT_FAILURE(vrc)) 2702 2702 hrc = setErrorBoth(VBOX_E_IPRT_ERROR, vrc, tr("Could not invalidate and update the screen %d (%Rrc)"), aScreenId, vrc); -
trunk/src/VBox/Main/src-client/EmulatedUSBImpl.cpp
r98278 r105352 288 288 HRESULT EUSBWEBCAM::Attach(Console *pConsole, PUVM pUVM, PCVMMR3VTABLE pVMM, const char *pszDriver) 289 289 { 290 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /* idDstCpu (saved state, see #6232) */, 291 (PFNRT)emulatedWebcamAttach, 4, 290 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /* idDstCpu (saved state, see #6232) */, (PFNRT)emulatedWebcamAttach, 4, 292 291 pUVM, pVMM, this, pszDriver); 293 292 if (RT_SUCCESS(vrc)) … … 299 298 HRESULT EUSBWEBCAM::Detach(Console *pConsole, PUVM pUVM, PCVMMR3VTABLE pVMM) 300 299 { 301 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /* idDstCpu (saved state, see #6232) */, 302 (PFNRT)emulatedWebcamDetach, 3, 300 int vrc = pVMM->pfnVMR3ReqCallWaitU(pUVM, 0 /* idDstCpu (saved state, see #6232) */, (PFNRT)emulatedWebcamDetach, 3, 303 301 pUVM, pVMM, this); 304 302 if (RT_SUCCESS(vrc)) -
trunk/src/VBox/VMM/VMMAll/VMAll.cpp
r98103 r105352 275 275 va_list va2; 276 276 va_copy(va2, va); /* Have to make a copy here or GCC will break. */ 277 rc = VMR3ReqPriorityCallWait(pVM, VMCPUID_ANY, 278 (PFNRT)vmR3SetRuntimeErrorV, 5,pVM, fFlags, pszErrorId, pszFormat, &va2);277 rc = VMR3ReqPriorityCallWait(pVM, VMCPUID_ANY, (PFNRT)vmR3SetRuntimeErrorV, 5, 278 pVM, fFlags, pszErrorId, pszFormat, &va2); 279 279 va_end(va2); 280 280 } … … 282 282 { 283 283 char *pszMessage = MMR3HeapAPrintfV(pVM, MM_TAG_VM, pszFormat, va); 284 rc = VMR3ReqCallNoWait(pVM, VMCPUID_ANY, 285 (PFNRT)vmR3SetRuntimeError, 4,pVM, fFlags, pszErrorId, pszMessage);284 rc = VMR3ReqCallNoWait(pVM, VMCPUID_ANY, (PFNRT)vmR3SetRuntimeError, 4, 285 pVM, fFlags, pszErrorId, pszMessage); 286 286 if (RT_FAILURE(rc)) 287 287 MMR3HeapFree(pszMessage); -
trunk/src/VBox/VMM/VMMR3/DBGFAddr.cpp
r103359 r105352 296 296 rc = dbgfR3AddrToPhysOnVCpu(pVCpu, pAddress, pGCPhys); 297 297 else 298 rc = VMR3ReqPriorityCallWaitU(pUVM, pVCpu->idCpu, 299 (PFNRT)dbgfR3AddrToPhysOnVCpu, 3,pVCpu, pAddress, pGCPhys);298 rc = VMR3ReqPriorityCallWaitU(pUVM, pVCpu->idCpu, (PFNRT)dbgfR3AddrToPhysOnVCpu, 3, 299 pVCpu, pAddress, pGCPhys); 300 300 } 301 301 return rc; -
trunk/src/VBox/VMM/VMMR3/DBGFDisas.cpp
r104672 r105352 662 662 else 663 663 rc = VMR3ReqPriorityCallWait(pVM, idCpu, (PFNRT)dbgfR3DisasInstrExOnVCpu, 9, 664 pVM, VMMGetCpuById(pVM, idCpu), pAddr->Sel, &pAddr->off, fFlags, pszOutput, cbOutput, NULL, pDisState); 664 pVM, VMMGetCpuById(pVM, idCpu), pAddr->Sel, &pAddr->off, fFlags, 665 pszOutput, cbOutput, NULL, pDisState); 665 666 return rc; 666 667 } -
trunk/src/VBox/VMM/VMMR3/DBGFInfo.cpp
r98103 r105352 1202 1202 if (idCpu == NIL_VMCPUID) 1203 1203 return dbgfR3Info(pUVM, NIL_VMCPUID, pszName, pszArgs, pHlp); 1204 return VMR3ReqPriorityCallWaitU(pUVM, idCpu, 1205 (PFNRT)dbgfR3Info, 5, pUVM, idCpu, pszName, pszArgs, pHlp); 1204 return VMR3ReqPriorityCallWaitU(pUVM, idCpu, (PFNRT)dbgfR3Info, 5, pUVM, idCpu, pszName, pszArgs, pHlp); 1206 1205 } 1207 1206 -
trunk/src/VBox/VMM/VMMR3/DBGFMem.cpp
r99051 r105352 661 661 */ 662 662 return VMR3ReqPriorityCallWaitU(pUVM, idCpu, (PFNRT)dbgfR3PagingDumpEx, 8, 663 pUVM, idCpu, fFlags, &cr3, &u64FirstAddr, &u64LastAddr, cMaxDepth, pHlp ? pHlp : DBGFR3InfoLogHlp()); 664 } 665 663 pUVM, idCpu, fFlags, &cr3, &u64FirstAddr, &u64LastAddr, cMaxDepth, 664 pHlp ? pHlp : DBGFR3InfoLogHlp()); 665 } 666 -
trunk/src/VBox/VMM/VMMR3/DBGFOS.cpp
r98103 r105352 520 520 * Pass it on to EMT(0). 521 521 */ 522 return VMR3ReqPriorityCallWaitU(pUVM, 0 /*idDstCpu*/, 523 (PFNRT)dbgfR3OSQueryNameAndVersion, 5,pUVM, pszName, cchName, pszVersion, cchVersion);522 return VMR3ReqPriorityCallWaitU(pUVM, 0 /*idDstCpu*/, (PFNRT)dbgfR3OSQueryNameAndVersion, 5, 523 pUVM, pszName, cchName, pszVersion, cchVersion); 524 524 } 525 525 -
trunk/src/VBox/VMM/VMMR3/DBGFStack.cpp
r103374 r105352 803 803 PCDBGFADDRESS pAddrStack, 804 804 PCDBGFADDRESS pAddrPC, 805 RTDBGRETURNTYPE enmReturnType,805 RTDBGRETURNTYPE const *penmReturnType, 806 806 PCDBGFSTACKFRAME *ppFirstFrame) 807 807 { 808 DBGFUNWINDCTX UnwindCtx(pUVM, idCpu, pCtx, hAs); 808 RTDBGRETURNTYPE const enmReturnType = *penmReturnType; /* darwin/arm64 fun, see @bugref{10725} */ 809 DBGFUNWINDCTX UnwindCtx(pUVM, idCpu, pCtx, hAs); 809 810 810 811 /* alloc first frame. */ … … 1043 1044 AssertFailedReturn(VERR_INVALID_PARAMETER); 1044 1045 } 1045 return VMR3ReqPriorityCallWaitU(pUVM, idCpu, (PFNRT)dbgfR3StackWalkCtxFull, 10 ,1046 pUVM, idCpu, pCtx, hAs, enmCodeType, 1047 pAddrFrame, pAddrStack, pAddrPC,enmReturnType, ppFirstFrame);1046 return VMR3ReqPriorityCallWaitU(pUVM, idCpu, (PFNRT)dbgfR3StackWalkCtxFull, 10 | VMREQ_F_EXTRA_ARGS_ALL_PTRS, 1047 pUVM, idCpu, pCtx, hAs, enmCodeType, pAddrFrame, pAddrStack, pAddrPC, 1048 &enmReturnType, ppFirstFrame); 1048 1049 } 1049 1050 -
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r104840 r105352 1519 1519 1520 1520 PVMREQ pReq; 1521 int rc = VMR3ReqCallVU(pDevIns->Internal.s.pVMR3->pUVM, idDstCpu, &pReq, RT_INDEFINITE_WAIT, VMREQFLAGS_VBOX_STATUS | VMREQFLAGS_PRIORITY,1522 pfnFunction, cArgs, Args);1521 int rc = VMR3ReqCallVU(pDevIns->Internal.s.pVMR3->pUVM, idDstCpu, &pReq, RT_INDEFINITE_WAIT, 1522 VMREQFLAGS_VBOX_STATUS | VMREQFLAGS_PRIORITY, pfnFunction, cArgs, Args); 1523 1523 if (RT_SUCCESS(rc)) 1524 1524 rc = pReq->iStatus; -
trunk/src/VBox/VMM/VMMR3/PGMPhys.cpp
r104990 r105352 5552 5552 memcpy(paPhysPageCopy, paPhysPage, cbPhysPage); 5553 5553 5554 rc = VMR3ReqCallNoWait(pVM, VMCPUID_ANY_QUEUE, (PFNRT)pgmR3PhysChangeMemBalloonHelper, 4, pVM, fInflate, cPages, paPhysPageCopy); 5554 rc = VMR3ReqCallNoWait(pVM, VMCPUID_ANY_QUEUE, (PFNRT)pgmR3PhysChangeMemBalloonHelper, 4, 5555 pVM, fInflate, cPages, paPhysPageCopy); 5555 5556 AssertRC(rc); 5556 5557 } -
trunk/src/VBox/VMM/VMMR3/VMReq.cpp
r98103 r105352 71 71 * @param pfnFunction Pointer to the function to call. 72 72 * @param cArgs Number of arguments following in the ellipsis. 73 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 74 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 75 * is ORed in. 73 76 * @param ... Function arguments. 74 77 * … … 108 111 * @param pfnFunction Pointer to the function to call. 109 112 * @param cArgs Number of arguments following in the ellipsis. 113 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 114 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 115 * is ORed in. 110 116 * @param ... Function arguments. 111 117 * … … 142 148 * @param pfnFunction Pointer to the function to call. 143 149 * @param cArgs Number of arguments following in the ellipsis. 150 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 151 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 152 * is ORed in. 144 153 * @param ... Function arguments. 145 154 * … … 172 181 * @param pfnFunction Pointer to the function to call. 173 182 * @param cArgs Number of arguments following in the ellipsis. 183 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 184 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 185 * is ORed in. 174 186 * @param ... Function arguments. 175 187 * … … 201 213 * @param pfnFunction Pointer to the function to call. 202 214 * @param cArgs Number of arguments following in the ellipsis. 215 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 216 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 217 * is ORed in. 203 218 * @param ... Function arguments. 204 219 * … … 233 248 * @param pfnFunction Pointer to the function to call. 234 249 * @param cArgs Number of arguments following in the ellipsis. 250 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 251 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 252 * is ORed in. 235 253 * @param ... Function arguments. 236 254 * … … 264 282 * @param pfnFunction Pointer to the function to call. 265 283 * @param cArgs Number of arguments following in the ellipsis. 284 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 285 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 286 * is ORed in. 266 287 * @param ... Function arguments. 267 288 * … … 300 321 * @param pfnFunction Pointer to the function to call. 301 322 * @param cArgs Number of arguments following in the ellipsis. 323 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 324 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 325 * is ORed in. 302 326 * @param ... Function arguments. 303 327 * … … 338 362 * @param pfnFunction Pointer to the function to call. 339 363 * @param cArgs Number of arguments following in the ellipsis. 364 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 365 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 366 * is ORed in. 340 367 * @param ... Function arguments. 341 368 * … … 372 399 * @param pfnFunction Pointer to the function to call. 373 400 * @param cArgs Number of arguments following in the ellipsis. 401 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 402 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 403 * is ORed in. 374 404 * @param ... Function arguments. 375 405 * … … 414 444 * @param pfnFunction Pointer to the function to call. 415 445 * @param cArgs Number of arguments following in the ellipsis. 446 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 447 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 448 * is ORed in. 416 449 * @param ... Function arguments. 417 450 * … … 454 487 * @param fFlags A combination of the VMREQFLAGS values. 455 488 * @param cArgs Number of arguments following in the ellipsis. 489 * The max is VMREQ_MAX_ARGS (9) (ARM64/darwin 490 * peculiarities), unless VMREQ_F_EXTRA_ARGS_ALL_PTRS 491 * is ORed in. 456 492 * Stuff which differs in size from uintptr_t is gonna make trouble, so don't try! 457 493 * @param Args Argument vector. … … 465 501 * hosts because 'int' is 32-bit. 466 502 * Use (void *)NULL or (uintptr_t)0 instead of NULL. 503 * - The max number of arguments is currently limited to 9, because 504 * on macOS/arm64 arguments passed on the stack that are 32-bit 505 * or smaller will not get a full 64-bit stack slot. So, 506 * we cannot pretend @a pfnFunction takes a list of @a cArgs 507 * uintptr_t parameters, unless all parameters above 9 actually 508 * are more than 32 bits wide. (This would've kind of worked 509 * iff the variadict functions didn't use different size round up 510 * and alignment rules.) See @bugref{10725}. 467 511 */ 468 512 VMMR3DECL(int) VMR3ReqCallVU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, RTMSINTERVAL cMillies, uint32_t fFlags, 469 513 PFNRT pfnFunction, unsigned cArgs, va_list Args) 470 514 { 471 LogFlow(("VMR3ReqCallV: idDstCpu=%u cMillies=%d fFlags=%#x pfnFunction=%p cArgs=% d\n", idDstCpu, cMillies, fFlags, pfnFunction, cArgs));515 LogFlow(("VMR3ReqCallV: idDstCpu=%u cMillies=%d fFlags=%#x pfnFunction=%p cArgs=%#x\n", idDstCpu, cMillies, fFlags, pfnFunction, cArgs)); 472 516 473 517 /* … … 482 526 *ppReq = NULL; 483 527 } 528 AssertMsgReturn( cArgs <= VMREQ_MAX_ARGS 529 || ( (cArgs & VMREQ_F_EXTRA_ARGS_ALL_PTRS) 530 && (cArgs & ~(unsigned)VMREQ_F_EXTRA_ARGS_ALL_PTRS) <= VMREQ_MAX_ARGS_EXTENDED), 531 ("cArgs=%#x\n", cArgs), 532 VERR_TOO_MUCH_DATA); 533 cArgs &= ~(unsigned)VMREQ_F_EXTRA_ARGS_ALL_PTRS; 534 535 /* 536 * Allocate request 537 */ 484 538 PVMREQ pReq = NULL; 485 AssertMsgReturn(cArgs * sizeof(uintptr_t) <= sizeof(pReq->u.Internal.aArgs), 486 ("cArg=%d\n", cArgs), 487 VERR_TOO_MUCH_DATA); 488 489 /* 490 * Allocate request 491 */ 539 AssertCompile(VMREQ_MAX_ARGS_EXTENDED * sizeof(uintptr_t) <= sizeof(pReq->u.Internal.aArgs)); 492 540 int rc = VMR3ReqAlloc(pUVM, &pReq, VMREQTYPE_INTERNAL, idDstCpu); 493 541 if (RT_FAILURE(rc)) … … 497 545 * Initialize the request data. 498 546 */ 499 pReq->fFlags = fFlags;500 pReq->u.Internal.pfn = pfnFunction;501 pReq->u.Internal.cArgs = cArgs;547 pReq->fFlags = fFlags; 548 pReq->u.Internal.pfn = pfnFunction; 549 pReq->u.Internal.cArgs = cArgs; 502 550 for (unsigned iArg = 0; iArg < cArgs; iArg++) 503 551 pReq->u.Internal.aArgs[iArg] = va_arg(Args, uintptr_t); -
trunk/src/VBox/VMM/testcase/tstAnimate.cpp
r99897 r105352 848 848 rc = VMR3ReqCallWaitU(pUVM, VMCPUID_ANY, (PFNRT)loadMem, 3, pVM, FileRawMem, &offRawMem); 849 849 else 850 rc = VMR3ReqCallWaitU(pUVM, VMCPUID_ANY, (PFNRT)SSMR3Load, 851 7,pVM, pszSavedState, (uintptr_t)NULL /*pStreamOps*/, (uintptr_t)NULL /*pvUser*/,850 rc = VMR3ReqCallWaitU(pUVM, VMCPUID_ANY, (PFNRT)SSMR3Load, 7, 851 pVM, pszSavedState, (uintptr_t)NULL /*pStreamOps*/, (uintptr_t)NULL /*pvUser*/, 852 852 SSMAFTER_DEBUG_IT, (uintptr_t)NULL /*pfnProgress*/, (uintptr_t)NULL /*pvProgressUser*/); 853 853 if (RT_SUCCESS(rc)) -
trunk/src/VBox/VMM/testcase/tstVMREQ.cpp
r105332 r105352 330 330 CHECK_ARG_EX(8, uArg8, a_Type); \ 331 331 return VINF_SUCCESS; \ 332 } \333 \ 334 \ 332 } 333 334 /* The max is now 9. See @bugref{10725}. 335 335 static DECLCALLBACK(int) a_BaseName##_10Args(a_Type uArg0, a_Type uArg1, a_Type uArg2, a_Type uArg3, a_Type uArg4, \ 336 336 a_Type uArg5, a_Type uArg6, a_Type uArg7, a_Type uArg8, a_Type uArg9) \ … … 458 458 CHECK_ARG_EX(14, uArg14, a_Type); \ 459 459 return VINF_SUCCESS; \ 460 } 460 } */ 461 461 462 462 #if ARCH_BITS == 64 … … 561 561 cCalled += 1; \ 562 562 RTTEST_CHECK(g_hTest, g_cCalled == cCalled); \ 563 \ 563 /* The max is now 9. See @bugref{10725}. 564 564 rc = VMR3ReqCallWaitU(pUVM, VMCPUID_ANY, (PFNRT)a_CallbackBaseName##_10Args, 10, \ 565 565 a_fnRandArg(a_Type, 0), a_fnRandArg(a_Type, 1), a_fnRandArg(a_Type, 2), a_fnRandArg(a_Type, 3), \ … … 611 611 RTTEST_CHECK_RC(g_hTest, rc, VINF_SUCCESS); \ 612 612 cCalled += 1; \ 613 RTTEST_CHECK(g_hTest, g_cCalled == cCalled) 613 RTTEST_CHECK(g_hTest, g_cCalled == cCalled) */ 614 614 615 615 -
trunk/src/bldprogs/VBoxCompilerPlugInsGcc.cpp
r103960 r105352 244 244 245 245 /** Attribute specifications. */ 246 static const struct attribute_spec g_ AttribSpecs[] =246 static const struct attribute_spec g_aAttribSpecs[] = 247 247 { 248 248 { … … 809 809 dprintf("RegisterAttributesEvent: pvEventData=%p\n", pvEventData); 810 810 811 register_attribute(&g_AttribSpecs[0]);812 register_attribute(&g_AttribSpecs[1]);811 for (unsigned i = 0; i < RT_ELEMENTS(g_aAttribSpecs); i++) 812 register_attribute(&g_aAttribSpecs[i]); 813 813 } 814 814
Note:
See TracChangeset
for help on using the changeset viewer.