RAIL configuration structure.
Public Attributes#
A pointer to a function, which is called whenever a RAIL event occurs.
A pointer for application convenience that is opaque to RAIL.
Another pointer for application convenience that is opaque to RAIL.
A value for application convenience that is opaque to RAIL.
The number of entries in the rx_packet_queue.
The number of bytes in the rx_fifo_buffer.
The number of bytes in the tx_fifo_buffer.
The number of data bytes already placed in the tx_fifo_buffer.
Pointer to the receive Packet Queue to use.
Pointer to the receive FIFO buffer to use.
Pointer to the transmit FIFO buffer to use.
Public Attribute Documentation#
events_callback#
sl_rail_events_callback_t sl_rail_config_t::events_callback
A pointer to a function, which is called whenever a RAIL event occurs.
See the sl_rail_events_t documentation for the list of RAIL events.
p_opaque_handle_0#
void* sl_rail_config_t::p_opaque_handle_0
A pointer for application convenience that is opaque to RAIL.
p_opaque_handle_1#
void* sl_rail_config_t::p_opaque_handle_1
Another pointer for application convenience that is opaque to RAIL.
opaque_value#
sl_rail_opaque_value_t sl_rail_config_t::opaque_value
A value for application convenience that is opaque to RAIL.
rx_packet_queue_entries#
uint16_t sl_rail_config_t::rx_packet_queue_entries
The number of entries in the rx_packet_queue.
May be set to 0 if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_rx_packet_queue() call. This queue is used by RAIL for storing received packet metadata in the order received. Its size indicates how many packets can be held by RAIL for the application to process before SL_RAIL_EVENT_RX_FIFO_OVERFLOW might occur.
sl_rail_init() may update this to a smaller size based on chip constraints.
rx_fifo_bytes#
uint16_t sl_rail_config_t::rx_fifo_bytes
The number of bytes in the rx_fifo_buffer.
May be set to 0 if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_rx_fifo() call.
sl_rail_init() may update this to a smaller size based on chip constraints.
tx_fifo_bytes#
uint16_t sl_rail_config_t::tx_fifo_bytes
The number of bytes in the tx_fifo_buffer.
Must be no more than SL_RAIL_MAXIMUM_FIFO_BYTES.
May be set to 0 if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_tx_fifo() call.
tx_fifo_init_bytes#
uint16_t sl_rail_config_t::tx_fifo_init_bytes
The number of data bytes already placed in the tx_fifo_buffer.
Set to 0 if the tx_fifo_buffer is initially empty, otherwise set it to the length of the pre-populated data already placed in the buffer. If this is larger than the FIFO's actual size, the FIFO will be filled only up to its actual size.
p_rx_packet_queue#
sl_rail_packet_queue_entry_t* sl_rail_config_t::p_rx_packet_queue
Pointer to the receive Packet Queue to use.
May be set to NULL if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_rx_packet_queue() call.
The receive Packet Queue must be allocated in global read-write memory with at least the number of entries indicated by rx_packet_queue_entries and with the appropriate alignment dictated by this type. It must persist for the duration of RAIL usage or until sl_rail_set_rx_packet_queue() is called to change it.
Enabled receive packet completion events add an entry to this queue which is removed when the sl_rail_config_t::events_callback() returns or when sl_rail_release_rx_packet() is called after sl_rail_hold_rx_packet().
Earlier versions of RAIL used a built-in fixed-size queue of 16 entries.
p_rx_fifo_buffer#
sl_rail_fifo_buffer_align_t* sl_rail_config_t::p_rx_fifo_buffer
Pointer to the receive FIFO buffer to use.
May be set to NULL if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_rx_fifo() call.
The receive FIFO buffer must be allocated in global read-write memory of at least the size indicated by rx_fifo_bytes and with the appropriate alignment dictated by this type. It must persist for the duration of RAIL usage or until sl_rail_set_rx_fifo() is called to change it.
Earlier versions of RAIL provided a default built-in receive FIFO of 512 bytes.
p_tx_fifo_buffer#
sl_rail_fifo_buffer_align_t* sl_rail_config_t::p_tx_fifo_buffer
Pointer to the transmit FIFO buffer to use.
May be set to NULL if application wants to defer specifying this at sl_rail_init() time to a later sl_rail_set_tx_fifo() call.
The transmit FIFO buffer must be allocated in global read-write memory of at least the size indicated by tx_fifo_bytes and with the appropriate alignment dictated by this type. It must persist for the duration of RAIL usage or until sl_rail_set_tx_fifo() is called to change it.