esp_wifi/radio/
radio_esp32c3.rs
1#[cfg(any(feature = "wifi", feature = "ble"))]
2#[allow(unused_imports)]
3use crate::{
4 binary,
5 hal::{interrupt, peripherals::Interrupt},
6};
7
8pub(crate) fn setup_radio_isr() {
9 }
11
12pub(crate) fn shutdown_radio_isr() {
13 #[cfg(feature = "ble")]
14 {
15 interrupt::disable(crate::hal::system::Cpu::ProCpu, Interrupt::RWBT);
16 interrupt::disable(crate::hal::system::Cpu::ProCpu, Interrupt::RWBLE);
17 interrupt::disable(crate::hal::system::Cpu::ProCpu, Interrupt::BT_BB);
18 }
19}
20
21#[cfg(feature = "wifi")]
22#[no_mangle]
23extern "C" fn WIFI_MAC() {
24 unsafe {
25 let (fnc, arg) = crate::wifi::os_adapter::ISR_INTERRUPT_1;
26
27 trace!("interrupt WIFI_MAC {:?} {:?}", fnc, arg);
28
29 if !fnc.is_null() {
30 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
31 fnc(arg);
32 }
33
34 trace!("interrupt 1 done");
35 };
36}
37
38#[cfg(feature = "wifi")]
39#[no_mangle]
40extern "C" fn WIFI_PWR() {
41 unsafe {
42 let (fnc, arg) = crate::wifi::os_adapter::ISR_INTERRUPT_1;
43
44 trace!("interrupt WIFI_PWR {:?} {:?}", fnc, arg);
45
46 if !fnc.is_null() {
47 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
48 fnc(arg);
49 }
50
51 trace!("interrupt 1 done");
52 };
53}
54
55#[cfg(feature = "ble")]
56#[no_mangle]
57extern "C" fn RWBT() {
58 unsafe {
59 let (fnc, arg) = crate::ble::btdm::ble_os_adapter_chip_specific::BT_INTERRUPT_FUNCTION5;
60
61 trace!("interrupt RWBT {:?} {:?}", fnc, arg);
62
63 if !fnc.is_null() {
64 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
65 fnc(arg);
66 }
67
68 trace!("interrupt 5 done");
69 };
70}
71
72#[cfg(feature = "ble")]
73#[no_mangle]
74extern "C" fn RWBLE() {
75 unsafe {
76 let (fnc, arg) = crate::ble::btdm::ble_os_adapter_chip_specific::BT_INTERRUPT_FUNCTION8;
77
78 trace!("interrupt RWBLE {:?} {:?}", fnc, arg);
79
80 if !fnc.is_null() {
81 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
82 fnc(arg);
83 }
84
85 trace!("interrupt 5 done");
86 };
87}
88
89#[cfg(feature = "ble")]
90#[no_mangle]
91extern "C" fn BT_BB(_trap_frame: &mut crate::hal::interrupt::TrapFrame) {
92 unsafe {
93 let (fnc, arg) = crate::ble::btdm::ble_os_adapter_chip_specific::BT_INTERRUPT_FUNCTION5;
94
95 trace!("interrupt BT_BB {:?} {:?}", fnc, arg);
96
97 if !fnc.is_null() {
98 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
99 fnc(arg);
100 }
101
102 trace!("interrupt 8 done");
103 };
104}