diff options
Diffstat (limited to 'lib/Object/ELFYAML.cpp')
-rw-r--r-- | lib/Object/ELFYAML.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Object/ELFYAML.cpp b/lib/Object/ELFYAML.cpp index 9c7bf2ae04..5692f4b150 100644 --- a/lib/Object/ELFYAML.cpp +++ b/lib/Object/ELFYAML.cpp @@ -212,6 +212,33 @@ void ScalarEnumerationTraits<ELFYAML::ELF_ELFDATA>::enumeration( #undef ECase } +void ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI>::enumeration( + IO &IO, ELFYAML::ELF_ELFOSABI &Value) { +#define ECase(X) IO.enumCase(Value, #X, ELF::X); + ECase(ELFOSABI_NONE) + ECase(ELFOSABI_HPUX) + ECase(ELFOSABI_NETBSD) + ECase(ELFOSABI_GNU) + ECase(ELFOSABI_GNU) + ECase(ELFOSABI_HURD) + ECase(ELFOSABI_SOLARIS) + ECase(ELFOSABI_AIX) + ECase(ELFOSABI_IRIX) + ECase(ELFOSABI_FREEBSD) + ECase(ELFOSABI_TRU64) + ECase(ELFOSABI_MODESTO) + ECase(ELFOSABI_OPENBSD) + ECase(ELFOSABI_OPENVMS) + ECase(ELFOSABI_NSK) + ECase(ELFOSABI_AROS) + ECase(ELFOSABI_FENIXOS) + ECase(ELFOSABI_C6000_ELFABI) + ECase(ELFOSABI_C6000_LINUX) + ECase(ELFOSABI_ARM) + ECase(ELFOSABI_STANDALONE) +#undef ECase +} + void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration( IO &IO, ELFYAML::ELF_SHT &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X); @@ -278,6 +305,7 @@ void MappingTraits<ELFYAML::FileHeader>::mapping(IO &IO, ELFYAML::FileHeader &FileHdr) { IO.mapRequired("Class", FileHdr.Class); IO.mapRequired("Data", FileHdr.Data); + IO.mapOptional("OSABI", FileHdr.OSABI, ELFYAML::ELF_ELFOSABI(0)); IO.mapRequired("Type", FileHdr.Type); IO.mapRequired("Machine", FileHdr.Machine); IO.mapOptional("Entry", FileHdr.Entry, Hex64(0)); |