Loading system/bta/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -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", Loading system/bta/gatt/bta_gattc_act.cc +40 −34 Original line number Diff line number Diff line Loading @@ -244,7 +244,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); Loading Loading @@ -274,7 +274,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; Loading Loading @@ -322,7 +322,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; Loading @@ -332,7 +332,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, Loading @@ -340,7 +340,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 << ")"; Loading @@ -352,7 +352,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 */ Loading @@ -377,7 +377,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, Loading Loading @@ -410,11 +410,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; Loading @@ -435,7 +436,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) { Loading @@ -446,7 +447,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, Loading @@ -461,7 +463,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; Loading Loading @@ -521,7 +523,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) { Loading @@ -539,7 +542,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; Loading Loading @@ -590,7 +593,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); Loading Loading @@ -626,13 +630,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 = Loading Loading @@ -664,7 +668,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; Loading Loading @@ -710,8 +714,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); Loading Loading @@ -761,7 +765,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; Loading Loading @@ -793,7 +797,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; Loading @@ -817,7 +822,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; Loading Loading @@ -846,7 +851,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 = Loading @@ -861,7 +866,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, Loading @@ -878,7 +883,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; Loading @@ -899,7 +904,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; Loading @@ -913,7 +918,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); Loading @@ -928,7 +933,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; Loading @@ -952,7 +957,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; Loading Loading @@ -990,7 +995,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 */ Loading Loading @@ -1031,7 +1037,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); Loading @@ -1049,13 +1055,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; } Loading system/bta/gatt/bta_gattc_cache.cc +6 −6 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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; Loading Loading @@ -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; Loading system/bta/gatt/bta_gattc_int.h +47 −33 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading @@ -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, Loading system/bta/gatt/bta_gattc_main.cc +4 −4 Original line number Diff line number Diff line Loading @@ -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[] = { Loading Loading @@ -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; Loading Loading @@ -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 Loading
system/bta/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -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", Loading
system/bta/gatt/bta_gattc_act.cc +40 −34 Original line number Diff line number Diff line Loading @@ -244,7 +244,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); Loading Loading @@ -274,7 +274,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; Loading Loading @@ -322,7 +322,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; Loading @@ -332,7 +332,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, Loading @@ -340,7 +340,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 << ")"; Loading @@ -352,7 +352,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 */ Loading @@ -377,7 +377,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, Loading Loading @@ -410,11 +410,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; Loading @@ -435,7 +436,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) { Loading @@ -446,7 +447,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, Loading @@ -461,7 +463,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; Loading Loading @@ -521,7 +523,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) { Loading @@ -539,7 +542,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; Loading Loading @@ -590,7 +593,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); Loading Loading @@ -626,13 +630,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 = Loading Loading @@ -664,7 +668,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; Loading Loading @@ -710,8 +714,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); Loading Loading @@ -761,7 +765,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; Loading Loading @@ -793,7 +797,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; Loading @@ -817,7 +822,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; Loading Loading @@ -846,7 +851,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 = Loading @@ -861,7 +866,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, Loading @@ -878,7 +883,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; Loading @@ -899,7 +904,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; Loading @@ -913,7 +918,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); Loading @@ -928,7 +933,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; Loading @@ -952,7 +957,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; Loading Loading @@ -990,7 +995,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 */ Loading Loading @@ -1031,7 +1037,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); Loading @@ -1049,13 +1055,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; } Loading
system/bta/gatt/bta_gattc_cache.cc +6 −6 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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; Loading Loading @@ -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; Loading
system/bta/gatt/bta_gattc_int.h +47 −33 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading @@ -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, Loading
system/bta/gatt/bta_gattc_main.cc +4 −4 Original line number Diff line number Diff line Loading @@ -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[] = { Loading Loading @@ -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; Loading Loading @@ -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