From cd1a09be73115aa9a12fc39c2784d7e54003762f Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 22 Apr 2020 21:07:18 -0500 Subject: [PATCH] include: Define RTL_BALANCED_NODE. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- 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 014102ac74e..d85aa6feb5a 100644 --- a/include/ntdef.h +++ b/include/ntdef.h @@ -19,6 +19,8 @@ #ifndef _NTDEF_ #define _NTDEF_ +#include + #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 0074d5cf6c4..3c61cad4c56 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 */