16 #ifndef LLVM_OBJECTYAML_ELFYAML_H 17 #define LLVM_OBJECTYAML_ELFYAML_H 39 LLVM_YAML_STRONG_TYPEDEF(uint16_t, ELF_ET)
40 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, ELF_PT)
41 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, ELF_EM)
42 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_ELFCLASS)
43 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_ELFDATA)
44 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_ELFOSABI)
46 LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_EF)
47 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, ELF_PF)
48 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, ELF_SHT)
49 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, ELF_REL)
50 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_RSS)
52 LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_SHF)
53 LLVM_YAML_STRONG_TYPEDEF(uint16_t, ELF_SHN)
54 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STT)
55 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STV)
56 LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STO)
58 LLVM_YAML_STRONG_TYPEDEF(uint8_t, MIPS_AFL_REG)
59 LLVM_YAML_STRONG_TYPEDEF(uint8_t, MIPS_ABI_FP)
60 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, MIPS_AFL_EXT)
61 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, MIPS_AFL_ASE)
62 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, MIPS_AFL_FLAGS1)
63 LLVM_YAML_STRONG_TYPEDEF(
uint32_t, MIPS_ISA)
139 return S->
Kind == SectionKind::RawContent;
149 return S->
Kind == SectionKind::NoBits;
161 return S->
Kind == SectionKind::Group;
178 return S->
Kind == SectionKind::Relocation;
199 return S->
Kind == SectionKind::MipsABIFlags;
219 LLVM_YAML_IS_SEQUENCE_VECTOR(std::unique_ptr<llvm::ELFYAML::Section>)
229 struct ScalarEnumerationTraits<ELFYAML::ELF_ET> {
230 static void enumeration(IO &IO, ELFYAML::ELF_ET &
Value);
233 template <>
struct ScalarEnumerationTraits<ELFYAML::ELF_PT> {
234 static void enumeration(IO &IO, ELFYAML::ELF_PT &
Value);
238 struct ScalarEnumerationTraits<ELFYAML::ELF_EM> {
239 static void enumeration(IO &IO, ELFYAML::ELF_EM &
Value);
243 struct ScalarEnumerationTraits<ELFYAML::ELF_ELFCLASS> {
244 static void enumeration(IO &IO, ELFYAML::ELF_ELFCLASS &
Value);
248 struct ScalarEnumerationTraits<ELFYAML::ELF_ELFDATA> {
249 static void enumeration(IO &IO, ELFYAML::ELF_ELFDATA &
Value);
253 struct ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI> {
254 static void enumeration(IO &IO, ELFYAML::ELF_ELFOSABI &
Value);
258 struct ScalarBitSetTraits<ELFYAML::ELF_EF> {
259 static void bitset(IO &IO, ELFYAML::ELF_EF &
Value);
262 template <>
struct ScalarBitSetTraits<ELFYAML::ELF_PF> {
263 static void bitset(IO &IO, ELFYAML::ELF_PF &
Value);
267 struct ScalarEnumerationTraits<ELFYAML::ELF_SHT> {
268 static void enumeration(IO &IO, ELFYAML::ELF_SHT &
Value);
272 struct ScalarBitSetTraits<ELFYAML::ELF_SHF> {
273 static void bitset(IO &IO, ELFYAML::ELF_SHF &
Value);
276 template <>
struct ScalarEnumerationTraits<ELFYAML::ELF_SHN> {
277 static void enumeration(IO &IO, ELFYAML::ELF_SHN &
Value);
281 struct ScalarEnumerationTraits<ELFYAML::ELF_STT> {
282 static void enumeration(IO &IO, ELFYAML::ELF_STT &
Value);
286 struct ScalarEnumerationTraits<ELFYAML::ELF_STV> {
287 static void enumeration(IO &IO, ELFYAML::ELF_STV &
Value);
291 struct ScalarBitSetTraits<ELFYAML::ELF_STO> {
292 static void bitset(IO &IO, ELFYAML::ELF_STO &
Value);
296 struct ScalarEnumerationTraits<ELFYAML::ELF_REL> {
297 static void enumeration(IO &IO, ELFYAML::ELF_REL &
Value);
301 struct ScalarEnumerationTraits<ELFYAML::ELF_RSS> {
302 static void enumeration(IO &IO, ELFYAML::ELF_RSS &
Value);
306 struct ScalarEnumerationTraits<ELFYAML::MIPS_AFL_REG> {
307 static void enumeration(IO &IO, ELFYAML::MIPS_AFL_REG &
Value);
311 struct ScalarEnumerationTraits<ELFYAML::MIPS_ABI_FP> {
312 static void enumeration(IO &IO, ELFYAML::MIPS_ABI_FP &
Value);
316 struct ScalarEnumerationTraits<ELFYAML::MIPS_AFL_EXT> {
317 static void enumeration(IO &IO, ELFYAML::MIPS_AFL_EXT &
Value);
321 struct ScalarEnumerationTraits<ELFYAML::MIPS_ISA> {
322 static void enumeration(IO &IO, ELFYAML::MIPS_ISA &
Value);
326 struct ScalarBitSetTraits<ELFYAML::MIPS_AFL_ASE> {
327 static void bitset(IO &IO, ELFYAML::MIPS_AFL_ASE &
Value);
331 struct ScalarBitSetTraits<ELFYAML::MIPS_AFL_FLAGS1> {
332 static void bitset(IO &IO, ELFYAML::MIPS_AFL_FLAGS1 &
Value);
361 static void mapping(IO &IO, std::unique_ptr<ELFYAML::Section> &
Section);
362 static StringRef validate(IO &io, std::unique_ptr<ELFYAML::Section> &Section);
381 #endif // LLVM_OBJECTYAML_ELFYAML_H
static bool classof(const Section *S)
This class represents lattice values for constants.
static bool classof(const Section *S)
Optional< ELF_SHN > Index
llvm::yaml::Hex16 Version
llvm::yaml::Hex64 Address
LocalGlobalWeakSymbols Symbols
llvm::yaml::Hex64 AddressAlign
std::vector< Symbol > Weak
static bool classof(const Section *S)
StringRef sectionNameOrType
Optional< llvm::yaml::Hex64 > EntSize
std::vector< Symbol > Global
LocalGlobalWeakSymbols DynamicSymbols
std::vector< ProgramHeader > ProgramHeaders
std::vector< std::unique_ptr< Section > > Sections
std::vector< Symbol > Local
llvm::yaml::Hex8 ISARevision
std::vector< SectionOrType > Members
Specialized YAMLIO scalar type for representing a binary blob.
static bool classof(const Section *S)
MIPS_AFL_EXT ISAExtension
LLVM Value Representation.
static bool classof(const Section *S)
StringRef - Represent a constant reference to a string, i.e.
Section(SectionKind Kind)
Optional< StringRef > Symbol
std::vector< Relocation > Relocations