#![allow(non_snake_case)]
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(cpsie))]
pub unsafe fn __enable_irq() {
asm!("cpsie i" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(cpsid))]
pub unsafe fn __disable_irq() {
asm!("cpsid i" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_CONTROL() -> u32 {
let result: u32;
asm!("mrs $0, CONTROL" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_CONTROL(control: u32) {
asm!("msr CONTROL, $0" : : "r"(control) : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_IPSR() -> u32 {
let result: u32;
asm!("mrs $0, IPSR" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_APSR() -> u32 {
let result: u32;
asm!("mrs $0, APSR" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_xPSR() -> u32 {
let result: u32;
asm!("mrs $0, XPSR" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_PSP() -> u32 {
let result: u32;
asm!("mrs $0, PSP" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_PSP(top_of_proc_stack: u32) {
asm!("msr PSP, $0" : : "r"(top_of_proc_stack) : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_MSP() -> u32 {
let result: u32;
asm!("mrs $0, MSP" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_MSP(top_of_main_stack: u32) {
asm!("msr MSP, $0" : : "r"(top_of_main_stack) : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_PRIMASK() -> u32 {
let result: u32;
asm!("mrs $0, PRIMASK" : "=r"(result) : : "memory" : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_PRIMASK(pri_mask: u32) {
asm!("msr PRIMASK, $0" : : "r"(pri_mask) : : "volatile");
}
#[cfg(any(target_feature = "v7", dox))]
mod v7 {
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(cpsie))]
pub unsafe fn __enable_fault_irq() {
asm!("cpsie f" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(cpsid))]
pub unsafe fn __disable_fault_irq() {
asm!("cpsid f" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_BASEPRI() -> u32 {
let result: u32;
asm!("mrs $0, BASEPRI" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_BASEPRI(base_pri: u32) {
asm!("msr BASEPRI, $0" : : "r"(base_pri) : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __set_BASEPRI_MAX(base_pri: u32) {
asm!("msr BASEPRI_MAX, $0" : : "r"(base_pri) : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(mrs))]
pub unsafe fn __get_FAULTMASK() -> u32 {
let result: u32;
asm!("mrs $0, FAULTMASK" : "=r"(result) : : : "volatile");
result
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(msr))]
pub unsafe fn __set_FAULTMASK(fault_mask: u32) {
asm!("msr FAULTMASK, $0" : : "r"(fault_mask) : "memory" : "volatile");
}
}
#[cfg(any(target_feature = "v7", dox))]
pub use self::v7::*;
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(nop))]
pub unsafe fn __NOP() {
asm!("nop" : : : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(wfi))]
pub unsafe fn __WFI() {
asm!("wfi" : : : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(wfe))]
pub unsafe fn __WFE() {
asm!("wfe" : : : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(sev))]
pub unsafe fn __SEV() {
asm!("sev" : : : : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(isb))]
pub unsafe fn __ISB() {
asm!("isb 0xF" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(dsb))]
pub unsafe fn __DSB() {
asm!("dsb 0xF" : : : "memory" : "volatile");
}
#[inline]
#[target_feature(enable = "mclass")]
#[cfg_attr(test, assert_instr(dmb))]
pub unsafe fn __DMB() {
asm!("dmb 0xF" : : : "memory" : "volatile");
}