Package ghidra.program.model.symbol
Class ThunkReference
- java.lang.Object
-
- ghidra.program.model.symbol.ThunkReference
-
- All Implemented Interfaces:
DynamicReference
,Reference
,java.lang.Comparable<Reference>
public class ThunkReference extends java.lang.Object implements DynamicReference
Implementation for a Thunk Function reference. These references are dynamic in nature and may not be explicitly added, removed or altered. There presence is inferred by the existence of a thunk function.
-
-
Constructor Summary
Constructors Constructor Description ThunkReference(Address thunkAddr, Address thunkedAddr)
Thunk reference constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(Reference ref)
boolean
equals(java.lang.Object obj)
Address
getFromAddress()
Get the address of the codeunit that is making the reference.int
getOperandIndex()
Get the operand index of where this reference was placed.RefType
getReferenceType()
Get the type of reference being made.SourceType
getSource()
Gets the source of this reference.long
getSymbolID()
Get the symbol ID associated with this reference.Address
getToAddress()
Get the "to" address for this reference.boolean
isEntryPointReference()
Returns true if this reference is an instance of EntryReference.boolean
isExternalReference()
Returns true if this reference is an instance of ExternalReference.boolean
isMemoryReference()
Returns true if this reference to an address in the programs memory space.boolean
isMnemonicReference()
Return true if this reference is on the Mnemonic and not on an operandboolean
isOffsetReference()
Returns true if this reference is an instance of OffsetReference.boolean
isOperandReference()
Return true if this reference is on an operand and not on the Mnemonic.boolean
isPrimary()
Return whether this reference is marked as primary.boolean
isRegisterReference()
Returns true if this reference to an address in the programs register space.boolean
isShiftedReference()
Returns true if this reference is an instance of ShiftedReference.boolean
isStackReference()
Returns true if this reference is an instance of StackReference and refers to a stack location.
-
-
-
Method Detail
-
getFromAddress
public Address getFromAddress()
Description copied from interface:Reference
Get the address of the codeunit that is making the reference.- Specified by:
getFromAddress
in interfaceReference
- See Also:
Reference.getFromAddress()
-
getToAddress
public Address getToAddress()
Description copied from interface:Reference
Get the "to" address for this reference.- Specified by:
getToAddress
in interfaceReference
- See Also:
Reference.getToAddress()
-
isPrimary
public boolean isPrimary()
Description copied from interface:Reference
Return whether this reference is marked as primary.- Specified by:
isPrimary
in interfaceReference
- See Also:
Reference.isPrimary()
-
getSymbolID
public long getSymbolID()
Description copied from interface:Reference
Get the symbol ID associated with this reference.- Specified by:
getSymbolID
in interfaceReference
- Returns:
- symbol ID or -1 if no symbol is associated with this reference
- See Also:
Reference.getSymbolID()
-
getReferenceType
public RefType getReferenceType()
Description copied from interface:Reference
Get the type of reference being made.- Specified by:
getReferenceType
in interfaceReference
- See Also:
Reference.getReferenceType()
-
getOperandIndex
public int getOperandIndex()
Description copied from interface:Reference
Get the operand index of where this reference was placed.- Specified by:
getOperandIndex
in interfaceReference
- Returns:
- op index or ReferenceManager.MNEMONIC
- See Also:
Reference.getOperandIndex()
-
isMnemonicReference
public boolean isMnemonicReference()
Description copied from interface:Reference
Return true if this reference is on the Mnemonic and not on an operand- Specified by:
isMnemonicReference
in interfaceReference
- See Also:
Reference.isMnemonicReference()
-
isOperandReference
public boolean isOperandReference()
Description copied from interface:Reference
Return true if this reference is on an operand and not on the Mnemonic.- Specified by:
isOperandReference
in interfaceReference
- See Also:
Reference.isOperandReference()
-
compareTo
public int compareTo(Reference ref)
- Specified by:
compareTo
in interfacejava.lang.Comparable<Reference>
- See Also:
Comparable.compareTo(Object)
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(Object)
-
isExternalReference
public boolean isExternalReference()
Description copied from interface:Reference
Returns true if this reference is an instance of ExternalReference.- Specified by:
isExternalReference
in interfaceReference
- See Also:
Reference.isExternalReference()
-
isOffsetReference
public boolean isOffsetReference()
Description copied from interface:Reference
Returns true if this reference is an instance of OffsetReference.- Specified by:
isOffsetReference
in interfaceReference
- See Also:
Reference.isOffsetReference()
-
isShiftedReference
public boolean isShiftedReference()
Description copied from interface:Reference
Returns true if this reference is an instance of ShiftedReference.- Specified by:
isShiftedReference
in interfaceReference
- See Also:
Reference.isShiftedReference()
-
isEntryPointReference
public boolean isEntryPointReference()
Description copied from interface:Reference
Returns true if this reference is an instance of EntryReference.- Specified by:
isEntryPointReference
in interfaceReference
- See Also:
Reference.isEntryPointReference()
-
isMemoryReference
public boolean isMemoryReference()
Description copied from interface:Reference
Returns true if this reference to an address in the programs memory space. This includes offset and shifted references.- Specified by:
isMemoryReference
in interfaceReference
- See Also:
Reference.isMemoryReference()
-
isRegisterReference
public boolean isRegisterReference()
Description copied from interface:Reference
Returns true if this reference to an address in the programs register space.- Specified by:
isRegisterReference
in interfaceReference
- See Also:
Reference.isRegisterReference()
-
isStackReference
public boolean isStackReference()
Description copied from interface:Reference
Returns true if this reference is an instance of StackReference and refers to a stack location.- Specified by:
isStackReference
in interfaceReference
- See Also:
Reference.isStackReference()
-
getSource
public SourceType getSource()
Description copied from interface:Reference
Gets the source of this reference.SourceTypes
-
-