1 //===-- NtStructures.h ------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef liblldb_Plugins_Process_Windows_Common_NtStructures_h_
11 #define liblldb_Plugins_Process_Windows_Common_NtStructures_h_
12 
13 #include "lldb/Host/windows/windows.h"
14 
15 // This describes the layout of a TEB (Thread Environment Block) for a 64-bit
16 // process.  It's adapted from the 32-bit TEB in winternl.h.  Currently, we care
17 // only about the position of the TlsSlots.
18 struct TEB64 {
19   ULONG64 Reserved1[12];
20   ULONG64 ProcessEnvironmentBlock;
21   ULONG64 Reserved2[399];
22   BYTE Reserved3[1952];
23   ULONG64 TlsSlots[64];
24   BYTE Reserved4[8];
25   ULONG64 Reserved5[26];
26   ULONG64 ReservedForOle; // Windows 2000 only
27   ULONG64 Reserved6[4];
28   ULONG64 TlsExpansionSlots;
29 };
30 
31 #endif
32