Lines Matching refs:io

56   static size_t size(IO &io, std::vector<Section> &seq) {
59 static Section& element(IO &io, std::vector<Section> &seq, size_t index) {
68 static size_t size(IO &io, std::vector<Symbol> &seq) {
71 static Symbol& element(IO &io, std::vector<Symbol> &seq, size_t index) {
81 static size_t size(IO &io, Relocations &seq) {
84 static Relocation& element(IO &io, Relocations &seq, size_t index) {
94 static size_t size(IO &io, ContentBytes &seq) {
97 static Hex8& element(IO &io, ContentBytes &seq, size_t index) {
109 static size_t size(IO &io, IndirectSymbols &seq) {
112 static uint32_t& element(IO &io, IndirectSymbols &seq, size_t index) {
122 static void enumeration(IO &io, lld::MachOLinkingContext::Arch &value) {
123 io.enumCase(value, "unknown",lld::MachOLinkingContext::arch_unknown);
124 io.enumCase(value, "ppc", lld::MachOLinkingContext::arch_ppc);
125 io.enumCase(value, "x86", lld::MachOLinkingContext::arch_x86);
126 io.enumCase(value, "x86_64", lld::MachOLinkingContext::arch_x86_64);
127 io.enumCase(value, "armv6", lld::MachOLinkingContext::arch_armv6);
128 io.enumCase(value, "armv7", lld::MachOLinkingContext::arch_armv7);
129 io.enumCase(value, "armv7s", lld::MachOLinkingContext::arch_armv7s);
130 io.enumCase(value, "arm64", lld::MachOLinkingContext::arch_arm64);
136 static void enumeration(IO &io, lld::MachOLinkingContext::OS &value) {
137 io.enumCase(value, "unknown",
139 io.enumCase(value, "Mac OS X",
141 io.enumCase(value, "iOS",
143 io.enumCase(value, "iOS Simulator",
151 static void enumeration(IO &io, HeaderFileType &value) {
152 io.enumCase(value, "MH_OBJECT", llvm::MachO::MH_OBJECT);
153 io.enumCase(value, "MH_DYLIB", llvm::MachO::MH_DYLIB);
154 io.enumCase(value, "MH_EXECUTE", llvm::MachO::MH_EXECUTE);
155 io.enumCase(value, "MH_BUNDLE", llvm::MachO::MH_BUNDLE);
162 static void bitset(IO &io, FileFlags &value) {
163 io.bitSetCase(value, "MH_TWOLEVEL",
165 io.bitSetCase(value, "MH_SUBSECTIONS_VIA_SYMBOLS",
173 static void enumeration(IO &io, SectionType &value) {
174 io.enumCase(value, "S_REGULAR",
176 io.enumCase(value, "S_ZEROFILL",
178 io.enumCase(value, "S_CSTRING_LITERALS",
180 io.enumCase(value, "S_4BYTE_LITERALS",
182 io.enumCase(value, "S_8BYTE_LITERALS",
184 io.enumCase(value, "S_LITERAL_POINTERS",
186 io.enumCase(value, "S_NON_LAZY_SYMBOL_POINTERS",
188 io.enumCase(value, "S_LAZY_SYMBOL_POINTERS",
190 io.enumCase(value, "S_SYMBOL_STUBS",
192 io.enumCase(value, "S_MOD_INIT_FUNC_POINTERS",
194 io.enumCase(value, "S_MOD_TERM_FUNC_POINTERS",
196 io.enumCase(value, "S_COALESCED",
198 io.enumCase(value, "S_GB_ZEROFILL",
200 io.enumCase(value, "S_INTERPOSING",
202 io.enumCase(value, "S_16BYTE_LITERALS",
204 io.enumCase(value, "S_DTRACE_DOF",
206 io.enumCase(value, "S_LAZY_DYLIB_SYMBOL_POINTERS",
208 io.enumCase(value, "S_THREAD_LOCAL_REGULAR",
210 io.enumCase(value, "S_THREAD_LOCAL_ZEROFILL",
212 io.enumCase(value, "S_THREAD_LOCAL_VARIABLES",
214 io.enumCase(value, "S_THREAD_LOCAL_VARIABLE_POINTERS",
216 io.enumCase(value, "S_THREAD_LOCAL_INIT_FUNCTION_POINTERS",
223 static void bitset(IO &io, SectionAttr &value) {
224 io.bitSetCase(value, "S_ATTR_PURE_INSTRUCTIONS",
226 io.bitSetCase(value, "S_ATTR_SOME_INSTRUCTIONS",
228 io.bitSetCase(value, "S_ATTR_NO_DEAD_STRIP",
230 io.bitSetCase(value, "S_ATTR_EXT_RELOC",
232 io.bitSetCase(value, "S_ATTR_LOC_RELOC",
234 io.bitSetCase(value, "S_ATTR_DEBUG",
264 static void enumeration(IO &io, NListType &value) {
265 io.enumCase(value, "N_UNDF", llvm::MachO::N_UNDF);
266 io.enumCase(value, "N_ABS", llvm::MachO::N_ABS);
267 io.enumCase(value, "N_SECT", llvm::MachO::N_SECT);
268 io.enumCase(value, "N_PBUD", llvm::MachO::N_PBUD);
269 io.enumCase(value, "N_INDR", llvm::MachO::N_INDR);
275 static void bitset(IO &io, SymbolScope &value) {
276 io.bitSetCase(value, "N_EXT", llvm::MachO::N_EXT);
277 io.bitSetCase(value, "N_PEXT", llvm::MachO::N_PEXT);
283 static void bitset(IO &io, SymbolDesc &value) {
284 io.bitSetCase(value, "N_NO_DEAD_STRIP", llvm::MachO::N_NO_DEAD_STRIP);
285 io.bitSetCase(value, "N_WEAK_REF", llvm::MachO::N_WEAK_REF);
286 io.bitSetCase(value, "N_WEAK_DEF", llvm::MachO::N_WEAK_DEF);
287 io.bitSetCase(value, "N_ARM_THUMB_DEF", llvm::MachO::N_ARM_THUMB_DEF);
288 io.bitSetCase(value, "N_SYMBOL_RESOLVER", llvm::MachO::N_SYMBOL_RESOLVER);
296 static void mapping(IO &io, Section &sect) {
297 io.mapRequired("segment", sect.segmentName);
298 io.mapRequired("section", sect.sectionName);
299 io.mapRequired("type", sect.type);
300 io.mapOptional("attributes", sect.attributes);
301 io.mapOptional("alignment", sect.alignment, (SectionAlignment)1);
302 io.mapRequired("address", sect.address);
306 io.mapOptional("size", size);
307 if (!io.outputting()) {
313 io, sect.content);
314 io.mapOptional("content", content->_normalizedContent);
316 io.mapOptional("relocations", sect.relocations);
317 io.mapOptional("indirect-syms", sect.indirectSymbols);
321 NormalizedContent(IO &io) : _io(io) {}
322 NormalizedContent(IO &io, ArrayRef<uint8_t> content) : _io(io) {
328 ArrayRef<uint8_t> denormalize(IO &io) {
331 YamlContext *info = reinterpret_cast<YamlContext *>(io.getContext());
351 static void mapping(IO &io, Relocation &reloc) {
352 io.mapRequired("offset", reloc.offset);
353 io.mapOptional("scattered", reloc.scattered, false);
354 io.mapRequired("type", reloc.type);
355 io.mapRequired("length", reloc.length);
356 io.mapRequired("pc-rel", reloc.pcRel);
358 io.mapRequired("extern", reloc.isExtern);
360 io.mapRequired("value", reloc.value);
362 io.mapRequired("symbol", reloc.symbol);
369 static void enumeration(IO &io, RelocationInfoType &value) {
370 YamlContext *info = reinterpret_cast<YamlContext *>(io.getContext());
376 io.enumCase(value, "X86_64_RELOC_UNSIGNED",
378 io.enumCase(value, "X86_64_RELOC_SIGNED",
380 io.enumCase(value, "X86_64_RELOC_BRANCH",
382 io.enumCase(value, "X86_64_RELOC_GOT_LOAD",
384 io.enumCase(value, "X86_64_RELOC_GOT",
386 io.enumCase(value, "X86_64_RELOC_SUBTRACTOR",
388 io.enumCase(value, "X86_64_RELOC_SIGNED_1",
390 io.enumCase(value, "X86_64_RELOC_SIGNED_2",
392 io.enumCase(value, "X86_64_RELOC_SIGNED_4",
394 io.enumCase(value, "X86_64_RELOC_TLV",
398 io.enumCase(value, "GENERIC_RELOC_VANILLA",
400 io.enumCase(value, "GENERIC_RELOC_PAIR",
402 io.enumCase(value, "GENERIC_RELOC_SECTDIFF",
404 io.enumCase(value, "GENERIC_RELOC_LOCAL_SECTDIFF",
406 io.enumCase(value, "GENERIC_RELOC_TLV",
412 io.enumCase(value, "ARM_RELOC_VANILLA",
414 io.enumCase(value, "ARM_RELOC_PAIR",
416 io.enumCase(value, "ARM_RELOC_SECTDIFF",
418 io.enumCase(value, "ARM_RELOC_LOCAL_SECTDIFF",
420 io.enumCase(value, "ARM_RELOC_BR24",
422 io.enumCase(value, "ARM_THUMB_RELOC_BR22",
424 io.enumCase(value, "ARM_RELOC_HALF",
426 io.enumCase(value, "ARM_RELOC_HALF_SECTDIFF",
430 io.enumCase(value, "ARM64_RELOC_UNSIGNED",
432 io.enumCase(value, "ARM64_RELOC_SUBTRACTOR",
434 io.enumCase(value, "ARM64_RELOC_BRANCH26",
436 io.enumCase(value, "ARM64_RELOC_PAGE21",
438 io.enumCase(value, "ARM64_RELOC_PAGEOFF12",
440 io.enumCase(value, "ARM64_RELOC_GOT_LOAD_PAGE21",
442 io.enumCase(value, "ARM64_RELOC_GOT_LOAD_PAGEOFF12",
444 io.enumCase(value, "ARM64_RELOC_POINTER_TO_GOT",
446 io.enumCase(value, "ARM64_RELOC_TLVP_LOAD_PAGE21",
448 io.enumCase(value, "ARM64_RELOC_TLVP_LOAD_PAGEOFF12",
450 io.enumCase(value, "ARM64_RELOC_ADDEND",
462 static void mapping(IO &io, Symbol& sym) {
463 io.mapRequired("name", sym.name);
464 io.mapRequired("type", sym.type);
465 io.mapOptional("scope", sym.scope, SymbolScope(0));
466 io.mapOptional("sect", sym.sect, (uint8_t)0);
472 io.mapOptional("desc", t2, Hex16(0));
476 io.mapOptional("desc", sym.desc, SymbolDesc(0));
478 io.mapRequired("value", sym.value);
530 static void mapping(IO &io, Segment& seg) {
531 io.mapRequired("name", seg.name);
532 io.mapRequired("address", seg.address);
533 io.mapRequired("size", seg.size);
534 io.mapRequired("init-access", seg.init_access);
535 io.mapRequired("max-access", seg.max_access);
541 static void enumeration(IO &io, LoadCommandType &value) {
542 io.enumCase(value, "LC_LOAD_DYLIB",
544 io.enumCase(value, "LC_LOAD_WEAK_DYLIB",
546 io.enumCase(value, "LC_REEXPORT_DYLIB",
548 io.enumCase(value, "LC_LOAD_UPWARD_DYLIB",
550 io.enumCase(value, "LC_LAZY_LOAD_DYLIB",
552 io.enumCase(value, "LC_VERSION_MIN_MACOSX",
554 io.enumCase(value, "LC_VERSION_MIN_IPHONEOS",
556 io.enumCase(value, "LC_VERSION_MIN_TVOS",
558 io.enumCase(value, "LC_VERSION_MIN_WATCHOS",
565 static void mapping(IO &io, DependentDylib& dylib) {
566 io.mapRequired("path", dylib.path);
567 io.mapOptional("kind", dylib.kind,
569 io.mapOptional("compat-version", dylib.compatVersion,
571 io.mapOptional("current-version", dylib.currentVersion,
578 static void enumeration(IO &io, RebaseType &value) {
579 io.enumCase(value, "REBASE_TYPE_POINTER",
581 io.enumCase(value, "REBASE_TYPE_TEXT_PCREL32",
583 io.enumCase(value, "REBASE_TYPE_TEXT_ABSOLUTE32",
591 static void mapping(IO &io, RebaseLocation& rebase) {
592 io.mapRequired("segment-index", rebase.segIndex);
593 io.mapRequired("segment-offset", rebase.segOffset);
594 io.mapOptional("kind", rebase.kind,
603 static void enumeration(IO &io, BindType &value) {
604 io.enumCase(value, "BIND_TYPE_POINTER",
606 io.enumCase(value, "BIND_TYPE_TEXT_ABSOLUTE32",
608 io.enumCase(value, "BIND_TYPE_TEXT_PCREL32",
615 static void mapping(IO &io, BindLocation &bind) {
616 io.mapRequired("segment-index", bind.segIndex);
617 io.mapRequired("segment-offset", bind.segOffset);
618 io.mapOptional("kind", bind.kind,
620 io.mapOptional("can-be-null", bind.canBeNull, false);
621 io.mapRequired("ordinal", bind.ordinal);
622 io.mapRequired("symbol-name", bind.symbolName);
623 io.mapOptional("addend", bind.addend, Hex64(0));
630 static void enumeration(IO &io, ExportSymbolKind &value) {
631 io.enumCase(value, "EXPORT_SYMBOL_FLAGS_KIND_REGULAR",
633 io.enumCase(value, "EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL",
635 io.enumCase(value, "EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE",
642 static void bitset(IO &io, ExportFlags &value) {
643 io.bitSetCase(value, "EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION",
645 io.bitSetCase(value, "EXPORT_SYMBOL_FLAGS_REEXPORT",
647 io.bitSetCase(value, "EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER",
655 static void mapping(IO &io, Export &exp) {
656 io.mapRequired("name", exp.name);
657 io.mapOptional("offset", exp.offset);
658 io.mapOptional("kind", exp.kind,
660 if (!io.outputting() || exp.flags)
661 io.mapOptional("flags", exp.flags);
662 io.mapOptional("other", exp.otherOffset, Hex32(0));
663 io.mapOptional("other-name", exp.otherName, StringRef());
669 static void enumeration(IO &io, DataRegionType &value) {
670 io.enumCase(value, "DICE_KIND_DATA",
672 io.enumCase(value, "DICE_KIND_JUMP_TABLE8",
674 io.enumCase(value, "DICE_KIND_JUMP_TABLE16",
676 io.enumCase(value, "DICE_KIND_JUMP_TABLE32",
678 io.enumCase(value, "DICE_KIND_ABS_JUMP_TABLE32",
685 static void mapping(IO &io, DataInCode &entry) {
686 io.mapRequired("offset", entry.offset);
687 io.mapRequired("length", entry.length);
688 io.mapRequired("kind", entry.kind);
713 static void mapping(IO &io, NormalizedFile &file) {
714 io.mapRequired("arch", file.arch);
715 io.mapRequired("file-type", file.fileType);
716 io.mapOptional("flags", file.flags);
717 io.mapOptional("dependents", file.dependentDylibs);
718 io.mapOptional("install-name", file.installName, StringRef());
719 io.mapOptional("compat-version", file.compatVersion, PackedVersion(0x10000));
720 io.mapOptional("current-version", file.currentVersion, PackedVersion(0x10000));
721 io.mapOptional("has-UUID", file.hasUUID, true);
722 io.mapOptional("rpaths", file.rpaths);
723 io.mapOptional("entry-point", file.entryAddress, Hex64(0));
724 io.mapOptional("stack-size", file.stackSize, Hex64(0));
725 io.mapOptional("source-version", file.sourceVersion, Hex64(0));
726 io.mapOptional("OS", file.os);
727 io.mapOptional("min-os-version", file.minOSverson, PackedVersion(0));
728 io.mapOptional("min-os-version-kind", file.minOSVersionKind, (LoadCommandType)0);
729 io.mapOptional("sdk-version", file.sdkVersion, PackedVersion(0));
730 io.mapOptional("segments", file.segments);
731 io.mapOptional("sections", file.sections);
732 io.mapOptional("local-symbols", file.localSymbols);
733 io.mapOptional("global-symbols", file.globalSymbols);
734 io.mapOptional("undefined-symbols",file.undefinedSymbols);
735 io.mapOptional("page-size", file.pageSize, Hex32(4096));
736 io.mapOptional("rebasings", file.rebasingInfo);
737 io.mapOptional("bindings", file.bindingInfo);
738 io.mapOptional("weak-bindings", file.weakBindingInfo);
739 io.mapOptional("lazy-bindings", file.lazyBindingInfo);
740 io.mapOptional("exports", file.exportInfo);
741 io.mapOptional("dataInCode", file.dataInCode);
743 static StringRef validate(IO &io, NormalizedFile &file) {
756 bool MachOYamlIOTaggedDocumentHandler::handledDocTag(llvm::yaml::IO &io,
758 if (!io.mapTag("!mach-o"))
762 YamlContext *info = reinterpret_cast<YamlContext *>(io.getContext());
766 MappingTraits<NormalizedFile>::mapping(io, nf);
779 io.setError(stream.str());
784 io.setError(Twine("file is wrong architecture. Expected ("