decompiler  1.0.0
Public Member Functions | Private Attributes | List of all members
InjectedUserOp Class Reference

A user defined operation that is injected with other p-code. More...

#include <userop.hh>

Inheritance diagram for InjectedUserOp:
UserPcodeOp

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.
 
Architectureglb
 Architecture owning the user defined op.
 

Detailed Description

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.

Member Function Documentation

◆ restoreXml()

void InjectedUserOp::restoreXml ( const Element el)
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.

Parameters
elis 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().


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