The sim class represents Simics's global simulator state, such as state not tied to a specific processor, device etc.
conf_object, log_object, callback_describe, module_iface_wrapping, iface_wrap_instrumentation
- cell-change
- Notifier that is triggered after the object's cell was changed.
- cell-thread-change
- Notifier that is triggered when a thread is added to or removed from a cell.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
info
– print information about the object
-
status
– print status of the object
-
cell_list
-
Optional attribute;
read/write access; type:
[o*]
The list of scheduled cells
-
automatic_cell_partition
-
Pseudo attribute;
read/write access; type:
b
When TRUE, standard Simics components will automatically create cells as appropriate during the instantiation of models. When set to FALSE, all objects instantiated afterwards will be assigned to a default cell, providing a timing behavior compatible with previous Simics versions (3.2 and before).
-
version
-
Optional attribute;
read/write access; type:
i
Version (build-id) of Simics that a configuration file was created with.
-
handle_outside_memory
-
Optional attribute;
read/write access; type:
b
When a physical address is accessed which is neither memory (RAM) nor a memory-mapped device, Simics will default to stop on a special breakpoint and report this, on the assumption that it is erroneous behavior. If this attribute is set to TRUE, then Simics will override the default behavior and instead handle the operation in the manner prescribed by the target architecture. For example, this might trigger a data access exception. This attribute is deprecated, use the outside_memory_whitelist attribute of the cpu instances instead.
-
always_reissue_after_stall
-
Optional attribute;
read/write access; type:
b
When TRUE, Simics will always re-run an instruction that has been stalled. Usually Simics will only restart the instruction in a few special cases. This option is useful for debugging, but will affect performance. The re-run of instructions at stall is transparent to users.
-
simics_path
-
Optional attribute;
read/write access; type:
[s*]
The value of the Simics search path. See the commands add-directory
and lookup-file
for additional information. The current directory is always searched before any entry in the Simics search path.
-
cpu_mode
-
Pseudo attribute;
read/write access; type:
s
The current CPU mode used when loading processor modules. As of simics 6 only normal is allowed. See also the prefs->cpu_mode attribute.
-
gui_mode
-
Pseudo attribute;
read/write access; type:
s
The current GUI mode. One of "gui", "mixed" and "no-gui". See also the prefs->gui_mode attribute. This attribute may differ from the preference value if one of the -gui, -gui-only and -no-win flags was specified at startup.
-
license_file
-
Pseudo attribute;
read-only access; type:
s|n
The currently used FlexNET license-file. See also the prefs->license_file attribute. This attribute may differ from the preference value if an alternative license file was specified at startup.
-
hide_console_windows
-
Pseudo attribute;
read/write access; type:
b
A flag indicating whether Simics should hide windows for consoles. Default FALSE.
-
fail_on_warnings
-
Pseudo attribute;
read/write access; type:
b
If TRUE, Simics will immediately terminate with a nonzero exit code in the following cases: log messages of 'error' type, deprecation warnings when sim->deprecation_level=2, and certain internal errors and warnings. The default is FALSE. This flag is set by using the -werror command-line option.
-
stop_on_error
-
Pseudo attribute;
read/write access; type:
b
If TRUE, Simics will immediately terminate with a nonzero exit code in the following cases: log messages of 'error' type, deprecation warnings when sim->deprecation_level=2, and certain internal errors and warnings. The default is FALSE. This flag is set by using the -werror command-line option.
-
command_log
-
Pseudo attribute;
read/write access; type:
s|n
The command log file name, if command logging is active.
-
event_queue_max
-
Optional attribute;
read/write access; type:
i
Maximum number of events allowed in one event queue. A large number of event in a queue is typically an indication of a problem in a simulation model. Reaching the maximum as set with this attribute causes the simulator to stop, allowing the user to inspect the content of the queues.
-
host_name
-
Pseudo attribute;
read-only access; type:
s
Fully qualified host name
-
host_arch
-
Pseudo attribute;
read-only access; type:
s
Host architecture. x86_64.
-
host_os
-
Pseudo attribute;
read-only access; type:
s
Host operating system. linux or windows.
-
host_type
-
Pseudo attribute;
read-only access; type:
s
Host type. win64 or linux64.
-
host_bits
-
Pseudo attribute;
read-only access; type:
s
Host bits. 64.
-
hap_list
-
Pseudo attribute;
read-only access; type:
[[s,s,[s+]|n,s|n,s|n,i]*]
((name, params, param_names, index, description, handlers), ...). Get list of all haps. handlers is the number of installed callbacks.
-
checkpoint_path
-
Optional attribute;
read/write access; type:
[s*]
File search path for previous checkpoints, used by the files attribute in the image class.
-
simics_base
-
Pseudo attribute;
read-only access; type:
s
Full path to the Simics base installation directory.
-
simics_home
-
Pseudo attribute;
read-only access; type:
s
Full path to the Simics host directory.
-
project
-
Pseudo attribute;
read/write access; type:
s|n
Full path to the current project directory. Returns NIL if no project directory is used. This attribute should not be written.
-
workspace
-
Pseudo attribute;
read/write access; type:
s|n
This attribute is deprecated. Alias for the project attribute.
-
host_phys_mem
-
Pseudo attribute;
read-only access; type:
i
The amount of physical memory of the host in bytes.
-
host_virt_mem
-
Pseudo attribute;
read-only access; type:
i
The size of the virtual address space that Simics can use, in bytes.
-
host_num_cpus
-
Pseudo attribute;
read-only access; type:
i
The number of processors on the host.
-
locale_encoding
-
Pseudo attribute;
read-only access; type:
s
The character encoding used by the current locale.
-
filename_encoding
-
Pseudo attribute;
read-only access; type:
s
The character encoding used by host filenames.
-
deprecation_level
-
Pseudo attribute;
read/write access; type:
i
A level of 0 turns off all deprecation warnings. On level 1 (default) Simics will warn when features that have been deprecated in the current major release or further back are used. On level 2, Simics will warn when newly deprecated features, or features that will become deprecated, are used.
-
deprecation_stack_trace
-
Pseudo attribute;
read/write access; type:
b
Set to true to make Simics print a stack trace each time a deprecated feature is used.
-
Optional attribute;
read/write access; type:
[[fs[[si]*]s]*]
List of time-stamped user comments for a session.
-
Pseudo attribute;
read/write access; type:
[[fo[[oi]*]s]*]
List of time-stamped user comments for a session. Similar to session_comments that is saved in session files, but with object references instead of names.
-
allow_core_dumps
-
Pseudo attribute;
read/write access; type:
b
If set to false (default), Simics will catch fatal signals and try to report an error. If set to true, Simics will not handle such signals, but crash and possibly generate a core file on Linux.
-
real_network_warnings
-
Pseudo attribute;
read/write access; type:
b
If TRUE (default), Simics will print warnings when the target system becomes accessible from the local network of the host.
-
force_ipv4
-
Optional attribute;
read/write access; type:
b
If TRUE, network services such as telnet and VNC in the target consoles will use IPv4 only. Default is FALSE.
-
ignore_error_count
-
Pseudo attribute;
read/write access; type:
i
Set this to a positive integer to make Simics ignore that number of errors messages
-
warnings_as_errors
-
Pseudo attribute;
read/write access; type:
b
If TRUE, warning log messages have the same effect as error log messages. The default is FALSE. This flag is set by using the --warnings-as-errors command-line option.
-
deprecations_as_errors
-
Pseudo attribute;
read/write access; type:
b
If TRUE, deprecation warnings have the same effect as error messages. The default is FALSE. This flag is set by using the --deprecations-as-errors command-line option.
-
module_cache_enable
-
Pseudo attribute;
read/write access; type:
b
TRUE if Simics is caching information about modules.
-
version_compat
-
Pseudo attribute;
read-only access; type:
i
The build-id of the oldest Simics that this version can load binary modules from.
-
module_searchpath
-
Pseudo attribute;
read-only access; type:
[s*]
The list of directories that are scanned for Simics modules
-
default_log_level
-
Optional attribute;
read/write access; type:
i
The log level used for newly created objects.
-
max_worker_threads
-
Pseudo attribute;
read/write access; type:
i|n
Maximum number of worker threads. NIL (the default value) means that Simics will automatically calculate a value based on the host configuration. There must be at least one worker thread in the system.
-
use_jit_threads
-
Pseudo attribute;
read/write access; type:
b
Determines if the JIT engine should use worker threads to help with binary translation.
-
page_sharing
-
Optional attribute;
read/write access; type:
b
Controls page sharing mechanism, useful when simulating multiple similar machines. If this feature is enabled, pages with identical contents will be shared across the system just keeping one copy instead of multiple, resulting in host memory reduction. A page is detected as identical the first time it is accessed or executed.
-
page_sharing_savings
-
Pseudo attribute;
read-only access; type:
i
How much memory (in bytes) that currently have been saved due to the page sharing mechanism
-
page_sharing_page_size
-
Pseudo attribute;
read-only access; type:
i
How large (in bytes) each page are that are shared. This is a compile time constant, typically 4K or 8K.
-
do_global_page_sharing
-
Pseudo attribute;
read-only access; type:
i
When read, Simics will go through all active pages in the system and replace identical pages with a one read-only copy-on-write page. The amount of freed memory due to this operation is returned.
-
breakpoints
-
Pseudo attribute;
read/write access; type:
[[iiiiiiisssso[i*]]*]
((id, type, access, hits, activate_at, active, flags, prefix, substr, strpattern, strmask, object, handle*)*) List of memory breakpoints currently set. id is the breakpoint id as returned by SIM_breakpoint. type is 0 for physical, 1 for virtual, 2 for linear (x86), and 3 for I/O space (x86). access is the access type, three bits that can be combined - read (bit 0), write (bit 1), or execute (bit 2). hits is how many times the breakpoint has been hit (including hits when the breakpoint is disabled). activate_at tells how many times the breakpoints must be hit to be activated. flags is the matching flags (see the breakpoint_flag_t type). Simics can break on instructions with a certain prefix or sub-string. prefix and substr are the strings to use. strpattern and strmask tells if the breakpoints should break on instructions with a specified bit-pattern. First the mask will be applied to the instruction and then the result will be compared with the pattern. For instance if pattern is "0x0100" and mask is "0x0101" the breakpoint will only be triggered for instructions whose first byte has the lowest bit set and the second not. prefix, substr and pattern/mask works only for execution breakpoints and if more than one is set all must be satisfied to trigger the breakpoint. The object together with the list of handles identify the breakpoint in the handling object. This attribute can only be used to modify existing breakpoints, not to create new or to delete breakpoints.
-
batch_mode
-
Pseudo attribute;
read/write access; type:
b
If TRUE, Simics will exit when all scripts specified on the command line have been executed (successfully or not); if FALSE, Simics will return to prompt when the scripts are finished. Default is FALSE. The -batch-mode command line argument set this to TRUE.
-
echo
-
Pseudo attribute;
read/write access; type:
b
If TRUE, Simics will print out all the commands it executes on the console; if FALSE, Simics will stay quiet. Default is FALSE. The -echo command line argument set this to TRUE.
-
max_error_messages
-
Pseudo attribute;
read/write access; type:
i
If the number of error messages printed on the console exceeds this value, Simics will exit automatically. This is useful to stop runaway scripts and it is set to 100000 automatically when running in batch-mode. Default is 2^64-1.
-
time_quantum
-
Pseudo attribute;
read/write access; type:
f
Default length of the time quantum in seconds, or Invalid if not set, or if it is unset. Setting this attribute unsets the cpu_switch_time attribute. Symmetrically, this attribute is unset if the cpu_switch_time is set.
-
cpu_switch_time
-
Pseudo attribute;
read/write access; type:
i
Default length of the time quantum in cycles of the first processor in the cell, or Invalid if not set, or if it is unset. Setting this attribute unsets the time_quantum attribute. Symmetrically, this attribute is unset if the time_quantum is set.
-
data_stc_enabled
-
Pseudo attribute;
read/write access; type:
b
If TRUE, the internal 'Data Simulator Translation Cache' (DSTC) is enabled. If FALSE, it is disabled. Default is enabled. The DSTC improves Simics performance by caching logical to real translation of commonly used memory addresses. The command line arguments -dstc and -stc set this to TRUE. The command line arguments -no-dstc and -no-stc set this to FALSE.
-
instruction_stc_enabled
-
Pseudo attribute;
read/write access; type:
b
If TRUE, the internal 'Instruction Simulator Translation Cache' (ISTC) is enabled. If FALSE, it is disabled. Default is enabled. The ISTC improves Simics performance by caching logical to real translation of commonly used jumps. The command line arguments -istc and -stc set this to TRUE. The command line arguments -no-istc and -no-stc set this to FALSE.
-
timing_model_inquiries
-
Pseudo attribute;
read/write access; type:
b
If set to TRUE, then timing models will receive inquiries in addition to real memory operations. Default is FALSE.
-
disregard_align
-
Optional attribute;
read/write access; type:
b
If set to TRUE, ignore alignment settings for simple memory space maps (maps that do not cause byte-swapping) that target another memory space. This attribute may be removed in future releases. Default is FALSE.
-
cpu_tick
-
Pseudo attribute;
read/write access; type:
[i|n*]
Host ticks per simulated processor. Index i in the list corresponds to the processor with number i. Set to an integer to start counting. Set to nil to disable counting. Processors beyond the length of the list will have counting disabled.
-
missed_cpu_ticks
-
Pseudo attribute;
read-only access; type:
i
CPU ticks that did not have a executing processor.
-
cell_ticks
-
Pseudo attribute;
read-only access; type:
[[o|ni]*]
Host ticks per simulated cell. ((cell_object|Nil), ticks)* The Nil entry identifies ticks recorded outside cells.
-
cell_tick_enable
-
Pseudo attribute;
read/write access; type:
b
Enables the cell tick counting, measuring which cells that execute most. The result of the measurement is found in the cell_ticks attribute. Switching from FALSE to TRUE will remove any old results.
-
current_frontend_object
-
Optional attribute;
read/write access; type:
o|n
Currently selected object in the command line environment.
-
env
-
Pseudo attribute;
read/write access; type:
Unknown
get/set CLI variable in the current scope
-
host_ipv4
-
Pseudo attribute;
read-only access; type:
s|n
The ipv4 address of the host.
-
host_ipv6
-
Pseudo attribute;
read-only access; type:
s|n
The ipv6 address of the host.
-
package_list
-
Pseudo attribute;
read-only access; type:
s|n
Package list file used in this session (if any).
Simics Core