|
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 | restoreXml (const Element *el) |
| Restore the detailed description from an XML stream. More... | |
Public Member Functions inherited from 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. | |
| virtual | ~UserPcodeOp (void) |
| Destructor. | |
| virtual string | getOperatorName (const PcodeOp *op) const |
| Get the symbol representing this operation in decompiled code. More... | |
Private Attributes | |
| uint4 | injectid |
| The id of the injection object (to which this op maps) | |
Additional Inherited Members | |
Protected Attributes inherited from 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. | |
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 an XML stream.
The details of how a user defined operation behaves can be dynamically configured from an XML tag.
| el | is the root XML element describing the op |
Implements UserPcodeOp.
References InjectPayload::CALLOTHERFIXUP_TYPE, PcodeInjectLibrary::getCallOtherTarget(), UserPcodeOp::getIndex(), UserOpManage::getOp(), UserPcodeOp::glb, injectid, UserPcodeOp::name, Architecture::pcodeinjectlib, PcodeInjectLibrary::restoreXmlInject(), UserPcodeOp::useropindex, and Architecture::userops.
Referenced by UserOpManage::parseCallOtherFixup().
1.8.15