From owner-p4-projects@FreeBSD.ORG Thu Jun 25 15:03:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9538F1065676; Thu, 25 Jun 2009 15:03:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BD631065673 for ; Thu, 25 Jun 2009 15:03:38 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 37AC98FC08 for ; Thu, 25 Jun 2009 15:03:38 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5PF3cqs008386 for ; Thu, 25 Jun 2009 15:03:38 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5PF3bHh008384 for perforce@freebsd.org; Thu, 25 Jun 2009 15:03:37 GMT (envelope-from jhb@freebsd.org) Date: Thu, 25 Jun 2009 15:03:37 GMT Message-Id: <200906251503.n5PF3bHh008384@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 165166 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2009 15:03:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=165166 Change 165166 by jhb@jhb_jhbbsd on 2009/06/25 15:02:49 IFC @165164 Affected files ... .. //depot/projects/smpng/share/man/man9/Makefile#6 integrate .. //depot/projects/smpng/share/man/man9/usbdi.9#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#42 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#51 integrate .. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#30 integrate .. //depot/projects/smpng/sys/arm/mv/discovery/discovery.c#6 integrate .. //depot/projects/smpng/sys/arm/mv/kirkwood/kirkwood.c#6 integrate .. //depot/projects/smpng/sys/arm/mv/mvwin.h#2 integrate .. //depot/projects/smpng/sys/arm/mv/orion/orion.c#6 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_ipc.h#2 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#60 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#57 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#57 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#57 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#58 integrate .. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#61 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ipc.c#32 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_ipc.c#20 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-acard.c#4 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-acerlabs.c#5 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-adaptec.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-amd.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ati.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-cenatek.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-cypress.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-cyrix.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-highpoint.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-intel.c#6 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ite.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-jmicron.c#5 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-marvell.c#6 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-micron.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-national.c#2 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-netcell.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-nvidia.c#6 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-promise.c#8 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-serverworks.c#4 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-siliconimage.c#7 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-sis.c#6 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-via.c#5 integrate .. //depot/projects/smpng/sys/dev/cas/if_cas.c#2 integrate .. //depot/projects/smpng/sys/dev/cas/if_casvar.h#2 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#24 integrate .. //depot/projects/smpng/sys/dev/drm/drm_irq.c#12 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82540.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82541.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82571.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82575.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82575.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_api.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_defines.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_hw.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_ich8lan.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_ich8lan.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_mac.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_osdep.c#3 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_phy.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_phy.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_regs.h#4 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.c#9 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.h#5 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.c#9 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.h#4 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#33 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem.c#39 integrate .. //depot/projects/smpng/sys/dev/gem/if_gemvar.h#18 integrate .. //depot/projects/smpng/sys/dev/hptmv/atapi.h#4 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.h#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_82598.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_82599.c#2 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_api.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_api.h#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_common.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_osdep.h#5 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_phy.c#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_phy.h#6 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe_type.h#6 integrate .. //depot/projects/smpng/sys/dev/mfi/mfi.c#27 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#29 integrate .. //depot/projects/smpng/sys/dev/mxge/if_mxge.c#31 integrate .. //depot/projects/smpng/sys/dev/mxge/if_mxge_var.h#18 integrate .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#35 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zyd.c#10 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#7 integrate .. //depot/projects/smpng/sys/geom/linux_lvm/g_linux_lvm.c#2 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#4 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfs_iops.h#3 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#5 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/xfs_rw.h#3 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/xfs_vnodeops.c#5 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#64 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_ipc.c#14 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#94 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#128 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#74 integrate .. //depot/projects/smpng/sys/kern/kern_switch.c#74 integrate .. //depot/projects/smpng/sys/kern/subr_pcpu.c#14 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#93 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#99 integrate .. //depot/projects/smpng/sys/kern/systrace_args.c#19 integrate .. //depot/projects/smpng/sys/kern/sysv_ipc.c#19 integrate .. //depot/projects/smpng/sys/kern/sysv_msg.c#41 integrate .. //depot/projects/smpng/sys/kern/sysv_sem.c#54 integrate .. //depot/projects/smpng/sys/kern/sysv_shm.c#46 integrate .. //depot/projects/smpng/sys/modules/igb/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/ixgbe/Makefile#5 integrate .. //depot/projects/smpng/sys/net/if_epair.c#1 branch .. //depot/projects/smpng/sys/net/if_media.h#26 integrate .. //depot/projects/smpng/sys/net/if_spppsubr.c#42 integrate .. //depot/projects/smpng/sys/net/if_stf.c#49 integrate .. //depot/projects/smpng/sys/netatalk/aarp.c#27 integrate .. //depot/projects/smpng/sys/netatalk/at_control.c#18 integrate .. //depot/projects/smpng/sys/netatalk/at_var.h#8 integrate .. //depot/projects/smpng/sys/netatalk/ddp_input.c#21 integrate .. //depot/projects/smpng/sys/netatalk/ddp_output.c#17 integrate .. //depot/projects/smpng/sys/netatalk/ddp_pcb.c#14 integrate .. //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#34 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#73 integrate .. //depot/projects/smpng/sys/netinet/in.c#57 integrate .. //depot/projects/smpng/sys/netinet/in_gif.c#29 integrate .. //depot/projects/smpng/sys/netinet/in_mcast.c#15 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#99 integrate .. //depot/projects/smpng/sys/netinet/in_var.h#28 integrate .. //depot/projects/smpng/sys/netinet/ip_carp.c#35 integrate .. //depot/projects/smpng/sys/netinet/ip_dummynet.h#27 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#52 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#104 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dummynet.c#4 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#84 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#59 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#38 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#65 integrate .. //depot/projects/smpng/sys/netinet6/in6_src.c#42 integrate .. //depot/projects/smpng/sys/netinet6/in6_var.h#23 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#66 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#56 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#34 integrate .. //depot/projects/smpng/sys/netinet6/vinet6.h#9 integrate .. //depot/projects/smpng/sys/netipsec/key.c#39 integrate .. //depot/projects/smpng/sys/netipx/ipx.c#17 integrate .. //depot/projects/smpng/sys/netipx/ipx_if.h#10 integrate .. //depot/projects/smpng/sys/netipx/ipx_input.c#24 integrate .. //depot/projects/smpng/sys/netipx/ipx_outputfl.c#11 integrate .. //depot/projects/smpng/sys/netipx/ipx_pcb.c#24 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#90 integrate .. //depot/projects/smpng/sys/powerpc/conf/MPC85XX#10 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mp_machdep.c#14 integrate .. //depot/projects/smpng/sys/rpc/clnt_rc.c#7 integrate .. //depot/projects/smpng/sys/rpc/rpcsec_gss/rpcsec_gss.c#2 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#96 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#79 integrate .. //depot/projects/smpng/sys/sys/acl.h#15 integrate .. //depot/projects/smpng/sys/sys/ata.h#31 integrate .. //depot/projects/smpng/sys/sys/ipc.h#12 integrate .. //depot/projects/smpng/sys/sys/msg.h#8 integrate .. //depot/projects/smpng/sys/sys/param.h#150 integrate .. //depot/projects/smpng/sys/sys/priv.h#22 integrate .. //depot/projects/smpng/sys/sys/sched.h#33 integrate .. //depot/projects/smpng/sys/sys/sem.h#11 integrate .. //depot/projects/smpng/sys/sys/shm.h#13 integrate .. //depot/projects/smpng/sys/sys/syscall.h#92 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#92 integrate .. //depot/projects/smpng/sys/sys/sysctl.h#61 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#96 integrate .. //depot/projects/smpng/sys/sys/unistd.h#18 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.355 2009/06/09 23:38:19 imp Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.356 2009/06/24 17:01:17 thompsa Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -1210,55 +1210,58 @@ uidinfo.9 uihashinit.9 \ uidinfo.9 uihold.9 MLINKS+=uio.9 uiomove.9 -MLINKS+=usbdi.9 usbd_abort_default_pipe.9 \ - usbdi.9 usbd_abort_pipe.9 \ - usbdi.9 usbd_alloc_buffer.9 \ - usbdi.9 usbd_alloc_xfer.9 \ - usbdi.9 usbd_clear_endpoint_stall.9 \ - usbdi.9 usbd_clear_endpoint_stall_async.9 \ - usbdi.9 usbd_clear_endpoint_toggle.9 \ - usbdi.9 usbd_close_pipe.9 \ - usbdi.9 usbd_device2interface_handle.9 \ +MLINKS+=usbdi.9 usb_fifo_alloc_buffer.9 \ + usbdi.9 usb_fifo_attach.9 \ + usbdi.9 usb_fifo_detach.9 \ + usbdi.9 usb_fifo_free_buffer.9 \ + usbdi.9 usb_fifo_get_data.9 \ + usbdi.9 usb_fifo_get_data_buffer.9 \ + usbdi.9 usb_fifo_get_data_error.9 \ + usbdi.9 usb_fifo_get_data_linear.9 \ + usbdi.9 usb_fifo_put_bytes_max.9 \ + usbdi.9 usb_fifo_put_data.9 \ + usbdi.9 usb_fifo_put_data_buffer.9 \ + usbdi.9 usb_fifo_put_data_error.9 \ + usbdi.9 usb_fifo_put_data_linear.9 \ + usbdi.9 usb_fifo_reset.9 \ + usbdi.9 usb_fifo_softc.9 \ + usbdi.9 usb_fifo_wakeup.9 \ usbdi.9 usbd_do_request.9 \ - usbdi.9 usbd_do_request_async.9 \ usbdi.9 usbd_do_request_flags.9 \ - usbdi.9 usbd_do_request_flags_pipe.9 \ - usbdi.9 usbd_endpoint_count.9 \ usbdi.9 usbd_errstr.9 \ - usbdi.9 usbd_find_edesc.9 \ - usbdi.9 usbd_find_idesc.9 \ - usbdi.9 usbd_free_buffer.9 \ - usbdi.9 usbd_free_xfer.9 \ - usbdi.9 usbd_get_buffer.9 \ - usbdi.9 usbd_get_config.9 \ - usbdi.9 usbd_get_config_desc.9 \ - usbdi.9 usbd_get_config_desc_full.9 \ - usbdi.9 usbd_get_config_descriptor.9 \ - usbdi.9 usbd_get_device_descriptor.9 \ - usbdi.9 usbd_get_endpoint_descriptor.9 \ - usbdi.9 usbd_get_interface_altindex.9 \ - usbdi.9 usbd_get_interface_descriptor.9 \ - usbdi.9 usbd_get_no_alts.9 \ - usbdi.9 usbd_get_quirks.9 \ - usbdi.9 usbd_get_speed.9 \ - usbdi.9 usbd_get_string.9 \ - usbdi.9 usbd_get_string_desc.9 \ - usbdi.9 usbd_get_xfer_status.9 \ - usbdi.9 usbd_interface2device_handle.9 \ - usbdi.9 usbd_interface2endpoint_descriptor.9 \ - usbdi.9 usbd_interface_count.9 \ - usbdi.9 usbd_open_pipe.9 \ - usbdi.9 usbd_open_pipe_intr.9 \ - usbdi.9 usbd_pipe2device_handle.9 \ - usbdi.9 usbd_set_config_index.9 \ - usbdi.9 usbd_set_config_no.9 \ - usbdi.9 usbd_set_interface.9 \ - usbdi.9 usbd_setup_default_xfer.9 \ - usbdi.9 usbd_setup_isoc_xfer.9 \ - usbdi.9 usbd_setup_xfer.9 \ - usbdi.9 usbd_sync_transfer.9 \ - usbdi.9 usbd_transfer.9 \ - usbdi.9 usb_find_desc.9 + usbdi.9 usbd_lookup_id_by_info.9 \ + usbdi.9 usbd_lookup_id_by_uaa.9 \ + usbdi.9 usbd_transfer_clear_stall.9 \ + usbdi.9 usbd_transfer_drain.9 \ + usbdi.9 usbd_transfer_pending.9 \ + usbdi.9 usbd_transfer_poll.9 \ + usbdi.9 usbd_transfer_setup.9 \ + usbdi.9 usbd_transfer_start.9 \ + usbdi.9 usbd_transfer_stop.9 \ + usbdi.9 usbd_transfer_submit.9 \ + usbdi.9 usbd_transfer_unsetup.9 \ + usbdi.9 usbd_xfer_clr_flag.9 \ + usbdi.9 usbd_xfer_frame_data.9 \ + usbdi.9 usbd_xfer_frame_len.9 \ + usbdi.9 usbd_xfer_get_frame.9 \ + usbdi.9 usbd_xfer_get_priv.9 \ + usbdi.9 usbd_xfer_is_stalled.9 \ + usbdi.9 usbd_xfer_max_framelen.9 \ + usbdi.9 usbd_xfer_max_frames.9 \ + usbdi.9 usbd_xfer_max_len.9 \ + usbdi.9 usbd_xfer_set_flag.9 \ + usbdi.9 usbd_xfer_set_frame_data.9 \ + usbdi.9 usbd_xfer_set_frame_len.9 \ + usbdi.9 usbd_xfer_set_frame_offset.9 \ + usbdi.9 usbd_xfer_set_frames.9 \ + usbdi.9 usbd_xfer_set_interval.9 \ + usbdi.9 usbd_xfer_set_priv.9 \ + usbdi.9 usbd_xfer_set_stall.9 \ + usbdi.9 usbd_xfer_set_timeout.9 \ + usbdi.9 usbd_xfer_softc.9 \ + usbdi.9 usbd_xfer_state.9 \ + usbdi.9 usbd_xfer_state.9 \ + usbdi.9 usbd_xfer_status.9 MLINKS+=vcount.9 count_dev.9 MLINKS+=vfsconf.9 vfs_modevent.9 \ vfsconf.9 vfs_register.9 \ ==== //depot/projects/smpng/share/man/man9/usbdi.9#2 (text+ko) ==== @@ -23,1231 +23,616 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/usbdi.9,v 1.2 2006/12/14 14:33:13 mpp Exp $ -.Dd December 30, 2005 +.\" $FreeBSD: src/share/man/man9/usbdi.9,v 1.3 2009/06/24 17:01:17 thompsa Exp $ +.Dd June 24, 2009 .Os .Dt USBDI 9 .Sh NAME -.Nm usb_detach_wait , -.Nm usb_detach_wakeup , -.Nm usb_find_desc , -.Nm usbd_abort_default_pipe , -.Nm usbd_abort_pipe , -.Nm usbd_alloc_buffer , -.Nm usbd_alloc_xfer , -.Nm usbd_bulk_transfer , -.Nm usbd_clear_endpoint_stall , -.Nm usbd_clear_endpoint_stall_async , -.Nm usbd_clear_endpoint_toggle , -.Nm usbd_close_pipe , -.Nm usbd_device2interface_handle , -.Nm usbd_devinfo , +.Nm usb_fifo_alloc_buffer , +.Nm usb_fifo_attach , +.Nm usb_fifo_detach , +.Nm usb_fifo_free_buffer , +.Nm usb_fifo_get_data , +.Nm usb_fifo_get_data_buffer , +.Nm usb_fifo_get_data_error , +.Nm usb_fifo_get_data_linear , +.Nm usb_fifo_put_bytes_max , +.Nm usb_fifo_put_data , +.Nm usb_fifo_put_data_buffer , +.Nm usb_fifo_put_data_error , +.Nm usb_fifo_put_data_linear , +.Nm usb_fifo_reset , +.Nm usb_fifo_softc , +.Nm usb_fifo_wakeup , .Nm usbd_do_request , -.Nm usbd_do_request_async , .Nm usbd_do_request_flags , -.Nm usbd_do_request_flags_pipe , -.Nm usbd_dopoll , -.Nm usbd_endpoint_count , .Nm usbd_errstr , -.Nm usbd_fill_deviceinfo , -.Nm usbd_find_edesc , -.Nm usbd_find_idesc , -.Nm usbd_free_buffer , -.Nm usbd_free_xfer , -.Nm usbd_get_buffer , -.Nm usbd_get_config , -.Nm usbd_get_config_desc , -.Nm usbd_get_config_desc_full , -.Nm usbd_get_config_descriptor , -.Nm usbd_get_device_descriptor , -.Nm usbd_get_endpoint_descriptor , -.Nm usbd_get_interface_altindex , -.Nm usbd_get_interface_descriptor , -.Nm usbd_get_no_alts , -.Nm usbd_get_quirks , -.Nm usbd_get_speed , -.Nm usbd_get_string , -.Nm usbd_get_string_desc , -.Nm usbd_get_xfer_status , -.Nm usbd_interface2device_handle , -.Nm usbd_interface2endpoint_descriptor , -.Nm usbd_interface_count , -.Nm usbd_intr_transfer , -.Nm usbd_open_pipe , -.Nm usbd_open_pipe_intr , -.Nm usbd_pipe2device_handle , -.Nm usbd_ratecheck , -.Nm usbd_set_config_index , -.Nm usbd_set_config_no , -.Nm usbd_set_interface , -.Nm usbd_set_polling , -.Nm usbd_setup_default_xfer , -.Nm usbd_setup_isoc_xfer , -.Nm usbd_setup_xfer , -.Nm usbd_sync_transfer , -.Nm usbd_transfer +.Nm usbd_lookup_id_by_info , +.Nm usbd_lookup_id_by_uaa , +.Nm usbd_transfer_clear_stall , +.Nm usbd_transfer_drain , +.Nm usbd_transfer_pending , +.Nm usbd_transfer_poll , +.Nm usbd_transfer_setup , +.Nm usbd_transfer_start , +.Nm usbd_transfer_stop , +.Nm usbd_transfer_submit , +.Nm usbd_transfer_unsetup , +.Nm usbd_xfer_clr_flag , +.Nm usbd_xfer_frame_data , +.Nm usbd_xfer_frame_len , +.Nm usbd_xfer_get_frame , +.Nm usbd_xfer_get_priv , +.Nm usbd_xfer_is_stalled , +.Nm usbd_xfer_max_framelen , +.Nm usbd_xfer_max_frames , +.Nm usbd_xfer_max_len , +.Nm usbd_xfer_set_flag , +.Nm usbd_xfer_set_frame_data , +.Nm usbd_xfer_set_frame_len , +.Nm usbd_xfer_set_frame_offset , +.Nm usbd_xfer_set_frames , +.Nm usbd_xfer_set_interval , +.Nm usbd_xfer_set_priv , +.Nm usbd_xfer_set_stall , +.Nm usbd_xfer_set_timeout , +.Nm usbd_xfer_softc , +.Nm usbd_xfer_state , +.Nm usbd_xfer_state , +.Nm usbd_xfer_status .Nd Universal Serial Bus driver programming interface .Sh SYNOPSIS .In dev/usb/usb.h .In dev/usb/usbdi.h .In dev/usb/usbdi_util.h -.Pp -.Ft void -.Fn usb_detach_wait "device_ptr_t dv" -.Ft void -.Fn usb_detach_wakeup "device_ptr_t dv" -.Ft "const usb_descriptor_t *" -.Fn usb_find_desc "usbd_device_handle dev" "int type" "int subtype" -.Ft usbd_status -.Fn usbd_abort_default_pipe "usbd_device_handle dev" -.Ft usbd_status -.Fn usbd_abort_pipe "usbd_pipe_handle pipe" -.Ft "void *" -.Fn usbd_alloc_buffer "usbd_xfer_handle xfer" "u_int32_t size" -.Ft usbd_xfer_handle -.Fn usbd_alloc_xfer "usbd_device_handle dev" -.Ft usbd_status -.Fo usbd_bulk_transfer -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_pipe_handle pipe" -.Fa "u_int16_t flags" -.Fa "u_int32_t timeout" -.Fa "void *buf" -.Fa "u_int32_t *size" -.Fa "char *lbl" -.Fc -.Ft usbd_status -.Fn usbd_clear_endpoint_stall "usbd_pipe_handle pipe" -.Ft usbd_status -.Fn usbd_clear_endpoint_stall_async "usbd_pipe_handle" -.Ft void -.Fn usbd_clear_endpoint_toggle "usbd_pipe_handle pipe" -.Ft usbd_status -.Fn usbd_close_pipe "usbd_pipe_handle pipe" -.Ft usbd_status -.Fo usbd_device2interface_handle -.Fa "usbd_device_handle dev" -.Fa "u_int8_t ifaceno" -.Fa "usbd_interface_handle *iface" -.Fc -.Ft void -.Fn usbd_devinfo "usbd_device_handle dev" "int showclass" "char *cp" -.Ft usbd_status -.Fo usbd_do_request -.Fa "usbd_device_handle dev" -.Fa "usb_device_request_t *req" -.Fa "void *data" -.Fc -.Ft usbd_status -.Fo usbd_do_request_async -.Fa "usbd_device_handle dev" -.Fa "usb_device_request_t *req" -.Fa "void *data" -.Fc -.Ft usbd_status -.Fo usbd_do_request_flags -.Fa "usbd_device_handle dev" -.Fa "usb_device_request_t *req" -.Fa "void *data" -.Fa "u_int16_t flags" -.Fa "int *actlen" -.Fa "u_int32_t timo" -.Fc -.Ft usbd_status -.Fo usbd_do_request_flags_pipe -.Fa "usbd_device_handle dev" -.Fa "usbd_pipe_handle pipe" -.Fa "usb_device_request_t *req" -.Fa "void *data" -.Fa "u_int16_t flags" -.Fa "int *actlen" -.Fa "u_int32_t timeout" -.Fc -.Ft void -.Fn usbd_dopoll "usbd_interface_handle iface" -.Ft usbd_status -.Fn usbd_endpoint_count "usbd_interface_handle iface" "u_int8_t *count" -.Ft "const char *" -.Fn usbd_errstr "usbd_status err" -.Ft void -.Fo usbd_fill_deviceinfo -.Fa "usbd_device_handle dev" -.Fa "struct usb_device_info *di" -.Fa "int usedev" -.Fc -.Ft "usb_endpoint_descriptor_t *" -.Fo usbd_find_edesc -.Fa "usb_config_descriptor_t *cd" -.Fa "int ifaceidx" -.Fa "int altidx" -.Fa "int endptidx" -.Fc -.Ft "usb_interface_descriptor_t *" -.Fn usbd_find_idesc "usb_config_descriptor_t *cd" "int ifaceidx" "int altidx" -.Ft void -.Fn usbd_free_buffer "usbd_xfer_handle xfer" -.Ft usbd_status -.Fn usbd_free_xfer "usbd_xfer_handle xfer" -.Ft "void *" -.Fn usbd_get_buffer "usbd_xfer_handle xfer" -.Ft usbd_status -.Fn usbd_get_config "usbd_device_handle dev" "u_int8_t *conf" -.Ft usbd_status -.Fo usbd_get_config_desc -.Fa "usbd_device_handle dev" -.Fa "int confidx" -.Fa "usb_config_descriptor_t *d" -.Fc -.Ft usbd_status -.Fo usbd_get_config_desc_full -.Fa "usbd_device_handle dev" -.Fa "int conf" -.Fa "void *d" -.Fa "int size" -.Fc -.Ft "usb_config_descriptor_t *" -.Fn usbd_get_config_descriptor "usbd_device_handle dev" -.Ft "usb_device_descriptor_t *" -.Fn usbd_get_device_descriptor "usbd_device_handle dev" -.Ft "usb_endpoint_descriptor_t *" -.Fo usbd_get_endpoint_descriptor -.Fa "usbd_interface_handle iface" -.Fa "u_int8_t address" -.Fc -.Ft int -.Fn usbd_get_interface_altindex "usbd_interface_handle iface" -.Ft "usb_interface_descriptor_t *" -.Fn usbd_get_interface_descriptor "usbd_interface_handle iface" -.Ft int -.Fn usbd_get_no_alts "usb_config_descriptor_t *cdesc" "int ifaceno" -.Ft "const struct usbd_quirks *" -.Fn usbd_get_quirks "usbd_device_handle dev" -.Ft int -.Fn usbd_get_speed "usbd_device_handle dev" -.Ft usbd_status -.Fn usbd_get_string "usbd_device_handle dev" "int si" "char *buf" -.Ft usbd_status -.Fo usbd_get_string_desc -.Fa "usbd_device_handle dev" -.Fa "int sindex" -.Fa "int langid" -.Fa "usb_string_descriptor_t *sdesc" -.Fa "int *sizep" -.Fc -.Ft void -.Fo usbd_get_xfer_status -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_private_handle *priv" -.Fa "void **buffer" -.Fa "u_int32_t *count" -.Fa "usbd_status *status" -.Fc -.Ft void -.Fo usbd_interface2device_handle -.Fa "usbd_interface_handle iface" -.Fa "usbd_device_handle *dev" -.Fc -.Ft "usb_endpoint_descriptor_t *" -.Fo usbd_interface2endpoint_descriptor -.Fa "usbd_interface_handle iface" -.Fa "u_int8_t index" -.Fc -.Ft usbd_status -.Fn usbd_interface_count "usbd_device_handle dev" "u_int8_t *count" -.Ft usbd_status -.Fo usbd_intr_transfer -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_pipe_handle pipe" -.Fa "u_int16_t flags" -.Fa "u_int32_t timeout" -.Fa "void *buf" -.Fa "u_int32_t *size" -.Fa "char *lbl" -.Fc -.Ft usbd_status -.Fo usbd_open_pipe -.Fa "usbd_interface_handle iface" -.Fa "u_int8_t address" -.Fa "u_int8_t flags" -.Fa "usbd_pipe_handle *pipe" -.Fc -.Ft usbd_status -.Fo usbd_open_pipe_intr -.Fa "usbd_interface_handle iface" -.Fa "u_int8_t address" -.Fa "u_int8_t flags" -.Fa "usbd_pipe_handle *pipe" -.Fa "usbd_private_handle priv" -.Fa "void *buffer" -.Fa "u_int32_t len" -.Fa "usbd_callback cb" -.Fa "int ival" -.Fc -.Ft usbd_device_handle -.Fn usbd_pipe2device_handle "usbd_pipe_handle pipe" -.Ft int -.Fn usbd_ratecheck "struct timeval *last" -.Ft usbd_status -.Fn usbd_set_config_index "usbd_device_handle dev" "int index" "int msg" -.Ft usbd_status -.Fn usbd_set_config_no "usbd_device_handle dev" "int no" "int msg" -.Ft usbd_status -.Fn usbd_set_interface "usbd_interface_handle iface" "int altidx" -.Ft void -.Fn usbd_set_polling "usbd_device_handle dev" "int on" -.Ft void -.Fo usbd_setup_default_xfer -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_device_handle dev" -.Fa "usbd_private_handle priv" -.Fa "u_int32_t timeout" -.Fa "usb_device_request_t *req" -.Fa "void *buffer" -.Fa "u_int32_t length" -.Fa "u_int16_t flags" -.Fa "usbd_callback callback" -.Fc -.Ft void -.Fo usbd_setup_isoc_xfer -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_pipe_handle pipe" -.Fa "usbd_private_handle priv" -.Fa "u_int16_t *frlengths" -.Fa "u_int32_t nframes" -.Fa "u_int16_t flags" -.Fa "usbd_callback callback" -.Fc -.Ft void -.Fo usbd_setup_xfer -.Fa "usbd_xfer_handle xfer" -.Fa "usbd_pipe_handle pipe" -.Fa "usbd_private_handle priv" -.Fa "void *buffer" -.Fa "u_int32_t length" -.Fa "u_int16_t flags" -.Fa "u_int32_t timeout" -.Fa "usbd_callback callback" -.Fc -.Ft usbd_status -.Fn usbd_sync_transfer "usbd_xfer_handle xfer" -.Ft usbd_status -.Fn usbd_transfer "usbd_xfer_handle xfer" .Sh DESCRIPTION The Universal Serial Bus (USB) driver programming interface provides USB peripheral drivers with a host controller independent API for controlling and communicating with USB peripherals. +The +.Nm usb +module supports both USB Host and USB Device side mode. +. +.Sh USB KERNEL PROGRAMMING +Here is a list of commonly used functions: .Pp -Typically, drivers will first use some combination of the functions -.Fn usbd_set_config_no , -.Fn usbd_get_config_descriptor , -.Fn usbd_set_interface , -.Fn usbd_get_interface_descriptor , -.Fn usbd_device2interface_handle , -.Fn usbd_endpoint_count -and -.Fn usbd_interface2endpoint_descriptor -to query the device's properties and prepare it for use. -Drivers can then perform requests on the USB control pipe using -.Fn usbd_do_request , -they can open pipes using the functions -.Fn usbd_open_pipe -and -.Fn usbd_open_pipe_intr , -and perform transfers over these pipes using -.Fn usbd_alloc_xfer , -.Fn usbd_setup_xfer -and -.Fn usbd_transfer . -Finally, the functions -.Fn usbd_abort_pipe , -.Fn usbd_close_pipe -and -.Fn usbd_free_xfer -are used to cancel outstanding transfers, close open pipes and deallocate -transfer structures. +. +.Ft "usb_error_t" +.Fo "usbd_transfer_setup" +.Fa "udev" +.Fa "ifaces" +.Fa "pxfer" +.Fa "setup_start" +.Fa "n_setup" +.Fa "priv_sc" +.Fa "priv_mtx" +.Fc +. .Pp -The -.Fn usbd_get_device_descriptor -function returns a pointer to the USB device descriptor for -.Fa dev . -See -.Sx "USB Descriptors" -below for information about the USB device descriptor. +. +.Ft "void" +.Fo "usbd_transfer_unsetup" +.Fa "pxfer" +.Fa "n_setup" +.Fc +. .Pp -The -.Fn usbd_get_config_desc -function retrieves the specified configuration descriptor from the device. -The -.Fa confidx -parameter specifies the configuration descriptor index, which must be less -than the -.Fa bNumConfigurations -value in the device descriptor. -The function -.Fn usbd_get_config_desc_full -retrieves a full configuration descriptor, which has all related interface -and endpoint descriptors appended to a normal configuration descriptor. -The parameter -.Fa d -should point to memory that is at least -.Fa size -bytes in length, and this should be at least as long as the -.Fa wTotalLength -value from the configuration descriptor. -See -.Sx "USB Descriptors" -below for information about the USB configuration descriptor. +. +.Ft "void" +.Fo "usbd_transfer_start" +.Fa "xfer" +.Fc +. .Pp -The -.Fn usbd_get_config -function retrieves the current configuration number from the device, i.e.\& -the -.Fa bConfigurationValue -value from the configuration that is active. -If the device is unconfigured then -.Dv USB_UNCONFIG_NO -is returned. -The current configuration can be changed by calling either -.Fn usbd_set_config_index -or -.Fn usbd_set_config_no . -The difference between these functions is that -.Fn usbd_set_config_index -accepts a configuration index number that is less than the -.Fa bNumConfigurations -value from the device descriptor, whereas -.Fn usbd_set_config_no -requires the -.Fa bConfigurationValue -value of the desired configuration to be provided instead. -To unconfigure the device, supply a configuration index of -.Dv USB_UNCONFIG_INDEX -to -.Fn usbd_set_config_index , -or else specify a configuration number of -.Dv USB_UNCONFIG_NO -to -.Fn usbd_set_config_no . +. +.Ft "void" +.Fo "usbd_transfer_stop" +.Fa "xfer" +.Fc +. .Pp -The -.Fn usbd_get_config_descriptor -function returns a pointer to an in-memory copy of the full configuration -descriptor of the configuration that is currently active. -The returned pointer remains valid until the device configuration -is changed using -.Fn usbd_set_config_index -or -.Fn usbd_set_config_no . -If the device is unconfigured then -.Dv NULL -is returned instead. +. +.Ft "void" +.Fo "usbd_transfer_drain" +.Fa "xfer" +.Fc +. +. +. +.Sh USB TRANSFER MANAGEMENT FUNCTIONS +The USB standard defines four types of USB transfers. +. +Control transfers, Bulk transfers, Interrupt transfers and Isochronous +transfers. +. +All the transfer types are managed using the following five functions: +. .Pp -The function -.Fn usbd_interface_count -returns the number of interfaces available in the current device -configuration. -The -.Fn usbd_get_no_alts -function determines the number of alternate interfaces in a full -configuration descriptor by counting the interface descriptors with -.Fa bInterfaceNumber -equal to -.Fa ifaceno -(the count includes alternate index zero). -The -.Fn usbd_find_idesc -function locates an interface descriptor within a full configuration -descriptor. -The -.Fa ifaceidx -parameter specifies the interface index number, which should be less than -the number of interfaces in the configuration descriptor (i.e.\& the value -returned by -.Fn usbd_interface_count -or the -.Fa bNumInterface -field from the configuration descriptor). -An alternate interface can be specified using a non-zero -.Fa altidx , -which should be less than the value returned by -.Fn usbd_get_no_alts . -The return value is a pointer to the requested interface descriptor -within the full configuration descriptor, or -.Dv NULL -if the specified interface descriptor does not exist. -Note that the -.Fa altidx -parameter specifies the alternate setting by index number starting -at zero; it is not the alternate setting number defined in the -interface descriptor. +. +.Fn usbd_transfer_setup +This function will allocate memory for and initialise an array of USB +transfers and all required DMA memory. +. +This function can sleep or block waiting for resources to become +available. +.Fa udev +is a pointer to "struct usb_device". +.Fa ifaces +is an array of interface index numbers to use. See "if_index". +.Fa pxfer +is a pointer to an array of USB transfer pointers that are initialized +to NULL, and then pointed to allocated USB transfers. +.Fa setup_start +is a pointer to an array of USB config structures. +.Fa n_setup +is a number telling the USB system how many USB transfers should be +setup. +.Fa priv_sc +is the private softc pointer, which will be used to initialize +"xfer->priv_sc". +.Fa priv_mtx +is the private mutex protecting the transfer structure and the +softc. This pointer is used to initialize "xfer->priv_mtx". +This function returns +zero upon success. A non-zero return value indicates failure. +. .Pp -The function -.Fn usbd_find_edesc -locates an endpoint descriptor within a full configuration descriptor. -The -.Fa ifaceidx -and -.Fa altidx -parameters are the same as described for -.Fn usbd_find_idesc , -and the -.Fa endptidx -parameter is an endpoint index number that should be less than the -.Fa bNumEndpoints -field in the interface descriptor. -The return value is a pointer to the requested endpoint descriptor -within the full configuration descriptor, or -.Dv NULL -if the specified endpoint descriptor does not exist. -Note that the -.Fa altidx -and -.Fa endptidx -parameters are index numbers starting at zero; they are not the -alternate setting and endpoint address defined in the descriptors. +. +.Fn usbd_transfer_unsetup +This function will release the given USB transfers and all allocated +resources associated with these USB transfers. +.Fa pxfer +is a pointer to an array of USB transfer pointers, that may be NULL, +that should be freed by the USB system. +.Fa n_setup +is a number telling the USB system how many USB transfers should be +unsetup. +. +This function can sleep waiting for USB transfers to complete. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +It is not allowed to call this function from the USB transfer +callback. +. .Pp -The -.Fn usbd_get_speed -function returns the device speed. -This can be -.Dv USB_SPEED_LOW , -.Dv USB_SPEED_FULL -or -.Dv USB_SPEED_HIGH . +. +.Fn usbd_transfer_start +This function will start the USB transfer pointed to by +.Fa xfer, +if not already started. +. +This function is always non-blocking and must be called with the +so-called private USB mutex locked. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. .Pp -USB devices optionally support string descriptors, which can be -retrieved using the -.Fn usbd_get_string -or -.Fn usbd_get_string_desc -functions. -Device, configuration and interface descriptors reference strings by -an index number that can be supplied to these functions. -The -.Fn usbd_get_string -function should be used unless a non-default language is required. -It requires that -.Fa buf -points to a buffer of at least -.Dv USB_MAX_STRING_LEN -bytes in size. -The -.Fa si -parameter specified which string to retrieve. +. +.Fn usbd_transfer_stop +This function will stop the USB transfer pointed to by +.Fa xfer, +if not already stopped. +. +This function is always non-blocking and must be called with the +so-called private USB mutex locked. +. +This function can return before the USB callback has been called. +. +This function is NULL safe with regard to the USB transfer structure +pointer. +. +If the transfer was in progress, the callback will called with +"USB_ST_ERROR" and "error = USB_ERR_CANCELLED". +. .Pp -The -.Fn usb_find_desc -function searches through the in-memory full configuration descriptor -for the active configuration and finds the first descriptor that has a -.Fa bDescriptorType -equal to -.Fa type , -and if -.Fa subtype -is not equal to -.Dv USBD_SUBTYPE_ANY , -the descriptor must also have a -.Fa bDescriptorSubtype >>> TRUNCATED FOR MAIL (1000 lines) <<<