diff options
Diffstat (limited to 'usr/src/man/man9f')
| -rw-r--r-- | usr/src/man/man9f/Makefile | 939 | ||||
| -rw-r--r-- | usr/src/man/man9f/kmem_alloc.9f | 7 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_alloc_hcdi_ops.9f | 77 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hcdi_cb.9f | 145 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hcdi_dup_intr_req.9f | 115 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f | 111 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hcdi_get_device_private.9f | 66 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hcdi_register.9f | 112 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hubdi_bind_root_hub.9f | 137 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hubdi_cb_ops.9f | 109 | ||||
| -rw-r--r-- | usr/src/man/man9f/usba_hubdi_dev_ops.9f | 66 |
11 files changed, 1427 insertions, 457 deletions
diff --git a/usr/src/man/man9f/Makefile b/usr/src/man/man9f/Makefile index 82ccf43a64..6033d01522 100644 --- a/usr/src/man/man9f/Makefile +++ b/usr/src/man/man9f/Makefile @@ -12,7 +12,7 @@ # # Copyright 2017, Richard Lowe # Copyright 2014 Garrett D'Amore <garrett@damore> -# Copyright 2016 Joyent, Inc. +# Copyright (c) 2017, Joyent, Inc. # Copyright 2016 Nexenta Systems, Inc. # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> # @@ -524,465 +524,474 @@ MANFILES= ASSERT.9f \ usb_pipe_xopen.9f \ usb_register_hotplug_cbs.9f \ usb_reset_device.9f \ + usba_alloc_hcdi_ops.9f \ + usba_hcdi_cb.9f \ + usba_hcdi_dup_intr_req.9f \ + usba_hcdi_dup_isoc_req.9f \ + usba_hcdi_get_device_private.9f \ + usba_hcdi_register.9f \ + usba_hubdi_bind_root_hub.9f \ + usba_hubdi_cb_ops.9f \ + usba_hubdi_dev_ops.9f \ uwritec.9f \ va_arg.9f \ vmem_add.9f \ vmem_alloc.9f \ vmem_contains.9f \ vmem_create.9f \ - vmem_walk.9f - -MANLINKS= AVL_NEXT.9f \ - AVL_PREV.9f \ - SIZEOF_PTR.9f \ - SIZEOF_STRUCT.9f \ - STRUCT_BUF.9f \ - STRUCT_FADDR.9f \ - STRUCT_FGET.9f \ - STRUCT_FGETP.9f \ - STRUCT_FSET.9f \ - STRUCT_FSETP.9f \ - STRUCT_HANDLE.9f \ - STRUCT_INIT.9f \ - STRUCT_SET_HANDLE.9f \ - STRUCT_SIZE.9f \ - assert.9f \ - atomic_add_16.9f \ - atomic_add_16_nv.9f \ - atomic_add_32.9f \ - atomic_add_32_nv.9f \ - atomic_add_64.9f \ - atomic_add_64_nv.9f \ - atomic_add_8.9f \ - atomic_add_8_nv.9f \ - atomic_add_char.9f \ - atomic_add_char_nv.9f \ - atomic_add_int.9f \ - atomic_add_int_nv.9f \ - atomic_add_long.9f \ - atomic_add_long_nv.9f \ - atomic_add_ptr.9f \ - atomic_add_ptr_nv.9f \ - atomic_add_short.9f \ - atomic_add_short_nv.9f \ - atomic_and_16.9f \ - atomic_and_16_nv.9f \ - atomic_and_32.9f \ - atomic_and_32_nv.9f \ - atomic_and_64.9f \ - atomic_and_64_nv.9f \ - atomic_and_8.9f \ - atomic_and_8_nv.9f \ - atomic_and_uchar.9f \ - atomic_and_uchar_nv.9f \ - atomic_and_uint.9f \ - atomic_and_uint_nv.9f \ - atomic_and_ulong.9f \ - atomic_and_ulong_nv.9f \ - atomic_and_ushort.9f \ - atomic_and_ushort_nv.9f \ - atomic_cas_16.9f \ - atomic_cas_32.9f \ - atomic_cas_64.9f \ - atomic_cas_8.9f \ - atomic_cas_ptr.9f \ - atomic_cas_uchar.9f \ - atomic_cas_uint.9f \ - atomic_cas_ulong.9f \ - atomic_cas_ushort.9f \ - atomic_clear_long_excl.9f \ - atomic_dec_16.9f \ - atomic_dec_16_nv.9f \ - atomic_dec_32.9f \ - atomic_dec_32_nv.9f \ - atomic_dec_64.9f \ - atomic_dec_64_nv.9f \ - atomic_dec_8.9f \ - atomic_dec_8_nv.9f \ - atomic_dec_ptr.9f \ - atomic_dec_ptr_nv.9f \ - atomic_dec_uchar.9f \ - atomic_dec_uchar_nv.9f \ - atomic_dec_uint.9f \ - atomic_dec_uint_nv.9f \ - atomic_dec_ulong.9f \ - atomic_dec_ulong_nv.9f \ - atomic_dec_ushort.9f \ - atomic_dec_ushort_nv.9f \ - atomic_inc_16.9f \ - atomic_inc_16_nv.9f \ - atomic_inc_32.9f \ - atomic_inc_32_nv.9f \ - atomic_inc_64.9f \ - atomic_inc_64_nv.9f \ - atomic_inc_8.9f \ - atomic_inc_8_nv.9f \ - atomic_inc_ptr.9f \ - atomic_inc_ptr_nv.9f \ - atomic_inc_uchar.9f \ - atomic_inc_uchar_nv.9f \ - atomic_inc_uint.9f \ - atomic_inc_uint_nv.9f \ - atomic_inc_ulong.9f \ - atomic_inc_ulong_nv.9f \ - atomic_inc_ushort.9f \ - atomic_inc_ushort_nv.9f \ - atomic_or_16.9f \ - atomic_or_16_nv.9f \ - atomic_or_32.9f \ - atomic_or_32_nv.9f \ - atomic_or_64.9f \ - atomic_or_64_nv.9f \ - atomic_or_8.9f \ - atomic_or_8_nv.9f \ - atomic_or_uchar.9f \ - atomic_or_uchar_nv.9f \ - atomic_or_uint.9f \ - atomic_or_uint_nv.9f \ - atomic_or_ulong.9f \ - atomic_or_ulong_nv.9f \ - atomic_or_ushort.9f \ - atomic_or_ushort_nv.9f \ - atomic_set_long_excl.9f \ - atomic_swap_16.9f \ - atomic_swap_32.9f \ - atomic_swap_64.9f \ - atomic_swap_8.9f \ - atomic_swap_ptr.9f \ - atomic_swap_uchar.9f \ - atomic_swap_uint.9f \ - atomic_swap_ulong.9f \ - atomic_swap_ushort.9f \ - avl_add.9f \ - avl_create.9f \ - avl_destroy.9f \ - avl_destroy_nodes.9f \ - avl_find.9f \ - avl_first.9f \ - avl_insert.9f \ - avl_insert_here.9f \ - avl_is_empty.9f \ - avl_last.9f \ - avl_nearest.9f \ - avl_numnodes.9f \ - avl_remove.9f \ - avl_swap.9f \ - bcanputnext.9f \ - crgetgid.9f \ - crgetgroups.9f \ - crgetngroups.9f \ - crgetrgid.9f \ - crgetruid.9f \ - crgetsgid.9f \ - crgetsuid.9f \ - crgetuid.9f \ - crgetzoneid.9f \ - csx_Get16.9f \ - csx_Get32.9f \ - csx_Get64.9f \ - csx_GetEventMask.9f \ - csx_GetNextClient.9f \ - csx_GetNextTuple.9f \ - csx_Parse_CISTPL_DEVICE_A.9f \ - csx_Parse_CISTPL_DEVICE_OA.9f \ - csx_Parse_CISTPL_DEVICE_OC.9f \ - csx_Parse_CISTPL_JEDEC_A.9f \ - csx_Parse_CISTPL_LONGLINK_C.9f \ - csx_Put16.9f \ - csx_Put32.9f \ - csx_Put64.9f \ - csx_ReleaseIO.9f \ - csx_ReleaseIRQ.9f \ - csx_ReleaseSocketMask.9f \ - csx_ReleaseWindow.9f \ - csx_RemoveDeviceNode.9f \ - csx_RepGet16.9f \ - csx_RepGet32.9f \ - csx_RepGet64.9f \ - csx_RepPut16.9f \ - csx_RepPut32.9f \ - csx_RepPut64.9f \ - cv_broadcast.9f \ - cv_destroy.9f \ - cv_init.9f \ - cv_reltimedwait.9f \ - cv_reltimedwait_sig.9f \ - cv_signal.9f \ - cv_timedwait.9f \ - cv_timedwait_sig.9f \ - cv_wait.9f \ - cv_wait_sig.9f \ - ddi_btopr.9f \ - ddi_cb_unregister.9f \ - ddi_check_dma_handle.9f \ - ddi_devid_free.9f \ - ddi_devid_get.9f \ - ddi_devid_init.9f \ - ddi_devid_register.9f \ - ddi_devid_sizeof.9f \ - ddi_devid_str_decode.9f \ - ddi_devid_str_encode.9f \ - ddi_devid_str_free.9f \ - ddi_devid_unregister.9f \ - ddi_devid_valid.9f \ - ddi_devmap_segmap.9f \ - ddi_dmae_1stparty.9f \ - ddi_dmae_alloc.9f \ - ddi_dmae_disable.9f \ - ddi_dmae_enable.9f \ - ddi_dmae_getattr.9f \ - ddi_dmae_getcnt.9f \ - ddi_dmae_prog.9f \ - ddi_dmae_release.9f \ - ddi_dmae_stop.9f \ - ddi_exit_critical.9f \ - ddi_fls.9f \ - ddi_fm_capable.9f \ - ddi_fm_dma_err_clear.9f \ - ddi_fm_dma_err_get.9f \ - ddi_fm_fini.9f \ - ddi_fm_handler_unregister.9f \ - ddi_get16.9f \ - ddi_get32.9f \ - ddi_get64.9f \ - ddi_get_iblock_cookie.9f \ - ddi_get_lbolt64.9f \ - ddi_get_name.9f \ - ddi_get_soft_iblock_cookie.9f \ - ddi_get_soft_state.9f \ - ddi_getb.9f \ - ddi_getl.9f \ - ddi_getll.9f \ - ddi_getlongprop.9f \ - ddi_getlongprop_buf.9f \ - ddi_getprop.9f \ - ddi_getproplen.9f \ - ddi_getw.9f \ - ddi_intr_block_disable.9f \ - ddi_intr_block_enable.9f \ - ddi_intr_clr_mask.9f \ - ddi_intr_disable.9f \ - ddi_intr_free.9f \ - ddi_intr_get_navail.9f \ - ddi_intr_get_softint_pri.9f \ - ddi_intr_remove_handler.9f \ - ddi_intr_remove_softint.9f \ - ddi_intr_set_cap.9f \ - ddi_intr_set_pri.9f \ - ddi_intr_set_softint_pri.9f \ - ddi_intr_trigger_softint.9f \ - ddi_io_get16.9f \ - ddi_io_get32.9f \ - ddi_io_getb.9f \ - ddi_io_getl.9f \ - ddi_io_getw.9f \ - ddi_io_put16.9f \ - ddi_io_put32.9f \ - ddi_io_putb.9f \ - ddi_io_putl.9f \ - ddi_io_putw.9f \ - ddi_io_rep_get16.9f \ - ddi_io_rep_get32.9f \ - ddi_io_rep_getb.9f \ - ddi_io_rep_getl.9f \ - ddi_io_rep_getw.9f \ - ddi_io_rep_put16.9f \ - ddi_io_rep_put32.9f \ - ddi_io_rep_putb.9f \ - ddi_io_rep_putl.9f \ - ddi_io_rep_putw.9f \ - ddi_mem_get16.9f \ - ddi_mem_get32.9f \ - ddi_mem_get64.9f \ - ddi_mem_getb.9f \ - ddi_mem_getl.9f \ - ddi_mem_getll.9f \ - ddi_mem_getw.9f \ - ddi_mem_put16.9f \ - ddi_mem_put32.9f \ - ddi_mem_put64.9f \ - ddi_mem_putb.9f \ - ddi_mem_putl.9f \ - ddi_mem_putll.9f \ - ddi_mem_putw.9f \ - ddi_mem_rep_get16.9f \ - ddi_mem_rep_get32.9f \ - ddi_mem_rep_get64.9f \ - ddi_mem_rep_getb.9f \ - ddi_mem_rep_getl.9f \ - ddi_mem_rep_getll.9f \ - ddi_mem_rep_getw.9f \ - ddi_mem_rep_put16.9f \ - ddi_mem_rep_put32.9f \ - ddi_mem_rep_put64.9f \ - ddi_mem_rep_putb.9f \ - ddi_mem_rep_putl.9f \ - ddi_mem_rep_putll.9f \ - ddi_mem_rep_putw.9f \ - ddi_modclose.9f \ - ddi_modsym.9f \ - ddi_peek16.9f \ - ddi_peek32.9f \ - ddi_peek64.9f \ - ddi_peek8.9f \ - ddi_peekc.9f \ - ddi_peekd.9f \ - ddi_peekl.9f \ - ddi_peeks.9f \ - ddi_poke16.9f \ - ddi_poke32.9f \ - ddi_poke64.9f \ - ddi_poke8.9f \ - ddi_pokec.9f \ - ddi_poked.9f \ - ddi_pokel.9f \ - ddi_pokes.9f \ - ddi_prop_free.9f \ - ddi_prop_get_int64.9f \ - ddi_prop_lookup_byte_array.9f \ - ddi_prop_lookup_int64_array.9f \ - ddi_prop_lookup_int_array.9f \ - ddi_prop_lookup_string.9f \ - ddi_prop_lookup_string_array.9f \ - ddi_prop_modify.9f \ - ddi_prop_remove.9f \ - ddi_prop_remove_all.9f \ - ddi_prop_undefine.9f \ - ddi_prop_update_byte_array.9f \ - ddi_prop_update_int.9f \ - ddi_prop_update_int64.9f \ - ddi_prop_update_int64_array.9f \ - ddi_prop_update_int_array.9f \ - ddi_prop_update_string.9f \ - ddi_prop_update_string_array.9f \ - ddi_ptob.9f \ - ddi_put16.9f \ - ddi_put32.9f \ - ddi_put64.9f \ - ddi_putb.9f \ - ddi_putl.9f \ - ddi_putll.9f \ - ddi_putw.9f \ - ddi_remove_intr.9f \ - ddi_remove_softintr.9f \ - ddi_rep_get16.9f \ - ddi_rep_get32.9f \ - ddi_rep_get64.9f \ - ddi_rep_getb.9f \ - ddi_rep_getl.9f \ - ddi_rep_getll.9f \ - ddi_rep_getw.9f \ - ddi_rep_put16.9f \ - ddi_rep_put32.9f \ - ddi_rep_put64.9f \ - ddi_rep_putb.9f \ - ddi_rep_putl.9f \ - ddi_rep_putll.9f \ - ddi_rep_putw.9f \ - ddi_segmap_setup.9f \ - ddi_set_driver_private.9f \ - ddi_soft_state_fini.9f \ - ddi_soft_state_free.9f \ - ddi_soft_state_init.9f \ - ddi_soft_state_zalloc.9f \ - ddi_strdup.9f \ - ddi_strtoull.9f \ - ddi_taskq_create.9f \ - ddi_taskq_destroy.9f \ - ddi_taskq_dispatch.9f \ - ddi_taskq_resume.9f \ - ddi_taskq_suspend.9f \ - ddi_taskq_wait.9f \ - ddi_trigger_softintr.9f \ - ddi_umem_free.9f \ - ddi_umem_unlock.9f \ - ddi_unmap_regs.9f \ - desballoc.9f \ - dev_err.9f \ - devmap_load.9f \ - devmap_umem_setup.9f \ - dlerrorack.9f \ - dlokack.9f \ - dlphysaddrack.9f \ - dluderrorind.9f \ - firmware_close.9f \ - firmware_free.9f \ - firmware_get_size.9f \ - firmware_malloc.9f \ - firmware_open.9f \ - firmware_read.9f \ - free_pktiopb.9f \ - gld_intr.9f \ - gld_mac_alloc.9f \ - gld_mac_free.9f \ - gld_recv.9f \ - gld_register.9f \ - gld_sched.9f \ - gld_unregister.9f \ - id32_free.9f \ - id32_lookup.9f \ - id_alloc.9f \ - id_alloc_nosleep.9f \ - id_alloc_specific_nosleep.9f \ - id_allocff.9f \ - id_allocff_nosleep.9f \ - id_free.9f \ - id_space_create.9f \ - id_space_destroy.9f \ - id_space_extend.9f \ - inl.9f \ - intro.9f \ - inw.9f \ - kmem_cache_alloc.9f \ - kmem_cache_destroy.9f \ - kmem_cache_free.9f \ - kmem_cache_set_move.9f \ - kmem_free.9f \ - kmem_zalloc.9f \ - kstat_named_setstr.9f \ - kstat_runq_back_to_waitq.9f \ - kstat_runq_enter.9f \ - kstat_runq_exit.9f \ - kstat_waitq_enter.9f \ - kstat_waitq_exit.9f \ - kstat_waitq_to_runq.9f \ - ldi_awrite.9f \ - ldi_close.9f \ - ldi_get_devid.9f \ - ldi_get_minor_name.9f \ - ldi_get_otyp.9f \ - ldi_getmsg.9f \ - ldi_ident_from_dip.9f \ - ldi_ident_from_stream.9f \ - ldi_ident_release.9f \ - ldi_open_by_devid.9f \ - ldi_open_by_name.9f \ - ldi_prop_get_int64.9f \ - ldi_prop_lookup_byte_array.9f \ - ldi_prop_lookup_int64_array.9f \ - ldi_prop_lookup_string.9f \ - ldi_prop_lookup_string_array.9f \ - ldi_write.9f \ - list_destroy.9f \ - list_head.9f \ - list_insert_after.9f \ - list_insert_before.9f \ - list_insert_head.9f \ - list_insert_tail.9f \ - list_is_empty.9f \ - list_link_active.9f \ - list_link_init.9f \ - list_link_replace.9f \ - list_move_tail.9f \ - list_next.9f \ - list_prev.9f \ - list_remove.9f \ - list_remove_head.9f \ - list_remove_tail.9f \ - list_tail.9f \ - mac_fini_ops.9f \ - mac_free.9f \ - mac_hcksum_set.9f \ + vmem_walk.9f + +MANLINKS= AVL_NEXT.9f \ + AVL_PREV.9f \ + SIZEOF_PTR.9f \ + SIZEOF_STRUCT.9f \ + STRUCT_BUF.9f \ + STRUCT_FADDR.9f \ + STRUCT_FGET.9f \ + STRUCT_FGETP.9f \ + STRUCT_FSET.9f \ + STRUCT_FSETP.9f \ + STRUCT_HANDLE.9f \ + STRUCT_INIT.9f \ + STRUCT_SET_HANDLE.9f \ + STRUCT_SIZE.9f \ + assert.9f \ + atomic_add_16.9f \ + atomic_add_16_nv.9f \ + atomic_add_32.9f \ + atomic_add_32_nv.9f \ + atomic_add_64.9f \ + atomic_add_64_nv.9f \ + atomic_add_8.9f \ + atomic_add_8_nv.9f \ + atomic_add_char.9f \ + atomic_add_char_nv.9f \ + atomic_add_int.9f \ + atomic_add_int_nv.9f \ + atomic_add_long.9f \ + atomic_add_long_nv.9f \ + atomic_add_ptr.9f \ + atomic_add_ptr_nv.9f \ + atomic_add_short.9f \ + atomic_add_short_nv.9f \ + atomic_and_16.9f \ + atomic_and_16_nv.9f \ + atomic_and_32.9f \ + atomic_and_32_nv.9f \ + atomic_and_64.9f \ + atomic_and_64_nv.9f \ + atomic_and_8.9f \ + atomic_and_8_nv.9f \ + atomic_and_uchar.9f \ + atomic_and_uchar_nv.9f \ + atomic_and_uint.9f \ + atomic_and_uint_nv.9f \ + atomic_and_ulong.9f \ + atomic_and_ulong_nv.9f \ + atomic_and_ushort.9f \ + atomic_and_ushort_nv.9f \ + atomic_cas_16.9f \ + atomic_cas_32.9f \ + atomic_cas_64.9f \ + atomic_cas_8.9f \ + atomic_cas_ptr.9f \ + atomic_cas_uchar.9f \ + atomic_cas_uint.9f \ + atomic_cas_ulong.9f \ + atomic_cas_ushort.9f \ + atomic_clear_long_excl.9f \ + atomic_dec_16.9f \ + atomic_dec_16_nv.9f \ + atomic_dec_32.9f \ + atomic_dec_32_nv.9f \ + atomic_dec_64.9f \ + atomic_dec_64_nv.9f \ + atomic_dec_8.9f \ + atomic_dec_8_nv.9f \ + atomic_dec_ptr.9f \ + atomic_dec_ptr_nv.9f \ + atomic_dec_uchar.9f \ + atomic_dec_uchar_nv.9f \ + atomic_dec_uint.9f \ + atomic_dec_uint_nv.9f \ + atomic_dec_ulong.9f \ + atomic_dec_ulong_nv.9f \ + atomic_dec_ushort.9f \ + atomic_dec_ushort_nv.9f \ + atomic_inc_16.9f \ + atomic_inc_16_nv.9f \ + atomic_inc_32.9f \ + atomic_inc_32_nv.9f \ + atomic_inc_64.9f \ + atomic_inc_64_nv.9f \ + atomic_inc_8.9f \ + atomic_inc_8_nv.9f \ + atomic_inc_ptr.9f \ + atomic_inc_ptr_nv.9f \ + atomic_inc_uchar.9f \ + atomic_inc_uchar_nv.9f \ + atomic_inc_uint.9f \ + atomic_inc_uint_nv.9f \ + atomic_inc_ulong.9f \ + atomic_inc_ulong_nv.9f \ + atomic_inc_ushort.9f \ + atomic_inc_ushort_nv.9f \ + atomic_or_16.9f \ + atomic_or_16_nv.9f \ + atomic_or_32.9f \ + atomic_or_32_nv.9f \ + atomic_or_64.9f \ + atomic_or_64_nv.9f \ + atomic_or_8.9f \ + atomic_or_8_nv.9f \ + atomic_or_uchar.9f \ + atomic_or_uchar_nv.9f \ + atomic_or_uint.9f \ + atomic_or_uint_nv.9f \ + atomic_or_ulong.9f \ + atomic_or_ulong_nv.9f \ + atomic_or_ushort.9f \ + atomic_or_ushort_nv.9f \ + atomic_set_long_excl.9f \ + atomic_swap_16.9f \ + atomic_swap_32.9f \ + atomic_swap_64.9f \ + atomic_swap_8.9f \ + atomic_swap_ptr.9f \ + atomic_swap_uchar.9f \ + atomic_swap_uint.9f \ + atomic_swap_ulong.9f \ + atomic_swap_ushort.9f \ + avl_add.9f \ + avl_create.9f \ + avl_destroy.9f \ + avl_destroy_nodes.9f \ + avl_find.9f \ + avl_first.9f \ + avl_insert.9f \ + avl_insert_here.9f \ + avl_is_empty.9f \ + avl_last.9f \ + avl_nearest.9f \ + avl_numnodes.9f \ + avl_remove.9f \ + avl_swap.9f \ + bcanputnext.9f \ + crgetgid.9f \ + crgetgroups.9f \ + crgetngroups.9f \ + crgetrgid.9f \ + crgetruid.9f \ + crgetsgid.9f \ + crgetsuid.9f \ + crgetuid.9f \ + crgetzoneid.9f \ + csx_Get16.9f \ + csx_Get32.9f \ + csx_Get64.9f \ + csx_GetEventMask.9f \ + csx_GetNextClient.9f \ + csx_GetNextTuple.9f \ + csx_Parse_CISTPL_DEVICE_A.9f \ + csx_Parse_CISTPL_DEVICE_OA.9f \ + csx_Parse_CISTPL_DEVICE_OC.9f \ + csx_Parse_CISTPL_JEDEC_A.9f \ + csx_Parse_CISTPL_LONGLINK_C.9f \ + csx_Put16.9f \ + csx_Put32.9f \ + csx_Put64.9f \ + csx_ReleaseIO.9f \ + csx_ReleaseIRQ.9f \ + csx_ReleaseSocketMask.9f \ + csx_ReleaseWindow.9f \ + csx_RemoveDeviceNode.9f \ + csx_RepGet16.9f \ + csx_RepGet32.9f \ + csx_RepGet64.9f \ + csx_RepPut16.9f \ + csx_RepPut32.9f \ + csx_RepPut64.9f \ + cv_broadcast.9f \ + cv_destroy.9f \ + cv_init.9f \ + cv_reltimedwait.9f \ + cv_reltimedwait_sig.9f \ + cv_signal.9f \ + cv_timedwait.9f \ + cv_timedwait_sig.9f \ + cv_wait.9f \ + cv_wait_sig.9f \ + ddi_btopr.9f \ + ddi_cb_unregister.9f \ + ddi_check_dma_handle.9f \ + ddi_devid_free.9f \ + ddi_devid_get.9f \ + ddi_devid_init.9f \ + ddi_devid_register.9f \ + ddi_devid_sizeof.9f \ + ddi_devid_str_decode.9f \ + ddi_devid_str_encode.9f \ + ddi_devid_str_free.9f \ + ddi_devid_unregister.9f \ + ddi_devid_valid.9f \ + ddi_devmap_segmap.9f \ + ddi_dmae_1stparty.9f \ + ddi_dmae_alloc.9f \ + ddi_dmae_disable.9f \ + ddi_dmae_enable.9f \ + ddi_dmae_getattr.9f \ + ddi_dmae_getcnt.9f \ + ddi_dmae_prog.9f \ + ddi_dmae_release.9f \ + ddi_dmae_stop.9f \ + ddi_exit_critical.9f \ + ddi_fls.9f \ + ddi_fm_capable.9f \ + ddi_fm_dma_err_clear.9f \ + ddi_fm_dma_err_get.9f \ + ddi_fm_fini.9f \ + ddi_fm_handler_unregister.9f \ + ddi_get16.9f \ + ddi_get32.9f \ + ddi_get64.9f \ + ddi_get_iblock_cookie.9f \ + ddi_get_lbolt64.9f \ + ddi_get_name.9f \ + ddi_get_soft_iblock_cookie.9f \ + ddi_get_soft_state.9f \ + ddi_getb.9f \ + ddi_getl.9f \ + ddi_getll.9f \ + ddi_getlongprop.9f \ + ddi_getlongprop_buf.9f \ + ddi_getprop.9f \ + ddi_getproplen.9f \ + ddi_getw.9f \ + ddi_intr_block_disable.9f \ + ddi_intr_block_enable.9f \ + ddi_intr_clr_mask.9f \ + ddi_intr_disable.9f \ + ddi_intr_free.9f \ + ddi_intr_get_navail.9f \ + ddi_intr_get_softint_pri.9f \ + ddi_intr_remove_handler.9f \ + ddi_intr_remove_softint.9f \ + ddi_intr_set_cap.9f \ + ddi_intr_set_pri.9f \ + ddi_intr_set_softint_pri.9f \ + ddi_intr_trigger_softint.9f \ + ddi_io_get16.9f \ + ddi_io_get32.9f \ + ddi_io_getb.9f \ + ddi_io_getl.9f \ + ddi_io_getw.9f \ + ddi_io_put16.9f \ + ddi_io_put32.9f \ + ddi_io_putb.9f \ + ddi_io_putl.9f \ + ddi_io_putw.9f \ + ddi_io_rep_get16.9f \ + ddi_io_rep_get32.9f \ + ddi_io_rep_getb.9f \ + ddi_io_rep_getl.9f \ + ddi_io_rep_getw.9f \ + ddi_io_rep_put16.9f \ + ddi_io_rep_put32.9f \ + ddi_io_rep_putb.9f \ + ddi_io_rep_putl.9f \ + ddi_io_rep_putw.9f \ + ddi_mem_get16.9f \ + ddi_mem_get32.9f \ + ddi_mem_get64.9f \ + ddi_mem_getb.9f \ + ddi_mem_getl.9f \ + ddi_mem_getll.9f \ + ddi_mem_getw.9f \ + ddi_mem_put16.9f \ + ddi_mem_put32.9f \ + ddi_mem_put64.9f \ + ddi_mem_putb.9f \ + ddi_mem_putl.9f \ + ddi_mem_putll.9f \ + ddi_mem_putw.9f \ + ddi_mem_rep_get16.9f \ + ddi_mem_rep_get32.9f \ + ddi_mem_rep_get64.9f \ + ddi_mem_rep_getb.9f \ + ddi_mem_rep_getl.9f \ + ddi_mem_rep_getll.9f \ + ddi_mem_rep_getw.9f \ + ddi_mem_rep_put16.9f \ + ddi_mem_rep_put32.9f \ + ddi_mem_rep_put64.9f \ + ddi_mem_rep_putb.9f \ + ddi_mem_rep_putl.9f \ + ddi_mem_rep_putll.9f \ + ddi_mem_rep_putw.9f \ + ddi_modclose.9f \ + ddi_modsym.9f \ + ddi_peek16.9f \ + ddi_peek32.9f \ + ddi_peek64.9f \ + ddi_peek8.9f \ + ddi_peekc.9f \ + ddi_peekd.9f \ + ddi_peekl.9f \ + ddi_peeks.9f \ + ddi_poke16.9f \ + ddi_poke32.9f \ + ddi_poke64.9f \ + ddi_poke8.9f \ + ddi_pokec.9f \ + ddi_poked.9f \ + ddi_pokel.9f \ + ddi_pokes.9f \ + ddi_prop_free.9f \ + ddi_prop_get_int64.9f \ + ddi_prop_lookup_byte_array.9f \ + ddi_prop_lookup_int64_array.9f \ + ddi_prop_lookup_int_array.9f \ + ddi_prop_lookup_string.9f \ + ddi_prop_lookup_string_array.9f \ + ddi_prop_modify.9f \ + ddi_prop_remove.9f \ + ddi_prop_remove_all.9f \ + ddi_prop_undefine.9f \ + ddi_prop_update_byte_array.9f \ + ddi_prop_update_int.9f \ + ddi_prop_update_int64.9f \ + ddi_prop_update_int64_array.9f \ + ddi_prop_update_int_array.9f \ + ddi_prop_update_string.9f \ + ddi_prop_update_string_array.9f \ + ddi_ptob.9f \ + ddi_put16.9f \ + ddi_put32.9f \ + ddi_put64.9f \ + ddi_putb.9f \ + ddi_putl.9f \ + ddi_putll.9f \ + ddi_putw.9f \ + ddi_remove_intr.9f \ + ddi_remove_softintr.9f \ + ddi_rep_get16.9f \ + ddi_rep_get32.9f \ + ddi_rep_get64.9f \ + ddi_rep_getb.9f \ + ddi_rep_getl.9f \ + ddi_rep_getll.9f \ + ddi_rep_getw.9f \ + ddi_rep_put16.9f \ + ddi_rep_put32.9f \ + ddi_rep_put64.9f \ + ddi_rep_putb.9f \ + ddi_rep_putl.9f \ + ddi_rep_putll.9f \ + ddi_rep_putw.9f \ + ddi_segmap_setup.9f \ + ddi_set_driver_private.9f \ + ddi_soft_state_fini.9f \ + ddi_soft_state_free.9f \ + ddi_soft_state_init.9f \ + ddi_soft_state_zalloc.9f \ + ddi_strdup.9f \ + ddi_strtoull.9f \ + ddi_taskq_create.9f \ + ddi_taskq_destroy.9f \ + ddi_taskq_dispatch.9f \ + ddi_taskq_resume.9f \ + ddi_taskq_suspend.9f \ + ddi_taskq_wait.9f \ + ddi_trigger_softintr.9f \ + ddi_umem_free.9f \ + ddi_umem_unlock.9f \ + ddi_unmap_regs.9f \ + desballoc.9f \ + dev_err.9f \ + devmap_load.9f \ + devmap_umem_setup.9f \ + dlerrorack.9f \ + dlokack.9f \ + dlphysaddrack.9f \ + dluderrorind.9f \ + firmware_close.9f \ + firmware_free.9f \ + firmware_get_size.9f \ + firmware_malloc.9f \ + firmware_open.9f \ + firmware_read.9f \ + free_pktiopb.9f \ + gld_intr.9f \ + gld_mac_alloc.9f \ + gld_mac_free.9f \ + gld_recv.9f \ + gld_register.9f \ + gld_sched.9f \ + gld_unregister.9f \ + id32_free.9f \ + id32_lookup.9f \ + id_alloc.9f \ + id_alloc_nosleep.9f \ + id_alloc_specific_nosleep.9f \ + id_allocff.9f \ + id_allocff_nosleep.9f \ + id_free.9f \ + id_space_create.9f \ + id_space_destroy.9f \ + id_space_extend.9f \ + inl.9f \ + intro.9f \ + inw.9f \ + kmem_cache_alloc.9f \ + kmem_cache_destroy.9f \ + kmem_cache_free.9f \ + kmem_cache_set_move.9f \ + kmem_free.9f \ + kmem_zalloc.9f \ + kstat_named_setstr.9f \ + kstat_runq_back_to_waitq.9f \ + kstat_runq_enter.9f \ + kstat_runq_exit.9f \ + kstat_waitq_enter.9f \ + kstat_waitq_exit.9f \ + kstat_waitq_to_runq.9f \ + ldi_awrite.9f \ + ldi_close.9f \ + ldi_get_devid.9f \ + ldi_get_minor_name.9f \ + ldi_get_otyp.9f \ + ldi_getmsg.9f \ + ldi_ident_from_dip.9f \ + ldi_ident_from_stream.9f \ + ldi_ident_release.9f \ + ldi_open_by_devid.9f \ + ldi_open_by_name.9f \ + ldi_prop_get_int64.9f \ + ldi_prop_lookup_byte_array.9f \ + ldi_prop_lookup_int64_array.9f \ + ldi_prop_lookup_string.9f \ + ldi_prop_lookup_string_array.9f \ + ldi_write.9f \ + list_destroy.9f \ + list_head.9f \ + list_insert_after.9f \ + list_insert_before.9f \ + list_insert_head.9f \ + list_insert_tail.9f \ + list_is_empty.9f \ + list_link_active.9f \ + list_link_init.9f \ + list_link_replace.9f \ + list_move_tail.9f \ + list_next.9f \ + list_prev.9f \ + list_remove.9f \ + list_remove_head.9f \ + list_remove_tail.9f \ + list_tail.9f \ + mac_fini_ops.9f \ + mac_free.9f \ + mac_hcksum_set.9f \ mac_prop_info_set_default_link_flowctrl.9f \ mac_prop_info_set_default_str.9f \ mac_prop_info_set_default_uint32.9f \ @@ -1225,6 +1234,13 @@ MANLINKS= AVL_NEXT.9f \ usb_set_alt_if.9f \ usb_set_cfg.9f \ usb_unregister_hotplug_cbs.9f \ + usba_free_hcdi_ops.9f \ + usba_hcdi_unregister.9f \ + usba_hubdi_close.9f \ + usba_hubdi_ioctl.9f \ + usba_hubdi_open.9f \ + usba_hubdi_root_hub_power.9f \ + usba_hubdi_unbind_root_hub.9f \ va_copy.9f \ va_end.9f \ va_start.9f \ @@ -2104,12 +2120,25 @@ usb_pipe_open.9f := LINKSRC = usb_pipe_xopen.9f usb_unregister_hotplug_cbs.9f := LINKSRC = usb_register_hotplug_cbs.9f +usba_free_hcdi_ops.9f := LINKSRC = usba_alloc_hcdi_ops.9f + +usba_hcdi_unregister.9f := LINKSRC = usba_hcdi_register.9f + +usba_hubdi_close.9f := LINKSRC = usba_hubdi_cb_ops.9f +usba_hubdi_ioctl.9f := LINKSRC = usba_hubdi_cb_ops.9f +usba_hubdi_open.9f := LINKSRC = usba_hubdi_cb_ops.9f + +usba_hubdi_root_hub_power.9f := LINKSRC = usba_hubdi_dev_ops.9f + +usba_hubdi_unbind_root_hub.9f := LINKSRC = usba_hubdi_bind_root_hub.9f + + va_copy.9f := LINKSRC = va_arg.9f va_end.9f := LINKSRC = va_arg.9f va_start.9f := LINKSRC = va_arg.9f vmem_xalloc.9f := LINKSRC = vmem_alloc.9f -vmem_free.9f := LINKSRC = vmem_alloc.9f +vmem_free.9f := LINKSRC = vmem_alloc.9f vmem_xfree.9f := LINKSRC = vmem_alloc.9f vmem_xcreate.9f := LINKSRC = vmem_create.9f diff --git a/usr/src/man/man9f/kmem_alloc.9f b/usr/src/man/man9f/kmem_alloc.9f index 9c4f8ccb0c..201544b57c 100644 --- a/usr/src/man/man9f/kmem_alloc.9f +++ b/usr/src/man/man9f/kmem_alloc.9f @@ -129,5 +129,8 @@ uninitialized kernel memory should be handled carefully. For example, never .SH NOTES .sp .LP -\fBkmem_alloc(0\fR, \fIflag\fR\fB)\fR always returns \fINULL\fR. -\fBkmem_free(NULL, 0)\fR is legal. +\fBkmem_alloc(0\fR, \fIflag\fR\fB)\fR always returns \fINULL\fR, but +if \fBKM_SLEEP\fR is set, this behavior is considered to be deprecated; +the system may be configured to explicitly panic in this case in lieu +of returning \fINULL\fR. +\fBkmem_free(NULL, 0)\fR is legal, however. diff --git a/usr/src/man/man9f/usba_alloc_hcdi_ops.9f b/usr/src/man/man9f/usba_alloc_hcdi_ops.9f new file mode 100644 index 0000000000..9f355ef031 --- /dev/null +++ b/usr/src/man/man9f/usba_alloc_hcdi_ops.9f @@ -0,0 +1,77 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd May 7, 2016 +.Dt USBA_ALLOC_HCDI_OPS 9F +.Os +.Sh NAME +.Nm usba_alloc_hcdi_ops , +.Nm usba_free_hcdi_ops +.Nd allocate and free USB HCD interface operations structure +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft "usba_hcdi_ops_t *" +.Fo usba_alloc_hcdi_ops +.Fa void +.Fc +.Ft void +.Fo usba_free_hcdi_ops +.Fa "usba_hcdi_ops_t *ops" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMATERS +.Bl -tag -width Fa +.It Fa ops +Pointer to an allocated HCD interface operations structure. +.El +.Sh DESCRIPTION +The +.Fn usba_alloc_hcdi_ops +function allocates a +.Xr usba_hcdi_ops_t 9S +structure for use for a USB HCD driver. As part of initialization, a USB +HCD driver will allocate this and fill it in. For more information on +the full lifetime of the object and when a USB HCD driver should release +the structure, see +.Xr usba_hcdi 9E . +.Pp +The +.Fn usba_free_hcdi_ops +function release the memory associated with the +.Xr usba_hcdi_ops_t 9S +structure pointed to by +.Fa ops . +Only pointers received from a call to the +.Fn usba_alloc_hcdi_ops +function should be passed to this function. +.Sh CONTEXT +These functions are generally called from kernel context during a USB +HCD driver's +.Xr attach 9E +and +.Xr detach 9E +entry points. While it is safe to call this function from user context, +it would be quite unusal to do so. +.Sh RETURN VALUES +The +.Fn usba_alloc_hcdi_ops +function always succeeds and returns a pointer to an allocation +operations structure. +.Sh SEE ALSO +.Xr usba_hcdi 9E , +.Xr usba_hcdi_ops_t 9S diff --git a/usr/src/man/man9f/usba_hcdi_cb.9f b/usr/src/man/man9f/usba_hcdi_cb.9f new file mode 100644 index 0000000000..62cdc062ee --- /dev/null +++ b/usr/src/man/man9f/usba_hcdi_cb.9f @@ -0,0 +1,145 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd Sep 16, 2016 +.Dt USBA_HCDI_CB 9F +.Os +.Sh NAME +.Nm usba_hcdi_cb +.Nd USBA transfer callback +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft void +.Fo usba_hcdi_cb +.Fa "usba_pipe_handle_data_t *ph" +.Fa "usb_opaque_t req" +.Fa "ucb_cr_t cr" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa ph +A pointer to the USBA pipe handle that was passed to the HCD driver +during a call to the +.Xr usba_hcdi_pipe_open +entry point. +.It Fa req +A pointer to the request structure that is being completed. +.It Fa cr +The completion code for the request. +.El +.Sh DESCRIPTION +The +.Fn usba_hcdi_cb +function is used when the HCD controller has completed processing a USB +transfer request, whether +successfully or not. +.Pp +The USB transfer will have been initiated by a call to +.Xr usba_hcdi_pipe_bulk_xfer 9E , +.Xr usba_hcdi_pipe_ctrl_xfer 9E , +.Xr usba_hcdi_pipe_intr_xfer 9E , +or +.Xr usba_hcdi_pipe_isoc_xfer 9E . +If the transfer initiated was a periodic transfer (certain Interrupt-IN +and Isochronous-IN transfers), then there may be more than one callback +performed over the life of the transfer. +.Pp +This function must not be used if the HCD driver returned a value +other than +.Sy USB_SUCCESS +to one of the transfer initialization functions listed above. For more +information on transfer request handling, see +.Xr usba_hcdi 9E . +.Pp +The +.Fa ph +argument corresponds to the USBA framework's pipe handle that was given +to the HCDI when the pipe was opened. See +.Xr usba_hcdi_pipe_open 9E +and +.Xr usba_hcdi 9E +for more information. +.Pp +The +.Fa req +argument is one of the four request structures, +.Xr usb_bulk_req 9S , +.Xr usb_ctrl_req 9S , +.Xr usb_intr_req 9S , +or +.Xr usb_isoc_req 9S , +which have been cast to the type +.Ft usb_oapque_t . +The caller should ensure that all appropriate members of the request +structure have been filled in. For example, if expecting data from the +device and the request has completed successfully, then that data +should be copied into the request structure's +.Xr mblk 9S +prior to handing the request structure to the +.Fn usb_hcdi_cb +function. +Similarly, the +.Xr usb_isoc_req 9S +structure's +.Sy isoc_pkt_descr +member should be filled in with the appropriate data. +.Pp +Once the request structure has been passed to the +.Fn usba_hcdi_cb +function, the HCD driver must not access the structure ever again. It +should be treated as freed memory. +.Pp +The +.Fa cr +argument us used to indicate whether the transfer was successful or not. +If +.Fa cr +is set to +.Sy USB_CR_OK +that indicates that the transfer completed successfully. This should +also be used when a permitted short transfer has occurred. Otherwise, it +should be set to one of the completion reasons. +.Ss Locking +The HCD driver should not hold its own internal locks across a call to +the +.Fn usba_hcdi_cb +function. It is possible that the driver will have once of its +.Xr usba_hcdi 9E +entry points called based on the return value specified. +.Sh CONTEXT +The +.Fn usba_hcdi_cb +function may be called from +.Sy user , +.Sy kernel , +or +.Sy interrupt +context. +.Sh SEE ALSO +.Xr usba_hcdi 9E , +.Xr usba_hcdi_pipe_bulk_xfer 9E , +.Xr usba_hcdi_pipe_ctrl_xfer 9E , +.Xr usba_hcdi_pipe_intr_xfer 9E , +.Xr usba_hcdi_pipe_isoc_xfer 9E , +.Xr usba_hcdi_pipe_open 9E , +.Xr mblk 9S , +.Xr usb_bulk_req 9S , +.Xr usb_ctrl_req 9S , +.Xr usb_intr_req 9S , +.Xr usb_isoc_req 9S diff --git a/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f b/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f new file mode 100644 index 0000000000..976c8c8d37 --- /dev/null +++ b/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f @@ -0,0 +1,115 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd May 10, 2016 +.Dt USBA_HCDI_DUP_INTER_REQ 9F +.Os +.Sh NAME +.Nm usba_hcdi_dup_intr_req +.Nd duplicate an interrupt request +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft usb_intr_req_t * +.Fo usba_hcdi_dup_intr_req +.Fa "dev_info_t *dip" +.Fa "usb_intr_req_t *irqp" +.Fa "size_t size" +.Fa "usb_flags_t flags" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa dip +A pointer to the HCD driver's +.Sy dev_info +structure. +.It Fa irqp +A pointer to the USB interrupt request which will be duplicated. +.It Fa size +The number of bytes in the allocated data block +.Sy mblk_t . +.It Fa flags +Flags which describe how allocations should be performed. Valid flags +are: +.Bl -tag -width Sy +.It Sy USB_FLAGS_NOSLEEP +Do not block waiting for memory. If memory is not available the allocation +will fail. +.It Sy USB_FLAGS_SLEEP +Perform a blocking allocation. If memory is not available, the function +will wait until memory is made available. +.Pp +Note, the request may still fail even if +.Sy USB_FLAGS_SLEEP +is specified. +.El +.El +.Sh DESCRIPTION +The +.Fn usba_hcdi_dup_intr_req +function is used to duplicate an existing interrupt request, +.Fa irqp . +.Pp +The USBA framework initiates interrupt operations through the +.Xr usba_hcdi_pipe_intr_xfer 9E +entry point. It provides an initial USB interrupt request as an argument. +When the HCD driver has interrupt data to return, it needs to duplicate +that initial interrupt request each time that it submits data through +the +.Xr usba_hcdi_cb 9F +function. In addition to duplicating the request, callers may also need +to increase the pipe handle's request count. For more information, see +.Xr usba_hcdi_pipe_intr_xfer 9E . +.Pp +The +.Fa dip +argument should correspond to the HCD driver's +.Sy dev_info_t +structure. The +.Fa irqp +pointer should correspond to the initial interrupt request. The +.Fa size +argument should describe the maximum amount of data needed for this +request. The amount of data will be dependent on the endpoint and +device. The value of +.Fa flags +should depend on the caller's context. If +.Dv USB_FLAGS_SLEEP +is passed while in interrupt context, then this function will fail. +.Sh CONTEXT +The +.Fn usba_hcdi_dup_intr_req +function may be called from +.Sy user , +.Sy kernel , +or +.Sy interrupt +context; however, when in interrupt context, the value of +.Fa flags +must be +.Sy USB_FLAGS_NOSLEEP . +.Sh RETURN VALUES +Upon successful completion, the +.Fn usba_hcdi_dup_intr_req +function returns a pointer to a duplicated interrupt request. Otherwise, +.Sy NULL +is returned to indicate that the request could not be duplicated. +.Sh SEE ALSO +.Xr usba_hcdi 9E , +.Xr usba_hcdi_pipe_intr_xfer 9E , +.Xr usba_hcdi_cb 9F diff --git a/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f b/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f new file mode 100644 index 0000000000..f8f881aa5b --- /dev/null +++ b/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f @@ -0,0 +1,111 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd Sep 16, 2016 +.Dt USBA_HCDI_DUP_ISOC_REQ 9F +.Os +.Sh NAME +.Nm usba_hcdi_dup_isoc_req +.Nd duplicate an isochronous request +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft "usb_isoc_req_t *" +.Fo usba_hcdi_dup_isoc_req +.Fa "dev_info_t *dip" +.Fa "usb_isoc_req_t *usrp" +.Fa "usb_flags_t flags" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa dip +A pointer to the HCD driver's +.Sy dev_info +structure. +.It Fa usrp +A pointer to the USB isochronous request which will be duplicated. +.It Fa flags +.Bl -tag -width Sy +.It Sy USB_FLAGS_NOSLEEP +Do not block waiting for memory. If memory is not available the allocation +will fail. +.It Sy USB_FLAGS_SLEEP +Perform a blocking allocation. If memory is not available, the function +will wait until memory is made available. +.Pp +Note, the request may still fail even if +.Sy USB_FLAGS_SLEEP +is specified. +.El +.El +.Sh DESCRIPTION +The +.Fn usba_hcdi_dup_isoc_req +function is used to duplicate an existing isochronous request, +.Fa usrp . +.Pp +When the USBA framework initiates an isochronous in transfer with the +.Xr usba_hcdi_pipe_isoc_xfer 9E +entry point, it is the HCD driver's responsibility to receive the +periodic data from the pipe. When there is data available, the HCD must +duplicate the original isochronous request and copy the available data +into the request structure's +.Fa isoc_data +member, before handing over the request structure to the USBA framework +by calling the +.Xr usba_hcdi_cb 9F +function. +.Pp +In addition to duplicating the request, it is the callers responsibility +to increase the pipe handle's request count. For more information, see +.Xr usba_hcdi_pipe_isoc_xfer 9E . +.Pp +The +.Fa dip +argument should correspond to the HCD driver's +.Sy dev_info_t +structure. The +.Fa usrp +pointer should correspond to the initial isochronous request. The +.Fa flags +member must be appropriate for the context. If +.Dv USB_FLAGS_SLEEP +is passed while in interrupt context, then this function may fail. +.Sh CONTEXT +The +.Fn usba_hcdi_dup_isoc_req +function may be called from +.Sy user , +.Sy kernel , +or +.Sy interrupt +context; however, when in interrupt context, the value of +.Fa flags +must be +.Sy USB_FLAGS_NOSLEEP . +.Sh RETURN VALUES +Upon successful completion, the +.Fn usba_hcdi_dup_isoc_req +function returns a pointer to a duplicate isochronous request. +Otherwise, +.Sy NULL +is returned to indicate that the request could not be duplicated. +.Sh SEE ALSO +.Xr usba_hcdi 9E , +.Xr usba_hcdi_pipe_isoc_xfer 9E , +.Xr usba_hcdi_cb 9F diff --git a/usr/src/man/man9f/usba_hcdi_get_device_private.9f b/usr/src/man/man9f/usba_hcdi_get_device_private.9f new file mode 100644 index 0000000000..05cf3b8ebe --- /dev/null +++ b/usr/src/man/man9f/usba_hcdi_get_device_private.9f @@ -0,0 +1,66 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd May 7, 2016 +.Dt USBA_HCDI_GET_DEVICE_PRIVATE 9F +.Os +.Sh NAME +.Nm usba_hcdi_get_device_private +.Nd get HCD per-device private value +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft void * +.Fo usba_hcdi_get_device_private +.Fa "usba_device_t *usb_device" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa usb_device +Pointer to a USB device. +.El +.Sh DESCRIPTION +The +.Fn usba_hcdi_get_device_private +function obtains the private data set by a HCD driver. This private data +is created by the HCD driver's optional entry point +.Xr usba_hcdi_device_init 9E +and is removed during the HCD driver's optional entry point +.Xr usba_hcdi_device_fini 9E . +If an HCD driver does not implement these entry points then the value +obtained by a call will always be the null pointer, +.Dv NULL . +.Pp +The framework provides no form of locking of this data and it is up to +the HCD driver to use whatever synchronization primitives it requires if +needed. +.Sh CONTEXT +The +.Fn usba_hcdi_get_device_private +function is generally called from the context of a +.Xr usba_hcdi 9E +entry point, but may be called from user, kernel, or interrupt context. +.Sh RETURN VALUES +The private data set by an HCD driver is always returned. If no such +value has been set, then +.Dv NULL +is returned. +.Sh SEE ALSO +.Xr usba_hcdi 9E , +.Xr usba_hcdi_device_fini 9E , +.Xr usba_hcdi_device_init 9E diff --git a/usr/src/man/man9f/usba_hcdi_register.9f b/usr/src/man/man9f/usba_hcdi_register.9f new file mode 100644 index 0000000000..a2bdbdb97f --- /dev/null +++ b/usr/src/man/man9f/usba_hcdi_register.9f @@ -0,0 +1,112 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd Sep 16, 2016 +.Dt USBA_HCDI_REGISTER 9F +.Os +.Sh NAME +.Nm usba_hcdi_register , +.Nm usba_hcdi_unregister +.Nd register and unregister HCD driver +.Sh SYNOPSIS +.In sys/usb/usba/hcdi.h +.Ft int +.Fo usba_hcdi_register +.Fa "usba_hcdi_register_args_t *args" +.Fa "uint_t flags" +.Fc +.Ft void +.Fo usba_hcdi_unregister +.Fa "dev_info_t *dip" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa args +A pointer to a filled out registration structure. See +.Xr usba_hcdi_register_args_t 9S +for the members to fill in. +.It Fa flags +Should be set to +.Sy 0 . +.It Fa dip +Pointer to the device's +.Sy dev_info +structure. +.El +.Sh DESCRIPTION +The +.Fn usba_hcdi_register +and +.Fn usba_hcdi_unregister +functions are used to register and unregister a USB HCDI driver from the +USBA framework. +.Pp +The +.Fn usba_hcdi_register +function is called during a device driver's +.Xr attach 9E +entry point after it has finished initializing the device. After this +function successfuly returns, device drivers should assume that the +.Xr usba_hcdi_ops 9S +functions may be called at any time. +.Pp +The +.Fn usba_hcdi_unregister +function should be called during a driver's +.Xr detach 9E +entry point after it has unbound its root hub, but before the remainder +of the device's state is torn down. After calling the +.Fn usba_hcdi_unregister +function, the driver will receive no more function calls to its +.Xr usba_hcdi_ops 9S +entry points. +.Pp +For more information on the initialization and finalization path of a +USB HCD driver, see +.Xr usba_hcdi 9E . +.Sh CONTEXT +The +.Fn usba_hcdi_register +function should only be called from a driver's +.Xr attach 9E +entry point. +.Pp +The +.Fn usba_hcdi_unregister +function should only be called frm a driver's +.Xr detach 9E +entry point. +.Sh RETURN VALUES +Upon successful completion, the +.Fn usba_hcdi_register +function returns +.Sy USB_SUCCESS . +Otherwise +.Sy USB_FAILURE +is returned to indicate that the device was not registered. +.Pp +The +.Fn usba_hcdi_unregister +function does not define any return values and always succeeds. +.Sh SEE ALSO +.Xr attach 9E , +.Xr detach 9E , +.Xr usba_hcdi 9E , +.Xr usba_hcdi_ops 9S , +.Xr usba_hcdi_register_args_t 9S diff --git a/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f b/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f new file mode 100644 index 0000000000..03b3b4a1a5 --- /dev/null +++ b/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f @@ -0,0 +1,137 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd Sep 16, 2016 +.Dt USBA_HCDI_BIND_ROOT_HUB 9F +.Os +.Sh NAME +.Nm usba_hubdi_bind_root_hub , +.Nm usba_hubdi_unbind_root_hub +.Nd bind and unbind the root USB hub +.Sh SYNOPSIS +.In sys/usb/usba/hubdi.h +.Ft int +.Fo usba_hubdi_bind_root_hub +.Fa "dev_info_t *dip" +.Fa "uchar_t *hub_descr" +.Fa "size_t descr_len" +.Fa "usb_dev_descr_t *dev_descr" +.Fc +.Ft int +.Fo usba_hubdi_unbind_root_hub +.Fa "dev_info_t *dip" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +.Bl -tag -width Fa +.It Fa dip +Pointer to the device's +.Sy dev_info +structure. +.It Fa hub_descr +Pointer to a byte array that contains the standard descriptors for a USB +Hub device. +.It Fa descr_len +The length in bytes of the +.Fa hub_descr +byte array. +.It Fa dev_descr +A filled in standard USB device descriptor. +.El +.Sh DESCRIPTION +The +.Fn usba_hubdi_bind_root_hub +and +.Fn usba_hubdi_unbind_root_hub +functions are used to bind and unbind the root USB hub that is a part of +every HCD driver. See +.Xr usba_hcdi 9E +for more information on this relationship. +.Pp +The +.Fn usba_hubdi_root_bind_driver +is used after calling the +.Xr usba_hcdi_register 9F +function during a device's +.Xr attach 9E +entry point. +.Pp +Because the root hub is generally a virtual hub, the HCD driver is +responsible for making it appear to the system as a normal USB hub. +.Pp +The contents of the +.Fa hub_descr +should be the standard USB Hub class-specific descriptor. This hub +descriptor should match a hub of a similar class of speed. For example, +with the xhci controller, a USB 3.x Hub class-specific descriptor is +used, where as for the ehci controller, a USB 2.x Hub class-specific +descriptor is used. For more information, see the USB 3.1 +specification, section 10.15.2 +.Em Class-specific Descriptors . +.Pp +Similarly, the contents of the +.Fa dev_descr +need to be a filled in USB device descriptor that indicates that the +root hub corresponds to the appropriate USB generation. For more +information on the contents, see +.Xr usb_dev_descr 9S +and the USB 3.1 specification, section 10.15.1 +.Em Standard Descriptors for Hub Class . +.Pp +The +.Fn usba_hubdi_unbind_root_hub +function is used to detach the root hub associated with the HCD driver. +This should be called during a device's +.Xr detach 9E +routine before calling +.Xr usba_hcdi_unregister . +.Pp +If a call to the +.Fn usba_hubdi_unbind_root_hub +function fails during a device's +.Xr detach 9E +function, then it should fail the call to +.Xr detach 9E . +.Sh CONTEXT +The +.Fn usba_hubdi_bind_root_hub +function should only be called during a device's +.Xr attach 9E +entry point. +.Pp +The +.Fn usba_hubdi_unbind_root_hub +function should only be called during a device's +.Xr detach 9E entry point. +.Sh RETURN VALUES +Upon successful completion, the +.Fn usba_hubdi_bind_root_hub +and +.Fn usba_hubdi_unbind_root_hub +functions return +.Sy USB_SUCCESS . +Otherwise, they return +.Sy USB_FAILURE +to indicate that they could not proceed. +.Sh SEE ALSO +.Xr attach 9E , +.Xr detach 9E , +.Xr usba_hcdi 9E , +.Xr usba_hcdi_register 9F , +.Xr usba_hcdi_unregister 9F , +.Xr usb_dev_Descr 9S diff --git a/usr/src/man/man9f/usba_hubdi_cb_ops.9f b/usr/src/man/man9f/usba_hubdi_cb_ops.9f new file mode 100644 index 0000000000..196874ad8f --- /dev/null +++ b/usr/src/man/man9f/usba_hubdi_cb_ops.9f @@ -0,0 +1,109 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd May 7, 2016 +.Dt USBA_HCDI_CB_OPS 9F +.Os +.Sh NAME +.Nm usba_hubdi_cb_ops , +.Nm usba_hubdi_open , +.Nm usba_hubdi_ioctl , +.Nm usba_hubdi_close +.Nd character device utility functions for HCD drivers +.Sh SYNOPSIS +.In sys/usb/usba/hubdi.h +.Ft int +.Fo usba_hubdi_open +.Fa "dev_info_t *dip" +.Fa "dev_t *devp" +.Fa "int flag" +.Fa "int otyp" +.Fa "cred_t *cred_p" +.Fc +.Ft int +.Fo usba_hubdi_ioctl +.Fa "dev_info_t *dip" +.Fa "dev_t dev" +.Fa "int flag" +.Fa "intptr_t arg" +.Fa "int mode" +.Fa "cred_t *cred_pp" +.Fa "int *rval_p" +.Fc +.Ft int +.Fo usba_hubdi_close +.Fa "dev_info_t *dip" +.Fa "dev_t dev" +.Fa "int flag" +.Fa "int otyp" +.Fa "cred_t *cred_p" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMATERS +.Bl -tag -width Fa +.It Fa dip +Pointer to the device's +.Sy dev_info +structure. +.El +.Pp +All other parameters are the same as the ones described and discussed in +.Xr open 9E , +.Xr ioctl 9E , +and +.Xr close 9E . +.Sh DESCRIPTION +The +.Fn usba_hubdi_open , +.Fn usba_hubdi_ioctl , +and +.Fn usba_hubdi_close +functions are functions provided for the implementation of USB HCD +drivers. USB HCD drivers are required to implemnt the +.Xr open 9E , +.Xr ioctl 9E , +and +.Xr close 9E +.Xr cb_ops 9S +functions. In each of those functions, they should use the device number +to determine number in +.Fa devp +or +.Fa dev +to determine the device's corresponding +.Sy dev_info_t . +The USB HCD driver's entry points should then call the corresponding +function described above, passing all the arguments they received +unmodified. +.Pp +The USB HCD driver's entry points should return the value returned by +the call to the corresponding USBA function. +.Sh CONTEXT +These functions should only be called from the context of a USB HCD +driver's +.Xr open 9E , +.Xr ioctl 9E , +and +.Xr close 9E +entry points. +.Sh SEE ALSO +.Xr close 9E , +.Xr ioctl 9E , +.Xr open 9E , +.Xr usb_hcdi 9E , +.Xr cb_ops 9S diff --git a/usr/src/man/man9f/usba_hubdi_dev_ops.9f b/usr/src/man/man9f/usba_hubdi_dev_ops.9f new file mode 100644 index 0000000000..a0a9530e8e --- /dev/null +++ b/usr/src/man/man9f/usba_hubdi_dev_ops.9f @@ -0,0 +1,66 @@ +.\" +.\" This file and its contents are supplied under the terms of the +.\" Common Development and Distribution License ("CDDL"), version 1.0. +.\" You may only use this file in accordance with the terms of version +.\" 1.0 of the CDDL. +.\" +.\" A full copy of the text of the CDDL should have accompanied this +.\" source. A copy of the CDDL is also available via the Internet at +.\" http://www.illumos.org/license/CDDL. +.\" +.\" +.\" Copyright 2016 Joyent, Inc. +.\" +.Dd Sep 16, 2016 +.Dt USBA_HCDI_DEV_OPS 9F +.Os +.Sh NAME +.Nm usba_hubdi_bus_ops +.Nm usba_hubdi_root_hub_power +.Nd device operations utility functions for HCD drivers +.Sh SYNOPSIS +.Ft int +.Fo usba_hubdi_root_hub_power +.Fa "dev_info_t *dip" +.Fa "int component" +.Fa "int level" +.Fc +.Sh INTERFACE LEVEL +.Sy Volatile - +illumos USB HCD private function +.Pp +This is a private function that is not part of the stable DDI. It may be +removed or changed at any time. +.Sh PARAMETERS +For the parameters of the +.Fn usba_hubdi_root_hub_power +function, see +.Xr power 9E . +.Sh DESCRIPTION +The +.Fn usba_hubdi_root_hub_power +function is a utility function for the implementation of USB HCD +drivers. USB HCD drivers that support power management, should use set +the +.Sy devo_power +member of their +.Xr dev_ops 9S +structure to the +.Fn usba_hubdi_root_hub_power +function. They should not implement their own +.Xr power 9E +function. +.Pp +In addition, drivers should pass the symbol +.Sy usba_hubdi_busops +as the +.Sy devo_bus_ops +member. It contains a properly formatted bus operations structure. +.Sh CONTEXT +This function should not be called directly, it should only be used as a +member of a device's +.Xr dev_ops 9S +structure. +.Sh SEE ALSO +.Xr power 9E , +.Xr dev_ops 9S |
