2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source. A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
12 .\" Copyright 2016 Joyent, Inc.
15 .Dt USBA_HCDI_DUP_ISOC_REQ 9F
18 .Nm usba_hcdi_dup_isoc_req
19 .Nd duplicate an isochronous request
21 .In sys/usb/usba/hcdi.h
22 .Ft "usb_isoc_req_t *"
23 .Fo usba_hcdi_dup_isoc_req
25 .Fa "usb_isoc_req_t *usrp"
26 .Fa "usb_flags_t flags"
30 illumos USB HCD private function
32 This is a private function that is not part of the stable DDI.
33 It may be removed or changed at any time.
37 A pointer to the HCD driver's
41 A pointer to the USB isochronous request which will be duplicated.
44 .It Sy USB_FLAGS_NOSLEEP
45 Do not block waiting for memory.
46 If memory is not available the allocation will fail.
47 .It Sy USB_FLAGS_SLEEP
48 Perform a blocking allocation.
49 If memory is not available, the function will wait until memory is made
52 Note, the request may still fail even if
59 .Fn usba_hcdi_dup_isoc_req
60 function is used to duplicate an existing isochronous request,
63 When the USBA framework initiates an isochronous in transfer with the
64 .Xr usba_hcdi_pipe_isoc_xfer 9E
65 entry point, it is the HCD driver's responsibility to receive the
66 periodic data from the pipe.
67 When there is data available, the HCD must duplicate the original isochronous
68 request and copy the available data into the request structure's
70 member, before handing over the request structure to the USBA framework
75 In addition to duplicating the request, it is the callers responsibility
76 to increase the pipe handle's request count.
77 For more information, see
78 .Xr usba_hcdi_pipe_isoc_xfer 9E .
82 argument should correspond to the HCD driver's
87 pointer should correspond to the initial isochronous request.
90 member must be appropriate for the context.
93 is passed while in interrupt context, then this function may fail.
96 .Fn usba_hcdi_dup_isoc_req
97 function may be called from
102 context; however, when in interrupt context, the value of
105 .Sy USB_FLAGS_NOSLEEP .
107 Upon successful completion, the
108 .Fn usba_hcdi_dup_isoc_req
109 function returns a pointer to a duplicate isochronous request.
112 is returned to indicate that the request could not be duplicated.
115 .Xr usba_hcdi_pipe_isoc_xfer 9E ,