mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-22 10:24:26 +00:00
Remove last use of InMemoryStruct from MachOObjectFile.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178948 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -85,6 +85,34 @@ namespace MachOFormat {
|
|||||||
support::ulittle32_t StringTableOffset;
|
support::ulittle32_t StringTableOffset;
|
||||||
support::ulittle32_t StringTableSize;
|
support::ulittle32_t StringTableSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct SegmentLoadCommand {
|
||||||
|
support::ulittle32_t Type;
|
||||||
|
support::ulittle32_t Size;
|
||||||
|
char Name[16];
|
||||||
|
support::ulittle32_t VMAddress;
|
||||||
|
support::ulittle32_t VMSize;
|
||||||
|
support::ulittle32_t FileOffset;
|
||||||
|
support::ulittle32_t FileSize;
|
||||||
|
support::ulittle32_t MaxVMProtection;
|
||||||
|
support::ulittle32_t InitialVMProtection;
|
||||||
|
support::ulittle32_t NumSections;
|
||||||
|
support::ulittle32_t Flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Segment64LoadCommand {
|
||||||
|
support::ulittle32_t Type;
|
||||||
|
support::ulittle32_t Size;
|
||||||
|
char Name[16];
|
||||||
|
support::ulittle64_t VMAddress;
|
||||||
|
support::ulittle64_t VMSize;
|
||||||
|
support::ulittle64_t FileOffset;
|
||||||
|
support::ulittle64_t FileSize;
|
||||||
|
support::ulittle32_t MaxVMProtection;
|
||||||
|
support::ulittle32_t InitialVMProtection;
|
||||||
|
support::ulittle32_t NumSections;
|
||||||
|
support::ulittle32_t Flags;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef MachOObject::LoadCommandInfo LoadCommandInfo;
|
typedef MachOObject::LoadCommandInfo LoadCommandInfo;
|
||||||
@ -204,6 +232,10 @@ private:
|
|||||||
const MachOFormat::RelocationEntry *getRelocation(DataRefImpl Rel) const;
|
const MachOFormat::RelocationEntry *getRelocation(DataRefImpl Rel) const;
|
||||||
const MachOFormat::SymtabLoadCommand *
|
const MachOFormat::SymtabLoadCommand *
|
||||||
getSymtabLoadCommand(LoadCommandInfo LCI) const;
|
getSymtabLoadCommand(LoadCommandInfo LCI) const;
|
||||||
|
const MachOFormat::SegmentLoadCommand *
|
||||||
|
getSegmentLoadCommand(LoadCommandInfo LCI) const;
|
||||||
|
const MachOFormat::Segment64LoadCommand *
|
||||||
|
getSegment64LoadCommand(LoadCommandInfo LCI) const;
|
||||||
std::size_t getSectionIndex(DataRefImpl Sec) const;
|
std::size_t getSectionIndex(DataRefImpl Sec) const;
|
||||||
|
|
||||||
void printRelocationTargetName(const MachOFormat::RelocationEntry *RE,
|
void printRelocationTargetName(const MachOFormat::RelocationEntry *RE,
|
||||||
|
@ -68,6 +68,21 @@ MachOObjectFile::getSymtabLoadCommand(LoadCommandInfo LCI) const {
|
|||||||
return reinterpret_cast<const MachOFormat::SymtabLoadCommand*>(Data.data());
|
return reinterpret_cast<const MachOFormat::SymtabLoadCommand*>(Data.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const MachOFormat::SegmentLoadCommand *
|
||||||
|
MachOObjectFile::getSegmentLoadCommand(LoadCommandInfo LCI) const {
|
||||||
|
StringRef Data = MachOObj->getData(LCI.Offset,
|
||||||
|
sizeof(MachOFormat::SegmentLoadCommand));
|
||||||
|
return reinterpret_cast<const MachOFormat::SegmentLoadCommand*>(Data.data());
|
||||||
|
}
|
||||||
|
|
||||||
|
const MachOFormat::Segment64LoadCommand *
|
||||||
|
MachOObjectFile::getSegment64LoadCommand(LoadCommandInfo LCI) const {
|
||||||
|
StringRef Data = MachOObj->getData(LCI.Offset,
|
||||||
|
sizeof(MachOFormat::Segment64LoadCommand));
|
||||||
|
return
|
||||||
|
reinterpret_cast<const MachOFormat::Segment64LoadCommand*>(Data.data());
|
||||||
|
}
|
||||||
|
|
||||||
void MachOObjectFile::moveToNextSymbol(DataRefImpl &DRI) const {
|
void MachOObjectFile::moveToNextSymbol(DataRefImpl &DRI) const {
|
||||||
uint32_t LoadCommandCount = MachOObj->getHeader().NumLoadCommands;
|
uint32_t LoadCommandCount = MachOObj->getHeader().NumLoadCommands;
|
||||||
while (DRI.d.a < LoadCommandCount) {
|
while (DRI.d.a < LoadCommandCount) {
|
||||||
@ -436,13 +451,13 @@ void MachOObjectFile::moveToNextSection(DataRefImpl &DRI) const {
|
|||||||
while (DRI.d.a < LoadCommandCount) {
|
while (DRI.d.a < LoadCommandCount) {
|
||||||
LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(DRI.d.a);
|
LoadCommandInfo LCI = MachOObj->getLoadCommandInfo(DRI.d.a);
|
||||||
if (LCI.Command.Type == macho::LCT_Segment) {
|
if (LCI.Command.Type == macho::LCT_Segment) {
|
||||||
InMemoryStruct<macho::SegmentLoadCommand> SegmentLoadCmd;
|
const MachOFormat::SegmentLoadCommand *SegmentLoadCmd =
|
||||||
MachOObj->ReadSegmentLoadCommand(LCI, SegmentLoadCmd);
|
getSegmentLoadCommand(LCI);
|
||||||
if (DRI.d.b < SegmentLoadCmd->NumSections)
|
if (DRI.d.b < SegmentLoadCmd->NumSections)
|
||||||
return;
|
return;
|
||||||
} else if (LCI.Command.Type == macho::LCT_Segment64) {
|
} else if (LCI.Command.Type == macho::LCT_Segment64) {
|
||||||
InMemoryStruct<macho::Segment64LoadCommand> Segment64LoadCmd;
|
const MachOFormat::Segment64LoadCommand *Segment64LoadCmd =
|
||||||
MachOObj->ReadSegment64LoadCommand(LCI, Segment64LoadCmd);
|
getSegment64LoadCommand(LCI);
|
||||||
if (DRI.d.b < Segment64LoadCmd->NumSections)
|
if (DRI.d.b < Segment64LoadCmd->NumSections)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user