decompiler
1.0.0
|
A user defined operation that is injected with other p-code. More...
#include <userop.hh>
Public Member Functions | |
InjectedUserOp (Architecture *g, const string &nm, int4 ind, int4 injid) | |
Constructor. | |
uint4 | getInjectId (void) const |
Get the id of the injection object. | |
virtual void | decode (Decoder &decoder) |
Restore the detailed description from a stream element. More... | |
Public Member Functions inherited from ghidra::UserPcodeOp | |
UserPcodeOp (Architecture *g, const string &nm, int4 ind) | |
Construct from name and index. | |
const string & | getName (void) const |
Get the low-level name of the p-code op. | |
int4 | getIndex (void) const |
Get the constant id of the op. | |
uint4 | getDisplay (void) const |
Get display type (0=functional) | |
virtual | ~UserPcodeOp (void) |
Destructor. | |
virtual string | getOperatorName (const PcodeOp *op) const |
Get the symbol representing this operation in decompiled code. More... | |
virtual int4 | extractAnnotationSize (const Varnode *vn, const PcodeOp *op) |
Assign a size to an annotation input to this userop. More... | |
Private Attributes | |
uint4 | injectid |
The id of the injection object (to which this op maps) | |
Additional Inherited Members | |
Public Types inherited from ghidra::UserPcodeOp | |
enum | userop_flags { annotation_assignment = 1, no_operator = 2 } |
Enumeration of different boolean properties that can be assigned to a CALLOTHER. More... | |
Protected Attributes inherited from ghidra::UserPcodeOp | |
string | name |
Low-level name of p-code operator. | |
int4 | useropindex |
Index passed in the CALLOTHER op. | |
Architecture * | glb |
Architecture owning the user defined op. | |
uint4 | flags |
Boolean attributes of the CALLOTHER. | |
A user defined operation that is injected with other p-code.
The system can configure user defined p-code ops as a hook point within the control-flow where other p-code is injected during analysis. This class maps the raw CALLOTHER p-code op, via its constant id, to its injection object. The injection object is also referenced by an id and is managed by PcodeInjectLibrary.
|
virtual |
Restore the detailed description from a stream element.
The details of how a user defined operation behaves are parsed from the element.
decoder | is the stream decoder |
Implements ghidra::UserPcodeOp.
References ghidra::InjectPayload::CALLOTHERFIXUP_TYPE, ghidra::PcodeInjectLibrary::decodeInject(), ghidra::PcodeInjectLibrary::getCallOtherTarget(), ghidra::UserPcodeOp::getIndex(), ghidra::UserOpManage::getOp(), ghidra::UserPcodeOp::glb, ghidra::UserPcodeOp::name, ghidra::Architecture::pcodeinjectlib, ghidra::UserPcodeOp::useropindex, and ghidra::Architecture::userops.
Referenced by ghidra::UserOpManage::decodeCallOtherFixup().