blob: 1eb25b28231388258294f75038e6c98d5fec0724 [file] [log] [blame]
Adrian McCarthy0a750822016-02-25 00:23:27 +00001//===-- NtStructures.h ------------------------------------------*- C++ -*-===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Adrian McCarthy0a750822016-02-25 00:23:27 +00006//
7//===----------------------------------------------------------------------===//
8
9#ifndef liblldb_Plugins_Process_Windows_Common_NtStructures_h_
10#define liblldb_Plugins_Process_Windows_Common_NtStructures_h_
11
12#include "lldb/Host/windows/windows.h"
13
14// This describes the layout of a TEB (Thread Environment Block) for a 64-bit
15// process. It's adapted from the 32-bit TEB in winternl.h. Currently, we care
16// only about the position of the TlsSlots.
Kate Stoneb9c1b512016-09-06 20:57:50 +000017struct TEB64 {
18 ULONG64 Reserved1[12];
19 ULONG64 ProcessEnvironmentBlock;
20 ULONG64 Reserved2[399];
21 BYTE Reserved3[1952];
22 ULONG64 TlsSlots[64];
23 BYTE Reserved4[8];
24 ULONG64 Reserved5[26];
25 ULONG64 ReservedForOle; // Windows 2000 only
26 ULONG64 Reserved6[4];
27 ULONG64 TlsExpansionSlots;
Adrian McCarthy0a750822016-02-25 00:23:27 +000028};
29
30#endif