[PATCH 1/2] include: Define RTL_BALANCED_NODE.

Zebediah Figura z.figura12 at gmail.com
Wed Apr 22 21:07:18 CDT 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 include/ntdef.h  | 33 +++++++++++++++++++++++++++++++++
 include/windef.h | 15 +++++++++++----
 2 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/include/ntdef.h b/include/ntdef.h
index 014102ac74..d85aa6feb5 100644
--- a/include/ntdef.h
+++ b/include/ntdef.h
@@ -19,6 +19,8 @@
 #ifndef _NTDEF_
 #define _NTDEF_
 
+#include <basetsd.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -48,4 +50,35 @@ typedef enum _WAIT_TYPE {
 #define NT_WARNING(status)      ((((NTSTATUS)(status)) & 0xc0000000) == 0x80000000)
 #define NT_ERROR(status)        ((((NTSTATUS)(status)) & 0xc0000000) == 0xc0000000)
 
+#define BASETYPES
+typedef unsigned char UCHAR, *PUCHAR;
+typedef unsigned short USHORT, *PUSHORT;
+#ifdef _MSC_VER
+typedef unsigned long ULONG, *PULONG;
+#else
+typedef unsigned int ULONG, *PULONG;
+#endif
+
+typedef struct _RTL_BALANCED_NODE
+{
+    union
+    {
+        struct _RTL_BALANCED_NODE *Children[2];
+        struct
+        {
+            struct _RTL_BALANCED_NODE *Left;
+            struct _RTL_BALANCED_NODE *Right;
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
+
+    union
+    {
+        UCHAR Red : 1;
+        UCHAR Balance : 2;
+        ULONG_PTR ParentValue;
+    } DUMMYUNIONNAME2;
+} RTL_BALANCED_NODE, *PRTL_BALANCED_NODE;
+
+#define RTL_BALANCED_NODE_RESERVED_PARENT_MASK 3
+
 #endif /* _NTDEF_ */
diff --git a/include/windef.h b/include/windef.h
index 0074d5cf6c..3c61cad4c5 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -239,13 +239,22 @@ extern "C" {
 
 /* Standard data types */
 
+#ifndef BASETYPES
+#define BASETYPES
+typedef unsigned char UCHAR, *PUCHAR;
+typedef unsigned short USHORT, *PUSHORT;
+#ifdef _MSC_VER
+typedef unsigned long ULONG, *PULONG;
+#else
+typedef unsigned int ULONG, *PULONG;
+#endif
+#endif
+
 typedef void                                   *LPVOID;
 typedef const void                             *LPCVOID;
 typedef int             BOOL,       *PBOOL,    *LPBOOL;
 typedef unsigned char   BYTE,       *PBYTE,    *LPBYTE;
-typedef unsigned char   UCHAR,      *PUCHAR;
 typedef unsigned short  WORD,       *PWORD,    *LPWORD;
-typedef unsigned short  USHORT,     *PUSHORT;
 typedef int             INT,        *PINT,     *LPINT;
 typedef unsigned int    UINT,       *PUINT;
 typedef float           FLOAT,      *PFLOAT;
@@ -253,11 +262,9 @@ typedef char                        *PSZ;
 #ifdef _MSC_VER
 typedef long                                   *LPLONG;
 typedef unsigned long   DWORD,      *PDWORD,   *LPDWORD;
-typedef unsigned long   ULONG,      *PULONG;
 #else
 typedef int                                    *LPLONG;
 typedef unsigned int    DWORD,      *PDWORD,   *LPDWORD;
-typedef unsigned int    ULONG,      *PULONG;
 #endif
 
 /* Macros to map Winelib names to the correct implementation name */
-- 
2.26.2




More information about the wine-devel mailing list