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 {
20     ULONG64 Reserved1[12];
21     ULONG64 ProcessEnvironmentBlock;
22     ULONG64 Reserved2[399];
23     BYTE Reserved3[1952];
24     ULONG64 TlsSlots[64];
25     BYTE Reserved4[8];
26     ULONG64 Reserved5[26];
27     ULONG64 ReservedForOle; // Windows 2000 only
28     ULONG64 Reserved6[4];
29     ULONG64 TlsExpansionSlots;
30 };
31 
32 #endif
33