pub trait ThreadContext: Sized {
Show 13 methods
// Required methods
fn new() -> Self;
fn init(
&mut self,
entry_point: usize,
stack_pointer: usize,
kernel_stack: usize,
);
fn get_instruction_pointer(&self) -> usize;
fn set_instruction_pointer(&mut self, ip: usize);
fn get_stack_pointer(&self) -> usize;
fn set_stack_pointer(&mut self, sp: usize);
fn get_kernel_stack(&self) -> usize;
fn set_kernel_stack(&mut self, sp: usize);
fn set_return_value(&mut self, value: usize);
fn set_tls_base(&mut self, base: u64);
fn tls_base(&self) -> u64;
fn clone_from(&mut self, other: &Self);
fn to_task_context(&self) -> TaskContext;
}Expand description
Thread context trait
Required Methods§
Sourcefn init(
&mut self,
entry_point: usize,
stack_pointer: usize,
kernel_stack: usize,
)
fn init( &mut self, entry_point: usize, stack_pointer: usize, kernel_stack: usize, )
Initialize context for a new thread
Sourcefn get_instruction_pointer(&self) -> usize
fn get_instruction_pointer(&self) -> usize
Get instruction pointer
Sourcefn set_instruction_pointer(&mut self, ip: usize)
fn set_instruction_pointer(&mut self, ip: usize)
Set instruction pointer
Sourcefn get_stack_pointer(&self) -> usize
fn get_stack_pointer(&self) -> usize
Get stack pointer
Sourcefn set_stack_pointer(&mut self, sp: usize)
fn set_stack_pointer(&mut self, sp: usize)
Set stack pointer
Sourcefn get_kernel_stack(&self) -> usize
fn get_kernel_stack(&self) -> usize
Get kernel stack pointer
Sourcefn set_kernel_stack(&mut self, sp: usize)
fn set_kernel_stack(&mut self, sp: usize)
Set kernel stack pointer
Sourcefn set_return_value(&mut self, value: usize)
fn set_return_value(&mut self, value: usize)
Set return value (for syscalls, fork, etc.)
Sourcefn set_tls_base(&mut self, base: u64)
fn set_tls_base(&mut self, base: u64)
Set user TLS base for this context (FS/TP).
Sourcefn clone_from(&mut self, other: &Self)
fn clone_from(&mut self, other: &Self)
Clone the context
Sourcefn to_task_context(&self) -> TaskContext
fn to_task_context(&self) -> TaskContext
Convert to scheduler’s TaskContext
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.