Lines Matching defs:p_srvc_cb

40 static void bta_gattc_char_dscpt_disc_cmpl(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb);
137 BT_HDR *bta_gattc_alloc_cache_buf(tBTA_GATTC_SERV *p_srvc_cb)
144 utl_freebuf((void **)&p_srvc_cb->p_srvc_list);
145 p_srvc_cb->free_byte = 0;
150 p_srvc_cb->p_free = (UINT8 *) p_buf;
151 p_srvc_cb->free_byte = GKI_get_buf_size(p_buf);
154 GKI_enqueue(&p_srvc_cb->cache_buffer, p_buf);
157 APPL_TRACE_DEBUG("allocating new buffer: free byte = %d", p_srvc_cb->free_byte);
170 tBTA_GATT_STATUS bta_gattc_init_cache(tBTA_GATTC_SERV *p_srvc_cb)
174 while (p_srvc_cb->cache_buffer.p_first)
175 GKI_freebuf (GKI_dequeue (&p_srvc_cb->cache_buffer));
177 utl_freebuf((void **)&p_srvc_cb->p_srvc_list);
179 if ((p_srvc_cb->p_srvc_list = (tBTA_GATTC_ATTR_REC*)GKI_getbuf(BTA_GATTC_ATTR_LIST_SIZE)) == NULL)
186 p_srvc_cb->total_srvc = 0;
187 p_srvc_cb->cur_srvc_idx =
188 p_srvc_cb->cur_char_idx =
189 p_srvc_cb->next_avail_idx = 0;
191 if (bta_gattc_alloc_cache_buf(p_srvc_cb) == NULL)
197 p_srvc_cb->p_cur_srvc = p_srvc_cb->p_srvc_cache = NULL;
212 static UINT8 bta_gattc_get_srvc_inst_id(tBTA_GATTC_SERV *p_srvc_cb, tBT_UUID uuid)
217 for (i = 0; i < p_srvc_cb->total_srvc; i ++)
219 for (; i < p_srvc_cb->cur_srvc_idx; i ++)*/
221 p_srvc_rec = p_srvc_cb->p_srvc_list + i;
295 static tBTA_GATT_STATUS bta_gattc_add_srvc_to_cache(tBTA_GATTC_SERV *p_srvc_cb,
305 APPL_TRACE_DEBUG("free byte = %d, req %d bytes.", p_srvc_cb->free_byte, sizeof(tBTA_GATTC_CACHE))
308 if (p_srvc_cb->free_byte < sizeof(tBTA_GATTC_CACHE))
310 if (bta_gattc_alloc_cache_buf(p_srvc_cb) == NULL)
314 p_new_srvc = (tBTA_GATTC_CACHE *)p_srvc_cb->p_free;
323 if (p_srvc_cb->p_cur_srvc != NULL)
324 p_srvc_cb->p_cur_srvc->p_next = p_new_srvc;
325 p_srvc_cb->p_cur_srvc = p_new_srvc;
326 p_srvc_cb->p_cur_srvc->p_cur_char = NULL;
329 if (p_srvc_cb->p_srvc_cache == NULL)
330 p_srvc_cb->p_srvc_cache = p_new_srvc;
333 p_srvc_cb->p_free += sizeof(tBTA_GATTC_CACHE);
334 p_srvc_cb->free_byte -= sizeof(tBTA_GATTC_CACHE);
348 static tBTA_GATT_STATUS bta_gattc_add_attr_to_cache(tBTA_GATTC_SERV *p_srvc_cb,
362 APPL_TRACE_DEBUG("free byte = %d, req %d bytes.", p_srvc_cb->free_byte, len);
365 if (p_srvc_cb->p_cur_srvc == NULL)
371 if (p_srvc_cb->free_byte < len)
373 if (bta_gattc_alloc_cache_buf(p_srvc_cb) == NULL)
377 p_attr = (tBTA_GATTC_CACHE_ATTR *)p_srvc_cb->p_free;
399 p_attr->inst_id = bta_gattc_get_char_inst_id(p_srvc_cb->p_cur_srvc, p_uuid);
400 p_srvc_cb->p_cur_srvc->p_cur_char = p_attr;
403 p_attr->inst_id = bta_gattc_get_char_descr_inst_id(p_srvc_cb->p_cur_srvc->p_cur_char, p_uuid);
408 p_srvc_cb->p_free += len;
409 p_srvc_cb->free_byte -= len;
412 if (p_srvc_cb->p_cur_srvc->p_attr == NULL)
414 p_srvc_cb->p_cur_srvc->p_attr = p_attr;
416 if (p_srvc_cb->p_cur_srvc->p_last_attr != NULL)
417 p_srvc_cb->p_cur_srvc->p_last_attr->p_next = p_attr;
419 p_srvc_cb->p_cur_srvc->p_last_attr = p_attr;
433 void bta_gattc_get_disc_range(tBTA_GATTC_SERV *p_srvc_cb, UINT16 *p_s_hdl, UINT16 *p_e_hdl, BOOLEAN is_srvc)
439 p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->cur_srvc_idx;
444 p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->cur_char_idx;
525 tBTA_GATT_STATUS bta_gattc_start_disc_include_srvc(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
527 return bta_gattc_discover_procedure(conn_id, p_srvc_cb, GATT_DISC_INC_SRVC);
538 tBTA_GATT_STATUS bta_gattc_start_disc_char(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
540 p_srvc_cb->total_char = 0;
542 return bta_gattc_discover_procedure(conn_id, p_srvc_cb, GATT_DISC_CHAR);
553 void bta_gattc_start_disc_char_dscp(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
557 if (bta_gattc_discover_procedure(conn_id, p_srvc_cb, GATT_DISC_CHAR_DSCPT) != 0)
558 bta_gattc_char_dscpt_disc_cmpl(conn_id, p_srvc_cb);
570 static void bta_gattc_explore_srvc(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
572 tBTA_GATTC_ATTR_REC *p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->cur_srvc_idx;
575 APPL_TRACE_DEBUG("Start service discovery: srvc_idx = %d", p_srvc_cb->cur_srvc_idx);
577 p_srvc_cb->cur_char_idx = p_srvc_cb->next_avail_idx = p_srvc_cb->total_srvc;
585 if (p_srvc_cb->cur_srvc_idx < p_srvc_cb->total_srvc)
588 if (bta_gattc_add_srvc_to_cache (p_srvc_cb,
596 bta_gattc_start_disc_include_srvc(conn_id, p_srvc_cb);
604 bta_gattc_display_cache_server(p_srvc_cb->p_srvc_cache);
608 bta_gattc_co_cache_open(p_srvc_cb->server_bda, BTA_GATTC_CI_CACHE_OPEN_EVT,
620 static void bta_gattc_incl_srvc_disc_cmpl(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
622 p_srvc_cb->cur_char_idx = p_srvc_cb->total_srvc;
625 bta_gattc_start_disc_char(conn_id, p_srvc_cb);
636 static void bta_gattc_char_disc_cmpl(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
638 tBTA_GATTC_ATTR_REC *p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->cur_char_idx;
641 if (p_srvc_cb->total_char > 0)
644 bta_gattc_add_attr_to_cache (p_srvc_cb,
651 bta_gattc_start_disc_char_dscp(conn_id, p_srvc_cb);
655 p_srvc_cb->cur_srvc_idx ++;
657 bta_gattc_explore_srvc (conn_id, p_srvc_cb);
669 static void bta_gattc_char_dscpt_disc_cmpl(UINT16 conn_id, tBTA_GATTC_SERV *p_srvc_cb)
673 if (-- p_srvc_cb->total_char > 0)
675 p_rec = p_srvc_cb->p_srvc_list + (++ p_srvc_cb->cur_char_idx);
677 bta_gattc_add_attr_to_cache (p_srvc_cb,
684 bta_gattc_start_disc_char_dscp(conn_id, p_srvc_cb);
692 p_srvc_cb->cur_srvc_idx ++;
693 bta_gattc_explore_srvc (conn_id, p_srvc_cb);
697 static BOOLEAN bta_gattc_srvc_in_list(tBTA_GATTC_SERV *p_srvc_cb, UINT16 s_handle,
712 for (i = 0; i < p_srvc_cb->next_avail_idx; i ++)
714 p_rec = p_srvc_cb->p_srvc_list + i;
735 static tBTA_GATT_STATUS bta_gattc_add_srvc_to_list(tBTA_GATTC_SERV *p_srvc_cb,
742 if (p_srvc_cb->p_srvc_list && p_srvc_cb->next_avail_idx < BTA_GATTC_MAX_CACHE_CHAR)
744 p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->next_avail_idx;
746 p_srvc_cb->total_srvc ++;
754 p_rec->srvc_inst_id = bta_gattc_get_srvc_inst_id(p_srvc_cb, uuid);
757 p_srvc_cb->next_avail_idx ++;
777 static tBTA_GATT_STATUS bta_gattc_add_char_to_list(tBTA_GATTC_SERV *p_srvc_cb,
784 if (p_srvc_cb->p_srvc_list == NULL)
789 else if (p_srvc_cb->next_avail_idx < BTA_GATTC_MAX_CACHE_CHAR)
792 p_rec = p_srvc_cb->p_srvc_list + p_srvc_cb->next_avail_idx;
794 p_srvc_cb->total_char ++;
798 p_rec->e_handle = (p_srvc_cb->p_srvc_list + p_srvc_cb->cur_srvc_idx)->e_handle;
802 if (p_srvc_cb->total_char > 1)
807 p_srvc_cb->next_avail_idx ++;
833 tBTA_GATTC_SERV *p_srvc_cb = bta_gattc_find_scb_by_cid(bta_gattc_cb.sdp_conn_id);
835 if(((sdp_status == SDP_SUCCESS) || (sdp_status == SDP_DB_FULL)) && p_srvc_cb != NULL)
858 p_srvc_cb != NULL)
861 bta_gattc_add_srvc_to_list(p_srvc_cb,
880 if ( p_srvc_cb != NULL)
882 bta_gattc_explore_srvc(bta_gattc_cb.sdp_conn_id, p_srvc_cb);
947 tBTA_GATTC_SERV * p_srvc_cb = NULL;
951 p_srvc_cb = bta_gattc_find_scb_by_cid(conn_id);
953 if (p_srvc_cb != NULL && p_clcb != NULL && p_clcb->state == BTA_GATTC_DISCOVER_ST)
959 bta_gattc_add_srvc_to_list(p_srvc_cb,
967 bta_gattc_add_srvc_to_list(p_srvc_cb,
977 pri_srvc = bta_gattc_srvc_in_list(p_srvc_cb,
983 bta_gattc_add_srvc_to_list(p_srvc_cb,
989 bta_gattc_add_attr_to_cache(p_srvc_cb,
998 bta_gattc_add_char_to_list(p_srvc_cb,
1006 bta_gattc_add_attr_to_cache(p_srvc_cb, p_data->handle, &p_data->type, 0,
1014 tBTA_GATTC_SERV * p_srvc_cb;
1024 p_srvc_cb = bta_gattc_find_scb_by_cid(conn_id);
1026 if (p_srvc_cb != NULL)
1033 bta_gattc_display_explore_record(p_srvc_cb->p_srvc_list, p_srvc_cb->next_avail_idx);
1035 bta_gattc_explore_srvc(conn_id, p_srvc_cb);
1039 bta_gattc_incl_srvc_disc_cmpl(conn_id, p_srvc_cb);
1045 bta_gattc_display_explore_record(p_srvc_cb->p_srvc_list, p_srvc_cb->next_avail_idx);
1047 bta_gattc_char_disc_cmpl(conn_id, p_srvc_cb);
1051 bta_gattc_char_dscpt_disc_cmpl(conn_id, p_srvc_cb);
1491 void bta_gattc_rebuild_cache(tBTA_GATTC_SERV *p_srvc_cb, UINT16 num_attr,
1498 while (p_srvc_cb->cache_buffer.p_first)
1499 GKI_freebuf (GKI_dequeue (&p_srvc_cb->cache_buffer));
1501 if (bta_gattc_alloc_cache_buf(p_srvc_cb) == NULL)
1507 p_srvc_cb->p_cur_srvc = p_srvc_cb->p_srvc_cache = NULL;
1516 bta_gattc_add_srvc_to_cache(p_srvc_cb,
1527 bta_gattc_add_attr_to_cache(p_srvc_cb,
1570 BOOLEAN bta_gattc_cache_save(tBTA_GATTC_SERV *p_srvc_cb, UINT16 conn_id)
1572 tBTA_GATTC_CACHE *p_cur_srvc = p_srvc_cb->p_srvc_cache;
1581 if (offset ++ >= p_srvc_cb->attr_index)
1597 if (offset >= p_srvc_cb->attr_index)
1623 bta_gattc_co_cache_save(p_srvc_cb->server_bda, BTA_GATTC_CI_CACHE_SAVE_EVT, i,
1624 nv_attr, p_srvc_cb->attr_index, conn_id);
1626 p_srvc_cb->attr_index += i;