use core::arch::asm;
const IE_MASK: usize = 1 << 2;
#[inline]
pub fn local_irq_save_and_disable() -> usize {
let mut flags: usize = 0;
unsafe { asm!("csrxchg {}, {}, 0x0", inout(reg) flags, in(reg) IE_MASK) };
flags & IE_MASK
}
#[inline]
pub fn local_irq_restore(flags: usize) {
unsafe { asm!("csrxchg {}, {}, 0x0", in(reg) flags, in(reg) IE_MASK) };
}