public class PECoffObjectFile extends ObjectFile
| Modifier and Type | Class and Description |
|---|---|
class |
PECoffObjectFile.PECoffDirectiveSection |
class |
PECoffObjectFile.PECoffHeader
Representation of an PECoff binary header.
|
class |
PECoffObjectFile.PECoffSection |
static class |
PECoffObjectFile.PECoffSectionFlag |
class |
PECoffObjectFile.SectionHeaderTable
PECoff's section header table "sht" is an Element which describes the file Sections.
|
ObjectFile.Element, ObjectFile.ElementComparatorByDecidedOffset, ObjectFile.Format, ObjectFile.Header, ObjectFile.IntegerDecisionComparator, ObjectFile.NobitsSectionImpl, ObjectFile.ProgbitsSectionImpl, ObjectFile.RelocatableSectionImpl, ObjectFile.RelocationKind, ObjectFile.RelocationMethod, ObjectFile.RelocationRecord, ObjectFile.RelocationSiteInfo, ObjectFile.Section, ObjectFile.Segment, ObjectFile.SizeTiebreakComparator, ObjectFile.Symbol, ObjectFile.ValueEnumelements, nameForElement| Constructor and Description |
|---|
PECoffObjectFile() |
| Modifier and Type | Method and Description |
|---|---|
ObjectFile.Symbol |
createDefinedSymbol(String name,
ObjectFile.Element baseSection,
long position,
int size,
boolean isCode,
boolean isGlobal) |
protected PECoffSymtab |
createSymbolTable() |
ObjectFile.Symbol |
createUndefinedSymbol(String name,
int size,
boolean isCode) |
protected boolean |
elementsCanSharePage(ObjectFile.Element s1,
ObjectFile.Element s2,
int off1,
int off2)
Returns whether, according to the semantics of the object file, two sections could reasonably
both be placed (partially) on the same page-sized region of virtual memory.
|
ByteOrder |
getByteOrder() |
ObjectFile.Format |
getFormat() |
int |
getIndexForSection(PECoffObjectFile.PECoffSection s) |
PECoffMachine |
getMachine() |
protected int |
getMinimumFileSize() |
PECoffRelocationTable |
getOrCreateRelocSection(PECoffSymtab syms,
boolean withExplicitAddends) |
protected ObjectFile.Segment |
getOrCreateSegment(String maybeSegmentName,
String sectionName,
boolean writable,
boolean executable)
Return a Segment object which is appropriate for containing a section of the given name, if
such a segment is mandatory according to the object file format specification.
|
List<PECoffObjectFile.PECoffSection> |
getPECoffSections() |
PECoffRelocationTable |
getRelocationTable() |
PECoffObjectFile.PECoffSection |
getSectionByIndex(int i) |
Set<ObjectFile.Segment> |
getSegments() |
SymbolTable |
getSymbolTable() |
static ByteOrder |
getTargetByteOrder() |
int |
getWordSizeInBytes() |
PECoffNobitsSection |
newNobitsSection(ObjectFile.Segment segment,
String name,
ObjectFile.NobitsSectionImpl impl) |
PECoffProgbitsSection |
newProgbitsSection(ObjectFile.Segment segment,
String name,
int alignment,
boolean writable,
boolean executable,
ObjectFile.ProgbitsSectionImpl impl) |
PECoffUserDefinedSection |
newUserDefinedSection(ObjectFile.Segment segment,
String name,
int alignment,
ElementImpl impl)
Create a new section for holding user data.
|
void |
setByteOrder(ByteOrder byteorder) |
void |
setMainEntryPoint(String name) |
boolean |
shouldRecordDebugRelocations()
Determines whether references between debug sections should be recorded for relocation.
|
allDecisions, bake, basicDependencies, createElementList, createRuntimeDebugInfo, decisionsByKind, defaultDecisions, defaultDependencies, defaultGetOrDecide, defaultGetOrDecideContent, defaultGetOrDecideOffset, defaultGetOrDecideSize, defaultGetOrDecideVaddr, elementForName, elementsMappedOnPage, findSegmentByName, flagSetAsLong, flagSetFromLong, getDecisionsByElement, getDecisionsTaken, getElements, getFilenameSuffix, getHeader, getHostPageSize, getNativeFormat, getNativeObjectFile, getOffsetBootstrapElement, getOrCreateSymbolTable, getPageSize, getPageSizeShift, getSections, greatestCommonDivisor, initialVaddr, lowestCommonMultiple, maximalDecisionValues, minimalDecisionValues, minimalDependencies, nameForElement, newDebugSection, newNobitsSection, newProgbitsSection, newUserDefinedSection, nextAvailableOffset, nextAvailableVaddr, nextIntegerMultiple, nextIntegerMultipleWithCongruence, roundUpToPageSize, setPageSize, sortedDecisionValues, write, writeBufferpublic ObjectFile.Format getFormat()
getFormat in class ObjectFileprotected PECoffSymtab createSymbolTable()
createSymbolTable in class ObjectFilepublic ObjectFile.Symbol createDefinedSymbol(String name, ObjectFile.Element baseSection, long position, int size, boolean isCode, boolean isGlobal)
createDefinedSymbol in class ObjectFilepublic ObjectFile.Symbol createUndefinedSymbol(String name, int size, boolean isCode)
createUndefinedSymbol in class ObjectFileprotected ObjectFile.Segment getOrCreateSegment(String maybeSegmentName, String sectionName, boolean writable, boolean executable)
ObjectFilegetOrCreateSegment in class ObjectFilemaybeSegmentName - either null, or the name of a segment which the caller would prefer
should contain the given section (in the case where multiple names would be
possible for the created segment, so the choice would be ambiguous)sectionName - a platform-dependent section namewritable - whether the segment contents should be writableexecutable - whether the segment contents should be executablepublic PECoffUserDefinedSection newUserDefinedSection(ObjectFile.Segment segment, String name, int alignment, ElementImpl impl)
ObjectFilenewUserDefinedSection in class ObjectFilepublic PECoffProgbitsSection newProgbitsSection(ObjectFile.Segment segment, String name, int alignment, boolean writable, boolean executable, ObjectFile.ProgbitsSectionImpl impl)
newProgbitsSection in class ObjectFilepublic PECoffNobitsSection newNobitsSection(ObjectFile.Segment segment, String name, ObjectFile.NobitsSectionImpl impl)
newNobitsSection in class ObjectFilepublic PECoffObjectFile.PECoffSection getSectionByIndex(int i)
public int getIndexForSection(PECoffObjectFile.PECoffSection s)
protected boolean elementsCanSharePage(ObjectFile.Element s1, ObjectFile.Element s2, int off1, int off2)
ObjectFileelementsCanSharePage in class ObjectFiles1 - one sections2 - another sectionpublic List<PECoffObjectFile.PECoffSection> getPECoffSections()
public Set<ObjectFile.Segment> getSegments()
getSegments in class ObjectFilepublic ByteOrder getByteOrder()
getByteOrder in class ObjectFilepublic void setByteOrder(ByteOrder byteorder)
setByteOrder in class ObjectFilepublic void setMainEntryPoint(String name)
setMainEntryPoint in class ObjectFilepublic static ByteOrder getTargetByteOrder()
public int getWordSizeInBytes()
getWordSizeInBytes in class ObjectFilepublic boolean shouldRecordDebugRelocations()
ObjectFileshouldRecordDebugRelocations in class ObjectFilepublic PECoffMachine getMachine()
public PECoffRelocationTable getOrCreateRelocSection(PECoffSymtab syms, boolean withExplicitAddends)
public SymbolTable getSymbolTable()
getSymbolTable in class ObjectFilepublic PECoffRelocationTable getRelocationTable()
protected int getMinimumFileSize()
getMinimumFileSize in class ObjectFile