1*dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H 2*dda28197Spatrick 3*dda28197Spatrick #define LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H 4*dda28197Spatrick 5061da546Spatrick //===-- NtStructures.h ------------------------------------------*- C++ -*-===// 6061da546Spatrick // 7061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 8061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 9061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 10061da546Spatrick // 11061da546Spatrick //===----------------------------------------------------------------------===// 12061da546Spatrick 13061da546Spatrick #ifndef liblldb_Plugins_Process_Minidump_NtStructures_h_ 14061da546Spatrick #define liblldb_Plugins_Process_Minidump_NtStructures_h_ 15061da546Spatrick 16061da546Spatrick #include "llvm/Support/Endian.h" 17061da546Spatrick 18061da546Spatrick namespace lldb_private { 19061da546Spatrick 20061da546Spatrick namespace minidump { 21061da546Spatrick 22061da546Spatrick // This describes the layout of a TEB (Thread Environment Block) for a 64-bit 23061da546Spatrick // process. It's adapted from the 32-bit TEB in winternl.h. Currently, we care 24061da546Spatrick // only about the position of the tls_slots. 25061da546Spatrick struct TEB64 { 26061da546Spatrick llvm::support::ulittle64_t reserved1[12]; 27061da546Spatrick llvm::support::ulittle64_t process_environment_block; 28061da546Spatrick llvm::support::ulittle64_t reserved2[399]; 29061da546Spatrick uint8_t reserved3[1952]; 30061da546Spatrick llvm::support::ulittle64_t tls_slots[64]; 31061da546Spatrick uint8_t reserved4[8]; 32061da546Spatrick llvm::support::ulittle64_t reserved5[26]; 33061da546Spatrick llvm::support::ulittle64_t reserved_for_ole; // Windows 2000 only 34061da546Spatrick llvm::support::ulittle64_t reserved6[4]; 35061da546Spatrick llvm::support::ulittle64_t tls_expansion_slots; 36061da546Spatrick }; 37061da546Spatrick 38061da546Spatrick #endif // liblldb_Plugins_Process_Minidump_NtStructures_h_ 39061da546Spatrick } // namespace minidump 40061da546Spatrick } // namespace lldb_private 41*dda28197Spatrick 42*dda28197Spatrick #endif 43