types.h revision b63da7c87ee97d237d799dc5d275a70a546b5588
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * IPRT - Types.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Copyright (C) 2006-2010 Oracle Corporation
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * available from http://www.virtualbox.org. This file is free software;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * you can redistribute it and/or modify it under the terms of the GNU
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * The contents of this file may alternatively be used under the terms
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * of the Common Development and Distribution License Version 1.0
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * VirtualBox OSE distribution, in which case the provisions of the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * CDDL are applicable instead of those of the GPL.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * You may elect to license modified versions of this file under the
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsync * terms and conditions of either the GPL or the CDDL or both.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Include standard C types.
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync * Kludge for the darwin kernel:
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync * stddef.h is missing IIRC.
afed5ab737f4aacfae3fe73776f40e989190a7cavboxsync * Kludge for the FreeBSD kernel:
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * stddef.h and sys/types.h have slightly different offsetof definitions
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * when compiling in kernel mode. This is just to make GCC shut up.
7666082b743c5e146a8cee6cc794ff4bc3fd0ffdvboxsync# elif defined(RT_OS_FREEBSD) && HC_ARCH_BITS == 64 && defined(RT_ARCH_X86)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Kludge for compiling 32-bit code on a 64-bit FreeBSD:
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * FreeBSD declares uint64_t and int64_t wrong (long unsigned and long int
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * though they need to be long long unsigned and long long int). These
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * defines conflict with our decleration in stdint.h. Adding the defines
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * below omits the definitions in the system header.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Kludge for the linux kernel:
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * 1. sys/types.h doesn't mix with the kernel.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * 2. Starting with 2.6.19, linux/types.h typedefs bool and linux/stddef.h
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * declares false and true as enum values.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * 3. Starting with 2.6.24, linux/types.h typedefs uintptr_t.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * We work around these issues here and nowhere else.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync typedef bool _Bool;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# define false linux_false
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * <linux/compiler-gcc{3,4}.h> does
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * #define __inline__ __inline__ __attribute__((always_inline))
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * in some older Linux kernels. Forcing inlining will fail for some RTStrA*
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * functions with gcc <= 4.0 due to passing variable argument lists.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/* Define any types missing from sys/types.h on windows. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#else /* no crt */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#endif /* no crt */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** @defgroup grp_rt_types IPRT Base Types
aaeb2e2f6ed5b164f1dec9a16a7adeb84f64cf31vboxsync/* define wchar_t, we don't wanna include all the wcsstuff to get this. */
b2f6d678ae33b72db5c41199a3e632454f48cfa1vboxsync typedef unsigned short wchar_t;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** @todo wchar_t on GNUC */
576d4214137bce409cdcf01e8df4a0bca5e0b2d1vboxsync * C doesn't have bool.
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync# if defined(__GNUC__)
72ef2b9fc5ffc01d0dabd5052d6e8baa3a952773vboxsynctypedef uint8_t bool;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsynctypedef _Bool bool;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsynctypedef unsigned char bool;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# ifndef true
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# define true (1)
42c1972c22e09797b4b24afbd0ec114ed076c37cvboxsync# ifndef false
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync# define false (0)
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync * 128-bit unsigned integer.
1e3cd9c9c95ff352da1331a1789b05fd012c880dvboxsynctypedef struct uint128_s
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync * 128-bit signed integer.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsynctypedef struct int128_s
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync * 16-bit unsigned integer union.
b40179b44fea65b72b2f226f62af1ed7bd3c48fcvboxsync /** natural view. */
82e90599291da476b2de7c8db33cfb0f2cbac774vboxsync /** 16-bit view. */
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync /** 8-bit view. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** 16-bit hi/lo view. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a 16-bit unsigned integer union. */
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync/** Pointer to a const 32-bit unsigned integer union. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * 32-bit unsigned integer union.
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync /** natural view. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Hi/Low view. */
533ffcb943c4af2c5fe6385d816d0ba3eda9383bvboxsync /** Word view. */
1999ae03c34840fa4d712fd2e020120b2cb7182avboxsync /** 32-bit view. */
1843553dbdf4e46417158b4c6348c503adf10740vboxsync /** 16-bit view. */
1843553dbdf4e46417158b4c6348c503adf10740vboxsync /** 8-bit view. */
1843553dbdf4e46417158b4c6348c503adf10740vboxsync/** Pointer to a 32-bit unsigned integer union. */
22e281e75ed636601178296c6daebda8f1d17c59vboxsync/** Pointer to a const 32-bit unsigned integer union. */
1843553dbdf4e46417158b4c6348c503adf10740vboxsync * 64-bit unsigned integer union.
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync /** Natural view. */
1843553dbdf4e46417158b4c6348c503adf10740vboxsync /** Hi/Low view. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync /** Double-Word view. */
533ffcb943c4af2c5fe6385d816d0ba3eda9383bvboxsync /** Word view. */
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync /** 64-bit view. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** 32-bit view. */
b40179b44fea65b72b2f226f62af1ed7bd3c48fcvboxsync /** 16-bit view. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync /** 8-bit view. */
0e77737b0ba913683e614db11463b31ca67aacbevboxsync/** Pointer to a 64-bit unsigned integer union. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync/** Pointer to a const 64-bit unsigned integer union. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync * 128-bit unsigned integer union.
22e281e75ed636601178296c6daebda8f1d17c59vboxsync /** Natural view.
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync * WARNING! This member depends on the compiler supporting 128-bit stuff. */
b74ca013e5f201a2dd371e6c438433ceac12af30vboxsync /** Hi/Low view. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Quad-Word view. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Double-Word view. */
22e281e75ed636601178296c6daebda8f1d17c59vboxsync /** Word view. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync /** 64-bit view. */
806d0b554daa555364af5f87bc96eccbe760db7avboxsync /** 32-bit view. */
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync /** 16-bit view. */
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync /** 8-bit view. */
806d0b554daa555364af5f87bc96eccbe760db7avboxsync/** Pointer to a 64-bit unsigned integer union. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to a const 64-bit unsigned integer union. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Generic function type.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @see PFNRT
22e281e75ed636601178296c6daebda8f1d17c59vboxsync/** Generic function pointer.
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync * With -pedantic, gcc-4 complains when casting a function to a data object, for
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * void foo(void)
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync * void *bar = (void *)foo;
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync * The compiler would warn with "ISO C++ forbids casting between
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync * pointer-to-function and pointer-to-object". The purpose of this warning is
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync * not to bother the programmer but to point out that he is probably doing
1999ae03c34840fa4d712fd2e020120b2cb7182avboxsync * something dangerous, assigning a pointer to executable code to a data object.
806d0b554daa555364af5f87bc96eccbe760db7avboxsync/** Millisecond interval. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** Pointer to a millisecond interval. */
3cac8f8c6923a3a89ecfccda5e89ad75f48658e0vboxsync/** Pointer to a const millisecond interval. */
1157941288c9533575a655c660af55d13da31eefvboxsync/** @defgroup grp_rt_types_both Common Guest and Host Context Basic Types
5e797edc29f96c8367de4fbf5874171c24a89ba7vboxsync * @ingroup grp_rt_types
5e797edc29f96c8367de4fbf5874171c24a89ba7vboxsync/** Signed integer which can contain both GC and HC pointers. */
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
3dde2f85d4cf477621a3128887a2c08a8bca7c01vboxsync/** Pointer to signed integer which can contain both GC and HC pointers. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync/** Pointer const to signed integer which can contain both GC and HC pointers. */
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync/** The maximum value the RTINTPTR type can hold. */
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
1999ae03c34840fa4d712fd2e020120b2cb7182avboxsync/** The minimum value the RTINTPTR type can hold. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** Unsigned integer which can contain both GC and HC pointers. */
7bae75e0b207aa4d4cad2a951271ad1a0e8ab9fdvboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync/** Pointer to unsigned integer which can contain both GC and HC pointers. */
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync/** Pointer const to unsigned integer which can contain both GC and HC pointers. */
79b24ef0ab7cd4a03a3571b3954c52ab8b573137vboxsync/** The maximum value the RTUINTPTR type can hold. */
3cac8f8c6923a3a89ecfccda5e89ad75f48658e0vboxsync# error Unsupported HC_ARCH_BITS and/or GC_ARCH_BITS values.
7082d29724f6c3788977a51591b0379fd3acbf72vboxsync/** Signed integer. */
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync/** Pointer to signed integer. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync/** Pointer to const signed integer. */
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync/** Unsigned integer. */
f827fea1108b8f8a1a5f63318f6ec3cf4a9e7010vboxsync/** Pointer to unsigned integer. */
1999ae03c34840fa4d712fd2e020120b2cb7182avboxsync/** Pointer to const unsigned integer. */
5cf54b3ffeb7ee90685dcaec329ef71a729f5947vboxsync/** A file offset / size (off_t). */
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync/** Pointer to a file offset / size. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** The max value for RTFOFF. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** The min value for RTFOFF. */
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync/** File mode (see iprt/fs.h). */
9f9a20823b87e89c1b5cb45eb9b5699b29bfefebvboxsync/** Pointer to file mode. */
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync/** Device unix number. */
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync/** Pointer to a device unix number. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync/** @name RTDEV Macros
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync * Our makedev macro.
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync * @returns RTDEV
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync * @param uMajor The major device number.
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync * @param uMinor The minor device number.
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync#define RTDEV_MAKE(uMajor, uMinor) ((RTDEV)( ((RTDEV)(uMajor) << 24) | (uMinor & UINT32_C(0x00ffffff)) ))
1986f56777969a25707ab214f8dd070804be666cvboxsync * Get the major device node number from an RTDEV type.
e0b9d3c357adf9b7d05f55540e86f22943fc4b23vboxsync * @returns The major device number of @a uDev
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync * @param uDev The device number.
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync * Get the minor device node number from an RTDEV type.
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync * @returns The minor device number of @a uDev
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync * @param uDev The device number.
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync#define RTDEV_MINOR(uDev) ((uDev) & UINT32_C(0x00ffffff))
9f9a20823b87e89c1b5cb45eb9b5699b29bfefebvboxsync/** i-node number. */
6f0193f5a9287559d34a75f438c2682d8fb08038vboxsync/** Pointer to a i-node number. */
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync/** User id. */
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync/** Pointer to a user id. */
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync/** NIL user id.
f9147fe1eaa4e35287f8f39282c7f92f0d7de0b7vboxsync * @todo check this for portability! */
65b61798a61dd4c32cce448db1dac70bba8d5cf5vboxsync/** Group id. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync/** Pointer to a group id. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** NIL group id.
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync * @todo check this for portability! */
22e281e75ed636601178296c6daebda8f1d17c59vboxsync/** I/O Port. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** Pointer to I/O Port. */
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync/** Pointer to const I/O Port. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync/** Selector. */
65b61798a61dd4c32cce448db1dac70bba8d5cf5vboxsync/** Pointer to selector. */
22e281e75ed636601178296c6daebda8f1d17c59vboxsync/** Pointer to const selector. */
13ba5527caaa9b8c4fee29f22e374fa67c4c6f72vboxsync/** Max selector value. */
65b61798a61dd4c32cce448db1dac70bba8d5cf5vboxsync/** Far 16-bit pointer. */
34e34d3656484dde89a9c7b57fcbf7048d2fdb13vboxsynctypedef struct RTFAR16
65b61798a61dd4c32cce448db1dac70bba8d5cf5vboxsync/** Pointer to Far 16-bit pointer. */
65b61798a61dd4c32cce448db1dac70bba8d5cf5vboxsync/** Pointer to const Far 16-bit pointer. */
b978e5849454446957177fd47ee98609ab0457a6vboxsync/** Far 32-bit pointer. */
3cac8f8c6923a3a89ecfccda5e89ad75f48658e0vboxsynctypedef struct RTFAR32
46df4404c8dbbf3672e7aae8cd0b2770356e5b73vboxsync/** Pointer to Far 32-bit pointer. */
9f9a20823b87e89c1b5cb45eb9b5699b29bfefebvboxsync/** Pointer to const Far 32-bit pointer. */
ce2d2eef2525963979102e63c2419d1c69d767ccvboxsync/** Far 64-bit pointer. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsynctypedef struct RTFAR64
9f9a20823b87e89c1b5cb45eb9b5699b29bfefebvboxsync/** Pointer to Far 64-bit pointer. */
3dde2f85d4cf477621a3128887a2c08a8bca7c01vboxsync/** Pointer to const Far 64-bit pointer. */
585f64d6f624f9e683321dabeb21b0eb2e6aa473vboxsync/** @defgroup grp_rt_types_hc Host Context Basic Types
b978e5849454446957177fd47ee98609ab0457a6vboxsync * @ingroup grp_rt_types
585f64d6f624f9e683321dabeb21b0eb2e6aa473vboxsync/** HC Natural signed integer.
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync * @deprecated silly type. */
ce2d2eef2525963979102e63c2419d1c69d767ccvboxsync/** Pointer to HC Natural signed integer.
585f64d6f624f9e683321dabeb21b0eb2e6aa473vboxsync * @deprecated silly type. */
9673b0b804d0b0f801f377c6371600e92071241fvboxsync/** Pointer to const HC Natural signed integer.
4b8fcf8e4d11536879a1f6e66279ba0c363a7eaevboxsync * @deprecated silly type. */
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync/** HC Natural unsigned integer.
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync * @deprecated silly type. */
ce2d2eef2525963979102e63c2419d1c69d767ccvboxsync/** Pointer to HC Natural unsigned integer.
ce2d2eef2525963979102e63c2419d1c69d767ccvboxsync * @deprecated silly type. */
ce2d2eef2525963979102e63c2419d1c69d767ccvboxsync/** Pointer to const HC Natural unsigned integer.
9673b0b804d0b0f801f377c6371600e92071241fvboxsync * @deprecated silly type. */
585f64d6f624f9e683321dabeb21b0eb2e6aa473vboxsync/** Signed integer which can contain a HC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to signed integer which can contain a HC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const signed integer which can contain a HC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Max RTHCINTPTR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Min RTHCINTPTR value. */
3cbb4f9a6a320e58ed398ef7aaa004cc8727abc5vboxsync/** Signed integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to signed integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const signed integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Max RTR3INTPTR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Min RTR3INTPTR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Signed integer which can contain a HC ring-0 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to signed integer which can contain a HC ring-0 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const signed integer which can contain a HC ring-0 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Max RTR0INTPTR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Min RTHCINTPTR value. */
e17bd6c32a8dd64f2d42838f9028216465e2caf0vboxsync/** Unsigned integer which can contain a HC pointer. */
e17bd6c32a8dd64f2d42838f9028216465e2caf0vboxsync/** Pointer to unsigned integer which can contain a HC pointer. */
5ace91141404400247438502a84a418fba00c8cfvboxsync/** Pointer to unsigned integer which can contain a HC pointer. */
5ace91141404400247438502a84a418fba00c8cfvboxsync/** Max RTHCUINTTPR value. */
49748bb305bd71f672cd083af208f4bb08c5d6abvboxsync/** Unsigned integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to unsigned integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to unsigned integer which can contain a HC ring-3 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Max RTHCUINTTPR value. */
b9ca93dd1ad44cb8b27679dc5624be2f7b7f7af5vboxsync/** Unsigned integer which can contain a HC ring-0 pointer. */
3cbb4f9a6a320e58ed398ef7aaa004cc8727abc5vboxsync/** Pointer to unsigned integer which can contain a HC ring-0 pointer. */
8b984478b755f4d3091b977d9beac9fb7434279fvboxsync/** Pointer to unsigned integer which can contain a HC ring-0 pointer. */
e9a217d585085a6a6d129d27ca0d96a1b8e6d0eevboxsync/** Max RTR0UINTTPR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Host Physical Memory Address. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to Host Physical Memory Address. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const Host Physical Memory Address. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** @def NIL_RTHCPHYS
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * NIL HC Physical Address.
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * NIL_RTHCPHYS is used to signal an invalid physical address, similar
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * to the NULL pointer.
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Max RTHCPHYS value. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** HC pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsynctypedef void * RTHCPTR;
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Pointer to HC pointer. */
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync/** Pointer to const HC pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** @def NIL_RTHCPTR
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * NIL HC pointer.
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Max RTHCPTR value. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** HC ring-3 pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsynctypedef void * RTR3PTR;
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Pointer to HC ring-3 pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Pointer to const HC ring-3 pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** @def NIL_RTR3PTR
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * NIL HC ring-3 pointer.
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Max RTR3PTR value. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** HC ring-0 pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsynctypedef void * RTR0PTR;
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Pointer to HC ring-0 pointer. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Pointer to const HC ring-0 pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** @def NIL_RTR0PTR
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync * NIL HC ring-0 pointer.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Max RTR3PTR value. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Unsigned integer register in the host context. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to an unsigned integer register in the host context. */
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync/** Pointer to a const unsigned integer register in the host context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Unsigned integer register in the host ring-3 context. */
3123bb2477edc752585e4bbd8e4cfedaf87997d1vboxsync/** Pointer to an unsigned integer register in the host ring-3 context. */
247b55faa8d054157f2481e68caca36f4dc9542cvboxsync/** Pointer to a const unsigned integer register in the host ring-3 context. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Unsigned integer register in the host ring-3 context. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to an unsigned integer register in the host ring-3 context. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to a const unsigned integer register in the host ring-3 context. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync/** @defgroup grp_rt_types_gc Guest Context Basic Types
9e4166cf5ed4940f506bc718ea6c89bf7ed252c8vboxsync * @ingroup grp_rt_types
0975ae0a0fb615c945150c48e4a73187c1f4f84dvboxsync/** Natural signed integer in the GC.
7e960d3a0a8a3a84d7aba2cca45d72b1c31cc97bvboxsync * @deprecated silly type. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync#elif GC_ARCH_BITS == 64 /** @todo this isn't right, natural int is 32-bit, see RTHCINT. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to natural signed integer in GC.
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync * @deprecated silly type. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const natural signed integer in GC.
3cbb4f9a6a320e58ed398ef7aaa004cc8727abc5vboxsync * @deprecated silly type. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Natural unsigned integer in the GC.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @deprecated silly type. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync#elif GC_ARCH_BITS == 64 /** @todo this isn't right, natural int is 32-bit, see RTHCUINT. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to natural unsigned integer in GC.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @deprecated silly type. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const natural unsigned integer in GC.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @deprecated silly type. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Signed integer which can contain a GC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to signed integer which can contain a GC pointer. */
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync/** Pointer to const signed integer which can contain a GC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Unsigned integer which can contain a GC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to unsigned integer which can contain a GC pointer. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync/** Pointer to unsigned integer which can contain a GC pointer. */
0975ae0a0fb615c945150c48e4a73187c1f4f84dvboxsync/** Unsigned integer which can contain a 32 bits GC pointer. */
0975ae0a0fb615c945150c48e4a73187c1f4f84dvboxsync/** Pointer to unsigned integer which can contain a 32 bits GC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to unsigned integer which can contain a 32 bits GC pointer. */
745f14b339a2afcb7757d10e5ec498a680162885vboxsync/** Unsigned integer which can contain a 64 bits GC pointer. */
f351fab06d1e1507b72f5c574df71193061fd393vboxsync/** Pointer to unsigned integer which can contain a 32 bits GC pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to unsigned integer which can contain a 32 bits GC pointer. */
a11c569636fa6838bd423f4631a9660a5a84204bvboxsync/** Guest Physical Memory Address.*/
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to Guest Physical Memory Address. */
036d626c5d4722da925dc8292f9248a5e09b4588vboxsync/** Pointer to const Guest Physical Memory Address. */
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** @def NIL_RTGCPHYS
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL GC Physical Address.
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL_RTGCPHYS is used to signal an invalid physical address, similar
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * to the NULL pointer. Note that this value may actually be valid in
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * some contexts.
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** Max guest physical memory address value. */
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** Guest Physical Memory Address; limited to 32 bits.*/
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** Pointer to Guest Physical Memory Address. */
b40179b44fea65b72b2f226f62af1ed7bd3c48fcvboxsync/** Pointer to const Guest Physical Memory Address. */
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** @def NIL_RTGCPHYS32
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL GC Physical Address.
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL_RTGCPHYS32 is used to signal an invalid physical address, similar
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * to the NULL pointer. Note that this value may actually be valid in
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * some contexts.
036d626c5d4722da925dc8292f9248a5e09b4588vboxsync/** Guest Physical Memory Address; limited to 64 bits.*/
144ee46b1432959f2c8236923fac791ac25a8c1evboxsync/** Pointer to Guest Physical Memory Address. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to const Guest Physical Memory Address. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** @def NIL_RTGCPHYS64
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * NIL GC Physical Address.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * NIL_RTGCPHYS64 is used to signal an invalid physical address, similar
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * to the NULL pointer. Note that this value may actually be valid in
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * some contexts.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Guest context pointer, 32 bits.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Keep in mind that this type is an unsigned integer in
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * HC and void pointer in GC.
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** Pointer to a guest context pointer. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to a const guest context pointer. */
50df3da42ff6589b0ecc4f50f2288811bc370186vboxsync/** @def NIL_RTGCPTR32
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * NIL GC pointer.
2afbe132eb7931e0125141eabe3a48e08f1ffab5vboxsync/** Guest context pointer, 64 bits.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to a guest context pointer. */
6778b34cb96bef0fef23ebc461eb6a429d2907c5vboxsync/** Pointer to a const guest context pointer. */
6778b34cb96bef0fef23ebc461eb6a429d2907c5vboxsync/** @def NIL_RTGCPTR64
6778b34cb96bef0fef23ebc461eb6a429d2907c5vboxsync * NIL GC pointer.
6778b34cb96bef0fef23ebc461eb6a429d2907c5vboxsync/** Guest context pointer.
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync * Keep in mind that this type is an unsigned integer in
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync * HC and void pointer in GC.
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync/** Pointer to a guest context pointer. */
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync/** Pointer to a const guest context pointer. */
32f9be50b34dbbdfceec5c81c0594d6a1d66d990vboxsync/** @def NIL_RTGCPTR
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync * NIL GC pointer.
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync/** Max RTGCPTR value. */
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** Pointer to a guest context pointer. */
614cbe11a7e5588dc8d369e223174b1441a09359vboxsync/** Pointer to a const guest context pointer. */
d4b98dbce4cf7b3694b62d62a47553d399718dccvboxsync/** @def NIL_RTGCPTR
d4b98dbce4cf7b3694b62d62a47553d399718dccvboxsync * NIL GC pointer.
d4b98dbce4cf7b3694b62d62a47553d399718dccvboxsync/** Max RTGCPTR value. */
b6d0062d24490dd07b4a424e5809b3b2bc910c5avboxsync/** Unsigned integer register in the guest context. */
97b2abd2828499b2f4c2d5721952c9570ced1ebcvboxsync/** Pointer to an unsigned integer register in the guest context. */
fd69ca9bd8b533bfa9ade45c1c2ff3116854e84avboxsync/** Pointer to a const unsigned integer register in the guest context. */
fd69ca9bd8b533bfa9ade45c1c2ff3116854e84avboxsync/** Pointer to an unsigned integer register in the guest context. */
b978e5849454446957177fd47ee98609ab0457a6vboxsync/** Pointer to a const unsigned integer register in the guest context. */
5ace91141404400247438502a84a418fba00c8cfvboxsync/** Pointer to an unsigned integer register in the guest context. */
e0421ee4efb1bbf81bc4740b530fc245aed8152fvboxsync/** Pointer to a const unsigned integer register in the guest context. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** @defgroup grp_rt_types_rc Raw mode Context Basic Types
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync * @ingroup grp_rt_types
01c7ae36dfb7eb93bef22d5ec6c1c0572eba3f24vboxsync/** Raw mode context pointer; a 32 bits guest context pointer.
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync * Keep in mind that this type is an unsigned integer in
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync * HC and void pointer in RC.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsynctypedef void * RTRCPTR;
5ace91141404400247438502a84a418fba00c8cfvboxsync/** Pointer to a raw mode context pointer. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a const raw mode context pointer. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** @def NIL_RTGCPTR
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * NIL RC pointer.
0f5d1b2abd9e82c7ee46f1327287c44856604bcbvboxsync/** @def RTRCPTR_MAX
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync * The maximum value a RTRCPTR can have. Mostly used as INVALID value.
5ace91141404400247438502a84a418fba00c8cfvboxsync/** Raw mode context pointer, unsigned integer variant. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** @def RTRCUINTPTR_MAX
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * The maximum value a RTRCUINPTR can have.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Raw mode context pointer, signed integer variant. */
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** @def RTRCINTPTR_MIN
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * The minimum value a RTRCINPTR can have.
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** @def RTRCINTPTR_MAX
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * The maximum value a RTRCINPTR can have.
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** @defgroup grp_rt_types_cc Current Context Basic Types
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync * @ingroup grp_rt_types
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** Current Context Physical Memory Address.*/
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** Pointer to Current Context Physical Memory Address. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** Pointer to const Current Context Physical Memory Address. */
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync/** @def NIL_RTCCPHYS
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL CC Physical Address.
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * NIL_RTCCPHYS is used to signal an invalid physical address, similar
1fb9c510656583ba12872e082125263a58d9bc6bvboxsync * to the NULL pointer.
3cbb4f9a6a320e58ed398ef7aaa004cc8727abc5vboxsync/** Unsigned integer register in the current context. */
28c928d1100d3b6a6d3506224cae25ad04732f73vboxsync/** Pointer to an unsigned integer register in the current context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a const unsigned integer register in the current context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Signed integer register in the current context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a signed integer register in the current context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a const signed integer register in the current context. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a critical section. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a const critical section. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Condition variable handle. */
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsynctypedef R3PTRTYPE(struct RTCONDVARINTERNAL *) RTCONDVAR;
09e2f92b8f54aa362088e216007b53ecdb42e283vboxsync/** Pointer to a condition variable handle. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Nil condition variable handle. */
5b6e2c9a765c3c72295acc15791af8a700746956vboxsync/** File handle. */
3cbb4f9a6a320e58ed398ef7aaa004cc8727abc5vboxsync/** Pointer to file handle. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Nil file handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Async I/O request handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsynctypedef R3PTRTYPE(struct RTFILEAIOREQINTERNAL *) RTFILEAIOREQ;
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a async I/O request handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Nil request handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Async I/O completion context handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsynctypedef R3PTRTYPE(struct RTFILEAIOCTXINTERNAL *) RTFILEAIOCTX;
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Pointer to a async I/O completion context handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Nil context handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Loader module handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsynctypedef R3PTRTYPE(struct RTLDRMODINTERNAL *) RTLDRMOD;
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Pointer to a loader module handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Nil loader module handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Lock validator class handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsynctypedef R3R0PTRTYPE(struct RTLOCKVALCLASSINT *) RTLOCKVALCLASS;
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Pointer to a lock validator class handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Nil lock validator class handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Ring-0 memory object handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsynctypedef R0PTRTYPE(struct RTR0MEMOBJINTERNAL *) RTR0MEMOBJ;
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Pointer to a Ring-0 memory object handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Nil ring-0 memory object handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Native thread handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Pointer to an native thread handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Nil native thread handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsync/** Pipe handle. */
74735ec6edd6640eebac8885fbb2dadc86b89cf5vboxsynctypedef R3R0PTRTYPE(struct RTPIPEINTERNAL *) RTPIPE;
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Pointer to a pipe handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Nil pipe handle.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * @remarks This is not 0 because of UNIX and OS/2 handle values. Take care! */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** @typedef RTPOLLSET
daf1af91919d2fe4bac56d58487210f747e4592avboxsync * Poll set handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsynctypedef R3R0PTRTYPE(struct RTPOLLSETINTERNAL *) RTPOLLSET;
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Pointer to a poll set handle. */
e17f587595bd5d3a7be56a892e3fd3a0ef83d268vboxsync/** Nil poll set handle handle. */
e17f587595bd5d3a7be56a892e3fd3a0ef83d268vboxsync/** Process identifier. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** Pointer to a process identifier. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** Nil process identifier. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Process ring-0 handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Pointer to a ring-0 process handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Nil ring-0 process handle. */
cb70d239cc25c714044be945b6f7ff4f3a8b7cdfvboxsync/** @typedef RTSEMEVENT
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync * Event Semaphore handle. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsynctypedef R3R0PTRTYPE(struct RTSEMEVENTINTERNAL *) RTSEMEVENT;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Pointer to an event semaphore handle. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** Nil event semaphore handle. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsync/** @typedef RTSEMEVENTMULTI
e17f587595bd5d3a7be56a892e3fd3a0ef83d268vboxsync * Event Multiple Release Semaphore handle. */
ac6ddb9d00c1da301dfa25b0961dbd58b5f2f6e8vboxsynctypedef R3R0PTRTYPE(struct RTSEMEVENTMULTIINTERNAL *) RTSEMEVENTMULTI;
21d4a56532f8029ae299f552811a0b86c1909416vboxsync/** Pointer to an event multiple release semaphore handle. */
4b808cd07fd33b8a3edd0588dc43615686deb0e3vboxsync/** Nil multiple release event semaphore handle. */
4b808cd07fd33b8a3edd0588dc43615686deb0e3vboxsync/** @typedef RTSEMFASTMUTEX
4b808cd07fd33b8a3edd0588dc43615686deb0e3vboxsync * Fast mutex Semaphore handle. */
5b6e2c9a765c3c72295acc15791af8a700746956vboxsynctypedef R3R0PTRTYPE(struct RTSEMFASTMUTEXINTERNAL *) RTSEMFASTMUTEX;
b5b12033c1f7eaf82b038f06e2b9e464b9ddd8d2vboxsync/** Pointer to a fast mutex semaphore handle. */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync/** Nil fast mutex semaphore handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** @typedef RTSEMMUTEX
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * Mutex Semaphore handle. */
2cd06fc737773d015b5268b9e4dfba5997915957vboxsynctypedef R3R0PTRTYPE(struct RTSEMMUTEXINTERNAL *) RTSEMMUTEX;
70aa086e9e9d2f85d2e997d0e69169018a001e54vboxsync/** Pointer to a mutex semaphore handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Nil mutex semaphore handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** @typedef RTSEMSPINMUTEX
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync * Spinning mutex Semaphore handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsynctypedef R3R0PTRTYPE(struct RTSEMSPINMUTEXINTERNAL *) RTSEMSPINMUTEX;
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Pointer to a spinning mutex semaphore handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Nil spinning mutex semaphore handle. */
016bd61cdd14201a24f289559b0cc333d8c94748vboxsync/** @typedef RTSEMRW
016bd61cdd14201a24f289559b0cc333d8c94748vboxsync * Read/Write Semaphore handle. */
016bd61cdd14201a24f289559b0cc333d8c94748vboxsynctypedef R3R0PTRTYPE(struct RTSEMRWINTERNAL *) RTSEMRW;
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** Pointer to a read/write semaphore handle. */
4584ef6026a823006bea5acbeb13dc4efe50da69vboxsync/** Nil read/write semaphore handle. */
4584ef6026a823006bea5acbeb13dc4efe50da69vboxsync/** @typedef RTSEMXROADS
4584ef6026a823006bea5acbeb13dc4efe50da69vboxsync * Crossroads semaphore handle. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsynctypedef R3R0PTRTYPE(struct RTSEMXROADSINTERNAL *) RTSEMXROADS;
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a crossroads semaphore handle. */
69deddbc68802f1cf1c3a404a9f816b8accb3385vboxsync/** Nil crossroads semaphore handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Spinlock handle. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsynctypedef R3R0PTRTYPE(struct RTSPINLOCKINTERNAL *) RTSPINLOCK;
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a spinlock handle. */
a46e399d5426a79f6f7e18d0ba85c505280e9386vboxsync/** Nil spinlock handle. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Socket handle. */
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** Pointer to socket handle. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Nil socket handle. */
21d4a56532f8029ae299f552811a0b86c1909416vboxsync/** Pointer to a RTTCPSERVER handle. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Pointer to a RTTCPSERVER handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Nil RTTCPSERVER handle. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Thread handle.*/
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to thread handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Nil thread handle. */
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** A TLS index. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Pointer to a TLS index. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** Pointer to a const TLS index. */
13b9db9ae2c12b6c4e00eda5c79772d57a0d29e1vboxsync/** NIL TLS index value. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Handle to a simple heap. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsynctypedef R3R0PTRTYPE(struct RTHEAPSIMPLEINTERNAL *) RTHEAPSIMPLE;
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a handle to a simple heap. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** NIL simple heap handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Handle to a offset based heap. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsynctypedef R3R0PTRTYPE(struct RTHEAPOFFSETINTERNAL *) RTHEAPOFFSET;
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a handle to a offset based heap. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** NIL offset based heap handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Handle to an environment block. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a handle to an environment block. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** NIL simple heap handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A CPU identifier.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * @remarks This doesn't have to correspond to the APIC ID (intel/amd). Nor
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * does it have to correspond to the bits in the affinity mask, at
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * least not until we've sorted out Windows NT. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a CPU identifier. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a const CPU identifier. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Nil CPU Id. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A CPU set.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Treat this as an opaque type and always use RTCpuSet* for manupulating it.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * @remarks Subject to change. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a CPU set. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a const CPU set. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A handle table handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsynctypedef R3R0PTRTYPE(struct RTHANDLETABLEINT *) RTHANDLETABLE;
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A pointer to a handle table handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** @def NIL_RTHANDLETABLE
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * NIL handle table handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A handle to a low resolution timer. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsynctypedef R3R0PTRTYPE(struct RTTIMERLRINT *) RTTIMERLR;
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A pointer to a low resolution timer handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** @def NIL_RTTIMERLR
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * NIL low resolution timer handle value. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Handle to a random number generator. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a random number generator handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** NIL random number genrator handle value. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Debug address space handle. */
70aa086e9e9d2f85d2e997d0e69169018a001e54vboxsync/** Pointer to a debug address space handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** NIL debug address space handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Debug module handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a debug module handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** NIL debug module handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Manifest handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a manifest handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** NIL manifest handle. */
4584ef6026a823006bea5acbeb13dc4efe50da69vboxsync/** Memory pool handle. */
9bebc668ed1ad5c93d92ff98fee1cd7dca55f6d5vboxsynctypedef R3R0PTRTYPE(struct RTMEMPOOLINT *) RTMEMPOOL;
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a memory pool handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** NIL memory pool handle. */
4584ef6026a823006bea5acbeb13dc4efe50da69vboxsync/** The default memory pool handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** String cache handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsynctypedef R3R0PTRTYPE(struct RTSTRCACHEINT *) RTSTRCACHE;
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a string cache handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** NIL string cache handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** The default string cache handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Virtual Filesystem handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a VFS handle. */
b40179b44fea65b72b2f226f62af1ed7bd3c48fcvboxsync/** A NIL VFS handle. */
69deddbc68802f1cf1c3a404a9f816b8accb3385vboxsync/** Virtual Filesystem base object handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** Pointer to a VFS base object handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** A NIL VFS base object handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Virtual Filesystem directory handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a VFS directory handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** A NIL VFS directory handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Virtual Filesystem filesystem stream handle. */
c39952b427f31961ee5281dcdd492ad847ca74bbvboxsynctypedef struct RTVFSFSSTREAMINTERNAL *RTVFSFSSTREAM;
b40179b44fea65b72b2f226f62af1ed7bd3c48fcvboxsync/** Pointer to a VFS filesystem stream handle. */
2634ec5cbf8f1fa0a968cd4664ead6df1fed730dvboxsync/** A NIL VFS filesystem stream handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync#define NIL_RTVFSFSSTREAM ((RTVFSFSSTREAM)~(uintptr_t)0)
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Virtual Filesystem I/O stream handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsynctypedef struct RTVFSIOSTREAMINTERNAL *RTVFSIOSTREAM;
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a VFS I/O stream handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A NIL VFS I/O stream handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync#define NIL_RTVFSIOSTREAM ((RTVFSIOSTREAM)~(uintptr_t)0)
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Virtual Filesystem file handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a VFS file handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A NIL VFS file handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Virtual Filesystem symbolic link handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a VFS symbolic link handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** A NIL VFS symbolic link handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync#define NIL_RTVFSSYMLINK ((RTVFSSYMLINK)~(uintptr_t)0)
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Handle type.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * This is usually used together with RTHANDLEUNION.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** The invalid zero value. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** File handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** Pipe handle */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** Socket handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** Thread handle. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** The end of the valid values. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** The 32-bit type blow up. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a handle type. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Handle union.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * This is usually used together with RTHANDLETYPE or as RTHANDLE.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** Generic integer handle value.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Note that RTFILE is not yet pointer sized, so accessing it via this member
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * isn't necessarily safe or fully portable. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a handle union. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync/** Pointer to a const handle union. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Generic handle.
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsynctypedef struct RTHANDLE
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The handle type. */
b2f6d678ae33b72db5c41199a3e632454f48cfa1vboxsync /** The handle value. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a generic handle. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a const generic handle. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * Standard handles.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * @remarks These have the correct file descriptor values for unixy systems and
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * can be used directly in code specific to those platforms.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** Invalid standard handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The standard input handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The standard output handle. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync /** The standard error handle. */
9984bae4ef25be8afd95d184308adcfef6e2ec0dvboxsync /** The typical 32-bit type hack. */
4b02cd4133ae0d8e4732c57274a59358e418349cvboxsync * Error info.
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsync * See RTErrInfo*.
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsynctypedef struct RTERRINFO
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsync /** Flags, see RTERRINFO_FLAGS_XXX. */
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsync /** The status code. */
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsync /** The size of the message */
1171e4fb031146163c9a5a66bd9cbf3f2a5acdb6vboxsync /** The error buffer. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** Reserved for future use. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to an error info structure. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a const error info structure. */
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * Static error info structure, see RTErrInfoInitStatic.
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync /** The core error info. */
4b02cd4133ae0d8e4732c57274a59358e418349cvboxsync /** The static message buffer. */
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** Pointer to a error info buffer. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a const static error info buffer. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * UUID data type.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * See RTUuid*.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * @remarks IPRT defines that the first three integers in the @c Gen struct
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * interpretation are in little endian representation. This is
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * different to many other UUID implementation, and requires
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * conversion if you need to achieve consistent results.
9b726ba798aabd1a27863e6f5cfeef1393bd198dvboxsynctypedef union RTUUID
9b726ba798aabd1a27863e6f5cfeef1393bd198dvboxsync /** 8-bit view. */
9b726ba798aabd1a27863e6f5cfeef1393bd198dvboxsync /** 16-bit view. */
9b726ba798aabd1a27863e6f5cfeef1393bd198dvboxsync /** 32-bit view. */
d9e767721ee71a4803f0de1e24f983be4faa4922vboxsync /** 64-bit view. */
fbf5c218f8bc15f0d765fef4b81e745f4db71b7avboxsync /** The way the UUID is declared by the DCE specification. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to UUID data. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to readonly UUID data. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** UUID string maximum length. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Compression handle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Decompressor handle. */
e8f172f2032e21b4be9a8f3df20e8ef689c6a6favboxsync * Unicode Code Point.
e8f172f2032e21b4be9a8f3df20e8ef689c6a6favboxsync/** Pointer to an Unicode Code Point. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync/** Pointer to an Unicode Code Point. */
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync/** Max value a RTUNICP type can hold. */
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync/** Invalid code point.
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync * This is returned when encountered invalid encodings or invalid
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync * unicode code points. */
086e613371e0f6d1efc38fbc199fa20291afcd5evboxsync * UTF-16 character.
70aa086e9e9d2f85d2e997d0e69169018a001e54vboxsync * @remark wchar_t is not usable since it's compiler defined.
b0065cd95da56e4208839eb0d3963472c688a8d4vboxsync * @remark When we use the term character we're not talking about unicode code point, but
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * the basic unit of the string encoding. Thus cwc - count of wide chars - means
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * count of RTUTF16; cuc - count of unicode chars - means count of RTUNICP;
6c7440ab575cca1aa4d97d96b2d898a0d20c8efcvboxsync * and cch means count of the typedef 'char', which is assumed to be an octet.
70aa086e9e9d2f85d2e997d0e69169018a001e54vboxsync/** Pointer to a UTF-16 character. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a const UTF-16 character. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * Wait for ever if we have to.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * Generic process callback.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * @returns VBox status code. Failure will cancel the operation.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * @param uPercentage The percentage of the operation which has been completed.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * @param pvUser The user specified argument.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsynctypedef DECLCALLBACK(int) FNRTPROGRESS(unsigned uPrecentage, void *pvUser);
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a generic progress callback function, FNRTPROCESS(). */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * A point in a two dimentional coordinate system.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsynctypedef struct RTPOINT
2b5a4cf3d77ab62dcbd882115b6d497547b20d29vboxsync /** X coordinate. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync /** Y coordinate. */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync/** Pointer to a point. */
b2f6d678ae33b72db5c41199a3e632454f48cfa1vboxsync/** Pointer to a const point. */
90466ec66c4fa6a8cd62f01fbf141b51189d33cbvboxsync * Rectangle data type, double point.
d41220dff1068effe66bb6a11f444811ba58de40vboxsynctypedef struct RTRECT
d41220dff1068effe66bb6a11f444811ba58de40vboxsync /** left X coordinate. */
d184d98f6e75700295aaa08ff14d0478dd6cc94avboxsync /** top Y coordinate. */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync /** right X coordinate. (exclusive) */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync /** bottom Y coordinate. (exclusive) */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync/** Pointer to a double point rectangle. */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync/** Pointer to a const double point rectangle. */
d41220dff1068effe66bb6a11f444811ba58de40vboxsync * Rectangle data type, point + size.
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsynctypedef struct RTRECT2
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** X coordinate.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * Unless stated otherwise, this is the top left corner. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** Y coordinate.
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync * Unless stated otherwise, this is the top left corner. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The width.
addc480d0d7650db6323467bbdab6c21836a2928vboxsync * Unless stated otherwise, this is to the right of (x,y) and will not
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * be a negative number. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The height.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * Unless stated otherwise, this is down from (x,y) and will not be a
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * negative number. */
01cc79d6798a7ad8b8041ddb2b67fc8b37bf0b37vboxsync/** Pointer to a point + size rectangle. */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a const point + size rectangle. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * The size of a rectangle.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsynctypedef struct RTRECTSIZE
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The width (along the x-axis). */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync /** The height (along the y-axis). */
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync/** Pointer to a rectangle size. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync/** Pointer to a const rectangle size. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * Ethernet MAC address.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * The first 24 bits make up the Organisationally Unique Identifier (OUI),
b2f6d678ae33b72db5c41199a3e632454f48cfa1vboxsync * where the first bit (little endian) indicates multicast (set) / unicast,
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * and the second bit indicates locally (set) / global administered. If all
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * bits are set, it's a broadcast.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsynctypedef union RTMAC
addc480d0d7650db6323467bbdab6c21836a2928vboxsync /** @todo add a bitfield view of this stuff. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** 8-bit view. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** 16-bit view. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync/** Pointer to a MAC address. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync/** Pointer to a readonly MAC address. */
541071eef3db0e3e0e5497bb4b692efee42b1ad0vboxsync/** Pointer to a lock validator record.
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * The structure definition is found in iprt/lockvalidator.h. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync/** Pointer to a lock validator source poisition.
b2f6d678ae33b72db5c41199a3e632454f48cfa1vboxsync * The structure definition is found in iprt/lockvalidator.h. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync/** Pointer to a const lock validator source poisition.
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * The structure definition is found in iprt/lockvalidator.h. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsynctypedef struct RTLOCKVALSRCPOS const *PCRTLOCKVALSRCPOS;
addc480d0d7650db6323467bbdab6c21836a2928vboxsync/** @name Special sub-class values.
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * The range 16..UINT32_MAX is available to the user, the range 0..15 is
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync * reserved for the lock validator. In the user range the locks can only be
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * taking in ascending order.
dea1368099e5337861dd52906d4c683c447a33c4vboxsync/** Invalid value. */
a5c11842b92303b7b5d0086ee5011a969e321b50vboxsync/** Not allowed to be taken with any other locks in the same class.
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * This is the recommended value. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync/** Any order is allowed within the class. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync/** The first user value. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * Process exit codes.
dea1368099e5337861dd52906d4c683c447a33c4vboxsync /** Success. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** General failure. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync /** Invalid arguments. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** Initialization failure (usually IPRT, but could be used for other
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * components as well). */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** Test skipped. */
ef481e64bafc49f1232767ce12c3fa69a5d5fe50vboxsync /** The end of valid exit codes. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync /** The usual 32-bit type hack. */
dea1368099e5337861dd52906d4c683c447a33c4vboxsync * Strict type validation helper class.
fdc5224bd8d9a60af82da5809e3d6729c9bc69cbvboxsync * See RTErrStrictType and RT_SUCCESS_NP.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** The status code. */
b1c3cdef473df2fbc621d5da81acc82dbfb8a11avboxsync * Constructor.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @param rc IPRT style status code.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Get the status code.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * @returns IPRT style status code.
b1c3cdef473df2fbc621d5da81acc82dbfb8a11avboxsync#endif /* __cplusplus */