x86-p4e x86_reset_signal_conv
Quick-Start Platform x86 Reference Manual  /  4 Classes  / 

x86-p4e-model4

Description
The x86-p4e-model4 class implements an x86 processor.
Interfaces Implemented
a20, callback_info, class_disassembly, concurrency_group, concurrency_mode, conf_object, context_handler, cpu_cached_instruction, cpu_cached_instruction_once, cpu_cached_stream, cpu_exception_query, cpu_instruction_decoder, cpu_instruction_query, cpu_instrumentation_stream, cpu_instrumentation_subscribe, cpu_memory_query, cycle, decoder, describe_registers, direct_memory_update, event_delta, exception, exec_trace, execute, execute_control, freerun, frequency, frequency_listener, icode, instruction_fetch, instrumentation_order, int_register, internal_cached_instruction, interrupt_ack, jit_control, log_object, opcode_info, pre_decoder, processor_cli, processor_gui, processor_info, processor_info_v2, processor_internal, register_breakpoint, save_state, simulator_cache, smm_instrumentation_subscribe, stall, stc, step, step_cycle_ratio, step_event_instrumentation, step_info, telemetry, virtual_data_breakpoint, virtual_instruction_breakpoint, vmp, vmp_internal, vmx_instrumentation_subscribe, x86, x86_access_type, x86_address_query, x86_cpuid_query, x86_cstate, x86_exception, x86_exception_query, x86_instruction_query, x86_instrumentation_subscribe, x86_instrumentation_subscribe_v2, x86_memory_access, x86_memory_operation, x86_memory_query, x86_msr, x86_reg_access, x86_smm_state, x86_vmp_control
Port Objects
vtime.cycles <cycle-counter> : cycle queue
vtime.ps <ps-clock> : event queue (ps)
vtime <vtime> : event handler
Port Interfaces
IGNNE (signal) : IGNNE signal
INIT (signal) : INIT signal
NMI (signal) : NMI signal
RESET (signal) : RESET signal
SMI (signal) : SMI signal
cpu_frequency (simple_dispatcher) : Broadcasts changes in CPU frequency.
cpu_internal_counters (probe_index) : Port for internal counters
cpu_internal_intensity_counters (probe_index) : Port for internal intensity counters
extension (decoder) : Instruction set extension decoder
step_event_probes (probe_index, probe_subscribe) : Port for event probes.
virtual (context_handler) : Handler for virtual address context, as opposed to the non-port context_handler which deals with linear addresses.
Notifiers
freerunning-mode-change, frequency-change
Provided By
x86-intel64

Attributes

a20_inhibited

Optional attribute; read/write access; type: boolean. A20 will be always lowered if this flag is set.

a20mask

Optional attribute; read/write access; type: integer. The a20mask.

access_type_name

Pseudo attribute; read-only access; integer indexed; indexed type: string. Get string describing the specified access type (x86_access_type_t).

activity_state

Optional attribute; read/write access; type: integer. Processor activity state.

allow_tss_bios_workaround

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE, which is the default, then VMP is allowed to modify the initial CPU state slightly in order to work around a BIOS problem causing hard host crashes. The workaround consist of using a 32-bit TSS instead of a 16-bit TSS after CPU reset. If this attribute is set to FALSE, then VMP will be disabled whenever a 16-bit TSS is loaded.

apic

Required attribute; read/write access; type: object. Local APIC this cpu is connected to.

aprof_views

Pseudo attribute; read/write access; type: [[o,i]*]. ((address profiler, view)*) Address profiler views selected for this processor. Affects only the display of profiling information, and has nothing to do with collecting it.

This attribute should contain a list of lists: one list for each address profiler view you want to select (in the order they are to appear), each containing first the address profiler object, then the index of the desired view.

auto_hyper_enabled

Pseudo attribute; read/write access; type: boolean. Enables automatic detection of loops which can be hypersimulated.

auto_hyper_loops

Pseudo attribute; read-only access; type: [[iis]*]. {ffwd_steps, addr, precond} Information on automatically found hypersim loops.

block_init

Optional attribute; read/write access; type: integer. INIT will be blocked if this flag is set.

block_nmi

Optional attribute; read/write access; type: integer. NMI will be blocked if this flag is set.

block_smi

Optional attribute; read/write access; type: integer. SMI will be blocked if this flag is set.

block_virtual_nmi

Optional attribute; read/write access; type: boolean. Virtual NMIs blocking.

break_on_triple_fault

Optional attribute; read/write access; type: boolean. If TRUE, the model will stop execution if there is a triple fault. Set to FALSE to not stop on triple fault.

cache_flush_handler

Optional attribute; read/write access; type: object or nil. Object implementing the x86_cache_flush interface.

cell

Optional attribute; read/write access; type: object or nil. Cell

cpl

Pseudo attribute; read/write access; type: integer. Current privilege level.

cpuid_2_eax

Optional attribute; read/write access; type: integer. Value returned in EAX for CPUID when input EAX == 2.

cpuid_2_ebx

Optional attribute; read/write access; type: integer. Value returned in EBX for CPUID when input EAX == 2.

cpuid_2_ecx

Optional attribute; read/write access; type: integer. Value returned in ECX for CPUID when input EAX == 2.

cpuid_2_edx

Optional attribute; read/write access; type: integer. Value returned in EDX for CPUID when input EAX == 2.

cpuid_brand_id

Optional attribute; read/write access; type: integer. Brand ID for CPUID.

cpuid_clflush_size

Optional attribute; read/write access; type: integer. Size of CLFLUSH as reported by CPUID.

cpuid_core_level_apic_id_shift_count

Optional attribute; read/write access; type: integer. Number of bits for APIC ID shift at the core level in CPUID. The shift count at the thread level will be added to calculate the second 0xB sub-leaf shift count. If left at the default value of 0, a count just large enough to represent the cores in the package.

cpuid_extended_family

Optional attribute; read/write access; type: integer. Extended family for CPUID.

cpuid_extended_model

Optional attribute; read/write access; type: integer. Extended model for CPUID.

cpuid_family

Optional attribute; read/write access; type: integer. Family for CPUID.

cpuid_l2_cache_assoc

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_line_size

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_lines_per_tag

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_l2_cache_size_kb

Optional attribute; read/write access; type: integer. Level 2 cache information returned by CPUID function 8000.0006.

cpuid_lahf64

Pseudo attribute; read-only access; type: boolean. LAHF/SAHF support in 64-bit mode. Reported through CPUID function 80000001 in ECX bit 0.

cpuid_list

Optional attribute; read/write access; type: [o*]. List of objects implementing the x86_cpuid interface. These objects are called in the order of registration after the magic instruction handler but before internal CPUID implementation

cpuid_logical_processor_count

Optional attribute; read/write access; type: integer. Count of logical processors for CPUID. Setting this to non-zero will enable the HTT feature bit (bit 28).

cpuid_model

Optional attribute; read/write access; type: integer. Model for CPUID.

cpuid_monitor

Pseudo attribute; read-only access; type: integer. Support for MONITOR. Reported through CPUID function 1 ECX bit 3.

cpuid_monitor_max_size

Optional attribute; read/write access; type: integer. Largest monitor granularity. This is reported through CPUID, but not used in the implementation.

cpuid_monitor_min_size

Optional attribute; read/write access; type: integer. Smallest monitor granularity. This is the size used in the monitor implementation.

cpuid_mwait_int_break_support

Optional attribute; read/write access; type: boolean. Support for MWAIT break on interrupts even if disabled.

cpuid_physical_apic_id

Optional attribute; read/write access; type: integer. Physical local APIC ID for CPUID.

cpuid_processor_name

Optional attribute; read/write access; type: string. Processor name for CPUID.

cpuid_sse3

Pseudo attribute; read-only access; type: integer. Support for SSE3. Reported through CPUID function 1 ECX bit 0.

cpuid_stepping

Optional attribute; read/write access; type: integer. Stepping for CPUID.

cpuid_thread_level_apic_id_shift_count

Optional attribute; read/write access; type: integer. Number of bits for APIC ID shift at the thread level in CPUID. If left at the default value of 0, a count just large enough to represent the threads in the core will be used.

cpuid_vendor_id

Optional attribute; read/write access; type: string. Vendor ID string for CPUID.

cpuid_vmx

Pseudo attribute; read-only access; type: integer. VMX feature as reported through CPUID function 1 ECX bit 5.

cr0

Optional attribute; read/write access; type: integer. Control register 0.

cr2

Optional attribute; read/write access; type: integer. Control register 2.

cr3

Optional attribute; read/write access; type: integer. Control register 3.

cr4

Optional attribute; read/write access; type: integer. Control register 4.

cr4_extension_mask

Optional attribute; read/write access; type: integer. Externally implemented cr4 bits.

cs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

cstar

Optional attribute; read/write access; type: integer.

cstate

Optional attribute; read/write access; type: [ii]. C-state

cstate_listeners

Optional attribute; read/write access; type: [o*]. List of all devices to be notified on C-state change. Must implement the x86_cstate_notification interface.

current_context

Pseudo attribute; read/write access; type: object or nil. Current context object

current_virtual_context

Pseudo attribute; read/write access; type: object or nil. Current context relating to addresses before segmentation.

current_vmcs_ptr

Optional attribute; read/write access; type: integer. VMX mode current VMCS pointer.

cycles

Pseudo attribute; read/write access; type: integer. Time measured in cycles from machine start.

debug_len_10b_8_bytes

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the 10b length encoding in DR7 is taken to mean 8 bytes. If it is false, then 10b means 8 bytes in long mode, but only one byte in legacy mode.

disable_block_merge

Optional attribute; read/write access; type: integer. Internal.

disabled_breakpoints_update_dr6

Optional attribute; read/write access; type: integer. Set to non-zero if you want debug breakpoints that are not enabled either through DR7.L nor DR7.G to still set the B bits in DR6.

do_not_schedule

Optional attribute; read/write access; type: boolean. Set to TRUE to prevent this object from being scheduled by the cell.

dr0

Optional attribute; read/write access; type: integer. Debug register 0.

dr1

Optional attribute; read/write access; type: integer. Debug register 1.

dr2

Optional attribute; read/write access; type: integer. Debug register 2.

dr3

Optional attribute; read/write access; type: integer. Debug register 3.

dr6

Optional attribute; read/write access; type: integer. Debug register 6.

dr7

Optional attribute; read/write access; type: integer. Debug register 7.

ds

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

eflags

Optional attribute; read/write access; type: integer. Flag register.

enable_effective_memory_type_calculation

Pseudo attribute; read/write access; type: boolean. If TRUE, the effective memory type field of memory transactions will always be calculated for all non-inquiry accesses. If FALSE, the effective memory type field may be left as X86_None.

enabled_flag

Optional attribute; read/write access; type: boolean. TRUE if the processor is enabled. If FALSE, it will see time (cycles) pass but not execute steps.

es

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

event_desc

Pseudo attribute; read-only access; integer indexed; indexed type: [[o|n,s,i]*]. ((object, description, time)*). All events in queue with a human-readable description. The attribute is indexed by queue (Sim_Queue_Step/Time).

exception_description

Pseudo attribute; read-only access; type: string or nil. Description of current exception. Only valid when read from the Core_Exception hap. The value can be Nil in which case the exception number, source, and optional error code can be used to gain an understanding of why the exception triggered.

exception_error_code

Pseudo attribute; read-only access; type: integer. Error code for the current exception. Only valid when read from the Core_Exception hap. This attribute is undefined for exceptions that do not have an error code.

ext

Optional attribute; read/write access; type: integer. A bit indicating if the current exception is external.

far_call_jmp_64

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE, far call and jmp instructions will have a 64-bit offset when the operand size is 64-bits. If FALSE, then the offset will be 32-bits with both 32-bit and 64-bit operand size.

ferr_status

Optional attribute; read/write access; type: integer. Status for the ferr output pin.

ferr_target

Optional attribute; read/write access; type: object or nil. Object to which the FERR pin (used for external x87 exception emulation) is connected.

fpu_control

Optional attribute; read/write access; type: integer. x87 FPU control register.

fpu_fopcode_compatibility_mode

Optional attribute; read/write access; type: boolean. Fopcode compatibility sub-mode.

fpu_last_instr_pointer

Optional attribute; read/write access; type: integer. FPU instruction pointer offset.

fpu_last_instr_selector

Optional attribute; read/write access; type: integer. FPU instruction pointer selector.

fpu_last_opcode

Optional attribute; read/write access; type: integer. FPU instruction opcode.

fpu_last_operand_pointer

Optional attribute; read/write access; type: integer. FPU operand pointer offset.

fpu_last_operand_selector

Optional attribute; read/write access; type: integer. FPU operand pointer selector.

fpu_regs

Optional attribute; read/write access; type: [[i{11}]{8}]. ((empty, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9){8}). X86 floating point registers. The 8 80-bits registers is stored as a list of 11 bytes. The first byte tells if the register is empty (1) or not (0). The other bytes contain the register value with the lowest (least significant) bits in b0 and the highest (most significant bits in b9.

fpu_status

Optional attribute; read/write access; type: integer. x87 FPU status register.

fpu_tag

Optional attribute; read/write access; type: integer. x87 FPU tag word.

freerun_enabled

Optional attribute; read/write access; type: boolean. Freerun mode enabled

freerun_max_ips

Optional attribute; read/write access; type: float. Maximum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_min_ips

Optional attribute; read/write access; type: float. Minimum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_speed

Optional attribute; read/write access; type: float. Freerun speed. A value of 1.0 means realtime.

freq_mhz

Pseudo attribute; read/write access; type: float or integer. Processor clock frequency in MHz.

frequency

Optional attribute; read/write access; type: [ii], [os], or object. Processor clock frequency in Hz, as a rational number [numerator, denominator], or as a frequency provider implementing the frequency. The legacy simple_dispatcher is also supported.

fs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

gdtr_base

Optional attribute; read/write access; type: integer. Global descriptor table base.

gdtr_limit

Optional attribute; read/write access; type: integer. Global descriptor table limit.

gs

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

ia32_bios_sign_id

Optional attribute; read/write access; type: integer. BIOS Update Signature ID

ia32_bios_updt_trig

Pseudo attribute; read/write access; type: integer. BIOS Update Trigger Register

ia32_clock_modulation

Optional attribute; read/write access; type: integer. Thermal Monitor Control

ia32_cr_pat

Optional attribute; read/write access; type: integer. Page Attribute Table

ia32_ds_area

Optional attribute; read/write access; type: integer. DS Save Area

ia32_efer

Optional attribute; read/write access; type: integer. Extended Feature Enables

ia32_feature_control

Optional attribute; read/write access; type: integer. Control Features in IA-32 processor

ia32_fmask

Optional attribute; read/write access; type: integer. System Call Flag Mask

ia32_fs_base

Pseudo attribute; read/write access; type: integer. Map of BASE Address of FS

ia32_gs_base

Pseudo attribute; read/write access; type: integer. Map of BASE Address of GS

ia32_kernel_gs_base

Optional attribute; read/write access; type: integer. Swap Target of BASE Address of GS

ia32_lstar

Optional attribute; read/write access; type: integer. IA-32e Mode System Call Target Address

ia32_mc0_addr

Optional attribute; read/write access; type: integer. MC0_ADDR

ia32_mc0_ctl

Optional attribute; read/write access; type: integer. MC0_CTL

ia32_mc0_misc

Optional attribute; read/write access; type: integer. MC0_MISC

ia32_mc0_status

Optional attribute; read/write access; type: integer. MC0_STATUS

ia32_mc1_addr

Optional attribute; read/write access; type: integer. MC1_ADDR

ia32_mc1_ctl

Optional attribute; read/write access; type: integer. MC1_CTL

ia32_mc1_status

Optional attribute; read/write access; type: integer. MC1_STATUS

ia32_mc2_ctl

Optional attribute; read/write access; type: integer. MC2_CTL

ia32_mc2_status

Optional attribute; read/write access; type: integer. MC2_STATUS

ia32_mc3_addr

Optional attribute; read/write access; type: integer. MC3_ADDR

ia32_mc3_ctl

Optional attribute; read/write access; type: integer. MC3_CTL

ia32_mc3_misc

Optional attribute; read/write access; type: integer. MC3_MISC

ia32_mc3_status

Optional attribute; read/write access; type: integer. MC3_STATUS

ia32_mcg_cap

Optional attribute; read/write access; type: integer. Machine Check Capabilities

ia32_mcg_status

Optional attribute; read/write access; type: integer. Machine Check Status

ia32_misc_enable

Optional attribute; read/write access; type: integer. Enable Miscellaneous Processor Features

ia32_monitor_filter_size

Optional attribute; read/write access; type: integer. Monitor/Mwait Address Range Determination

ia32_mtrr_def_type

Optional attribute; read/write access; type: integer. Default Memory Types

ia32_mtrr_fix_16k_80000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_16k_a0000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_c0000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_c8000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_d0000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_d8000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_e0000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_e8000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_f0000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_4k_f8000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_fix_64k_00000

Optional attribute; read/write access; type: integer. Fixed Range MTRR

ia32_mtrr_physbase0

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase1

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase2

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase3

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase4

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase5

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase6

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physbase7

Optional attribute; read/write access; type: integer. Variable Range Base MTRR

ia32_mtrr_physmask0

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask1

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask2

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask3

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask4

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask5

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask6

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrr_physmask7

Optional attribute; read/write access; type: integer. Variable Range Mask MTRR

ia32_mtrrcap

Optional attribute; read/write access; type: integer. MTRR Information

ia32_p5_mc_addr

Optional attribute; read/write access; type: integer.

ia32_p5_mc_type

Optional attribute; read/write access; type: integer.

ia32_perf_ctl

Optional attribute; read/write access; type: integer.

ia32_perf_status

Optional attribute; read/write access; type: integer.

ia32_platform_id

Optional attribute; read/write access; type: integer. Platform ID

ia32_smm_monitor_ctl

Optional attribute; read/write access; type: integer. SMM Monitor Configuration

ia32_star

Optional attribute; read/write access; type: integer. System Call Target Address

ia32_sysenter_cs

Optional attribute; read/write access; type: integer. CS Register target for CPL 0 code

ia32_sysenter_eip

Optional attribute; read/write access; type: integer. CPL 0 code entry point

ia32_sysenter_esp

Optional attribute; read/write access; type: integer. Stack pointer for CPL 0 stack

ia32_therm_interrupt

Optional attribute; read/write access; type: integer. Thermal Interrupt Control

ia32_therm_status

Optional attribute; read/write access; type: integer. Thermal Monitor Status

ia32_time_stamp_counter

Optional attribute; read/write access; type: integer. Time Stamp Counter

ia32_vmx_basic

Optional attribute; read/write access; type: integer. Reporting Register of Basic VMX Capabilities

ia32_vmx_cr0_fixed0

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR0 Bits Fixed to 0

ia32_vmx_cr0_fixed1

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR0 Bits Fixed to 1

ia32_vmx_cr4_fixed0

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR4 Bits Fixed to 0

ia32_vmx_cr4_fixed1

Optional attribute; read/write access; type: integer. Capability Reporting Register of CR4 Bits Fixed to 1

ia32_vmx_entry_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-entry Controls

ia32_vmx_exit_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of VM-exit Controls

ia32_vmx_misc_ctls

Optional attribute; read/write access; type: integer. Reporting Register of Miscellaneous VMX Capabilities

ia32_vmx_pinbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Pin-based VM-execution Controls

ia32_vmx_procbased_ctls

Optional attribute; read/write access; type: integer. Capability Reporting Register of Primary Processor-based VM-execution Controls

ia32_vmx_vmcs_enum

Optional attribute; read/write access; type: integer. Capability Reporting Register of VMCS Field Enumeration

idtr_base

Optional attribute; read/write access; type: integer. Interrupt descriptor table base.

idtr_limit

Optional attribute; read/write access; type: integer. Interrupt descriptor table limit.

ignne_status

Optional attribute; read/write access; type: integer. Status for the ignne input pin.

ignore_page_failed_before

Pseudo attribute; read/write access; type: boolean. If TRUE, the model will keep trying to cache memory through direct memory even if it fails.

in_smm

Optional attribute; read/write access; type: integer. Set iff the processor is in system management mode.

init_vm_monitor

Pseudo attribute; read/write access; type: boolean. Setting this attribute to true enables the use of virtual machine monitor acceleration. The attribute will flag it as an illegal value if the virtual machine monitor kernel module could not be found, or if there was an error opening a connection to it (the attribute reads back as false in those cases). Acceleration will not be used unless the use_vm_monitor attribute is also set to true.

inject_vmexit

Pseudo attribute; write-only access; type: integer. Force a VMEXIT from VMX mode.

is_stalling

Optional attribute; read/write access; type: boolean. TRUE if the processor is currently stalling by request of a timing-model.

lar_ldt_lm_invalid

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the LDT segment type will not be considered valid for the LAR instruction while operating in long mode.

last_io

Optional attribute; read/write access; type: [iiii]. Information about last IO instruction (pc, lin_addr, iinfo, step_count).

latch_init

Optional attribute; read/write access; type: integer. INIT is currently latched.

latch_nmi

Optional attribute; read/write access; type: integer. NMI is currently latched.

latch_smi

Optional attribute; read/write access; type: integer. SMI is currently latched.

ldtr

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

load_far_ptr_64

Optional attribute; read/write access; type: boolean. If TRUE, the load far pointer instructions are extended to 64-bit when executed with a 64-bit operand size. The default is FALSE, which treats 64-bit and 32-bit operand size the same.

ma_prot

Optional attribute; read/write access; type: string. MP protocol. One of {'msi', 'ww', 'wwp'}

mca_concurrency_mode

Optional attribute; read/write access; type: integer. Multicore Accelerator mode used by processor. One of Sim_Concurrency_Mode_Serialized (1), Sim_Concurrency_Mode_Serialized_Memory (2), or Sim_Concurrency_Mode_Full (4)

min_cacheline_size

Pseudo attribute; read-only access; type: integer. The minimum size (in bytes) of a cache line that can be represented by Simics (when connecting a cache memhier).

monitor_info

Optional attribute; read/write access; type: [bbi]. (armed, fired, address). Information about MONITOR. The MONITOR is armed if the first element in the list is true. The last element in the list contains the monitored physical address, and the second element indicates if the monitor has fired which means that the CPU should wake up.

mov_default32

Optional attribute; read/write access; type: boolean. If TRUE, movs to or from control and debug registers will default to 32-bits in 64-bit mode. If FALSE (which is the default value), such moves will be fixed at 64-bits.

msr_0x00000039

Optional attribute; read/write access; type: integer.

msr_0x00000080

Optional attribute; read/write access; type: integer.

msr_0x00000119

Optional attribute; read/write access; type: integer.

msr_0x0000018b

Optional attribute; read/write access; type: integer.

msr_0x0000018c

Optional attribute; read/write access; type: integer.

msr_0x0000018d

Optional attribute; read/write access; type: integer.

msr_0x0000018e

Optional attribute; read/write access; type: integer.

msr_0x0000018f

Optional attribute; read/write access; type: integer.

msr_0x0000019e

Optional attribute; read/write access; type: integer.

msr_0x0000019f

Optional attribute; read/write access; type: integer.

msr_0x000001a2

Optional attribute; read/write access; type: integer.

msr_0x000003f5

Optional attribute; read/write access; type: integer.

msr_0x000003f6

Optional attribute; read/write access; type: integer.

msr_0x000003f7

Optional attribute; read/write access; type: integer.

msr_0x000003f8

Optional attribute; read/write access; type: integer.

msr_alf_escr0

Optional attribute; read/write access; type: integer.

msr_alf_escr1

Optional attribute; read/write access; type: integer.

msr_aperf

Optional attribute; read/write access; type: integer. Value of the APERF MSR.

msr_bpu_cccr0

Optional attribute; read/write access; type: integer.

msr_bpu_cccr1

Optional attribute; read/write access; type: integer.

msr_bpu_cccr2

Optional attribute; read/write access; type: integer.

msr_bpu_cccr3

Optional attribute; read/write access; type: integer.

msr_bpu_counter0

Optional attribute; read/write access; type: integer.

msr_bpu_counter1

Optional attribute; read/write access; type: integer.

msr_bpu_counter2

Optional attribute; read/write access; type: integer.

msr_bpu_counter3

Optional attribute; read/write access; type: integer.

msr_bpu_escr0

Optional attribute; read/write access; type: integer.

msr_bpu_escr1

Optional attribute; read/write access; type: integer.

msr_bsu_escr0

Optional attribute; read/write access; type: integer.

msr_bsu_escr1

Optional attribute; read/write access; type: integer.

msr_cru_escr0

Optional attribute; read/write access; type: integer.

msr_cru_escr1

Optional attribute; read/write access; type: integer.

msr_cru_escr2

Optional attribute; read/write access; type: integer.

msr_cru_escr3

Optional attribute; read/write access; type: integer.

msr_cru_escr4

Optional attribute; read/write access; type: integer.

msr_cru_escr5

Optional attribute; read/write access; type: integer.

msr_dac_escr0

Optional attribute; read/write access; type: integer.

msr_dac_escr1

Optional attribute; read/write access; type: integer.

msr_debugctla

Optional attribute; read/write access; type: integer. Debug Control

msr_ebc_frequency_id

Optional attribute; read/write access; type: integer. Processor Frequency Configuration

msr_ebc_hard_poweron

Optional attribute; read/write access; type: integer. Processor Hard Power-On Configuration

msr_ebc_soft_poweron

Optional attribute; read/write access; type: integer. Processor Soft Power-On Configuration

msr_firm_escr0

Optional attribute; read/write access; type: integer.

msr_firm_escr1

Optional attribute; read/write access; type: integer.

msr_flame_ccr0

Optional attribute; read/write access; type: integer.

msr_flame_ccr1

Optional attribute; read/write access; type: integer.

msr_flame_ccr2

Optional attribute; read/write access; type: integer.

msr_flame_ccr3

Optional attribute; read/write access; type: integer.

msr_flame_counter0

Optional attribute; read/write access; type: integer.

msr_flame_counter1

Optional attribute; read/write access; type: integer.

msr_flame_counter2

Optional attribute; read/write access; type: integer.

msr_flame_counter3

Optional attribute; read/write access; type: integer.

msr_flame_escr0

Optional attribute; read/write access; type: integer.

msr_flame_escr1

Optional attribute; read/write access; type: integer.

msr_fsb_escr0

Optional attribute; read/write access; type: integer.

msr_fsb_escr1

Optional attribute; read/write access; type: integer.

msr_iq_cccr0

Optional attribute; read/write access; type: integer.

msr_iq_cccr1

Optional attribute; read/write access; type: integer.

msr_iq_cccr2

Optional attribute; read/write access; type: integer.

msr_iq_cccr3

Optional attribute; read/write access; type: integer.

msr_iq_cccr4

Optional attribute; read/write access; type: integer.

msr_iq_cccr5

Optional attribute; read/write access; type: integer.

msr_iq_counter0

Optional attribute; read/write access; type: integer.

msr_iq_counter1

Optional attribute; read/write access; type: integer.

msr_iq_counter2

Optional attribute; read/write access; type: integer.

msr_iq_counter3

Optional attribute; read/write access; type: integer.

msr_iq_counter4

Optional attribute; read/write access; type: integer.

msr_iq_counter5

Optional attribute; read/write access; type: integer.

msr_iq_escr0

Optional attribute; read/write access; type: integer.

msr_iq_escr1

Optional attribute; read/write access; type: integer.

msr_is_escr0

Optional attribute; read/write access; type: integer.

msr_is_escr1

Optional attribute; read/write access; type: integer.

msr_itlb_escr0

Optional attribute; read/write access; type: integer.

msr_itlb_escr1

Optional attribute; read/write access; type: integer.

msr_ix_escr0

Optional attribute; read/write access; type: integer.

msr_ix_escr1

Optional attribute; read/write access; type: integer.

msr_lastbranch_0_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 0

msr_lastbranch_0_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 0

msr_lastbranch_10_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 10

msr_lastbranch_10_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 10

msr_lastbranch_11_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 11

msr_lastbranch_11_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 11

msr_lastbranch_12_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 12

msr_lastbranch_12_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 12

msr_lastbranch_13_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 13

msr_lastbranch_13_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 13

msr_lastbranch_14_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 14

msr_lastbranch_14_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 14

msr_lastbranch_15_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 15

msr_lastbranch_15_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 15

msr_lastbranch_1_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 1

msr_lastbranch_1_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 1

msr_lastbranch_2_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 2

msr_lastbranch_2_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 2

msr_lastbranch_3_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 3

msr_lastbranch_3_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 3

msr_lastbranch_4_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 4

msr_lastbranch_4_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 4

msr_lastbranch_5_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 5

msr_lastbranch_5_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 5

msr_lastbranch_6_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 6

msr_lastbranch_6_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 6

msr_lastbranch_7_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 7

msr_lastbranch_7_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 7

msr_lastbranch_8_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 8

msr_lastbranch_8_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 8

msr_lastbranch_9_from_lip

Optional attribute; read/write access; type: integer. Last Branch Record 9

msr_lastbranch_9_to_lip

Optional attribute; read/write access; type: integer. Last Branch Record 9

msr_lastbranch_tos

Optional attribute; read/write access; type: integer. Last Branch Record Stack TOS

msr_ler_from_lip

Optional attribute; read/write access; type: integer. Last Exception Record From Linear IP

msr_ler_to_lip

Optional attribute; read/write access; type: integer. Last Exception Record To Linear IP

msr_mcg_misc

Optional attribute; read/write access; type: integer. Machine Check Miscellaneous

msr_mcg_r10

Optional attribute; read/write access; type: integer. Machine Check R10

msr_mcg_r11

Optional attribute; read/write access; type: integer. Machine Check R11

msr_mcg_r12

Optional attribute; read/write access; type: integer. Machine Check R12

msr_mcg_r13

Optional attribute; read/write access; type: integer. Machine Check R13

msr_mcg_r14

Optional attribute; read/write access; type: integer. Machine Check R14

msr_mcg_r15

Optional attribute; read/write access; type: integer. Machine Check R15

msr_mcg_r8

Optional attribute; read/write access; type: integer. Machine Check R8

msr_mcg_r9

Optional attribute; read/write access; type: integer. Machine Check R9D/R9

msr_mcg_rax

Optional attribute; read/write access; type: integer. Machine Check EAX/RAX Save State

msr_mcg_rbp

Optional attribute; read/write access; type: integer. Machine Check EBP/RBP Save State

msr_mcg_rbx

Optional attribute; read/write access; type: integer. Machine Check EBX/RBX Save State

msr_mcg_rcx

Optional attribute; read/write access; type: integer. Machine Check ECX/RCX Save State

msr_mcg_rdi

Optional attribute; read/write access; type: integer. Machine Check EDI/RDI Save State

msr_mcg_rdx

Optional attribute; read/write access; type: integer. Machine Check EDX/RDX Save State

msr_mcg_rflags

Optional attribute; read/write access; type: integer. Machine Check EFLAGS/RFLAG Save State

msr_mcg_rip

Optional attribute; read/write access; type: integer. Machine Check EIP/RIP Save State

msr_mcg_rsi

Optional attribute; read/write access; type: integer. Machine Check ESI/RSI Save State

msr_mcg_rsp

Optional attribute; read/write access; type: integer. Machine Check ESP/RSP Save State

msr_mob_escr0

Optional attribute; read/write access; type: integer.

msr_mob_escr1

Optional attribute; read/write access; type: integer.

msr_mperf

Optional attribute; read/write access; type: integer. Value of the MPERF MSR.

msr_ms_cccr0

Optional attribute; read/write access; type: integer.

msr_ms_cccr1

Optional attribute; read/write access; type: integer.

msr_ms_cccr2

Optional attribute; read/write access; type: integer.

msr_ms_cccr3

Optional attribute; read/write access; type: integer.

msr_ms_counter0

Optional attribute; read/write access; type: integer.

msr_ms_counter1

Optional attribute; read/write access; type: integer.

msr_ms_counter2

Optional attribute; read/write access; type: integer.

msr_ms_counter3

Optional attribute; read/write access; type: integer.

msr_ms_escr0

Optional attribute; read/write access; type: integer.

msr_ms_escr1

Optional attribute; read/write access; type: integer.

msr_pebs_enable

Optional attribute; read/write access; type: integer. Precise Event-Based Sampling (PEBS)

msr_pebs_matrix_vert

Optional attribute; read/write access; type: integer.

msr_platform_brv

Optional attribute; read/write access; type: integer. Platform Feature Requirements

msr_pmh_escr0

Optional attribute; read/write access; type: integer.

msr_pmh_escr1

Optional attribute; read/write access; type: integer.

msr_rat_escr0

Optional attribute; read/write access; type: integer.

msr_rat_escr1

Optional attribute; read/write access; type: integer.

msr_saat_escr0

Optional attribute; read/write access; type: integer.

msr_saat_escr1

Optional attribute; read/write access; type: integer.

msr_ssu_escr0

Optional attribute; read/write access; type: integer.

msr_tbpu_escr0

Optional attribute; read/write access; type: integer.

msr_tbpu_escr1

Optional attribute; read/write access; type: integer.

msr_tc_escr0

Optional attribute; read/write access; type: integer.

msr_tc_escr1

Optional attribute; read/write access; type: integer.

msr_tc_precise_event

Optional attribute; read/write access; type: integer.

msr_therm2_ctl

Optional attribute; read/write access; type: integer. Thermal Monitor 2 Control

msr_u2l_escr0

Optional attribute; read/write access; type: integer.

msr_u2l_escr1

Optional attribute; read/write access; type: integer.

multicore_accelerator_enabled

Pseudo attribute; read/write access; type: boolean. Multicore Accelerator enabled for processor.

mwait_extensions

Optional attribute; read/write access; type: integer. Extensions passed to the MWAIT instruction through ECX.

mwait_hints

Optional attribute; read/write access; type: integer. Hints passed to the MWAIT instruction through EAX.

mxcsr

Optional attribute; read/write access; type: integer. XMM control register.

mxcsr_mask

Optional attribute; read/write access; type: integer. MXCSR mask (0 means 0xffbf).

near_branches_64

Optional attribute; read/write access; type: boolean. Determines how near branches are handled in 64-bit mode. If the attribute is TRUE, then the operand size is fixed at 64-bits, while the default value of FALSE allows an override to 16 bits.

non_architecturally_disabled

Optional attribute; read/write access; type: boolean. If true, the processor is disabled by explicit user action and will not execute instructions until re-enabled by user. No architectural transitions, such as resets, will re-enable it on their own.

null_clear_base_and_limit

Optional attribute; read/write access; type: boolean. If TRUE, a load of a NULL selector to a segment register will clear the base and limit values.

one_step_per_string_instruction

Optional attribute; read/write access; type: boolean. If TRUE, each un-interrupted run of a repeated string instruction (CMPS, LODS, MOVS, SCAS, STOS) will be counted as a single step as compared to each iteration being a step in the default model. Due to how instruction counting works in the hardware performance counters, this attribute must be set to TRUE for VMP to work. Setting this attribute to FALSE will disable VMP.

outside_memory_whitelist

Optional attribute; read/write access; type: [i|[ii]|[iii]*]. ((address, length, hits)*).

List of physical address ranges that do not map to anything. length is the length of each interval in bytes. An interval with both address and length being 0 denotes the entire address space. hits is the number of times that particular interval has been accessed, and can be omitted when set.

Accesses to physical addresses with no targets will trigger a specific hap whose default action is to break the simulation. However, if the address falls into one of the ranges specified in this whitelist, the hap will not be triggered (but still being counted). The behavior in this scenario is architecture dependent. It may or may not trigger an architecture specific exception, and the simulation may or may not be interrupted.

See also the Core_Address_Not_Mapped hap.

package_group

Optional attribute; read/write access; type: object or nil. The first Simics processor contained in the same multicore package. Used for shared MSR:s. Needs to point to a processor of the same class.

pause_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for the PAUSE instruction. This additional stall is there to allow execution of spin-locks to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

pdpte

Optional attribute; read/write access; type: [i{4}]. PDPTE registers.

pending_debug_exception

Optional attribute; read/write access; type: integer. A debug exception is pending. Additional information about the exception is stored in pending_debug_exception_dr6.

pending_debug_exception_dr6

Optional attribute; read/write access; type: integer. Valid if pending_debug_exception is non-zero. Attribute has the same format as the DR6 register.

pending_exception

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then an exception or interrupt is pending and will be delivered before the next instruction.

pending_exception_error_code

Optional attribute; read/write access; type: integer. Error code to be delivered on the next pending exception if pending_exception_error_code_valid is set.

pending_exception_error_code_valid

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then the pending exception has an error code.

pending_exception_instruction_length

Optional attribute; read/write access; type: integer. Length of pending trap instruction.

pending_exception_set_rf

Optional attribute; read/write access; type: boolean. If this attribute is TRUE, then the resume flag bit will be set in the pushed image of the flag register.

pending_exception_type

Optional attribute; read/write access; type: integer. Type of pending exception.

pending_exception_vector

Optional attribute; read/write access; type: integer. Pending interrupt or exception vector. Only valid if pending_exception is set.

pending_init

Optional attribute; read/write access; type: boolean. Pending INIT

pending_reset

Optional attribute; read/write access; type: boolean. Pending RESET

pending_start_up

Optional attribute; read/write access; type: integer. If 1, a startup IPI is pending.

pending_start_up_address

Optional attribute; read/write access; type: integer. The address to start on if there is a pending startup IPI.

physical_memory

Required attribute; read/write access; type: object. Physical memory space. Must implement memory-space, breakpoint and breakpoint_query interfaces.

port_io_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for port-mapped I/O. This additional stall is there to allow I/O poll loops to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

port_space

Required attribute; read/write access; type: object. I/O space of the cpu targeted by the IN, INS, OUT, and OUTS instructions. Must implement either the port interface (typically an instance of the port-space class), or the lookup interface (typically an instance of the memory-space class).

processor_number

Optional attribute; read/write access; type: integer. Simics internal number for an instance of the 'processor_info' interface. Each instance must have a unique number. This attribute can only be set as part of an initial configuration.

r10

Optional attribute; read/write access; type: integer. General purpose register.

r11

Optional attribute; read/write access; type: integer. General purpose register.

r12

Optional attribute; read/write access; type: integer. General purpose register.

r13

Optional attribute; read/write access; type: integer. General purpose register.

r14

Optional attribute; read/write access; type: integer. General purpose register.

r15

Optional attribute; read/write access; type: integer. General purpose register.

r8

Optional attribute; read/write access; type: integer. General purpose register.

r9

Optional attribute; read/write access; type: integer. General purpose register.

rax

Optional attribute; read/write access; type: integer. General purpose register.

rbp

Optional attribute; read/write access; type: integer. General purpose register.

rbx

Optional attribute; read/write access; type: integer. General purpose register.

rcx

Optional attribute; read/write access; type: integer. General purpose register.

rdi

Optional attribute; read/write access; type: integer. General purpose register.

rdtsc_slow_cycles

Optional attribute; read/write access; type: integer. Stall cycles for the RDTSC and RDTSCP instructions. This additional stall is there to allow time expiration loops to consume more virtual time per iteration, leading to faster simulation performance. The default for VMP is to stall for 10 micro-seconds.

rdx

Optional attribute; read/write access; type: integer. General purpose register.

rip

Optional attribute; read/write access; type: integer. Instruction pointer.

rsi

Optional attribute; read/write access; type: integer. General purpose register.

rsp

Optional attribute; read/write access; type: integer. General purpose register.

seg_push_zero_pad

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (which is the default), then segment register push instructions will pad the push with zero bytes up to the width of the push. If false, then that memory will be kept untouched.

shared_physical_memory

Optional attribute; read/write access; type: object or nil. Points to the object representing the memory space shared between threads/cores. This is used to set up the monitoring to emulate MONITOR/MWAIT. If this is set to Nil, then MONITOR/MWAIT will time-out at the end of each time-quantum which is likely to result in non-optimal performance especially when the quantum is rather short.

simulation_mode

Pseudo attribute; read-only access; type: integer. The simulation mechanism used for the processor. One of the values of the simulation_mode_t enum.

skip_canonical_logical_check

Optional attribute; read/write access; type: boolean. If TRUE, no canonical check is performed on the logical address during address translation. A canonical check is always performed on the linear address, regardless of the setting of this attribute. The default value is FALSE, performing canonical checks on both the logical and linear addresses.

smi_count

Optional attribute; read/write access; type: integer. Counts the number of occurrences of the SMM.

smm_base

Optional attribute; read/write access; type: integer. SMM base.

smm_handler

Optional attribute; read/write access; type: [os], object, or nil. Object implementing the x86_smm interface.

smm_listeners

Optional attribute; read/write access; type: [o*]. List of all devices to be notified on transitions in or out of system management mode (SMM). Must implement the x86_smm_notification interface.

sp_mask_non64

Optional attribute; read/write access; type: boolean. If this attribute is set to TRUE (FALSE is the default), then the stack pointer will be masked to 32-bits after the 16-byte alignment when an exception is taken from a mode other than 64-bit mode while operating in long mode.

ss

Optional attribute; read/write access; type: [i{11}]. Segment register. All fields are stored in a list of integers as follows: (selector, b, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

stall_time

Optional attribute; read/write access; type: integer. The number of cycles the processor will stall

stalling_info

Optional attribute; read/write access; type: [iii]. If is_stalling is set, this contains information about the current memory operation.

step_per_cycle_mode

Optional attribute; read/write access; type: string. "constant" indicates a constant finite step/cycle factor; "infinite" means that steps are run without advancing time.

step_queue

Optional attribute; read/write access; type: [[o|n,s,a,s,i]*]. ((object, evclass, value, slot, step)*). Pending step queue events.

steps

Optional attribute; read/write access; type: integer. Number steps executed since machine start.

system

Optional attribute; read/write access; type: object or nil. System object.

telemetry_providers

Pseudo attribute; read/write access; type: [o*]. List of objects that provides telemetry for this core

temporary_interrupt_mask

Optional attribute; read/write access; type: integer. If non-zero, interrupts are temporarily disabled even though EFLAGS.IF may be set.

threads

Optional attribute; read/write access; type: [o{1}], [o{2}], [o{3}], [o{4}], or nil. List of Simics processors representing threads in the physical processor core. Needs to point to objects of the same class as for the object where the attribute is being set.

time_queue

Pseudo attribute; read/write access; type: [[o|n,s,a,s|n,i]*]. ((object, evclass, value, slot, cycle)*). Pending time queue events.

tlb

Required attribute; read/write access; type: object. Object handling the TLBs for this CPU.

tr

Optional attribute; read/write access; type: [i{11}]. X86 segment register. All fields are stored in a list of integers as follows: (selector, d, dpl, g, p, s, type, base, limit, valid, l) The limit field always specifies the limit in bytes.

tsc_invariant_freq

Optional attribute; read/write access; type: integer. Rate at which TSC (if TSC invariant feature supported) and IA32_MPERF MSR are incremented in cycles/second.

ucode_signature

Optional attribute; read/write access; type: integer or nil. Can be either: None - no microcode update has happened since #RESET or an integer - microcode signature after the update.

use_halt_steps

Optional attribute; read/write access; type: boolean. Advance the step counter as well as the cycle counter when the CPU is idle. Defaults to FALSE.

vm_assert_object

Pseudo attribute; read/write access; type: object or nil. VMP-mode state-assertion object.

vm_autohyper_step_threshold

Pseudo attribute; read/write access; type: integer. Do not enter VMP if fewer steps has been executed since last time autohyper triggered (since the execution is likely handled by autohyper again). Default 30 steps.

vm_backoff_enabled

Pseudo attribute; read/write access; type: boolean. VMP backoff mechanism enable.

vm_block_cnt

Optional attribute; read/write access; type: integer. Execution with VMP will be prevented if this attribute is non-zero. This attribute should normally be modified using the x86_vmp_control interface.

vm_break_step

Pseudo attribute; read/write access; type: integer. If set to non-zero, the VM-monitor will silently break execution as soon as possible after the specified step without impacting the normal execution flow.

vm_compatible_config

Optional attribute; read/write access; type: boolean. This attribute should be set to TRUE if the machine configuration is VMP compatible.

vm_core2_bug

Pseudo attribute; read-only access; type: boolean. Set if the host cpu might be affected by a hardware bug.

vm_cpu_migration_dbg

Pseudo attribute; read/write access; type: boolean. Internal. Used to test state migration between host cpus.

vm_debug_trace

Pseudo attribute; read/write access; type: integer. If 1, the VMP kernel module will collect VMX traces. If 2, logging will occur to the console or to a file.

vm_disable_reason

Pseudo attribute; read-only access; type: string or nil. Reason for using turbo instead of VM acceleration.

vm_dump_trace

Pseudo attribute; write-only access; type: boolean. Dump VM-monitor trace information (only collected if vm_debug_trace is set).

vm_dump_vmcs

Pseudo attribute; write-only access; type: string. Dump host VMCS.

vm_host_has_vmx

Pseudo attribute; read-only access; type: boolean. If TRUE, host cpus support the virtual machine extensions (VMX).

vm_info

Pseudo attribute; read-only access; type: dictionary or nil. Internal. Information about VMXMON.

vm_monitor_statistics

Pseudo attribute; read/write access; type: [[i*][i*][i*]]. Internal, used for performance evaluation.

vm_pspace_sharable

Optional attribute; read/write access; type: boolean. Set if the physical address space may be shared with the other CPU cores.

vm_sched_affinity

Pseudo attribute; read/write access; type: [b+]. Wire process to a subset of available hardware threads.

vm_step_threshold

Pseudo attribute; read/write access; type: integer. Threshold below which the monitor is not used.

vm_stepi_dbg

Pseudo attribute; read/write access; type: boolean. If TRUE set, the VMP kernel module will use CR0.TF to stop execution after each instruction (for debugging purposes).

vm_trace_file

Pseudo attribute; read/write access; type: string or nil. File for storing VM-monitor traces; Used for debugging VMP.

vm_use_pspace_sharing

Pseudo attribute; read/write access; type: boolean. Set if the physical address space sharing should be used when possible.

vm_using_pspace_sharing

Pseudo attribute; read-only access; type: boolean. Returns TRUE if physical address space sharing is in use.

vmcs_content

Optional attribute; read/write access; type: [[ii]*]. The register content of the currently loaded Intel® Virtual Machine Control Structure (Intel® VMCS). Not valid if current_vmcs_ptr is not valid. Not all VMCS fields are necessarily present in this attribute since they are not kept in CPU registers. Remaining fields will be in the VMCS memory area.

vmcs_launch_state

Pseudo attribute; read/write access; type: string or nil. VMCS launch state.

vmcs_layout

Optional attribute; read/write access; type: [[isiii]*]. Exports the implementation specific layout of the Intel® Virtual Machine Control Structure (Intel® VMCS) area. This information can be used to display the current VMCS status, as well as to track changes in the VMCS. Sublist format (index, name, size, offset, attr). A field is stored as a size byte integer at offset in the VMCS.

vmx_mode

Optional attribute; read/write access; type: integer. VMX mode. 0: Not in VMX operation. 1: In VMX root operation. 2: In VMX non-root operation.

vmx_pending_exit

Optional attribute; read/write access; type: integer or nil. Pending VMX exit reason. See appendix A of the VMX specification for encoding. Nil if no VMX exit is pending.

vmxon_ptr

Optional attribute; read/write access; type: integer. VMXON pointer.

waiting_device

Optional attribute; read/write access; type: object or nil. The device that requested the waiting interrupt. Only valid when waiting_interrupt is non-zero.

waiting_interrupt

Optional attribute; read/write access; type: integer. If an interrupt is requested, but it cannot be immediately handled because interrupts are masked.

xcr0

Optional attribute; read/write access; type: integer. Extended control register 0 (XCR0).

xmm

Optional attribute; read/write access; type: [[ii]*]. ((xmm_0_low, xmm_0_high), ..., (xmm_n_low, xmm_n_high)). Each list represents one xmm register. The high quad word (bits 64-127) is in xmmi_high and the low quad word (bits 0-63) is in xmmi_low.

ymmu

Optional attribute; read/write access; type: [[ii]*]. ((ymmu0_low, ymm0_high), ..., (ymmu15_low, ymmu15_high)). Each list represents the two upper quad words of an ymm register. register. The high quad word (bits 192-255) is in ymmi_high and the low quad word (bits 128-191) is in ymmi_low.

Class Attributes

architecture

Pseudo class attribute; read-only access; type: string. Implemented architecture (x86-64)

physical_bits

Pseudo class attribute; read-only access; type: integer. Number of physical address bits.

Command List

Commands defined by interface x86
break-vmread, break-vmwrite, trace-vmread, trace-vmwrite, unbreak-vmread, unbreak-vmwrite, untrace-vmread, untrace-vmwrite
Commands
aprof-viewsmanipulate list of selected address profiling views
break-processor-resetbreak on processor reset
break-segregbreak on control register updates
infoprint information about the object
memory-configurationprint memory configuration
msrsprint MSRs
pregs-fpuprint the x87 registers
pregs-sseprint the sse registers
print-acpi-tablesprint ACPI tables
print-gdtprint GDT
print-idtprint IDT
print-mp-tablesprint MP tables
print-tssprint TSS
print-vmcsprint VMCS
print-vmx-capprint VMX capabilities of CPU
statusprint status of the object
tablewalkaddress translation tablewalk
trace-segregtrace segment register updates
unbreak-processor-resetstop breaking on processor reset
unbreak-segregbreak on control register updates
untrace-segregtrace segment register updates
wait-for-processor-resetwait for a processor reset

x86-p4e x86_reset_signal_conv