Start using the exported TEB structure from winternl.h where
possible.
diff --git a/include/winternl.h b/include/winternl.h
index 88b9186..94c64fe 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -30,35 +30,6 @@
#endif /* defined(__cplusplus) */
-/***********************************************************************
- * TEB data structure
- */
-#if 0
-typedef struct _TEB
-{
- NT_TIB Tib; /* 000 */
- PVOID EnvironmentPointer; /* 01c */
- CLIENT_ID ClientId; /* 020 */
- PVOID ActiveRpcHandle; /* 028 */
- PVOID ThreadLocalStoragePointer; /* 02c */
- PPEB Peb; /* 030 */
- ULONG LastErrorValue; /* 034 */
- BYTE __pad038[140]; /* 038 */
- ULONG CurrentLocale; /* 0c4 */
- BYTE __pad0c8[1752]; /* 0c8 */
- PVOID Reserved2[278]; /* 7a0 */
- UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */
- WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */
- PVOID DeallocationStack; /* e0c */
- PVOID TlsSlots[64]; /* e10 */
- BYTE Reserved3[8]; /* f10 */
- PVOID Reserved4[26]; /* f18 */
- PVOID ReservedForOle; /* f80 Windows 2000 only */
- PVOID Reserved5[4]; /* f84 */
- PVOID TlsExpansionSlots; /* f94 */
-} TEB, *PTEB;
-#endif
-
/**********************************************************************
* Fundamental types and data structures
*/
@@ -176,6 +147,42 @@
/***********************************************************************
+ * TEB data structure
+ */
+#if defined(_NTSYSTEM_) || defined(_KERNEL32_) /* hack, should go away */
+# define WINE_NO_TEB
+#endif
+
+#ifndef WINE_NO_TEB /* don't define TEB if included from thread.h */
+# ifndef WINE_TEB_DEFINED
+# define WINE_TEB_DEFINED
+typedef struct _TEB
+{
+ NT_TIB Tib; /* 000 */
+ PVOID EnvironmentPointer; /* 01c */
+ CLIENT_ID ClientId; /* 020 */
+ PVOID ActiveRpcHandle; /* 028 */
+ PVOID ThreadLocalStoragePointer; /* 02c */
+ PPEB Peb; /* 030 */
+ ULONG LastErrorValue; /* 034 */
+ BYTE __pad038[140]; /* 038 */
+ ULONG CurrentLocale; /* 0c4 */
+ BYTE __pad0c8[1752]; /* 0c8 */
+ PVOID Reserved2[278]; /* 7a0 */
+ UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */
+ WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */
+ PVOID DeallocationStack; /* e0c */
+ PVOID TlsSlots[64]; /* e10 */
+ BYTE Reserved3[8]; /* f10 */
+ PVOID Reserved4[26]; /* f18 */
+ PVOID ReservedForOle; /* f80 Windows 2000 only */
+ PVOID Reserved5[4]; /* f84 */
+ PVOID TlsExpansionSlots; /* f94 */
+} TEB, *PTEB;
+# endif /* WINE_TEB_DEFINED */
+#endif /* WINE_NO_TEB */
+
+/***********************************************************************
* Enums
*/