Lines Matching defs:IO

24 ScalarEnumerationTraits<ELFYAML::ELF_ET>::enumeration(IO &IO,
26 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
36 ScalarEnumerationTraits<ELFYAML::ELF_EM>::enumeration(IO &IO,
38 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
198 IO &IO, ELFYAML::ELF_ELFCLASS &Value) {
199 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
208 IO &IO, ELFYAML::ELF_ELFDATA &Value) {
209 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
218 IO &IO, ELFYAML::ELF_ELFOSABI &Value) {
219 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
244 void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
246 const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
247 assert(Object && "The IO context is not initialized");
248 #define BCase(X) IO.bitSetCase(Value, #X, ELF::X);
249 #define BCaseMask(X, M) IO.maskedBitSetCase(Value, #X, ELF::X, ELF::M);
300 IO &IO, ELFYAML::ELF_SHT &Value) {
301 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
340 void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
342 #define BCase(X) IO.bitSetCase(Value, #X, ELF::X);
358 IO &IO, ELFYAML::ELF_STT &Value) {
359 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
372 IO &IO, ELFYAML::ELF_STV &Value) {
373 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
382 IO &IO, ELFYAML::ELF_REL &Value) {
383 const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
384 assert(Object && "The IO context is not initialized");
385 #define ECase(X) IO.enumCase(Value, #X, ELF::X);
645 void MappingTraits<ELFYAML::FileHeader>::mapping(IO &IO,
647 IO.mapRequired("Class", FileHdr.Class);
648 IO.mapRequired("Data", FileHdr.Data);
649 IO.mapOptional("OSABI", FileHdr.OSABI, ELFYAML::ELF_ELFOSABI(0));
650 IO.mapRequired("Type", FileHdr.Type);
651 IO.mapRequired("Machine", FileHdr.Machine);
652 IO.mapOptional("Flags", FileHdr.Flags, ELFYAML::ELF_EF(0));
653 IO.mapOptional("Entry", FileHdr.Entry, Hex64(0));
656 void MappingTraits<ELFYAML::Symbol>::mapping(IO &IO, ELFYAML::Symbol &Symbol) {
657 IO.mapOptional("Name", Symbol.Name, StringRef());
658 IO.mapOptional("Type", Symbol.Type, ELFYAML::ELF_STT(0));
659 IO.mapOptional("Section", Symbol.Section, StringRef());
660 IO.mapOptional("Value", Symbol.Value, Hex64(0));
661 IO.mapOptional("Size", Symbol.Size, Hex64(0));
662 IO.mapOptional("Visibility", Symbol.Visibility, ELFYAML::ELF_STV(0));
666 IO &IO, ELFYAML::LocalGlobalWeakSymbols &Symbols) {
667 IO.mapOptional("Local", Symbols.Local);
668 IO.mapOptional("Global", Symbols.Global);
669 IO.mapOptional("Weak", Symbols.Weak);
672 static void commonSectionMapping(IO &IO, ELFYAML::Section &Section) {
673 IO.mapOptional("Name", Section.Name, StringRef());
674 IO.mapRequired("Type", Section.Type);
675 IO.mapOptional("Flags", Section.Flags, ELFYAML::ELF_SHF(0));
676 IO.mapOptional("Address", Section.Address, Hex64(0));
677 IO.mapOptional("Link", Section.Link, StringRef());
678 IO.mapOptional("AddressAlign", Section.AddressAlign, Hex64(0));
681 static void sectionMapping(IO &IO, ELFYAML::RawContentSection &Section) {
682 commonSectionMapping(IO, Section);
683 IO.mapOptional("Content", Section.Content);
684 IO.mapOptional("Size", Section.Size, Hex64(Section.Content.binary_size()));
687 static void sectionMapping(IO &IO, ELFYAML::RelocationSection &Section) {
688 commonSectionMapping(IO, Section);
689 IO.mapOptional("Info", Section.Info, StringRef());
690 IO.mapOptional("Relocations", Section.Relocations);
694 IO &IO, std::unique_ptr<ELFYAML::Section> &Section) {
696 if (IO.outputting())
699 IO.mapRequired("Type", sectionType);
704 if (!IO.outputting())
706 sectionMapping(IO, *cast<ELFYAML::RelocationSection>(Section.get()));
709 if (!IO.outputting())
711 sectionMapping(IO, *cast<ELFYAML::RawContentSection>(Section.get()));
716 IO &io, std::unique_ptr<ELFYAML::Section> &Section) {
723 void MappingTraits<ELFYAML::Relocation>::mapping(IO &IO,
725 IO.mapRequired("Offset", Rel.Offset);
726 IO.mapRequired("Symbol", Rel.Symbol);
727 IO.mapRequired("Type", Rel.Type);
728 IO.mapOptional("Addend", Rel.Addend);
731 void MappingTraits<ELFYAML::Object>::mapping(IO &IO, ELFYAML::Object &Object) {
732 assert(!IO.getContext() && "The IO context is initialized already");
733 IO.setContext(&Object);
734 IO.mapRequired("FileHeader", Object.Header);
735 IO.mapOptional("Sections", Object.Sections);
736 IO.mapOptional("Symbols", Object.Symbols);
737 IO.setContext(nullptr);