VirtualBox

Changeset 24468 in vbox for trunk/include


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

iprt/req.h: Document RTReqCall* caveats better.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/req.h

    r24100 r24468  
    209209 * @param   pfnFunction     Pointer to the function to call.
    210210 * @param   cArgs           Number of arguments following in the ellipsis.
    211  *                          The arguments must be of integer or pointer type and
    212  *                          not bigger in size than uintptr_t. Do not try pass
    213  *                          64-bit integers directly in portable code.
    214211 * @param   ...             Function arguments.
     212 *
     213 * @remarks See remarks on RTReqCallV.
    215214 */
    216215RTDECL(int) RTReqCall(PRTREQQUEUE pQueue, PRTREQ *ppReq, unsigned cMillies, PFNRT pfnFunction, unsigned cArgs, ...);
     
    237236 * @param   pfnFunction     Pointer to the function to call.
    238237 * @param   cArgs           Number of arguments following in the ellipsis.
    239  *                          The arguments must be of integer or pointer type and
    240  *                          not bigger in size than uintptr_t. Do not try pass
    241  *                          64-bit integers directly in portable code.
    242238 * @param   ...             Function arguments.
     239 *
     240 * @remarks See remarks on RTReqCallV.
    243241 */
    244242RTDECL(int) RTReqCallVoid(PRTREQQUEUE pQueue, PRTREQ *ppReq, unsigned cMillies, PFNRT pfnFunction, unsigned cArgs, ...);
     
    267265 * @param   pfnFunction     Pointer to the function to call.
    268266 * @param   cArgs           Number of arguments following in the ellipsis.
    269  *                          The arguments must be of integer or pointer type and
    270  *                          not bigger in size than uintptr_t. Do not try pass
    271  *                          64-bit integers directly in portable code.
    272267 * @param   ...             Function arguments.
     268 *
     269 * @remarks See remarks on RTReqCallV.
    273270 */
    274271RTDECL(int) RTReqCallEx(PRTREQQUEUE pQueue, PRTREQ *ppReq, unsigned cMillies, unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, ...);
     
    297294 * @param   pfnFunction     Pointer to the function to call.
    298295 * @param   cArgs           Number of arguments following in the ellipsis.
    299  *                          The arguments must be of integer or pointer type and
    300  *                          not bigger in size than uintptr_t. Do not try pass
    301  *                          64-bit integers directly in portable code.
    302296 * @param   Args            Variable argument vector.
     297 *
     298 * @remarks Caveats:
     299 *              - Do not pass anything which is larger than an uintptr_t.
     300 *              - 64-bit integers are larger than uintptr_t on 32-bit hosts.
     301 *                Pass integers > 32-bit by reference (pointers).
     302 *              - Don't use NULL since it should be the integer 0 in C++ and may
     303 *                therefore end up with garbage in the bits 63:32 on 64-bit
     304 *                hosts because 'int' is 32-bit.
     305 *                Use (void *)NULL or (uintptr_t)0 instead of NULL.
    303306 */
    304307RTDECL(int) RTReqCallV(PRTREQQUEUE pQueue, PRTREQ *ppReq, unsigned cMillies, unsigned fFlags, PFNRT pfnFunction, unsigned cArgs, va_list Args);
Note: See TracChangeset for help on using the changeset viewer.

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