Package ghidra.program.model.symbol
Class RefType
- java.lang.Object
-
- ghidra.program.model.symbol.RefType
-
- Direct Known Subclasses:
DataRefType
,FlowType
public abstract class RefType extends java.lang.Object
Class to define reference types.
-
-
Field Summary
Fields Modifier and Type Field Description static FlowType
CALL_OVERRIDE_UNCONDITIONAL
static FlowType
CALL_TERMINATOR
static FlowType
CALLOTHER_OVERRIDE_CALL
static FlowType
CALLOTHER_OVERRIDE_JUMP
static FlowType
COMPUTED_CALL
static FlowType
COMPUTED_CALL_TERMINATOR
static FlowType
COMPUTED_JUMP
static FlowType
CONDITIONAL_CALL
static FlowType
CONDITIONAL_CALL_TERMINATOR
static FlowType
CONDITIONAL_COMPUTED_CALL
static FlowType
CONDITIONAL_COMPUTED_JUMP
static FlowType
CONDITIONAL_JUMP
static FlowType
CONDITIONAL_TERMINATOR
static RefType
DATA
Reference type assigned when data access is unknown.static RefType
DATA_IND
static RefType
EXTERNAL_REF
Reference type used internally to identify external entry points.static FlowType
FALL_THROUGH
static FlowType
FLOW
static FlowType
INDIRECTION
static FlowType
INVALID
static FlowType
JUMP_OVERRIDE_UNCONDITIONAL
static FlowType
JUMP_TERMINATOR
static RefType
PARAM
Reference type assigned when data (constant or pointer) is passed to a functionstatic RefType
READ
Reference type assigned when data is being read.static RefType
READ_IND
Reference type assigned when data is being read.static RefType
READ_WRITE
Reference type assigned when data is read and written.static RefType
READ_WRITE_IND
Reference type assigned when data is read and written.static RefType
STACK_READ
Deprecated.useREAD
insteadstatic RefType
STACK_WRITE
Deprecated.useWRITE
insteadstatic FlowType
TERMINATOR
static RefType
THUNK
Reference type is unknown.static FlowType
UNCONDITIONAL_CALL
static FlowType
UNCONDITIONAL_JUMP
static RefType
WRITE
Reference type assigned when data is being written.static RefType
WRITE_IND
Reference type assigned when data is being written.
-
Constructor Summary
Constructors Modifier Constructor Description protected
RefType(byte type, java.lang.String name)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
java.lang.String
getName()
Returns name of ref-typebyte
getValue()
Get the int value for this RefType object.boolean
hasFallthrough()
Returns true if this flow type can fall through.int
hashCode()
boolean
isCall()
Returns true if the flow is callboolean
isComputed()
Returns true if the flow is a computed call or compute jump.boolean
isConditional()
Returns true if the flow is a conditional call or jump.boolean
isData()
Returns true if the reference is to databoolean
isFallthrough()
Return true if this flow type is one that does not cause a break in control flow.boolean
isFlow()
Returns true if the reference is an instruction flow reference.boolean
isIndirect()
Returns true if the reference is indirectboolean
isJump()
Returns true if the flow is jumpboolean
isOverride()
boolean
isRead()
Returns true if the reference is a read.boolean
isTerminal()
returns true if this instruction terminates.boolean
isUnConditional()
Returns true if the flow is an unconditional call or jump.boolean
isWrite()
Returns true if the reference is a write.java.lang.String
toString()
-
-
-
Field Detail
-
INVALID
public static final FlowType INVALID
-
FLOW
public static final FlowType FLOW
-
FALL_THROUGH
public static final FlowType FALL_THROUGH
-
UNCONDITIONAL_JUMP
public static final FlowType UNCONDITIONAL_JUMP
-
CONDITIONAL_JUMP
public static final FlowType CONDITIONAL_JUMP
-
UNCONDITIONAL_CALL
public static final FlowType UNCONDITIONAL_CALL
-
CONDITIONAL_CALL
public static final FlowType CONDITIONAL_CALL
-
TERMINATOR
public static final FlowType TERMINATOR
-
COMPUTED_JUMP
public static final FlowType COMPUTED_JUMP
-
CONDITIONAL_TERMINATOR
public static final FlowType CONDITIONAL_TERMINATOR
-
COMPUTED_CALL
public static final FlowType COMPUTED_CALL
-
CALL_TERMINATOR
public static final FlowType CALL_TERMINATOR
-
COMPUTED_CALL_TERMINATOR
public static final FlowType COMPUTED_CALL_TERMINATOR
-
CONDITIONAL_CALL_TERMINATOR
public static final FlowType CONDITIONAL_CALL_TERMINATOR
-
CONDITIONAL_COMPUTED_CALL
public static final FlowType CONDITIONAL_COMPUTED_CALL
-
CONDITIONAL_COMPUTED_JUMP
public static final FlowType CONDITIONAL_COMPUTED_JUMP
-
JUMP_TERMINATOR
public static final FlowType JUMP_TERMINATOR
-
INDIRECTION
public static final FlowType INDIRECTION
-
CALL_OVERRIDE_UNCONDITIONAL
public static final FlowType CALL_OVERRIDE_UNCONDITIONAL
-
JUMP_OVERRIDE_UNCONDITIONAL
public static final FlowType JUMP_OVERRIDE_UNCONDITIONAL
-
CALLOTHER_OVERRIDE_CALL
public static final FlowType CALLOTHER_OVERRIDE_CALL
-
CALLOTHER_OVERRIDE_JUMP
public static final FlowType CALLOTHER_OVERRIDE_JUMP
-
THUNK
public static final RefType THUNK
Reference type is unknown.
-
DATA
public static final RefType DATA
Reference type assigned when data access is unknown.
-
PARAM
public static final RefType PARAM
Reference type assigned when data (constant or pointer) is passed to a function
-
DATA_IND
public static final RefType DATA_IND
-
READ
public static final RefType READ
Reference type assigned when data is being read.
-
WRITE
public static final RefType WRITE
Reference type assigned when data is being written.
-
READ_WRITE
public static final RefType READ_WRITE
Reference type assigned when data is read and written.
-
READ_IND
public static final RefType READ_IND
Reference type assigned when data is being read.
-
WRITE_IND
public static final RefType WRITE_IND
Reference type assigned when data is being written.
-
READ_WRITE_IND
public static final RefType READ_WRITE_IND
Reference type assigned when data is read and written.
-
STACK_READ
@Deprecated public static final RefType STACK_READ
Deprecated.useREAD
insteadReference type assigned for stack variable being read.
-
STACK_WRITE
@Deprecated public static final RefType STACK_WRITE
Deprecated.useWRITE
insteadReference type assigned for stack variable being written.
-
EXTERNAL_REF
public static final RefType EXTERNAL_REF
Reference type used internally to identify external entry points. The use of this RefType for references to external library data or functions is deprecated and should not be used for that purpose.
-
-
Method Detail
-
getValue
public byte getValue()
Get the int value for this RefType object.
-
isData
public boolean isData()
Returns true if the reference is to data
-
isRead
public boolean isRead()
Returns true if the reference is a read.
-
isWrite
public boolean isWrite()
Returns true if the reference is a write.
-
isIndirect
public boolean isIndirect()
Returns true if the reference is indirect
-
isFlow
public boolean isFlow()
Returns true if the reference is an instruction flow reference.
-
isFallthrough
public final boolean isFallthrough()
Return true if this flow type is one that does not cause a break in control flow.
-
hasFallthrough
public boolean hasFallthrough()
Returns true if this flow type can fall through.
-
isCall
public boolean isCall()
Returns true if the flow is call
-
isJump
public boolean isJump()
Returns true if the flow is jump
-
isUnConditional
public boolean isUnConditional()
Returns true if the flow is an unconditional call or jump.
-
isConditional
public boolean isConditional()
Returns true if the flow is a conditional call or jump.
-
isComputed
public boolean isComputed()
Returns true if the flow is a computed call or compute jump.
-
isTerminal
public boolean isTerminal()
returns true if this instruction terminates.
-
isOverride
public boolean isOverride()
- Returns:
- true precisely when the reference is an overriding reference
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
- See Also:
Object.hashCode()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
getName
public java.lang.String getName()
Returns name of ref-type
-
-