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

Commit a904775f authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 7357013 from f45349f8 to sc-release

Change-Id: Id21d4a51d584a161cfda568a35708e942d26c456
parents 7d9d1535 f45349f8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ cc_test {
        "sys/bta_sys_conn.cc",
        "sys/bta_sys_main.cc",
        "test/bta_dm_test.cc",
        "test/bta_gatt_test.cc",
    ],
    shared_libs: [
        "libcrypto",
+42 −35
Original line number Diff line number Diff line
@@ -176,7 +176,8 @@ void bta_gattc_register(const Uuid& app_uuid, tBTA_GATTC_CBACK* p_cback,
  for (uint8_t i = 0; i < BTA_GATTC_CL_MAX; i++) {
    if (!bta_gattc_cb.cl_rcb[i].in_use) {
      if ((bta_gattc_cb.cl_rcb[i].client_if = GATT_Register(
               app_uuid, &bta_gattc_cl_cback, eatt_suppport)) == 0) {
               app_uuid, "GattClient", &bta_gattc_cl_cback, eatt_suppport)) ==
          0) {
        LOG(ERROR) << "Register with GATT stack failed.";
        status = GATT_ERROR;
      } else {
@@ -244,7 +245,7 @@ void bta_gattc_deregister(tBTA_GATTC_RCB* p_clreg) {
}

/** process connect API request */
void bta_gattc_process_api_open(tBTA_GATTC_DATA* p_msg) {
void bta_gattc_process_api_open(const tBTA_GATTC_DATA* p_msg) {
  uint16_t event = ((BT_HDR_RIGID*)p_msg)->event;

  tBTA_GATTC_RCB* p_clreg = bta_gattc_cl_get_regcb(p_msg->api_conn.client_if);
@@ -274,7 +275,7 @@ void bta_gattc_process_api_open(tBTA_GATTC_DATA* p_msg) {
}

/** process connect API request */
void bta_gattc_process_api_open_cancel(tBTA_GATTC_DATA* p_msg) {
void bta_gattc_process_api_open_cancel(const tBTA_GATTC_DATA* p_msg) {
  CHECK(p_msg != nullptr);

  uint16_t event = ((BT_HDR_RIGID*)p_msg)->event;
@@ -322,7 +323,7 @@ void bta_gattc_process_enc_cmpl(tGATT_IF client_if, const RawAddress& bda) {
}

void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB* p_clcb,
                                 UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                                 UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC cb_data;

  cb_data.status = GATT_ERROR;
@@ -332,7 +333,7 @@ void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB* p_clcb,
}

void bta_gattc_open_error(tBTA_GATTC_CLCB* p_clcb,
                          UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                          UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  LOG(ERROR) << "Connection already opened. wrong state";

  bta_gattc_send_open_cback(p_clcb->p_rcb, GATT_SUCCESS, p_clcb->bda,
@@ -340,7 +341,7 @@ void bta_gattc_open_error(tBTA_GATTC_CLCB* p_clcb,
}

void bta_gattc_open_fail(tBTA_GATTC_CLCB* p_clcb,
                         UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                         UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  LOG(WARNING) << __func__ << ": Cannot establish Connection. conn_id="
               << loghex(p_clcb->bta_conn_id) << ". Return GATT_ERROR("
               << +GATT_ERROR << ")";
@@ -352,7 +353,7 @@ void bta_gattc_open_fail(tBTA_GATTC_CLCB* p_clcb,
}

/** Process API connection function */
void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC_DATA gattc_data;

  /* open/hold a connection */
@@ -377,7 +378,7 @@ void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** Process API Open for a background connection */
void bta_gattc_init_bk_conn(tBTA_GATTC_API_OPEN* p_data,
void bta_gattc_init_bk_conn(const tBTA_GATTC_API_OPEN* p_data,
                            tBTA_GATTC_RCB* p_clreg) {
  if (!bta_gattc_mark_bg_conn(p_data->client_if, p_data->remote_bda, true)) {
    bta_gattc_send_open_cback(p_clreg, GATT_NO_RESOURCES, p_data->remote_bda,
@@ -410,11 +411,12 @@ void bta_gattc_init_bk_conn(tBTA_GATTC_API_OPEN* p_data,
  gattc_data.hdr.layer_specific = p_clcb->bta_conn_id = conn_id;

  /* open connection */
  bta_gattc_sm_execute(p_clcb, BTA_GATTC_INT_CONN_EVT, &gattc_data);
  bta_gattc_sm_execute(p_clcb, BTA_GATTC_INT_CONN_EVT,
                       static_cast<const tBTA_GATTC_DATA*>(&gattc_data));
}

/** Process API Cancel Open for a background connection */
void bta_gattc_cancel_bk_conn(tBTA_GATTC_API_CANCEL_OPEN* p_data) {
void bta_gattc_cancel_bk_conn(const tBTA_GATTC_API_CANCEL_OPEN* p_data) {
  tBTA_GATTC_RCB* p_clreg;
  tBTA_GATTC cb_data;
  cb_data.status = GATT_ERROR;
@@ -435,7 +437,7 @@ void bta_gattc_cancel_bk_conn(tBTA_GATTC_API_CANCEL_OPEN* p_data) {
}

void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB* p_clcb,
                              UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                              UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC cb_data;

  if (p_clcb->p_rcb->p_cback) {
@@ -446,7 +448,8 @@ void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB* p_clcb,
  bta_gattc_clcb_dealloc(p_clcb);
}

void bta_gattc_cancel_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_cancel_open(tBTA_GATTC_CLCB* p_clcb,
                           const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC cb_data;

  if (GATT_CancelConnect(p_clcb->p_rcb->client_if,
@@ -461,7 +464,7 @@ void bta_gattc_cancel_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** receive connection callback from stack */
void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  tGATT_IF gatt_if;
  VLOG(1) << __func__ << ": server cache state=" << +p_clcb->p_srcb->state;

@@ -521,7 +524,8 @@ void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** close a  connection */
void bta_gattc_close_fail(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_close_fail(tBTA_GATTC_CLCB* p_clcb,
                          const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC cb_data;

  if (p_clcb->p_rcb->p_cback) {
@@ -539,7 +543,7 @@ void bta_gattc_close_fail(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** close a GATTC connection */
void bta_gattc_close(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_close(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC_CBACK* p_cback = p_clcb->p_rcb->p_cback;
  tBTA_GATTC_RCB* p_clreg = p_clcb->p_rcb;
  tBTA_GATTC cb_data;
@@ -590,7 +594,8 @@ void bta_gattc_reset_discover_st(tBTA_GATTC_SERV* p_srcb, tGATT_STATUS status) {
}

/** close a GATTC connection while in discovery state */
void bta_gattc_disc_close(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_disc_close(tBTA_GATTC_CLCB* p_clcb,
                          const tBTA_GATTC_DATA* p_data) {
  VLOG(1) << __func__
          << ": Discovery cancel conn_id=" << loghex(p_clcb->bta_conn_id);

@@ -626,13 +631,13 @@ void bta_gattc_set_discover_st(tBTA_GATTC_SERV* p_srcb) {
 * set status to be discovery cancel for current discovery.
 */
void bta_gattc_restart_discover(tBTA_GATTC_CLCB* p_clcb,
                                UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                                UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  p_clcb->status = GATT_CANCEL;
  p_clcb->auto_update = BTA_GATTC_DISC_WAITING;
}

/** Configure MTU size on the GATT connection */
void bta_gattc_cfg_mtu(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_cfg_mtu(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  if (!bta_gattc_enqueue(p_clcb, p_data)) return;

  tGATT_STATUS status =
@@ -664,7 +669,7 @@ void bta_gattc_start_discover_internal(tBTA_GATTC_CLCB* p_clcb) {

/** Start a discovery on server */
void bta_gattc_start_discover(tBTA_GATTC_CLCB* p_clcb,
                              UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                              UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  VLOG(1) << __func__ << ": conn_id:" << loghex(p_clcb->bta_conn_id)
          << " p_clcb->p_srcb->state:" << +p_clcb->p_srcb->state;

@@ -710,8 +715,8 @@ void bta_gattc_start_discover(tBTA_GATTC_CLCB* p_clcb,

/** discovery on server is finished */
void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB* p_clcb,
                         UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC_DATA* p_q_cmd = p_clcb->p_q_cmd;
                         UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  const tBTA_GATTC_DATA* p_q_cmd = p_clcb->p_q_cmd;

  VLOG(1) << __func__ << ": conn_id=" << loghex(p_clcb->bta_conn_id);

@@ -761,7 +766,7 @@ void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB* p_clcb,
}

/** Read an attribute */
void bta_gattc_read(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_read(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  if (!bta_gattc_enqueue(p_clcb, p_data)) return;

  tGATT_STATUS status;
@@ -793,7 +798,8 @@ void bta_gattc_read(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** read multiple */
void bta_gattc_read_multi(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_read_multi(tBTA_GATTC_CLCB* p_clcb,
                          const tBTA_GATTC_DATA* p_data) {
  if (!bta_gattc_enqueue(p_clcb, p_data)) return;

  tGATT_READ_PARAM read_param;
@@ -817,7 +823,7 @@ void bta_gattc_read_multi(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** Write an attribute */
void bta_gattc_write(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_write(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  if (!bta_gattc_enqueue(p_clcb, p_data)) return;

  tGATT_STATUS status = GATT_SUCCESS;
@@ -846,7 +852,7 @@ void bta_gattc_write(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** send execute write */
void bta_gattc_execute(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_execute(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  if (!bta_gattc_enqueue(p_clcb, p_data)) return;

  tGATT_STATUS status =
@@ -861,7 +867,7 @@ void bta_gattc_execute(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** send handle value confirmation */
void bta_gattc_confirm(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_confirm(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  uint16_t cid = p_data->api_confirm.cid;

  if (GATTC_SendHandleValueConfirm(p_data->api_confirm.hdr.layer_specific,
@@ -878,7 +884,7 @@ void bta_gattc_confirm(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {

/** read complete */
static void bta_gattc_read_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                tBTA_GATTC_OP_CMPL* p_data) {
                                const tBTA_GATTC_OP_CMPL* p_data) {
  GATT_READ_OP_CB cb = p_clcb->p_q_cmd->api_read.read_cb;
  void* my_cb_data = p_clcb->p_q_cmd->api_read.read_cb_data;

@@ -899,7 +905,7 @@ static void bta_gattc_read_cmpl(tBTA_GATTC_CLCB* p_clcb,

/** write complete */
static void bta_gattc_write_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                 tBTA_GATTC_OP_CMPL* p_data) {
                                 const tBTA_GATTC_OP_CMPL* p_data) {
  GATT_WRITE_OP_CB cb = p_clcb->p_q_cmd->api_write.write_cb;
  void* my_cb_data = p_clcb->p_q_cmd->api_write.write_cb_data;

@@ -913,7 +919,7 @@ static void bta_gattc_write_cmpl(tBTA_GATTC_CLCB* p_clcb,

/** execute write complete */
static void bta_gattc_exec_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                tBTA_GATTC_OP_CMPL* p_data) {
                                const tBTA_GATTC_OP_CMPL* p_data) {
  tBTA_GATTC cb_data;

  osi_free_and_reset((void**)&p_clcb->p_q_cmd);
@@ -928,7 +934,7 @@ static void bta_gattc_exec_cmpl(tBTA_GATTC_CLCB* p_clcb,

/** configure MTU operation complete */
static void bta_gattc_cfg_mtu_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                   tBTA_GATTC_OP_CMPL* p_data) {
                                   const tBTA_GATTC_OP_CMPL* p_data) {
  GATT_CONFIGURE_MTU_OP_CB cb = p_clcb->p_q_cmd->api_mtu.mtu_cb;
  void* my_cb_data = p_clcb->p_q_cmd->api_mtu.mtu_cb_data;
  tBTA_GATTC cb_data;
@@ -952,7 +958,7 @@ static void bta_gattc_cfg_mtu_cmpl(tBTA_GATTC_CLCB* p_clcb,
}

/** operation completed */
void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  uint8_t op = (uint8_t)p_data->op_cmpl.op_code;
  uint8_t mapped_op = 0;

@@ -990,7 +996,8 @@ void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
      p_clcb->p_srcb->srvc_hdl_chg && op != GATTC_OPTYPE_CONFIG) {
    VLOG(1) << "Discard all responses when service change indication is "
               "received.";
    p_data->op_cmpl.status = GATT_ERROR;
    // TODO Fix constness
    const_cast<tBTA_GATTC_DATA*>(p_data)->op_cmpl.status = GATT_ERROR;
  }

  /* service handle change void the response, discard it */
@@ -1031,7 +1038,7 @@ void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
}

/** start a search in the local server cache */
void bta_gattc_search(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_search(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  tGATT_STATUS status = GATT_INTERNAL_ERROR;
  tBTA_GATTC cb_data;
  VLOG(1) << __func__ << ": conn_id=" << loghex(p_clcb->bta_conn_id);
@@ -1049,13 +1056,13 @@ void bta_gattc_search(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {

/** enqueue a command into control block, usually because discovery operation is
 * busy */
void bta_gattc_q_cmd(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data) {
void bta_gattc_q_cmd(tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_DATA* p_data) {
  bta_gattc_enqueue(p_clcb, p_data);
}

/** report API call failure back to apps */
void bta_gattc_fail(tBTA_GATTC_CLCB* p_clcb,
                    UNUSED_ATTR tBTA_GATTC_DATA* p_data) {
                    UNUSED_ATTR const tBTA_GATTC_DATA* p_data) {
  if (p_clcb->status == GATT_SUCCESS) {
    LOG(ERROR) << "operation not supported at current state " << +p_clcb->state;
  }
+6 −6
Original line number Diff line number Diff line
@@ -61,10 +61,10 @@ static void bta_gattc_explore_srvc_finished(uint16_t conn_id,
                                            tBTA_GATTC_SERV* p_srvc_cb);

static void bta_gattc_read_db_hash_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                        tBTA_GATTC_OP_CMPL* p_data);
                                        const tBTA_GATTC_OP_CMPL* p_data);

static void bta_gattc_read_ext_prop_desc_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                              tBTA_GATTC_OP_CMPL* p_data);
                                              const tBTA_GATTC_OP_CMPL* p_data);

// define the max retry count for DATABASE_OUT_OF_SYNC
#define BTA_GATTC_DISCOVER_RETRY_COUNT 2
@@ -367,7 +367,7 @@ static tGATT_STATUS bta_gattc_sdp_service_disc(uint16_t conn_id,

/** operation completed */
void bta_gattc_op_cmpl_during_discovery(tBTA_GATTC_CLCB* p_clcb,
                                        tBTA_GATTC_DATA* p_data) {
                                        const tBTA_GATTC_DATA* p_data) {
  // Currently, there are two cases needed to be handled.
  // 1. Read ext prop descriptor value after service discovery
  // 2. Read db hash before starting service discovery
@@ -643,7 +643,7 @@ bool bta_gattc_read_db_hash(tBTA_GATTC_CLCB* p_clcb) {

/* handle response of reading database hash */
static void bta_gattc_read_db_hash_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                        tBTA_GATTC_OP_CMPL* p_data) {
                                        const tBTA_GATTC_OP_CMPL* p_data) {
  uint8_t op = (uint8_t)p_data->op_code;
  if (op != GATTC_OPTYPE_READ) {
    VLOG(1) << __func__ << ": op = " << +p_data->hdr.layer_specific;
@@ -680,8 +680,8 @@ static void bta_gattc_read_db_hash_cmpl(tBTA_GATTC_CLCB* p_clcb,
}

/* handle response of reading extended properties descriptor */
static void bta_gattc_read_ext_prop_desc_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                              tBTA_GATTC_OP_CMPL* p_data) {
static void bta_gattc_read_ext_prop_desc_cmpl(
    tBTA_GATTC_CLCB* p_clcb, const tBTA_GATTC_OP_CMPL* p_data) {
  uint8_t op = (uint8_t)p_data->op_code;
  if (op != GATTC_OPTYPE_READ) {
    VLOG(1) << __func__ << ": op = " << +p_data->hdr.layer_specific;
+47 −33
Original line number Diff line number Diff line
@@ -250,7 +250,7 @@ typedef struct {
  tBT_TRANSPORT transport;  /* channel transport */
  tBTA_GATTC_RCB* p_rcb;    /* pointer to the registration CB */
  tBTA_GATTC_SERV* p_srcb;  /* server cache CB */
  tBTA_GATTC_DATA* p_q_cmd; /* command in queue waiting for execution */
  const tBTA_GATTC_DATA* p_q_cmd; /* command in queue waiting for execution */

// request during discover state
#define BTA_GATTC_DISCOVER_REQ_NONE 0
@@ -321,71 +321,84 @@ extern tBTA_GATTC_CB bta_gattc_cb;
 ****************************************************************************/
extern bool bta_gattc_hdl_event(BT_HDR_RIGID* p_msg);
extern bool bta_gattc_sm_execute(tBTA_GATTC_CLCB* p_clcb, uint16_t event,
                                 tBTA_GATTC_DATA* p_data);
                                 const tBTA_GATTC_DATA* p_data);

/* function processed outside SM */
extern void bta_gattc_disable();
extern void bta_gattc_register(const bluetooth::Uuid& app_uuid,
                               tBTA_GATTC_CBACK* p_data,
                               BtaAppRegisterCallback cb, bool eatt_support);
extern void bta_gattc_process_api_open(tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_process_api_open_cancel(tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_process_api_open(const tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_process_api_open_cancel(const tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_deregister(tBTA_GATTC_RCB* p_clreg);

/* function within state machine */
extern void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_open(tBTA_GATTC_CLCB* p_clcb,
                           const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_open_fail(tBTA_GATTC_CLCB* p_clcb,
                                tBTA_GATTC_DATA* p_data);
                                const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_open_error(tBTA_GATTC_CLCB* p_clcb,
                                 tBTA_GATTC_DATA* p_data);
                                 const tBTA_GATTC_DATA* p_data);

extern void bta_gattc_cancel_open(tBTA_GATTC_CLCB* p_clcb,
                                  tBTA_GATTC_DATA* p_data);
                                  const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_cancel_open_ok(tBTA_GATTC_CLCB* p_clcb,
                                     tBTA_GATTC_DATA* p_data);
                                     const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_cancel_open_error(tBTA_GATTC_CLCB* p_clcb,
                                        tBTA_GATTC_DATA* p_data);
                                        const tBTA_GATTC_DATA* p_data);

extern void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_conn(tBTA_GATTC_CLCB* p_clcb,
                           const tBTA_GATTC_DATA* p_data);

extern void bta_gattc_close(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_close(tBTA_GATTC_CLCB* p_clcb,
                            const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_close_fail(tBTA_GATTC_CLCB* p_clcb,
                                 tBTA_GATTC_DATA* p_data);
                                 const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_disc_close(tBTA_GATTC_CLCB* p_clcb,
                                 tBTA_GATTC_DATA* p_data);
                                 const tBTA_GATTC_DATA* p_data);

extern void bta_gattc_start_discover(tBTA_GATTC_CLCB* p_clcb,
                                     tBTA_GATTC_DATA* p_data);
                                     const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_start_discover_internal(tBTA_GATTC_CLCB* p_clcb);
extern void bta_gattc_disc_cmpl(tBTA_GATTC_CLCB* p_clcb,
                                tBTA_GATTC_DATA* p_data);
extern void bta_gattc_read(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_write(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_q_cmd(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_search(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_fail(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_confirm(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_execute(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
                                const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_read(tBTA_GATTC_CLCB* p_clcb,
                           const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_write(tBTA_GATTC_CLCB* p_clcb,
                            const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_op_cmpl(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_q_cmd(tBTA_GATTC_CLCB* p_clcb,
                            const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_search(tBTA_GATTC_CLCB* p_clcb,
                             const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_fail(tBTA_GATTC_CLCB* p_clcb,
                           const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_confirm(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_execute(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_read_multi(tBTA_GATTC_CLCB* p_clcb,
                                 tBTA_GATTC_DATA* p_data);
extern void bta_gattc_ci_open(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
                                 const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_ci_open(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_ci_close(tBTA_GATTC_CLCB* p_clcb,
                               tBTA_GATTC_DATA* p_data);
                               const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_op_cmpl_during_discovery(tBTA_GATTC_CLCB* p_clcb,
                                               tBTA_GATTC_DATA* p_data);
                                               const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_restart_discover(tBTA_GATTC_CLCB* p_clcb,
                                       tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_init_bk_conn(tBTA_GATTC_API_OPEN* p_data,
                                       const tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_init_bk_conn(const tBTA_GATTC_API_OPEN* p_data,
                                   tBTA_GATTC_RCB* p_clreg);
extern void bta_gattc_cancel_bk_conn(tBTA_GATTC_API_CANCEL_OPEN* p_data);
extern void bta_gattc_cancel_bk_conn(const tBTA_GATTC_API_CANCEL_OPEN* p_data);
extern void bta_gattc_send_open_cback(tBTA_GATTC_RCB* p_clreg,
                                      tGATT_STATUS status,
                                      const RawAddress& remote_bda,
                                      uint16_t conn_id, tBT_TRANSPORT transport,
                                      uint16_t mtu);
extern void bta_gattc_process_api_refresh(const RawAddress& remote_bda);
extern void bta_gattc_cfg_mtu(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern void bta_gattc_cfg_mtu(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);
extern void bta_gattc_listen(tBTA_GATTC_DATA* p_msg);
extern void bta_gattc_broadcast(tBTA_GATTC_DATA* p_msg);

@@ -408,7 +421,8 @@ extern tBTA_GATTC_SERV* bta_gattc_find_scb_by_cid(uint16_t conn_id);
extern tBTA_GATTC_CLCB* bta_gattc_find_int_conn_clcb(tBTA_GATTC_DATA* p_msg);
extern tBTA_GATTC_CLCB* bta_gattc_find_int_disconn_clcb(tBTA_GATTC_DATA* p_msg);

extern bool bta_gattc_enqueue(tBTA_GATTC_CLCB* p_clcb, tBTA_GATTC_DATA* p_data);
extern bool bta_gattc_enqueue(tBTA_GATTC_CLCB* p_clcb,
                              const tBTA_GATTC_DATA* p_data);

extern bool bta_gattc_check_notif_registry(tBTA_GATTC_RCB* p_clreg,
                                           tBTA_GATTC_SERV* p_srcb,
+4 −4
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ enum {
};
/* type for action functions */
typedef void (*tBTA_GATTC_ACTION)(tBTA_GATTC_CLCB* p_clcb,
                                  tBTA_GATTC_DATA* p_data);
                                  const tBTA_GATTC_DATA* p_data);

/* action function list */
const tBTA_GATTC_ACTION bta_gattc_action[] = {
@@ -296,7 +296,7 @@ static const char* gattc_state_code(tBTA_GATTC_STATE state_code);
 *
 ******************************************************************************/
bool bta_gattc_sm_execute(tBTA_GATTC_CLCB* p_clcb, uint16_t event,
                          tBTA_GATTC_DATA* p_data) {
                          const tBTA_GATTC_DATA* p_data) {
  tBTA_GATTC_ST_TBL state_table;
  uint8_t action;
  int i;
@@ -386,8 +386,8 @@ bool bta_gattc_hdl_event(BT_HDR_RIGID* p_msg) {
        p_clcb = bta_gattc_find_clcb_by_conn_id(p_msg->layer_specific);

      if (p_clcb != NULL) {
        rt =
            bta_gattc_sm_execute(p_clcb, p_msg->event, (tBTA_GATTC_DATA*)p_msg);
        rt = bta_gattc_sm_execute(p_clcb, p_msg->event,
                                  (const tBTA_GATTC_DATA*)p_msg);
      } else {
        VLOG(1) << "Ignore unknown conn ID: " << +p_msg->layer_specific;
      }
Loading