Class RefType

java.lang.Object
ghidra.program.model.symbol.RefType
Direct Known Subclasses:
DataRefType, FlowType

public abstract class RefType extends Object
Class to define reference types.
  • Field Details

    • 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.
    • 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.
  • Constructor Details

    • RefType

      protected RefType(byte type, String name)
  • Method Details

    • getValue

      public byte getValue()
      Get the int value for this RefType object
      Returns:
      the value
    • isData

      public boolean isData()
      Returns true if the reference is to data
      Returns:
      true if the reference is to data
    • isRead

      public boolean isRead()
      Returns true if the reference is a read
      Returns:
      true if the reference is a read
    • isWrite

      public boolean isWrite()
      Returns true if the reference is a write
      Returns:
      true if the reference is a write
    • isIndirect

      public boolean isIndirect()
      Returns true if the reference is indirect
      Returns:
      true if the reference is indirect
    • isFlow

      public boolean isFlow()
      Returns true if the reference is an instruction flow reference
      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
      Returns:
      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
      Returns:
      true if can fall through
    • isCall

      public boolean isCall()
      Returns true if the flow is call
      Returns:
      true if is a call
    • isJump

      public boolean isJump()
      Returns true if the flow is jump
      Returns:
      true if is a jump
    • isUnConditional

      public boolean isUnConditional()
      Returns true if the flow is an unconditional call or jump
      Returns:
      true if unconditional
    • isConditional

      public boolean isConditional()
      Returns true if the flow is a conditional call or jump
      Returns:
      true if is conditional
    • isComputed

      public boolean isComputed()
      Returns true if the flow is a computed call or compute jump
      Returns:
      true if is computed
    • isTerminal

      public boolean isTerminal()
      Returns true if this instruction terminates
      Returns:
      true if terminal
    • isOverride

      public boolean isOverride()
      True if this is an override reference
      Returns:
      true if this is an override reference
    • getName

      public String getName()
      Returns name of ref-type
      Returns:
      the name
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object