decompiler  1.0.0
Public Member Functions | Public Attributes | List of all members
ghidra::InjectContext Class Referenceabstract

Context needed to emit a p-code injection as a full set of p-code operations. More...

#include <pcodeinject.hh>

Inheritance diagram for ghidra::InjectContext:
ghidra::InjectContextGhidra

Public Member Functions

virtual ~InjectContext (void)
 Destructor.
 
virtual void clear (void)
 Release resources (from last injection)
 
virtual void encode (Encoder &encoder) const =0
 Encode this context to a stream as a <context> element. More...
 

Public Attributes

Architectureglb
 Architecture associated with the injection.
 
Address baseaddr
 Address of instruction causing inject.
 
Address nextaddr
 Address of following instruction.
 
Address calladdr
 If the instruction being injected is a call, this is the address being called.
 
vector< VarnodeDatainputlist
 Storage location for input parameters.
 
vector< VarnodeDataoutput
 Storage location for output.
 

Detailed Description

Context needed to emit a p-code injection as a full set of p-code operations.

P-code injection works by passing a pre-built template of p-code operations (ConstructTpl) to an emitter (PcodeEmit), which makes the final resolution SLEIGH concepts like inst_next to concrete Varnodes. This class contains the context dependent data to resolve:

Member Function Documentation

◆ encode()

virtual void ghidra::InjectContext::encode ( Encoder encoder) const
pure virtual

Encode this context to a stream as a <context> element.

Parameters
encoderis the stream encoder

Implemented in ghidra::InjectContextGhidra.

Referenced by ghidra::ArchitectureGhidra::getPcodeInject().


The documentation for this class was generated from the following file: