Struct context_switch_avx::ContextAVX
source · #[repr(C, packed(1))]pub struct ContextAVX { /* private fields */ }
Expand description
The registers saved before a context switch and restored after a context switch for AVX-enabled Tasks.
Note: the order of the registers here MUST MATCH the order of
registers popped in the restore_registers_avx!
macro.
Implementations§
source§impl ContextAVX
impl ContextAVX
sourcepub fn new(rip: usize) -> ContextAVX
pub fn new(rip: usize) -> ContextAVX
Creates a new ContextAVX struct that will cause the
AVX-enabled Task containing it to begin its execution at the given rip
.
sourcepub fn set_first_register(&mut self, value: usize)
pub fn set_first_register(&mut self, value: usize)
Sets the value of the first regular (non-AVX) register to the given value
.
This is useful for storing a value (e.g., task ID) in that register
and then recovering it later with read_first_register()
.
On x86_64, this sets the r15
register.
Trait Implementations§
impl FromBytes for ContextAVX
Auto Trait Implementations§
impl RefUnwindSafe for ContextAVX
impl Send for ContextAVX
impl Sync for ContextAVX
impl Unpin for ContextAVX
impl UnwindSafe for ContextAVX
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
Mutably borrows from an owned value. Read more