Class RefType

  • Direct Known Subclasses:
    DataRefType, FlowType

    public abstract class RefType
    extends java.lang.Object
    Class to define reference types.
    • 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.
      • 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 Detail

      • RefType

        protected RefType​(byte type,
                          java.lang.String name)
    • Method Detail

      • 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 java.lang.String getName()
        Returns name of ref-type
        Returns:
        the name
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object