Struct CommandFrame
pub struct CommandFrame {
pub extended_regs: ExtendedRegs,
pub gpregs: GpRegs,
pub restore_extended_registers: u64,
pub save_extended_registers: u64,
pub memory_mappings: MemoryMappings,
pub debug_regs: DebugRegs,
/* private fields */
}Expand description
The command frame is structured such that important values will be nicely aligned.
The extended register data is at the front, which means it will be aligned on a page bound. The GpRegs are aligned on a 1024-byte boundary. Memory mappings and other configuration follow after that. ! NOTE: Do not modify the field order without benchmarking! Ordering the fields incorrectly can easily cost ~5-10% performance.
Fields§
§extended_regs: ExtendedRegsData for the extended registers (3072 bytes)
gpregs: GpRegsThe basic general-purpose registers (184 bytes)
restore_extended_registers: u64The bitmask of extended registers that should be set (8 bytes)
save_extended_registers: u64The bitmask of extended registers that should be copied back into extended_register_data (8 bytes)
memory_mappings: MemoryMappingsThe memory mappings (780 bytes)
debug_regs: DebugRegsThe debugging registers DR0-DR3, DR6 & DR7 (48 bytes)
Implementations§
§impl CommandFrame
impl CommandFrame
pub fn new( gpregs: GpRegs, memory_mappings: impl Iterator<Item = MemoryMapping>, ) -> CommandFrame
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CommandFrame
impl RefUnwindSafe for CommandFrame
impl Send for CommandFrame
impl Sync for CommandFrame
impl Unpin for CommandFrame
impl UnsafeUnpin for CommandFrame
impl UnwindSafe for CommandFrame
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