brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1dafbe4 Raw
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