Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Process/minidump/NtStructures.h
39645 views
#ifndef LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H12#define LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_NTSTRUCTURES_H34//===-- NtStructures.h ------------------------------------------*- C++ -*-===//5//6// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.7// See https://llvm.org/LICENSE.txt for license information.8// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception9//10//===----------------------------------------------------------------------===//1112#ifndef liblldb_Plugins_Process_Minidump_NtStructures_h_13#define liblldb_Plugins_Process_Minidump_NtStructures_h_1415#include "llvm/Support/Endian.h"1617namespace lldb_private {1819namespace minidump {2021// This describes the layout of a TEB (Thread Environment Block) for a 64-bit22// process. It's adapted from the 32-bit TEB in winternl.h. Currently, we care23// only about the position of the tls_slots.24struct TEB64 {25llvm::support::ulittle64_t reserved1[12];26llvm::support::ulittle64_t process_environment_block;27llvm::support::ulittle64_t reserved2[399];28uint8_t reserved3[1952];29llvm::support::ulittle64_t tls_slots[64];30uint8_t reserved4[8];31llvm::support::ulittle64_t reserved5[26];32llvm::support::ulittle64_t reserved_for_ole; // Windows 2000 only33llvm::support::ulittle64_t reserved6[4];34llvm::support::ulittle64_t tls_expansion_slots;35};3637#endif // liblldb_Plugins_Process_Minidump_NtStructures_h_38} // namespace minidump39} // namespace lldb_private4041#endif424344