Bluetooth: Controller: Change node_rx_type to auto incrementing enum

Instead of having explicit values for each entry in the enum that
has to be updated for each new entry (thus requiring manual work
which can also be error-prone), the enum will now be
self-incrementing, to make it easier and safer to add new
entries.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2020-11-10 13:51:28 +01:00 committed by Carles Cufí
commit 58eb76e06d
3 changed files with 41 additions and 34 deletions

View file

@ -4661,7 +4661,7 @@ static void encode_control(struct node_rx_pdu *node_rx,
#endif /* CONFIG_BT_HCI_MESH_EXT */ #endif /* CONFIG_BT_HCI_MESH_EXT */
#if defined(CONFIG_BT_CTLR_USER_EXT) #if defined(CONFIG_BT_CTLR_USER_EXT)
case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END: case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END - 1:
hci_user_ext_encode_control(node_rx, pdu_data, buf); hci_user_ext_encode_control(node_rx, pdu_data, buf);
return; return;
#endif /* CONFIG_BT_CTLR_USER_EXT */ #endif /* CONFIG_BT_CTLR_USER_EXT */
@ -5053,7 +5053,7 @@ uint8_t hci_get_class(struct node_rx_pdu *node_rx)
#endif /* CONFIG_BT_CONN */ #endif /* CONFIG_BT_CONN */
#if defined(CONFIG_BT_CTLR_USER_EXT) #if defined(CONFIG_BT_CTLR_USER_EXT)
case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END: case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END - 1:
return hci_user_ext_get_class(node_rx); return hci_user_ext_get_class(node_rx);
#endif /* CONFIG_BT_CTLR_USER_EXT */ #endif /* CONFIG_BT_CTLR_USER_EXT */

View file

@ -5,6 +5,7 @@
*/ */
#include <stddef.h> #include <stddef.h>
#include <sys/util.h>
#if defined(CONFIG_BT_CTLR_RX_PDU_META) #if defined(CONFIG_BT_CTLR_RX_PDU_META)
#include "lll_meta.h" #include "lll_meta.h"
#endif /* CONFIG_BT_CTLR_RX_PDU_META */ #endif /* CONFIG_BT_CTLR_RX_PDU_META */
@ -151,43 +152,49 @@ struct lll_event {
uint8_t is_aborted:1; uint8_t is_aborted:1;
}; };
#define DEFINE_NODE_RX_USER_TYPE(i, _) NODE_RX_TYPE_##i,
enum node_rx_type { enum node_rx_type {
/* Unused */ /* Unused */
NODE_RX_TYPE_NONE = 0x00, NODE_RX_TYPE_NONE = 0x00,
/* Signals completion of RX event */ /* Signals completion of RX event */
NODE_RX_TYPE_EVENT_DONE = 0x01, NODE_RX_TYPE_EVENT_DONE,
/* Signals arrival of RX Data Channel payload */ /* Signals arrival of RX Data Channel payload */
NODE_RX_TYPE_DC_PDU = 0x02, NODE_RX_TYPE_DC_PDU,
/* Signals release of RX Data Channel payload */ /* Signals release of RX Data Channel payload */
NODE_RX_TYPE_DC_PDU_RELEASE = 0x03, NODE_RX_TYPE_DC_PDU_RELEASE,
/* Advertisement report from scanning */ /* Advertisement report from scanning */
NODE_RX_TYPE_REPORT = 0x04, NODE_RX_TYPE_REPORT,
NODE_RX_TYPE_EXT_1M_REPORT = 0x05, NODE_RX_TYPE_EXT_1M_REPORT,
NODE_RX_TYPE_EXT_2M_REPORT = 0x06, NODE_RX_TYPE_EXT_2M_REPORT,
NODE_RX_TYPE_EXT_CODED_REPORT = 0x07, NODE_RX_TYPE_EXT_CODED_REPORT,
NODE_RX_TYPE_EXT_SCAN_TERMINATE = 0x08, NODE_RX_TYPE_EXT_SCAN_TERMINATE,
NODE_RX_TYPE_SYNC = 0x09, NODE_RX_TYPE_SYNC,
NODE_RX_TYPE_SYNC_LOST = 0x0a, NODE_RX_TYPE_SYNC_LOST,
NODE_RX_TYPE_EXT_ADV_TERMINATE = 0x0b, NODE_RX_TYPE_EXT_ADV_TERMINATE,
NODE_RX_TYPE_SCAN_REQ = 0x0c, NODE_RX_TYPE_SCAN_REQ,
NODE_RX_TYPE_CONNECTION = 0x0d, NODE_RX_TYPE_CONNECTION,
NODE_RX_TYPE_TERMINATE = 0x0e, NODE_RX_TYPE_TERMINATE,
NODE_RX_TYPE_CONN_UPDATE = 0x0f, NODE_RX_TYPE_CONN_UPDATE,
NODE_RX_TYPE_ENC_REFRESH = 0x10, NODE_RX_TYPE_ENC_REFRESH,
NODE_RX_TYPE_APTO = 0x11, NODE_RX_TYPE_APTO,
NODE_RX_TYPE_CHAN_SEL_ALGO = 0x12, NODE_RX_TYPE_CHAN_SEL_ALGO,
NODE_RX_TYPE_PHY_UPDATE = 0x13, NODE_RX_TYPE_PHY_UPDATE,
NODE_RX_TYPE_RSSI = 0x14, NODE_RX_TYPE_RSSI,
NODE_RX_TYPE_PROFILE = 0x15, NODE_RX_TYPE_PROFILE,
NODE_RX_TYPE_ADV_INDICATION = 0x16, NODE_RX_TYPE_ADV_INDICATION,
NODE_RX_TYPE_SCAN_INDICATION = 0x17, NODE_RX_TYPE_SCAN_INDICATION,
NODE_RX_TYPE_CIS_REQUEST = 0x18, NODE_RX_TYPE_CIS_REQUEST,
NODE_RX_TYPE_CIS_ESTABLISHED = 0x19, NODE_RX_TYPE_CIS_ESTABLISHED,
NODE_RX_TYPE_MESH_ADV_CPLT = 0x1a, NODE_RX_TYPE_MESH_ADV_CPLT,
NODE_RX_TYPE_MESH_REPORT = 0x1b, NODE_RX_TYPE_MESH_REPORT,
NODE_RX_TYPE_USER_START = 0x1c,
NODE_RX_TYPE_USER_END = NODE_RX_TYPE_USER_START + #if defined(CONFIG_BT_CTLR_USER_EXT)
CONFIG_BT_CTLR_USER_EVT_RANGE, /* No entries shall be added after the NODE_RX_TYPE_USER_START/END */
NODE_RX_TYPE_USER_START,
UTIL_LISTIFY(CONFIG_BT_CTLR_USER_EVT_RANGE, DEFINE_NODE_RX_USER_TYPE, _)
NODE_RX_TYPE_USER_END,
#endif /* CONFIG_BT_CTLR_USER_EXT */
}; };
/* Footer of node_rx_hdr */ /* Footer of node_rx_hdr */

View file

@ -829,7 +829,7 @@ void ll_rx_dequeue(void)
#endif /* CONFIG_BT_HCI_MESH_EXT */ #endif /* CONFIG_BT_HCI_MESH_EXT */
#if defined(CONFIG_BT_CTLR_USER_EXT) #if defined(CONFIG_BT_CTLR_USER_EXT)
case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END: case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END - 1:
__fallthrough; __fallthrough;
#endif /* CONFIG_BT_CTLR_USER_EXT */ #endif /* CONFIG_BT_CTLR_USER_EXT */
@ -1007,7 +1007,7 @@ void ll_rx_mem_release(void **node_rx)
#endif /* CONFIG_BT_HCI_MESH_EXT */ #endif /* CONFIG_BT_HCI_MESH_EXT */
#if defined(CONFIG_BT_CTLR_USER_EXT) #if defined(CONFIG_BT_CTLR_USER_EXT)
case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END: case NODE_RX_TYPE_USER_START ... NODE_RX_TYPE_USER_END - 1:
#endif /* CONFIG_BT_CTLR_USER_EXT */ #endif /* CONFIG_BT_CTLR_USER_EXT */
/* Ensure that at least one 'case' statement is present for this /* Ensure that at least one 'case' statement is present for this