Skip to content

Commit 7fd5dea

Browse files
cvinayakcfriedt
authored andcommitted
Bluetooth: Controller: Cosmetic changes to Link Layer interface
Cosmetic changes to the Link Layer interface header file. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent 47e68be commit 7fd5dea

File tree

2 files changed

+101
-72
lines changed

2 files changed

+101
-72
lines changed

subsys/bluetooth/controller/include/ll.h

Lines changed: 86 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,39 @@
11
/*
2-
* Copyright (c) 2016-2021 Nordic Semiconductor ASA
2+
* Copyright (c) 2016-2025 Nordic Semiconductor ASA
33
* Copyright (c) 2016 Vinayak Kariappa Chettimada
44
*
55
* SPDX-License-Identifier: Apache-2.0
66
*/
77

8+
#if defined(CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING)
9+
#define LL_ADV_HANDLE_MAPPING
10+
#else /* !CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING */
11+
#define LL_ADV_HANDLE_MAPPING static __attribute__((always_inline)) inline
12+
#endif /* !CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING */
13+
14+
/* Initialization and Reset Interfaces */
815
int ll_init(struct k_sem *sem_rx);
916
int ll_deinit(void);
1017
void ll_reset(void);
1118

19+
/* Features Interfaces */
1220
uint8_t ll_set_host_feature(uint8_t bit_number, uint8_t bit_value);
1321
uint64_t ll_feat_get(void);
1422

23+
/* Device Address Interfaces */
1524
uint8_t ll_addr_set(uint8_t addr_type, uint8_t const *const p_bdaddr);
1625
uint8_t *ll_addr_get(uint8_t addr_type);
1726
uint8_t *ll_addr_read(uint8_t addr_type, uint8_t *const bdaddr);
1827

19-
#if defined(CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING)
20-
uint8_t ll_adv_set_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle);
21-
uint8_t ll_adv_set_by_hci_handle_get_or_new(uint8_t hci_handle,
22-
uint8_t *handle);
23-
uint8_t ll_adv_set_hci_handle_get(uint8_t handle);
24-
uint8_t ll_adv_iso_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle);
25-
uint8_t ll_adv_iso_by_hci_handle_new(uint8_t hci_handle, uint8_t *handle);
26-
#else
27-
static inline uint8_t ll_adv_set_by_hci_handle_get(uint8_t hci_handle,
28-
uint8_t *handle)
29-
{
30-
*handle = hci_handle;
31-
return 0;
32-
}
33-
34-
static inline uint8_t ll_adv_set_by_hci_handle_get_or_new(uint8_t hci_handle,
35-
uint8_t *handle)
36-
{
37-
*handle = hci_handle;
38-
return 0;
39-
}
40-
41-
static inline uint8_t ll_adv_set_hci_handle_get(uint8_t handle)
42-
{
43-
return handle;
44-
}
45-
46-
static inline uint8_t ll_adv_iso_by_hci_handle_get(uint8_t hci_handle,
47-
uint8_t *handle)
48-
{
49-
*handle = hci_handle;
50-
return 0;
51-
}
52-
53-
static inline uint8_t ll_adv_iso_by_hci_handle_new(uint8_t hci_handle,
54-
uint8_t *handle)
55-
{
56-
*handle = hci_handle;
57-
return 0;
58-
}
59-
#endif
28+
/* Advertising Handles Interfaces */
29+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle);
30+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_by_hci_handle_get_or_new(uint8_t hci_handle,
31+
uint8_t *handle);
32+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_hci_handle_get(uint8_t handle);
33+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_iso_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle);
34+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_iso_by_hci_handle_new(uint8_t hci_handle, uint8_t *handle);
6035

36+
/* Advertising State Interfaces */
6137
#if defined(CONFIG_BT_CTLR_ADV_EXT)
6238
uint8_t ll_adv_params_set(uint8_t handle, uint16_t evt_prop, uint32_t interval,
6339
uint8_t adv_type, uint8_t own_addr_type,
@@ -78,6 +54,7 @@ uint8_t ll_adv_data_set(uint8_t len, uint8_t const *const p_data);
7854
uint8_t ll_adv_scan_rsp_set(uint8_t len, uint8_t const *const p_data);
7955
#endif /* !CONFIG_BT_CTLR_ADV_EXT */
8056

57+
/* Extended Advertising State Interfaces */
8158
uint8_t ll_adv_aux_random_addr_set(uint8_t handle, uint8_t const *const addr);
8259
uint8_t ll_adv_aux_ad_data_set(uint8_t handle, uint8_t op, uint8_t frag_pref,
8360
uint8_t len, uint8_t const *const data);
@@ -87,12 +64,15 @@ uint16_t ll_adv_aux_max_data_length_get(void);
8764
uint8_t ll_adv_aux_set_count_get(void);
8865
uint8_t ll_adv_aux_set_remove(uint8_t handle);
8966
uint8_t ll_adv_aux_set_clear(void);
67+
68+
/* Periodic Advertising State Interfaces */
9069
uint8_t ll_adv_sync_param_set(uint8_t handle, uint16_t interval,
9170
uint16_t flags);
9271
uint8_t ll_adv_sync_ad_data_set(uint8_t handle, uint8_t op, uint8_t len,
9372
uint8_t const *const data);
9473
uint8_t ll_adv_sync_enable(uint8_t handle, uint8_t enable);
9574

75+
/* Advertising Enable and Disable Interfaces */
9676
#if defined(CONFIG_BT_CTLR_ADV_EXT) || defined(CONFIG_BT_HCI_MESH_EXT)
9777
#if defined(CONFIG_BT_HCI_MESH_EXT)
9878
uint8_t ll_adv_enable(uint8_t handle, uint8_t enable,
@@ -108,6 +88,7 @@ uint8_t ll_adv_enable(uint8_t enable);
10888

10989
uint8_t ll_adv_disable_all(void);
11090

91+
/* Broadcast ISO State Interfaces */
11192
uint8_t ll_big_create(uint8_t big_handle, uint8_t adv_handle, uint8_t num_bis,
11293
uint32_t sdu_interval, uint16_t max_sdu,
11394
uint16_t max_latency, uint8_t rtn, uint8_t phy,
@@ -121,6 +102,7 @@ uint8_t ll_big_test_create(uint8_t big_handle, uint8_t adv_handle,
121102
uint8_t pto, uint8_t encryption, uint8_t *bcode);
122103
uint8_t ll_big_terminate(uint8_t big_handle, uint8_t reason);
123104

105+
/* Scanning State Interfaces */
124106
uint8_t ll_scan_params_set(uint8_t type, uint16_t interval, uint16_t window,
125107
uint8_t own_addr_type, uint8_t filter_policy);
126108
#if defined(CONFIG_BT_CTLR_ADV_EXT)
@@ -129,24 +111,30 @@ uint8_t ll_scan_enable(uint8_t enable, uint16_t duration, uint16_t period);
129111
uint8_t ll_scan_enable(uint8_t enable);
130112
#endif /* !CONFIG_BT_CTLR_ADV_EXT */
131113

114+
/* Periodic Advertising Sync State Interfaces */
132115
uint8_t ll_sync_create(uint8_t options, uint8_t sid, uint8_t adv_addr_type,
133116
uint8_t *adv_addr, uint16_t skip,
134117
uint16_t sync_timeout, uint8_t sync_cte_type);
135118
uint8_t ll_sync_create_cancel(void **rx);
136119
uint8_t ll_sync_terminate(uint16_t handle);
137120
uint8_t ll_sync_recv_enable(uint16_t handle, uint8_t enable);
121+
122+
/* Periodic Advertising Sync Transfer Interfaces */
138123
uint8_t ll_sync_transfer(uint16_t conn_handle, uint16_t service_data, uint16_t sync_handle);
139124
uint8_t ll_adv_sync_set_info_transfer(uint16_t conn_handle, uint16_t service_data,
140125
uint8_t adv_handle);
141126
uint8_t ll_past_param(uint16_t conn_handle, uint8_t mode, uint16_t skip, uint16_t timeout,
142127
uint8_t cte_type);
143128
uint8_t ll_default_past_param(uint8_t mode, uint16_t skip, uint16_t timeout, uint8_t cte_type);
129+
130+
/* Broadcast ISO Sync Receiver State Interfaces */
144131
uint8_t ll_big_sync_create(uint8_t big_handle, uint16_t sync_handle,
145132
uint8_t encryption, uint8_t *bcode, uint8_t mse,
146133
uint16_t sync_timeout, uint8_t num_bis,
147134
uint8_t *bis);
148135
uint8_t ll_big_sync_terminate(uint8_t big_handle, void **rx);
149136

137+
/* Connected ISO State Interfaces */
150138
uint8_t ll_cig_parameters_open(uint8_t cig_id,
151139
uint32_t c_interval, uint32_t p_interval,
152140
uint8_t sca, uint8_t packing, uint8_t framing,
@@ -172,6 +160,15 @@ uint8_t ll_cis_parameters_test_set(uint8_t cis_id, uint8_t nse,
172160
uint16_t c_pdu, uint16_t p_pdu,
173161
uint8_t c_phy, uint8_t p_phy,
174162
uint8_t c_bn, uint8_t p_bn);
163+
uint8_t ll_cig_remove(uint8_t cig_id);
164+
uint8_t ll_cis_create_check(uint16_t cis_handle, uint16_t acl_handle);
165+
void ll_cis_create(uint16_t cis_handle, uint16_t acl_handle);
166+
uint8_t ll_cis_accept(uint16_t handle);
167+
uint8_t ll_cis_reject(uint16_t handle, uint8_t reason);
168+
uint8_t ll_conn_iso_accept_timeout_get(uint16_t *timeout);
169+
uint8_t ll_conn_iso_accept_timeout_set(uint16_t timeout);
170+
171+
/* ISO SDU data Interfaces */
175172
/* Must be implemented by vendor if vendor-specific data path is supported */
176173
uint8_t ll_configure_data_path(uint8_t data_path_dir,
177174
uint8_t data_path_id,
@@ -200,24 +197,19 @@ uint8_t ll_iso_read_test_counters(uint16_t handle, uint32_t *received_cnt,
200197
uint32_t *missed_cnt,
201198
uint32_t *failed_cnt);
202199

203-
uint8_t ll_cig_remove(uint8_t cig_id);
204-
205-
uint8_t ll_cis_create_check(uint16_t cis_handle, uint16_t acl_handle);
206-
void ll_cis_create(uint16_t cis_handle, uint16_t acl_handle);
207-
208-
uint8_t ll_cis_accept(uint16_t handle);
209-
uint8_t ll_cis_reject(uint16_t handle, uint8_t reason);
210-
200+
/* Filter Accept List Interfaces */
211201
uint8_t ll_fal_size_get(void);
212202
uint8_t ll_fal_clear(void);
213203
uint8_t ll_fal_add(bt_addr_le_t *addr);
214204
uint8_t ll_fal_remove(bt_addr_le_t *addr);
215205

206+
/* Privacy Accept List Interfaces */
216207
uint8_t ll_pal_size_get(void);
217208
uint8_t ll_pal_clear(void);
218209
uint8_t ll_pal_add(const bt_addr_le_t *const addr, const uint8_t sid);
219210
uint8_t ll_pal_remove(const bt_addr_le_t *const addr, const uint8_t sid);
220211

212+
/* Private Resolvable Address Resolution Interfaces */
221213
void ll_rl_id_addr_get(uint8_t rl_idx, uint8_t *id_addr_type, uint8_t *id_addr);
222214
uint8_t ll_rl_size_get(void);
223215
uint8_t ll_rl_clear(void);
@@ -231,6 +223,7 @@ uint8_t ll_rl_enable(uint8_t enable);
231223
void ll_rl_timeout_set(uint16_t timeout);
232224
uint8_t ll_priv_mode_set(bt_addr_le_t *id_addr, uint8_t mode);
233225

226+
/* Connection State Interfaces */
234227
#if defined(CONFIG_BT_CTLR_ADV_EXT)
235228
uint8_t ll_create_connection(uint16_t scan_interval, uint16_t scan_window,
236229
uint8_t filter_policy, uint8_t peer_addr_type,
@@ -283,7 +276,7 @@ uint8_t ll_phy_req_send(uint16_t handle, uint8_t tx, uint8_t flags, uint8_t rx);
283276
uint8_t ll_set_min_used_chans(uint16_t handle, uint8_t const phys,
284277
uint8_t const min_used_chans);
285278

286-
/* Direction Finding */
279+
/* Direction Finding Interfaces */
287280
/* Sets CTE transmission parameters for periodic advertising */
288281
uint8_t ll_df_set_cl_cte_tx_params(uint8_t adv_handle, uint8_t cte_len,
289282
uint8_t cte_type, uint8_t cte_count,
@@ -316,12 +309,21 @@ void ll_df_read_ant_inf(uint8_t *switch_sample_rates,
316309
uint8_t *max_switch_pattern_len,
317310
uint8_t *max_cte_len);
318311

319-
/* Downstream - Data */
312+
/* Path Loss Monitoring Interfaces */
313+
uint8_t ll_conn_set_path_loss_parameters(uint16_t handle,
314+
uint8_t high_threshold,
315+
uint8_t high_hysteresis,
316+
uint8_t low_threshold,
317+
uint8_t low_hysteresis,
318+
uint16_t min_time_spent);
319+
uint8_t ll_conn_set_path_loss_reporting(uint16_t handle, uint8_t enable);
320+
321+
/* Downstream - ACL Data */
320322
void *ll_tx_mem_acquire(void);
321323
void ll_tx_mem_release(void *node_tx);
322324
int ll_tx_mem_enqueue(uint16_t handle, void *node_tx);
323325

324-
/* Upstream - Num. Completes, Events and Data */
326+
/* Upstream - Num. Completes, Events, ACL and ISO Data */
325327
uint8_t ll_rx_get(void **node_rx, uint16_t *handle);
326328
void ll_rx_dequeue(void);
327329
void ll_rx_mem_release(void **node_rx);
@@ -333,9 +335,6 @@ void ll_iso_tx_mem_release(void *tx);
333335
int ll_iso_tx_mem_enqueue(uint16_t handle, void *tx, void *link);
334336
void ll_iso_link_tx_release(void *link);
335337

336-
uint8_t ll_conn_iso_accept_timeout_get(uint16_t *timeout);
337-
uint8_t ll_conn_iso_accept_timeout_set(uint16_t timeout);
338-
339338
/* External co-operation */
340339
void ll_timeslice_ticker_id_get(uint8_t * const instance_index,
341340
uint8_t * const ticker_id);
@@ -344,11 +343,35 @@ void ll_coex_ticker_id_get(uint8_t * const instance_index,
344343
void ll_radio_state_abort(void);
345344
uint32_t ll_radio_state_is_idle(void);
346345

347-
uint8_t ll_conn_set_path_loss_parameters(uint16_t handle,
348-
uint8_t high_threshold,
349-
uint8_t high_hysteresis,
350-
uint8_t low_threshold,
351-
uint8_t low_hysteresis,
352-
uint16_t min_time_spent);
346+
/* Static inline functions */
347+
#if !defined(CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING)
348+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle)
349+
{
350+
*handle = hci_handle;
351+
return 0U;
352+
}
353353

354-
uint8_t ll_conn_set_path_loss_reporting(uint16_t handle, uint8_t enable);
354+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_by_hci_handle_get_or_new(uint8_t hci_handle,
355+
uint8_t *handle)
356+
{
357+
*handle = hci_handle;
358+
return 0U;
359+
}
360+
361+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_set_hci_handle_get(uint8_t handle)
362+
{
363+
return handle;
364+
}
365+
366+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_iso_by_hci_handle_get(uint8_t hci_handle, uint8_t *handle)
367+
{
368+
*handle = hci_handle;
369+
return 0U;
370+
}
371+
372+
LL_ADV_HANDLE_MAPPING uint8_t ll_adv_iso_by_hci_handle_new(uint8_t hci_handle, uint8_t *handle)
373+
{
374+
*handle = hci_handle;
375+
return 0U;
376+
}
377+
#endif /* !CONFIG_BT_CTLR_HCI_ADV_HANDLE_MAPPING */
Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,31 @@
11
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
23
* Copyright (c) 2019 Oticon A/S
34
*
45
* SPDX-License-Identifier: Apache-2.0
56
*/
67

78
#if defined(CONFIG_BT_CTLR_VERSION_SETTINGS)
9+
#define LL_VERSION_SETTINGS
10+
#else /* !CONFIG_BT_CTLR_VERSION_SETTINGS */
11+
#define LL_VERSION_SETTINGS static __attribute__((always_inline)) inline
12+
#endif /* !CONFIG_BT_CTLR_VERSION_SETTINGS */
813

9-
uint16_t ll_settings_company_id(void);
10-
uint16_t ll_settings_subversion_number(void);
14+
/* Version Interfaces */
15+
LL_VERSION_SETTINGS uint16_t ll_settings_company_id(void);
16+
LL_VERSION_SETTINGS uint16_t ll_settings_subversion_number(void);
1117

12-
#else
18+
/* Stable Modulation Index Interfaces */
19+
bool ll_settings_smi_tx(void);
1320

14-
static inline uint16_t ll_settings_company_id(void)
21+
/* Static inline functions */
22+
#if !defined(CONFIG_BT_CTLR_VERSION_SETTINGS)
23+
LL_VERSION_SETTINGS uint16_t ll_settings_company_id(void)
1524
{
1625
return CONFIG_BT_CTLR_COMPANY_ID;
1726
}
18-
static inline uint16_t ll_settings_subversion_number(void)
27+
LL_VERSION_SETTINGS uint16_t ll_settings_subversion_number(void)
1928
{
2029
return CONFIG_BT_CTLR_SUBVERSION_NUMBER;
2130
}
22-
23-
#endif /* CONFIG_BT_CTLR_VERSION_SETTINGS */
24-
25-
bool ll_settings_smi_tx(void);
31+
#endif /* !CONFIG_BT_CTLR_VERSION_SETTINGS */

0 commit comments

Comments
 (0)