xref: /illumos-gate/usr/src/man/man9f/usb_ep_xdescr_fill.9f (revision 72d3dbb9ab4481606cb93caca98ba3b3a8eb6ce2)
1993e3fafSRobert Mustacchi.\"
2993e3fafSRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3993e3fafSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4993e3fafSRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5993e3fafSRobert Mustacchi.\" 1.0 of the CDDL.
6993e3fafSRobert Mustacchi.\"
7993e3fafSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8993e3fafSRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9993e3fafSRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10993e3fafSRobert Mustacchi.\"
11993e3fafSRobert Mustacchi.\"
12993e3fafSRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
13993e3fafSRobert Mustacchi.\"
14993e3fafSRobert Mustacchi.Dd Aug 7, 2016
15993e3fafSRobert Mustacchi.Dt USB_EP_XDESCR_FILL 9F
16993e3fafSRobert Mustacchi.Os
17993e3fafSRobert Mustacchi.Sh NAME
18993e3fafSRobert Mustacchi.Nm usb_ep_xdescr_fill
19993e3fafSRobert Mustacchi.Nd fill extended endpoint description from endpoint data
20993e3fafSRobert Mustacchi.Sh SYNOPSIS
21993e3fafSRobert Mustacchi.In sys/usb/usba.h
22993e3fafSRobert Mustacchi.Ft int
23993e3fafSRobert Mustacchi.Fo usb_ep_xdescr_fill
24993e3fafSRobert Mustacchi.Fa "uint_t version"
25993e3fafSRobert Mustacchi.Fa "dev_info_t *dip"
26993e3fafSRobert Mustacchi.Fa "usb_ep_data_t *ep_data"
27993e3fafSRobert Mustacchi.Fa "usb_ep_xdescr_t *ep_xdescr"
28993e3fafSRobert Mustacchi.Fc
29993e3fafSRobert Mustacchi.Sh INTERFACE STABILITY
30993e3fafSRobert Mustacchiillumos DDI specific
31993e3fafSRobert Mustacchi.Sh PARAMETESR
32993e3fafSRobert Mustacchi.Bl -tag -width Fa
33993e3fafSRobert Mustacchi.It Fa version
34993e3fafSRobert MustacchiIndicates the current version of the
35993e3fafSRobert Mustacchi.Ft usb_ep_xdescr_t
36*72d3dbb9SYuri Pankovstructure the driver is using.
37*72d3dbb9SYuri PankovCallers should always specify
38993e3fafSRobert Mustacchi.Sy USB_EP_XDESCR_CURRENT_VERSION .
39993e3fafSRobert Mustacchi.It Fa dip
40993e3fafSRobert MustacchiPointer to the device's
41993e3fafSRobert Mustacchi.Sy dev_info
42993e3fafSRobert Mustacchistructure.
43993e3fafSRobert Mustacchi.It Fa ep_data
44993e3fafSRobert MustacchiPointer to endpoint data retrieved by calling
45993e3fafSRobert Mustacchi.Xr usb_lookup_ep_data 9F .
46993e3fafSRobert Mustacchi.It Fa ep_xdescr
47993e3fafSRobert MustacchiPointer to the extended endpoint descriptor that will be filled out.
48993e3fafSRobert Mustacchi.El
49993e3fafSRobert Mustacchi.Sh DESCRIPTION
50993e3fafSRobert MustacchiThe
51993e3fafSRobert Mustacchi.Fn usb_ep_xdescr_fill
52993e3fafSRobert Mustacchifunction is used to fill in the members of the extended endpoint
53993e3fafSRobert Mustacchidescriptor
54993e3fafSRobert Mustacchi.Fa ep_xdescr
55993e3fafSRobert Mustacchibased on the endpoint descriptor data in
56993e3fafSRobert Mustacchi.Fa ep_data .
57993e3fafSRobert MustacchiOnce filled in,
58993e3fafSRobert Mustacchi.Fa ep_xdescr
59993e3fafSRobert Mustacchican be used to open a pipe by calling
60993e3fafSRobert Mustacchi.Xr usb_pipe_xopen 9F .
61993e3fafSRobert Mustacchi.Pp
62993e3fafSRobert MustacchiPrior to USB 3.0, only one descriptor, the
63993e3fafSRobert Mustacchi.Xr usb_ep_descr 9S ,
64*72d3dbb9SYuri Pankovwas needed to describe an endpoint.
65*72d3dbb9SYuri PankovHowever, with USB 3.0, additional companion descriptors have been added and are
66*72d3dbb9SYuri Pankovrequired to successfully open an endpoint.
67*72d3dbb9SYuri PankovAfter calling this, all descriptors needed to successfully open a pipe will be
68*72d3dbb9SYuri Pankovplaced into
69993e3fafSRobert Mustacchi.Fa ep_xdescr
70993e3fafSRobert Mustacchiand the endpoint data,
71993e3fafSRobert Mustacchi.Fa ep_data ,
72993e3fafSRobert Mustacchiis no longer required.
73993e3fafSRobert Mustacchi.Sh CONTEXT
74993e3fafSRobert MustacchiThe
75993e3fafSRobert Mustacchi.Fn usb_ep_xdescr_fill
76993e3fafSRobert Mustacchiis generally only called from a drivers
77993e3fafSRobert Mustacchi.Xr attach 9E
78993e3fafSRobert Mustacchientry point; however, it may be called from either
79993e3fafSRobert Mustacchi.Sy user
80993e3fafSRobert Mustacchior
81993e3fafSRobert Mustacchi.Sy kernel
82993e3fafSRobert Mustacchicontext.
83993e3fafSRobert Mustacchi.Sh RETURN VALUES
84993e3fafSRobert MustacchiUpon successful completion, the
85993e3fafSRobert Mustacchi.Fn usb_ep_xdescr_fill
86993e3fafSRobert Mustacchifunction returns
87993e3fafSRobert Mustacchi.Sy USB_SUCCESS .
88993e3fafSRobert MustacchiOtherwise an error number is returned.
89993e3fafSRobert Mustacchi.Sh ERRORS
90993e3fafSRobert Mustacchi.Bl -tag -width Er
91993e3fafSRobert Mustacchi.It Er USB_INVALID_ARGS
92993e3fafSRobert MustacchiThe value of
93993e3fafSRobert Mustacchi.Fa version
94993e3fafSRobert Mustacchiis unknown, or one of
95993e3fafSRobert Mustacchi.Fa dip ,
96993e3fafSRobert Mustacchi.Fa ep_data ,
97993e3fafSRobert Mustacchiand
98993e3fafSRobert Mustacchi.Fa ep_xdescr
99993e3fafSRobert Mustacchiwas an invalid pointer.
100993e3fafSRobert Mustacchi.It Er USB_FAILURE
101993e3fafSRobert MustacchiAn unknown error occurred.
102993e3fafSRobert Mustacchi.El
103993e3fafSRobert Mustacchi.Sh SEE ALSO
104993e3fafSRobert Mustacchi.Xr usb_lookup_ep_data 9F ,
105993e3fafSRobert Mustacchi.Xr usb_pipe_xopen 9F ,
106993e3fafSRobert Mustacchi.Xr usb_ep_descr 9S ,
107993e3fafSRobert Mustacchi.Xr usb_ep_ss_comp_descr 9S ,
108993e3fafSRobert Mustacchi.Xr usb_ep_xdescr 9S
109