Lines Matching defs:IO
19 #define ECase(X) IO.enumCase(Value, #X, COFF::X);
34 IO &IO, COFFYAML::COMDATType &Value) {
35 IO.enumCase(Value, "0", 0);
47 IO &IO, COFFYAML::WeakExternalCharacteristics &Value) {
48 IO.enumCase(Value, "0", 0);
56 IO &IO, COFFYAML::AuxSymbolType &Value) {
61 IO &IO, COFF::MachineTypes &Value) {
92 IO &IO, COFF::SymbolBaseType &Value) {
112 IO &IO, COFF::SymbolStorageClass &Value) {
143 IO &IO, COFF::SymbolComplexType &Value) {
151 IO &IO, COFF::RelocationTypeI386 &Value) {
166 IO &IO, COFF::RelocationTypeAMD64 &Value) {
187 IO &IO, COFF::RelocationTypesMips &Value) {
206 IO &IO, COFF::RelocationTypesARM &Value) {
227 IO &IO, COFF::RelocationTypesARM64 &Value) {
249 IO &IO, COFF::WindowsSubsystem &Value) {
267 #define BCase(X) IO.bitSetCase(Value, #X, COFF::X);
269 IO &IO, COFF::Characteristics &Value) {
288 IO &IO, COFF::SectionCharacteristics &Value) {
314 IO &IO, COFF::DLLCharacteristics &Value) {
332 NSectionSelectionType(IO &)
334 NSectionSelectionType(IO &, uint8_t C)
337 uint8_t denormalize(IO &) { return SelectionType; }
343 NWeakExternalCharacteristics(IO &)
345 NWeakExternalCharacteristics(IO &, uint32_t C)
348 uint32_t denormalize(IO &) { return Characteristics; }
354 NSectionCharacteristics(IO &)
356 NSectionCharacteristics(IO &, uint32_t C)
359 uint32_t denormalize(IO &) { return Characteristics; }
365 NAuxTokenType(IO &)
367 NAuxTokenType(IO &, uint8_t C)
370 uint32_t denormalize(IO &) { return AuxType; }
376 NStorageClass(IO &) : StorageClass(COFF::SymbolStorageClass(0)) {}
377 NStorageClass(IO &, uint8_t S) : StorageClass(COFF::SymbolStorageClass(S)) {}
379 uint8_t denormalize(IO &) { return StorageClass; }
385 NMachine(IO &) : Machine(COFF::MachineTypes(0)) {}
386 NMachine(IO &, uint16_t M) : Machine(COFF::MachineTypes(M)) {}
388 uint16_t denormalize(IO &) { return Machine; }
394 NHeaderCharacteristics(IO &) : Characteristics(COFF::Characteristics(0)) {}
395 NHeaderCharacteristics(IO &, uint16_t C)
398 uint16_t denormalize(IO &) { return Characteristics; }
405 NType(IO &) : Type(RelocType(0)) {}
406 NType(IO &, uint16_t T) : Type(RelocType(T)) {}
408 uint16_t denormalize(IO &) { return Type; }
414 NWindowsSubsystem(IO &) : Subsystem(COFF::WindowsSubsystem(0)) {}
415 NWindowsSubsystem(IO &, uint16_t C) : Subsystem(COFF::WindowsSubsystem(C)) {}
417 uint16_t denormalize(IO &) { return Subsystem; }
423 NDLLCharacteristics(IO &) : Characteristics(COFF::DLLCharacteristics(0)) {}
424 NDLLCharacteristics(IO &, uint16_t C)
427 uint16_t denormalize(IO &) { return Characteristics; }
434 void MappingTraits<COFFYAML::Relocation>::mapping(IO &IO,
436 IO.mapRequired("VirtualAddress", Rel.VirtualAddress);
437 IO.mapOptional("SymbolName", Rel.SymbolName, StringRef());
438 IO.mapOptional("SymbolTableIndex", Rel.SymbolTableIndex);
440 COFF::header &H = *static_cast<COFF::header *>(IO.getContext());
443 IO, Rel.Type);
444 IO.mapRequired("Type", NT->Type);
447 IO, Rel.Type);
448 IO.mapRequired("Type", NT->Type);
451 IO, Rel.Type);
452 IO.mapRequired("Type", NT->Type);
455 IO, Rel.Type);
456 IO.mapRequired("Type", NT->Type);
459 IO, Rel.Type);
460 IO.mapRequired("Type", NT->Type);
462 IO.mapRequired("Type", Rel.Type);
466 void MappingTraits<COFF::DataDirectory>::mapping(IO &IO,
468 IO.mapRequired("RelativeVirtualAddress", DD.RelativeVirtualAddress);
469 IO.mapRequired("Size", DD.Size);
472 void MappingTraits<COFFYAML::PEHeader>::mapping(IO &IO,
474 MappingNormalization<NWindowsSubsystem, uint16_t> NWS(IO,
477 IO, PH.Header.DLLCharacteristics);
479 IO.mapOptional("AddressOfEntryPoint", PH.Header.AddressOfEntryPoint);
480 IO.mapOptional("ImageBase", PH.Header.ImageBase);
481 IO.mapOptional("SectionAlignment", PH.Header.SectionAlignment, 1);
482 IO.mapOptional("FileAlignment", PH.Header.FileAlignment, 1);
483 IO.mapOptional("MajorOperatingSystemVersion",
485 IO.mapOptional("MinorOperatingSystemVersion",
487 IO.mapOptional("MajorImageVersion", PH.Header.MajorImageVersion);
488 IO.mapOptional("MinorImageVersion", PH.Header.MinorImageVersion);
489 IO.mapOptional("MajorSubsystemVersion", PH.Header.MajorSubsystemVersion);
490 IO.mapOptional("MinorSubsystemVersion", PH.Header.MinorSubsystemVersion);
491 IO.mapOptional("Subsystem", NWS->Subsystem);
492 IO.mapOptional("DLLCharacteristics", NDC->Characteristics);
493 IO.mapOptional("SizeOfStackReserve", PH.Header.SizeOfStackReserve);
494 IO.mapOptional("SizeOfStackCommit", PH.Header.SizeOfStackCommit);
495 IO.mapOptional("SizeOfHeapReserve", PH.Header.SizeOfHeapReserve);
496 IO.mapOptional("SizeOfHeapCommit", PH.Header.SizeOfHeapCommit);
498 IO.mapOptional("NumberOfRvaAndSize", PH.Header.NumberOfRvaAndSize,
500 IO.mapOptional("ExportTable", PH.DataDirectories[COFF::EXPORT_TABLE]);
501 IO.mapOptional("ImportTable", PH.DataDirectories[COFF::IMPORT_TABLE]);
502 IO.mapOptional("ResourceTable", PH.DataDirectories[COFF::RESOURCE_TABLE]);
503 IO.mapOptional("ExceptionTable", PH.DataDirectories[COFF::EXCEPTION_TABLE]);
504 IO.mapOptional("CertificateTable", PH.DataDirectories[COFF::CERTIFICATE_TABLE]);
505 IO.mapOptional("BaseRelocationTable",
507 IO.mapOptional("Debug", PH.DataDirectories[COFF::DEBUG_DIRECTORY]);
508 IO.mapOptional("Architecture", PH.DataDirectories[COFF::ARCHITECTURE]);
509 IO.mapOptional("GlobalPtr", PH.DataDirectories[COFF::GLOBAL_PTR]);
510 IO.mapOptional("TlsTable", PH.DataDirectories[COFF::TLS_TABLE]);
511 IO.mapOptional("LoadConfigTable",
513 IO.mapOptional("BoundImport", PH.DataDirectories[COFF::BOUND_IMPORT]);
514 IO.mapOptional("IAT", PH.DataDirectories[COFF::IAT]);
515 IO.mapOptional("DelayImportDescriptor",
517 IO.mapOptional("ClrRuntimeHeader",
521 void MappingTraits<COFF::header>::mapping(IO &IO, COFF::header &H) {
522 MappingNormalization<NMachine, uint16_t> NM(IO, H.Machine);
523 MappingNormalization<NHeaderCharacteristics, uint16_t> NC(IO,
526 IO.mapRequired("Machine", NM->Machine);
527 IO.mapOptional("Characteristics", NC->Characteristics);
528 IO.setContext(static_cast<void *>(&H));
532 IO &IO, COFF::AuxiliaryFunctionDefinition &AFD) {
533 IO.mapRequired("TagIndex", AFD.TagIndex);
534 IO.mapRequired("TotalSize", AFD.TotalSize);
535 IO.mapRequired("PointerToLinenumber", AFD.PointerToLinenumber);
536 IO.mapRequired("PointerToNextFunction", AFD.PointerToNextFunction);
540 IO &IO, COFF::AuxiliarybfAndefSymbol &AAS) {
541 IO.mapRequired("Linenumber", AAS.Linenumber);
542 IO.mapRequired("PointerToNextFunction", AAS.PointerToNextFunction);
546 IO &IO, COFF::AuxiliaryWeakExternal &AWE) {
548 IO, AWE.Characteristics);
549 IO.mapRequired("TagIndex", AWE.TagIndex);
550 IO.mapRequired("Characteristics", NWEC->Characteristics);
554 IO &IO, COFF::AuxiliarySectionDefinition &ASD) {
556 IO, ASD.Selection);
558 IO.mapRequired("Length", ASD.Length);
559 IO.mapRequired("NumberOfRelocations", ASD.NumberOfRelocations);
560 IO.mapRequired("NumberOfLinenumbers", ASD.NumberOfLinenumbers);
561 IO.mapRequired("CheckSum", ASD.CheckSum);
562 IO.mapRequired("Number", ASD.Number);
563 IO.mapOptional("Selection", NSST->SelectionType, COFFYAML::COMDATType(0));
567 IO &IO, COFF::AuxiliaryCLRToken &ACT) {
568 MappingNormalization<NAuxTokenType, uint8_t> NATT(IO, ACT.AuxType);
569 IO.mapRequired("AuxType", NATT->AuxType);
570 IO.mapRequired("SymbolTableIndex", ACT.SymbolTableIndex);
574 IO &IO, object::coff_load_config_code_integrity &S) {
575 IO.mapOptional("Flags", S.Flags);
576 IO.mapOptional("Catalog", S.Catalog);
577 IO.mapOptional("CatalogOffset", S.CatalogOffset);
581 void mapLoadConfigMember(IO &IO, T &LoadConfig, const char *Name, M &Member) {
586 IO.mapOptional(Name, Member);
589 template <typename T> void mapLoadConfig(IO &IO, T &LoadConfig) {
590 IO.mapOptional("Size", LoadConfig.Size,
594 IO.setError("Size must be at least " + Twine(sizeof(LoadConfig.Size)));
598 #define MCase(X) mapLoadConfigMember(IO, LoadConfig, #X, LoadConfig.X)
648 IO &IO, object::coff_load_configuration32 &S) {
649 mapLoadConfig(IO, S);
653 IO &IO, object::coff_load_configuration64 &S) {
654 mapLoadConfig(IO, S);
658 IO &IO, COFFYAML::SectionDataEntry &E) {
659 IO.mapOptional("UInt32", E.UInt32);
660 IO.mapOptional("Binary", E.Binary);
662 COFF::header &H = *static_cast<COFF::header *>(IO.getContext());
664 IO.mapOptional("LoadConfig", E.LoadConfig64);
666 IO.mapOptional("LoadConfig", E.LoadConfig32);
669 void MappingTraits<COFFYAML::Symbol>::mapping(IO &IO, COFFYAML::Symbol &S) {
670 MappingNormalization<NStorageClass, uint8_t> NS(IO, S.Header.StorageClass);
672 IO.mapRequired("Name", S.Name);
673 IO.mapRequired("Value", S.Header.Value);
674 IO.mapRequired("SectionNumber", S.Header.SectionNumber);
675 IO.mapRequired("SimpleType", S.SimpleType);
676 IO.mapRequired("ComplexType", S.ComplexType);
677 IO.mapRequired("StorageClass", NS->StorageClass);
678 IO.mapOptional("FunctionDefinition", S.FunctionDefinition);
679 IO.mapOptional("bfAndefSymbol", S.bfAndefSymbol);
680 IO.mapOptional("WeakExternal", S.WeakExternal);
681 IO.mapOptional("File", S.File, StringRef());
682 IO.mapOptional("SectionDefinition", S.SectionDefinition);
683 IO.mapOptional("CLRToken", S.CLRToken);
686 void MappingTraits<COFFYAML::Section>::mapping(IO &IO, COFFYAML::Section &Sec) {
688 IO, Sec.Header.Characteristics);
689 IO.mapRequired("Name", Sec.Name);
690 IO.mapRequired("Characteristics", NC->Characteristics);
691 IO.mapOptional("VirtualAddress", Sec.Header.VirtualAddress, 0U);
692 IO.mapOptional("VirtualSize", Sec.Header.VirtualSize, 0U);
693 IO.mapOptional("Alignment", Sec.Alignment, 0U);
698 IO.mapOptional("SectionData", Sec.SectionData);
700 IO.mapOptional("Subsections", Sec.DebugS);
702 IO.mapOptional("Types", Sec.DebugT);
704 IO.mapOptional("PrecompTypes", Sec.DebugP);
706 IO.mapOptional("GlobalHashes", Sec.DebugH);
708 IO.mapOptional("StructuredData", Sec.StructuredData);
711 IO.setError("StructuredData and SectionData can't be used together");
715 IO.mapOptional("SizeOfRawData", Sec.Header.SizeOfRawData, 0U);
718 IO.setError("StructuredData and SizeOfRawData can't be used together");
722 IO.mapOptional("Relocations", Sec.Relocations);
725 void MappingTraits<COFFYAML::Object>::mapping(IO &IO, COFFYAML::Object &Obj) {
726 IO.mapTag("!COFF", true);
727 IO.mapOptional("OptionalHeader", Obj.OptionalHeader);
728 IO.mapRequired("header", Obj.Header);
729 IO.mapRequired("sections", Obj.Sections);
730 IO.mapRequired("symbols", Obj.Symbols);