public class ELFSymtab extends ELFObjectFile.ELFSection implements SymbolTable
Modifier and Type | Class and Description |
---|---|
static class |
ELFSymtab.PseudoSection |
static class |
ELFSymtab.SymBinding |
static class |
ELFSymtab.SymType |
Constructor and Description |
---|
ELFSymtab(ELFObjectFile owner,
String name,
boolean dynamic) |
ELFSymtab(ELFObjectFile owner,
String name,
boolean dynamic,
EnumSet<ELFObjectFile.ELFSectionFlag> extraFlags) |
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 |
getEntrySize() |
ElementImpl |
getImpl() |
long |
getLinkedInfo() |
ELFObjectFile.ELFSection |
getLinkedSection() |
com.oracle.objectfile.elf.ELFSymtab.Entry |
getNullEntry() |
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.
|
com.oracle.objectfile.elf.ELFSymtab.Entry |
getSymbol(String name) |
int |
indexOf(ObjectFile.Symbol sym) |
boolean |
isDynamic() |
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) |
getFlags, getOwner, getType, isLoadable, isReferenceable, setFlags
getAlignment, getElement, getElementName, getMemSize, getName, setElement, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public ELFSymtab(ELFObjectFile owner, String name, boolean dynamic)
public ELFSymtab(ELFObjectFile owner, String name, boolean dynamic, EnumSet<ELFObjectFile.ELFSectionFlag> extraFlags)
public ElementImpl getImpl()
getImpl
in class ObjectFile.Element
public int getEntrySize()
getEntrySize
in class ELFObjectFile.ELFSection
public ELFObjectFile.ELFSection getLinkedSection()
getLinkedSection
in class ELFObjectFile.ELFSection
public long getLinkedInfo()
getLinkedInfo
in class ELFObjectFile.ELFSection
public byte[] getOrDecideContent(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, byte[] contentHint)
ElementImpl
getOrDecideContent
in interface ElementImpl
public int getOrDecideSize(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, int sizeHint)
ElementImpl
getOrDecideSize
in interface ElementImpl
public Iterable<BuildDependency> getDependencies(Map<ObjectFile.Element,LayoutDecisionMap> decisions)
ElementImpl
getDependencies
in interface ElementImpl
public boolean isDynamic()
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 com.oracle.objectfile.elf.ELFSymtab.Entry getNullEntry()
public int indexOf(ObjectFile.Symbol sym)
public Iterator<ObjectFile.Symbol> iterator()
iterator
in interface Iterable<ObjectFile.Symbol>
public com.oracle.objectfile.elf.ELFSymtab.Entry getSymbol(String name)
getSymbol
in interface SymbolTable
public int getOrDecideOffset(Map<ObjectFile.Element,LayoutDecisionMap> alreadyDecided, int offsetHint)
ElementImpl
getOrDecideOffset
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
getDecisions
in class ObjectFile.Element