Changeset 105377 in vbox
- Timestamp:
- Jul 17, 2024 2:06:05 PM (9 months ago)
- svn:sync-xref-src-repo-rev:
- 164030
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/pdmdev.h
r105352 r105377 3438 3438 */ 3439 3439 DECLR3CALLBACKMEMBER(int, pfnVMReqCallNoWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, 3440 va_list Args)) RT_IPRT_CALL _ATTR(3, 4, 0);3440 va_list Args)) RT_IPRT_CALLREQ_ATTR(3, 4, 0); 3441 3441 3442 3442 /** … … 3460 3460 */ 3461 3461 DECLR3CALLBACKMEMBER(int, pfnVMReqPriorityCallWaitV,(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, 3462 va_list Args)) RT_IPRT_CALL _ATTR(3, 4, 0);3462 va_list Args)) RT_IPRT_CALLREQ_ATTR(3, 4, 0); 3463 3463 3464 3464 /** … … 7614 7614 * @remarks See remarks on VMR3ReqCallVU. 7615 7615 */ 7616 DECLINLINE(int) RT_IPRT_CALL _ATTR(3, 4, 5)7616 DECLINLINE(int) RT_IPRT_CALLREQ_ATTR(3, 4, 5) 7617 7617 PDMDevHlpVMReqCallNoWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7618 7618 { … … 7643 7643 * @remarks See remarks on VMR3ReqCallVU. 7644 7644 */ 7645 DECLINLINE(int) RT_IPRT_CALL _ATTR(3, 4, 5)7645 DECLINLINE(int) RT_IPRT_CALLREQ_ATTR(3, 4, 5) 7646 7646 PDMDevHlpVMReqPriorityCallWait(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) 7647 7647 { -
trunk/include/VBox/vmm/vmapi.h
r105352 r105377 445 445 #define VMREQ_F_EXTRA_ARGS_ALL_PTRS 0x00008000U 446 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);447 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(6, 7, 8); 448 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 PFNRT pfnFunction, unsigned cArgs, va_list Args) RT_IPRT_CALLREQ_ATTR(6, 7, 0); 450 VMMR3_INT_DECL(int) VMR3ReqCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 451 VMMR3DECL(int) VMR3ReqCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 452 VMMR3DECL(int) VMR3ReqCallNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 453 VMMR3DECL(int) VMR3ReqCallNoWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 454 VMMR3_INT_DECL(int) VMR3ReqCallVoidWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 455 VMMR3DECL(int) VMR3ReqCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 456 VMMR3DECL(int) VMR3ReqCallVoidNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 457 VMMR3DECL(int) VMR3ReqPriorityCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 458 VMMR3DECL(int) VMR3ReqPriorityCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 459 VMMR3DECL(int) VMR3ReqPriorityCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 460 460 VMMR3DECL(int) VMR3ReqAlloc(PUVM pUVM, PVMREQ *ppReq, VMREQTYPE enmType, VMCPUID idDstCpu); 461 461 VMMR3DECL(int) VMR3ReqFree(PVMREQ pReq); -
trunk/include/iprt/cdefs.h
r105352 r105377 1513 1513 #endif 1514 1514 1515 /** @def RT_IPRT_CALL_ATTR 1516 * Identifies a function taking an IPRT format string. 1515 /** @def RT_IPRT_CALREQL_ATTR 1516 * Identifies a function taking a function call request with parameter list and 1517 * everything for asynchronous execution. 1517 1518 * @param a_iFn The index (1-based) of the function pointer argument. 1518 1519 * @param a_iArgc The index (1-based) of the argument count. … … 1521 1522 */ 1522 1523 #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)1524 # define RT_IPRT_CALLREQ_ATTR(a_iFn, a_iArgc, a_iArgs) __attribute__((__iprt_callreq__(a_iFn, a_iArgc, a_iArgs))) 1525 #else 1526 # define RT_IPRT_CALLREQ_ATTR(a_iFn, a_iArgc, a_iArgs) 1526 1527 #endif 1527 1528 -
trunk/include/iprt/req.h
r105353 r105377 173 173 */ 174 174 RTDECL(int) RTReqQueueCall(RTREQQUEUE hQueue, PRTREQ *ppReq, RTMSINTERVAL cMillies, 175 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(4, 5, 6);175 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(4, 5, 6); 176 176 177 177 /** … … 201 201 */ 202 202 RTDECL(int) RTReqQueueCallVoid(RTREQQUEUE hQueue, PRTREQ *ppReq, RTMSINTERVAL cMillies, 203 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(4, 5, 6);203 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(4, 5, 6); 204 204 205 205 /** … … 232 232 */ 233 233 RTDECL(int) RTReqQueueCallEx(RTREQQUEUE hQueue, PRTREQ *ppReq, RTMSINTERVAL cMillies, unsigned fFlags, 234 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(5, 6, 7);234 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(5, 6, 7); 235 235 236 236 /** … … 278 278 */ 279 279 RTDECL(int) RTReqQueueCallV(RTREQQUEUE hQueue, PRTREQ *ppReq, RTMSINTERVAL cMillies, unsigned fFlags, 280 PFNRT pfnFunction, unsigned cArgs, va_list Args) RT_IPRT_CALL _ATTR(5, 6, 0);280 PFNRT pfnFunction, unsigned cArgs, va_list Args) RT_IPRT_CALLREQ_ATTR(5, 6, 0); 281 281 282 282 /** -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp
r105353 r105377 70 70 static DECLCALLBACK(int) vgsvcGstCtrlProcessOnOutput(PVBOXSERVICECTRLPROCESS pThis, const PVBGLR3GUESTCTRLCMDCTX pHostCtx, 71 71 uint32_t uHandle, uint32_t cbToRead, uint32_t uFlags); 72 static int vgsvcGstCtrlProcessRequestExV(PVBOXSERVICECTRLPROCESS pProcess, bool fAsync, RTMSINTERVAL cMsTimeout, 73 PFNRT pfnFunction, unsigned cArgs, 74 va_list Args) RT_IPRT_CALLREQ_ATTR(4, 5, 0); /* attrib req prototype */ 75 static int vgsvcGstCtrlProcessRequestAsync(PVBOXSERVICECTRLPROCESS pProcess, PFNRT pfnFunction, 76 unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(2, 3, 4); /* ditto */ 77 #if 0 /* unused */ 78 static int vgsvcGstCtrlProcessRequestWait(PVBOXSERVICECTRLPROCESS pProcess, RTMSINTERVAL cMsTimeout, 79 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 80 #endif 72 81 73 82 … … 2082 2091 2083 2092 2084 static int vgsvcGstCtrlProcessRequestExV(PVBOXSERVICECTRLPROCESS pProcess, const PVBGLR3GUESTCTRLCMDCTX pHostCtx, 2085 bool fAsync, RTMSINTERVAL uTimeoutMS, 2086 PFNRT pfnFunction, unsigned cArgs, va_list Args) RT_IPRT_CALL_ATTR(5, 6, 0) 2087 { 2088 RT_NOREF1(pHostCtx); 2093 static int vgsvcGstCtrlProcessRequestExV(PVBOXSERVICECTRLPROCESS pProcess, bool fAsync, RTMSINTERVAL cMsTimeout, 2094 PFNRT pfnFunction, unsigned cArgs, va_list Args) 2095 { 2089 2096 AssertPtrReturn(pProcess, VERR_INVALID_POINTER); 2090 /* pHostCtx is optional. */2091 2097 AssertPtrReturn(pfnFunction, VERR_INVALID_POINTER); 2092 2098 if (!fAsync) … … 2097 2103 { 2098 2104 #ifdef DEBUG 2099 VGSvcVerbose(3, "[PID %RU32]: vgsvcGstCtrlProcessRequestExV fAsync=%RTbool, uTimeoutMS=%RU32, cArgs=%u\n",2100 pProcess->uPID, fAsync, uTimeoutMS, cArgs);2105 VGSvcVerbose(3, "[PID %RU32]: vgsvcGstCtrlProcessRequestExV fAsync=%RTbool, cMsTimeout=%RU32, cArgs=%u\n", 2106 pProcess->uPID, fAsync, cMsTimeout, cArgs); 2101 2107 #endif 2102 2108 uint32_t fFlags = RTREQFLAGS_IPRT_STATUS; 2103 2109 if (fAsync) 2104 2110 { 2105 Assert( uTimeoutMS== 0);2111 Assert(cMsTimeout == 0); 2106 2112 fFlags |= RTREQFLAGS_NO_WAIT; 2107 2113 } 2108 2114 2109 2115 PRTREQ hReq = NIL_RTREQ; 2110 rc = RTReqQueueCallV(pProcess->hReqQueue, &hReq, uTimeoutMS, fFlags, pfnFunction, cArgs, Args);2116 rc = RTReqQueueCallV(pProcess->hReqQueue, &hReq, cMsTimeout, fFlags, pfnFunction, cArgs, Args); 2111 2117 RTReqRelease(hReq); 2112 2118 if (RT_SUCCESS(rc)) … … 2143 2149 2144 2150 2145 static int vgsvcGstCtrlProcessRequestAsync(PVBOXSERVICECTRLPROCESS pProcess, const PVBGLR3GUESTCTRLCMDCTX pHostCtx, 2146 PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL_ATTR(3, 4, 5) 2151 static int vgsvcGstCtrlProcessRequestAsync(PVBOXSERVICECTRLPROCESS pProcess, PFNRT pfnFunction, unsigned cArgs, ...) 2152 { 2153 AssertPtrReturn(pProcess, VERR_INVALID_POINTER); 2154 AssertPtrReturn(pfnFunction, VERR_INVALID_POINTER); 2155 2156 va_list va; 2157 va_start(va, cArgs); 2158 int rc = vgsvcGstCtrlProcessRequestExV(pProcess, true /* fAsync */, 0 /* cMsTimeout */, 2159 pfnFunction, cArgs, va); 2160 va_end(va); 2161 2162 return rc; 2163 } 2164 2165 2166 #if 0 /* unused */ 2167 static int vgsvcGstCtrlProcessRequestWait(PVBOXSERVICECTRLPROCESS pProcess, RTMSINTERVAL cMsTimeout, 2168 PFNRT pfnFunction, unsigned cArgs, ...) 2147 2169 { 2148 2170 AssertPtrReturn(pProcess, VERR_INVALID_POINTER); … … 2152 2174 va_list va; 2153 2175 va_start(va, cArgs); 2154 int rc = vgsvcGstCtrlProcessRequestExV(pProcess, pHostCtx, true /* fAsync */, 0 /* uTimeoutMS */,2176 int rc = vgsvcGstCtrlProcessRequestExV(pProcess, false /* fAsync */, cMsTimeout, 2155 2177 pfnFunction, cArgs, va); 2156 2178 va_end(va); … … 2158 2180 return rc; 2159 2181 } 2160 2161 2162 #if 0 /* unused */2163 static int vgsvcGstCtrlProcessRequestWait(PVBOXSERVICECTRLPROCESS pProcess, const PVBGLR3GUESTCTRLCMDCTX pHostCtx,2164 RTMSINTERVAL uTimeoutMS, PFNRT pfnFunction, unsigned cArgs, ...)2165 {2166 AssertPtrReturn(pProcess, VERR_INVALID_POINTER);2167 /* pHostCtx is optional. */2168 AssertPtrReturn(pfnFunction, VERR_INVALID_POINTER);2169 2170 va_list va;2171 va_start(va, cArgs);2172 int rc = vgsvcGstCtrlProcessRequestExV(pProcess, pHostCtx, false /* fAsync */, uTimeoutMS,2173 pfnFunction, cArgs, va);2174 va_end(va);2175 2176 return rc;2177 }2178 2182 #endif 2179 2183 … … 2183 2187 { 2184 2188 if (!ASMAtomicReadBool(&pProcess->fShutdown) && !ASMAtomicReadBool(&pProcess->fStopped)) 2185 return vgsvcGstCtrlProcessRequestAsync(pProcess, pHostCtx,(PFNRT)vgsvcGstCtrlProcessOnInput, 5 /*cArgs*/,2189 return vgsvcGstCtrlProcessRequestAsync(pProcess, (PFNRT)vgsvcGstCtrlProcessOnInput, 5 /*cArgs*/, 2186 2190 pProcess, pHostCtx, fPendingClose, pvBuf, cbBuf); 2187 2191 … … 2194 2198 { 2195 2199 if (!ASMAtomicReadBool(&pProcess->fShutdown) && !ASMAtomicReadBool(&pProcess->fStopped)) 2196 return vgsvcGstCtrlProcessRequestAsync(pProcess, pHostCtx,(PFNRT)vgsvcGstCtrlProcessOnOutput, 5 /*cArgs*/,2200 return vgsvcGstCtrlProcessRequestAsync(pProcess, (PFNRT)vgsvcGstCtrlProcessOnOutput, 5 /*cArgs*/, 2197 2201 pProcess, pHostCtx, uHandle, cbToRead, fFlags); 2198 2202 … … 2204 2208 { 2205 2209 if (!ASMAtomicReadBool(&pProcess->fShutdown) && !ASMAtomicReadBool(&pProcess->fStopped)) 2206 return vgsvcGstCtrlProcessRequestAsync(pProcess, NULL /* pHostCtx */, (PFNRT)vgsvcGstCtrlProcessOnTerm, 1 /*cArgs*/, 2207 pProcess); 2210 return vgsvcGstCtrlProcessRequestAsync(pProcess, (PFNRT)vgsvcGstCtrlProcessOnTerm, 1 /*cArgs*/, pProcess); 2208 2211 2209 2212 return vgsvcGstCtrlProcessOnTerm(pProcess); -
trunk/src/VBox/Devices/Network/slirp/libslirp.h
r105353 r105377 84 84 85 85 int slirp_call(void *pvUser, PRTREQ *ppReq, RTMSINTERVAL cMillies, 86 unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(5, 6, 7);86 unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(5, 6, 7); 87 87 88 88 int slirp_call_hostres(void *pvUser, PRTREQ *ppReq, RTMSINTERVAL cMillies, 89 unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(5, 6, 7);89 unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(5, 6, 7); 90 90 91 91 -
trunk/src/VBox/Devices/USB/VUSBInternal.h
r105353 r105377 505 505 DECLHIDDEN(void) vusbDevCancelAllUrbs(PVUSBDEV pDev, bool fDetaching); 506 506 DECLHIDDEN(int) vusbDevIoThreadExecV(PVUSBDEV pDev, uint32_t fFlags, PFNRT pfnFunction, 507 unsigned cArgs, va_list Args) RT_IPRT_CALL _ATTR(3, 4, 0);507 unsigned cArgs, va_list Args) RT_IPRT_CALLREQ_ATTR(3, 4, 0); 508 508 DECLHIDDEN(int) vusbDevIoThreadExec(PVUSBDEV pDev, uint32_t fFlags, PFNRT pfnFunction, 509 unsigned cArgs, ...) RT_IPRT_CALL _ATTR(3, 4, 5);510 DECLHIDDEN(int) vusbDevIoThreadExecSync(PVUSBDEV pDev, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALL _ATTR(2, 3, 4);509 unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(3, 4, 5); 510 DECLHIDDEN(int) vusbDevIoThreadExecSync(PVUSBDEV pDev, PFNRT pfnFunction, unsigned cArgs, ...) RT_IPRT_CALLREQ_ATTR(2, 3, 4); 511 511 DECLHIDDEN(int) vusbUrbCancelWorker(PVUSBURB pUrb, CANCELMODE enmMode); 512 512 -
trunk/src/VBox/Runtime/include/internal/thread.h
r105353 r105377 291 291 DECLHIDDEN(bool) rtThreadPosixPriorityProxyStart(void); 292 292 DECLHIDDEN(int) rtThreadPosixPriorityProxyCall(PRTTHREADINT pTargetThread, PFNRT pfnFunction, 293 int cArgs, ...) RT_IPRT_CALL _ATTR(2, 3, 4);293 int cArgs, ...) RT_IPRT_CALLREQ_ATTR(2, 3, 4); 294 294 # endif 295 295 #endif
Note:
See TracChangeset
for help on using the changeset viewer.