<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: emulate.hh File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a>  </div>
  <div class="headertitle">
<div class="title">emulate.hh File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Classes for emulating p-code.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="memstate_8hh_source.html">memstate.hh</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="translate_8hh_source.html">translate.hh</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for emulate.hh:</div>
<div class="dyncontent">
<div class="center"><img src="emulate_8hh__incl.png" border="0" usemap="#emulate_8hh" alt=""/></div>
<map name="emulate_8hh" id="emulate_8hh">
<area shape="rect" id="node2" href="memstate_8hh.html" title="Classes for keeping track of memory state during emulation. " alt="" coords="497,80,596,107"/>
<area shape="rect" id="node23" href="translate_8hh.html" title="Classes for disassembly and pcode generation. " alt="" coords="620,80,711,107"/>
<area shape="rect" id="node3" href="pcoderaw_8hh.html" title="Raw descriptions of varnodes and p&#45;code ops. " alt="" coords="575,155,671,181"/>
<area shape="rect" id="node22" href="loadimage_8hh.html" title="Classes and API for accessing a binary load image. " alt="" coords="452,155,551,181"/>
<area shape="rect" id="node4" href="address_8hh.html" title="Classes for specifying addresses and other low&#45;level constants. " alt="" coords="465,229,551,256"/>
<area shape="rect" id="node20" href="opbehavior_8hh.html" title="Classes for describing the behavior of individual p&#45;code operations. " alt="" coords="570,304,673,331"/>
<area shape="rect" id="node5" href="space_8hh.html" title="Classes for describing address spaces. " alt="" coords="471,304,545,331"/>
<area shape="rect" id="node6" href="error_8hh.html" title="Base class for error handling facilities. " alt="" coords="475,379,541,405"/>
<area shape="rect" id="node18" href="xml_8hh.html" title="Lightweight (and incomplete) XML parser for marshaling data to and from the decompiler. " alt="" coords="668,379,729,405"/>
<area shape="rect" id="node7" href="types_8h_source.html" title="types.h" alt="" coords="742,453,807,480"/>
<area shape="rect" id="node21" href="opcodes_8hh.html" title="All the individual p&#45;code operations. " alt="" coords="835,379,925,405"/>
<area shape="rect" id="node24" href="float_8hh.html" title="Support for decoding different floating&#45;point formats. " alt="" coords="677,229,742,256"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="emulate_8hh__dep__incl.png" border="0" usemap="#emulate_8hhdep" alt=""/></div>
<map name="emulate_8hhdep" id="emulate_8hhdep">
<area shape="rect" id="node2" href="emulateutil_8hh.html" title="(Lightweight) emulation interface for executing PcodeOp objects within a syntax tree or for executing..." alt="" coords="816,80,919,107"/>
<area shape="rect" id="node3" href="jumptable_8hh.html" title="Classes to support jump&#45;tables and their recovery. " alt="" coords="777,155,873,181"/>
<area shape="rect" id="node38" href="pcodeinject_8hh.html" title="Classes for managing p&#45;code injection. " alt="" coords="2006,304,2113,331"/>
<area shape="rect" id="node4" href="block_8hh.html" title="Classes related to basic blocks and control&#45;flow structuring. " alt="" coords="517,229,588,256"/>
<area shape="rect" id="node5" href="action_8hh.html" title="Action, Rule, and other associates classes supporting transformations on function data&#45;flow..." alt="" coords="335,304,410,331"/>
<area shape="rect" id="node37" href="heritage_8hh.html" title="Utilities for building Static Single Assignment (SSA) form. " alt="" coords="509,304,596,331"/>
<area shape="rect" id="node6" href="architecture_8hh.html" title="Architecture and associated classes that help manage a single processor architecture and load image..." alt="" coords="1447,379,1555,405"/>
<area shape="rect" id="node35" href="ruleaction_8hh.html" title="This is the basic set of transformation Rule objects. " alt="" coords="121,453,217,480"/>
<area shape="rect" id="node36" href="blockaction_8hh.html" title="Actions and classes associated with transforming and structuring the control&#45;flow graph..." alt="" coords="42,379,149,405"/>
<area shape="rect" id="node7" href="funcdata_8hh.html" title="Utilities for processing data structures associated with a single function. " alt="" coords="507,453,598,480"/>
<area shape="rect" id="node12" href="libdecomp_8hh_source.html" title="libdecomp.hh" alt="" coords="1158,677,1257,704"/>
<area shape="rect" id="node22" href="sleigh__arch_8hh.html" title="Architecture objects that use a Translate object derived from Sleigh. " alt="" coords="1154,453,1261,480"/>
<area shape="rect" id="node26" href="ghidra__arch_8hh.html" title="Ghidra specific architecture information and connection to a Ghidra client. " alt="" coords="1819,453,1926,480"/>
<area shape="rect" id="node8" href="coreaction_8hh.html" title="Core decompilation actions which are indepedent of any particular architecture. " alt="" coords="5,528,105,555"/>
<area shape="rect" id="node9" href="graph_8hh_source.html" title="graph.hh" alt="" coords="637,528,709,555"/>
<area shape="rect" id="node13" href="grammar_8hh_source.html" title="grammar.hh" alt="" coords="733,528,823,555"/>
<area shape="rect" id="node15" href="paramid_8hh_source.html" title="paramid.hh" alt="" coords="848,528,935,555"/>
<area shape="rect" id="node16" href="condexe_8hh.html" title="Classes for simplifying control&#45;flow with shared conditional expressions. " alt="" coords="232,528,321,555"/>
<area shape="rect" id="node17" href="double_8hh_source.html" title="double.hh" alt="" coords="129,528,208,555"/>
<area shape="rect" id="node18" href="subflow_8hh.html" title="Classes for reducing/splitting Varnodes containing smaller logical values. " alt="" coords="346,528,431,555"/>
<area shape="rect" id="node19" href="flow_8hh.html" title="Utilities for following control&#45;flow in p&#45;code generated from machine instructions. " alt="" coords="455,528,519,555"/>
<area shape="rect" id="node20" href="unify_8hh_source.html" title="unify.hh" alt="" coords="544,528,612,555"/>
<area shape="rect" id="node10" href="ifacedecomp_8hh_source.html" title="ifacedecomp.hh" alt="" coords="778,603,893,629"/>
<area shape="rect" id="node11" href="codedata_8hh_source.html" title="codedata.hh" alt="" coords="789,677,882,704"/>
<area shape="rect" id="node14" href="ghidra__process_8hh.html" title="The formal commands that can be issued to the decompiler by the Ghidra client. " alt="" coords="1438,603,1566,629"/>
<area shape="rect" id="node21" href="rulecompile_8hh_source.html" title="rulecompile.hh" alt="" coords="525,603,631,629"/>
<area shape="rect" id="node23" href="bfd__arch_8hh.html" title="Specific implementation of Architecture using GNU BFD libraries. " alt="" coords="1245,528,1335,555"/>
<area shape="rect" id="node24" href="raw__arch_8hh.html" title="Bare bones capability for treating a file as a raw executable image. " alt="" coords="959,528,1053,555"/>
<area shape="rect" id="node25" href="xml__arch_8hh.html" title="Extension to read executables based on an XML format. " alt="" coords="1077,528,1170,555"/>
<area shape="rect" id="node27" href="comment__ghidra_8hh.html" title="Obtain comments by talking to a Ghidra client. " alt="" coords="1882,528,2018,555"/>
<area shape="rect" id="node28" href="cpool__ghidra_8hh.html" title="Utility for implementing a constant pool backed by a Ghidra client. " alt="" coords="2043,528,2156,555"/>
<area shape="rect" id="node29" href="database__ghidra_8hh.html" title="Facilities for retrieving symbol information from a Ghidra client. " alt="" coords="2180,528,2315,555"/>
<area shape="rect" id="node30" href="ghidra__context_8hh.html" title="Obtaining context information from a Ghidra client. " alt="" coords="2339,528,2465,555"/>
<area shape="rect" id="node31" href="loadimage__ghidra_8hh.html" title="Use the Ghidra client as a load image. " alt="" coords="1359,528,1501,555"/>
<area shape="rect" id="node32" href="ghidra__translate_8hh.html" title="Class for fetching p&#45;code from a Ghidra client. " alt="" coords="1525,528,1657,555"/>
<area shape="rect" id="node33" href="typegrp__ghidra_8hh.html" title="Interface for requesting data&#45;type information from a Ghidra client. " alt="" coords="1733,528,1858,555"/>
<area shape="rect" id="node34" href="inject__ghidra_8hh.html" title="P&#45;code injection classes using a Ghidra client as the back&#45;end for generating p&#45;code. " alt="" coords="2489,528,2603,555"/>
<area shape="rect" id="node39" href="inject__sleigh_8hh_source.html" title="inject_sleigh.hh" alt="" coords="2655,379,2767,405"/>
</map>
</div>
</div>
<p><a href="emulate_8hh_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBreakTable.html">BreakTable</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A collection of breakpoints for the emulator.  <a href="classBreakTable.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBreakCallBack.html">BreakCallBack</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A breakpoint object.  <a href="classBreakCallBack.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBreakTableCallBack.html">BreakTableCallBack</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A basic instantiation of a breakpoint table.  <a href="classBreakTableCallBack.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEmulate.html">Emulate</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pcode-based emulator interface.  <a href="classEmulate.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEmulateMemory.html">EmulateMemory</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract <a class="el" href="classEmulate.html" title="A pcode-based emulator interface. ">Emulate</a> class using a <a class="el" href="classMemoryState.html" title="All storage/state for a pcode machine. ">MemoryState</a> object as the backing machine state.  <a href="classEmulateMemory.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPcodeEmitCache.html">PcodeEmitCache</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">P-code emitter that dumps its raw Varnodes and PcodeOps to an in memory cache.  <a href="classPcodeEmitCache.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEmulatePcodeCache.html">EmulatePcodeCache</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A SLEIGH based implementation of the <a class="el" href="classEmulate.html" title="A pcode-based emulator interface. ">Emulate</a> interface.  <a href="classEmulatePcodeCache.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Classes for emulating p-code. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>