1 /****************************************************************************** 2 * 3 * Copyright 1999-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 #ifndef HCIMSGS_H 20 #define HCIMSGS_H 21 22 #include <base/functional/callback_forward.h> 23 24 #include <cstdint> 25 26 #include "bt_target.h" 27 #include "device/include/esco_parameters.h" 28 #include "stack/include/bt_hdr.h" 29 #include "stack/include/bt_octets.h" 30 #include "types/ble_address_with_type.h" 31 #include "types/raw_address.h" 32 33 void bte_main_hci_send(BT_HDR* p_msg, uint16_t event); 34 35 /* Message by message.... */ 36 37 /* Disconnect */ 38 namespace bluetooth { 39 namespace legacy { 40 namespace hci { 41 struct Interface { 42 // LINK_CONTROL 0x04xx 43 void (*StartInquiry)(const LAP inq_lap, uint8_t duration, 44 uint8_t response_cnt); 45 void (*InquiryCancel)(); 46 void (*Disconnect)(uint16_t handle, uint8_t reason); 47 void (*ChangeConnectionPacketType)(uint16_t handle, uint16_t packet_types); 48 void (*StartRoleSwitch)(const RawAddress& bd_addr, uint8_t role); 49 }; 50 51 const Interface& GetInterface(); 52 } // namespace hci 53 } // namespace legacy 54 } // namespace bluetooth 55 56 /* Disconnect */ 57 58 /* Add SCO Connection */ 59 void btsnd_hcic_add_SCO_conn(uint16_t handle, uint16_t packet_types); 60 61 /* Add SCO Connection */ 62 63 /* Create Connection Cancel */ 64 void btsnd_hcic_create_conn_cancel(const RawAddress& dest); 65 66 /* Create Connection Cancel */ 67 68 /* Accept Connection Request */ 69 void btsnd_hcic_accept_conn(const RawAddress& bd_addr, uint8_t role); 70 71 /* Accept Connection Request */ 72 73 /* Reject Connection Request */ 74 void btsnd_hcic_reject_conn(const RawAddress& bd_addr, uint8_t reason); 75 76 /* Reject Connection Request */ 77 78 /* Link Key Request Reply */ 79 void btsnd_hcic_link_key_req_reply(const RawAddress& bd_addr, 80 const LinkKey& link_key); 81 82 /* Link Key Request Reply */ 83 84 /* Link Key Request Neg Reply */ 85 void btsnd_hcic_link_key_neg_reply(const RawAddress& bd_addr); 86 87 /* Link Key Request Neg Reply */ 88 89 /* PIN Code Request Reply */ 90 void btsnd_hcic_pin_code_req_reply(const RawAddress& bd_addr, 91 uint8_t pin_code_len, PIN_CODE pin_code); 92 93 /* PIN Code Request Reply */ 94 95 /* Link Key Request Neg Reply */ 96 void btsnd_hcic_pin_code_neg_reply(const RawAddress& bd_addr); 97 98 /* Link Key Request Neg Reply */ 99 100 /* Change Connection Type */ 101 void btsnd_hcic_change_conn_type(uint16_t handle, uint16_t packet_types); 102 103 /* Change Connection Type */ 104 105 void btsnd_hcic_auth_request(uint16_t handle); /* Authentication Request */ 106 107 /* Set Connection Encryption */ 108 void btsnd_hcic_set_conn_encrypt(uint16_t handle, bool enable); 109 /* Set Connection Encryption */ 110 111 /* Remote Name Request */ 112 void btsnd_hcic_rmt_name_req(const RawAddress& bd_addr, 113 uint8_t page_scan_rep_mode, uint8_t page_scan_mode, 114 uint16_t clock_offset); 115 /* Remote Name Request */ 116 117 /* Remote Name Request Cancel */ 118 void btsnd_hcic_rmt_name_req_cancel(const RawAddress& bd_addr); 119 /* Remote Name Request Cancel */ 120 121 /* Remote Extended Features */ 122 void btsnd_hcic_rmt_ext_features(uint16_t handle, uint8_t page_num); 123 /* Remote Extended Features */ 124 125 void btsnd_hcic_rmt_ver_req(uint16_t handle); /* Remote Version Info Request */ 126 void btsnd_hcic_read_rmt_clk_offset(uint16_t handle); /* Remote Clock Offset */ 127 void btsnd_hcic_setup_esco_conn(uint16_t handle, uint32_t transmit_bandwidth, 128 uint32_t receive_bandwidth, 129 uint16_t max_latency, uint16_t voice, 130 uint8_t retrans_effort, uint16_t packet_types); 131 void btsnd_hcic_accept_esco_conn(const RawAddress& bd_addr, 132 uint32_t transmit_bandwidth, 133 uint32_t receive_bandwidth, 134 uint16_t max_latency, uint16_t content_fmt, 135 uint8_t retrans_effort, uint16_t packet_types); 136 137 void btsnd_hcic_reject_esco_conn(const RawAddress& bd_addr, uint8_t reason); 138 /* Hold Mode */ 139 void btsnd_hcic_hold_mode(uint16_t handle, uint16_t max_hold_period, 140 uint16_t min_hold_period); 141 142 /* Hold Mode */ 143 144 /* Sniff Mode */ 145 void btsnd_hcic_sniff_mode(uint16_t handle, uint16_t max_sniff_period, 146 uint16_t min_sniff_period, uint16_t sniff_attempt, 147 uint16_t sniff_timeout); 148 /* Sniff Mode */ 149 150 void btsnd_hcic_exit_sniff_mode(uint16_t handle); /* Exit Sniff Mode */ 151 152 /* Park Mode */ 153 void btsnd_hcic_park_mode(uint16_t handle, uint16_t beacon_max_interval, 154 uint16_t beacon_min_interval); 155 /* Park Mode */ 156 157 void btsnd_hcic_exit_park_mode(uint16_t handle); /* Exit Park Mode */ 158 159 /* Write Policy Settings */ 160 void btsnd_hcic_write_policy_set(uint16_t handle, uint16_t settings); 161 /* Write Policy Settings */ 162 163 /* Write Default Policy Settings */ 164 void btsnd_hcic_write_def_policy_set(uint16_t settings); 165 /* Write Default Policy Settings */ 166 167 /****************************************** 168 * Lisbon Features 169 ******************************************/ 170 /* Sniff Subrating */ 171 void btsnd_hcic_sniff_sub_rate(uint16_t handle, uint16_t max_lat, 172 uint16_t min_remote_lat, uint16_t min_local_lat); 173 /* Sniff Subrating */ 174 175 /* Extended Inquiry Response */ 176 void btsnd_hcic_write_ext_inquiry_response(void* buffer, uint8_t fec_req); 177 /* IO Capabilities Response */ 178 void btsnd_hcic_io_cap_req_reply(const RawAddress& bd_addr, uint8_t capability, 179 uint8_t oob_present, uint8_t auth_req); 180 /* IO Capabilities Req Neg Reply */ 181 void btsnd_hcic_io_cap_req_neg_reply(const RawAddress& bd_addr, 182 uint8_t err_code); 183 /* Read Local OOB Data */ 184 void btsnd_hcic_read_local_oob_data(void); 185 186 void btsnd_hcic_user_conf_reply(const RawAddress& bd_addr, bool is_yes); 187 188 void btsnd_hcic_user_passkey_reply(const RawAddress& bd_addr, uint32_t value); 189 190 void btsnd_hcic_user_passkey_neg_reply(const RawAddress& bd_addr); 191 192 /* Remote OOB Data Request Reply */ 193 void btsnd_hcic_rem_oob_reply(const RawAddress& bd_addr, const Octet16& c, 194 const Octet16& r); 195 196 /* Remote OOB Data Request Negative Reply */ 197 void btsnd_hcic_rem_oob_neg_reply(const RawAddress& bd_addr); 198 199 /* Read Default Erroneous Data Reporting */ 200 void btsnd_hcic_read_default_erroneous_data_rpt(void); 201 202 void btsnd_hcic_enhanced_flush(uint16_t handle, uint8_t packet_type); 203 204 /**** end of Simple Pairing Commands ****/ 205 206 /* Delete Stored Key */ 207 void btsnd_hcic_delete_stored_key(const RawAddress& bd_addr, 208 bool delete_all_flag); 209 /* Delete Stored Key */ 210 211 /* Change Local Name */ 212 void btsnd_hcic_change_name(BD_NAME name); 213 214 #define HCIC_PARAM_SIZE_READ_CMD 0 215 216 #define HCIC_PARAM_SIZE_WRITE_PARAM1 1 217 218 #define HCIC_PARAM_SIZE_WRITE_PARAM3 3 219 220 void btsnd_hcic_write_pin_type(uint8_t type); /* Write PIN Type */ 221 void btsnd_hcic_write_auto_accept(uint8_t flag); /* Write Auto Accept */ 222 void btsnd_hcic_read_name(void); /* Read Local Name */ 223 void btsnd_hcic_write_page_tout(uint16_t timeout); /* Write Page Timout */ 224 void btsnd_hcic_write_scan_enable(uint8_t flag); /* Write Scan Enable */ 225 void btsnd_hcic_write_pagescan_cfg( 226 uint16_t interval, uint16_t window); /* Write Page Scan Activity */ 227 /* Write Page Scan Activity */ 228 229 /* Write Inquiry Scan Activity */ 230 void btsnd_hcic_write_inqscan_cfg(uint16_t interval, uint16_t window); 231 /* Write Inquiry Scan Activity */ 232 233 void btsnd_hcic_write_auth_enable( 234 uint8_t flag); /* Write Authentication Enable */ 235 void btsnd_hcic_write_dev_class(DEV_CLASS dev); /* Write Class of Device */ 236 void btsnd_hcic_write_voice_settings(uint16_t flags); /* Write Voice Settings */ 237 238 void btsnd_hcic_write_auto_flush_tout( 239 uint16_t handle, uint16_t timeout); /* Write Retransmit Timout */ 240 241 void btsnd_hcic_read_tx_power(uint16_t handle, 242 uint8_t type); /* Read Tx Power */ 243 244 /* Write Link Supervision Timeout */ 245 void btsnd_hcic_write_link_super_tout(uint16_t handle, uint16_t timeout); 246 /* Write Link Supervision Timeout */ 247 248 void btsnd_hcic_write_cur_iac_lap( 249 uint8_t num_cur_iac, LAP* const iac_lap); /* Write Current IAC LAP */ 250 /* Write Current IAC LAP */ 251 252 void btsnd_hcic_read_rssi(uint16_t handle); /* Read RSSI */ 253 using ReadEncKeySizeCb = base::OnceCallback<void(uint8_t, uint16_t, uint8_t)>; 254 void btsnd_hcic_read_encryption_key_size(uint16_t handle, ReadEncKeySizeCb cb); 255 void btsnd_hcic_read_failed_contact_counter(uint16_t handle); 256 void btsnd_hcic_write_pagescan_type(uint8_t type); /* Write Page Scan Type */ 257 void btsnd_hcic_write_inqscan_type(uint8_t type); /* Write Inquiry Scan Type */ 258 void btsnd_hcic_write_inquiry_mode(uint8_t type); /* Write Inquiry Mode */ 259 260 /* Enhanced setup SCO connection (CSA2) */ 261 void btsnd_hcic_enhanced_set_up_synchronous_connection( 262 uint16_t conn_handle, enh_esco_params_t* p_parms); 263 264 /* Enhanced accept SCO connection request (CSA2) */ 265 void btsnd_hcic_enhanced_accept_synchronous_connection( 266 const RawAddress& bd_addr, enh_esco_params_t* p_parms); 267 268 #define HCI_DATA_HANDLE_MASK 0x0FFF 269 #define HCI_DATA_PKT_STATUS_MASK 0x3000 270 271 #define HCID_GET_HANDLE_EVENT(p) \ 272 (uint16_t)((*((uint8_t*)((p) + 1) + (p)->offset) + \ 273 (*((uint8_t*)((p) + 1) + (p)->offset + 1) << 8))) 274 275 #define HCID_GET_HANDLE(u16) (uint16_t)((u16)&HCI_DATA_HANDLE_MASK) 276 #define HCID_GET_PKT_STATUS(u16) \ 277 (uint16_t)(((u16)&HCI_DATA_PKT_STATUS_MASK) >> 12) 278 279 #define HCI_DATA_EVENT_MASK 3 280 #define HCI_DATA_EVENT_OFFSET 12 281 #define HCID_GET_EVENT(u16) \ 282 (uint8_t)(((u16) >> HCI_DATA_EVENT_OFFSET) & HCI_DATA_EVENT_MASK) 283 284 void btsnd_hcic_vendor_spec_cmd(void* buffer, uint16_t opcode, uint8_t len, 285 uint8_t* p_data, void* p_cmd_cplt_cback); 286 287 /******************************************************************************* 288 * BLE Commands 289 * Note: "local_controller_id" is for transport, not counted in HCI 290 * message size 291 ******************************************************************************/ 292 #define HCIC_BLE_RAND_DI_SIZE 8 293 294 #define HCIC_BLE_CHNL_MAP_SIZE 5 295 #define HCIC_PARAM_SIZE_BLE_READ_PHY 2 296 #define HCIC_PARAM_SIZE_BLE_SET_PHY 7 297 298 /* ULP HCI command */ 299 void btsnd_hcic_ble_set_local_used_feat(uint8_t feat_set[8]); 300 301 void btsnd_hcic_ble_set_random_addr(const RawAddress& random_addr); 302 303 void btsnd_hcic_ble_write_adv_params(uint16_t adv_int_min, uint16_t adv_int_max, 304 uint8_t adv_type, 305 tBLE_ADDR_TYPE addr_type_own, 306 tBLE_ADDR_TYPE addr_type_dir, 307 const RawAddress& direct_bda, 308 uint8_t channel_map, 309 uint8_t adv_filter_policy); 310 311 void btsnd_hcic_ble_read_adv_chnl_tx_power(void); 312 313 void btsnd_hcic_ble_set_adv_data(uint8_t data_len, uint8_t* p_data); 314 315 void btsnd_hcic_ble_set_scan_rsp_data(uint8_t data_len, uint8_t* p_scan_rsp); 316 317 void btsnd_hcic_ble_set_adv_enable(uint8_t adv_enable); 318 319 void btsnd_hcic_ble_set_scan_params(uint8_t scan_type, uint16_t scan_int, 320 uint16_t scan_win, uint8_t addr_type, 321 uint8_t scan_filter_policy); 322 323 void btsnd_hcic_ble_set_scan_enable(uint8_t scan_enable, uint8_t duplicate); 324 325 void btsnd_hcic_ble_create_ll_conn(uint16_t scan_int, uint16_t scan_win, 326 uint8_t init_filter_policy, 327 tBLE_ADDR_TYPE addr_type_peer, 328 const RawAddress& bda_peer, 329 tBLE_ADDR_TYPE addr_type_own, 330 uint16_t conn_int_min, uint16_t conn_int_max, 331 uint16_t conn_latency, uint16_t conn_timeout, 332 uint16_t min_ce_len, uint16_t max_ce_len); 333 334 void btsnd_hcic_ble_create_conn_cancel(void); 335 336 void btsnd_hcic_ble_read_acceptlist_size(void); 337 338 void btsnd_hcic_ble_upd_ll_conn_params(uint16_t handle, uint16_t conn_int_min, 339 uint16_t conn_int_max, 340 uint16_t conn_latency, 341 uint16_t conn_timeout, uint16_t min_len, 342 uint16_t max_len); 343 344 void btsnd_hcic_ble_set_host_chnl_class( 345 uint8_t chnl_map[HCIC_BLE_CHNL_MAP_SIZE]); 346 347 void btsnd_hcic_ble_read_chnl_map(uint16_t handle); 348 349 void btsnd_hcic_ble_read_remote_feat(uint16_t handle); 350 351 void btsnd_hcic_ble_rand(base::Callback<void(BT_OCTET8)> cb); 352 353 void btsnd_hcic_ble_start_enc(uint16_t handle, 354 uint8_t rand[HCIC_BLE_RAND_DI_SIZE], 355 uint16_t ediv, const Octet16& ltk); 356 357 void btsnd_hcic_ble_ltk_req_reply(uint16_t handle, const Octet16& ltk); 358 359 void btsnd_hcic_ble_ltk_req_neg_reply(uint16_t handle); 360 361 void btsnd_hcic_ble_read_supported_states(void); 362 363 void btsnd_hcic_ble_write_host_supported(uint8_t le_host_spt, 364 uint8_t simul_le_host_spt); 365 366 void btsnd_hcic_ble_read_host_supported(void); 367 368 void btsnd_hcic_ble_rc_param_req_reply(uint16_t handle, uint16_t conn_int_min, 369 uint16_t conn_int_max, 370 uint16_t conn_latency, 371 uint16_t conn_timeout, 372 uint16_t min_ce_len, 373 uint16_t max_ce_len); 374 375 void btsnd_hcic_ble_rc_param_req_neg_reply(uint16_t handle, uint8_t reason); 376 377 void btsnd_hcic_ble_set_data_length(uint16_t conn_handle, uint16_t tx_octets, 378 uint16_t tx_time); 379 380 struct scanning_phy_cfg { 381 uint8_t scan_type; 382 uint16_t scan_int; 383 uint16_t scan_win; 384 }; 385 386 void btsnd_hcic_ble_set_extended_scan_params(uint8_t own_address_type, 387 uint8_t scanning_filter_policy, 388 uint8_t scanning_phys, 389 scanning_phy_cfg* phy_cfg); 390 391 void btsnd_hcic_ble_set_extended_scan_enable(uint8_t enable, 392 uint8_t filter_duplicates, 393 uint16_t duration, 394 uint16_t period); 395 396 struct EXT_CONN_PHY_CFG { 397 uint16_t scan_int; 398 uint16_t scan_win; 399 uint16_t conn_int_min; 400 uint16_t conn_int_max; 401 uint16_t conn_latency; 402 uint16_t sup_timeout; 403 uint16_t min_ce_len; 404 uint16_t max_ce_len; 405 }; 406 407 void btsnd_hcic_ble_ext_create_conn(uint8_t init_filter_policy, 408 uint8_t addr_type_own, 409 uint8_t addr_type_peer, 410 const RawAddress& bda_peer, 411 uint8_t initiating_phys, 412 EXT_CONN_PHY_CFG* phy_cfg); 413 414 void btsnd_hcic_ble_read_resolvable_addr_peer(uint8_t addr_type_peer, 415 const RawAddress& bda_peer); 416 417 void btsnd_hcic_ble_read_resolvable_addr_local(uint8_t addr_type_peer, 418 const RawAddress& bda_peer); 419 420 void btsnd_hcic_ble_set_addr_resolution_enable(uint8_t addr_resolution_enable); 421 422 void btsnd_hcic_ble_set_rand_priv_addr_timeout(uint16_t rpa_timout); 423 424 void btsnd_hcic_read_authenticated_payload_tout(uint16_t handle); 425 426 void btsnd_hcic_write_authenticated_payload_tout(uint16_t handle, 427 uint16_t timeout); 428 429 void btsnd_hcic_read_iso_tx_sync( 430 uint16_t iso_handle, base::OnceCallback<void(uint8_t*, uint16_t)> cb); 431 432 struct EXT_CIS_CFG { 433 uint8_t cis_id; 434 uint16_t max_sdu_size_mtos; 435 uint16_t max_sdu_size_stom; 436 uint8_t phy_mtos; 437 uint8_t phy_stom; 438 uint8_t rtn_mtos; 439 uint8_t rtn_stom; 440 }; 441 442 void btsnd_hcic_set_cig_params(uint8_t cig_id, uint32_t sdu_itv_mtos, 443 uint32_t sdu_itv_stom, uint8_t sca, 444 uint8_t packing, uint8_t framing, 445 uint16_t max_trans_lat_stom, 446 uint16_t max_trans_lat_mtos, uint8_t cis_cnt, 447 const EXT_CIS_CFG* cis_cfg, 448 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 449 450 struct EXT_CIS_TEST_CFG { 451 uint8_t cis_id; 452 uint8_t nse; 453 uint16_t max_sdu_size_mtos; 454 uint16_t max_sdu_size_stom; 455 uint8_t max_pdu_mtos; 456 uint8_t max_pdu_stom; 457 uint8_t phy_mtos; 458 uint8_t phy_stom; 459 uint8_t bn_mtos; 460 uint8_t bn_stom; 461 }; 462 463 struct EXT_CIS_CREATE_CFG { 464 uint16_t cis_conn_handle; 465 uint16_t acl_conn_handle; 466 }; 467 468 void btsnd_hcic_create_cis(uint8_t num_cis, 469 const EXT_CIS_CREATE_CFG* cis_create_cfg, 470 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 471 472 void btsnd_hcic_remove_cig(uint8_t cig_id, 473 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 474 475 void btsnd_hcic_accept_cis_req(uint16_t conn_handle); 476 477 void btsnd_hcic_rej_cis_req(uint16_t conn_handle, uint8_t reason, 478 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 479 480 void btsnd_hcic_req_peer_sca(uint16_t conn_handle); 481 482 void btsnd_hcic_create_big(uint8_t big_handle, uint8_t adv_handle, 483 uint8_t num_bis, uint32_t sdu_itv, 484 uint16_t max_sdu_size, uint16_t max_trans_lat, 485 uint8_t rtn, uint8_t phy, uint8_t packing, 486 uint8_t framing, uint8_t enc, 487 std::array<uint8_t, 16> bcst_code); 488 489 void btsnd_hcic_term_big(uint8_t big_handle, uint8_t reason); 490 491 void btsnd_hcic_big_term_sync(uint8_t big_handle, 492 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 493 494 void btsnd_hcic_setup_iso_data_path( 495 uint16_t iso_handle, uint8_t data_path_dir, uint8_t data_path_id, 496 uint8_t codec_id_format, uint16_t codec_id_company, 497 uint16_t codec_id_vendor, uint32_t controller_delay, 498 std::vector<uint8_t> codec_conf, 499 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 500 501 void btsnd_hcic_remove_iso_data_path( 502 uint16_t iso_handle, uint8_t data_path_dir, 503 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 504 505 void btsnd_hcic_read_iso_link_quality( 506 uint16_t iso_handle, base::OnceCallback<void(uint8_t*, uint16_t)> cb); 507 508 void btsnd_hcic_ble_periodic_advertising_create_sync( 509 uint8_t options, uint8_t adv_sid, uint8_t adv_addr_type, 510 const RawAddress& adv_addr, uint16_t skip_num, uint16_t sync_timeout, 511 uint8_t sync_cte_type); 512 513 void btsnd_hcic_ble_periodic_advertising_create_sync_cancel( 514 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 515 516 void btsnd_hcic_ble_periodic_advertising_terminate_sync( 517 uint16_t sync_handle, base::OnceCallback<void(uint8_t*, uint16_t)> cb); 518 519 void btsnd_hci_ble_add_device_to_periodic_advertiser_list( 520 uint8_t adv_addr_type, const RawAddress& adv_addr, uint8_t adv_sid, 521 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 522 523 void btsnd_hci_ble_remove_device_from_periodic_advertiser_list( 524 uint8_t adv_addr_type, const RawAddress& adv_addr, uint8_t adv_sid, 525 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 526 527 void btsnd_hci_ble_clear_periodic_advertiser_list( 528 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 529 530 void btsnd_hci_ble_read_periodic_advertiser_list_size( 531 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 532 533 void btsnd_hcic_ble_set_periodic_advertising_receive_enable( 534 uint16_t sync_handle, bool enable, 535 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 536 537 void btsnd_hcic_ble_periodic_advertising_sync_transfer( 538 uint16_t conn_handle, uint16_t service_data, uint16_t sync_handle, 539 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 540 541 void btsnd_hcic_ble_periodic_advertising_set_info_transfer( 542 uint16_t conn_handle, uint16_t service_data, uint8_t adv_handle, 543 base::OnceCallback<void(uint8_t*, uint16_t)> cb); 544 545 void btsnd_hcic_ble_set_periodic_advertising_sync_transfer_params( 546 uint16_t conn_handle, uint8_t mode, uint16_t skip, uint16_t sync_timeout, 547 uint8_t cte_type, base::OnceCallback<void(uint8_t*, uint16_t)> cb); 548 549 void btsnd_hcic_ble_set_default_periodic_advertising_sync_transfer_params( 550 uint16_t conn_handle, uint8_t mode, uint16_t skip, uint16_t sync_timeout, 551 uint8_t cte_type, base::OnceCallback<void(uint8_t*, uint16_t)> cb); 552 553 void btsnd_hcic_configure_data_path(uint8_t data_path_direction, 554 uint8_t data_path_id, 555 std::vector<uint8_t> vendor_config); 556 557 #endif 558