//! Implementation of [`TaskContext`] use crate::trap::trap_return; #[repr(C)] /// task context structure containing some registers pub struct TaskContext { ra: usize, sp: usize, s: [usize; 12], } impl TaskContext { pub fn zero_init() -> Self { Self { ra: 0, sp: 0, s: [0; 12], } } pub fn goto_trap_return(kstack_ptr: usize) -> Self { Self { ra: trap_return as usize, sp: kstack_ptr, s: [0; 12], } } }