1 /*
2  * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #include "esp_bt_cfg.h"
7 
8 #define BLE_ERR_UNKNOWN_HCI_CMD         (0x01)
9 /* LL Features */
10 #define BLE_LL_FEAT_LE_ENCRYPTION       (0x0000000001)
11 #define BLE_LL_FEAT_CONN_PARM_REQ       (0x0000000002)
12 #define BLE_LL_FEAT_EXTENDED_REJ        (0x0000000004)
13 #define BLE_LL_FEAT_PERIPH_INIT         (0x0000000008)
14 #define BLE_LL_FEAT_LE_PING             (0x0000000010)
15 #define BLE_LL_FEAT_DATA_LEN_EXT        (0x0000000020)
16 #define BLE_LL_FEAT_LL_PRIVACY          (0x0000000040)
17 #define BLE_LL_FEAT_EXT_SCAN_FILT       (0x0000000080)
18 #define BLE_LL_FEAT_LE_2M_PHY           (0x0000000100)
19 #define BLE_LL_FEAT_STABLE_MOD_ID_TX    (0x0000000200)
20 #define BLE_LL_FEAT_STABLE_MOD_ID_RX    (0x0000000400)
21 #define BLE_LL_FEAT_LE_CODED_PHY        (0x0000000800)
22 #define BLE_LL_FEAT_EXT_ADV             (0x0000001000)
23 #define BLE_LL_FEAT_PERIODIC_ADV        (0x0000002000)
24 #define BLE_LL_FEAT_CSA2                (0x0000004000)
25 #define BLE_LL_FEAT_LE_POWER_CLASS_1    (0x0000008000)
26 #define BLE_LL_FEAT_MIN_USED_CHAN       (0x0000010000)
27 #define BLE_LL_FEAT_CTE_REQ             (0x0000020000)
28 #define BLE_LL_FEAT_CTE_RSP             (0x0000040000)
29 #define BLE_LL_FEAT_CTE_TX              (0x0000080000)
30 #define BLE_LL_FEAT_CTE_RX              (0x0000100000)
31 #define BLE_LL_FEAT_CTE_AOD             (0x0000200000)
32 #define BLE_LL_FEAT_CTE_AOA             (0x0000400000)
33 #define BLE_LL_FEAT_CTE_RECV            (0x0000800000)
34 #define BLE_LL_FEAT_SYNC_TRANS_SEND     (0x0001000000)
35 #define BLE_LL_FEAT_SYNC_TRANS_RECV     (0x0002000000)
36 #define BLE_LL_FEAT_SCA_UPDATE          (0x0004000000)
37 #define BLE_LL_FEAT_REM_PKEY            (0x0008000000)
38 #define BLE_LL_FEAT_CIS_CENTRAL         (0x0010000000)
39 #define BLE_LL_FEAT_CIS_PERIPH          (0x0020000000)
40 #define BLE_LL_FEAT_ISO_BROADCASTER     (0x0040000000)
41 #define BLE_LL_FEAT_SYNC_RECV           (0x0080000000)
42 #define BLE_LL_FEAT_CIS_HOST            (0x0100000000)
43 #define BLE_LL_FEAT_POWER_CTRL_REQ      (0x0200000000)
44 #define BLE_LL_FEAT_POWER_CHANGE_IND    (0x0400000000)
45 #define BLE_LL_FEAT_PATH_LOSS_MON       (0x0800000000)
46 #define BLE_LL_FEAT_PERIODIC_ADV_ADI    (0x1000000000)
47 #define BLE_LL_FEAT_CONN_SUBRATING      (0x2000000000)
48 #define BLE_LL_FEAT_CONN_SUBRATING_HOST (0x4000000000)
49 #define BLE_LL_FEAT_CHANNEL_CLASS       (0x8000000000)
50 
51 uint64_t ble_ll_supported_features;
52 
53 void
ble_ll_supported_features_init(void)54 ble_ll_supported_features_init(void)
55 {
56     ble_ll_supported_features = BLE_LL_FEAT_EXTENDED_REJ;
57     ble_ll_supported_features |= BLE_LL_FEAT_DATA_LEN_EXT;
58 
59 #if DEFAULT_BT_LE_ROLE_CENTROL || DEFAULT_BT_LE_ROLE_PERIPHERAL
60     ble_ll_supported_features |= BLE_LL_FEAT_PERIPH_INIT;
61     ble_ll_supported_features |= BLE_LL_FEAT_CONN_PARM_REQ;
62 #endif
63 
64 #if CONFIG_BT_LE_FEAT_LL_ENCRYPTION
65     ble_ll_supported_features |= BLE_LL_FEAT_LE_ENCRYPTION;
66 #endif
67 
68     ble_ll_supported_features |= (BLE_LL_FEAT_LL_PRIVACY | BLE_LL_FEAT_EXT_SCAN_FILT);
69     ble_ll_supported_features |= BLE_LL_FEAT_LE_PING;
70 
71 #if DEFAULT_BT_LE_EXT_ADV
72     ble_ll_supported_features |= BLE_LL_FEAT_EXT_ADV;
73 #endif
74 
75 #if DEFAULT_BT_LE_PERIODIC_ADV
76     ble_ll_supported_features |= BLE_LL_FEAT_PERIODIC_ADV;
77     ble_ll_supported_features |= BLE_LL_FEAT_PERIODIC_ADV_ADI;
78 #endif
79 
80 #if DEFAULT_BT_LE_PAST
81     ble_ll_supported_features |= BLE_LL_FEAT_SYNC_TRANS_RECV;
82     ble_ll_supported_features |= BLE_LL_FEAT_SYNC_TRANS_SEND;
83 #endif
84 
85 #if DEGAULT_BT_LE_2M_PHY
86     ble_ll_supported_features |= BLE_LL_FEAT_LE_2M_PHY;
87 #endif
88 
89 #if DEGAULT_BT_LE_CODED_PHY
90     ble_ll_supported_features |= BLE_LL_FEAT_LE_CODED_PHY;
91 #endif
92 
93 #if DEFAULT_BT_LE_50_FEATURE_SUPPORT
94     ble_ll_supported_features |= BLE_LL_FEAT_CSA2;
95     ble_ll_supported_features |= BLE_LL_FEAT_SCA_UPDATE;
96     ble_ll_supported_features |= BLE_LL_FEAT_REM_PKEY;
97     ble_ll_supported_features |= BLE_LL_FEAT_CHANNEL_CLASS;
98 #endif
99 }
100 
101 #if !DEFAULT_BT_LE_ROLE_BROADCASTER
r_ble_ll_adv_rpa_timeout(void)102 void r_ble_ll_adv_rpa_timeout(void) { }
r_ble_lll_adv_halt(void)103 void r_ble_lll_adv_halt(void) { }
r_ble_lll_adv_event_rmvd_from_sched(void)104 void r_ble_lll_adv_event_rmvd_from_sched(void) { }
r_ble_lll_adv_ext_event_rmvd_from_sched(void)105 void r_ble_lll_adv_ext_event_rmvd_from_sched(void) { }
r_ble_ll_adv_enabled(void)106 int  r_ble_ll_adv_enabled(void) { return 0; }
r_ble_ll_adv_can_chg_whitelist(void)107 int  r_ble_ll_adv_can_chg_whitelist(void) { return 1; }
r_ble_ll_adv_set_random_addr(void)108 int  r_ble_ll_adv_set_random_addr(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_reset(void)109 void r_ble_ll_adv_reset(void) { }
r_ble_ll_adv_init(void)110 void r_ble_ll_adv_init(void) { }
r_ble_ll_adv_deinit(void)111 void r_ble_ll_adv_deinit(void) { }
r_ble_ll_adv_env_init(void)112 int  r_ble_ll_adv_env_init(void) { return 0; }
r_ble_ll_adv_env_deinit(void)113 void r_ble_ll_adv_env_deinit(void) { }
r_ble_lll_adv_rx_pkt_isr(void)114 int  r_ble_lll_adv_rx_pkt_isr(void) { return -1; }
r_ble_ll_adv_rx_pkt_in(void)115 void r_ble_ll_adv_rx_pkt_in(void) { }
r_ble_ll_adv_set_adv_params(void)116 int  r_ble_ll_adv_set_adv_params(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_read_txpwr(void)117 int  r_ble_ll_adv_read_txpwr(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_set_adv_data(void)118 int  r_ble_ll_hci_set_adv_data(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_set_scan_rsp_data(void)119 int  r_ble_ll_hci_set_scan_rsp_data(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_adv_set_enable(void)120 int  r_ble_ll_hci_adv_set_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_vendor_hci_legacy_adv_clear(void)121 int  r_ble_ll_adv_vendor_hci_legacy_adv_clear(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_set_data_related_addr_change(void)122 int  r_ble_ll_adv_set_data_related_addr_change(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
123 #endif // !DEFAULT_BT_LE_ROLE_BROADCASTER
124 
125 #if !DEFAULT_BT_LE_EXT_ADV
r_ble_ll_adv_ext_check_data_itvl(void)126 bool r_ble_ll_adv_ext_check_data_itvl(void) { return true; }
r_ble_lll_adv_coex_dpc_update_on_aux_scheduled(void)127 void r_ble_lll_adv_coex_dpc_update_on_aux_scheduled(void) { }
r_ble_lll_adv_coex_dpc_calc_pti_update_itvl(void)128 void r_ble_lll_adv_coex_dpc_calc_pti_update_itvl(void) { }
r_ble_lll_adv_sec_done(void)129 void r_ble_lll_adv_sec_done(void) { }
r_ble_lll_adv_sec_schedule_next_aux(void)130 int r_ble_lll_adv_sec_schedule_next_aux(void) { return 0; }
r_ble_lll_adv_sec_event_done(void)131 void r_ble_lll_adv_sec_event_done(void) { }
r_ble_lll_adv_secondary_tx_start_cb(void)132 int  r_ble_lll_adv_secondary_tx_start_cb(void) { return 0; }
r_ble_lll_adv_aux_schedule(void)133 void r_ble_lll_adv_aux_schedule(void) { }
r_ble_lll_adv_update_rsp_offset(void)134 void r_ble_lll_adv_update_rsp_offset(void) { }
r_ble_ll_adv_hci_set_random_addr(void)135 int  r_ble_ll_adv_hci_set_random_addr(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_ext_set_param(void)136 int  r_ble_ll_adv_ext_set_param(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_ext_set_adv_data(void)137 int  r_ble_ll_adv_ext_set_adv_data(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_ext_set_scan_rsp(void)138 int  r_ble_ll_adv_ext_set_scan_rsp(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_ext_set_enable(void)139 int  r_ble_ll_adv_ext_set_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_rd_max_adv_data_len(void)140 int  r_ble_ll_adv_rd_max_adv_data_len(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_rd_sup_adv_sets(void)141 int  r_ble_ll_adv_rd_sup_adv_sets(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_remove(void)142 int  r_ble_ll_adv_remove(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_clear_all(void)143 int  r_ble_ll_adv_clear_all(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
144 #endif //!DEFAULT_BT_LE_EXT_ADV
145 
146 #if !DEFAULT_BT_LE_PERIODIC_ADV
r_ble_ll_adv_sm_stop_periodic(void)147 void r_ble_ll_adv_sm_stop_periodic(void) { }
r_ble_lll_adv_periodic_event_done(void)148 void r_ble_lll_adv_periodic_event_done(void) { }
r_ble_lll_adv_sync_tx_start_cb(void)149 int  r_ble_lll_adv_sync_tx_start_cb(void) { return 0; }
r_ble_lll_adv_sync_tx_end(void)150 void r_ble_lll_adv_sync_tx_end(void) { }
r_ble_lll_adv_periodic_start(void)151 int  r_ble_lll_adv_periodic_start(void) { return 0; }
r_ble_lll_adv_periodic_rmvd_from_sched(void)152 void r_ble_lll_adv_periodic_rmvd_from_sched(void) { }
r_ble_ll_adv_periodic_set_param(void)153 int  r_ble_ll_adv_periodic_set_param(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_periodic_set_data(void)154 int  r_ble_ll_adv_periodic_set_data(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_adv_periodic_enable(void)155 int  r_ble_ll_adv_periodic_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
156 #endif //!DEFAULT_BT_LE_PERIODIC_ADV
157 
158 #if !DEFAULT_BT_LE_ROLE_OBSERVER
r_ble_lll_scan_halt(void)159 void r_ble_lll_scan_halt(void) { }
r_ble_ll_scan_end_adv_evt(void)160 void r_ble_ll_scan_end_adv_evt(void) { }
r_ble_ll_scan_rx_pkt_in(void)161 void r_ble_ll_scan_rx_pkt_in(void) { }
r_ble_lll_scan_rx_pkt_isr(void)162 int  r_ble_lll_scan_rx_pkt_isr(void) { return -1; }
r_ble_ll_scan_env_init(void)163 int  r_ble_ll_scan_env_init(void) { return 0; }
r_ble_ll_scan_env_deinit(void)164 void r_ble_ll_scan_env_deinit(void) {  }
r_ble_ll_scan_init(void)165 void r_ble_ll_scan_init(void) { }
r_ble_ll_scan_deinit(void)166 void r_ble_ll_scan_deinit(void) { }
r_ble_ll_scan_reset(void)167 void r_ble_ll_scan_reset(void) { }
r_ble_ll_scan_can_chg_whitelist(void)168 int  r_ble_ll_scan_can_chg_whitelist(void) { return 1; }
r_ble_ll_scan_enabled(void)169 int  r_ble_ll_scan_enabled(void) { return false; }
r_ble_lll_scan_chk_resume(void)170 int  r_ble_lll_scan_chk_resume(void) { return -1; }
r_ble_ll_scan_set_scan_params(void)171 int  r_ble_ll_scan_set_scan_params(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_scan_set_enable(void)172 int  r_ble_ll_hci_scan_set_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_scan_hci_update_adv_report_flow_ctrl(void)173 int  r_ble_ll_scan_hci_update_adv_report_flow_ctrl(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_scan_hci_set_adv_report_flow_ctrl(void)174 int  r_ble_ll_scan_hci_set_adv_report_flow_ctrl(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
175 #endif //!DEFAULT_BT_LE_ROLE_OBSERVER
176 
177 #if !DEFAULT_BT_LE_EXT_SCAN
r_ble_lll_scan_duration_period_timers_restart(void)178 void r_ble_lll_scan_duration_period_timers_restart(void) { }
r_ble_lll_scan_duration_period_timers_stop(void)179 void r_ble_lll_scan_duration_period_timers_stop(void) { }
r_ble_ll_hci_send_legacy_ext_adv_report(void)180 int r_ble_ll_hci_send_legacy_ext_adv_report(void) { return -1; }
r_ble_lll_sched_rmv_elem_type(void)181 void r_ble_lll_sched_rmv_elem_type(void) { }
r_ble_ll_scan_send_truncated(void)182 void r_ble_ll_scan_send_truncated(void) { }
r_ble_ll_scan_aux_data_unref(void)183 void r_ble_ll_scan_aux_data_unref(void) { }
r_ble_lll_scan_sched_remove(void)184 void r_ble_lll_scan_sched_remove(void) { }
r_ble_lll_scan_aux_data_free(void)185 void r_ble_lll_scan_aux_data_free(void) { }
r_ble_lll_aux_scan_drop(void)186 void r_ble_lll_aux_scan_drop(void) { }
r_ble_lll_sched_aux_scan(void)187 int r_ble_lll_sched_aux_scan(void) { return -1; }
r_ble_lll_scan_rx_isr_on_aux(void)188 int r_ble_lll_scan_rx_isr_on_aux(void) { return -1; }
r_ble_lll_scan_period_timer_cb(void)189 void r_ble_lll_scan_period_timer_cb(void) { }
r_ble_lll_scan_duration_timer_cb(void)190 void r_ble_lll_scan_duration_timer_cb(void) { }
r_ble_ll_scan_rx_pkt_in_on_aux(void)191 void r_ble_ll_scan_rx_pkt_in_on_aux(void) { }
r_ble_ll_set_ext_scan_params(void)192 int  r_ble_ll_set_ext_scan_params(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_ext_scan_set_enable(void)193 int  r_ble_ll_hci_ext_scan_set_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
194 #endif //!DEFAULT_BT_LE_EXT_SCAN
195 
196 #if !DEFAULT_BT_LE_ROLE_CENTROL
r_ble_ll_init_rx_pkt_in(void)197 void r_ble_ll_init_rx_pkt_in(void) { }
r_ble_lll_init_rx_pkt_isr(void)198 int  r_ble_lll_init_rx_pkt_isr(void) { return -1; }
r_ble_ll_conn_create(void)199 int  r_ble_ll_conn_create(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_create_cancel(void)200 int  r_ble_ll_conn_create_cancel(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
201 #endif //!DEFAULT_BT_LE_ROLE_CENTROL
202 
203 #if !DEFAULT_BT_LE_ROLE_CENTROL || !DEFAULT_BT_LE_EXT_SCAN
r_ble_ll_ext_conn_create(void)204 int  r_ble_ll_ext_conn_create(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
205 #endif //!DEFAULT_BT_LE_ROLE_CENTROL || !DEFAULT_BT_LE_EXT_SCAN
206 
207 #if !DEFAULT_BT_LE_ROLE_PERIPHERAL
r_ble_ll_conn_slave_start(void)208 int r_ble_ll_conn_slave_start(void) { return 0; }
209 #endif //!DEFAULT_BT_LE_ROLE_PERIPHERAL
210 
211 #if !DEFAULT_BT_LE_ROLE_CENTROL && !DEFAULT_BT_LE_ROLE_PERIPHERAL
r_ble_ll_conn_rx_data_pdu(void)212 void r_ble_ll_conn_rx_data_pdu(void) { }
r_ble_lll_conn_rx_pkt_isr(void)213 int  r_ble_lll_conn_rx_pkt_isr(void) { return -1; }
r_ble_ll_hci_disconnect(void)214 int  r_ble_ll_hci_disconnect(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_rd_rem_ver_cmd(void)215 int  r_ble_ll_conn_hci_rd_rem_ver_cmd(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_update(void)216 int  r_ble_ll_conn_hci_update(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_rd_chan_map(void)217 int  r_ble_ll_conn_hci_rd_chan_map(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_read_rem_features(void)218 int  r_ble_ll_conn_hci_read_rem_features(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_param_rr(void)219 int  r_ble_ll_conn_hci_param_rr(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_param_nrr(void)220 int  r_ble_ll_conn_hci_param_nrr(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
221 #endif //!DEFAULT_BT_LE_ROLE_CENTROL && !DEFAULT_BT_LE_ROLE_PERIPHERAL
222 
223 #if !CONFIG_BT_LE_FEAT_LL_ENCRYPTION
r_ble_ll_conn_chk_phy_upd_start(void)224 int r_ble_ll_conn_chk_phy_upd_start(void) { return -1; }
r_ble_ll_hci_ev_encrypt_chg(void)225 void r_ble_ll_hci_ev_encrypt_chg(void) { }
r_ble_ll_ctrl_enc_allowed_pdu_rx(void)226 int r_ble_ll_ctrl_enc_allowed_pdu_rx(void) { return 1; }
r_ble_ll_ctrl_enc_allowed_pdu_tx(void)227 int r_ble_ll_ctrl_enc_allowed_pdu_tx(void) { return 1; }
r_ble_ll_ctrl_rx_start_enc_rsp(void)228 uint8_t r_ble_ll_ctrl_rx_start_enc_rsp(void) { return 0x07; }
r_ble_ll_ctrl_rx_pause_enc_rsp(void)229 uint8_t r_ble_ll_ctrl_rx_pause_enc_rsp(void) { return 0x07; }
r_ble_ll_hci_le_encrypt(void)230 int  r_ble_ll_hci_le_encrypt(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
231 #endif //!CONFIG_BT_LE_FEAT_LL_ENCRYPTION
232 
233 #if !DEFAULT_BT_LE_ROLE_PERIPHERAL || !CONFIG_BT_LE_FEAT_LL_ENCRYPTION
r_ble_ll_ctrl_rx_pause_enc_req(void)234 uint8_t r_ble_ll_ctrl_rx_pause_enc_req(void) { return 0x07; }
r_ble_ll_ctrl_rx_enc_req(void)235 uint8_t r_ble_ll_ctrl_rx_enc_req(void) { return 0x07; }
r_ble_ll_conn_hci_le_ltk_reply(void)236 int r_ble_ll_conn_hci_le_ltk_reply(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_le_ltk_neg_reply(void)237 int r_ble_ll_conn_hci_le_ltk_neg_reply(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
238 #endif //!DEFAULT_BT_LE_ROLE_PERIPHERAL || !CONFIG_BT_LE_FEAT_LL_ENCRYPTION
239 
240 #if !DEFAULT_BT_LE_ROLE_CENTROL || !CONFIG_BT_LE_FEAT_LL_ENCRYPTION
r_ble_ll_ctrl_rx_start_enc_req(void)241 uint8_t r_ble_ll_ctrl_rx_start_enc_req(void) { return 0x07; }
r_ble_ll_ctrl_rx_enc_rsp(void)242 void r_ble_ll_ctrl_rx_enc_rsp(void) { }
r_ble_ll_ctrl_enc_req_make(void)243 void r_ble_ll_ctrl_enc_req_make(void) { }
r_ble_ll_conn_hci_le_start_encrypt(void)244 int r_ble_ll_conn_hci_le_start_encrypt(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
245 #endif //!DEFAULT_BT_LE_ROLE_CENTROL || !CONFIG_BT_LE_FEAT_LL_ENCRYPTION
246 
247 #if !DEGAULT_BT_LE_2M_PHY && !DEGAULT_BT_LE_CODED_PHY
r_ble_ll_ctrl_phy_update_proc_complete(void)248 void r_ble_ll_ctrl_phy_update_proc_complete(void) { }
r_ble_ll_ctrl_phy_update_cancel(void)249 void r_ble_ll_ctrl_phy_update_cancel(void) { }
r_ble_ll_ctrl_rx_phy_update_ind(void)250 uint8_t r_ble_ll_ctrl_rx_phy_update_ind(void) { return 0x07; }
r_ble_ll_ctrl_rx_phy_rsp(void)251 uint8_t r_ble_ll_ctrl_rx_phy_rsp(void) { return 0x07; }
r_ble_ll_ctrl_rx_phy_req(void)252 uint8_t r_ble_ll_ctrl_rx_phy_req(void) { return 0x07; }
r_ble_ll_ctrl_phy_req_rsp_make(void)253 void r_ble_ll_ctrl_phy_req_rsp_make(void) { }
254 #endif //DEGAULT_BT_LE_2M_PHY && DEGAULT_BT_LE_CODED_PHY
255 
256 #if !DEFAULT_BT_LE_PERIODIC_SYNC
r_ble_lll_sync_halt(void)257 void r_ble_lll_sync_halt(void) { }
r_ble_lll_sync_rmvd_from_sched(void)258 void r_ble_lll_sync_rmvd_from_sched(void) { }
r_ble_ll_sync_list_search(void)259 int  r_ble_ll_sync_list_search(void) { return -1; }
r_ble_ll_ctrl_rx_periodic_sync_ind(void)260 uint8_t r_ble_ll_ctrl_rx_periodic_sync_ind(void) { return 0x07; }
r_ble_ll_sync_rx_pkt_in(void)261 void r_ble_ll_sync_rx_pkt_in(void) {  }
r_ble_lll_sync_rx_pkt_isr(void)262 int  r_ble_lll_sync_rx_pkt_isr(void) { return -1; }
r_ble_ll_sync_env_init(void)263 int  r_ble_ll_sync_env_init(void) { return 0; }
r_ble_ll_sync_env_deinit(void)264 void r_ble_ll_sync_env_deinit(void) {  }
r_ble_ll_sync_init(void)265 void r_ble_ll_sync_init(void) {  }
r_ble_ll_sync_deinit(void)266 void r_ble_ll_sync_deinit(void) {  }
r_ble_ll_sync_reset(void)267 void r_ble_ll_sync_reset(void) {  }
r_ble_ll_sync_enabled(void)268 bool r_ble_ll_sync_enabled(void) { return false; }
r_ble_ll_sync_create(void)269 int  r_ble_ll_sync_create(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_cancel(void)270 int  r_ble_ll_sync_cancel(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_terminate(void)271 int  r_ble_ll_sync_terminate(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_list_add(void)272 int  r_ble_ll_sync_list_add(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_list_remove(void)273 int  r_ble_ll_sync_list_remove(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_list_clear(void)274 int  r_ble_ll_sync_list_clear(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_list_size(void)275 int  r_ble_ll_sync_list_size(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_sync_receive_enable(void)276 int  r_ble_ll_sync_receive_enable(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
277 #endif //!DEFAULT_BT_LE_PERIODIC_SYNC
278 
279 #if !DEFAULT_BT_LE_PAST || !DEFAULT_BT_LE_PERIODIC_ADV
r_ble_ll_adv_periodic_set_info_transfer(void)280 int  r_ble_ll_adv_periodic_set_info_transfer(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
281 #endif //!DEFAULT_BT_LE_PAST || !DEFAULT_BT_LE_PERIODIC_ADV
282 
283 #if !DEFAULT_BT_LE_PAST || !DEFAULT_BT_LE_PERIODIC_SYNC
r_ble_ll_sync_transfer(void)284 int  r_ble_ll_sync_transfer(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_set_sync_transfer_params(void)285 int  r_ble_ll_set_sync_transfer_params(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_set_default_sync_transfer_params(void)286 int  r_ble_ll_set_default_sync_transfer_params(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
287 #endif //!DEFAULT_BT_LE_PAST || !DEFAULT_BT_LE_PERIODIC_SYNC
288 
289 #if !DEFAULT_BT_LE_50_FEATURE_SUPPORT
r_ble_ll_ctrl_rx_channel_reporting_ind(void)290 uint8_t r_ble_ll_ctrl_rx_channel_reporting_ind(void) { return 0x07; }
r_ble_ll_ctrl_rx_channel_status_ind(void)291 uint8_t r_ble_ll_ctrl_rx_channel_status_ind(void) { return 0x07; }
r_ble_ll_ctrl_rx_sca_req(void)292 uint8_t r_ble_ll_ctrl_rx_sca_req(void) { return 0x07; }
r_ble_ll_ctrl_rx_sca_rsp(void)293 uint8_t r_ble_ll_ctrl_rx_sca_rsp(void) { return 0x07; }
r_ble_ll_ctrl_channel_class_reporting_make(void)294 void r_ble_ll_ctrl_channel_class_reporting_make(void) { }
r_ble_ll_ctrl_channel_class_enable_make(void)295 void r_ble_ll_ctrl_channel_class_enable_make(void) { }
r_ble_ll_ctrl_sca_req_rsp_make(void)296 void r_ble_ll_ctrl_sca_req_rsp_make(void) { }
r_ble_ll_modify_sca(void)297 int  r_ble_ll_modify_sca(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_req_peer_sca(void)298 int  r_ble_ll_conn_req_peer_sca(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
299 #endif //!DEFAULT_BT_LE_50_FEATURE_SUPPORT
300 
301 #if !DEFAULT_BT_LE_50_FEATURE_SUPPORT
r_ble_ll_conn_hci_le_rd_phy(void)302 int  r_ble_ll_conn_hci_le_rd_phy(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_hci_le_set_def_phy(void)303 int  r_ble_ll_hci_le_set_def_phy(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_ll_conn_hci_le_set_phy(void)304 int  r_ble_ll_conn_hci_le_set_phy(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
305 #endif //!DEFAULT_BT_LE_50_FEATURE_SUPPORT
306 
307 #if !CONFIG_BT_LE_DTM_ENABLED
r_ble_lll_dtm_rx_pkt_in(void)308 void r_ble_lll_dtm_rx_pkt_in(void) {  }
r_ble_lll_dtm_rx_isr_end(void)309 int  r_ble_lll_dtm_rx_isr_end(void) { return -1; }
r_ble_lll_dtm_reset(void)310 void r_ble_lll_dtm_reset(void) { }
r_ble_lll_dtm_init(void)311 void r_ble_lll_dtm_init(void) { }
r_ble_lll_dtm_deinit(void)312 void r_ble_lll_dtm_deinit(void) { }
r_ble_lll_dtm_env_init(void)313 int  r_ble_lll_dtm_env_init(void) { return 0; }
r_ble_lll_dtm_env_deinit(void)314 void r_ble_lll_dtm_env_deinit(void) { }
r_ble_lll_hci_dtm_tx_test(void)315 int  r_ble_lll_hci_dtm_tx_test(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_lll_hci_dtm_rx_test(void)316 int  r_ble_lll_hci_dtm_rx_test(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_lll_dtm_end_test(void)317 int  r_ble_lll_dtm_end_test(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_lll_hci_dtm_rx_test_v2(void)318 int  r_ble_lll_hci_dtm_rx_test_v2(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
r_ble_lll_hci_dtm_tx_test_v2(void)319 int  r_ble_lll_hci_dtm_tx_test_v2(void) { return BLE_ERR_UNKNOWN_HCI_CMD; }
320 #endif //!CONFIG_BT_LE_DTM_ENABLED
321