diff --git a/system/stack/btm/btm_inq.cc b/system/stack/btm/btm_inq.cc index 0b8e5c2b894c9d50164c912f42722c08a2a714af..9e0c8f3783fc3a1f16b00b94b4a9500c85857684 100644 --- a/system/stack/btm/btm_inq.cc +++ b/system/stack/btm/btm_inq.cc @@ -1439,16 +1439,11 @@ static void btm_process_inq_results_standard(const uint8_t* p, * from the device. It updates the inquiry database. If the * inquiry database is full, the oldest entry is discarded. * - * Parameters inq_res_mode - BTM_INQ_RESULT_STANDARD - * BTM_INQ_RESULT_WITH_RSSI - * BTM_INQ_RESULT_EXTENDED - * - * * Returns void * ******************************************************************************/ -static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, - uint8_t inq_res_mode) { +static void btm_process_inq_results_rssi(const uint8_t* p, + uint8_t hci_evt_len) { uint8_t num_resp, xx; RawAddress bda; tINQ_DB_ENT* p_i; @@ -1476,19 +1471,7 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, STREAM_TO_UINT8(num_resp, p); - if (inq_res_mode == BTM_INQ_RESULT_EXTENDED) { - if (num_resp > 1) { - log::error("extended results ({}) > 1", num_resp); - return; - } - - constexpr uint16_t extended_inquiry_result_size = 254; - if (hci_evt_len - 1 != extended_inquiry_result_size) { - log::error("can't fit {} results in {} bytes", num_resp, hci_evt_len); - return; - } - } else if (inq_res_mode == BTM_INQ_RESULT_STANDARD || - inq_res_mode == BTM_INQ_RESULT_WITH_RSSI) { + { constexpr uint16_t inquiry_result_size = 14; if (hci_evt_len < num_resp * inquiry_result_size) { log::error("can't fit {} results in {} bytes", num_resp, hci_evt_len); @@ -1504,15 +1487,9 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, STREAM_TO_UINT8(page_scan_rep_mode, p); STREAM_TO_UINT8(page_scan_per_mode, p); - if (inq_res_mode == BTM_INQ_RESULT_STANDARD) { - STREAM_TO_UINT8(page_scan_mode, p); - } - STREAM_TO_DEVCLASS(dc, p); STREAM_TO_UINT16(clock_offset, p); - if (inq_res_mode != BTM_INQ_RESULT_STANDARD) { - STREAM_TO_UINT8(rssi, p); - } + STREAM_TO_UINT8(rssi, p); p_i = btm_inq_db_find(bda); @@ -1533,13 +1510,6 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, p_cur->rssi = i_rssi; update = true; } - /* If we received a second Extended Inq Event for an already */ - /* discovered device, this is because for the first one EIR was not - received */ - else if ((inq_res_mode == BTM_INQ_RESULT_EXTENDED) && (p_i)) { - p_cur = &p_i->inq_info.results; - update = true; - } /* If no update needed continue with next response (if any) */ else continue; @@ -1553,20 +1523,15 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, } /* If an entry for the device already exists, overwrite it ONLY if it is - from - a previous inquiry. (Ignore it if it is a duplicate response from the - same - inquiry. + from a previous inquiry. (Ignore it if it is a duplicate response from + the same inquiry. */ else if (p_i->inq_count == btm_cb.btm_inq_vars.inq_counter && (p_i->inq_info.results.device_type == BT_DEVICE_TYPE_BREDR)) is_new = false; /* keep updating RSSI to have latest value */ - if (inq_res_mode != BTM_INQ_RESULT_STANDARD) - p_i->inq_info.results.rssi = (int8_t)rssi; - else - p_i->inq_info.results.rssi = BTM_INQ_RES_IGNORE_RSSI; + p_i->inq_info.results.rssi = (int8_t)rssi; if (is_new) { /* Save the info */ @@ -1584,17 +1549,7 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, if (p_i->inq_count != btm_cb.btm_inq_vars.inq_counter) { /* A new response was found */ btm_cb.btm_inq_vars.inq_cmpl_info.num_resp++; - switch (static_cast<tBTM_INQ_RESULT>(inq_res_mode)) { - case BTM_INQ_RESULT_STANDARD: - case BTM_INQ_RESULT_WITH_RSSI: - case BTM_INQ_RESULT_EXTENDED: - btm_cb.btm_inq_vars.inq_cmpl_info.resp_type[inq_res_mode]++; - break; - case BTM_INQ_RES_IGNORE_RSSI: - btm_cb.btm_inq_vars.inq_cmpl_info - .resp_type[BTM_INQ_RESULT_STANDARD]++; - break; - } + btm_cb.btm_inq_vars.inq_cmpl_info.resp_type[BTM_INQ_RESULT_WITH_RSSI]++; } p_cur->inq_result_type |= BT_DEVICE_TYPE_BREDR; @@ -1611,14 +1566,7 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, } if (is_new || update) { - if (inq_res_mode == BTM_INQ_RESULT_EXTENDED) { - memset(p_cur->eir_uuid, 0, - BTM_EIR_SERVICE_ARRAY_SIZE * (BTM_EIR_ARRAY_BITS / 8)); - /* set bit map of UUID list from received EIR */ - btm_set_eir_uuid(p, p_cur); - p_eir_data = p; - } else - p_eir_data = NULL; + p_eir_data = NULL; /* If a callback is registered, call it with the results */ if (p_inq_results_cb) { @@ -1639,17 +1587,11 @@ static void btm_process_inq_results_rssi(const uint8_t* p, uint8_t hci_evt_len, * from the device. It updates the inquiry database. If the * inquiry database is full, the oldest entry is discarded. * - * Parameters inq_res_mode - BTM_INQ_RESULT_STANDARD - * BTM_INQ_RESULT_WITH_RSSI - * BTM_INQ_RESULT_EXTENDED - * - * * Returns void * ******************************************************************************/ static void btm_process_inq_results_extended(const uint8_t* p, - uint8_t hci_evt_len, - uint8_t inq_res_mode) { + uint8_t hci_evt_len) { uint8_t num_resp, xx; RawAddress bda; tINQ_DB_ENT* p_i; @@ -1677,7 +1619,7 @@ static void btm_process_inq_results_extended(const uint8_t* p, STREAM_TO_UINT8(num_resp, p); - if (inq_res_mode == BTM_INQ_RESULT_EXTENDED) { + { if (num_resp > 1) { log::error("extended results ({}) > 1", num_resp); return; @@ -1688,13 +1630,6 @@ static void btm_process_inq_results_extended(const uint8_t* p, log::error("can't fit {} results in {} bytes", num_resp, hci_evt_len); return; } - } else if (inq_res_mode == BTM_INQ_RESULT_STANDARD || - inq_res_mode == BTM_INQ_RESULT_WITH_RSSI) { - constexpr uint16_t inquiry_result_size = 14; - if (hci_evt_len < num_resp * inquiry_result_size) { - log::error("can't fit {} results in {} bytes", num_resp, hci_evt_len); - return; - } } btm_cb.neighbor.classic_inquiry.results += num_resp; @@ -1705,15 +1640,9 @@ static void btm_process_inq_results_extended(const uint8_t* p, STREAM_TO_UINT8(page_scan_rep_mode, p); STREAM_TO_UINT8(page_scan_per_mode, p); - if (inq_res_mode == BTM_INQ_RESULT_STANDARD) { - STREAM_TO_UINT8(page_scan_mode, p); - } - STREAM_TO_DEVCLASS(dc, p); STREAM_TO_UINT16(clock_offset, p); - if (inq_res_mode != BTM_INQ_RESULT_STANDARD) { - STREAM_TO_UINT8(rssi, p); - } + STREAM_TO_UINT8(rssi, p); p_i = btm_inq_db_find(bda); @@ -1737,7 +1666,7 @@ static void btm_process_inq_results_extended(const uint8_t* p, /* If we received a second Extended Inq Event for an already */ /* discovered device, this is because for the first one EIR was not received */ - else if ((inq_res_mode == BTM_INQ_RESULT_EXTENDED) && (p_i)) { + else if (p_i) { p_cur = &p_i->inq_info.results; update = true; } @@ -1764,10 +1693,7 @@ static void btm_process_inq_results_extended(const uint8_t* p, is_new = false; /* keep updating RSSI to have latest value */ - if (inq_res_mode != BTM_INQ_RESULT_STANDARD) - p_i->inq_info.results.rssi = (int8_t)rssi; - else - p_i->inq_info.results.rssi = BTM_INQ_RES_IGNORE_RSSI; + p_i->inq_info.results.rssi = (int8_t)rssi; if (is_new) { /* Save the info */ @@ -1785,17 +1711,7 @@ static void btm_process_inq_results_extended(const uint8_t* p, if (p_i->inq_count != btm_cb.btm_inq_vars.inq_counter) { /* A new response was found */ btm_cb.btm_inq_vars.inq_cmpl_info.num_resp++; - switch (static_cast<tBTM_INQ_RESULT>(inq_res_mode)) { - case BTM_INQ_RESULT_STANDARD: - case BTM_INQ_RESULT_WITH_RSSI: - case BTM_INQ_RESULT_EXTENDED: - btm_cb.btm_inq_vars.inq_cmpl_info.resp_type[inq_res_mode]++; - break; - case BTM_INQ_RES_IGNORE_RSSI: - btm_cb.btm_inq_vars.inq_cmpl_info - .resp_type[BTM_INQ_RESULT_STANDARD]++; - break; - } + btm_cb.btm_inq_vars.inq_cmpl_info.resp_type[BTM_INQ_RESULT_EXTENDED]++; } p_cur->inq_result_type |= BT_DEVICE_TYPE_BREDR; @@ -1812,14 +1728,13 @@ static void btm_process_inq_results_extended(const uint8_t* p, } if (is_new || update) { - if (inq_res_mode == BTM_INQ_RESULT_EXTENDED) { + { memset(p_cur->eir_uuid, 0, BTM_EIR_SERVICE_ARRAY_SIZE * (BTM_EIR_ARRAY_BITS / 8)); /* set bit map of UUID list from received EIR */ btm_set_eir_uuid(p, p_cur); p_eir_data = p; - } else - p_eir_data = NULL; + } /* If a callback is registered, call it with the results */ if (p_inq_results_cb) { @@ -1854,10 +1769,10 @@ void btm_process_inq_results(const uint8_t* p, uint8_t hci_evt_len, btm_process_inq_results_standard(p, hci_evt_len); break; case BTM_INQ_RESULT_WITH_RSSI: - btm_process_inq_results_rssi(p, hci_evt_len, BTM_INQ_RESULT_WITH_RSSI); + btm_process_inq_results_rssi(p, hci_evt_len); break; case BTM_INQ_RESULT_EXTENDED: - btm_process_inq_results_extended(p, hci_evt_len, BTM_INQ_RESULT_EXTENDED); + btm_process_inq_results_extended(p, hci_evt_len); break; } }