#[inline(always)]
pub fn bkpt() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("bkpt" :::: "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __bkpt();
}
__bkpt();
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn nop() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("nop" :::: "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __nop();
}
__nop()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn wfe() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("wfe" :::: "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __wfe();
}
__wfe()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn wfi() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("wfi" :::: "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __wfi();
}
__wfi()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn sev() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("sev" :::: "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __sev();
}
__sev()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn isb() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("isb 0xF" ::: "memory" : "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __isb();
}
__isb()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn dsb() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("dsb 0xF" ::: "memory" : "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __dsb();
}
__dsb()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}
#[inline]
pub fn dmb() {
match () {
#[cfg(all(cortex_m, feature = "inline-asm"))]
() => unsafe { asm!("dmb 0xF" ::: "memory" : "volatile") },
#[cfg(all(cortex_m, not(feature = "inline-asm")))]
() => unsafe {
extern "C" {
fn __dmb();
}
__dmb()
},
#[cfg(not(cortex_m))]
() => unimplemented!(),
}
}