Struct simics_api_sys::instruction_info
source · #[repr(C)]pub struct instruction_info {
pub ii_ServiceRoutine: service_routine_t,
pub ii_Arg: uint64,
pub ii_Type: c_uint,
pub ii_UserData: *mut lang_void,
pub ii_LogicalAddress: logical_address_t,
pub ii_PhysicalAddress: physical_address_t,
}
Expand description
ii_ServiceRoutine is a pointer to a function that will be called by Simics every time the instruction is executed. It has the following prototype:
The service routine function should return an exception when it is
finished to signal its status. If no exception occurs
See
A special return value,
Note that in a shared memory multiprocessor, the CPU used in decoding may differ from the CPU that executes the instruction, since the decoded instructions may be cached.
ii_Arg is the argument arg that will be passed on to the service routine function. Op code bit-fields for the instruction such as register numbers or intermediate values can be stored here. The ii_UserData field can also be used to pass information to the service routine if more data is needed.
ii_Type is either
ii_LogicalAddress and ii_PhysicalAddress holds the logical and physical addresses of the instruction to be decoded.
Fields§
§ii_ServiceRoutine: service_routine_t
§ii_Arg: uint64
§ii_Type: c_uint
§ii_UserData: *mut lang_void
§ii_LogicalAddress: logical_address_t
§ii_PhysicalAddress: physical_address_t
Trait Implementations§
source§impl Clone for instruction_info
impl Clone for instruction_info
source§fn clone(&self) -> instruction_info
fn clone(&self) -> instruction_info
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for instruction_info
impl Debug for instruction_info
source§impl Default for instruction_info
impl Default for instruction_info
source§impl Hash for instruction_info
impl Hash for instruction_info
source§impl Ord for instruction_info
impl Ord for instruction_info
source§fn cmp(&self, other: &instruction_info) -> Ordering
fn cmp(&self, other: &instruction_info) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for instruction_info
impl PartialEq for instruction_info
source§impl PartialOrd for instruction_info
impl PartialOrd for instruction_info
impl Copy for instruction_info
impl Eq for instruction_info
impl StructuralPartialEq for instruction_info
Auto Trait Implementations§
impl Freeze for instruction_info
impl RefUnwindSafe for instruction_info
impl !Send for instruction_info
impl !Sync for instruction_info
impl Unpin for instruction_info
impl UnwindSafe for instruction_info
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)