[HAL]
[reactos.git] / reactos / drivers / usb / usbehci / usbiffn.c
1 /*
2 * PROJECT: ReactOS Universal Serial Bus Bulk Enhanced Host Controller Interface
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: drivers/usb/usbehci/usbiffn.c
5 * PURPOSE: Direct Call Interface Functions.
6 * PROGRAMMERS:
7 * Michael Martin
8 */
9
10 /* usbbusif.h and hubbusif.h need to be imported */
11 #include "usbehci.h"
12 #include "usbiffn.h"
13 #define NDEBUG
14 #include <debug.h>
15
16 VOID
17 USB_BUSIFFN
18 InterfaceReference(PVOID BusContext)
19 {
20 DPRINT1("InterfaceReference called\n");
21 }
22
23 VOID
24 USB_BUSIFFN
25 InterfaceDereference(PVOID BusContext)
26 {
27 DPRINT1("InterfaceDereference called\n");
28 }
29
30 /* Bus Interface Hub V5 Functions */
31
32 NTSTATUS
33 USB_BUSIFFN
34 CreateUsbDevice(PVOID BusContext,
35 PUSB_DEVICE_HANDLE *NewDevice,
36 PUSB_DEVICE_HANDLE HubDeviceHandle,
37 USHORT PortStatus, USHORT PortNumber)
38 {
39 DPRINT1("CreateUsbDevice called\n");
40 return STATUS_SUCCESS;
41 }
42
43 NTSTATUS
44 USB_BUSIFFN
45 InitializeUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle)
46 {
47 DPRINT1("InitializeUsbDevice called\n");
48 return STATUS_SUCCESS;
49 }
50
51 NTSTATUS
52 USB_BUSIFFN
53 GetUsbDescriptors(PVOID BusContext,
54 PUSB_DEVICE_HANDLE DeviceHandle,
55 PUCHAR DeviceDescriptorBuffer,
56 PULONG DeviceDescriptorBufferLength,
57 PUCHAR ConfigurationBuffer,
58 PULONG ConfigDescriptorBufferLength)
59 {
60 DPRINT1("GetUsbDescriptor called\n");
61 return STATUS_SUCCESS;
62 }
63
64 NTSTATUS
65 USB_BUSIFFN
66 RemoveUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, ULONG Flags)
67 {
68 DPRINT1("RemoveUsbDevice called\n");
69 return STATUS_SUCCESS;
70 }
71
72 NTSTATUS
73 USB_BUSIFFN
74 RestoreUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE OldDeviceHandle, PUSB_DEVICE_HANDLE NewDeviceHandle)
75 {
76 DPRINT1("RestoreUsbDevice called\n");
77 return STATUS_SUCCESS;
78 }
79
80 NTSTATUS
81 USB_BUSIFFN
82 GetPortHackFlags(PVOID BusContext, PULONG Flags)
83 {
84 DPRINT1("GetPortHackFlags called\n");
85 return STATUS_SUCCESS;
86 }
87
88 NTSTATUS
89 USB_BUSIFFN
90 QueryDeviceInformation(PVOID BusContext,
91 PUSB_DEVICE_HANDLE DeviceHandle,
92 PVOID DeviceInformationBuffer,
93 ULONG DeviceInformationBufferLength,
94 PULONG LengthReturned)
95 {
96 DPRINT1("QueryDeviceInformation called\n");
97 return STATUS_SUCCESS;
98 }
99
100 NTSTATUS
101 USB_BUSIFFN
102 GetControllerInformation(PVOID BusContext,
103 PVOID ControllerInformationBuffer,
104 ULONG ControllerInformationBufferLength,
105 PULONG LengthReturned)
106 {
107 DPRINT1("GetControllerInformation called\n");
108 return STATUS_SUCCESS;
109 }
110
111 NTSTATUS
112 USB_BUSIFFN
113 ControllerSelectiveSuspend(PVOID BusContext, BOOLEAN Enable)
114 {
115 DPRINT1("ControllerSelectiveSuspend called\n");
116 return STATUS_SUCCESS;
117 }
118
119 NTSTATUS
120 USB_BUSIFFN
121 GetExtendedHubInformation(PVOID BusContext,
122 PDEVICE_OBJECT HubPhysicalDeviceObject,
123 PVOID HubInformationBuffer,
124 ULONG HubInformationBufferLength,
125 PULONG LengthReturned)
126 {
127
128 PUSB_EXTHUB_INFORMATION_0 UsbExtHubInfo = HubInformationBuffer;
129 PPDO_DEVICE_EXTENSION PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension;
130 PFDO_DEVICE_EXTENSION FdoDeviceExntension = (PFDO_DEVICE_EXTENSION)PdoDeviceExtension->ControllerFdo->DeviceExtension;
131 LONG i;
132
133 /* Set the default return value */
134 *LengthReturned = 0;
135 /* Caller must have set InformationLevel to 0 */
136 if (UsbExtHubInfo->InformationLevel != 0)
137 {
138 return STATUS_NOT_SUPPORTED;
139 }
140
141 UsbExtHubInfo->NumberOfPorts = 8;
142
143 for (i=0; i < UsbExtHubInfo->NumberOfPorts; i++)
144 {
145 UsbExtHubInfo->Port[i].PhysicalPortNumber = i + 1;
146 UsbExtHubInfo->Port[i].PortLabelNumber = FdoDeviceExntension->ECHICaps.HCSParams.PortCount;
147 UsbExtHubInfo->Port[i].VidOverride = 0;
148 UsbExtHubInfo->Port[i].PidOverride = 0;
149 UsbExtHubInfo->Port[i].PortAttributes = USB_PORTATTR_SHARED_USB2;
150 }
151
152 *LengthReturned = FIELD_OFFSET(USB_EXTHUB_INFORMATION_0, Port[8]);
153
154 return STATUS_SUCCESS;
155 }
156
157 NTSTATUS
158 USB_BUSIFFN
159 GetRootHubSymbolicName(PVOID BusContext,
160 PVOID HubSymNameBuffer,
161 ULONG HubSymNameBufferLength,
162 PULONG HubSymNameActualLength)
163 {
164 DPRINT1("GetRootHubSymbolicName called\n");
165 return STATUS_SUCCESS;
166 }
167
168 PVOID
169 USB_BUSIFFN
170 GetDeviceBusContext(PVOID HubBusContext, PVOID DeviceHandle)
171 {
172 DPRINT1("GetDeviceBusContext called\n");
173 return NULL;
174 }
175
176 NTSTATUS
177 USB_BUSIFFN
178 Initialize20Hub(PVOID BusContext, PUSB_DEVICE_HANDLE HubDeviceHandle, ULONG TtCount)
179 {
180 DPRINT1("Initialize20Hub called\n");
181 return STATUS_SUCCESS;
182 }
183
184 NTSTATUS
185 USB_BUSIFFN
186 RootHubInitNotification(PVOID BusContext, PVOID CallbackContext, PRH_INIT_CALLBACK CallbackRoutine)
187 {
188 PPDO_DEVICE_EXTENSION PdoDeviceExtension;
189 DPRINT1("RootHubInitNotification %x, %x, %x\n", BusContext, CallbackContext, CallbackRoutine);
190
191 PdoDeviceExtension = (PPDO_DEVICE_EXTENSION)((PDEVICE_OBJECT)BusContext)->DeviceExtension;
192 PdoDeviceExtension->CallbackContext = CallbackContext;
193 PdoDeviceExtension->CallbackRoutine = CallbackRoutine;
194 return STATUS_SUCCESS;
195 }
196
197 VOID
198 USB_BUSIFFN
199 FlushTransfers(PVOID BusContext, PVOID DeviceHandle)
200 {
201 DPRINT1("FlushTransfers\n");
202 }
203
204 VOID
205 USB_BUSIFFN
206 SetDeviceHandleData(PVOID BusContext, PVOID DeviceHandle, PDEVICE_OBJECT UsbDevicePdo)
207 {
208 DPRINT1("SetDeviceHandleData called\n");
209 }
210
211
212 /* USB_BUS_INTERFACE_USBDI_V2 Functions */
213
214 NTSTATUS
215 USB_BUSIFFN
216 GetUSBDIVersion(PVOID BusContext, PUSBD_VERSION_INFORMATION VersionInformation, PULONG HcdCapabilites)
217 {
218 DPRINT1("GetUSBDIVersion called\n");
219 return STATUS_SUCCESS;
220 }
221
222 NTSTATUS
223 USB_BUSIFFN
224 QueryBusTime(PVOID BusContext, PULONG CurrentFrame)
225 {
226 DPRINT1("QueryBusTime called\n");
227 return STATUS_SUCCESS;
228 }
229
230 NTSTATUS
231 USB_BUSIFFN
232 SubmitIsoOutUrb(PVOID BusContext, PURB Urb)
233 {
234 DPRINT1("SubmitIsoOutUrb called\n");
235 return STATUS_SUCCESS;
236 }
237
238 NTSTATUS
239 USB_BUSIFFN
240 QueryBusInformation(PVOID BusContext,
241 ULONG Level,
242 PVOID BusInformationBuffer,
243 PULONG BusInformationBufferLength,
244 PULONG BusInformationActualLength)
245 {
246 DPRINT1("QueryBusInformation called\n");
247 return STATUS_SUCCESS;
248 }
249
250 BOOLEAN
251 USB_BUSIFFN
252 IsDeviceHighSpeed(PVOID BusContext)
253 {
254 DPRINT1("IsDeviceHighSpeed called\n");
255 return TRUE;
256 }
257
258 NTSTATUS
259 USB_BUSIFFN
260 EnumLogEntry(PVOID BusContext, ULONG DriverTag, ULONG EnumTag, ULONG P1, ULONG P2)
261 {
262 DPRINT1("EnumLogEntry called\n");
263 return STATUS_SUCCESS;
264 }
265