]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h
MFC r355940:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / source / Plugins / SymbolFile / DWARF / DWARFDefines.h
1 //===-- DWARFDefines.h ------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #ifndef SymbolFileDWARF_DWARFDefines_h_
10 #define SymbolFileDWARF_DWARFDefines_h_
11
12 #include "lldb/Core/dwarf.h"
13 #include <stdint.h>
14
15 namespace lldb_private {
16
17 enum class DWARFEnumState { MoreItems, Complete };
18
19 typedef uint32_t DRC_class; // Holds DRC_* class bitfields
20
21 const char *DW_TAG_value_to_name(uint32_t val);
22
23 const char *DW_AT_value_to_name(uint32_t val);
24
25 const char *DW_FORM_value_to_name(uint32_t val);
26
27 const char *DW_OP_value_to_name(uint32_t val);
28
29 DRC_class DW_OP_value_to_class(uint32_t val);
30
31 const char *DW_ATE_value_to_name(uint32_t val);
32
33 const char *DW_LANG_value_to_name(uint32_t val);
34
35 const char *DW_LNS_value_to_name(uint32_t val);
36
37 /* These DRC are entirely our own construction,
38     although they are derived from various comments in the DWARF standard.
39     Most of these are not useful to the parser, but the DW_AT and DW_FORM
40     classes should prove to be usable in some fashion.  */
41
42 #define DRC_0x65 0x1
43 #define DRC_ADDRESS 0x2
44 #define DRC_BLOCK 0x4
45 #define DRC_CONSTANT 0x8
46 #define DRC_DWARFv3 0x10
47 #define DRC_FLAG 0x20
48 #define DRC_INDIRECT_SPECIAL 0x40
49 #define DRC_LINEPTR 0x80
50 #define DRC_LOCEXPR 0x100
51 #define DRC_LOCLISTPTR 0x200
52 #define DRC_MACPTR 0x400
53 #define DRC_ONEOPERAND 0x800
54 #define DRC_OPERANDONE_1BYTE_DELTA 0x1000
55 #define DRC_OPERANDONE_2BYTE_DELTA 0x2000
56 #define DRC_OPERANDONE_4BYTE_DELTA 0x4000
57 #define DRC_OPERANDONE_ADDRESS 0x8000
58 #define DRC_OPERANDONE_BLOCK 0x10000
59 #define DRC_OPERANDONE_SLEB128_OFFSET 0x20000
60 #define DRC_OPERANDONE_ULEB128_OFFSET 0x40000
61 #define DRC_OPERANDONE_ULEB128_REGISTER 0x80000
62 #define DRC_OPERANDTWO_BLOCK 0x100000
63 #define DRC_OPERANDTWO_SLEB128_OFFSET 0x200000
64 #define DRC_OPERANDTWO_ULEB128_OFFSET 0x400000
65 #define DRC_OPERANDTWO_ULEB128_REGISTER 0x800000
66 #define DRC_OPERNADONE_ULEB128_REGISTER 0x1000000
67 #define DRC_RANGELISTPTR 0x2000000
68 #define DRC_REFERENCE 0x4000000
69 #define DRC_STRING 0x8000000
70 #define DRC_TWOOPERANDS 0x10000000
71 #define DRC_VENDOR_GNU 0x20000000
72 #define DRC_VENDOR_MIPS 0x40000000
73 #define DRC_ZEROOPERANDS 0x80000000
74
75 } // namespace lldb_private
76
77 #endif // SymbolFileDWARF_DWARFDefines_h_