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);
254template <>
struct ScalarEnumerationTraits<MachO::LoadCommandType> {
256#include "llvm/BinaryFormat/MachO.def"
257 io.enumFallback<Hex32>(
value);
261#define ENUM_CASE(Enum) io.enumCase(value, #Enum, MachO::Enum);
263template <>
struct ScalarEnumerationTraits<MachO::RebaseOpcode> {
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)
274 io.enumFallback<Hex8>(
value);
278template <>
struct ScalarEnumerationTraits<MachO::BindOpcode> {
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)
293 io.enumFallback<Hex8>(
value);
303 static QuotingType mustQuote(
StringRef S);
313 static QuotingType mustQuote(
StringRef S);
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.
Given that RA is a live value
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
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.
raw_ostream::uuid_t uuid_t
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 enumeration(IO &io, MachO::BindOpcode &value)
static void enumeration(IO &io, MachO::LoadCommandType &value)
static void enumeration(IO &io, MachO::RebaseOpcode &value)