[HEADERS]
[reactos.git] / reactos / include / psdk / winnt.h
index b1b61a8..bd0fac1 100644 (file)
@@ -1,13 +1,11 @@
 #ifndef _WINNT_H
 #define _WINNT_H
 
-#ifndef _M_AMD64
 #if !defined(__ROS_LONG64__)
 #ifdef __WINESRC__
 #define __ROS_LONG64__
 #endif
 #endif
-#endif
 
 #ifdef __GNUC__
 #include <msvctarget.h>
@@ -62,7 +60,6 @@ extern "C" {
 #undef UNALIGNED
 #define UNALIGNED __unaligned
 #else
-#undef UNALIGNED
 #define UNALIGNED
 #endif
 
@@ -229,12 +226,7 @@ typedef BYTE FCHAR;
 typedef WORD FSHORT;
 typedef DWORD FLONG;
 
-#define __C_ASSERT_JOIN(X, Y) __C_ASSERT_DO_JOIN(X, Y)
-#define __C_ASSERT_DO_JOIN(X, Y) __C_ASSERT_DO_JOIN2(X, Y)
-#define __C_ASSERT_DO_JOIN2(X, Y) X##Y
-
-#define C_ASSERT(e) typedef char __C_ASSERT_JOIN(__C_ASSERT__, __LINE__)[(e) ? 1 : -1]
-
+#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
 
 #include "intrin.h"
 
@@ -408,7 +400,7 @@ typedef DWORD FLONG;
 #define FILE_CREATE_TREE_CONNECTION    0x00000080
 #define FILE_COMPLETE_IF_OPLOCKED      0x00000100
 #define FILE_NO_EA_KNOWLEDGE           0x00000200
-#define FILE_OPEN_FOR_RECOVERY         0x00000400
+#define FILE_OPEN_REMOTE_INSTANCE      0x00000400
 #define FILE_RANDOM_ACCESS             0x00000800
 #define FILE_DELETE_ON_CLOSE           0x00001000
 #define FILE_OPEN_BY_FILE_ID           0x00002000
@@ -1132,6 +1124,7 @@ typedef enum {
 #define LANG_SYSTEM_DEFAULT    MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT)
 #define LANG_USER_DEFAULT      MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT)
 #define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)
+#define LOCALE_INVARIANT MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)
 #define ACL_REVISION   2
 #define ACL_REVISION_DS 4
 #define ACL_REVISION1 1
@@ -3238,6 +3231,15 @@ typedef struct _LIST_ENTRY {
        struct _LIST_ENTRY *Flink;
        struct _LIST_ENTRY *Blink;
 } LIST_ENTRY,*PLIST_ENTRY;
+typedef struct _LIST_ENTRY32 {
+       DWORD Flink;
+       DWORD Blink;
+} LIST_ENTRY32,*PLIST_ENTRY32;
+typedef struct _LIST_ENTRY64 {
+       ULONGLONG Flink;
+       ULONGLONG Blink;
+} LIST_ENTRY64,*PLIST_ENTRY64;
+
 typedef struct _SINGLE_LIST_ENTRY {
        struct _SINGLE_LIST_ENTRY *Next;
 } SINGLE_LIST_ENTRY,*PSINGLE_LIST_ENTRY;
@@ -3248,11 +3250,11 @@ typedef struct _SINGLE_LIST_ENTRY {
 #ifndef _SLIST_HEADER_
 #define _SLIST_HEADER_
 
-#define SLIST_ENTRY SINGLE_LIST_ENTRY
-#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
-#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
-
 #if defined(_WIN64)
+typedef struct _SLIST_ENTRY *PSLIST_ENTRY;
+typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
+       PSLIST_ENTRY Next;
+} SLIST_ENTRY;
 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
     struct {
         ULONGLONG Alignment;
@@ -3277,6 +3279,9 @@ typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
     } Header16;
 } SLIST_HEADER, *PSLIST_HEADER;
 #else
+#define SLIST_ENTRY SINGLE_LIST_ENTRY
+#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
+#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
 typedef union _SLIST_HEADER {
     ULONGLONG Alignment;
     struct {
@@ -4157,6 +4162,32 @@ typedef struct _NT_TIB {
        struct _NT_TIB *Self;
 } NT_TIB,*PNT_TIB;
 
+typedef struct _NT_TIB32 {
+       DWORD ExceptionList;
+       DWORD StackBase;
+       DWORD StackLimit;
+       DWORD SubSystemTib;
+       union {
+               DWORD FiberData;
+               DWORD Version;
+       };
+       DWORD ArbitraryUserPointer;
+       DWORD Self;
+} NT_TIB32,*PNT_TIB32;
+
+typedef struct _NT_TIB64 {
+       DWORD64 ExceptionList;
+       DWORD64 StackBase;
+       DWORD64 StackLimit;
+       DWORD64 SubSystemTib;
+       union {
+               DWORD64 FiberData;
+               DWORD Version;
+       };
+       DWORD64 ArbitraryUserPointer;
+       DWORD64 Self;
+} NT_TIB64,*PNT_TIB64;
+
 typedef struct _REPARSE_GUID_DATA_BUFFER {
        DWORD  ReparseTag;
        WORD   ReparseDataLength;
@@ -4650,6 +4681,8 @@ typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
 typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
 #endif
 
+#define VER_SET_CONDITION(lc,t,c) ((lc) = VerSetConditionMask((lc),(t),(c)))
+
 #if (_WIN32_WINNT >= 0x0500)
 ULONGLONG WINAPI VerSetConditionMask(ULONGLONG,DWORD,BYTE);
 #endif