14 #ifndef LLVM_OBJECT_COFF_H
15 #define LLVM_OBJECT_COFF_H
150 assert(
isOrdinal() &&
"ILT entry is not an ordinal!");
151 return data & 0xFFFF;
155 assert(!
isOrdinal() &&
"ILT entry is not a Hint/Name RVA!");
184 return (
Type & 0xF0) >> 4;
231 const char *StringTable;
232 uint32_t StringTableSize;
234 uint32_t NumberOfImportDirectory;
279 uint64_t &Res)
const;
281 uint64_t &Res)
const;
284 uint64_t &Res)
const;
312 virtual unsigned getArch()
const;
324 template <
typename T>
328 Res =
reinterpret_cast<const T*
>(s);
352 : ImportDirectoryPimpl(ImportDirectory), OwningObject(Owner) {}
bool operator==(const ImportDirectoryEntryRef &Other) const
ImportDirectoryEntryRef()
support::ulittle32_t ImportAddressTableRVA
support::ulittle32_t PointerToLinenumbers
error_code getAuxSymbol(uint32_t index, const T *&Res) const
support::ulittle16_t Type
virtual relocation_iterator section_rel_end(DataRefImpl Sec) const
support::ulittle32_t VirtualAddress
import_directory_iterator import_directory_end() const
virtual uint8_t getBytesInAddress() const
The number of bytes used to represent an address in this object file format.
error_code getNext(ImportDirectoryEntryRef &Result) const
support::ulittle16_t NumberOfLinenumbers
virtual section_iterator begin_sections() const
error_code getDataDirectory(uint32_t index, const data_directory *&Res) const
support::little16_t SectionNumber
support::ulittle32_t PointerToRelocations
virtual error_code getRelocationOffset(DataRefImpl Rel, uint64_t &Res) const
virtual error_code getSymbolSection(DataRefImpl Symb, section_iterator &Res) const
uint32_t getHintNameRVA() const
error_code getRvaPtr(uint32_t Rva, uintptr_t &Res) const
virtual library_iterator end_libraries_needed() const
virtual error_code isSectionVirtual(DataRefImpl Sec, bool &Res) const
support::ulittle8_t NumberOfAuxSymbols
error_code getSection(int32_t index, const coff_section *&Res) const
error_code getImportLookupEntry(const import_lookup_table_entry32 *&Result) const
support::ulittle32_t CheckSum
uint8_t getComplexType() const
virtual error_code getRelocationType(DataRefImpl Rel, uint64_t &Res) const
virtual error_code getRelocationNext(DataRefImpl Rel, RelocationRef &Res) const
virtual error_code isSectionZeroInit(DataRefImpl Sec, bool &Res) const
virtual unsigned getArch() const
virtual error_code getSymbolFlags(DataRefImpl Symb, uint32_t &Res) const
virtual symbol_iterator getRelocationSymbol(DataRefImpl Rel) const
virtual error_code isSectionText(DataRefImpl Sec, bool &Res) const
uint16_t getOrdinal() const
support::ulittle32_t ImportLookupTableRVA
support::ulittle32_t VirtualSize
virtual error_code getSymbolAddress(DataRefImpl Symb, uint64_t &Res) const
virtual error_code getLibraryPath(DataRefImpl LibData, StringRef &Result) const
support::ulittle32_t NameRVA
virtual error_code getSymbolFileOffset(DataRefImpl Symb, uint64_t &Res) const
error_code getImportTableEntry(const import_directory_table_entry *&Result) const
virtual error_code getSectionSize(DataRefImpl Sec, uint64_t &Res) const
virtual error_code isSectionData(DataRefImpl Sec, bool &Res) const
ImportDirectoryEntryRef(DataRefImpl ImportDirectory, const COFFObjectFile *Owner)
support::ulittle32_t TagIndex
support::ulittle32_t Characteristics
support::ulittle32_t Characteristics
virtual error_code getRelocationAddress(DataRefImpl Rel, uint64_t &Res) const
support::ulittle8_t Selection
virtual error_code isSectionBSS(DataRefImpl Sec, bool &Res) const
virtual StringRef getFileFormatName() const
support::ulittle16_t Number
virtual error_code getLibraryNext(DataRefImpl LibData, LibraryRef &Result) const
support::ulittle32_t RelativeVirtualAddress
virtual error_code getSymbolNext(DataRefImpl Symb, SymbolRef &Res) const
support::ulittle16_t Type
support::ulittle8_t StorageClass
virtual section_iterator end_sections() const
virtual error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const
support::ulittle32_t SizeOfRawData
virtual error_code getSectionName(DataRefImpl Sec, StringRef &Res) const
content_iterator< ImportDirectoryEntryRef > import_directory_iterator
support::ulittle32_t VirtualAddress
const coff_symbol * getCOFFSymbol(symbol_iterator &It) const
const coff_relocation * getCOFFRelocation(relocation_iterator &It) const
support::ulittle32_t SymbolTableIndex
virtual error_code isSectionRequiredForExecution(DataRefImpl Sec, bool &Res) const
virtual error_code sectionContainsSymbol(DataRefImpl Sec, DataRefImpl Symb, bool &Result) const
virtual error_code getSymbolName(DataRefImpl Symb, StringRef &Res) const
error_code getHintName(uint32_t Rva, uint16_t &Hint, StringRef &Name) const
ArrayRef< uint8_t > getSymbolAuxData(const coff_symbol *symbol) const
import_directory_iterator import_directory_begin() const
support::ulittle32_t PointerToRawData
union llvm::object::coff_symbol::@72 Name
error_code getPE32Header(const pe32_header *&Res) const
error_code getSymbol(uint32_t index, const coff_symbol *&Res) const
support::ulittle16_t NumberOfRelocations
COFFObjectFile(MemoryBuffer *Object, error_code &ec)
support::ulittle32_t Value
support::ulittle32_t ForwarderChain
virtual error_code getSymbolSize(DataRefImpl Symb, uint64_t &Res) const
virtual error_code getSymbolType(DataRefImpl Symb, SymbolRef::Type &Res) const
support::ulittle32_t Size
support::ulittle32_t data
support::ulittle32_t TimeDateStamp
virtual relocation_iterator section_rel_begin(DataRefImpl Sec) const
virtual error_code isSectionReadOnlyData(DataRefImpl Sec, bool &Res) const
virtual library_iterator begin_libraries_needed() const
support::ulittle16_t NumberOfLinenumbers
virtual symbol_iterator begin_dynamic_symbols() const
error_code getCOFFHeader(const coff_file_header *&Res) const
const coff_section * getCOFFSection(section_iterator &It) const
virtual symbol_iterator end_symbols() const
support::ulittle32_t Length
uint8_t getBaseType() const
support::ulittle16_t NumberOfRelocations
support::ulittle32_t Zeroes
static bool classof(const Binary *v)
virtual error_code getSectionAlignment(DataRefImpl Sec, uint64_t &Res) const
virtual error_code getSymbolValue(DataRefImpl Symb, uint64_t &Val) const
virtual symbol_iterator begin_symbols() const
virtual error_code getRelocationTypeName(DataRefImpl Rel, SmallVectorImpl< char > &Result) const
virtual symbol_iterator end_dynamic_symbols() const
error_code getHeader(const coff_file_header *&Res) const
support::ulittle32_t Offset
virtual error_code getSectionNext(DataRefImpl Sec, SectionRef &Res) const
virtual error_code getSectionAddress(DataRefImpl Sec, uint64_t &Res) const
error_code getName(StringRef &Result) const
virtual error_code getRelocationValueString(DataRefImpl Rel, SmallVectorImpl< char > &Result) const
virtual StringRef getLoadName() const