esp_wifi/radio/
radio_esp32c2.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::LP_TIMER);
16 interrupt::disable(crate::hal::system::Cpu::ProCpu, Interrupt::BT_MAC);
17 }
18}
19
20#[cfg(feature = "wifi")]
21#[no_mangle]
22extern "C" fn WIFI_MAC() {
23 unsafe {
24 let (fnc, arg) = crate::wifi::os_adapter::ISR_INTERRUPT_1;
25
26 trace!("interrupt WIFI_MAC {:?} {:?}", fnc, arg);
27
28 if !fnc.is_null() {
29 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
30 fnc(arg);
31 }
32
33 trace!("interrupt 1 done");
34 };
35}
36
37#[cfg(feature = "wifi")]
38#[no_mangle]
39extern "C" fn WIFI_PWR() {
40 unsafe {
41 let (fnc, arg) = crate::wifi::os_adapter::ISR_INTERRUPT_1;
42
43 trace!("interrupt WIFI_PWR {:?} {:?}", fnc, arg);
44
45 if !fnc.is_null() {
46 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
47 fnc(arg);
48 }
49
50 trace!("interrupt 1 done");
51 };
52}
53
54#[cfg(feature = "ble")]
55#[no_mangle]
56extern "C" fn LP_TIMER() {
57 unsafe {
58 trace!("LP_TIMER interrupt");
59
60 let (fnc, arg) = crate::ble::npl::ble_os_adapter_chip_specific::ISR_INTERRUPT_7;
61
62 trace!("interrupt LP_TIMER {:?} {:?}", fnc, arg);
63
64 if !fnc.is_null() {
65 trace!("interrupt LP_TIMER call");
66
67 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
68 fnc(arg);
69 trace!("LP_TIMER done");
70 }
71
72 trace!("interrupt LP_TIMER done");
73 };
74}
75
76#[cfg(feature = "ble")]
77#[no_mangle]
78extern "C" fn BT_MAC() {
79 unsafe {
80 trace!("BT_MAC interrupt");
81
82 let (fnc, arg) = crate::ble::npl::ble_os_adapter_chip_specific::ISR_INTERRUPT_4;
83
84 trace!("interrupt BT_MAC {:?} {:?}", fnc, arg);
85
86 if !fnc.is_null() {
87 trace!("interrupt BT_MAC call");
88
89 let fnc: fn(*mut binary::c_types::c_void) = core::mem::transmute(fnc);
90 fnc(arg);
91 trace!("BT_MAC done");
92 }
93
94 trace!("interrupt BT_MAC done");
95 };
96}