Lines Matching defs:unit

67 static void hci_cmd_create_con(struct hci_unit *unit, uint8_t status);
163 hci_event(struct mbuf *m, struct hci_unit *unit)
180 device_xname(unit->hci_dev), hci_eventstr(hdr.event));
184 hci_event_command_status(unit, m);
188 hci_event_command_compl(unit, m);
192 hci_event_num_compl_pkts(unit, m);
196 hci_event_inquiry_result(unit, m);
200 hci_event_rssi_result(unit, m);
204 hci_event_extended_result(unit, m);
208 hci_event_con_compl(unit, m);
212 hci_event_discon_compl(unit, m);
216 hci_event_con_req(unit, m);
220 hci_event_auth_compl(unit, m);
224 hci_event_encryption_change(unit, m);
228 hci_event_change_con_link_key_compl(unit, m);
232 hci_event_read_clock_offset_compl(unit, m);
249 hci_event_command_status(struct hci_unit *unit, struct mbuf *m)
262 device_xname(unit->hci_dev),
267 hci_num_cmds(unit, ep.num_cmd_pkts);
274 hci_cmd_create_con(unit, ep.status);
281 aprint_error_dev(unit->hci_dev,
296 hci_event_command_compl(struct hci_unit *unit, struct mbuf *m)
308 device_xname(unit->hci_dev),
312 hci_num_cmds(unit, ep.num_cmd_pkts);
321 aprint_error_dev(unit->hci_dev,
331 hci_cmd_read_bdaddr(unit, m);
335 hci_cmd_read_buffer_size(unit, m);
339 hci_cmd_read_local_features(unit, m);
343 hci_cmd_read_local_extended_features(unit, m);
347 hci_cmd_read_local_ver(unit, m);
351 hci_cmd_read_local_commands(unit, m);
355 hci_cmd_reset(unit, m);
373 hci_event_num_compl_pkts(struct hci_unit *unit, struct mbuf *m)
395 link = hci_link_lookup_handle(unit, handle);
406 aprint_error_dev(unit->hci_dev,
420 unit->hci_num_acl_pkts += num_acl;
421 unit->hci_num_sco_pkts += num_sco;
423 link = TAILQ_FIRST(&unit->hci_links);
424 while (link && (unit->hci_num_acl_pkts > 0 || unit->hci_num_sco_pkts > 0)) {
428 if (unit->hci_num_acl_pkts > 0 && link->hl_txqlen > 0)
431 if (unit->hci_num_sco_pkts > 0 && link->hl_txqlen > 0)
442 * keep a note of devices seen, so we know which unit to use
446 hci_event_inquiry_result(struct hci_unit *unit, struct mbuf *m)
472 memo = hci_memo_new(unit, &ir.bdaddr);
487 hci_event_rssi_result(struct hci_unit *unit, struct mbuf *m)
513 memo = hci_memo_new(unit, &rr.bdaddr);
528 hci_event_extended_result(struct hci_unit *unit, struct mbuf *m)
546 memo = hci_memo_new(unit, &ep.bdaddr);
562 hci_event_con_compl(struct hci_unit *unit, struct mbuf *m)
577 device_xname(unit->hci_dev),
583 link = hci_link_lookup_bdaddr(unit, &ep.bdaddr, ep.link_type);
617 hci_send_cmd(unit, HCI_CMD_DISCONNECT, &dp, sizeof(dp));
631 cp.settings = htole16(unit->hci_link_policy);
632 err = hci_send_cmd(unit, HCI_CMD_WRITE_LINK_POLICY_SETTINGS,
635 aprint_error_dev(unit->hci_dev,
638 err = hci_send_cmd(unit, HCI_CMD_READ_CLOCK_OFFSET,
641 aprint_error_dev(unit->hci_dev,
661 hci_event_discon_compl(struct hci_unit *unit, struct mbuf *m)
676 link = hci_link_lookup_handle(unit, HCI_CON_HANDLE(ep.con_handle));
688 hci_event_con_req(struct hci_unit *unit, struct mbuf *m)
709 link = hci_acl_newconn(unit, &ep.bdaddr);
711 link = hci_sco_newconn(unit, &ep.bdaddr);
718 hci_send_cmd(unit, HCI_CMD_REJECT_CON, &rp, sizeof(rp));
722 if (unit->hci_flags & BTF_MASTER)
727 hci_send_cmd(unit, HCI_CMD_ACCEPT_CON, &ap, sizeof(ap));
738 hci_event_auth_compl(struct hci_unit *unit, struct mbuf *m)
754 link = hci_link_lookup_handle(unit, ep.con_handle);
782 hci_event_encryption_change(struct hci_unit *unit, struct mbuf *m)
799 link = hci_link_lookup_handle(unit, ep.con_handle);
828 hci_event_change_con_link_key_compl(struct hci_unit *unit, struct mbuf *m)
844 link = hci_link_lookup_handle(unit, ep.con_handle);
871 hci_event_read_clock_offset_compl(struct hci_unit *unit, struct mbuf *m)
886 link = hci_link_lookup_handle(unit, ep.con_handle);
898 hci_cmd_read_bdaddr(struct hci_unit *unit, struct mbuf *m)
911 if ((unit->hci_flags & BTF_INIT_BDADDR) == 0)
914 bdaddr_copy(&unit->hci_bdaddr, &rp.bdaddr);
916 unit->hci_flags &= ~BTF_INIT_BDADDR;
918 cv_broadcast(&unit->hci_init);
925 hci_cmd_read_buffer_size(struct hci_unit *unit, struct mbuf *m)
938 if ((unit->hci_flags & BTF_INIT_BUFFER_SIZE) == 0)
941 unit->hci_max_acl_size = le16toh(rp.max_acl_size);
942 unit->hci_num_acl_pkts = le16toh(rp.num_acl_pkts);
943 unit->hci_max_acl_pkts = le16toh(rp.num_acl_pkts);
944 unit->hci_max_sco_size = rp.max_sco_size;
945 unit->hci_num_sco_pkts = le16toh(rp.num_sco_pkts);
946 unit->hci_max_sco_pkts = le16toh(rp.num_sco_pkts);
948 unit->hci_flags &= ~BTF_INIT_BUFFER_SIZE;
950 cv_broadcast(&unit->hci_init);
957 hci_cmd_read_local_features(struct hci_unit *unit, struct mbuf *m)
970 if ((unit->hci_flags & BTF_INIT_FEATURES) == 0)
973 memcpy(unit->hci_feat0, rp.features, HCI_FEATURES_SIZE);
975 unit->hci_lmp_mask = 0;
978 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_ROLE_SWITCH;
981 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_HOLD_MODE;
984 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_SNIFF_MODE;
987 unit->hci_lmp_mask |= HCI_LINK_POLICY_ENABLE_PARK_MODE;
990 device_xname(unit->hci_dev), unit->hci_lmp_mask);
993 unit->hci_acl_mask = HCI_PKT_DM1 | HCI_PKT_DH1;
996 unit->hci_acl_mask |= HCI_PKT_DM3 | HCI_PKT_DH3;
999 unit->hci_acl_mask |= HCI_PKT_DM5 | HCI_PKT_DH5;
1002 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH1
1007 unit->hci_acl_mask |= HCI_PKT_3MBPS_DH1
1012 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH3
1016 unit->hci_acl_mask |= HCI_PKT_2MBPS_DH5
1020 device_xname(unit->hci_dev), unit->hci_acl_mask);
1022 unit->hci_packet_type = unit->hci_acl_mask;
1025 unit->hci_sco_mask = 0;
1027 unit->hci_sco_mask |= HCI_PKT_HV1;
1030 unit->hci_sco_mask |= HCI_PKT_HV2;
1033 unit->hci_sco_mask |= HCI_PKT_HV3;
1036 unit->hci_sco_mask |= HCI_PKT_EV3;
1039 unit->hci_sco_mask |= HCI_PKT_EV4;
1042 unit->hci_sco_mask |= HCI_PKT_EV5;
1047 device_xname(unit->hci_dev), unit->hci_sco_mask);
1054 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_EXTENDED_FEATURES,
1060 unit->hci_flags &= ~BTF_INIT_FEATURES;
1061 cv_broadcast(&unit->hci_init);
1068 hci_cmd_read_local_extended_features(struct hci_unit *unit, struct mbuf *m)
1081 if ((unit->hci_flags & BTF_INIT_FEATURES) == 0)
1084 DPRINTFN(1, "%s: page %d of %d\n", device_xname(unit->hci_dev),
1089 memcpy(unit->hci_feat1, rp.features, HCI_FEATURES_SIZE);
1101 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_EXTENDED_FEATURES,
1107 unit->hci_flags &= ~BTF_INIT_FEATURES;
1108 cv_broadcast(&unit->hci_init);
1117 hci_cmd_read_local_ver(struct hci_unit *unit, struct mbuf *m)
1130 if ((unit->hci_flags & BTF_INIT_COMMANDS) == 0)
1134 unit->hci_flags &= ~BTF_INIT_COMMANDS;
1135 cv_broadcast(&unit->hci_init);
1139 hci_send_cmd(unit, HCI_CMD_READ_LOCAL_COMMANDS, NULL, 0);
1146 hci_cmd_read_local_commands(struct hci_unit *unit, struct mbuf *m)
1159 if ((unit->hci_flags & BTF_INIT_COMMANDS) == 0)
1162 unit->hci_flags &= ~BTF_INIT_COMMANDS;
1163 memcpy(unit->hci_cmds, rp.commands, HCI_COMMANDS_SIZE);
1165 cv_broadcast(&unit->hci_init);
1172 * and reinitialise the unit.
1175 hci_cmd_reset(struct hci_unit *unit, struct mbuf *m)
1195 next = TAILQ_FIRST(&unit->hci_links);
1203 unit->hci_num_acl_pkts = 0;
1204 unit->hci_num_sco_pkts = 0;
1206 if (hci_send_cmd(unit, HCI_CMD_READ_BDADDR, NULL, 0))
1209 if (hci_send_cmd(unit, HCI_CMD_READ_BUFFER_SIZE, NULL, 0))
1212 if (hci_send_cmd(unit, HCI_CMD_READ_LOCAL_FEATURES, NULL, 0))
1215 if (hci_send_cmd(unit, HCI_CMD_READ_LOCAL_VER, NULL, 0))
1234 hci_cmd_create_con(struct hci_unit *unit, uint8_t status)
1238 TAILQ_FOREACH(link, &unit->hci_links, hl_next) {