7#ifndef NRF_802154_CALLBACKS_DISPATCHER_H__
8#define NRF_802154_CALLBACKS_DISPATCHER_H__
21#include <nrf_802154_const.h>
22#include <nrf_802154_types.h>
30#include <zephyr/sys/iterable_sections.h>
33#define NRF_802154_CALLBACKS_DISPATCHER_INDEX_NONE UINT32_MAX
39 uint8_t
mac[EXTENDED_ADDRESS_SIZE];
54 const nrf_802154_transmit_done_metadata_t *metadata);
56 const nrf_802154_transmit_done_metadata_t *metadata);
60#if defined(CONFIG_NRF_802154_SER_HOST)
61 void (*serialization_error)(
const nrf_802154_ser_err_data_t *err);
82#define NRF_802154_CALLBACKS_DISPATCHER_NAME_STR(x) #x
83#define NRF_802154_CALLBACKS_DISPATCHER_NAME_STR_EXPAND(x) \
84 NRF_802154_CALLBACKS_DISPATCHER_NAME_STR(x)
95#define NRF_802154_CALLBACKS_DISPATCHER_REGISTER(_entry_name, _callbacks_var) \
96 static STRUCT_SECTION_ITERABLE(nrf_802154_cb_dispatch_entry, _entry_name) = { \
97 .name = NRF_802154_CALLBACKS_DISPATCHER_NAME_STR_EXPAND(_entry_name), \
98 .callbacks = &(_callbacks_var), \
99 .saved_configuration = false, \
100 .ext_address = {0}, \
101 .short_address = 0, \
int nrf_802154_callbacks_dispatcher_switch(const char *name)
Switch the active IEEE 802.15.4 radio driver client.
void(* energy_detected)(const nrf_802154_energy_detected_t *result)
Definition nrf_802154_callbacks_dispatcher.h:57
void(* init)(void)
Definition nrf_802154_callbacks_dispatcher.h:48
void(* received_timestamp_raw)(uint8_t *data, int8_t power, uint8_t lqi, uint64_t time)
Definition nrf_802154_callbacks_dispatcher.h:50
void(* transmitted_raw)(uint8_t *frame, const nrf_802154_transmit_done_metadata_t *metadata)
Definition nrf_802154_callbacks_dispatcher.h:53
void(* receive_failed)(nrf_802154_rx_error_t error, uint32_t id)
Definition nrf_802154_callbacks_dispatcher.h:51
void(* transmit_failed)(uint8_t *frame, nrf_802154_tx_error_t error, const nrf_802154_transmit_done_metadata_t *metadata)
Definition nrf_802154_callbacks_dispatcher.h:55
void(* tx_ack_started)(const uint8_t *data)
Definition nrf_802154_callbacks_dispatcher.h:52
void(* energy_detection_failed)(nrf_802154_ed_error_t error)
Definition nrf_802154_callbacks_dispatcher.h:58
void(* deinit)(void)
Definition nrf_802154_callbacks_dispatcher.h:49
Callbacks for the nRF IEEE 802.15.4 radio driver.
Definition nrf_802154_callbacks_dispatcher.h:47
bool saved_configuration
Definition nrf_802154_callbacks_dispatcher.h:72
const char * name
Definition nrf_802154_callbacks_dispatcher.h:68
uint8_t pan_id[PAN_ID_SIZE]
Definition nrf_802154_callbacks_dispatcher.h:78
uint16_t short_address
Definition nrf_802154_callbacks_dispatcher.h:76
uint8_t ext_address[EXTENDED_ADDRESS_SIZE]
Definition nrf_802154_callbacks_dispatcher.h:74
const struct nrf_802154_callbacks * callbacks
Definition nrf_802154_callbacks_dispatcher.h:70
Static registration entry in the iterable linker section.
Definition nrf_802154_callbacks_dispatcher.h:66
uint8_t pan_id[PAN_ID_SIZE]
Definition nrf_802154_callbacks_dispatcher.h:37
uint8_t mac[EXTENDED_ADDRESS_SIZE]
Definition nrf_802154_callbacks_dispatcher.h:39
uint8_t short_address[SHORT_ADDRESS_SIZE]
Definition nrf_802154_callbacks_dispatcher.h:38
Radio addresses applied after a client switch.
Definition nrf_802154_callbacks_dispatcher.h:36