#![cfg_attr(not(test), no_std)]
#![doc = include_str!("../README.md")]
mod base;
use kernel_guard::{NoOp, NoPreempt, NoPreemptIrqSave};
pub use self::base::{BaseSpinLock, BaseSpinLockGuard};
pub type SpinNoPreempt<T> = BaseSpinLock<NoPreempt, T>;
pub type SpinNoPreemptGuard<'a, T> = BaseSpinLockGuard<'a, NoPreempt, T>;
pub type SpinNoIrq<T> = BaseSpinLock<NoPreemptIrqSave, T>;
pub type SpinNoIrqGuard<'a, T> = BaseSpinLockGuard<'a, NoPreemptIrqSave, T>;
pub type SpinRaw<T> = BaseSpinLock<NoOp, T>;
pub type SpinRawGuard<'a, T> = BaseSpinLockGuard<'a, NoOp, T>;