Lines Matching refs:client

112 		struct bt_csip_set_coordinator_inst *client =  in active_members_reset()  local
115 atomic_clear_bit(client->flags, SET_COORDINATOR_FLAG_BUSY); in active_members_reset()
125 struct bt_csip_set_coordinator_inst *client; in lookup_instance_by_handle() local
131 client = &client_insts[conn_index]; in lookup_instance_by_handle()
133 for (int i = 0; i < ARRAY_SIZE(client->svc_insts); i++) { in lookup_instance_by_handle()
134 if (client->svc_insts[i].start_handle <= handle && in lookup_instance_by_handle()
135 client->svc_insts[i].end_handle >= handle) { in lookup_instance_by_handle()
136 return &client->svc_insts[i]; in lookup_instance_by_handle()
147 struct bt_csip_set_coordinator_inst *client; in bt_csip_set_coordinator_lookup_instance_by_index() local
155 client = &client_insts[conn_index]; in bt_csip_set_coordinator_lookup_instance_by_index()
156 return &client->svc_insts[idx]; in bt_csip_set_coordinator_lookup_instance_by_index()
368 static void discover_complete(struct bt_csip_set_coordinator_inst *client, in discover_complete() argument
373 client->cur_inst = NULL; in discover_complete()
374 atomic_clear_bit(client->flags, SET_COORDINATOR_FLAG_BUSY); in discover_complete()
379 listener->discover(client->conn, in discover_complete()
380 &client->set_member, in discover_complete()
381 err, client->inst_count); in discover_complete()
383 listener->discover(client->conn, NULL, err, 0U); in discover_complete()
413 struct bt_csip_set_coordinator_inst *client; in sirk_notify_func() local
417 client = &client_insts[bt_conn_index(conn)]; in sirk_notify_func()
418 inst = &client->set_member.insts[svc_inst->idx]; in sirk_notify_func()
484 struct bt_csip_set_coordinator_inst *client; in size_notify_func() local
486 client = &client_insts[bt_conn_index(conn)]; in size_notify_func()
487 inst = &client->set_member.insts[svc_inst->idx]; in size_notify_func()
530 struct bt_csip_set_coordinator_inst *client; in lock_notify_func() local
547 client = &client_insts[bt_conn_index(conn)]; in lock_notify_func()
548 inst = &client->set_member.insts[svc_inst->idx]; in lock_notify_func()
566 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(inst->conn)]; in csip_set_coordinator_write_set_lock() local
570 client->cur_inst = NULL; in csip_set_coordinator_write_set_lock()
575 client->gatt_write_buf[0] = lock ? BT_CSIP_LOCK_VALUE : BT_CSIP_RELEASE_VALUE; in csip_set_coordinator_write_set_lock()
576 client->write_params.data = client->gatt_write_buf; in csip_set_coordinator_write_set_lock()
577 client->write_params.length = sizeof(lock); in csip_set_coordinator_write_set_lock()
578 client->write_params.func = cb; in csip_set_coordinator_write_set_lock()
579 client->write_params.handle = inst->set_lock_handle; in csip_set_coordinator_write_set_lock()
581 return bt_gatt_write(inst->conn, &client->write_params); in csip_set_coordinator_write_set_lock()
586 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(svc_inst->conn)]; in read_sirk() local
588 if (client->cur_inst != NULL) { in read_sirk()
589 if (client->cur_inst != svc_inst) { in read_sirk()
593 client->cur_inst = svc_inst; in read_sirk()
601 client->read_params.func = csip_set_coordinator_discover_insts_read_sirk_cb; in read_sirk()
602 client->read_params.handle_count = 1; in read_sirk()
603 client->read_params.single.handle = svc_inst->sirk_handle; in read_sirk()
604 client->read_params.single.offset = 0U; in read_sirk()
606 return bt_gatt_read(svc_inst->conn, &client->read_params); in read_sirk()
613 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_read_set_size() local
617 } else if (client->cur_inst != NULL) { in csip_set_coordinator_read_set_size()
618 if (client->cur_inst != in csip_set_coordinator_read_set_size()
623 client->cur_inst = bt_csip_set_coordinator_lookup_instance_by_index(conn, inst_idx); in csip_set_coordinator_read_set_size()
624 if (client->cur_inst == NULL) { in csip_set_coordinator_read_set_size()
630 if (client->cur_inst->set_size_handle == 0) { in csip_set_coordinator_read_set_size()
632 client->cur_inst = NULL; in csip_set_coordinator_read_set_size()
636 client->read_params.func = cb; in csip_set_coordinator_read_set_size()
637 client->read_params.handle_count = 1; in csip_set_coordinator_read_set_size()
638 client->read_params.single.handle = client->cur_inst->set_size_handle; in csip_set_coordinator_read_set_size()
639 client->read_params.single.offset = 0U; in csip_set_coordinator_read_set_size()
641 return bt_gatt_read(conn, &client->read_params); in csip_set_coordinator_read_set_size()
648 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_read_rank() local
652 } else if (client->cur_inst != NULL) { in csip_set_coordinator_read_rank()
653 if (client->cur_inst != in csip_set_coordinator_read_rank()
658 client->cur_inst = bt_csip_set_coordinator_lookup_instance_by_index(conn, inst_idx); in csip_set_coordinator_read_rank()
659 if (client->cur_inst == NULL) { in csip_set_coordinator_read_rank()
665 if (client->cur_inst->rank_handle == 0) { in csip_set_coordinator_read_rank()
667 client->cur_inst = NULL; in csip_set_coordinator_read_rank()
671 client->read_params.func = cb; in csip_set_coordinator_read_rank()
672 client->read_params.handle_count = 1; in csip_set_coordinator_read_rank()
673 client->read_params.single.handle = client->cur_inst->rank_handle; in csip_set_coordinator_read_rank()
674 client->read_params.single.offset = 0U; in csip_set_coordinator_read_rank()
676 return bt_gatt_read(conn, &client->read_params); in csip_set_coordinator_read_rank()
679 static int csip_set_coordinator_discover_sets(struct bt_csip_set_coordinator_inst *client) in csip_set_coordinator_discover_sets() argument
681 struct bt_csip_set_coordinator_set_member *member = &client->set_member; in csip_set_coordinator_discover_sets()
692 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in discover_func() local
697 LOG_DBG("Setup complete for %u / %u", client->cur_inst->idx + 1, in discover_func()
698 client->inst_count); in discover_func()
702 (client->cur_inst->idx + 1) < client->inst_count) { in discover_func()
705 client->cur_inst = &client->svc_insts[client->cur_inst->idx + 1]; in discover_func()
706 client->discover_params.uuid = NULL; in discover_func()
707 client->discover_params.start_handle = client->cur_inst->start_handle; in discover_func()
708 client->discover_params.end_handle = client->cur_inst->end_handle; in discover_func()
709 client->discover_params.type = BT_GATT_DISCOVER_CHARACTERISTIC; in discover_func()
710 client->discover_params.func = discover_func; in discover_func()
712 err = bt_gatt_discover(conn, &client->discover_params); in discover_func()
715 discover_complete(client, err); in discover_func()
721 client->cur_inst = NULL; in discover_func()
722 err = csip_set_coordinator_discover_sets(client); in discover_func()
725 discover_complete(client, err); in discover_func()
734 client->inst_count != 0) { in discover_func()
738 client->cur_inst->sirk_handle = chrc->value_handle; in discover_func()
739 sub_params = &client->cur_inst->sirk_sub_params; in discover_func()
740 sub_params->disc_params = &client->cur_inst->sirk_sub_disc_params; in discover_func()
744 client->cur_inst->set_size_handle = chrc->value_handle; in discover_func()
745 sub_params = &client->cur_inst->size_sub_params; in discover_func()
746 sub_params->disc_params = &client->cur_inst->size_sub_disc_params; in discover_func()
752 client->cur_inst->set_lock_handle = chrc->value_handle; in discover_func()
753 sub_params = &client->cur_inst->lock_sub_params; in discover_func()
754 sub_params->disc_params = &client->cur_inst->lock_sub_disc_params; in discover_func()
757 set_info = &client->set_member.insts[client->cur_inst->idx].info; in discover_func()
761 client->cur_inst->rank_handle = chrc->value_handle; in discover_func()
776 sub_params->end_handle = client->cur_inst->end_handle; in discover_func()
784 discover_complete(client, err); in discover_func()
800 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in primary_discover_func() local
803 client->inst_count == CONFIG_BT_CSIP_SET_COORDINATOR_MAX_CSIS_INSTANCES) { in primary_discover_func()
804 LOG_DBG("Discover complete, found %u instances", client->inst_count); in primary_discover_func()
807 if (client->inst_count != 0) { in primary_discover_func()
810 client->cur_inst = &client->svc_insts[0]; in primary_discover_func()
811 client->discover_params.uuid = NULL; in primary_discover_func()
812 client->discover_params.start_handle = client->cur_inst->start_handle; in primary_discover_func()
813 client->discover_params.end_handle = client->cur_inst->end_handle; in primary_discover_func()
814 client->discover_params.type = BT_GATT_DISCOVER_CHARACTERISTIC; in primary_discover_func()
815 client->discover_params.func = discover_func; in primary_discover_func()
817 err = bt_gatt_discover(conn, &client->discover_params); in primary_discover_func()
820 discover_complete(client, err); in primary_discover_func()
823 discover_complete(client, 0); in primary_discover_func()
833 client->discover_params.start_handle = attr->handle + 1; in primary_discover_func()
835 client->cur_inst = &client->svc_insts[client->inst_count]; in primary_discover_func()
836 client->cur_inst->idx = client->inst_count; in primary_discover_func()
837 client->cur_inst->start_handle = attr->handle; in primary_discover_func()
838 client->cur_inst->end_handle = prim_service->end_handle; in primary_discover_func()
839 client->cur_inst->conn = bt_conn_ref(conn); in primary_discover_func()
840 client->cur_inst->set_info = &client->set_member.insts[client->cur_inst->idx].info; in primary_discover_func()
841 client->inst_count++; in primary_discover_func()
882 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_discover_insts_read_rank_cb() local
884 __ASSERT(client->cur_inst != NULL, "client->cur_inst must not be NULL"); in csip_set_coordinator_discover_insts_read_rank_cb()
889 discover_complete(client, err); in csip_set_coordinator_discover_insts_read_rank_cb()
895 set_info = &client->set_member.insts[client->cur_inst->idx].info; in csip_set_coordinator_discover_insts_read_rank_cb()
914 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_discover_insts_read_set_size_cb() local
916 __ASSERT(client->cur_inst != NULL, "client->cur_inst must not be NULL"); in csip_set_coordinator_discover_insts_read_set_size_cb()
921 discover_complete(client, err); in csip_set_coordinator_discover_insts_read_set_size_cb()
927 set_info = &client->set_member.insts[client->cur_inst->idx].info; in csip_set_coordinator_discover_insts_read_set_size_cb()
936 discover_insts_resume(conn, 0, 0, client->cur_inst->rank_handle); in csip_set_coordinator_discover_insts_read_set_size_cb()
942 static int parse_sirk(struct bt_csip_set_coordinator_inst *client, in parse_sirk() argument
947 sirk = client->set_member.insts[client->cur_inst->idx].info.sirk; in parse_sirk()
961 err = sirk_decrypt(client->conn, recvd_sirk->value, sirk); in parse_sirk()
992 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_discover_insts_read_sirk_cb() local
994 __ASSERT(client->cur_inst != NULL, "client->cur_inst must not be NULL"); in csip_set_coordinator_discover_insts_read_sirk_cb()
999 discover_complete(client, err); in csip_set_coordinator_discover_insts_read_sirk_cb()
1003 cb_err = parse_sirk(client, data, length); in csip_set_coordinator_discover_insts_read_sirk_cb()
1008 discover_insts_resume(conn, 0, client->cur_inst->set_size_handle, in csip_set_coordinator_discover_insts_read_sirk_cb()
1009 client->cur_inst->rank_handle); in csip_set_coordinator_discover_insts_read_sirk_cb()
1030 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in discover_insts_resume() local
1034 conn, client->cur_inst->idx, in discover_insts_resume()
1041 conn, client->cur_inst->idx, in discover_insts_resume()
1047 uint8_t next_idx = client->cur_inst->idx + 1; in discover_insts_resume()
1049 client->cur_inst = NULL; in discover_insts_resume()
1050 if (next_idx < client->inst_count) { in discover_insts_resume()
1051 client->cur_inst = in discover_insts_resume()
1055 cb_err = read_sirk(client->cur_inst); in discover_insts_resume()
1057 discover_complete(client, 0); in discover_insts_resume()
1064 discover_complete(client, cb_err); in discover_insts_resume()
1072 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_write_restore_cb() local
1090 client->cur_inst = lookup_instance_by_set_info(member, &active.info); in csip_set_coordinator_write_restore_cb()
1091 if (client->cur_inst == NULL) { in csip_set_coordinator_write_restore_cb()
1098 client->cur_inst, false, csip_set_coordinator_write_restore_cb); in csip_set_coordinator_write_restore_cb()
1114 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_write_lock_cb() local
1125 client->cur_inst = lookup_instance_by_set_info(member, &active.info); in csip_set_coordinator_write_lock_cb()
1126 if (client->cur_inst == NULL) { in csip_set_coordinator_write_lock_cb()
1134 client->cur_inst, false, csip_set_coordinator_write_restore_cb); in csip_set_coordinator_write_lock_cb()
1152 struct bt_csip_set_coordinator_svc_inst *prev_inst = client->cur_inst; in csip_set_coordinator_write_lock_cb()
1155 client->cur_inst = get_next_active_instance(); in csip_set_coordinator_write_lock_cb()
1156 if (client->cur_inst == NULL) { in csip_set_coordinator_write_lock_cb()
1162 csip_err = csip_set_coordinator_write_set_lock(client->cur_inst, true, in csip_set_coordinator_write_lock_cb()
1188 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_write_release_cb() local
1203 client->cur_inst = get_next_active_instance(); in csip_set_coordinator_write_release_cb()
1204 if (client->cur_inst == NULL) { in csip_set_coordinator_write_release_cb()
1211 client->cur_inst, false, csip_set_coordinator_write_release_cb); in csip_set_coordinator_write_release_cb()
1244 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(conn)]; in csip_set_coordinator_read_lock_cb() local
1258 if (data == NULL || length != sizeof(client->cur_inst->set_lock)) { in csip_set_coordinator_read_lock_cb()
1276 client->cur_inst->set_lock = value; in csip_set_coordinator_read_lock_cb()
1289 client->cur_inst = get_next_active_instance(); in csip_set_coordinator_read_lock_cb()
1290 if (client->cur_inst == NULL) { in csip_set_coordinator_read_lock_cb()
1296 csip_err = csip_set_coordinator_read_set_lock(client->cur_inst); in csip_set_coordinator_read_lock_cb()
1312 struct bt_csip_set_coordinator_inst *client = &client_insts[bt_conn_index(inst->conn)]; in csip_set_coordinator_read_set_lock() local
1317 client->cur_inst = NULL; in csip_set_coordinator_read_set_lock()
1321 client->read_params.func = csip_set_coordinator_read_lock_cb; in csip_set_coordinator_read_set_lock()
1322 client->read_params.handle_count = 1; in csip_set_coordinator_read_set_lock()
1323 client->read_params.single.handle = inst->set_lock_handle; in csip_set_coordinator_read_set_lock()
1324 client->read_params.single.offset = 0; in csip_set_coordinator_read_set_lock()
1326 client->cur_inst = inst; in csip_set_coordinator_read_set_lock()
1328 err = bt_gatt_read(inst->conn, &client->read_params); in csip_set_coordinator_read_set_lock()
1330 client->cur_inst = NULL; in csip_set_coordinator_read_set_lock()
1405 struct bt_csip_set_coordinator_inst *client; in bt_csip_set_coordinator_csis_inst_by_handle() local
1407 client = &client_insts[bt_conn_index(conn)]; in bt_csip_set_coordinator_csis_inst_by_handle()
1409 return &client->set_member.insts[svc_inst->idx]; in bt_csip_set_coordinator_csis_inst_by_handle()
1418 struct bt_csip_set_coordinator_inst *client; in bt_csip_set_coordinator_set_member_by_conn() local
1426 client = &client_insts[bt_conn_index(conn)]; in bt_csip_set_coordinator_set_member_by_conn()
1427 if (client->conn == conn) { in bt_csip_set_coordinator_set_member_by_conn()
1428 return &client->set_member; in bt_csip_set_coordinator_set_member_by_conn()
1451 struct bt_csip_set_coordinator_inst *client; in bt_csip_set_coordinator_discover() local
1458 client = &client_insts[bt_conn_index(conn)]; in bt_csip_set_coordinator_discover()
1459 if (atomic_test_and_set_bit(client->flags, SET_COORDINATOR_FLAG_BUSY)) { in bt_csip_set_coordinator_discover()
1463 csip_set_coordinator_reset(client); in bt_csip_set_coordinator_discover()
1466 (void)memset(&client->discover_params, 0, sizeof(client->discover_params)); in bt_csip_set_coordinator_discover()
1468 client->discover_params.func = primary_discover_func; in bt_csip_set_coordinator_discover()
1469 client->discover_params.uuid = &uuid.uuid; in bt_csip_set_coordinator_discover()
1470 client->discover_params.type = BT_GATT_DISCOVER_PRIMARY; in bt_csip_set_coordinator_discover()
1471 client->discover_params.start_handle = BT_ATT_FIRST_ATTRIBUTE_HANDLE; in bt_csip_set_coordinator_discover()
1472 client->discover_params.end_handle = BT_ATT_LAST_ATTRIBUTE_HANDLE; in bt_csip_set_coordinator_discover()
1474 err = bt_gatt_discover(conn, &client->discover_params); in bt_csip_set_coordinator_discover()
1476 for (size_t i = 0; i < ARRAY_SIZE(client->set_member.insts); i++) { in bt_csip_set_coordinator_discover()
1477 client->set_member.insts[i].svc_inst = (void *)&client->svc_insts[i]; in bt_csip_set_coordinator_discover()
1479 client->conn = bt_conn_ref(conn); in bt_csip_set_coordinator_discover()
1481 atomic_clear_bit(client->flags, SET_COORDINATOR_FLAG_BUSY); in bt_csip_set_coordinator_discover()
1566 struct bt_csip_set_coordinator_inst *client = in check_and_set_members_busy() local
1569 if (atomic_test_and_set_bit(client->flags, SET_COORDINATOR_FLAG_BUSY)) { in check_and_set_members_busy()
1579 struct bt_csip_set_coordinator_inst *client = CONTAINER_OF( in check_and_set_members_busy() local
1582 atomic_clear_bit(client->flags, SET_COORDINATOR_FLAG_BUSY); in check_and_set_members_busy()
1683 const struct bt_csip_set_coordinator_inst *client = in all_members_bonded() local
1688 err = bt_conn_get_info(client->conn, &info); in all_members_bonded()