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