VirtualBox

source: vbox/trunk/src/VBox/HostDrivers/VBoxUSB/os2/usbcalls.h

Last change on this file was 76568, checked in by vboxsync, 6 years ago

HostDrivers: Use VBOX_INCLUDED_SRC_ as header guard prefix with scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.5 KB
Line 
1
2#ifndef VBOX_INCLUDED_SRC_VBoxUSB_os2_usbcalls_h
3#define VBOX_INCLUDED_SRC_VBoxUSB_os2_usbcalls_h
4#ifndef RT_WITHOUT_PRAGMA_ONCE
5# pragma once
6#endif
7
8#ifdef __cplusplus
9 extern "C" {
10#endif
11
12typedef ULONG USBHANDLE, *PUSBHANDLE;
13typedef ULONG USBNOTIFY, *PUSBNOTIFY;
14typedef ULONG ISOHANDLE, *PISOHANDLE;
15
16#define USB_NOT_INIT 7000
17#define USB_ERROR_NO_MORE_NOTIFICATIONS 7001
18#define USB_ERROR_OUTOF_RESOURCES 7002
19#define USB_ERROR_INVALID_ENDPOINT 7003
20#define USB_ERROR_LESSTRANSFERED 7004
21
22/* IORB status codes */
23#define USB_IORB_DONE 0x0000
24#define USB_IORB_FAILED 0x8000
25
26#define USB_ANY_PRODUCTVERSION 0xFFFF
27#define USB_OPEN_FIRST_UNUSED 0
28
29#ifdef USB_BIND_DYNAMIC
30 typedef APIRET APIENTRY USBREGISTERDEVICENOTIFICATION( PUSBNOTIFY pNotifyID,
31 HEV hDeviceAdded,
32 HEV hDeviceRemoved,
33 USHORT usVendor,
34 USHORT usProduct,
35 USHORT usBCDVersion);
36 typedef USBREGISTERDEVICENOTIFICATION *PUSBREGISTERDEVICENOTIFICATION;
37
38 typedef APIRET APIENTRY USBDEREGISTERNOTIFICATION( USBNOTIFY NotifyID);
39
40 typedef USBDEREGISTERNOTIFICATION *PUSBDEREGISTERNOTIFICATION;
41
42 typedef APIRET APIENTRY USBOPEN( PUSBHANDLE pHandle,
43 USHORT usVendor,
44 USHORT usProduct,
45 USHORT usBCDDevice,
46 USHORT usEnumDevice);
47 typedef USBOPEN *PUSBOPEN;
48 typedef APIRET APIENTRY USBCLOSE( USBHANDLE Handle);
49 typedef USBCLOSE *PUSBCLOSE;
50
51 typedef APIRET APIENTRY USBCTRLMESSAGE( USBHANDLE Handle,
52 UCHAR ucRequestType,
53 UCHAR ucRequest,
54 USHORT usValue,
55 USHORT usIndex,
56 USHORT usLength,
57 PVOID pvData,
58 ULONG ulTimeout);
59 typedef USBCTRLMESSAGE *PUSBCTRLMESSAGE;
60#else
61 APIRET APIENTRY UsbQueryNumberDevices( ULONG *pulNumDev);
62
63 APIRET APIENTRY UsbQueryDeviceReport( ULONG ulDevNumber,
64 ULONG *ulBufLen,
65 PVOID pvData);
66 APIRET APIENTRY UsbRegisterChangeNotification( PUSBNOTIFY pNotifyID,
67 HEV hDeviceAdded,
68 HEV hDeviceRemoved);
69
70 APIRET APIENTRY UsbRegisterDeviceNotification( PUSBNOTIFY pNotifyID,
71 HEV hDeviceAdded,
72 HEV hDeviceRemoved,
73 USHORT usVendor,
74 USHORT usProduct,
75 USHORT usBCDVersion);
76
77 APIRET APIENTRY UsbDeregisterNotification( USBNOTIFY NotifyID);
78
79 APIRET APIENTRY UsbOpen( PUSBHANDLE pHandle,
80 USHORT usVendor,
81 USHORT usProduct,
82 USHORT usBCDDevice,
83 USHORT usEnumDevice);
84
85 APIRET APIENTRY UsbClose( USBHANDLE Handle);
86
87 APIRET APIENTRY UsbCtrlMessage( USBHANDLE Handle,
88 UCHAR ucRequestType,
89 UCHAR ucRequest,
90 USHORT usValue,
91 USHORT usIndex,
92 USHORT usLength,
93 PVOID pvData,
94 ULONG ulTimeout);
95
96 APIRET APIENTRY UsbBulkRead( USBHANDLE Handle,
97 UCHAR Endpoint,
98 UCHAR Interface,
99 ULONG *ulNumBytes,
100 PVOID pvData,
101 ULONG ulTimeout);
102
103 APIRET APIENTRY UsbBulkRead2( USBHANDLE Handle,
104 UCHAR Endpoint,
105 UCHAR Interface,
106 BOOL fShortOk,
107 ULONG *ulNumBytes,
108 PVOID pvData,
109 ULONG ulTimeout);
110
111 APIRET APIENTRY UsbBulkWrite( USBHANDLE Handle,
112 UCHAR Endpoint,
113 UCHAR Interface,
114 ULONG ulNumBytes,
115 PVOID pvData,
116 ULONG ulTimeout);
117
118 APIRET APIENTRY UsbBulkWrite2( USBHANDLE Handle,
119 UCHAR Endpoint,
120 UCHAR AltInterface,
121 BOOL fShortOk,
122 ULONG ulNumBytes,
123 PVOID pvData,
124 ULONG ulTimeout);
125
126 APIRET APIENTRY UsbIrqStart( USBHANDLE Handle,
127 UCHAR Endpoint,
128 UCHAR Interface,
129 USHORT usNumBytes,
130 PVOID pvData,
131 PHEV pHevModified);
132 APIRET APIENTRY UsbIrqStop( USBHANDLE Handle,
133 HEV HevModified);
134
135 APIRET APIENTRY UsbIsoStart( USBHANDLE Handle,
136 UCHAR Endpoint,
137 UCHAR Interface,
138 ISOHANDLE *phIso);
139 APIRET APIENTRY UsbIsoStop( ISOHANDLE hIso);
140
141 APIRET APIENTRY UsbIsoDequeue( ISOHANDLE hIso,
142 PVOID pBuffer,
143 ULONG ulNumBytes);
144 APIRET APIENTRY UsbIsoEnqueue( ISOHANDLE hIso,
145 const UCHAR * pBuffer,
146 ULONG ulNumBytes);
147 APIRET APIENTRY UsbIsoPeekQueue( ISOHANDLE hIso,
148 UCHAR * pByte,
149 ULONG ulOffset);
150 APIRET APIENTRY UsbIsoGetLength( ISOHANDLE hIso,
151 ULONG *pulLength);
152
153 APIRET APIENTRY UsbIrqRead( USBHANDLE Handle,
154 UCHAR Endpoint,
155 UCHAR Interface,
156 ULONG *ulNumBytes,
157 PVOID pvData,
158 ULONG ulTimeout);
159
160 APIRET APIENTRY UsbFixupDevice( USBHANDLE Handle,
161 UCHAR ucConfiguration,
162 UCHAR *pucConfigurationData,
163 ULONG ulConfigurationLen );
164
165 APIRET APIENTRY InitUsbCalls(void);
166 APIRET APIENTRY TermUsbCalls(void);
167
168 /* Standard USB Requests See 9.4. in USB 1.1. spec. */
169
170 /* 09 01 2003 - KIEWITZ */
171 #define UsbDeviceClearFeature(HANDLE, FEAT) \
172 UsbCtrlMessage(HANDLE, 0x00, 0x01, FEAT, 0, 0, NULL, 0)
173 #define UsbDeviceSetFeature(HANDLE, FEAT) \
174 UsbCtrlMessage(HANDLE, 0x80, 0x03, FEAT, 0, 0, NULL, 0)
175 #define UsbInterfaceClearFeature(HANDLE, IFACE, FEAT) \
176 UsbCtrlMessage(HANDLE, 0x01, 0x01, FEAT, IFACE, 0, NULL, 0)
177 #define UsbInterfaceSetFeature(HANDLE, IFACE, FEAT) \
178 UsbCtrlMessage(HANDLE, 0x80, 0x03, FEAT, IFACE, 0, NULL, 0)
179 #define UsbEndpointClearFeature(HANDLE, ENDPOINT, FEAT) \
180 UsbCtrlMessage(HANDLE, 0x02, 0x01, FEAT, ENDPOINT, 0, NULL, 0)
181 #define UsbEndpointSetFeature(HANDLE, ENDPOINT, FEAT) \
182 UsbCtrlMessage(HANDLE, 0x80, 0x03, FEAT, ENDPOINT, 0, NULL, 0)
183 #define FEATURE_DEVICE_REMOTE_WAKEUP 1
184 #define FEATURE_ENDPOINT_HALT 0
185 #define UsbEndpointClearHalt(HANDLE, ENDPOINT) \
186 UsbEndpointClearFeature(HANDLE, ENDPOINT, FEATURE_ENDPOINT_HALT)
187
188 #define UsbDeviceGetConfiguration(HANDLE, DATA) \
189 UsbCtrlMessage(HANDLE, 0x80, 0x08, 0, 0, 1, DATA, 0)
190 #define UsbDeviceSetConfiguration(HANDLE, CONFIG) \
191 UsbCtrlMessage(HANDLE, 0x00, 0x09, CONFIG, 0, 0, NULL, 0)
192
193 #define UsbDeviceGetStatus(HANDLE, STATUS) \
194 UsbCtrlMessage(HANDLE, 0x80, 0x00, 0, 0, 2, STATUS, 0)
195 #define UsbInterfaceGetStatus(HANDLE, IFACE, STATUS) \
196 UsbCtrlMessage(HANDLE, 0x80, 0x00, 0, IFACE, 2, STATUS, 0)
197 #define UsbEndpointGetStatus(HANDLE, ENDPOINT, STATUS) \
198 UsbCtrlMessage(HANDLE, 0x80, 0x00, 0, ENDPOINT, 2, STATUS, 0)
199
200 #define STATUS_ENDPOINT_HALT 0x0001
201 #define STATUS_DEVICE_SELFPOWERD 0x0001
202 #define STATUS_DEVICE_REMOTEWAKEUP 0x0002
203
204 #define UsbDeviceSetAddress(HANDLE, ADDRESS) \
205 UsbCtrlMessage(HANDLE, 0x80, 0x05, ADDRESS, 0, 0, NULL, 0)
206
207 #define UsbDeviceGetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
208 UsbCtrlMessage(HANDLE, 0x80, 0x06, (0x0100|INDEX), LID, LEN, DATA, 0)
209 #define UsbDeviceSetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
210 UsbCtrlMessage(HANDLE, 0x80, 0x07, (0x0100|INDEX), LID, LEN, DATA, 0)
211 #define UsbConfigurationGetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
212 UsbCtrlMessage(HANDLE, 0x80, 0x06, (0x0200|INDEX), LID, LEN, DATA, 0)
213 #define UsbConfigurationSetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
214 UsbCtrlMessage(HANDLE, 0x80, 0x07, (0x0200|INDEX), LID, LEN, DATA, 0)
215 #define UsbStringGetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
216 UsbCtrlMessage(HANDLE, 0x80, 0x06, (0x0300|INDEX), LID, LEN, DATA, 0)
217 #define UsbStringSetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
218 UsbCtrlMessage(HANDLE, 0x80, 0x07, (0x0300|INDEX), LID, LEN, DATA, 0)
219 #define UsbInterfaceGetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
220 UsbCtrlMessage(HANDLE, 0x80, 0x06, (0x0400|INDEX), LID, LEN, DATA, 0)
221 #define UsbInterfaceSetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
222 UsbCtrlMessage(HANDLE, 0x80, 0x07, (0x0400|INDEX), LID, LEN, DATA, 0)
223 #define UsbEndpointGetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
224 UsbCtrlMessage(HANDLE, 0x80, 0x06, (0x0500|INDEX), LID, LEN, DATA, 0)
225 #define UsbEndpointSetDescriptor(HANDLE, INDEX, LID, LEN, DATA) \
226 UsbCtrlMessage(HANDLE, 0x80, 0x07, (0x0500|INDEX), LID, LEN, DATA, 0)
227
228 #define UsbInterfaceGetAltSetting(HANDLE, IFACE, SETTING) \
229 UsbCtrlMessage(HANDLE, 0x81, 0x0A, 0, IFACE, 1, SETTING, 0)
230 #define UsbInterfaceSetAltSetting(HANDLE, IFACE, ALTSET) \
231 UsbCtrlMessage(HANDLE, 0x01, 0x0B, ALTSET, IFACE, 0, NULL, 0)
232
233 #define UsbEndpointSynchFrame(HANDLE, ENDPOINT, FRAMENUM) \
234 UsbCtrlMessage(HANDLE, 0x82, 0x0B, 0, ENDPOINT, 2, FRAMENUM, 0)
235#endif
236
237
238#ifdef __cplusplus
239}
240#endif
241
242#endif /* !VBOX_INCLUDED_SRC_VBoxUSB_os2_usbcalls_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette