Type Alias simics_api_sys::x86_reg_access_interface_t
source · pub type x86_reg_access_interface_t = x86_reg_access_interface;
Aliased Type§
struct x86_reg_access_interface_t {Show 51 fields
pub get_gpr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> u64>,
pub set_gpr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: u64)>,
pub get_rip: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>,
pub set_rip: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub get_rflags: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>,
pub set_rflags: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub set_status_flags: Option<unsafe extern "C" fn(_: *mut conf_object, _: u16)>,
pub get_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_seg_t) -> x86_seg_reg_t>,
pub set_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_seg_t, _: x86_seg_reg_t)>,
pub get_system_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_system_seg_t) -> x86_system_seg_reg_t>,
pub set_system_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_system_seg_t, _: x86_system_seg_reg_t)>,
pub get_cr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_cr_t) -> u64>,
pub set_cr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_cr_t, _: u64)>,
pub get_efer: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>,
pub set_efer: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub get_xcr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_xcr_t) -> u64>,
pub set_xcr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_xcr_t, _: u64)>,
pub get_freg: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> x86_fpu_reg_t>,
pub set_freg: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: x86_fpu_reg_t)>,
pub get_fpu_env: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_fpu_env_t>,
pub set_fpu_env: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_fpu_env_t)>,
pub get_xmm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> xmm_reg_t>,
pub set_xmm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: xmm_reg_t)>,
pub get_ymm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> ymm_reg_t>,
pub set_ymm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: ymm_reg_t)>,
pub get_mxcsr: Option<unsafe extern "C" fn(_: *mut conf_object) -> u32>,
pub set_mxcsr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32)>,
pub get_dr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_dr_t) -> u64>,
pub set_dr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_dr_t, _: u64)>,
pub get_in_smm: Option<unsafe extern "C" fn(_: *mut conf_object) -> bool>,
pub set_in_smm: Option<unsafe extern "C" fn(_: *mut conf_object, _: bool)>,
pub get_smm_base: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>,
pub set_smm_base: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub get_monitor_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_monitor_info_t>,
pub set_monitor_info: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_monitor_info_t)>,
pub get_mwait_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_mwait_info_t>,
pub set_mwait_info: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_mwait_info_t)>,
pub get_activity_state: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_activity_t>,
pub set_activity_state: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_activity_t)>,
pub get_interruptibility_state: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_intstate_t>,
pub set_interruptibility_state: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_intstate_t)>,
pub get_pending_debug_exc: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_pending_debug_exc_t>,
pub set_pending_debug_exc: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_pending_debug_exc_t)>,
pub get_xmode_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_xmode_info_t>,
pub get_exec_mode: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_exec_mode_t>,
pub get_mxcsr_mask: Option<unsafe extern "C" fn(_: *mut conf_object) -> u32>,
pub get_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>,
pub or_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub and_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>,
pub get_pdpte: Option<unsafe extern "C" fn(_: *mut conf_object, _: i32) -> u64>,
pub set_pdpte: Option<unsafe extern "C" fn(_: *mut conf_object, _: i32, _: u64)>,
}
Fields§
§get_gpr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> u64>
§set_gpr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: u64)>
§get_rip: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>
§set_rip: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§get_rflags: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>
§set_rflags: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§set_status_flags: Option<unsafe extern "C" fn(_: *mut conf_object, _: u16)>
Possibly faster method for setting only cf,pf,af,zf,sf,of
get_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_seg_t) -> x86_seg_reg_t>
Regular segment registers
set_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_seg_t, _: x86_seg_reg_t)>
§get_system_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_system_seg_t) -> x86_system_seg_reg_t>
IDTR and GDTR
set_system_seg: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_system_seg_t, _: x86_system_seg_reg_t)>
§get_cr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_cr_t) -> u64>
Control registers
set_cr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_cr_t, _: u64)>
§get_efer: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>
§set_efer: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§get_xcr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_xcr_t) -> u64>
§set_xcr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_xcr_t, _: u64)>
§get_freg: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> x86_fpu_reg_t>
x87 FPU
set_freg: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: x86_fpu_reg_t)>
§get_fpu_env: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_fpu_env_t>
§set_fpu_env: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_fpu_env_t)>
§get_xmm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> xmm_reg_t>
SIMD
set_xmm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: xmm_reg_t)>
§get_ymm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32) -> ymm_reg_t>
§set_ymm: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32, _: ymm_reg_t)>
§get_mxcsr: Option<unsafe extern "C" fn(_: *mut conf_object) -> u32>
§set_mxcsr: Option<unsafe extern "C" fn(_: *mut conf_object, _: u32)>
§get_dr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_dr_t) -> u64>
Debug registers
set_dr: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_dr_t, _: u64)>
§get_in_smm: Option<unsafe extern "C" fn(_: *mut conf_object) -> bool>
SMM
set_in_smm: Option<unsafe extern "C" fn(_: *mut conf_object, _: bool)>
§get_smm_base: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>
§set_smm_base: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§get_monitor_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_monitor_info_t>
Monitor/Mwait
set_monitor_info: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_monitor_info_t)>
§get_mwait_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_mwait_info_t>
§set_mwait_info: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_mwait_info_t)>
§get_activity_state: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_activity_t>
Non-register state
set_activity_state: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_activity_t)>
§get_interruptibility_state: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_intstate_t>
§set_interruptibility_state: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_intstate_t)>
§get_pending_debug_exc: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_pending_debug_exc_t>
A debug exception is pending if triggered by the last instruction, but not yet taken.
set_pending_debug_exc: Option<unsafe extern "C" fn(_: *mut conf_object, _: x86_pending_debug_exc_t)>
§get_xmode_info: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_xmode_info_t>
Derived state for fast/easy access
get_exec_mode: Option<unsafe extern "C" fn(_: *mut conf_object) -> x86_exec_mode_t>
§get_mxcsr_mask: Option<unsafe extern "C" fn(_: *mut conf_object) -> u32>
This is configuration info. No need for a set method.
get_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object) -> u64>
Extension state dirty bit modification (for XSAVE)
or_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§and_ext_state_dirty_bits: Option<unsafe extern "C" fn(_: *mut conf_object, _: u64)>
§get_pdpte: Option<unsafe extern "C" fn(_: *mut conf_object, _: i32) -> u64>
PDPTE registers used in PAE paging mode
set_pdpte: Option<unsafe extern "C" fn(_: *mut conf_object, _: i32, _: u64)>