class XCOFFObjectFile

Declaration

class XCOFFObjectFile : public ObjectFile { /* full declaration omitted */ };

Description

This class is the base class for all object file types. Concrete instances of this object are created by createObjectFile, which figures out which type to create.

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:445

Inherits from: ObjectFile

Member Variables

private const void* FileHeader = nullptr
private const void* AuxiliaryHeader = nullptr
private const void* SectionHeaderTable = nullptr
private const void* SymbolTblPtr = nullptr
private llvm::object::XCOFFStringTable StringTable = {0, nullptr}
public static const uint64_t InvalidRelocOffset = std::numeric_limits<unsigned long>::max()

Inherited from Binary:

protected Data

Method Overview

Inherited from ObjectFile:

Inherited from SymbolicFile:

Inherited from Binary:

Methods

XCOFFObjectFile(unsigned int Type,
                llvm::MemoryBufferRef Object)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:477

Parameters

unsigned int Type
llvm::MemoryBufferRef Object

const llvm::object::XCOFFAuxiliaryHeader32*
auxiliaryHeader32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:554

const llvm::object::XCOFFAuxiliaryHeader64*
auxiliaryHeader64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:555

void checkSectionAddress(
    uintptr_t Addr,
    uintptr_t TableAddr) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:490

Parameters

uintptr_t Addr
uintptr_t TableAddr

void checkSymbolEntryPointer(
    uintptr_t SymbolEntPtr) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:608

Parameters

uintptr_t SymbolEntPtr

static bool classof(const llvm::object::Binary* B)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:632

Parameters

const llvm::object::Binary* B

static Expected<std::unique_ptr<XCOFFObjectFile>>
create(unsigned int Type,
       llvm::MemoryBufferRef MBR)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:478

Parameters

unsigned int Type
llvm::MemoryBufferRef MBR

const llvm::object::XCOFFFileHeader32*
fileHeader32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:564

const llvm::object::XCOFFFileHeader64*
fileHeader64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:565

static uintptr_t getAdvancedSymbolEntryAddress(
    uintptr_t CurrentAddress,
    uint32_t Distance)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:629

Parameters

uintptr_t CurrentAddress
uint32_t Distance

Triple::ArchType getArch() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:543

uint8_t getBytesInAddress() const

Description

The number of bytes used to represent an address in this object file format.

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:541

Expected<llvm::StringRef> getCFileName(
    const llvm::object::XCOFFFileAuxEnt*
        CFileEntPtr) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:597

Parameters

const llvm::object::XCOFFFileAuxEnt* CFileEntPtr

uint64_t getCommonSymbolSizeImpl(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:506

Parameters

llvm::object::DataRefImpl Symb

uintptr_t getEndOfSymbolTableAddress() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:464

llvm::SubtargetFeatures getFeatures() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:544

llvm::StringRef getFileFormatName() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:542

size_t getFileHeaderSize() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:458

uint16_t getFlags() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:599

Expected<llvm::StringRef> getImportFileTable()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:619

Expected<uintptr_t> getLoaderSectionAddress()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:465

uint32_t getLogicalNumberOfSymbolTableEntries32()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:580

uint16_t getMagic() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:566

template <typename T>
Expected<uint32_t> getNumberOfRelocationEntries(
    const XCOFFSectionHeader<T>& Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:613

Templates

T

Parameters

const XCOFFSectionHeader<T>& Sec

uint16_t getNumberOfSections() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:567

uint32_t getNumberOfSymbolTableEntries() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:586

uint32_t getNumberOfSymbolTableEntries64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:582

uint16_t getOptionalHeaderSize() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:598

const void* getPointerToSymbolTable() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:557

Expected<llvm::StringRef> getRawData(
    const char* Start,
    uint64_t Size,
    llvm::StringRef Name) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:551

Parameters

const char* Start
uint64_t Size
llvm::StringRef Name

int32_t getRawNumberOfSymbolTableEntries32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:577

uint64_t getRelocationOffset(
    llvm::object::DataRefImpl Rel) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:533

Parameters

llvm::object::DataRefImpl Rel

Returns

the relocation offset with the base address of the containing section as zero, or InvalidRelocOffset on errors (such as a relocation that does not refer to an address in any section).

llvm::object::symbol_iterator getRelocationSymbol(
    llvm::object::DataRefImpl Rel) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:534

Parameters

llvm::object::DataRefImpl Rel

uint64_t getRelocationType(
    llvm::object::DataRefImpl Rel) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:535

Parameters

llvm::object::DataRefImpl Rel

void getRelocationTypeName(
    llvm::object::DataRefImpl Rel,
    SmallVectorImpl<char>& Result) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:536

Parameters

llvm::object::DataRefImpl Rel
SmallVectorImpl<char>& Result

uint64_t getSectionAddress(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:512

Parameters

llvm::object::DataRefImpl Sec

uint64_t getSectionAlignment(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:517

Parameters

llvm::object::DataRefImpl Sec

Expected<llvm::object::DataRefImpl>
getSectionByNum(int16_t Num) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:606

Parameters

int16_t Num

Expected<ArrayRef<uint8_t>> getSectionContents(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:516

Parameters

llvm::object::DataRefImpl Sec

int32_t getSectionFlags(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:605

Parameters

llvm::object::DataRefImpl Sec

size_t getSectionHeaderSize() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:459

uintptr_t getSectionHeaderTableAddress() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:463

uint64_t getSectionIndex(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:513

Parameters

llvm::object::DataRefImpl Sec

Expected<llvm::StringRef> getSectionName(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:511

Parameters

llvm::object::DataRefImpl Sec

const char* getSectionNameInternal(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:470

Parameters

llvm::object::DataRefImpl Sec

uint64_t getSectionSize(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:514

Parameters

llvm::object::DataRefImpl Sec

Expected<uint64_t> getStartAddress() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:545

llvm::StringRef getStringTable() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:625

Expected<llvm::StringRef> getStringTableEntry(
    uint32_t Offset) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:622

Parameters

uint32_t Offset

Expected<uint64_t> getSymbolAddress(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:503

Parameters

llvm::object::DataRefImpl Symb

uint32_t getSymbolAlignment(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:505

Parameters

llvm::object::DataRefImpl Symb

const XCOFF::SymbolAuxType* getSymbolAuxType(
    uintptr_t AuxEntryAddress) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:627

Parameters

uintptr_t AuxEntryAddress

uintptr_t getSymbolByIndex(uint32_t Idx) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:590

Parameters

uint32_t Idx

uintptr_t getSymbolEntryAddressByIndex(
    uint32_t SymbolTableIndex) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:594

Parameters

uint32_t SymbolTableIndex

Expected<uint32_t> getSymbolFlags(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:498

Parameters

llvm::object::DataRefImpl Symb

uint32_t getSymbolIndex(uintptr_t SymEntPtr) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:588

Parameters

uintptr_t SymEntPtr

Expected<llvm::StringRef> getSymbolName(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:502

Parameters

llvm::object::DataRefImpl Symb

Expected<llvm::StringRef> getSymbolNameByIndex(
    uint32_t SymbolTableIndex) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:595

Parameters

uint32_t SymbolTableIndex

Expected<llvm::object::section_iterator>
getSymbolSection(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:508

Parameters

llvm::object::DataRefImpl Symb

unsigned int getSymbolSectionID(
    llvm::object::SymbolRef Sym) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:560

Parameters

llvm::object::SymbolRef Sym

Expected<llvm::StringRef> getSymbolSectionName(
    llvm::object::XCOFFSymbolRef Ref) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:559

Parameters

llvm::object::XCOFFSymbolRef Ref

uint64_t getSymbolSize(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:589

Parameters

llvm::object::DataRefImpl Symb

uint32_t getSymbolTableOffset32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:572

uint64_t getSymbolTableOffset64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:573

Expected<SymbolRef::Type> getSymbolType(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:507

Parameters

llvm::object::DataRefImpl Symb

uint64_t getSymbolValueImpl(
    llvm::object::DataRefImpl Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:504

Parameters

llvm::object::DataRefImpl Symb

int32_t getTimeStamp() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:568

bool is64Bit() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:550

bool isDebugSection(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:522

Parameters

llvm::object::DataRefImpl Sec

bool isRelocatableObject() const

Description

True if this is a relocatable object (.o/.obj).

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:547

static bool isReservedSectionNumber(
    int16_t SectionNumber)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:472

Parameters

int16_t SectionNumber

bool isSectionBSS(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:521

Parameters

llvm::object::DataRefImpl Sec

bool isSectionCompressed(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:518

Parameters

llvm::object::DataRefImpl Sec

bool isSectionData(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:520

Parameters

llvm::object::DataRefImpl Sec

bool isSectionText(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:519

Parameters

llvm::object::DataRefImpl Sec

bool isSectionVirtual(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:524

Parameters

llvm::object::DataRefImpl Sec

llvm::StringRef mapDebugSectionName(
    llvm::StringRef Name) const

Description

Maps a debug section name to a standard DWARF section name.

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:546

Parameters

llvm::StringRef Name

void moveRelocationNext(
    llvm::object::DataRefImpl& Rel) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:528

Parameters

llvm::object::DataRefImpl& Rel

void moveSectionNext(
    llvm::object::DataRefImpl& Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:510

Parameters

llvm::object::DataRefImpl& Sec

void moveSymbolNext(
    llvm::object::DataRefImpl& Symb) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:497

Parameters

llvm::object::DataRefImpl& Symb

static Expected<llvm::object::XCOFFStringTable>
parseStringTable(
    const llvm::object::XCOFFObjectFile* Obj,
    uint64_t Offset)

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:483

Parameters

const llvm::object::XCOFFObjectFile* Obj
uint64_t Offset

template <typename Shdr, typename Reloc>
Expected<ArrayRef<Reloc>> relocations(
    const Shdr& Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:616

Templates

Shdr
Reloc

Parameters

const Shdr& Sec

template <typename T>
const T* sectionHeaderTable() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:456

Templates

T

const llvm::object::XCOFFSectionHeader32*
sectionHeaderTable32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:454

const llvm::object::XCOFFSectionHeader64*
sectionHeaderTable64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:455

llvm::object::section_iterator section_begin()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:539

llvm::object::section_iterator section_end() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:540

llvm::object::relocation_iterator
section_rel_begin(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:525

Parameters

llvm::object::DataRefImpl Sec

llvm::object::relocation_iterator section_rel_end(
    llvm::object::DataRefImpl Sec) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:526

Parameters

llvm::object::DataRefImpl Sec

ArrayRef<llvm::object::XCOFFSectionHeader32>
sections32() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:602

ArrayRef<llvm::object::XCOFFSectionHeader64>
sections64() const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:603

llvm::object::basic_symbol_iterator symbol_begin()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:499

llvm::object::basic_symbol_iterator symbol_end()
    const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:500

const llvm::object::XCOFFSectionHeader32*
toSection32(llvm::object::DataRefImpl Ref) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:461

Parameters

llvm::object::DataRefImpl Ref

const llvm::object::XCOFFSectionHeader64*
toSection64(llvm::object::DataRefImpl Ref) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:462

Parameters

llvm::object::DataRefImpl Ref

llvm::object::XCOFFSymbolRef toSymbolRef(
    llvm::object::DataRefImpl Ref) const

Declared at: llvm/include/llvm/Object/XCOFFObjectFile.h:561

Parameters

llvm::object::DataRefImpl Ref