43 lines · c
1#ifndef LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H2 3#define LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H4 5//===-- NtStructures.h ------------------------------------------*- C++ -*-===//6//7// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.8// See https://llvm.org/LICENSE.txt for license information.9// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception10//11//===----------------------------------------------------------------------===//12 13#ifndef liblldb_Plugins_Process_Minidump_NtStructures_h_14#define liblldb_Plugins_Process_Minidump_NtStructures_h_15 16#include "llvm/Support/Endian.h"17 18namespace lldb_private {19 20namespace minidump {21 22// This describes the layout of a TEB (Thread Environment Block) for a 64-bit23// process. It's adapted from the 32-bit TEB in winternl.h. Currently, we care24// only about the position of the tls_slots.25struct TEB64 {26 llvm::support::ulittle64_t reserved1[12];27 llvm::support::ulittle64_t process_environment_block;28 llvm::support::ulittle64_t reserved2[399];29 uint8_t reserved3[1952];30 llvm::support::ulittle64_t tls_slots[64];31 uint8_t reserved4[8];32 llvm::support::ulittle64_t reserved5[26];33 llvm::support::ulittle64_t reserved_for_ole; // Windows 2000 only34 llvm::support::ulittle64_t reserved6[4];35 llvm::support::ulittle64_t tls_expansion_slots;36};37 38#endif // liblldb_Plugins_Process_Minidump_NtStructures_h_39} // namespace minidump40} // namespace lldb_private41 42#endif43