15#ifndef LLVM_OBJECTYAML_MACHOYAML_H
16#define LLVM_OBJECTYAML_MACHOYAML_H
58 std::optional<llvm::yaml::BinaryRef>
content;
78 std::vector<MachO::build_tool_version>
Tools;
251#define HANDLE_LOAD_COMMAND(LCName, LCValue, LCStruct) \
252 io.enumCase(value, #LCName, MachO::LCName);
256#include "llvm/BinaryFormat/MachO.def"
261#define ENUM_CASE(Enum) io.enumCase(value, #Enum, MachO::Enum);
267 ENUM_CASE(REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB)
269 ENUM_CASE(REBASE_OPCODE_ADD_ADDR_IMM_SCALED)
270 ENUM_CASE(REBASE_OPCODE_DO_REBASE_IMM_TIMES)
271 ENUM_CASE(REBASE_OPCODE_DO_REBASE_ULEB_TIMES)
272 ENUM_CASE(REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB)
273 ENUM_CASE(REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB)
281 ENUM_CASE(BIND_OPCODE_SET_DYLIB_ORDINAL_IMM)
282 ENUM_CASE(BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB)
283 ENUM_CASE(BIND_OPCODE_SET_DYLIB_SPECIAL_IMM)
284 ENUM_CASE(BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM)
287 ENUM_CASE(BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB)
290 ENUM_CASE(BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB)
291 ENUM_CASE(BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED)
292 ENUM_CASE(BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
318#define LOAD_COMMAND_STRUCT(LCStruct) \
319 template <> struct MappingTraits<MachO::LCStruct> { \
320 static void mapping(IO &IO, MachO::LCStruct &LoadCommand); \
323#include "llvm/BinaryFormat/MachO.def"
This file declares classes for handling the YAML representation of DWARF Debug Info.
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.
StringRef - Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
uint8_t[16] uuid_t
Output a formatted UUID with dash separators.
void enumFallback(T &Val)
raw_ostream::uuid_t uuid_t
QuotingType
Describe which type of quotes should be used when quoting is necessary.
This is an optimization pass for GlobalISel generic memory operations.
std::vector< int64_t > SLEBExtraData
std::vector< yaml::Hex64 > ULEBExtraData
std::vector< MachOYAML::ExportEntry > Children
llvm::yaml::Hex64 Address
llvm::yaml::Hex32 cputype
llvm::yaml::Hex32 cpusubtype
llvm::yaml::Hex32 reserved
std::vector< MachOYAML::BindOpcode > WeakBindOpcodes
std::vector< DataInCodeEntry > DataInCode
std::vector< yaml::Hex8 > ChainedFixups
std::vector< MachOYAML::BindOpcode > LazyBindOpcodes
std::vector< MachOYAML::BindOpcode > BindOpcodes
std::vector< MachOYAML::RebaseOpcode > RebaseOpcodes
std::vector< StringRef > StringTable
std::vector< yaml::Hex32 > IndirectSymbols
std::vector< yaml::Hex64 > FunctionStarts
MachOYAML::ExportEntry ExportTrie
std::vector< NListEntry > NameList
llvm::MachO::macho_load_command Data
std::vector< Section > Sections
std::vector< MachO::build_tool_version > Tools
std::vector< llvm::yaml::Hex8 > PayloadBytes
std::vector< LoadCommand > LoadCommands
std::optional< llvm::yaml::BinaryRef > RawLinkEditSegment
std::vector< Section > Sections
std::vector< yaml::Hex64 > ExtraData
MachO::RebaseOpcode Opcode
llvm::yaml::Hex32 address
std::vector< Relocation > relocations
std::optional< llvm::yaml::BinaryRef > content
llvm::yaml::Hex32 reserved2
llvm::yaml::Hex32 reserved1
llvm::yaml::Hex32 reserved3
std::vector< Object > Slices
std::vector< FatArch > FatArchs
static void mapping(IO &IO, MachOYAML::BindOpcode &BindOpcode)
static void mapping(IO &IO, MachOYAML::DataInCodeEntry &DataInCodeEntry)
static void mapping(IO &IO, MachOYAML::ExportEntry &ExportEntry)
static void mapping(IO &IO, MachOYAML::FatArch &FatArch)
static void mapping(IO &IO, MachOYAML::LinkEditData &LinkEditData)
static void mapping(IO &IO, MachOYAML::LoadCommand &LoadCommand)
static void mapping(IO &IO, MachOYAML::NListEntry &NListEntry)
static void mapping(IO &IO, MachOYAML::Object &Object)
static void mapping(IO &IO, MachOYAML::RebaseOpcode &RebaseOpcode)
static void mapping(IO &IO, MachOYAML::Relocation &R)
static void mapping(IO &IO, MachOYAML::Section &Section)
static std::string validate(IO &io, MachOYAML::Section &Section)
static void mapping(IO &IO, MachOYAML::UniversalBinary &UniversalBinary)
static void mapping(IO &IO, MachO::dylib &LoadCommand)
static void mapping(IO &IO, MachO::fvmlib &LoadCommand)
static void mapping(IO &IO, MachO::section &LoadCommand)
static void mapping(IO &IO, MachO::section_64 &LoadCommand)
This class should be specialized by any type that needs to be converted to/from a YAML mapping.
static void enumeration(IO &io, MachO::BindOpcode &value)
static void enumeration(IO &io, MachO::LoadCommandType &value)
static void enumeration(IO &io, MachO::RebaseOpcode &value)
This class should be specialized by any integral type that converts to/from a YAML scalar where there...
static void output(const char_16 &Val, void *, raw_ostream &Out)
static QuotingType mustQuote(StringRef S)
static StringRef input(StringRef Scalar, void *, char_16 &Val)
static QuotingType mustQuote(StringRef S)
static void output(const uuid_t &Val, void *, raw_ostream &Out)
static StringRef input(StringRef Scalar, void *, uuid_t &Val)
This class should be specialized by type that requires custom conversion to/from a yaml scalar.