Home | History | Annotate | Download | only in hw

Lines Matching refs:sdp

112 static int sdp_svc_match(struct bt_l2cap_sdp_state_s *sdp,
125 for (i = 0; i < sdp->services; i ++)
126 if (sdp_uuid_match(&sdp->service_list[i], *req, datalen))
127 sdp->service_list[i].match = 1;
135 static ssize_t sdp_svc_search(struct bt_l2cap_sdp_state_s *sdp,
143 for (i = 0; i < sdp->services; i ++)
144 sdp->service_list[i].match = 0;
155 if (sdp_svc_match(sdp, &req, &seqlen))
157 } else if (sdp_svc_match(sdp, &req, &seqlen))
181 for (i = 0; i < sdp->services; i ++)
182 if (sdp->service_list[i].match) {
243 static ssize_t sdp_attr_get(struct bt_l2cap_sdp_state_s *sdp,
259 if (handle < 0 || handle > sdp->services)
261 record = &sdp->service_list[handle];
332 static int sdp_svc_attr_match(struct bt_l2cap_sdp_state_s *sdp,
360 for (i = 0; i < sdp->services; i ++)
361 if ((record = &sdp->service_list[i])->match)
370 static ssize_t sdp_svc_search_attr_get(struct bt_l2cap_sdp_state_s *sdp,
379 for (i = 0; i < sdp->services; i ++) {
380 sdp->service_list[i].match = 0;
381 for (j = 0; j < sdp->service_list[i].attributes; j ++)
382 sdp->service_list[i].attribute_list[j].match = 0;
394 if (sdp_svc_match(sdp, &req, &seqlen))
396 } else if (sdp_svc_match(sdp, &req, &seqlen))
414 if (sdp_svc_attr_match(sdp, &req, &seqlen))
416 } else if (sdp_svc_attr_match(sdp, &req, &seqlen))
442 for (i = 0; i < sdp->services; i ++)
443 if ((record = &sdp->service_list[i])->match) {
488 struct bt_l2cap_sdp_state_s *sdp = opaque;
496 fprintf(stderr, "%s: short SDP PDU (%iB).\n", __FUNCTION__, len);
507 fprintf(stderr, "%s: wrong SDP PDU length (%iB != %iB).\n",
515 rsp_len = sdp_svc_search(sdp, rsp, data, len);
520 rsp_len = sdp_attr_get(sdp, rsp, data, len);
525 rsp_len = sdp_svc_search_attr_get(sdp, rsp, data, len);
534 fprintf(stderr, "%s: unexpected SDP PDU ID %02x.\n",
552 sdu_out = sdp->channel->sdu_out(sdp->channel, rsp_len + PDU_HEADER_SIZE);
561 sdp->channel->sdu_submit(sdp->channel);
566 struct bt_l2cap_sdp_state_s *sdp = opaque;
569 for (i = 0; i < sdp->services; i ++) {
570 qemu_free(sdp->service_list[i].attribute_list->pair);
571 qemu_free(sdp->service_list[i].attribute_list);
572 qemu_free(sdp->service_list[i].uuid);
574 qemu_free(sdp->service_list);
575 qemu_free(sdp);
733 * sdp->device.device->lmp_name. */
749 static void sdp_service_db_build(struct bt_l2cap_sdp_state_s *sdp,
752 sdp->services = 0;
753 while (service[sdp->services])
754 sdp->services ++;
755 sdp->service_list =
756 qemu_mallocz(sdp->services * sizeof(*sdp->service_list));
758 sdp->services = 0;
760 sdp_service_record_build(&sdp->service_list[sdp->services],
761 *service, sdp->services);
763 sdp->services ++;
817 * in resulting SDP data representation size. */
895 SERVICE(sdp,
945 struct bt_l2cap_sdp_state_s *sdp = qemu_mallocz(sizeof(*sdp));
953 sdp->channel = params;
954 sdp->channel->opaque = sdp;
955 sdp->channel->close = bt_l2cap_sdp_close_ch;
956 sdp->channel->sdu_in = bt_l2cap_sdp_sdu_in;
958 sdp_service_db_build(sdp, services);