xref: /reactos/sdk/include/psdk/usbdi.h (revision c2c66aff)
1*c2c66affSColin Finck /*
2*c2c66affSColin Finck  * usbdi.h
3*c2c66affSColin Finck  *
4*c2c66affSColin Finck  * USBD and USB device driver definitions
5*c2c66affSColin Finck  *
6*c2c66affSColin Finck  * FIXME : Obsolete header.. Use usb.h instead.
7*c2c66affSColin Finck  *
8*c2c66affSColin Finck  * This file is part of the ReactOS PSDK package.
9*c2c66affSColin Finck  *
10*c2c66affSColin Finck  * Contributors:
11*c2c66affSColin Finck  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
12*c2c66affSColin Finck  *
13*c2c66affSColin Finck  * THIS SOFTWARE IS NOT COPYRIGHTED
14*c2c66affSColin Finck  *
15*c2c66affSColin Finck  * This source code is offered for use in the public domain. You may
16*c2c66affSColin Finck  * use, modify or distribute it freely.
17*c2c66affSColin Finck  *
18*c2c66affSColin Finck  * This code is distributed in the hope that it will be useful but
19*c2c66affSColin Finck  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
20*c2c66affSColin Finck  * DISCLAIMED. This includes but is not limited to warranties of
21*c2c66affSColin Finck  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22*c2c66affSColin Finck  *
23*c2c66affSColin Finck  */
24*c2c66affSColin Finck 
25*c2c66affSColin Finck #pragma once
26*c2c66affSColin Finck 
27*c2c66affSColin Finck /* Helper macro to enable gcc's extension.  */
28*c2c66affSColin Finck #ifndef __GNU_EXTENSION
29*c2c66affSColin Finck #ifdef __GNUC__
30*c2c66affSColin Finck #define __GNU_EXTENSION __extension__
31*c2c66affSColin Finck #else
32*c2c66affSColin Finck #define __GNU_EXTENSION
33*c2c66affSColin Finck #endif
34*c2c66affSColin Finck #endif
35*c2c66affSColin Finck 
36*c2c66affSColin Finck #include <usb.h>
37*c2c66affSColin Finck #include <usbioctl.h>
38*c2c66affSColin Finck 
39*c2c66affSColin Finck #ifdef __cplusplus
40*c2c66affSColin Finck extern "C" {
41*c2c66affSColin Finck #endif
42*c2c66affSColin Finck 
43*c2c66affSColin Finck #define USBD_STATUS_CANCELLING      ((USBD_STATUS)0x00020000L)
44*c2c66affSColin Finck #define USBD_STATUS_CANCELING       ((USBD_STATUS)0x00020000L)
45*c2c66affSColin Finck #define USBD_STATUS_NO_MEMORY       ((USBD_STATUS)0x80000100L)
46*c2c66affSColin Finck #define USBD_STATUS_ERROR           ((USBD_STATUS)0x80000000L)
47*c2c66affSColin Finck #define USBD_STATUS_REQUEST_FAILED  ((USBD_STATUS)0x80000500L)
48*c2c66affSColin Finck #define USBD_STATUS_HALTED          ((USBD_STATUS)0xC0000000L)
49*c2c66affSColin Finck 
50*c2c66affSColin Finck 
51*c2c66affSColin Finck #define USBD_HALTED(Status)  ((ULONG)(Status) >> 30 == 3)
52*c2c66affSColin Finck #define USBD_STATUS(Status) ((ULONG)(Status) & 0x0FFFFFFFL)
53*c2c66affSColin Finck 
54*c2c66affSColin Finck #define URB_FUNCTION_RESERVED0                      0x0016
55*c2c66affSColin Finck #define URB_FUNCTION_RESERVED                       0x001D
56*c2c66affSColin Finck #define URB_FUNCTION_LAST                           0x0029
57*c2c66affSColin Finck 
58*c2c66affSColin Finck #define USBD_PF_DOUBLE_BUFFER           0x00000002
59*c2c66affSColin Finck 
60*c2c66affSColin Finck #ifdef USBD_PF_VALID_MASK
61*c2c66affSColin Finck #undef USBD_PF_VALID_MASK
62*c2c66affSColin Finck #endif
63*c2c66affSColin Finck 
64*c2c66affSColin Finck #define USBD_PF_VALID_MASK    (USBD_PF_CHANGE_MAX_PACKET | USBD_PF_DOUBLE_BUFFER | \
65*c2c66affSColin Finck                               USBD_PF_ENABLE_RT_THREAD_ACCESS | USBD_PF_MAP_ADD_TRANSFERS)
66*c2c66affSColin Finck 
67*c2c66affSColin Finck #define USBD_TRANSFER_DIRECTION_BIT             0
68*c2c66affSColin Finck #define USBD_SHORT_TRANSFER_OK_BIT              1
69*c2c66affSColin Finck #define USBD_START_ISO_TRANSFER_ASAP_BIT        2
70*c2c66affSColin Finck 
71*c2c66affSColin Finck #ifdef USBD_TRANSFER_DIRECTION
72*c2c66affSColin Finck #undef USBD_TRANSFER_DIRECTION
73*c2c66affSColin Finck #endif
74*c2c66affSColin Finck 
75*c2c66affSColin Finck #define USBD_TRANSFER_DIRECTION(x)      ((x) & USBD_TRANSFER_DIRECTION_IN)
76*c2c66affSColin Finck 
77*c2c66affSColin Finck #ifdef __cplusplus
78*c2c66affSColin Finck }
79*c2c66affSColin Finck #endif
80