Home | History | Annotate | Download | only in gatt

Lines Matching full:p_attr

43 static BOOLEAN deallocate_attr_in_db(tGATT_SVC_DB *p_db, void *p_attr);
118 static tGATT_STATUS gatts_check_attr_readability(tGATT_ATTR16 *p_attr,
125 tGATT_PERM perm = p_attr->permission;
168 switch (p_attr->uuid)
195 ** Parameter p_attr: pointer to the attribute to read.
207 static tGATT_STATUS read_attr_value (void *p_attr,
219 tGATT_ATTR16 *p_attr16 = (tGATT_ATTR16 *)p_attr;
228 status = gatts_check_attr_readability((tGATT_ATTR16 *)p_attr, offset, read_long, sec_flag, key_size);
335 tGATT_ATTR16 *p_attr;
345 p_attr = (tGATT_ATTR16 *)p_db->p_attr_list;
347 while (p_attr && p_attr->handle <= e_handle)
349 if (p_attr->uuid_type == GATT_ATTR_UUID_TYPE_16)
352 attr_uuid.uu.uuid16 = p_attr->uuid;
354 else if (p_attr->uuid_type == GATT_ATTR_UUID_TYPE_32)
357 attr_uuid.uu.uuid32 = ((tGATT_ATTR32 *)p_attr)->uuid;
362 memcpy(attr_uuid.uu.uuid128, ((tGATT_ATTR128 *)p_attr)->uuid, LEN_UUID_128);
365 if (p_attr->handle >= s_handle && gatt_uuid_compare(type, attr_uuid))
373 UINT16_TO_STREAM (p, p_attr->handle);
375 status = read_attr_value ((void *)p_attr, 0, &p, FALSE, (UINT16)(*p_len -2), &len, sec_flag, key_size);
379 status = gatts_send_app_read_request(p_tcb, op_code, p_attr->handle, 0, trans_id);
403 *p_cur_handle = p_attr->handle;
407 p_attr = (tGATT_ATTR16 *)p_attr->p_next;
449 tGATT_ATTR16 *p_attr;
461 if ((p_attr = (tGATT_ATTR16 *) allocate_attr_in_db(p_db, &uuid, GATT_PERM_READ)) != NULL)
463 if (copy_extra_byte_in_db(p_db, (void **)&p_attr->p_value, sizeof(tGATT_INCL_SRVC)))
465 p_attr->p_value->incl_handle.s_handle = s_handle;
466 p_attr->p_value->incl_handle.e_handle = e_handle;
467 memcpy(&p_attr->p_value->incl_handle.service_type, &service, sizeof(tBT_UUID));
469 return p_attr->handle;
473 deallocate_attr_in_db(p_db, p_attr);
644 tGATT_ATTR16 *p_attr;
649 p_attr = (tGATT_ATTR16 *)p_db->p_attr_list;
651 while (p_attr && handle >= p_attr->handle)
653 if (p_attr->handle == handle)
655 status = read_attr_value (p_attr, offset, &pp,
661 status = gatts_send_app_read_request(p_tcb, op_code, p_attr->handle, offset, trans_id);
665 p_attr = (tGATT_ATTR16 *)p_attr->p_next;
698 tGATT_ATTR16 *p_attr;
702 p_attr = (tGATT_ATTR16 *)p_db->p_attr_list;
704 while (p_attr && handle >= p_attr->handle)
706 if (p_attr->handle == handle)
708 status = gatts_check_attr_readability (p_attr, 0,
713 p_attr = (tGATT_ATTR16 *) p_attr->p_next;
742 tGATT_ATTR16 *p_attr;
752 p_attr = (tGATT_ATTR16 *) p_db->p_attr_list;
754 while (p_attr != NULL)
756 if (p_attr->handle == handle)
758 perm = p_attr->permission;
764 GATT_TRACE_DEBUG( "gatts_write_attr_perm_check p_attr->permission =0x%04x min_key_size==0x%04x",
765 p_attr->permission,
833 if(p_attr->uuid_type == GATT_ATTR_UUID_TYPE_16)
835 switch (p_attr->uuid)
856 else if (p_attr->uuid_type == GATT_ATTR_UUID_TYPE_128 ||
857 p_attr
872 else if ( (p_attr->uuid_type == GATT_ATTR_UUID_TYPE_16) &&
873 (p_attr->uuid == GATT_UUID_CHAR_CLIENT_CONFIG ||
874 p_attr->uuid == GATT_UUID_CHAR_SRVR_CONFIG) )
896 p_attr = (tGATT_ATTR16 *)p_attr->p_next;
1020 ** p_attr: pointer to the attribute record to be freed.
1025 static BOOLEAN deallocate_attr_in_db(tGATT_SVC_DB *p_db, void *p_attr)
1039 if (p_next == p_attr)
1045 if (p_cur == p_attr && p_cur == p_db->p_attr_list)
1184 tGATT_ATTR16 *p_attr;
1196 if ((p_attr = (tGATT_ATTR16 *)(allocate_attr_in_db(p_db, &uuid, GATT_PERM_READ))) != NULL)
1198 if (copy_extra_byte_in_db (p_db, (void **)&p_attr->p_value, sizeof(tBT_UUID)))
1202 p_attr->p_value->uuid.len = LEN_UUID_16;
1203 p_attr->p_value->uuid.uu.uuid16 = p_service->uu.uuid16;
1207 p_attr->p_value->uuid.len = LEN_UUID_128;
1208 gatt_convert_uuid32_to_uuid128(p_attr->p_value->uuid.uu.uuid128, p_service->uu.uuid32);
1212 p_attr->p_value->uuid.len = LEN_UUID_128;
1213 memcpy(p_attr->p_value->uuid.uu.uuid128, p_service->uu.uuid128, LEN_UUID_128);