#[allow(dead_code)]
const EXCEPTION_KS0: usize = 0x30;
#[allow(dead_code)]
const EXCEPTION_KS1: usize = 0x31;
#[allow(dead_code)]
const EXCEPTION_KS2: usize = 0x32;
#[allow(missing_docs)]
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct GeneralRegisters {
pub zero: usize,
pub ra: usize,
pub tp: usize,
pub sp: usize,
pub a0: usize,
pub a1: usize,
pub a2: usize,
pub a3: usize,
pub a4: usize,
pub a5: usize,
pub a6: usize,
pub a7: usize,
pub t0: usize,
pub t1: usize,
pub t2: usize,
pub t3: usize,
pub t4: usize,
pub t5: usize,
pub t6: usize,
pub t7: usize,
pub t8: usize,
pub u0: usize,
pub fp: usize,
pub s0: usize,
pub s1: usize,
pub s2: usize,
pub s3: usize,
pub s4: usize,
pub s5: usize,
pub s6: usize,
pub s7: usize,
pub s8: usize,
}
#[allow(dead_code)]
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct FpuState {
pub fp: [u64; 32],
pub fcc: [u8; 8],
pub fcsr: u32,
}
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct TrapFrame {
pub regs: GeneralRegisters,
pub prmd: usize,
pub era: usize,
}
impl TrapFrame {
#[allow(dead_code)]
pub const fn arg0(&self) -> usize {
self.regs.a0 as _
}
#[allow(dead_code)]
pub const fn arg1(&self) -> usize {
self.regs.a1 as _
}
#[allow(dead_code)]
pub const fn arg2(&self) -> usize {
self.regs.a2 as _
}
#[allow(dead_code)]
pub const fn arg3(&self) -> usize {
self.regs.a3 as _
}
#[allow(dead_code)]
pub const fn arg4(&self) -> usize {
self.regs.a4 as _
}
#[allow(dead_code)]
pub const fn arg5(&self) -> usize {
self.regs.a5 as _
}
}
#[allow(dead_code)]
#[allow(missing_docs)]
#[repr(C)]
#[derive(Debug, Default)]
pub struct TaskContext {
pub ra: usize,
pub sp: usize,
pub s: [usize; 10],
pub tp: usize,
}
impl TaskContext {
#[allow(dead_code)]
pub fn new() -> Self {
Self::default()
}
#[allow(dead_code)]
pub fn switch_to(&mut self, _next_ctx: &Self) {
}
}