23 using namespace object;
60 : Parent(Parent), Index(Index) {
68 Header = getUniversalBinaryStruct<MachO::fat_arch>(HeaderPos);
80 std::string ObjectName =
81 Parent->getFileName().
str() +
":" +
84 ObjectData, ObjectName,
false);
93 void MachOUniversalBinary::anchor() { }
109 if (H.
magic != MachO::FAT_MAGIC || Buf.
size() < MinSize) {
124 default:
return false;
135 if (
I->getCPUType() ==
static_cast<uint32_t
>(CTM))
136 return I->getAsObjectFile(Result);
static MemoryBuffer * getMemBuffer(StringRef InputData, StringRef BufferName="", bool RequiresNullTerminator=true)
static T getUniversalBinaryStruct(const char *Ptr)
size_t size() const
size - Get the string size.
StringRef substr(size_t Start, size_t N=npos) const
std::string str() const
str - Get the contents as an std::string.
ObjectForArch(const MachOUniversalBinary *Parent, uint32_t Index)
static void SwapValue(T &Value)
error_code getAsObjectFile(OwningPtr< ObjectFile > &Result) const
StringRef getData() const
static bool getCTMForArch(Triple::ArchType Arch, MachO::CPUType &CTM)
static const bool IsLittleEndianHost
error_code getObjectForArch(Triple::ArchType Arch, OwningPtr< ObjectFile > &Result) const
object_iterator end_objects() const
virtual unsigned getArch() const
static const char * getArchTypeName(ArchType Kind)
getArchTypeName - Get the canonical name for the Kind architecture.
MachOUniversalBinary(MemoryBuffer *Source, error_code &ec)
unsigned char SwapByteOrder(unsigned char C)
size_t getBufferSize() const
object_iterator begin_objects() const
LLVM Value Representation.
static void SwapStruct(T &Value)
uint32_t getNumberOfObjects() const
static ObjectFile * createMachOObjectFile(MemoryBuffer *Object)