Class SomSymbol

java.lang.Object
ghidra.app.util.bin.format.som.SomSymbol
All Implemented Interfaces:
StructConverter

public class SomSymbol extends Object implements StructConverter
Represents a SOM symbol_dictionary_record structure
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    The size in bytes of a SomSymbol

    Fields inherited from interface ghidra.app.util.bin.StructConverter

    ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD
  • Constructor Summary

    Constructors
    Constructor
    Description
    SomSymbol(BinaryReader reader, long symbolStringsLocation)
    Creates a new SomSymbol
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the location of the first four words of the parameter list, and the location of the function return value to the linker and loader.
    int
    Returns the check level.
    Returns the symbol name.
    Returns the symbol qualifier name.
    int
    Returns the reserved value.
    int
    Returns the symbol info.
    int
    Returns the symbol scope.
    int
    Returns the symbol type.
    long
    Returns the symbol value.
    int
    Returns the execution level that is required to call this entry point.
    boolean
    Returns whether or not the called entry point will have a long return sequence.
    boolean
    Returns whether or not the called entry point will not require any parameter relocation.
    boolean
    Returns whether or not this symbol identifies as the key symbol for a set of COMDAT subspaces.
    boolean
    Returns whether or not this symbol is an initialized common data block.
    boolean
    Returns whether or not this symbol name may conflict with another symbol of the same name if both are of type data.
    boolean
    Returns whether or not the symbol is to be hidden from the loader for the purpose of resolving external (inter-SOM) references.
    boolean
    Returns whether or not the code importing or exporting this symbol is to be locked in physical memory when the operating system is being booted.
    boolean
    Returns whether or the the code that is importing or exporting this symbol is frozen in memory.
    boolean
    Returns whether or not the symbol is a secondary definition and has an additional name that is preceded by “_”.
    boolean
    Returns whether or not the qualifier name must be used to fully qualify the symbol.
    Returns a structure datatype representing the contents of the implementor of this interface.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • SomSymbol

      public SomSymbol(BinaryReader reader, long symbolStringsLocation) throws IOException
      Creates a new SomSymbol
      Parameters:
      reader - A BinaryReader positioned at the start of the record
      symbolStringsLocation - The starting index of the symbol strings
      Throws:
      IOException - if there was an IO-related error
  • Method Details

    • isHidden

      public boolean isHidden()
      Returns whether or not the symbol is to be hidden from the loader for the purpose of resolving external (inter-SOM) references.
      Returns:
      whether or not the symbol is to be hidden from the loader for the purpose of resolving external (inter-SOM) references
    • isSecondaryDef

      public boolean isSecondaryDef()
      Returns whether or not the symbol is a secondary definition and has an additional name that is preceded by “_”.
      Returns:
      whether or not the symbol is a secondary definition and has an additional name that is preceded by “_”
    • getSymbolType

      public int getSymbolType()
      Returns the symbol type.
      Returns:
      the symbol type
      See Also:
    • getSymbolScope

      public int getSymbolScope()
      Returns the symbol scope.
      Returns:
      the symbol scope
      See Also:
    • getCheckLevel

      public int getCheckLevel()
      Returns the check level.
      Returns:
      the check level
    • mustQualify

      public boolean mustQualify()
      Returns whether or not the qualifier name must be used to fully qualify the symbol.
      Returns:
      whether or not the qualifier name must be used to fully qualify the symbol
    • isInitiallyFrozen

      public boolean isInitiallyFrozen()
      Returns whether or not the code importing or exporting this symbol is to be locked in physical memory when the operating system is being booted.
      Returns:
      whether or not the code importing or exporting this symbol is to be locked in physical memory when the operating system is being booted
    • isMemoryResident

      public boolean isMemoryResident()
      Returns whether or the the code that is importing or exporting this symbol is frozen in memory.
      Returns:
      whether or the the code that is importing or exporting this symbol is frozen in memory
    • isCommon

      public boolean isCommon()
      Returns whether or not this symbol is an initialized common data block.
      Returns:
      whether or not this symbol is an initialized common data block
    • isDupCommon

      public boolean isDupCommon()
      Returns whether or not this symbol name may conflict with another symbol of the same name if both are of type data.
      Returns:
      whether or not this symbol name may conflict with another symbol of the same name if both are of type data
    • getXleast

      public int getXleast()
      Returns the execution level that is required to call this entry point.
      Returns:
      the execution level that is required to call this entry point
    • getArgReloc

      public int getArgReloc()
      Returns the location of the first four words of the parameter list, and the location of the function return value to the linker and loader.
      Returns:
      the location of the first four words of the parameter list, and the location of the function return value to the linker and loader
    • getName

      public String getName()
      Returns the symbol name.
      Returns:
      the symbol name
    • getQualifierName

      public String getQualifierName()
      Returns the symbol qualifier name.
      Returns:
      the symbol qualifier name
    • hasLongReturn

      public boolean hasLongReturn()
      Returns whether or not the called entry point will have a long return sequence.
      Returns:
      whether or not the called entry point will have a long return sequence
    • hasNoRelocation

      public boolean hasNoRelocation()
      Returns whether or not the called entry point will not require any parameter relocation.
      Returns:
      whether or not the called entry point will not require any parameter relocation
    • isComdat

      public boolean isComdat()
      Returns whether or not this symbol identifies as the key symbol for a set of COMDAT subspaces.
      Returns:
      whether or not this symbol identifies as the key symbol for a set of COMDAT subspaces
    • getReserved

      public int getReserved()
      Returns the reserved value.
      Returns:
      the reserved value
    • getSymbolInfo

      public int getSymbolInfo()
      Returns the symbol info.
      Returns:
      the symbol info
    • getSymbolValue

      public long getSymbolValue()
      Returns the symbol value.
      Returns:
      the symbol value
    • toDataType

      public DataType toDataType() throws DuplicateNameException, IOException
      Description copied from interface: StructConverter
      Returns a structure datatype representing the contents of the implementor of this interface.

      For example, given:

       class A {
           int foo;
           double bar;
       }
       

      The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

      Specified by:
      toDataType in interface StructConverter
      Returns:
      returns a structure datatype representing the implementor of this interface
      Throws:
      DuplicateNameException - when a datatype of the same name already exists
      IOException - if an IO-related error occurs
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object