[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/compat/ndis/usbd_var.h

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD71  -  FREEBSD70  -  FREEBSD6  -  FREEBSD64  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /*-
  2  * Copyright (c) 2003
  3  *      Bill Paul <wpaul@windriver.com>.  All rights reserved.
  4  *
  5  * Redistribution and use in source and binary forms, with or without
  6  * modification, are permitted provided that the following conditions
  7  * are met:
  8  * 1. Redistributions of source code must retain the above copyright
  9  *    notice, this list of conditions and the following disclaimer.
 10  * 2. Redistributions in binary form must reproduce the above copyright
 11  *    notice, this list of conditions and the following disclaimer in the
 12  *    documentation and/or other materials provided with the distribution.
 13  * 3. All advertising materials mentioning features or use of this software
 14  *    must display the following acknowledgement:
 15  *      This product includes software developed by Bill Paul.
 16  * 4. Neither the name of the author nor the names of any co-contributors
 17  *    may be used to endorse or promote products derived from this software
 18  *    without specific prior written permission.
 19  *
 20  * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
 21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 23  * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
 24  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 30  * THE POSSIBILITY OF SUCH DAMAGE.
 31  *
 32  * $FreeBSD: src/sys/compat/ndis/usbd_var.h,v 1.2 2008/12/27 08:03:32 weongyo Exp $
 33  */
 34 
 35 #ifndef _USBD_VAR_H_
 36 #define _USBD_VAR_H_
 37 
 38 #define IOCTL_INTERNAL_USB_SUBMIT_URB                   0x00220003
 39 
 40 #define URB_FUNCTION_SELECT_CONFIGURATION               0x0000
 41 #define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER         0x0009
 42 #define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE         0x000B
 43 #define URB_FUNCTION_VENDOR_DEVICE                      0x0017
 44 #define URB_FUNCTION_VENDOR_INTERFACE                   0x0018
 45 #define URB_FUNCTION_VENDOR_ENDPOINT                    0x0019
 46 #define URB_FUNCTION_CLASS_DEVICE                       0x001A
 47 #define URB_FUNCTION_CLASS_INTERFACE                    0x001B
 48 #define URB_FUNCTION_CLASS_ENDPOINT                     0x001C
 49 #define URB_FUNCTION_CLASS_OTHER                        0x001F
 50 #define URB_FUNCTION_VENDOR_OTHER                       0x0020
 51 
 52 #define USBD_STATUS_SUCCESS                             0x00000000
 53 #define USBD_STATUS_CANCELED                            0x00010000
 54 #define USBD_STATUS_PENDING                             0x40000000
 55 #define USBD_STATUS_NO_MEMORY                           0x80000100
 56 #define USBD_STATUS_REQUEST_FAILED                      0x80000500
 57 #define USBD_STATUS_INVALID_PIPE_HANDLE                 0x80000600
 58 #define USBD_STATUS_ERROR_SHORT_TRANSFER                0x80000900
 59 #define USBD_STATUS_CRC                                 0xC0000001
 60 #define USBD_STATUS_BTSTUFF                             0xC0000002
 61 #define USBD_STATUS_DATA_TOGGLE_MISMATCH                0xC0000003
 62 #define USBD_STATUS_STALL_PID                           0xC0000004
 63 #define USBD_STATUS_DEV_NOT_RESPONDING                  0xC0000005
 64 #define USBD_STATUS_PID_CHECK_FAILURE                   0xC0000006
 65 #define USBD_STATUS_UNEXPECTED_PID                      0xC0000007
 66 #define USBD_STATUS_DATA_OVERRUN                        0xC0000008
 67 #define USBD_STATUS_DATA_UNDERRUN                       0xC0000009
 68 #define USBD_STATUS_RESERVED1                           0xC000000A
 69 #define USBD_STATUS_RESERVED2                           0xC000000B
 70 #define USBD_STATUS_BUFFER_OVERRUN                      0xC000000C
 71 #define USBD_STATUS_BUFFER_UNDERRUN                     0xC000000D
 72 #define USBD_STATUS_NOT_ACCESSED                        0xC000000F
 73 #define USBD_STATUS_FIFO                                0xC0000010
 74 #define USBD_STATUS_XACT_ERROR                          0xC0000011
 75 #define USBD_STATUS_BABBLE_DETECTED                     0xC0000012
 76 #define USBD_STATUS_DATA_BUFFER_ERROR                   0xC0000013
 77 #define USBD_STATUS_NOT_SUPPORTED                       0xC0000E00
 78 #define USBD_STATUS_TIMEOUT                             0xC0006000
 79 #define USBD_STATUS_DEVICE_GONE                         0xC0007000
 80 
 81 struct usbd_urb_header {
 82         uint16_t                uuh_len;
 83         uint16_t                uuh_func;
 84         int32_t                 uuh_status;
 85         void                    *uuh_handle;
 86         uint32_t                uuh_flags;
 87 };
 88 
 89 enum usbd_pipe_type {
 90         UsbdPipeTypeControl     = UE_CONTROL,
 91         UsbdPipeTypeIsochronous = UE_ISOCHRONOUS,
 92         UsbdPipeTypeBulk        = UE_BULK,
 93         UsbdPipeTypeInterrupt   = UE_INTERRUPT
 94 };
 95 
 96 struct usbd_pipe_information {
 97         uint16_t                upi_maxpktsize;
 98         uint8_t                 upi_epaddr;
 99         uint8_t                 upi_interval;
100         enum usbd_pipe_type     upi_type;
101         usb_endpoint_descriptor_t *upi_handle;
102         uint32_t                upi_maxtxsize;
103 #define USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE              PAGE_SIZE
104         uint32_t                upi_flags;
105 };
106 
107 struct usbd_interface_information {
108         uint16_t                uii_len;
109         uint8_t                 uii_intfnum;
110         uint8_t                 uii_altset;
111         uint8_t                 uii_intfclass;
112         uint8_t                 uii_intfsubclass;
113         uint8_t                 uii_intfproto;
114         uint8_t                 uii_reserved;
115         void                    *uii_handle;
116         uint32_t                uii_numeps;
117         struct usbd_pipe_information uii_pipes[1];
118 };
119 
120 struct usbd_urb_select_interface {
121         struct usbd_urb_header  usi_hdr;
122         void                    *usi_handle;
123         struct usbd_interface_information uusi_intf;
124 };
125 
126 struct usbd_urb_select_configuration {
127         struct usbd_urb_header  usc_hdr;
128         usb_config_descriptor_t *usc_conf;
129         void                    *usc_handle;
130         struct usbd_interface_information usc_intf;
131 };
132 
133 struct usbd_hcd_area {
134         void                    *reserved8[8];
135 };
136 
137 struct usbd_urb_bulk_or_intr_transfer {
138         struct usbd_urb_header  ubi_hdr;
139         usb_endpoint_descriptor_t *ubi_epdesc;
140         uint32_t                ubi_trans_flags;
141 #define USBD_SHORT_TRANSFER_OK          0x00000002
142         uint32_t                ubi_trans_buflen;
143         void                    *ubi_trans_buf;
144         struct mdl              *ubi_mdl;
145         union usbd_urb          *ubi_urblink;
146         struct usbd_hcd_area    ubi_hca;
147 };
148 
149 struct usbd_urb_control_descriptor_request {
150         struct usbd_urb_header  ucd_hdr;
151         void                    *ucd_reserved0;
152         uint32_t                ucd_reserved1;
153         uint32_t                ucd_trans_buflen;
154         void                    *ucd_trans_buf;
155         struct mdl              *ucd_mdl;
156         union nt_urb            *ucd_urblink;
157         struct usbd_hcd_area    ucd_hca;
158         uint16_t                ucd_reserved2;
159         uint8_t                 ucd_idx;
160         uint8_t                 ucd_desctype;
161         uint16_t                ucd_langid;
162         uint16_t                ucd_reserved3;
163 };
164 
165 struct usbd_urb_vendor_or_class_request {
166         struct usbd_urb_header  uvc_hdr;
167         void                    *uvc_reserved0;
168         uint32_t                uvc_trans_flags;
169 #define USBD_TRANSFER_DIRECTION_IN      1
170         uint32_t                uvc_trans_buflen;
171         void                    *uvc_trans_buf;
172         struct mdl              *uvc_mdl;
173         union nt_urb            *uvc_urblink;
174         struct usbd_hcd_area    uvc_hca;
175         uint8_t                 uvc_reserved1;
176         uint8_t                 uvc_req;
177         uint16_t                uvc_value;
178         uint16_t                uvc_idx;
179         uint16_t                uvc_reserved2;
180 };
181 
182 struct usbd_interface_list_entry {
183         usb_interface_descriptor_t              *uil_intfdesc;
184         struct usbd_interface_information       *uil_intf;
185 };
186 
187 union usbd_urb {
188         struct usbd_urb_header                  uu_hdr;
189         struct usbd_urb_select_configuration    uu_selconf;
190         struct usbd_urb_bulk_or_intr_transfer   uu_bulkintr;
191         struct usbd_urb_control_descriptor_request      uu_ctldesc;
192         struct usbd_urb_vendor_or_class_request uu_vcreq;
193 };
194 
195 #define USBD_URB_STATUS(urb)    ((urb)->uu_hdr.uuh_status)
196 
197 #define USBDI_VERSION           0x00000500
198 #define USB_VER_1_1             0x00000110
199 #define USB_VER_2_0             0x00000200
200 
201 struct usbd_version_info {
202         uint32_t                uvi_usbdi_vers;
203         uint32_t                uvi_supported_vers;
204 };
205 
206 typedef struct usbd_version_info usbd_version_info;
207 
208 /* used for IRP cancel.  */
209 struct ndisusb_cancel {
210         device_t                dev;
211         usbd_xfer_handle        xfer;
212         struct usb_task         task;
213 };
214 
215 extern image_patch_table usbd_functbl[];
216 
217 __BEGIN_DECLS
218 extern int usbd_libinit(void);
219 extern int usbd_libfini(void);
220 __END_DECLS
221 
222 #endif /* _USBD_VAR_H_ */
223 

Cache object: f77a29939a213c369eda49ad93a44b53


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.