Crate simics_api_sys
source ·Expand description
§SIMICS API SYS
Low level bindings to the SIMICS API
This crate provides raw bindings to the SIMICS api built directly from the header files of the
SIMICS base package using bindgen
. In general, you should prefer to use the simics-api
crate over this one, as it provides higher level safe bindings to the SIMICS API.
Modules§
- bindings 🔒Raw bindings to the SIMICS API
Structs§
- The ma_values pointer is NULL for a combined table or points to an array of PyObject* for a split table
- End buffer interface
- The tag name of this struct is _IO_FILE to preserve historic C++ mangled names for functions taking FILE* arguments. That name should not be used in new code.
- Nothing is actually declared to be a PyObject, but every pointer to a Python object can be cast to a PyObject*. This is inheritance built by hand. Similarly every pointer to a variable-size Python object can, in addition, be cast to PyVarObject*.
- Forward declarations for PyThreadState
- If this structure is modified, Doc/includes/typestruct.h should be updated as well.
- All combinations are allowed (logical or)
access_t This arm_gic interface is used accessing registers in a device implementing the Generic Interrupt Controller architecture..arm_memory_transaction_t arm_memory_transaction_t arm_memory_transaction_t atom_t atom_t - buffer interface
- obsolete type; please use either buffer_t or bytes_t instead
- Opaque struct - do not access members directly!
- ADD INTERFACE x86_interface
- ADD INTERFACE x86_cpuid_interface
- craff error state - can be shared between multiple file objects
- Craff file creation parameters; see vin0010 for a more thorough description of these.
decoder_t description_t direct_memory_t direct_memory_t direct_memory_tags_t - This is a name for the 48 bit ethernet address available on many systems.
- converter functions from/to a struct field type
gbp_header_t gbp_header_t gbp_header_t generic_transaction_t generic_transaction_t - VGA text mode data. Stored in this file since we have the VGA device pointer here.
- Back-pointer to interface.
instruction_info_t - NULL if no intervals here
link_message_t link_message_t typedef struct link_message link_message_t; Generic part of a link message. This structure should always be the first member of the link message data structure, so that the link library can access the generic part with a simple cast. The datagram_link example defines its link message in the following way:link_type_t, SIMLINK_init_message link_type_t link_type_t Functions to be defined by the specific link implementation. map_info_t swap_mode_t map_info_t map_info_t, swap_mode_t map_type_t The map_info_t structure members have the following meaning: - base: The base address of the device mapping in the memory space.
- start: The address inside the device memory space where the mapping starts.
- length: The length of the mapped memory, in bytes.
- function: Used to map the same object several times with different functionality. Corresponds to the function argument used when mapping devices into a memory space.
- If the map target does not support large accesses, then align_size can be set to the maximum allowed size. Accesses spanning align boundaries will be split into several smaller transactions. The align size must be a power of two, or zero (which means "use the default value": 8 for devices and 8192 for memory).
- Mappings with an align size of 2, 4, or 8 may set the reverse_endian field to a non zero value. This can be used to model bridges that perform byte swapping on a specific bus width.
map_list_t map_type_t map_list_t map_list_t, map_type_t map_type_t map_info_t This data structure is used to pass information about the set of mappings a particular address in an address space contains. - Describes a named value. / /
named_value_t pcie_link_negotiation_t pcie_link_negotiation_t This type is used to send desired (maximum) link attributes to a peer who then sets the negotiated link speed and width based on the supported values of both peers. - py_opaque_type_t is used to wrap C structures whose contents cannot be accessed by Python without getter/setter functions
- struct to hold data about each type of generated trampolines (one per signature)
- Attribute format: type bit 0..3 s bit 4 dpl bit 5..6 p bit 7 avl bit 12 l bit 13 db bit 14 g bit 15 invalid bit 16
- Please do not access the members of this struct directly
- Structure describing a generic socket address.
- Please do not access the members of this struct directly; use the accessor functions defined in this file. Invariants:
- struct member information
The x86 tlb interface is used for communication between an x86 cpu and its TLB. The TLB is implemented as a separate class for greater flexibility. The TLB object does no memory operations itself. - POSIX.1b structure for a time value. This is like a `struct timeval’ but has nanoseconds instead of microseconds.
- ISO C `broken-down time’ structure.
transaction_t transaction_t An array of unsigned 32-bit integers. - UUID of the Microsoft kind. The byte-order of the on-disk format is different from the standard representation.
- Main structure for sending console updates to the Winsome GUI. This is converted to a Python tuple with data corresponding to the different parts of the union. Data buffers such as screen and attribute data are converted to Python strings.
- Data for a message containing text console screen update and cursor movement. This corresponds to calls to set_contents and set_cursor_pos in text_console_frontend, accumulated in the obvious way: take the bounding box of the updated rectangles and the last cursor position.
- Data for a message containing text console append and cursor movement. This corresponds to calls to append_text and set_cursor_pos in text_console_frontend, accumulated in the obvious way: append the text lines and take the last cursor position.
- Data for a message containing text console screen refresh. This corresponds to calls to refresh_screen in text_console_frontend.
- Data for a message containing text console screen resize. This corresponds to calls to set_size in text_console_frontend.
- Data for a message containing graphics console updates. This corresponds to calls to set_contents in gfx_console_frontend, accumulated in the obvious way: take the bounding box of the updated rectangles.
- x86_seg_reg_t describes a segment register and its hidden fields. If valid is false, the segment is unusable and attempts to use it will trigger a fault in non-64-bit mode. The meaning of each bit in attr is as follows: type bit 0..3 S bit 4 DPL bit 5..6 P bit 7 L bit 13 D/B bit 14 G bit 15
- ADD INTERFACE x86_tlb_interface
Enums§
- Result of calling PyIter_Send
- Bits in memory transaction types
addr_space_t atom_id_t atom_id_t block_flag_t block_flag_t block_flag_t This enum are flags for blocking various internal caches (internal). breakpoint_kind_t - This enum must be kept in sync with the array simicsToSwt in SimicsKeyTranslator.java, otherwise the Eclipse Console view will break.
connector_interface_t Used to select the access scope for instrumentation of memory accesses. CPU_Access_Scope_Explicit selects explicit accesses used by an instruction such as loading or storing a value. CPU_Access_Scope_Implicit selects implicit accesses such as table walks and exceptions handling. See the cpu_instrumentation_subscribe for more information.- ADD INTERFACE cpu_instrumentation_subscribe
description_type_t endianness_t endianness_t endianness_t Specifies the endianness to use for certain memory operations. When Sim_Endian_Target is used, the data from memory is copied without any endian conversion.Sim_Endian_Host_From_BE andSim_Endian_Host_From_LE copies data between a big-endian, or little-endian, memory and a host buffer.- Eth_Frame_CRC_Match means that the frame contents are correct. The CRC field in the frame should not be relied upon as its computation may have been skipped for optimization, and it may contain any value, including zero, a random value or a correctly computed CRC.
- only used to index the event_desc attribute in processors
- TODO: these constants should likely migrate to simics/simulator/callbacks.h.
gfx_con_pixel_fmt_t gfx_con_pixel_fmt_t - Keyboard LED status bitmask.
- Identifiers for graphics console mouse input.
global_notifier_type_t global_notifier_type_t global_notifier_type_t - used in register_info() interface function / /
ireg_info_t mem_op_type_t mem_op_type_t mem_op_type_t This enum is used to identify the type of a memory operation. The function SIM_get_mem_op_type() returns the type of ageneric_transaction_t , andSIM_set_mem_op_type() is used to set it.SIM_get_mem_op_type ,SIM_set_mem_op_type ,SIM_get_mem_op_type_name generic_transaction_t ,- Note that notifier types can be added either by modifying this enum or by using SIM_notifier_type. The latter is typically preferred since it does not change the Simics API.
osa_machine_notification_interface_t osa_machine_notification_interface_t States the type of memory accesses related to page crossings. pcie_link_speed_t pcie_link_speed_t This type is used to indicate PCIe link speeds. pcie_link_width_t pcie_link_width_t This type is used to indicate PCIe link widths. ppc_mc_exc_t processor_mode_t processor_mode_t The processor_mode_t data type is used to specify if a CPU is running in user mode or in a privileged mode (often called supervisor mode). For processor architectures with several privilege levels, the non-user levels are all identified asSim_CPU_Mode_Supervisor .ram_operation_flags_t read_or_write_t read_or_write_t read_or_write_t Whether a memory access is a read (from memory) or a write (to memory). reg_bitorder_t reg_role_t riscv_imsic_file_id_t riscv_imsic_file_id_t riscv_imsic_file_id_t - ADD INTERFACE riscv_signal_sgeip_interface
- Sent as flags to breakpoint_type_provider.add_bp, for providers that need to know from which command the breakpoint comes.
- Build ID for initial major versions. Available in DML and Python.
- not actually used - kept for source compatibility
Currently Simics internal. - Text console colours. https://www.wikipedia.org/wiki/ANSI_escape_code#8-bit
- Text console keys sent from the GUI to the console.
- Text console input key modifiers.
- Text console character attributes. Inverse video is represented by swapping the foreground and background colours, so there is no bit for it here.
transaction_flags_t transaction_flags_t translation_flags_t translation_t translation_t usb_transfer_t usb_transfer_t virtual_breakpoint_flags_t - ADD INTERFACE x86_vmp_control_interface
This enum is used to distinguish VMX modes. It is used by the vmx_mode_switch_cb_t .- Possible update messages that can be sent to Winsome in a winsome_update_t.
See online help for expanded output of this type: api-help x86_access_type_t See online help for expanded output of this type: api-help x86_access_type_t See online help for expanded output of this type: api-help x86_access_type_t Defines different exception sources for a given exception/interrupt. x86_register_id_t - ADD INTERFACE smm_instrumentation_subscribe
- ADD INTERFACE vmp_interface
Constants§
Functions§
- Interface for threads.
- return 1 if the class has an attribute with name attr
- Transaction completion.
- Delete object.
- Return vector with all objects.
- Get attribute from object.
- Get attribute attribute.
- Get registered class (returns NULL if class not found).
- Get attribute from class.
- Get interface from object (returns NULL if interface not implemented by object).
- Get object (returns NULL if object not found).
- Transaction Checkpointing.
- This declaration fits better into <simics/base/memory.h>. We had to put it here since our headers intermix type definitions and func declarations.
- Transaction Issue.
- The documentation for these EXPORTED methods are in mop.c and in the API RM
- Register new class. Returns NULL on failure.
- Return error code on failure (0 == ok).
- Producer API
- Register a typed attribute (with an optionally typed index).
- Set attribute in object. Returns error code on failure (0 == ok).
- Set attribute in class. Returns error code on failure (0 == ok).
- Transaction data transfer.
- Accessors.
- JDOCU INSERT-UNTIL x86_memory_transaction_t
- Make sure that Simics is not running when this function is called, and take the necessary steps depending on the situation
- attr_value_t accessors and constructors
- aliases kept for binary compatibility; to be removed in the next version
- The following functions are internal and will probably be replaced by a “cmd_line” interface.
- Dump the named snapshot as a big attr_value_t
- Return vector with objects implementing all the ifaces
- obsolete, for ABI compatibility with simics < 6.0.161
- obsolete, for ABI compatibility with simics < 6.0.162
- VT_in_time_order() is used to handle events (e.g. breakpoint haps) in strict time order. This is particularly useful when simics reverses since there is absolutely no guarantee that haps are invoked in reverse time order.
- will return 1 while getting persistent attributes only
- Return true if VT_assert_outside_execution_context() would warn or assert in the current situation. This function is meant to be used before calling VT_assert_outside_execution_context() to print specific warnings before asserting.
- Atom handling.
- obsolete, for ABI compatibility with simics < 6.0.162
- obsolete, for ABI compatibility with simics < 6.0.161
- obsolete, for ABI compatibility with simics < 6.0.162
- prevent reversal past this point in time
- used to prevent reverse execution from touching certain classes/attributes
- How much data is used by the snapshot system to store attributes and pages
- Used to prevent snapshots from touching certain classes/attributes
- Used to prevent snapshots from trying to restore certain classes and attributes. This is only to work-around broken classes.
- ADD INTERFACE virtual_instruction_breakpoint
- ADD INTERFACE concurrency_group_interface_t
- Abort execution and generate a core-dump.
- Allocate NMEMB elements of SIZE bytes each, all initialized to 0.
- Add uninitialized memory
- Add static data. This will make the buffer reference the data pointed to directly, without making a copy.
- Add a repeating byte value
- Make a full copy of another buffer
- Copy from one buffer to another.
- Release a buffer. The buffer should not be freed in any other way.
- Get the length
- The pointer returned by dbuffer_read() may point to memory shared with other buffers, and should not be written to.
- Make the buffer smaller
- A buffer returned by dbuffer_replace() is not used by any other dbuffer_t and may contain junk. This function should only be used when the whole buffer section will be overwritten with new data.
- Split a buffer in two. The data after ‘offset’ is left in the old dbuffer, and the data before ‘offset’ is returned in a newly allocated dbuffer.
- A buffer returned by dbuffer_update() is not used by any other dbuffer_t and can be freely read from or written to.
- Write formatted output to STREAM.
extract the contents of a frags_t return a copy of the contents of a frags_t extract a slice of a frags_t return a partial copy of the contents of a frags_t - free⚠Free a block allocated by
malloc',
realloc’ or `calloc’. - If init_local is defined, always declare it exported. FIXME: This doesn’t really belong here - but where? It must be in a file that is included everywhere init_local is defined.
- log2⚠
- Allocate SIZE bytes of memory.
- Copy N bytes of SRC to DEST.
- Copy N bytes of SRC to DEST, guaranteeing correct behavior for overlapping strings.
- Set N bytes of S to C.
- Get a new buffer
- Using os_[f]open instead of [f]open ensures that shortcuts are properly followed under Windows.
- pr⚠pr is just an alias for SIM_printf
- Write formatted output to stdout.
- Sort NMEMB elements of BASE, of SIZE bytes each, using COMPAR to perform the comparisons.
- Re-allocate the previously allocated block in PTR, making the new block SIZE bytes long. / / attribute_malloc is not used, because if realloc returns the same pointer that was passed to it, aliasing needs to be allowed between objects pointed by the old and new pointers.
- stat⚠Get file attributes for FILE and put them in BUF.
- Duplicate S, returning an identical malloc’d string.
- Return the length of S.
Type Aliases§
- The opaque type of streams. This is the definition used elsewhere.
- struct _is is defined in internal/pycore_interp.h
- Nothing is actually declared to be a PyObject, but every pointer to a Python object can be cast to a PyObject*. This is inheritance built by hand. Similarly every pointer to a variable-size Python object can, in addition, be cast to PyVarObject*.
- struct _ts is defined in cpython/pystate.h
- PyTypeObject structure is defined in cpython/object.h. In Py_LIMITED_API, PyTypeObject is an opaque structure.
- buffer interface
- Py_tracefunc return -1 when raising an exception, or 0 for success.
- The tag name of this struct is _IO_FILE to preserve historic C++ mangled names for functions taking FILE* arguments. That name should not be used in new code.
access_filter_cb_t access_filter_cb_t access_filter_cb_t - Index: Indices not supported Description: This hap is triggered on every word sent on a arinc429_bus object. In the hap handler, the last_word attribute can be read or modified. Setting it to -1 will drop the packet.
This arm_gic interface is used accessing registers in a device implementing the Generic Interrupt Controller architecture..arm_memory_transaction_t arm_memory_transaction_t arm_memory_transaction_t attr_value_t attr_value_t attr_value_t The attr_value_t is the type used for all values in the configuration system. It is a tagged union.- This is a collection of API calls that allows a customized connection between frontend extensions and custom target modules.
break_string_cb_t break_string_cb_t break_string_cb_t breakpoint_id_t - Index: Indices not supported Description: Triggered when a CLI command is defined.
- Index: Indices not supported Description: Internal: Similar to Component_Hierarchy_Change but also triggered for components that are not part of any complete hierarchy including non-instantiated components.
- Index: Indices not supported Description: Internal: Triggered when an instantiated component hierarchy is modified. The hap is associated with the top-level component of the modified hierarchy.
- Index: break_id Description: Triggered when the output matches a string set to break on. The
- Index: Indices not supported Description: Triggered when an access to a memory-space has no target and the access does not match any entry in the
- Index: trap_number Description: SPARC: Triggered when an asynchronous trap occurs. This is either an external interrupt
- Index: Indices not supported Description: Triggered, typically by
- Index: Indices not supported Description: Deprecated.
- Index: Indices not supported Description: Triggered on an object when breakpoints attached to that object are inserted, deleted or changed in any way.
- Index: breakpoint_number Description: Triggered when a breakpoint is triggered.
- Index: Indices not supported Description: Triggered, typically by
- Index: Indices not supported Description: Triggered when a new configuration class has been registered. Called in Global Context.
- Index: Indices not supported Description: Triggered when a configuration class has been unregistered. Called in Global Context.
- Index: Indices not supported Description: Triggered when a clock object changes cell
- Index: Indices not supported Description: Triggered when an object’s reference clock is changed
- Index: Indices not supported Description: Triggered when a new configuration object’s
- Index: Indices not supported Description: Triggered when a configuration object has been created and finalized. This hap will always be followed by a Core_Conf_Objects_Created hap, but this hap can be triggered for more than one object before the Core_Conf_Objects_Created hap.
- Index: Indices not supported Description: Triggered after a configuration object has been deleted. Called in Global Context.
- Index: Indices not supported Description: Triggered just before a configuration object is deleted. Called in Global Context.
- Index: Indices not supported Description: Triggered after an object’s name has changed. Called in Global Context.
- Index: Indices not supported Description: Triggered if and only if at least one Core_Conf_Object_Created hap has been triggered.
- Index: Indices not supported Description: Triggered when one or more objects have been deleted from the configuration after the Core_Conf_Object_Delete hap has been triggered for all of the objects. Called in Global Context.
- Index: Indices not supported Description: Triggered when a configuration has been loaded. This hap can be triggered several times during a session since it is possible to append a new configuration to the existing one. In most cases it is better to use the
- Index: Indices not supported Description: Triggered when this context replaces another context as the current context of a processor.
- Index: Indices not supported Description: Triggered when the context is set to the current context for a processor.
- Index: Indices not supported Description: Triggered when another context replaces this context as the current context of a processor.
- Index: Indices not supported Description: Triggered when the context is updated in some way.
- Index: Indices not supported Description: Triggered at the (re)start of the simulation. The
- Index: register_number Description: Triggered when a control register is read. The hap is called before the read is performed; thus no registers have been modified.
- Index: register_number Description: Triggered when a control register is written. Note that
- Index: Indices not supported Description: Triggered when a device access is performed.
- Index: Indices not supported Description: Disable (or reenable) all breakpoints. This hap is primarily used to improve reverse performance in certain situations.
- Index: Indices not supported Description: Triggered when recorded events should be forgotten. Called in Global Context.
- Index: Indices not supported Description: Triggered when the DSTC flushes a line’s hit counter. It reports how many hits the STC recorded since the line was inserted.
- Index: exception_number Description: Triggered when an exception/trap is taken by a processor. The hap occurs before side-effects, control transfers included, have taken place.
- Index: exception_number Description: Triggered when an exception/trap handler finishes execution. The hap is triggered before any processor state has changed.
- Index: source_mid Description: (SPARC only) Triggered when a processor receives an external interrupt. The trigger object is the receiving cpu, and
- Index: Indices not supported Description: Triggered when the frequency of a cycle queue has changed. Parameters are the old and new frequencies in Hz.
- Index: Indices not supported Description: Experimental
- Index: hap_number Description: Triggered before a callback is installed. The callback called by this hap is not allowed to install any hap callbacks.
- Index: hap_number Description: Triggered after a callback has been unregistered. The callback called by this hap is not allowed to remove any hap callbacks.
- Index: Indices not supported Description: Triggered when a new hap type is added to the simulator. The hap is not triggered for the initial set of core haps. Callbacks called in Global Context.
- Index: Indices not supported Description: Triggered on I/O activity in an image object.
- Index: Indices not supported Description: Deprecated - Use the Core_Configuration_Loaded hap instead.
- Index: Indices not supported Description: Triggered when the active log groups of an object changes
- Index: Indices not supported Description: Triggered when the log level of an object changes
- Index: Indices not supported Description: Triggered when a log message is registered that is supposed to be logged according to the log level.
- Index: Indices not supported Description: Triggered when a log message is registered that is supposed to be logged, i.e. with matching type and group(s) and level.
- Index: log type Description: Triggered when a log message is registered that is supposed to be logged, i.e. with matching type and group(s) and level.
- Index: parameter Description: Triggered when Simics executes a magic instruction. The parameter is taken from the instruction and is architecture-dependent.
- Index: Indices not supported Description: Experimental
- Index: Indices not supported Description: Triggered when a processor changes privilege mode for whatever reason; usually an exception or return from an exception. The hap occurs after the processor has changed mode but before any instructions have been executed in the new mode.
- Index: Indices not supported Description: Triggered when a module is loaded into Simics. Called in Global Context.
- Index: Indices not supported Description: Triggered when the multicore-accelerator feature is enabled or disabled.
- Index: Indices not supported Description: Triggered when multithreaded simulation is enabled or disabled.
- Index: Indices not supported Description: Triggered when the simulator encounters unimplemented functionality.
- Index: Indices not supported Description: Triggered when an attribute in the prefs object is written. Called in Global Context.
- Index: Indices not supported Description: Triggered when the scheduling order of the processors has changed. Called in Global Context.
- Index: Indices not supported Description: Triggered when a new Simics project directory is selected. Called in Global Context.
- Index: Indices not supported Description: Triggered when the list of recently used files has changed. Called in Global Context.
- Index: Indices not supported Description: Triggered when reverse execution support is activated or deactivated. Called in Global Context.
- Index: simulation_mode Description: Triggered when the simulation mode for the processor has changed.
- Index: exception Description: Triggered when the simulation stops. The
- Index: Indices not supported Description: Triggered with an estimate of skip-to progress. Called in Global Context.
- Index: type Description: Triggered when an synchronizing instruction is executed. The
- Index: Indices not supported Description: Triggered whenever there is a transition between the past and the present. Called in Global Context.
- Index: Indices not supported Description: Triggered on an object when a timing model or snoop device is inserted, deleted, or changed.
- Index: Indices not supported Description: Triggered when the list of user comments for a session has changed
- Index: Indices not supported Description: Deprecated - Use the checkpoint interface instead
cpu_address_cb_t cpu_address_cb_t cpu_address_cb_t cpu_cached_instruction_cb_t cpu_cached_instruction_cb_t cpu_cached_instruction_cb_t cpu_callback_free_user_data_cb_t cpu_callback_free_user_data_cb_t cpu_callback_free_user_data_cb_t cpu_emulation_cb_t cpu_emulation_cb_t cpu_emulation_cb_t cpu_instruction_cb_t cpu_instruction_cb_t cpu_instruction_cb_t cpu_instruction_decoder_cb_t cpu_instruction_decoder_cb_t cpu_instruction_decoder_cb_t cpu_instruction_disassemble_cb_t cpu_instruction_disassemble_cb_t cpu_instruction_disassemble_cb_t cpu_memory_cb_t cpu_memory_cb_t cpu_memory_cb_t - Contains bits created by using bit numbers from cpu_stream_enum_t
- craff error state - can be shared between multiple file objects
- ADD INTERFACE step_event_instrumentation
debug_setup_interface_t debug_setup_interface_t - Index: Indices not supported Description: Triggered by the
- Index: Indices not supported Description: Triggered when the bus is reset. It is invoked after calculating the default topology. During the hap the self_ids attribute can be used to change the self id packets sent to the devices on the bus. The connected_devices attribute can also be changed to modify the mapping from physical id to device.
- Index: Indices not supported Description: Triggered when an packet travels through a firewire bus. During the hap handler the current_transfer attribute of the bus can be used to inspect and/or change the current transfer. If you set it to NULL the transfer is aborted and Firewire_V2_Ack_No_Ack is returned to the initiator of the transfer.
generic_transaction_t generic_transaction_t gfx_break_cb_t gfx_break_cb_t gfx_break_cb_t - Index: break_id Description: Triggered when a graphical breakpoint matches the screen.
- Index: break_id Description: Triggered when a graphics breakpoint matches the screen.
- Consumer API
- Opaque type
- Index: Indices not supported Description: Triggered when the console is assigned a new title.
- Index: Indices not supported Description: Triggered when the console is shown or hidden. The hap argument is 1 when the console is shown and 0 when hidden.
hap_handle_t instruction_info_t - Index: Indices not supported Description: Simics internal. Triggered when a bookmark has been added or deleted.
- Index: Indices not supported Description: Simics internal. Triggered on a break-io access.
- Index: trace-io Description: Simics internal. Triggered on an access to a device register traced with
- Index: Description: Simics internal
- Index: id Description: Simics internal
- Index: Description: Simics internal. ‘rev’ is 1 when reverse execution is initiated, and 0 when reverse execution stops. In addition, a number of haps with rev = -1 may be fired during reverse execution at reverse chronologically ordered moments. This is typically used to update the user interface during reverse execution.
- Index: Indices not supported Description: Simics internal. Triggered when the time quantum has changed. The hap is supported in Simics 5 even though it is marked as internal.
The interrupt_ack_fn_t function is called by an interrupt target to ack an interrupt. Returns the interrupt vector. interrupt_ack_fn_t - This interrupt_query interface is used by devices connected to interrupt controllers to query whether their irq level is enabled in the interrupt controller or not. This is done by the is_enabled function.
map_info_t swap_mode_t map_info_t map_info_t, swap_mode_t map_type_t The map_info_t structure members have the following meaning: - base: The base address of the device mapping in the memory space.
- start: The address inside the device memory space where the mapping starts.
- length: The length of the mapped memory, in bytes.
- function: Used to map the same object several times with different functionality. Corresponds to the function argument used when mapping devices into a memory space.
- If the map target does not support large accesses, then align_size can be set to the maximum allowed size. Accesses spanning align boundaries will be split into several smaller transactions. The align size must be a power of two, or zero (which means "use the default value": 8 for devices and 8192 for memory).
- Mappings with an align size of 2, 4, or 8 may set the reverse_endian field to a non zero value. This can be used to model bridges that perform byte swapping on a specific bus width.
map_list_t map_type_t map_list_t map_list_t, map_type_t map_type_t map_info_t This data structure is used to pass information about the set of mappings a particular address in an address space contains. - Consumer API
- old alias for compatibility, deprecated
page_t pci_memory_transaction_t pci_memory_transaction_t pre_decoder_cb_t pre_decoder_cb_t pre_decoder_cb_t - Type provided for backwards compatibility.
- struct to hold data about each type of generated trampolines (one per signature)
ram_access_cb_t ram_access_cb_t ram_access_cb_t - Index: Indices not supported Description: Internal: Notifies change of realtime enabled status
- Index: Indices not supported Description: Internal
This interface is deprecated; please use the recorder_v2 instead.- Index: limit_type Description: Triggered when a reverse execution resource limit is exceeded.
- Index: index Description: This hap is triggered when the DS12887-c NVRAM memory is changed.
- POSIX.1g specifies this type name for the `sa_family’ member.
- Index: command_number Description: Triggered when a SCSI command is received by a SCSI device. The parameters
service_routine_t This callback type is used by the smm_instrumentation_subscribe to implement instrumentation.- Index: Description: Triggered when NAPT is enabled or disabled in a service-node.The argument is 0 when disabled and 1 when enabled.
- Please do not access the members of this struct directly
- struct member information
- Index: Indices not supported Description: Triggered when the console is assigned a new title.
- Index: Indices not supported Description: Triggered when the console is shown or hidden.
- Index: page_size Description: Triggered when a TLB entry is filled after a table walk. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
- Index: page_size Description: Triggered when a TLB entry is filled after a table walk. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
- Index: page_size Description: Triggered when a TLB entry is invalidated. The invalidation can be caused by an INVLPG instruction, a write to CR3, or by changes to paging bits in CR0 and CR4. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
- Index: page_size Description: Triggered when a TLB entry is invalidated. The invalidation can be caused by an INVLPG instruction, a write to CR3, or by changes to paging bits in CR0 and CR4. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
- Index: linear_address Description: Triggered when a DTLB miss occurs.
- Index: linear_address Description: Triggered when an ITLB miss occurs.
- Index: page_size Description: This hap is triggered when a TLB entry is replaced by another. The parameters relate to the old entry, and the insertion of the new entry will trigger a fill hap. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
- Index: page_size Description: This hap is triggered when a TLB entry is replaced by another. The parameters relate to the old entry, and the insertion of the new entry will trigger a fill hap. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.
transaction_completion_t transaction_completion_t transaction_completion_t Callback invoked when an asynchronous transaction is completed. The callback is stored in a completion atom belonging to the transactiont . Similarly,obj is an object stored in either anowner atom or aninitiator atom. The former takes precedence if both are present.transaction_t transaction_t - Index: Indices not supported Description: Internal
- Index: Indices not supported Description: Triggered when the run state changes; not triggered in batch mode. The argument is one of:
- Type objects contain a string containing the type name (to help somewhat in debugging), the allocation parameters (see PyObject_New() and PyObject_NewVar()), and methods for accessing objects of the type. Methods are optional, a nil pointer meaning that particular kind of access is not available for this type. The Py_DECREF() macro uses the tp_dealloc method without checking for a nil pointer; it should always be implemented except if the implementation can guarantee that the reference count will never reach zero (e.g., for statically allocated type objects).
- Index: string_id Description: Triggered when output matches a string set to break on. The
- Index: Indices not supported Description: Triggered before picture on screen is updated
virtual_data_bp_handle_t virtual_instr_bp_handle_t This callback type is used by the vmx_instrumentation_subscribe to implements VMX mode switch instrumentation.- Index: break_id Description:
Unions§
- All the structs below are INTERNAL and should not be used directly.