x58_remap_unit1 x86-intel64
Quick-Start Platform x86 Reference Manual  /  4 Classes  / 

x86-core2

Description
The x86-core2 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_sse4_1

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

cpuid_ssse3

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

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_aperf

Pseudo attribute; read/write access; type: integer. Actual Performance Frequency Clock Count

ia32_bios_sign_id

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

ia32_clock_modulation

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

ia32_cr_pat

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

ia32_debugctl

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

ia32_ds_area

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

ia32_ebl_cr_poweron

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

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 Intel64 processor

ia32_fixed_ctr0

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 0

ia32_fixed_ctr1

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 1

ia32_fixed_ctr2

Optional attribute; read/write access; type: integer. Fixed-Function Performance Counter Register 2

ia32_fixed_ctr_ctrl

Optional attribute; read/write access; type: integer. Fixed-Function-Counter Control Register

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_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_addr

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

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_status

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

ia32_mc4_addr

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

ia32_mc4_ctl

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

ia32_mc4_status

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

ia32_mcg_cap

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

ia32_mcg_status

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

ia32_misc_enable

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

ia32_monitor_filter_size

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

ia32_mperf

Pseudo attribute; read/write access; type: integer. Maximum Performance Frequency Clock Count

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. MTRRfix16K_80000

ia32_mtrr_fix_16k_a0000

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

ia32_mtrr_fix_4k_c0000

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

ia32_mtrr_fix_4k_c8000

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

ia32_mtrr_fix_4k_d0000

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

ia32_mtrr_fix_4k_d8000

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

ia32_mtrr_fix_4k_e0000

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

ia32_mtrr_fix_4k_e8000

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

ia32_mtrr_fix_4k_f0000

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

ia32_mtrr_fix_4k_f8000

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

ia32_mtrr_fix_64k_00000

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

ia32_mtrr_physbase0

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

ia32_mtrr_physbase1

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

ia32_mtrr_physbase2

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

ia32_mtrr_physbase3

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

ia32_mtrr_physbase4

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

ia32_mtrr_physbase5

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

ia32_mtrr_physbase6

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

ia32_mtrr_physbase7

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

ia32_mtrr_physmask0

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

ia32_mtrr_physmask1

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

ia32_mtrr_physmask2

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

ia32_mtrr_physmask3

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

ia32_mtrr_physmask4

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

ia32_mtrr_physmask5

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

ia32_mtrr_physmask6

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

ia32_mtrr_physmask7

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

ia32_mtrrcap

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

ia32_p5_mc_addr

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

ia32_p5_mc_type

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

ia32_pebs_enable

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

ia32_perf_capabilities

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

ia32_perf_ctl

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

ia32_perf_global_ctrl

Pseudo attribute; read/write access; type: integer. Global Performance Counter Control

ia32_perf_global_status

Optional attribute; read/write access; type: integer. Global Performance Counter Status

ia32_perf_status

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

ia32_perfevtsel0

Optional attribute; read/write access; type: integer. Performance Event Select Register 0

ia32_perfevtsel1

Optional attribute; read/write access; type: integer. Performance Event Select Register 1

ia32_platform_id

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

ia32_pmc0

Pseudo attribute; read/write access; type: integer. Performance counter register

ia32_pmc1

Pseudo attribute; read/write access; type: integer. Performance counter register

ia32_star

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

ia32_sysenter_cs

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

ia32_sysenter_eip

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

ia32_sysenter_esp

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

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_unknown_116

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x116

ia32_unknown_118

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x118

ia32_unknown_11b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x11b

ia32_unknown_11c

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x11c

ia32_unknown_14a

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x14a

ia32_unknown_14b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x14b

ia32_unknown_14c

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x14c

ia32_unknown_14e

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x14e

ia32_unknown_14f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x14f

ia32_unknown_151

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x151

ia32_unknown_15f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x15f

ia32_unknown_193

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x193

ia32_unknown_194

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x194

ia32_unknown_19e

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x19e

ia32_unknown_19f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x19f

ia32_unknown_1a1

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1a1

ia32_unknown_1a2

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1a2

ia32_unknown_1aa

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1aa

ia32_unknown_1bf

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1bf

ia32_unknown_1d3

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1d3

ia32_unknown_1db

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1db

ia32_unknown_1dc

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1dc

ia32_unknown_1e0

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1e0

ia32_unknown_1f8

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1f8

ia32_unknown_1f9

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1f9

ia32_unknown_1fa

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x1fa

ia32_unknown_21

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x21

ia32_unknown_2f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x2f

ia32_unknown_32

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x32

ia32_unknown_33

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x33

ia32_unknown_3f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x3f

ia32_unknown_478

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x478

ia32_unknown_4a

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4a

ia32_unknown_4b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4b

ia32_unknown_4c

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4c

ia32_unknown_4d

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4d

ia32_unknown_4e

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4e

ia32_unknown_4f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4f

ia32_unknown_4f8

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4f8

ia32_unknown_4f9

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4f9

ia32_unknown_4fa

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4fa

ia32_unknown_4fb

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4fb

ia32_unknown_4fc

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4fc

ia32_unknown_4fd

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4fd

ia32_unknown_4fe

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4fe

ia32_unknown_4ff

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x4ff

ia32_unknown_590

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x590

ia32_unknown_591

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x591

ia32_unknown_5a0

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x5a0

ia32_unknown_5a1

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x5a1

ia32_unknown_6c

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x6c

ia32_unknown_6d

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x6d

ia32_unknown_6e

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x6e

ia32_unknown_6f

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x6f

ia32_unknown_9b

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0x9b

ia32_unknown_a8

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xa8

ia32_unknown_a9

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xa9

ia32_unknown_aa

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xaa

ia32_unknown_ab

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xab

ia32_unknown_ac

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xac

ia32_unknown_ad

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xad

ia32_unknown_c7

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xc7

ia32_unknown_ce

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xce

ia32_unknown_e0

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe0

ia32_unknown_e1

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe1

ia32_unknown_e2

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe2

ia32_unknown_e3

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe3

ia32_unknown_e4

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe4

ia32_unknown_e5

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xe5

ia32_unknown_ee

Pseudo attribute; read/write access; type: integer. Unknown MSR at 0xee

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_aperf

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

msr_bbl_cr_ctl3

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

msr_emon_l3_ctr_ctl0

Optional attribute; read/write access; type: integer. GBUSQ Event Control/Counter Register

msr_emon_l3_ctr_ctl1

Optional attribute; read/write access; type: integer. GBUSQ Event Control/Counter Register

msr_emon_l3_ctr_ctl2

Optional attribute; read/write access; type: integer. GSNPQ Event Control/Counter Register

msr_emon_l3_ctr_ctl3

Optional attribute; read/write access; type: integer. GSNPQ Event Control/Counter Register

msr_emon_l3_ctr_ctl4

Optional attribute; read/write access; type: integer. FSB Event Control/Counter Register

msr_emon_l3_ctr_ctl5

Optional attribute; read/write access; type: integer. FSB Event Control/Counter Register

msr_emon_l3_ctr_ctl6

Optional attribute; read/write access; type: integer. FSB Event Control/Counter Register

msr_emon_l3_ctr_ctl7

Optional attribute; read/write access; type: integer. FSB Event Control/Counter Register

msr_emon_l3_gl_ctl

Optional attribute; read/write access; type: integer. L3/FSB Common Control Register

msr_fsb_freq

Pseudo attribute; read/write access; type: integer. Scaleable Bus Speed

msr_lastbranch_0_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 0 From IP

msr_lastbranch_0_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 0 To IP

msr_lastbranch_1_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 1 From IP

msr_lastbranch_1_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 1 To IP

msr_lastbranch_2_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 2 From IP

msr_lastbranch_2_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 2 To IP

msr_lastbranch_3_from_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 3 From IP

msr_lastbranch_3_to_ip

Pseudo attribute; read/write access; type: integer. Last Branch Record 3 To IP

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_mc5_ctl

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

msr_mc5_status

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

msr_mperf

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

msr_therm2_ctl

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.

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

x58_remap_unit1 x86-intel64