Loading system/main/shim/acl_api.cc +2 −8 Original line number Diff line number Diff line Loading @@ -209,16 +209,10 @@ void bluetooth::shim::ACL_RemoteNameRequest(const RawAddress& addr, GetGdShimHandler()->BindOnce( [](RawAddress addr, uint64_t features) { static_assert(sizeof(features) == 8); auto addr_array = addr.ToArray(); auto p = (uint8_t*)osi_malloc(addr_array.size() + sizeof(features)); std::copy(addr_array.rbegin(), addr_array.rend(), p); for (int i = 0; i != sizeof(features); ++i) { p[addr_array.size() + i] = features & ((1 << 8) - 1); features >>= 8; } do_in_main_thread( FROM_HERE, base::BindOnce(btm_sec_rmt_host_support_feat_evt, p)); base::BindOnce(btm_sec_rmt_host_support_feat_evt, addr, static_cast<uint8_t>(features & 0xff))); }, addr), GetGdShimHandler()->BindOnce( Loading system/stack/btm/btm_sec.cc +5 −8 Original line number Diff line number Diff line Loading @@ -2569,28 +2569,25 @@ void btm_sec_rmt_name_request_complete(const RawAddress* p_bd_addr, * Returns void * ******************************************************************************/ void btm_sec_rmt_host_support_feat_evt(const uint8_t* p) { void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0) { tBTM_SEC_DEV_REC* p_dev_rec; RawAddress bd_addr; /* peer address */ BD_FEATURES features; STREAM_TO_BDADDR(bd_addr, p); p_dev_rec = btm_find_or_alloc_dev(bd_addr); LOG_INFO("Got btm_sec_rmt_host_support_feat_evt from %s", ADDRESS_TO_LOGGABLE_CSTR(bd_addr)); LOG_VERBOSE("btm_sec_rmt_host_support_feat_evt sm4: 0x%x p[0]: 0x%x", p_dev_rec->sm4, p[0]); p_dev_rec->sm4, features_0); if (BTM_SEC_IS_SM4_UNKNOWN(p_dev_rec->sm4)) { p_dev_rec->sm4 = BTM_SM4_KNOWN; STREAM_TO_ARRAY(features, p, HCI_FEATURE_BYTES_PER_PAGE); if (HCI_SSP_HOST_SUPPORTED(features)) { if (HCI_SSP_HOST_SUPPORTED((std::array<uint8_t, 1>({features_0})))) { p_dev_rec->sm4 = BTM_SM4_TRUE; } LOG_VERBOSE("btm_sec_rmt_host_support_feat_evt sm4: 0x%x features[0]: 0x%x", p_dev_rec->sm4, features[0]); p_dev_rec->sm4, features_0); } } Loading system/stack/btm/btm_sec.h +2 −1 Original line number Diff line number Diff line Loading @@ -519,7 +519,8 @@ void btm_sec_rmt_name_request_complete(const RawAddress* p_bd_addr, * Returns void * ******************************************************************************/ void btm_sec_rmt_host_support_feat_evt(const uint8_t* p); void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0); /******************************************************************************* * Loading system/stack/btu/btu_hcif.cc +11 −1 Original line number Diff line number Diff line Loading @@ -97,6 +97,8 @@ static void btu_hcif_esco_connection_chg_evt(uint8_t* p); static void btu_hcif_sec_pin_code_request(const uint8_t* p); static void btu_hcif_sec_link_key_request(const uint8_t* p); static void btu_hcif_sec_rmt_host_support_feat_evt(const uint8_t* p); static void btu_hcif_proc_sp_req_evt(tBTM_SP_EVT event, const uint8_t* p); static void btu_hcif_rem_oob_req(const uint8_t* p); static void btu_hcif_simple_pair_complete(const uint8_t* p); static void btu_hcif_proc_sp_req_evt(const tBTM_SP_EVT event, const uint8_t* p); Loading Loading @@ -301,7 +303,7 @@ void btu_hcif_process_event(UNUSED_ATTR uint8_t controller_id, btm_pm_proc_ssr_evt(p, hci_evt_len); break; case HCI_RMT_HOST_SUP_FEAT_NOTIFY_EVT: btm_sec_rmt_host_support_feat_evt(p); btu_hcif_sec_rmt_host_support_feat_evt(p); break; case HCI_IO_CAPABILITY_REQUEST_EVT: btu_hcif_io_cap_request_evt(p); Loading Loading @@ -1450,6 +1452,14 @@ void btu_hcif_simple_pair_complete(const uint8_t* p) { STREAM_TO_BDADDR(bd_addr, p); btm_simple_pair_complete(bd_addr, status); } void btu_hcif_sec_rmt_host_support_feat_evt(const uint8_t* p) { RawAddress bd_addr; /* peer address */ uint8_t features_0; STREAM_TO_BDADDR(bd_addr, p); STREAM_TO_UINT8(features_0, p); btm_sec_rmt_host_support_feat_evt(bd_addr, features_0); } void btu_hcif_proc_sp_req_evt(tBTM_SP_EVT event, const uint8_t* p) { RawAddress bda; uint32_t value = 0; Loading system/stack/include/sec_hci_link_interface.h +2 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ void btm_sec_link_key_notification(const RawAddress& p_bda, const Octet16& link_key, uint8_t key_type); void btm_sec_link_key_request(const RawAddress bda); void btm_sec_pin_code_request(const RawAddress p_bda); void btm_sec_rmt_host_support_feat_evt(const uint8_t* p); void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0); void btm_sec_rmt_name_request_complete(const RawAddress* bd_addr, const uint8_t* bd_name, tHCI_STATUS status); Loading Loading
system/main/shim/acl_api.cc +2 −8 Original line number Diff line number Diff line Loading @@ -209,16 +209,10 @@ void bluetooth::shim::ACL_RemoteNameRequest(const RawAddress& addr, GetGdShimHandler()->BindOnce( [](RawAddress addr, uint64_t features) { static_assert(sizeof(features) == 8); auto addr_array = addr.ToArray(); auto p = (uint8_t*)osi_malloc(addr_array.size() + sizeof(features)); std::copy(addr_array.rbegin(), addr_array.rend(), p); for (int i = 0; i != sizeof(features); ++i) { p[addr_array.size() + i] = features & ((1 << 8) - 1); features >>= 8; } do_in_main_thread( FROM_HERE, base::BindOnce(btm_sec_rmt_host_support_feat_evt, p)); base::BindOnce(btm_sec_rmt_host_support_feat_evt, addr, static_cast<uint8_t>(features & 0xff))); }, addr), GetGdShimHandler()->BindOnce( Loading
system/stack/btm/btm_sec.cc +5 −8 Original line number Diff line number Diff line Loading @@ -2569,28 +2569,25 @@ void btm_sec_rmt_name_request_complete(const RawAddress* p_bd_addr, * Returns void * ******************************************************************************/ void btm_sec_rmt_host_support_feat_evt(const uint8_t* p) { void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0) { tBTM_SEC_DEV_REC* p_dev_rec; RawAddress bd_addr; /* peer address */ BD_FEATURES features; STREAM_TO_BDADDR(bd_addr, p); p_dev_rec = btm_find_or_alloc_dev(bd_addr); LOG_INFO("Got btm_sec_rmt_host_support_feat_evt from %s", ADDRESS_TO_LOGGABLE_CSTR(bd_addr)); LOG_VERBOSE("btm_sec_rmt_host_support_feat_evt sm4: 0x%x p[0]: 0x%x", p_dev_rec->sm4, p[0]); p_dev_rec->sm4, features_0); if (BTM_SEC_IS_SM4_UNKNOWN(p_dev_rec->sm4)) { p_dev_rec->sm4 = BTM_SM4_KNOWN; STREAM_TO_ARRAY(features, p, HCI_FEATURE_BYTES_PER_PAGE); if (HCI_SSP_HOST_SUPPORTED(features)) { if (HCI_SSP_HOST_SUPPORTED((std::array<uint8_t, 1>({features_0})))) { p_dev_rec->sm4 = BTM_SM4_TRUE; } LOG_VERBOSE("btm_sec_rmt_host_support_feat_evt sm4: 0x%x features[0]: 0x%x", p_dev_rec->sm4, features[0]); p_dev_rec->sm4, features_0); } } Loading
system/stack/btm/btm_sec.h +2 −1 Original line number Diff line number Diff line Loading @@ -519,7 +519,8 @@ void btm_sec_rmt_name_request_complete(const RawAddress* p_bd_addr, * Returns void * ******************************************************************************/ void btm_sec_rmt_host_support_feat_evt(const uint8_t* p); void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0); /******************************************************************************* * Loading
system/stack/btu/btu_hcif.cc +11 −1 Original line number Diff line number Diff line Loading @@ -97,6 +97,8 @@ static void btu_hcif_esco_connection_chg_evt(uint8_t* p); static void btu_hcif_sec_pin_code_request(const uint8_t* p); static void btu_hcif_sec_link_key_request(const uint8_t* p); static void btu_hcif_sec_rmt_host_support_feat_evt(const uint8_t* p); static void btu_hcif_proc_sp_req_evt(tBTM_SP_EVT event, const uint8_t* p); static void btu_hcif_rem_oob_req(const uint8_t* p); static void btu_hcif_simple_pair_complete(const uint8_t* p); static void btu_hcif_proc_sp_req_evt(const tBTM_SP_EVT event, const uint8_t* p); Loading Loading @@ -301,7 +303,7 @@ void btu_hcif_process_event(UNUSED_ATTR uint8_t controller_id, btm_pm_proc_ssr_evt(p, hci_evt_len); break; case HCI_RMT_HOST_SUP_FEAT_NOTIFY_EVT: btm_sec_rmt_host_support_feat_evt(p); btu_hcif_sec_rmt_host_support_feat_evt(p); break; case HCI_IO_CAPABILITY_REQUEST_EVT: btu_hcif_io_cap_request_evt(p); Loading Loading @@ -1450,6 +1452,14 @@ void btu_hcif_simple_pair_complete(const uint8_t* p) { STREAM_TO_BDADDR(bd_addr, p); btm_simple_pair_complete(bd_addr, status); } void btu_hcif_sec_rmt_host_support_feat_evt(const uint8_t* p) { RawAddress bd_addr; /* peer address */ uint8_t features_0; STREAM_TO_BDADDR(bd_addr, p); STREAM_TO_UINT8(features_0, p); btm_sec_rmt_host_support_feat_evt(bd_addr, features_0); } void btu_hcif_proc_sp_req_evt(tBTM_SP_EVT event, const uint8_t* p) { RawAddress bda; uint32_t value = 0; Loading
system/stack/include/sec_hci_link_interface.h +2 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ void btm_sec_link_key_notification(const RawAddress& p_bda, const Octet16& link_key, uint8_t key_type); void btm_sec_link_key_request(const RawAddress bda); void btm_sec_pin_code_request(const RawAddress p_bda); void btm_sec_rmt_host_support_feat_evt(const uint8_t* p); void btm_sec_rmt_host_support_feat_evt(const RawAddress bd_addr, uint8_t features_0); void btm_sec_rmt_name_request_complete(const RawAddress* bd_addr, const uint8_t* bd_name, tHCI_STATUS status); Loading