From 77c44ccb763754efb5c341c0d1425e0840489af1 Mon Sep 17 00:00:00 2001 From: bunnie Date: Sun, 25 Apr 2021 18:49:57 +0800 Subject: [PATCH] depracate use of SIE by storing SIM to RAM-based backing --- kernel/src/arch/riscv/irq.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/src/arch/riscv/irq.rs b/kernel/src/arch/riscv/irq.rs index 28961081d..7958908e2 100644 --- a/kernel/src/arch/riscv/irq.rs +++ b/kernel/src/arch/riscv/irq.rs @@ -18,14 +18,17 @@ extern "C" { fn flush_mmu(); } +// use RAM-based backing so this variable is automatically saved on suspend +static mut SIM_BACKING: usize = 0; /// Disable external interrupts pub fn disable_all_irqs() { - unsafe { sie::clear_sext() }; + unsafe{SIM_BACKING = sim::read()}; + sim::write(0x0); } /// Enable external interrupts pub fn enable_all_irqs() { - unsafe { sie::set_sext() }; + sim::write(unsafe{SIM_BACKING}); } pub fn enable_irq(irq_no: usize) {