From 7d331060ab202efb3966ec2e1141b9219b9b29bb Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Thu, 29 Jun 2017 15:28:11 +0200 Subject: [PATCH] nimble/controller: Use flag for marking advertising on data channel There is no need for adding additional bytes to advertising state machine structure. X-Original-Commit: ccc75ea7cec2ba4a64864c03508fae366b4ebccc --- nimble/controller/src/ble_ll_adv.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nimble/controller/src/ble_ll_adv.c b/nimble/controller/src/ble_ll_adv.c index 9498b99fd..506e0ea74 100644 --- a/nimble/controller/src/ble_ll_adv.c +++ b/nimble/controller/src/ble_ll_adv.c @@ -105,7 +105,6 @@ struct ble_ll_adv_sm struct ble_ll_sched_item adv_secondary_sch; uint16_t duration; /* TODO */ uint16_t adi; - uint8_t adv_secondary; uint8_t adv_secondary_chan; uint8_t adv_random_addr[BLE_DEV_ADDR_LEN]; uint8_t events_max; @@ -119,6 +118,7 @@ struct ble_ll_adv_sm #define BLE_LL_ADV_SM_FLAG_RX_ADD 0x02 #define BLE_LL_ADV_SM_FLAG_SCAN_REQ_NOTIF 0x04 #define BLE_LL_ADV_SM_FLAG_CONN_RSP_TXD 0x08 +#define BLE_LL_ADV_SM_FLAG_SECONDARY 0x10 /* The advertising state machine global object */ struct ble_ll_adv_sm g_ble_ll_adv_sm[BLE_LL_ADV_INSTANCES]; @@ -372,7 +372,7 @@ ble_ll_adv_pdu_make(struct ble_ll_adv_sm *advsm, struct os_mbuf *m) ext_hdr_flags = 0; - if (advsm->adv_secondary) { + if (advsm->flags & BLE_LL_ADV_SM_FLAG_SECONDARY) { pdu_type = BLE_ADV_PDU_TYPE_AUX_ADV_IND; adi = true; @@ -816,7 +816,7 @@ ble_ll_adv_tx_start_cb(struct ble_ll_sched_item *sch) } #if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV) - advsm->adv_secondary = 0; + advsm->flags &= ~BLE_LL_ADV_SM_FLAG_SECONDARY; ble_ll_adv_pdu_make(advsm, adv_pdu); #if (BLE_LL_BT5_PHY_SUPPORTED == 1) @@ -964,7 +964,7 @@ ble_ll_adv_secondary_tx_start_cb(struct ble_ll_sched_item *sch) goto adv_tx_done; } - advsm->adv_secondary = 1; + advsm->flags |= BLE_LL_ADV_SM_FLAG_SECONDARY; ble_ll_adv_pdu_make(advsm, adv_pdu); #if (BLE_LL_BT5_PHY_SUPPORTED == 1) @@ -1310,6 +1310,7 @@ ble_ll_adv_sm_start(struct ble_ll_adv_sm *advsm) advsm->flags &= ~BLE_LL_ADV_SM_FLAG_TX_ADD; advsm->flags &= ~BLE_LL_ADV_SM_FLAG_RX_ADD; advsm->flags &= ~BLE_LL_ADV_SM_FLAG_CONN_RSP_TXD; + advsm->flags &= ~BLE_LL_ADV_SM_FLAG_SECONDARY; if (advsm->own_addr_type == BLE_HCI_ADV_OWN_ADDR_RANDOM) { #if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_EXT_ADV) @@ -2522,7 +2523,7 @@ ble_ll_adv_done(struct ble_ll_adv_sm *advsm) return; } - if (advsm->adv_secondary) { + if (advsm->flags & BLE_LL_ADV_SM_FLAG_SECONDARY) { ble_ll_adv_secondary_done(advsm); return; }