awkernel_sync 0.1.0

no_std synchronization primitives (mutex, rwlock, spinlock, MCS lock) with interrupt guards for the Awkernel operating system.
#[inline(always)]
pub fn get_flag() -> usize {
    if x86_64::instructions::interrupts::are_enabled() {
        1
    } else {
        0
    }
}

#[inline(always)]
pub fn disable() {
    x86_64::instructions::interrupts::disable();
}

#[inline(always)]
pub fn set_flag(flag: usize) {
    if flag == 0 {
        x86_64::instructions::interrupts::disable();
    } else {
        x86_64::instructions::interrupts::enable();
    }
}

#[inline(always)]
pub fn are_enabled() -> bool {
    x86_64::instructions::interrupts::are_enabled()
}