Package ghidra.program.model.lang
package ghidra.program.model.lang
-
ClassDescription
AddressLabelInfo
is a utility class for storing anAddress
together with a corresponding language-defined label or alias that is within the global namespace which is established with a SourceType of IMPORTED within a program.BasicCompilerSpec implements the CompilerSpec interface based on static information from a particular .cspec file.Interface for requesting specific information about the compiler used to build a Program being analyzed.Labels for PrototypeModels that are used by default for various analysis/evaluation use-cases, when the true model isn't known.Represents an opinion's compiler (gcc, borlandcpp, etc).Exception class used when the named compiler spec cannot be found.Class for manipulating "deferred" constant systems like the java virtual machine constant poolClass for context configuration information as part of the compiler configuration (CompilerSpec)Interface for objects that can provide new instances of dataTypesSources languages that can be output by the decompilerAnalog to LanguageCompilerSpecQuery, for use with querying External Languages.An IncompatibleMaskException is thrown when operations are attempting involving two masks of different lengths.InjectPayload
encapsulates a semantic (p-code) override which can be injected into analyses that work with p-code (Decompiler, SymbolicPropagator) The payload typically replaces either a subroutine call or a useropA substitute for a callfixup that did not successfully parse.A substitute for a callother fixup that did not fully parseInjectPayloadSleigh
defines an InjectPayload of p-code which is defined via a String passed to the sleigh compilerCspec prototype model input listtypeRepresents a block of instructions.InstructionContext
is utilized by a shared instruction prototype to access all relevant instruction data and context-register storage needed during instruction parse and semantic pcode generation.InstructionPrototype is designed to describe one machine level instruction.A set of instructions organized as a graph of basic blocks.An InsufficientBytesException indicates that there were not enough consecutive bytes available to fully parse an instruction.Class to represent an invalid instruction prototype.Represents an opinion's processor language and compiler.Represents an opinion's processor language (x86:LE:32:default, 8051:BE:16:default, etc).Exception class used when the named language cannot be found.NOTE: ALL LanguageProvider CLASSES MUST END IN "LanguageProvider".Service that provides a Language given a name, and information about the language.The Mask class is used to perform some basic bit tests on an array of bits.Implements the Mask interface as a byte array.Helper class for testing operand related flags in an integer.ParallelInstructionLanguageHelper
provides the ability via a language specified property to identify certain parallel instruction attributes.Basic elements of a parameter: address, data-type, propertiesA group of ParamEntry that form a complete set for passing parameters (in one direction)A list of resources describing possible storage locations for a function's return value, and a strategy for selecting a storage location based on data-types in a function signature.Standard analysis for parameter listsA list of resources describing possible storage locations for a function's return value, and a strategy for selecting a storage location based on data-types in a function signature.ParserContext
represents a language provider specific parser context which may be cached.This class is intended to parse p-code snippets, typically from compiler specification files or extensions.This class wraps on existing SleighLanguage with the SleighBase interface expected by PcodeCompile.Defines the interface for an object containing the state of all processor registers relative to a specific address.An implementation of processor context which contains the state of all processor registers.Defines the interface for an object containing the state of all processor registers relative to a specific address.ProgramArchitecture
which identifies program architecture details required to utilize language/compiler-specific memory and variable storage specifications.Implementation for the program processor context interfaceA function calling convention model.A PrototypeModel cloned from another, but marked as an error placeholderThis model serves as a placeholder for multiple model Currently all the models being selected between must share the same output modelRaw components of a function prototype (obtained from parsing source code)Class to represent a processor register.The RegisterTree class builds and represents relationships between registers.Class for representing register values that keep track of which bits are actually set.Class for holding Language identifiersReserved AddressSpace names across architectures and associated attributesData-type class for the purpose of assigning storageAn UndefinedValueException is thrown when a value for a register is looked up that is undefined.An UnknownContextException indicates a processor state context must be known before the bytes at the parse address can form a legal known instruction.An UnknownDataException indicates that the bytes at the parse address did not form a legal known data item.An UnknownInstructionException indicates that the bytes at the parse address did not form a legal known instruction.UnknownRegister
is used when a register is requested in the register space for an undefined location.Service that provides a Language given a name, and information about the language.