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