Lines Matching defs:hc_data

151 wusb_hc_get_iehdl(wusb_hc_data_t *hc_data, wusb_ie_header_t *hdr,
165 hdl = hc_data->hc_num_mmcies - 1;
166 hc_data->hc_mmcie_list[hdl] = hdr;
181 for (i = hc_data->hc_num_mmcies - 2; i >= 0; i--) {
182 if ((hc_data->hc_mmcie_list[i] == hdr) ||
183 (hc_data->hc_mmcie_list[i] == NULL)) {
185 hc_data->hc_mmcie_list[i] = hdr;
206 wusb_hc_free_iehdl(wusb_hc_data_t *hc_data, uint8_t iehdl)
208 ASSERT(mutex_owned(&hc_data->hc_mutex));
210 if (iehdl >= hc_data->hc_num_mmcies) {
215 if (hc_data->hc_mmcie_list[iehdl] != NULL) {
216 hc_data->hc_mmcie_list[iehdl] = NULL;
231 wusb_hc_set_cluster_id(wusb_hc_data_t *hc_data, uint8_t cluster_id)
233 dev_info_t *dip = hc_data->hc_dip;
241 if ((rval = hc_data->set_cluster_id(dip, cluster_id))
247 mutex_enter(&hc_data->hc_mutex);
248 hc_data->hc_cluster_id = cluster_id;
249 mutex_exit(&hc_data->hc_mutex);
260 wusb_hc_set_stream_idx(wusb_hc_data_t *hc_data, uint8_t stream_idx)
262 dev_info_t *dip = hc_data->hc_dip;
273 rval = hc_data->set_stream_idx(dip, stream_idx);
285 wusb_hc_set_wusb_mas(wusb_hc_data_t *hc_data, uint8_t *data)
287 dev_info_t *dip = hc_data->hc_dip;
290 rval = hc_data->set_wusb_mas(dip, data);
302 wusb_hc_add_mmc_ie(wusb_hc_data_t *hc_data, uint8_t interval,
305 dev_info_t *dip = hc_data->hc_dip;
308 rval = hc_data->add_mmc_ie(dip, interval, rcnt, iehdl, len, data);
321 wusb_hc_remove_mmc_ie(wusb_hc_data_t *hc_data, uint8_t iehdl)
323 dev_info_t *dip = hc_data->hc_dip;
326 ASSERT(mutex_owned(&hc_data->hc_mutex));
328 if ((iehdl >= hc_data->hc_num_mmcies) ||
329 (hc_data->hc_mmcie_list[iehdl] == NULL)) {
334 mutex_exit(&hc_data->hc_mutex);
335 rval = hc_data->rem_mmc_ie(dip, iehdl);
336 mutex_enter(&hc_data->hc_mutex);
347 wusb_hc_stop_ch(wusb_hc_data_t *hc_data, uint32_t timeoff)
349 dev_info_t *dip = hc_data->hc_dip;
352 rval = hc_data->stop_ch(dip, timeoff);
363 wusb_hc_set_num_dnts(wusb_hc_data_t *hc_data, uint8_t interval,
366 dev_info_t *dip = hc_data->hc_dip;
369 rval = hc_data->set_num_dnts(dip, interval, nslots);
386 wusb_hc_get_time(wusb_hc_data_t *hc_data, uint8_t time_type,
389 dev_info_t *dip = hc_data->hc_dip;
393 rval = hc_data->get_time(dip, time_type, len, time);
406 wusb_hc_rem_ie(wusb_hc_data_t *hc_data, wusb_ie_header_t *ieh)
411 mutex_enter(&hc_data->hc_mutex);
412 for (i = 0; i < hc_data->hc_num_mmcies; i++) {
413 if (hc_data->hc_mmcie_list[i] == ieh) {
423 mutex_exit(&hc_data->hc_mutex);
428 (void) wusb_hc_remove_mmc_ie(hc_data, (uint8_t)iehdl);
430 wusb_hc_free_iehdl(hc_data, (uint8_t)iehdl);
431 mutex_exit(&hc_data->hc_mutex);
436 wusb_hc_add_host_info(wusb_hc_data_t *hc_data, uint8_t stream_idx)
444 mutex_enter(&hc_data->hc_mutex);
448 if (hc_data->hc_newcon_enabled) {
455 (void) memcpy(hinfo->CHID, hc_data->hc_chid, sizeof (hinfo->CHID));
457 rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)hinfo, &iehdl);
461 mutex_exit(&hc_data->hc_mutex);
469 mutex_exit(&hc_data->hc_mutex);
470 rval = wusb_hc_add_mmc_ie(hc_data, 10, 1, iehdl,
475 mutex_enter(&hc_data->hc_mutex);
476 wusb_hc_free_iehdl(hc_data, iehdl);
477 mutex_exit(&hc_data->hc_mutex);
488 wusb_hc_rem_host_info(wusb_hc_data_t *hc_data)
493 mutex_enter(&hc_data->hc_mutex);
495 iehdl = hc_data->hc_num_mmcies - 1;
496 iehead = hc_data->hc_mmcie_list[iehdl];
500 mutex_exit(&hc_data->hc_mutex);
504 (void) wusb_hc_remove_mmc_ie(hc_data, (uint8_t)iehdl);
505 wusb_hc_free_iehdl(hc_data, (uint8_t)iehdl);
508 mutex_exit(&hc_data->hc_mutex);
517 wusb_hc_is_dev_connected(wusb_hc_data_t *hc_data, uint8_t *cdid,
523 ASSERT(mutex_owned(&hc_data->hc_mutex));
525 for (i = 1; i <= hc_data->hc_num_ports; i++) {
526 dev_info = hc_data->hc_dev_infos[i];
547 wusb_hc_is_addr_valid(wusb_hc_data_t *hc_data, uint8_t addr,
553 for (i = 1; i <= hc_data->hc_num_ports; i++) {
554 dev_info = hc_data->hc_dev_infos[i];
574 wusb_hc_get_free_port(wusb_hc_data_t *hc_data)
579 for (i = 1; i <= hc_data->hc_num_ports; i++) {
580 if (hc_data->hc_dev_infos[i] == NULL) {
594 wusb_hc_ack_conn(wusb_hc_data_t *hc_data, usb_port_t port)
602 ASSERT(mutex_owned(&hc_data->hc_mutex));
604 dev_info = hc_data->hc_dev_infos[port];
615 rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)ack_ie, &iehdl);
624 rval = wusb_hc_add_mmc_ie(hc_data, 0, 3, iehdl,
629 wusb_hc_free_iehdl(hc_data, iehdl);
635 mutex_exit(&hc_data->hc_mutex);
641 mutex_enter(&hc_data->hc_mutex);
648 wusb_hc_rm_ack(wusb_hc_data_t *hc_data)
654 for (i = 0; i < hc_data->hc_num_mmcies; i++) {
655 ieh = hc_data->hc_mmcie_list[i];
672 (void) wusb_hc_remove_mmc_ie(hc_data, (uint8_t)iehdl);
673 wusb_hc_free_iehdl(hc_data, iehdl);
681 wusb_hc_send_keepalive_ie(wusb_hc_data_t *hc_data, uint8_t addr)
687 mutex_enter(&hc_data->hc_mutex);
692 alive_ie = &hc_data->hc_alive_ie;
698 rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)alive_ie,
703 mutex_exit(&hc_data->hc_mutex);
714 mutex_exit(&hc_data->hc_mutex);
716 rval = wusb_hc_add_mmc_ie(hc_data, 0, 0, iehdl,
735 mutex_enter(&hc_data->hc_mutex);
736 (void) wusb_hc_remove_mmc_ie(hc_data, iehdl);
737 wusb_hc_free_iehdl(hc_data, iehdl);
738 mutex_exit(&hc_data->hc_mutex);
772 wusb_get_dev_uwb_descr(wusb_hc_data_t *hc_data, usb_port_t port)
781 ASSERT(mutex_owned(&hc_data->hc_mutex));
786 dev_info = hc_data->hc_dev_infos[port];
787 child_dip = hc_data->hc_children_dips[port];
801 mutex_exit(&hc_data->hc_mutex);
808 mutex_enter(&hc_data->hc_mutex);
812 mutex_enter(&hc_data->hc_mutex);
1262 wusb_enable_dev_encrypt(wusb_hc_data_t *hc_data, wusb_dev_info_t *dev_info)
1279 mutex_enter(&hc_data->hc_mutex);
1281 mutex_exit(&hc_data->hc_mutex);
1300 wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port,
1308 ASSERT(mutex_owned(&hc_data->hc_mutex));
1310 dev_info = hc_data->hc_dev_infos[port];
1320 child_dip = hc_data->hc_children_dips[port];
1322 mutex_exit(&hc_data->hc_mutex);
1328 mutex_enter(&hc_data->hc_mutex);
1337 if (wusb_enable_dev_encrypt(hc_data, dev_info) != USB_SUCCESS) {
1341 mutex_enter(&hc_data->hc_mutex);
1350 mutex_enter(&hc_data->hc_mutex);
1355 if ((dev_info->wdev_cc = wusb_hc_cc_matched(hc_data->hc_cc_list,
1379 mutex_exit(&hc_data->hc_mutex);
1386 mutex_enter(&hc_data->hc_mutex);
1391 mutex_enter(&hc_data->hc_mutex);
1395 mutex_exit(&hc_data->hc_mutex);
1397 if (wusb_4way_handshake(hc_data, port, ph, ifc) != 0) {
1408 mutex_enter(&hc_data->hc_mutex);
1413 mutex_enter(&hc_data->hc_mutex);
1420 wusb_hc_ack_disconn(wusb_hc_data_t *hc_data, uint8_t addr)
1426 ASSERT(mutex_owned(&hc_data->hc_mutex));
1443 rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)disconn_ie,
1453 rval = wusb_hc_add_mmc_ie(hc_data, 0, 0, iehdl,
1458 wusb_hc_free_iehdl(hc_data, iehdl);
1464 mutex_exit(&hc_data->hc_mutex);
1470 mutex_enter(&hc_data->hc_mutex);
1473 (void) wusb_hc_remove_mmc_ie(hc_data, (uint8_t)iehdl);
1474 wusb_hc_free_iehdl(hc_data, iehdl);
1510 wusb_hc_handle_port_connect(wusb_hc_data_t *hc_data, usb_port_t port,
1513 dev_info_t *dip = hc_data->hc_dip;
1526 "wusb_hc_handle_port_connect: hc_data=0x%p, port=%d",
1527 (void *)hc_data, port);
1529 ASSERT(mutex_owned(&hc_data->hc_mutex));
1530 dev_info = hc_data->hc_dev_infos[port];
1534 wusb_hc_rm_ack(hc_data);
1539 dev_info->wdev_hc = hc_data;
1542 if (hc_data->hc_children_dips[port]) {
1543 child_dip = hc_data->hc_children_dips[port];
1544 child_ud = hc_data->hc_usba_devices[port];
1546 mutex_exit(&hc_data->hc_mutex);
1549 mutex_enter(&hc_data->hc_mutex);
1559 wusb_hc_rm_ack(hc_data); // , ph, ifc);
1573 hc_data->hc_children_dips[port] = child_dip;
1574 hc_data->hc_usba_devices[port] = child_ud;
1609 rval = wusb_hc_set_device_info(hc_data, port);
1619 rval = wusb_hc_set_encrypt(hc_data, port, WUSB_ENCRYP_TYPE_UNSECURE);
1633 mutex_exit(&hc_data->hc_mutex);
1640 mutex_enter(&hc_data->hc_mutex);
1644 mutex_enter(&hc_data->hc_mutex);
1650 if (wusb_get_dev_uwb_descr(hc_data, port) != USB_SUCCESS) {
1659 wusb_hc_rm_ack(hc_data);
1663 if (wusb_hc_auth_dev(hc_data, port, ph, ifc, secrt_data) !=
1676 wusb_hc_reconnect_dev(hc_data, port);
1678 if (wusb_hc_create_child(hc_data, port) != USB_SUCCESS) {
1691 mutex_exit(&hc_data->hc_mutex);
1694 mutex_enter(&hc_data->hc_mutex);
1710 mutex_exit(&hc_data->hc_mutex);
1712 mutex_enter(&hc_data->hc_mutex);
1714 hc_data->hc_children_dips[port] = NULL;
1715 hc_data->hc_usba_devices[port] = NULL;
1719 wusb_hc_rm_ack(hc_data);
1732 wusb_hc_handle_dn_connect(wusb_hc_data_t *hc_data, usb_pipe_handle_t ph,
1754 mutex_enter(&hc_data->hc_mutex);
1760 if (wusb_hc_is_dev_connected(hc_data, dn_con->CDID, &port) == 0) {
1775 mutex_exit(&hc_data->hc_mutex);
1781 port = wusb_hc_get_free_port(hc_data);
1786 mutex_exit(&hc_data->hc_mutex);
1797 hc_data->hc_dev_infos[port] = dev_info;
1804 dev_info = hc_data->hc_dev_infos[port];
1814 mutex_exit(&hc_data->hc_mutex);
1823 wusb_hc_disconnect_dev(hc_data, port);
1853 if (wusb_hc_ack_conn(hc_data, port) != USB_SUCCESS) {
1860 hc_data->hc_dev_infos[port] = NULL;
1864 mutex_exit(&hc_data->hc_mutex);
1873 if (wusb_hc_handle_port_connect(hc_data, port, ph, ifc, secrt_data) !=
1892 hc_data->hc_dev_infos[port] = NULL;
1896 mutex_exit(&hc_data->hc_mutex);
1902 ddi_pathname(hc_data->hc_dip, pathname),
1903 ddi_driver_name(hc_data->hc_dip),
1904 ddi_get_instance(hc_data->hc_dip),
1913 mutex_exit(&hc_data->hc_mutex);
1918 wusb_hc_handle_dn_disconnect(wusb_hc_data_t *hc_data, uint8_t addr,
1935 mutex_enter(&hc_data->hc_mutex);
1938 if (wusb_hc_ack_disconn(hc_data, addr) != USB_SUCCESS) {
1941 mutex_exit(&hc_data->hc_mutex);
1947 if (wusb_hc_is_addr_valid(hc_data, addr, &port)) {
1948 (void) wusb_hc_destroy_child(hc_data, port);
1955 mutex_exit(&hc_data->hc_mutex);
1960 wusb_hc_disconnect_dev(wusb_hc_data_t *hc_data, usb_port_t port)
1962 dev_info_t *dip = hc_data->hc_dip;
1966 mutex_exit(&hc_data->hc_mutex);
1968 hc_data->disconnect_dev(dip, port);
1970 mutex_enter(&hc_data->hc_mutex);
1975 wusb_hc_reconnect_dev(wusb_hc_data_t *hc_data, usb_port_t port)
1977 dev_info_t *dip = hc_data->hc_dip;
1981 mutex_exit(&hc_data->hc_mutex);
1983 hc_data->reconnect_dev(dip, port);
1985 mutex_enter(&hc_data->hc_mutex);
1990 wusb_hc_create_child(wusb_hc_data_t *hc_data, usb_port_t port)
1992 dev_info_t *dip = hc_data->hc_dip;
1997 mutex_exit(&hc_data->hc_mutex);
1999 rval = hc_data->create_child(dip, port);
2001 mutex_enter(&hc_data->hc_mutex);
2008 wusb_hc_destroy_child(wusb_hc_data_t *hc_data, usb_port_t port)
2010 dev_info_t *dip = hc_data->hc_dip;
2015 mutex_exit(&hc_data->hc_mutex);
2017 rval = hc_data->destroy_child(dip, port);
2019 mutex_enter(&hc_data->hc_mutex);
2123 wusb_hc_send_host_disconnect(wusb_hc_data_t *hc_data)
2133 mutex_enter(&hc_data->hc_mutex);
2134 rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)disconn_ie,
2136 mutex_exit(&hc_data->hc_mutex);
2145 rval = wusb_hc_add_mmc_ie(hc_data, 0, 0, iehdl,
2151 mutex_enter(&hc_data->hc_mutex);
2152 wusb_hc_free_iehdl(hc_data, iehdl);
2153 mutex_exit(&hc_data->hc_mutex);
2161 mutex_enter(&hc_data->hc_mutex);
2162 (void) wusb_hc_remove_mmc_ie(hc_data, iehdl);
2163 wusb_hc_free_iehdl(hc_data, iehdl);
2164 mutex_exit(&hc_data->hc_mutex);
2355 wusb_gen_random_nonce(wusb_hc_data_t *hc_data,
2358 usba_device_t *udev = usba_get_usba_device(hc_data->hc_dip);
2368 n.daddr = hc_data->hc_addr;
2388 (uchar_t *)hc_data, sizeof (wusb_hc_data_t), rbuf));
2451 wusb_hc_set_encrypt(wusb_hc_data_t *hc_data, usb_port_t port, uint8_t type)
2453 dev_info_t *dip = hc_data->hc_dip;
2456 if ((rval = hc_data->set_encrypt(dip, port, type)) != USB_SUCCESS) {
2471 wusb_hc_set_ptk(wusb_hc_data_t *hc_data, uint8_t *key_data, usb_port_t port)
2473 dev_info_t *dip = hc_data->hc_dip;
2474 wusb_dev_info_t *dev_info = hc_data->hc_dev_infos[port];
2480 ASSERT(mutex_owned(&hc_data->hc_mutex));
2496 mutex_exit(&hc_data->hc_mutex);
2498 if ((rval = hc_data->set_ptk(dip, key_descr, klen, port)) !=
2505 mutex_enter(&hc_data->hc_mutex);
2518 wusb_hc_set_gtk(wusb_hc_data_t *hc_data, uint8_t *key_data, uint8_t *tkid)
2520 dev_info_t *dip = hc_data->hc_dip;
2540 if ((rval = hc_data->set_gtk(dip, key_descr, klen)) !=
2546 (void) memcpy(&hc_data->hc_gtk, key_descr, klen);
2554 wusb_hc_set_device_info(wusb_hc_data_t *hc_data, usb_port_t port)
2562 dev_info = hc_data->hc_dev_infos[port];
2563 rval = hc_data->set_device_info(hc_data->hc_dip, dev_info, port);
2687 wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port,
2704 mutex_enter(&hc_data->hc_mutex);
2705 dev_info = hc_data->hc_dev_infos[port];
2707 mutex_exit(&hc_data->hc_mutex);
2713 mutex_exit(&hc_data->hc_mutex);
2735 if ((rval = wusb_gen_random_nonce(hc_data, dev_info, hs[0].Nonce))
2739 mutex_exit(&hc_data->hc_mutex);
2748 mutex_exit(&hc_data->hc_mutex);
2780 mutex_enter(&hc_data->hc_mutex);
2783 n.saddr = hc_data->hc_addr;
2786 mutex_exit(&hc_data->hc_mutex);
2839 mutex_enter(&hc_data->hc_mutex);
2845 rval = wusb_hc_set_ptk(hc_data, dev_info->wdev_ptk, port);
2846 mutex_exit(&hc_data->hc_mutex);
2861 rval = wusb_hc_set_encrypt(hc_data, port, WUSB_ENCRYP_TYPE_CCM_1);
2871 * GTK is initialized when hc_data is inited
2874 &hc_data->hc_gtk, hc_data->hc_gtk.bLength);
2879 (void) wusb_hc_set_encrypt(hc_data, port,