Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / docs / mmi / sam-mmi.html
<html>
<head>
<title>SPARC Architectural Model: Device and Utility API</title>
</head>
<body bgcolor="#FFFFFF" LANG="en-US">
&nbsp;
<h2>SPARC Architectural Model: Device and Utility API</h2>
<h4>Overview and Examples</h4>
<ul>
<a href="intro.html">Introduction</a>
<br><a href="SAM-modules.html">SAM device modules</a>
</ul>
<h4>Common Classes</h4>
SAM devices have been implemented using a common Module base class. This is not part of MMI, but uses MMI to provide a C++ class interface with several features common to all classes.
<ul>
<li><a href="Module.html">Module</a> &nbsp;&nbsp; base class for all modules
<li><a href="PciDev.html">PciDev</a>&nbsp;&nbsp; base class for PCI devices
<li> <a href="PciDevIf.html">PciDevIf</a>&nbsp;&nbsp; PCI device interface
<li><a href="PciBusIf.html">PciBusIf</a>&nbsp;&nbsp; PCI bus interface
</ul>
<h4>Module instantiation</h4>
<ul>
<li><a href="mmi_register_instance_creator.html">mmi_register_instance_creator</a>
<li><a href="mmi_register_instance.html">mmi_register_instance</a>
<li><a href="mmi_get_instance.html">mmi_get_instance</a>
</ul>
<h4>Module connectivity</h4>
<ul>
<li><a href="mmi_map_physio.html">mmi_map_physio</a>
<li><a href="mmi_register_config_cb.html">mmi_register_config_cb</a>
<li><a href="mmi_register_interface_cb.html">mmi_register_interface_cb</a>
<li><a href="mmi_get_interface.html">mmi_get_interface</a>
<li><a href="mmi_register_modinfo_cb.html">mmi_register_modinfo_cb</a>
</ul>
<h4>Interrupts</h4>
<ul>
<li><a href="mmi_interrupt.html">mmi_interrupt_packet</a>
<li><a href="mmi_interrupt.html">mmi_interrupt_vector</a>
</ul>
<h2> SAM-dependent MMI functions </h2>
These functions are provided for SAM-specific devices, tracing features etc.
<h4>Callbacks (SAM-dependent)</h4>
<ul>
<li><a href="mmi_register_cb_data.html">mmi_register_cb_data</a>
<li><a href="mmi_get_cb_data.html">mmi_get_cb_data</a>
<li><a href="mmi_register_cb_cycle.html">mmi_register_cb_cycle</a>
<li><a href="mmi_register_cb_cycle.html">mmi_unregister_cb_cycle</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_instr</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_memop</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_trap</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_trapexit</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_tlb</a>
<li><a href="mmi_register_cb_instr.html">mmi_register_cb_cpustate</a>
<li><a href="mmi_register_cb_dma.html">mmi_register_cb_dma</a>
<li><a href="mmi_set_cb_mask.html">mmi_set_cb_mask</a>
<li><a href="mmi_register_io_action.html">mmi_register_io_action</a>
<li><a href="mmi_register_asi_action.html">mmi_register_asi_action</a>
</ul>
<h4>Memory access</h4>
<ul>
<li><a href="mmi_get_memobj.html">mmi_get_memobj</a>
<li><a href="mmi_iommu_va2pa.html">mmi_iommu_va2pa</a>
<li><a href="mmi_memread.html">mmi_memread8s</a>
<li><a href="mmi_memread.html">mmi_memread8u</a>
<li><a href="mmi_memread.html">mmi_memread16s</a>
<li><a href="mmi_memread.html">mmi_memread16u</a>
<li><a href="mmi_memread.html">mmi_memread32s</a>
<li><a href="mmi_memread.html">mmi_memread32u</a>
<li><a href="mmi_memread.html">mmi_memread64s</a>
<li><a href="mmi_memread.html">mmi_memread64u</a>
<li><a href="mmi_memread_blk.html">mmi_memread_blk</a>
<li><a href="mmi_memwrite.html">mmi_memwrite8</a>
<li><a href="mmi_memwrite.html">mmi_memwrite16</a>
<li><a href="mmi_memwrite.html">mmi_memwrite32</a>
<li><a href="mmi_memwrite.html">mmi_memwrite64</a>
<li><a href="mmi_memwrite_blk.html">mmi_memwrite_blk</a>
<li><a href="mmi_mem_atomics.html">mmi_mem_casx</a>
</ul>
<h4>Examine and Modify cpu registers</h4>
<ul>
<li><a href="mmi_get_cpu_ireg.html">mmi_get_cpu_ireg</a>
<li><a href="mmi_get_cpu_ireg.html">mmi_get_cpu_freg</a>
<li><a href="mmi_get_cpu_ireg.html">mmi_get_cpu_ctlreg</a>
<li><a href="mmi_get_cpu_ireg.html">mmi_get_cpu_tlreg</a>
<li><a href="mmi_set_cpu_ireg.html">mmi_set_cpu_ireg</a>
<li><a href="mmi_set_cpu_ireg.html">mmi_set_cpu_freg</a>
<li><a href="mmi_set_cpu_ireg.html">mmi_set_cpu_ctlreg</a>
<li><a href="mmi_set_cpu_ireg.html">mmi_set_cpu_tlreg</a>
</ul>
<h4>Simulator control and status</h4>
<ul>
<li><a href="mmi_get_ncpu.html">mmi_get_ncpu</a>
<li><a href="mmi_get_ncpu.html">mmi_get_cpuid</a>
<li><a href="mmi_get_ncpu.html">mmi_get_cpuptr</a>
<li><a href="mmi_get_cpufreq.html">mmi_get_cpufreq</a>
<li><a href="mmi_get_comment_string.html">mmi_get_comment_string</a>
<li><a href="mmi_delay_execution.html">mmi_delay_execution</a>
<li><a href="mmi_complete_delayed_load.html">mmi_complete_delayed_load</a>
<li><a href="mmi_run.html">mmi_stop</a>
<li><a href="mmi_run.html">mmi_run</a>
<li><a href="mmi_run.html">mmi_is_stopped</a>
<li><a href="mmi_run.html">mmi_run single_thread</a>
<li><a href="mmi_perror.html">mmi_perror</a>
</ul>
<h4>User Interface</i>
<ul>
<li><a href="mmi_register_ui_variable.html">mmi_register_ui_variable</a>
</ul>
</body>
</html>