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.ObjectClass to define reference types.
-
-
Field Summary
Fields Modifier and Type Field Description static FlowTypeCALL_OVERRIDE_UNCONDITIONALstatic FlowTypeCALL_TERMINATORstatic FlowTypeCALLOTHER_OVERRIDE_CALLstatic FlowTypeCALLOTHER_OVERRIDE_JUMPstatic FlowTypeCOMPUTED_CALLstatic FlowTypeCOMPUTED_CALL_TERMINATORstatic FlowTypeCOMPUTED_JUMPstatic FlowTypeCONDITIONAL_CALLstatic FlowTypeCONDITIONAL_CALL_TERMINATORstatic FlowTypeCONDITIONAL_COMPUTED_CALLstatic FlowTypeCONDITIONAL_COMPUTED_JUMPstatic FlowTypeCONDITIONAL_JUMPstatic FlowTypeCONDITIONAL_TERMINATORstatic RefTypeDATAReference type assigned when data access is unknown.static RefTypeDATA_INDstatic RefTypeEXTERNAL_REFReference type used internally to identify external entry points.static FlowTypeFALL_THROUGHstatic FlowTypeFLOWstatic FlowTypeINDIRECTIONstatic FlowTypeINVALIDstatic FlowTypeJUMP_OVERRIDE_UNCONDITIONALstatic FlowTypeJUMP_TERMINATORstatic RefTypePARAMReference type assigned when data (constant or pointer) is passed to a functionstatic RefTypeREADReference type assigned when data is being read.static RefTypeREAD_INDReference type assigned when data is being read.static RefTypeREAD_WRITEReference type assigned when data is read and written.static RefTypeREAD_WRITE_INDReference type assigned when data is read and written.static RefTypeSTACK_READDeprecated.useREADinsteadstatic RefTypeSTACK_WRITEDeprecated.useWRITEinsteadstatic FlowTypeTERMINATORstatic RefTypeTHUNKReference type is unknown.static FlowTypeUNCONDITIONAL_CALLstatic FlowTypeUNCONDITIONAL_JUMPstatic RefTypeWRITEReference type assigned when data is being written.static RefTypeWRITE_INDReference type assigned when data is being written.
-
Constructor Summary
Constructors Modifier Constructor Description protectedRefType(byte type, java.lang.String name)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)java.lang.StringgetName()Returns name of ref-typebytegetValue()Get the int value for this RefType object.booleanhasFallthrough()Returns true if this flow type can fall through.inthashCode()booleanisCall()Returns true if the flow is callbooleanisComputed()Returns true if the flow is a computed call or compute jump.booleanisConditional()Returns true if the flow is a conditional call or jump.booleanisData()Returns true if the reference is to databooleanisFallthrough()Return true if this flow type is one that does not cause a break in control flow.booleanisFlow()Returns true if the reference is an instruction flow reference.booleanisIndirect()Returns true if the reference is indirectbooleanisJump()Returns true if the flow is jumpbooleanisOverride()booleanisRead()Returns true if the reference is a read.booleanisTerminal()returns true if this instruction terminates.booleanisUnConditional()Returns true if the flow is an unconditional call or jump.booleanisWrite()Returns true if the reference is a write.java.lang.StringtoString()
-
-
-
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.useREADinsteadReference type assigned for stack variable being read.
-
STACK_WRITE
@Deprecated public static final RefType STACK_WRITE
Deprecated.useWRITEinsteadReference 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:
equalsin classjava.lang.Object- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object- See Also:
Object.hashCode()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
getName
public java.lang.String getName()
Returns name of ref-type
-
-