Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b27b44e authored by Chris Manton's avatar Chris Manton
Browse files

IA2: Add device address to stack::sdp callback

The current codebase presumes that only a single
SDP cycle may be in progress at a time.  When initiating
multiple SDP requests in parallel the bd_addr will
be necessary to align the callbacks with the outstanding
SDP requests.

This CL simply provides a currently unused bd_addr
in addition to the SDP status upon completion of
an SDP cycle and possibly user data in those cases.
As of yet this additional parameter is unused
but will be required for parallel SDP cycles.

Bug: 291117499
Test: mma .

Change-Id: Ib503b518be870013a8728410072e9708a9385849
parent 1c07cf8c
Loading
Loading
Loading
Loading
+31 −12
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include "device/include/interop_config.h"
#include "os/log.h"
#include "osi/include/allocator.h"
#include "osi/include/osi.h"  // UNUSED_ATTR
#include "stack/btm/btm_sco_hfp_hal.h"
#include "stack/include/btm_api.h"
#include "stack/include/btu.h"  // do_in_main_thread
@@ -58,12 +59,12 @@ using bluetooth::Uuid;
#endif

/* declare sdp callback functions */
void bta_ag_sdp_cback_1(tSDP_RESULT);
void bta_ag_sdp_cback_2(tSDP_RESULT);
void bta_ag_sdp_cback_3(tSDP_RESULT);
void bta_ag_sdp_cback_4(tSDP_RESULT);
void bta_ag_sdp_cback_5(tSDP_RESULT);
void bta_ag_sdp_cback_6(tSDP_RESULT);
void bta_ag_sdp_cback_1(const RawAddress& bd_addr, tSDP_RESULT);
void bta_ag_sdp_cback_2(const RawAddress& bd_addr, tSDP_RESULT);
void bta_ag_sdp_cback_3(const RawAddress& bd_addr, tSDP_RESULT);
void bta_ag_sdp_cback_4(const RawAddress& bd_addr, tSDP_RESULT);
void bta_ag_sdp_cback_5(const RawAddress& bd_addr, tSDP_RESULT);
void bta_ag_sdp_cback_6(const RawAddress& bd_addr, tSDP_RESULT);

/* SDP callback function table */
typedef tSDP_DISC_CMPL_CB* tBTA_AG_SDP_CBACK;
@@ -110,12 +111,30 @@ static void bta_ag_sdp_cback(uint16_t status, uint8_t idx) {
 * Returns          void
 *
 ******************************************************************************/
void bta_ag_sdp_cback_1(tSDP_STATUS status) { bta_ag_sdp_cback(status, 1); }
void bta_ag_sdp_cback_2(tSDP_STATUS status) { bta_ag_sdp_cback(status, 2); }
void bta_ag_sdp_cback_3(tSDP_STATUS status) { bta_ag_sdp_cback(status, 3); }
void bta_ag_sdp_cback_4(tSDP_STATUS status) { bta_ag_sdp_cback(status, 4); }
void bta_ag_sdp_cback_5(tSDP_STATUS status) { bta_ag_sdp_cback(status, 5); }
void bta_ag_sdp_cback_6(tSDP_STATUS status) { bta_ag_sdp_cback(status, 6); }
void bta_ag_sdp_cback_1(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 1);
}
void bta_ag_sdp_cback_2(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 2);
}
void bta_ag_sdp_cback_3(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 3);
}
void bta_ag_sdp_cback_4(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 4);
}
void bta_ag_sdp_cback_5(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 5);
}
void bta_ag_sdp_cback_6(UNUSED_ATTR const RawAddress& bd_addr,
                        tSDP_STATUS status) {
  bta_ag_sdp_cback(status, 6);
}

/******************************************************************************
 *
+4 −2
Original line number Diff line number Diff line
@@ -98,7 +98,8 @@ static void bta_dm_service_search_remname_cback(const RawAddress& bd_addr,
static void bta_dm_remname_cback(const tBTM_REMOTE_DEV_NAME* p);
static void bta_dm_find_services(const RawAddress& bd_addr);
static void bta_dm_discover_next_device(void);
static void bta_dm_sdp_callback(tSDP_STATUS sdp_status);
static void bta_dm_sdp_callback(const RawAddress& bd_addr,
                                tSDP_STATUS sdp_status);
static uint8_t bta_dm_pin_cback(const RawAddress& bd_addr, DEV_CLASS dev_class,
                                const tBTM_BD_NAME bd_name, bool min_16_digit);
static uint8_t bta_dm_new_link_key_cback(const RawAddress& bd_addr,
@@ -2110,7 +2111,8 @@ static void bta_dm_discover_device(const RawAddress& remote_bd_addr) {
 * Returns          void
 *
 ******************************************************************************/
static void bta_dm_sdp_callback(tSDP_STATUS sdp_status) {
static void bta_dm_sdp_callback(UNUSED_ATTR const RawAddress& bd_addr,
                                tSDP_STATUS sdp_status) {
  tBTA_DM_SDP_RESULT* p_msg =
      (tBTA_DM_SDP_RESULT*)osi_malloc(sizeof(tBTA_DM_SDP_RESULT));

+3 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
#include "device/include/interop.h"
#include "osi/include/allocator.h"
#include "osi/include/log.h"
#include "osi/include/osi.h"  // UNUSED_ATTR
#include "stack/btm/btm_sec.h"
#include "stack/include/gatt_api.h"
#include "stack/include/sdp_api.h"
@@ -350,7 +351,8 @@ descriptor_discovery_done:
}

/* Process the discovery result from sdp */
void bta_gattc_sdp_callback(tSDP_STATUS sdp_status, const void* user_data) {
void bta_gattc_sdp_callback(UNUSED_ATTR const RawAddress& bd_addr,
                            tSDP_STATUS sdp_status, const void* user_data) {
  tBTA_GATTC_CB_DATA* cb_data = (tBTA_GATTC_CB_DATA*)user_data;
  tBTA_GATTC_SERV* p_srvc_cb = bta_gattc_find_scb_by_cid(cb_data->sdp_conn_id);

+3 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include "bta/include/bta_hf_client_api.h"
#include "bta/sys/bta_sys.h"
#include "osi/include/allocator.h"
#include "osi/include/osi.h"  // UNUSED_ATTR
#include "osi/include/properties.h"
#include "stack/btm/btm_sec.h"
#include "stack/include/btm_api.h"
@@ -58,7 +59,8 @@ using namespace bluetooth::legacy::stack::sdp;
 * Returns          void
 *
 ******************************************************************************/
static void bta_hf_client_sdp_cback(tSDP_STATUS status, const void* data) {
static void bta_hf_client_sdp_cback(UNUSED_ATTR const RawAddress& bd_addr,
                                    tSDP_STATUS status, const void* data) {
  uint16_t event;
  tBTA_HF_CLIENT_DISC_RESULT* p_buf = (tBTA_HF_CLIENT_DISC_RESULT*)osi_malloc(
      sizeof(tBTA_HF_CLIENT_DISC_RESULT));
+2 −1
Original line number Diff line number Diff line
@@ -261,7 +261,8 @@ static void bta_hh_sdp_cback(uint16_t result, uint16_t attr_mask,
 * Returns          void
 *
 ******************************************************************************/
static void bta_hh_di_sdp_cback(tSDP_RESULT result) {
static void bta_hh_di_sdp_cback(UNUSED_ATTR const RawAddress& bd_addr,
                                tSDP_RESULT result) {
  tBTA_HH_DEV_CB* p_cb = bta_hh_cb.p_cur;
  tBTA_HH_STATUS status = BTA_HH_ERR_SDP;
  tSDP_DI_GET_RECORD di_rec;
Loading