Lines Matching defs:hdev
16 u8 eir_append_local_name(struct hci_dev *hdev, u8 *ptr, u8 ad_len)
22 if ((max_adv_len(hdev) - ad_len) < HCI_MAX_SHORT_NAME_LENGTH + 2)
26 complete_len = strnlen(hdev->dev_name, sizeof(hdev->dev_name));
29 hdev->dev_name, complete_len);
32 short_len = strnlen(hdev->short_name, sizeof(hdev->short_name));
35 hdev->short_name,
43 hdev->dev_name,
49 u8 eir_append_appearance(struct hci_dev *hdev, u8 *ptr, u8 ad_len)
51 return eir_append_le16(ptr, ad_len, EIR_APPEARANCE, hdev->appearance);
67 static u8 *create_uuid16_list(struct hci_dev *hdev, u8 *data, ptrdiff_t len)
75 list_for_each_entry(uuid, &hdev->uuids, list) {
109 static u8 *create_uuid32_list(struct hci_dev *hdev, u8 *data, ptrdiff_t len)
117 list_for_each_entry(uuid, &hdev->uuids, list) {
142 static u8 *create_uuid128_list(struct hci_dev *hdev, u8 *data, ptrdiff_t len)
150 list_for_each_entry(uuid, &hdev->uuids, list) {
175 void eir_create(struct hci_dev *hdev, u8 *data)
180 name_len = strnlen(hdev->dev_name, sizeof(hdev->dev_name));
194 memcpy(ptr + 2, hdev->dev_name, name_len);
199 if (hdev->inq_tx_power != HCI_TX_POWER_INVALID) {
202 ptr[2] = (u8)hdev->inq_tx_power;
207 if (hdev->devid_source > 0) {
211 put_unaligned_le16(hdev->devid_source, ptr + 2);
212 put_unaligned_le16(hdev->devid_vendor, ptr + 4);
213 put_unaligned_le16(hdev->devid_product, ptr + 6);
214 put_unaligned_le16(hdev->devid_version, ptr + 8);
219 ptr = create_uuid16_list(hdev, ptr, HCI_MAX_EIR_LENGTH - (ptr - data));
220 ptr = create_uuid32_list(hdev, ptr, HCI_MAX_EIR_LENGTH - (ptr - data));
221 ptr = create_uuid128_list(hdev, ptr, HCI_MAX_EIR_LENGTH - (ptr - data));
224 u8 eir_create_per_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr)
231 adv = hci_find_adv_instance(hdev, instance);
245 u8 eir_create_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr)
253 adv = hci_find_adv_instance(hdev, instance);
258 instance_flags = hci_adv_instance_flags(hdev, instance);
276 if (!hci_dev_test_flag(hdev, HCI_BREDR_ENABLED))
284 flags |= mgmt_get_adv_discov_flags(hdev);
309 if (ext_adv_capable(hdev)) {
313 adv_tx_power = hdev->adv_tx_power;
315 adv_tx_power = hdev->adv_tx_power;
332 static u8 create_default_scan_rsp(struct hci_dev *hdev, u8 *ptr)
336 if (hdev->appearance)
337 scan_rsp_len = eir_append_appearance(hdev, ptr, scan_rsp_len);
339 return eir_append_local_name(hdev, ptr, scan_rsp_len);
342 u8 eir_create_scan_rsp(struct hci_dev *hdev, u8 instance, u8 *ptr)
348 return create_default_scan_rsp(hdev, ptr);
350 adv = hci_find_adv_instance(hdev, instance);
354 if ((adv->flags & MGMT_ADV_FLAG_APPEARANCE) && hdev->appearance)
355 scan_rsp_len = eir_append_appearance(hdev, ptr, scan_rsp_len);
362 scan_rsp_len = eir_append_local_name(hdev, ptr, scan_rsp_len);