VirtualBox

Changeset 24467 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Nov 6, 2009 5:01:09 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
54538
Message:

Document VMR3Req* caveats.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMReq.cpp

    r23191 r24467  
    7272 * @param   pfnFunction     Pointer to the function to call.
    7373 * @param   cArgs           Number of arguments following in the ellipsis.
    74  *                          Not possible to pass 64-bit arguments!
    7574 * @param   ...             Function arguments.
     75 *
     76 * @remarks See remarks on VMR3ReqCallVU.
    7677 */
    7778VMMR3DECL(int) VMR3ReqCall(PVM pVM, VMCPUID idDstCpu, PVMREQ *ppReq, unsigned cMillies, uint32_t fFlags,
     
    103104 * @param   pfnFunction     Pointer to the function to call.
    104105 * @param   cArgs           Number of arguments following in the ellipsis.
    105  *                          Not possible to pass 64-bit arguments!
    106106 * @param   ...             Function arguments.
     107 *
     108 * @remarks See remarks on VMR3ReqCallVU.
    107109 */
    108110VMMR3DECL(int) VMR3ReqCallWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    138140 * @param   pfnFunction     Pointer to the function to call.
    139141 * @param   cArgs           Number of arguments following in the ellipsis.
    140  *                          Not possible to pass 64-bit arguments!
    141142 * @param   ...             Function arguments.
     143 *
     144 * @remarks See remarks on VMR3ReqCallVU.
    142145 */
    143146VMMR3DECL(int) VMR3ReqCallWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    170173 * @param   pfnFunction     Pointer to the function to call.
    171174 * @param   cArgs           Number of arguments following in the ellipsis.
    172  *                          Not possible to pass 64-bit arguments!
    173175 * @param   ...             Function arguments.
     176 *
     177 * @remarks See remarks on VMR3ReqCallVU.
    174178 */
    175179VMMR3DECL(int) VMR3ReqCallNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    198202 * @param   pfnFunction     Pointer to the function to call.
    199203 * @param   cArgs           Number of arguments following in the ellipsis.
    200  *                          Not possible to pass 64-bit arguments!
    201204 * @param   ...             Function arguments.
     205 *
     206 * @remarks See remarks on VMR3ReqCallVU.
    202207 */
    203208VMMR3DECL(int) VMR3ReqCallNoWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    226231 * @param   pfnFunction     Pointer to the function to call.
    227232 * @param   cArgs           Number of arguments following in the ellipsis.
    228  *                          Not possible to pass 64-bit arguments!
    229233 * @param   ...             Function arguments.
     234 *
     235 * @remarks See remarks on VMR3ReqCallVU.
    230236 */
    231237VMMR3DECL(int) VMR3ReqCallVoidWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    256262 * @param   pfnFunction     Pointer to the function to call.
    257263 * @param   cArgs           Number of arguments following in the ellipsis.
    258  *                          Not possible to pass 64-bit arguments!
    259264 * @param   ...             Function arguments.
     265 *
     266 * @remarks See remarks on VMR3ReqCallVU.
    260267 */
    261268VMMR3DECL(int) VMR3ReqCallVoidWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    286293 * @param   pfnFunction     Pointer to the function to call.
    287294 * @param   cArgs           Number of arguments following in the ellipsis.
    288  *                          Not possible to pass 64-bit arguments!
    289295 * @param   ...             Function arguments.
     296 *
     297 * @remarks See remarks on VMR3ReqCallVU.
    290298 */
    291299VMMR3DECL(int) VMR3ReqCallVoidNoWait(PVM pVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    316324 * @param   pfnFunction     Pointer to the function to call.
    317325 * @param   cArgs           Number of arguments following in the ellipsis.
    318  *                          Not possible to pass 64-bit arguments!
    319326 * @param   ...             Function arguments.
     327 *
     328 * @remarks See remarks on VMR3ReqCallVU.
    320329 */
    321330VMMR3DECL(int) VMR3ReqCallVoidNoWaitU(PUVM pUVM, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, ...)
     
    357366 * @param   pfnFunction     Pointer to the function to call.
    358367 * @param   cArgs           Number of arguments following in the ellipsis.
    359  *                          Not possible to pass 64-bit arguments!
    360368 * @param   ...             Function arguments.
     369 *
     370 * @remarks See remarks on VMR3ReqCallVU.
    361371 */
    362372VMMR3DECL(int) VMR3ReqCallU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, unsigned cMillies, unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...)
     
    397407 *                          Stuff which differs in size from uintptr_t is gonna make trouble, so don't try!
    398408 * @param   Args            Argument vector.
     409 *
     410 * @remarks Caveats:
     411 *              - Do not pass anything which is larger than an uintptr_t.
     412 *              - 64-bit integers are larger than uintptr_t on 32-bit hosts.
     413 *                Pass integers > 32-bit by reference (pointers).
     414 *              - Don't use NULL since it should be the integer 0 in C++ and may
     415 *                therefore end up with garbage in the bits 63:32 on 64-bit
     416 *                hosts because 'int' is 32-bit.
     417 *                Use (void *)NULL or (uintptr_t)0 instead of NULL.
    399418 */
    400419VMMR3DECL(int) VMR3ReqCallVU(PUVM pUVM, VMCPUID idDstCpu, PVMREQ *ppReq, unsigned cMillies, unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, va_list Args)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette