esp_wifi/wifi/
os_adapter_esp32s2.rs
use crate::hal::{interrupt, peripherals};
pub(crate) fn chip_ints_on(mask: u32) {
unsafe { crate::hal::xtensa_lx::interrupt::enable_mask(mask) };
}
pub(crate) fn chip_ints_off(mask: u32) {
crate::hal::xtensa_lx::interrupt::disable_mask(mask);
}
pub(crate) unsafe extern "C" fn set_intr(
_cpu_no: i32,
intr_source: u32,
intr_num: u32,
_intr_prio: i32,
) {
extern "C" {
fn intr_matrix_set(cpu_no: u32, model_num: u32, intr_num: u32);
}
intr_matrix_set(0, intr_source, intr_num);
}
pub(crate) unsafe extern "C" fn phy_common_clock_disable() {
crate::common_adapter::chip_specific::phy_disable_clock();
}
pub(crate) unsafe extern "C" fn phy_common_clock_enable() {
crate::common_adapter::chip_specific::phy_enable_clock();
}
pub unsafe extern "C" fn set_isr(
n: i32,
f: *mut crate::binary::c_types::c_void,
arg: *mut crate::binary::c_types::c_void,
) {
trace!("set_isr - interrupt {} function {:?} arg {:?}", n, f, arg);
match n {
0 => {
crate::wifi::ISR_INTERRUPT_1 = (f, arg);
}
1 => {
crate::wifi::ISR_INTERRUPT_1 = (f, arg);
}
_ => panic!("set_isr - unsupported interrupt number {}", n),
}
#[cfg(feature = "wifi")]
{
unwrap!(interrupt::enable(
peripherals::Interrupt::WIFI_MAC,
interrupt::Priority::Priority1,
));
unwrap!(interrupt::enable(
peripherals::Interrupt::WIFI_PWR,
interrupt::Priority::Priority1,
));
}
}