<title>SPARC Architectural Model: Device and Utility API
</title>
<body bgcolor=
"#FFFFFF" LANG=
"en-US">
<h2>SPARC Architectural Model: Device and Utility API
</h2>
<h4>Overview and Examples
</h4>
<a href=
"intro.html">Introduction
</a>
<br><a href=
"SAM-modules.html">SAM device modules
</a>
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.
<li><a href=
"Module.html">Module
</a> base class for all modules
<li><a href=
"PciDev.html">PciDev
</a> base class for PCI devices
<li> <a href=
"PciDevIf.html">PciDevIf
</a> PCI device interface
<li><a href=
"PciBusIf.html">PciBusIf
</a> PCI bus interface
<h4>Module instantiation
</h4>
<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>
<h4>Module connectivity
</h4>
<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>
<li><a href=
"mmi_interrupt.html">mmi_interrupt_packet
</a>
<li><a href=
"mmi_interrupt.html">mmi_interrupt_vector
</a>
<h2> SAM-dependent MMI functions
</h2>
These functions are provided for SAM-specific devices, tracing features etc.
<h4>Callbacks (SAM-dependent)
</h4>
<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>
<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>
<h4>Examine and Modify cpu registers
</h4>
<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>
<h4>Simulator control and status
</h4>
<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>
<li><a href=
"mmi_register_ui_variable.html">mmi_register_ui_variable
</a>