public final class MachOSymtab extends ObjectFile.Element implements SymbolTable
Modifier and Type | Class and Description |
---|---|
static class |
MachOSymtab.Entry |
Constructor and Description |
---|
MachOSymtab(String name,
MachOObjectFile objectFile,
MachOObjectFile.Segment64Command containingSegment,
MachOStrtab strtab) |
Modifier and Type | Method and Description |
---|---|
LayoutDecisionMap |
getDecisions(LayoutDecisionMap copyingIn) |
Iterable<BuildDependency> |
getDependencies(Map<ObjectFile.Element,LayoutDecisionMap> decisions)
Implementing this method allows to declare dependencies to other Sections (i.e.
|
int |
getEntryCount() |
ElementImpl |
getImpl() |
byte[] |
getOrDecideContent(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided,
byte[] contentHint)
Implement this method to deliver the content of the section.
|
int |
getOrDecideOffset(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided,
int offsetHint)
Implement this method to provide the offset this section should be placed at.
|
int |
getOrDecideSize(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided,
int sizeHint)
Implement this method to provide the size of this section.
|
int |
getOrDecideVaddr(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided,
int vaddrHint)
Implement this method to provide the virtual address of this section.
|
List<MachOSymtab.Entry> |
getSortedEntries() |
ObjectFile.Symbol |
getSymbol(String name) |
int |
indexOf(ObjectFile.Symbol sym) |
boolean |
isLoadable()
Returns whether or not this section will be mapped into memory.
|
Iterator<ObjectFile.Symbol> |
iterator() |
ObjectFile.Symbol |
newDefinedEntry(String name,
ObjectFile.Section referencedSection,
long referencedOffset,
long size,
boolean isGlobal,
boolean isCode) |
ObjectFile.Symbol |
newUndefinedEntry(String name,
boolean isCode) |
getAlignment, getElement, getElementName, getMemSize, getName, getOwner, isReferenceable, setElement, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public MachOSymtab(String name, MachOObjectFile objectFile, MachOObjectFile.Segment64Command containingSegment, MachOStrtab strtab)
public List<MachOSymtab.Entry> getSortedEntries()
public Iterable<BuildDependency> getDependencies(Map<ObjectFile.Element,LayoutDecisionMap> decisions)
ElementImpl
getDependencies
in interface ElementImpl
public int getOrDecideOffset(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, int offsetHint)
ElementImpl
getOrDecideOffset
in interface ElementImpl
public int getOrDecideSize(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, int sizeHint)
ElementImpl
getOrDecideSize
in interface ElementImpl
public byte[] getOrDecideContent(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, byte[] contentHint)
ElementImpl
getOrDecideContent
in interface ElementImpl
public int getOrDecideVaddr(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, int vaddrHint)
ElementImpl
ElementImpl.isLoadable()
).getOrDecideVaddr
in interface ElementImpl
public LayoutDecisionMap getDecisions(LayoutDecisionMap copyingIn)
getDecisions
in interface ElementImpl
public ObjectFile.Symbol newDefinedEntry(String name, ObjectFile.Section referencedSection, long referencedOffset, long size, boolean isGlobal, boolean isCode)
newDefinedEntry
in interface SymbolTable
public ObjectFile.Symbol newUndefinedEntry(String name, boolean isCode)
newUndefinedEntry
in interface SymbolTable
public ObjectFile.Symbol getSymbol(String name)
getSymbol
in interface SymbolTable
public ElementImpl getImpl()
public boolean isLoadable()
ObjectFile.Element
isLoadable
in interface ElementImpl
public int indexOf(ObjectFile.Symbol sym)
public Iterator<ObjectFile.Symbol> iterator()
iterator
in interface Iterable<ObjectFile.Symbol>
public int getEntryCount()