LLVM: include/llvm/ObjectYAML/COFFYAML.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_OBJECTYAML_COFFYAML_H
14#define LLVM_OBJECTYAML_COFFYAML_H
15
23#include
24#include
25#include
26
27namespace llvm {
28
29namespace COFF {
30
35
41
47
48}
49
50
51
53
57
69
79
84 std::vectorCodeViewYAML::YAMLDebugSubsection DebugS;
85 std::vectorCodeViewYAML::LeafRecord DebugT;
86 std::vectorCodeViewYAML::LeafRecord DebugP;
87 std::optionalCodeViewYAML::DebugHSection DebugH;
91
93};
94
104 std::optionalCOFF::AuxiliaryCLRToken CLRToken;
106
108};
109
112 std::optionalCOFF::DataDirectory
114};
115
124
125}
126
127}
128
133
134namespace llvm {
135namespace yaml {
136
137template <>
141
142template <>
146
147template <>
151
152template <>
156
157template <>
161
162template <>
166
167template <>
171
172template <>
176
177template <>
181
185
186template <>
190
191template <>
195
196template <>
200
201template <>
205
206template <>
210
211template <>
215
216template <>
220
221template <>
225
226template <>
230
231template <>
235
239
243
247
251
255
259
263
267
268template <>
272
276
277template <>
281
282template <>
286
287}
288}
289
290#endif
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.
#define LLVM_YAML_STRONG_TYPEDEF(_base, _type)
YAML I/O does conversion based on types. But often native data types are just a typedef of built in i...
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
Specialized YAMLIO scalar type for representing a binary blob.
Characteristics operator|(Characteristics a, Characteristics b)
Definition COFFYAML.h:31
SymbolStorageClass
Storage class tells where and what the symbol represents.
@ IMAGE_SYM_TYPE_NULL
No type information or unknown base type.
@ IMAGE_SYM_DTYPE_NULL
No complex type; simple scalar variable.
This is an optimization pass for GlobalISel generic memory operations.
Definition COFFYAML.h:116
std::optional< PEHeader > OptionalHeader
Definition COFFYAML.h:117
std::vector< Section > Sections
Definition COFFYAML.h:119
std::vector< Symbol > Symbols
Definition COFFYAML.h:120
COFF::header Header
Definition COFFYAML.h:118
uint32_t VirtualAddress
Definition COFFYAML.h:59
StringRef SymbolName
Definition COFFYAML.h:66
std::optional< uint32_t > SymbolTableIndex
Definition COFFYAML.h:67
uint16_t Type
Definition COFFYAML.h:60
std::optional< object::coff_load_configuration64 > LoadConfig64
Definition COFFYAML.h:74
std::optional< object::coff_load_configuration32 > LoadConfig32
Definition COFFYAML.h:73
void writeAsBinary(raw_ostream &OS) const
std::optional< uint32_t > UInt32
Definition COFFYAML.h:71
yaml::BinaryRef Binary
Definition COFFYAML.h:72
std::vector< CodeViewYAML::YAMLDebugSubsection > DebugS
Definition COFFYAML.h:84
std::vector< SectionDataEntry > StructuredData
Definition COFFYAML.h:88
unsigned Alignment
Definition COFFYAML.h:82
StringRef Name
Definition COFFYAML.h:90
std::vector< CodeViewYAML::LeafRecord > DebugT
Definition COFFYAML.h:85
yaml::BinaryRef SectionData
Definition COFFYAML.h:83
std::optional< CodeViewYAML::DebugHSection > DebugH
Definition COFFYAML.h:87
std::vector< CodeViewYAML::LeafRecord > DebugP
Definition COFFYAML.h:86
COFF::section Header
Definition COFFYAML.h:81
std::vector< Relocation > Relocations
Definition COFFYAML.h:89
std::optional< COFF::AuxiliaryWeakExternal > WeakExternal
Definition COFFYAML.h:101
StringRef Name
Definition COFFYAML.h:105
std::optional< COFF::AuxiliarybfAndefSymbol > bfAndefSymbol
Definition COFFYAML.h:100
StringRef File
Definition COFFYAML.h:102
COFF::SymbolComplexType ComplexType
Definition COFFYAML.h:98
std::optional< COFF::AuxiliarySectionDefinition > SectionDefinition
Definition COFFYAML.h:103
std::optional< COFF::AuxiliaryFunctionDefinition > FunctionDefinition
Definition COFFYAML.h:99
COFF::symbol Header
Definition COFFYAML.h:96
COFF::SymbolBaseType SimpleType
Definition COFFYAML.h:97
std::optional< COFF::AuxiliaryCLRToken > CLRToken
Definition COFFYAML.h:104
32-bit load config (IMAGE_LOAD_CONFIG_DIRECTORY32)
64-bit load config (IMAGE_LOAD_CONFIG_DIRECTORY64)
static void mapping(IO &IO, COFFYAML::Object &Obj)
static void mapping(IO &IO, COFFYAML::Relocation &Rel)
static void mapping(IO &IO, COFFYAML::SectionDataEntry &Sec)
static void mapping(IO &IO, COFFYAML::Section &Sec)
static void mapping(IO &IO, COFFYAML::Symbol &S)
static void mapping(IO &IO, COFF::AuxiliaryCLRToken &ACT)
static void mapping(IO &IO, COFF::AuxiliaryFunctionDefinition &AFD)
static void mapping(IO &IO, COFF::AuxiliarySectionDefinition &ASD)
static void mapping(IO &IO, COFF::AuxiliaryWeakExternal &AWE)
static void mapping(IO &IO, COFF::AuxiliarybfAndefSymbol &AAS)
static void mapping(IO &IO, COFF::DataDirectory &DD)
static void mapping(IO &IO, object::coff_load_config_code_integrity &ACT)
static void mapping(IO &IO, object::coff_load_configuration32 &ACT)
static void mapping(IO &IO, object::coff_load_configuration64 &ACT)
This class should be specialized by any type that needs to be converted to/from a YAML mapping.
static void bitset(IO &IO, COFF::Characteristics &Value)
static void bitset(IO &IO, COFF::DLLCharacteristics &Value)
static void bitset(IO &IO, COFF::SectionCharacteristics &Value)
This class should be specialized by any integer type that is a union of bit values and the YAML repre...
static void enumeration(IO &IO, COFFYAML::AuxSymbolType &Value)
static void enumeration(IO &IO, COFFYAML::COMDATType &Value)
static void enumeration(IO &IO, COFFYAML::WeakExternalCharacteristics &Value)
static void enumeration(IO &IO, COFF::MachineTypes &Value)
static void enumeration(IO &IO, COFF::RelocationTypeAMD64 &Value)
static void enumeration(IO &IO, COFF::RelocationTypeI386 &Value)
static void enumeration(IO &IO, COFF::RelocationTypesARM64 &Value)
static void enumeration(IO &IO, COFF::RelocationTypesARM &Value)
static void enumeration(IO &IO, COFF::RelocationTypesMips &Value)
static void enumeration(IO &IO, COFF::SymbolBaseType &Value)
static void enumeration(IO &IO, COFF::SymbolComplexType &Value)
static void enumeration(IO &IO, COFF::SymbolStorageClass &Value)
static void enumeration(IO &IO, COFF::WindowsSubsystem &Value)
This class should be specialized by any integral type that converts to/from a YAML scalar where there...