| Dimitar Vlahovski | 7b18dd4 | 2016-10-31 15:35:18 +0000 | [diff] [blame^] | 1 | //===-- NtStructures.h ------------------------------------------*- C++ -*-===// | 
|  | 2 | // | 
|  | 3 | //                     The LLVM Compiler Infrastructure | 
|  | 4 | // | 
|  | 5 | // This file is distributed under the University of Illinois Open Source | 
|  | 6 | // License. See LICENSE.TXT for details. | 
|  | 7 | // | 
|  | 8 | //===----------------------------------------------------------------------===// | 
|  | 9 |  | 
|  | 10 | #ifndef liblldb_Plugins_Process_Minidump_NtStructures_h_ | 
|  | 11 | #define liblldb_Plugins_Process_Minidump_NtStructures_h_ | 
|  | 12 |  | 
|  | 13 | #include "llvm/Support/Endian.h" | 
|  | 14 |  | 
|  | 15 | namespace lldb_private { | 
|  | 16 |  | 
|  | 17 | namespace minidump { | 
|  | 18 |  | 
|  | 19 | // This describes the layout of a TEB (Thread Environment Block) for a 64-bit | 
|  | 20 | // process.  It's adapted from the 32-bit TEB in winternl.h.  Currently, we care | 
|  | 21 | // only about the position of the tls_slots. | 
|  | 22 | struct TEB64 { | 
|  | 23 | llvm::support::ulittle64_t reserved1[12]; | 
|  | 24 | llvm::support::ulittle64_t process_environment_block; | 
|  | 25 | llvm::support::ulittle64_t reserved2[399]; | 
|  | 26 | uint8_t reserved3[1952]; | 
|  | 27 | llvm::support::ulittle64_t tls_slots[64]; | 
|  | 28 | uint8_t reserved4[8]; | 
|  | 29 | llvm::support::ulittle64_t reserved5[26]; | 
|  | 30 | llvm::support::ulittle64_t reserved_for_ole; // Windows 2000 only | 
|  | 31 | llvm::support::ulittle64_t reserved6[4]; | 
|  | 32 | llvm::support::ulittle64_t tls_expansion_slots; | 
|  | 33 | }; | 
|  | 34 |  | 
|  | 35 | #endif // liblldb_Plugins_Process_Minidump_NtStructures_h_ | 
|  | 36 | } // namespace minidump | 
|  | 37 | } // namespace lldb_private |