types.h revision e133b25a69c257839e69b4c5f025a6e0c1edc68f
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * IPRT - Types.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * available from http://www.virtualbox.org. This file is free software;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * you can redistribute it and/or modify it under the terms of the GNU
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * General Public License (GPL) as published by the Free Software
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * The contents of this file may alternatively be used under the terms
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * of the Common Development and Distribution License Version 1.0
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * VirtualBox OSE distribution, in which case the provisions of the
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * CDDL are applicable instead of those of the GPL.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * You may elect to license modified versions of this file under the
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * terms and conditions of either the GPL or the CDDL or both.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
590bfe12ce22cd3716448fbb9f4dc51664bfe5e2vboxsync * additional information or have any questions.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Include standard C types.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Kludge for the darwin kernel:
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * stddef.h is missing IIRC.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Kludge for the FreeBSD kernel:
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * stddef.h and sys/types.h have slightly different offsetof definitions
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * when compiling in kernel mode. This is just to make GCC shut up.
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# elif defined(RT_OS_FREEBSD) && HC_ARCH_BITS == 64 && defined(RT_ARCH_X86)
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync * Kludge for compiling 32-bit code on a 64-bit FreeBSD:
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * FreeBSD declares uint64_t and int64_t wrong (long unsigned and long int
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * though they need to be long long unsigned and long long int). These
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * defines conflict with our decleration in stdint.h. Adding the defines
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync * below omits the definitions in the system header.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * Kludge for the linux kernel:
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 1. sys/types.h doesn't mix with the kernel.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 2. Starting with 2.6.19, linux/types.h typedefs bool and linux/stddef.h
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * declares false and true as enum values.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 3. Starting with 2.6.24, linux/types.h typedefs uintptr_t.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * We work around these issues here and nowhere else.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync typedef bool _Bool;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# define false linux_false
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/* Define any types missing from sys/types.h on windows. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync#else /* no crt */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync#endif /* no crt */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @defgroup grp_rt_types IPRT Base Types
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/* define wchar_t, we don't wanna include all the wcsstuff to get this. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync typedef unsigned short wchar_t;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @todo wchar_t on GNUC */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * C doesn't have bool.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# if defined(__GNUC__)
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef uint8_t bool;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef _Bool bool;
25747178cb66800d8386c20b8ffd87f78f24f4e5vboxsynctypedef unsigned char bool;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# ifndef true
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# define true (1)
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# ifndef false
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# define false (0)
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 128-bit unsigned integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef struct uint128_s
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 128-bit signed integer.
25747178cb66800d8386c20b8ffd87f78f24f4e5vboxsynctypedef struct int128_s
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 16-bit unsigned integer union.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** natural view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 16-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 8-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 16-bit hi/lo view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a 16-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a const 32-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 32-bit unsigned integer union.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** natural view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Hi/Low view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 32-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 16-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 8-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a 32-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a const 32-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 64-bit unsigned integer union.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Natural view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Hi/Low view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Double-Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 64-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 32-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 16-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 8-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a 64-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a const 64-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * 128-bit unsigned integer union.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Natural view.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * WARNING! This member depends on the compiler supporting 128-bit stuff. */
7b067f3f07310bff46d1d6a4ac94d8b9bb7ccccdvboxsync /** Hi/Low view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Quad-Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Double-Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** Word view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 64-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 32-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 16-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync /** 8-bit view. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a 64-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a const 64-bit unsigned integer union. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Generic function type.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @see PFNRT
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Generic function pointer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * With -pedantic, gcc-4 complains when casting a function to a data object, for example
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * void foo(void)
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * void *bar = (void *)foo;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * The compiler would warn with "ISO C++ forbids casting between pointer-to-function and
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * pointer-to-object". The purpose of this warning is not to bother the programmer but to
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * point out that he is probably doing something dangerous, assigning a pointer to executable
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * code to a data object.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @defgroup grp_rt_types_both Common Guest and Host Context Basic Types
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @ingroup grp_rt_types
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Signed integer which can contain both GC and HC pointers. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to signed integer which can contain both GC and HC pointers. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer const to signed integer which can contain both GC and HC pointers. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Unsigned integer which can contain both GC and HC pointers. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
a39ea3668b7019c23a68936259545f9b71bce1aavboxsync/** Pointer to unsigned integer which can contain both GC and HC pointers. */
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync/** Pointer const to unsigned integer which can contain both GC and HC pointers. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** The maximum value the RTUINTPTR type can hold. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Signed integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to signed integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const signed integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Unsigned integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const unsigned integer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** A file offset / size (off_t). */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a file offset / size. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** The max value for RTFOFF. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** The min value for RTFOFF. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** File mode (see iprt/fs.h). */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to file mode. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Device unix number. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a device unix number. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** i-node number. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a i-node number. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** User id. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a user id. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** NIL user id.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @todo check this for portability! */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Group id. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to a group id. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** NIL group id.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @todo check this for portability! */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** I/O Port. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to I/O Port. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const I/O Port. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Selector. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to selector. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const selector. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max selector value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Far 16-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef struct RTFAR16
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to Far 16-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const Far 16-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Far 32-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef struct RTFAR32
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to Far 32-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const Far 32-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Far 64-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef struct RTFAR64
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to Far 64-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const Far 64-bit pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @defgroup grp_rt_types_hc Host Context Basic Types
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @ingroup grp_rt_types
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** HC Natural signed integer.
fd492d285ed33c86dd76bc05d9d4f3e55bc0fb49vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to HC Natural signed integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const HC Natural signed integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** HC Natural unsigned integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to HC Natural unsigned integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const HC Natural unsigned integer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * @deprecated silly type. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Signed integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to signed integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const signed integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTHCINTPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Min RTHCINTPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Signed integer which can contain a HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to signed integer which can contain a HC ring-3 pointer. */
25747178cb66800d8386c20b8ffd87f78f24f4e5vboxsync/** Pointer to const signed integer which can contain a HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTR3INTPTR value. */
25747178cb66800d8386c20b8ffd87f78f24f4e5vboxsync/** Min RTR3INTPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Signed integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to signed integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const signed integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTR0INTPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Min RTHCINTPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Unsigned integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTHCUINTTPR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Unsigned integer which can contain a HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTHCUINTTPR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Unsigned integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to unsigned integer which can contain a HC ring-0 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTR0UINTTPR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Host Physical Memory Address. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to Host Physical Memory Address. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const Host Physical Memory Address. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @def NIL_RTHCPHYS
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * NIL HC Physical Address.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * NIL_RTHCPHYS is used to signal an invalid physical address, similar
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * to the NULL pointer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTHCPHYS value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef void * RTHCPTR;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const HC pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @def NIL_RTHCPTR
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * NIL HC pointer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTHCPTR value. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsynctypedef void * RTR3PTR;
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Pointer to const HC ring-3 pointer. */
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** @def NIL_RTR3PTR
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync * NIL HC ring-3 pointer.
24ab761b2beb5af0393c6f2585b6351d8b3085f0vboxsync/** Max RTR3PTR value. */
#ifdef IN_RING0
typedef void * RTR0PTR;
#ifdef IN_RC
typedef void * RTRCPTR;
#ifdef IN_RC
#ifdef IN_RC
#define NIL_RTFILEAIOREQ 0
#define NIL_RTFILEAIOCTX 0
#define NIL_RTLDRMOD 0
#define NIL_RTR0MEMOBJ 0
#define NIL_RTSEMEVENT 0
#define NIL_RTSEMEVENTMULTI 0
#define NIL_RTSEMFASTMUTEX 0
#define NIL_RTSEMMUTEX 0
#define NIL_RTSEMSPINMUTEX 0
#define NIL_RTSEMRW 0
#define NIL_RTSPINLOCK 0
typedef int RTSOCKET;
#define NIL_RTTHREAD 0
typedef union RTUUID
} Gen;
} RTUUID;
#define RT_INDEFINITE_WAIT (~0U)
typedef struct RTRECT
} RTRECT;
typedef union RTMAC
} RTMAC;
#ifdef __cplusplus
return m_rc;