[USBEHCI_NEW]
[reactos.git] / drivers / usb / usbehci_new / usbehci.h
1 #ifndef USBEHCI_H__
2 #define USBEHCI_H__
3
4 #include <ntddk.h>
5 #define YDEBUG
6 #include <debug.h>
7 #include <hubbusif.h>
8 #include <usbbusif.h>
9 #include <usbioctl.h>
10 #include <usb.h>
11 #include <stdio.h>
12 #include <wdmguid.h>
13
14 //
15 // FIXME:
16 // the following includes are required to get kcom to compile
17 //
18 #include <portcls.h>
19 #include <dmusicks.h>
20 #include <kcom.h>
21
22 #include "interfaces.h"
23
24 typedef struct
25 {
26 BOOLEAN IsFDO; // is device a FDO or PDO
27 BOOLEAN IsHub; // is device a hub / child - not yet used
28 PDISPATCHIRP Dispatcher; // dispatches the code
29 }COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
30
31 //
32 // tag for allocations
33 //
34 #define TAG_USBEHCI 'ICHE'
35
36 //
37 // assert for c++ - taken from portcls
38 //
39 #define PC_ASSERT(exp) \
40 (VOID)((!(exp)) ? \
41 RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
42
43 //
44 // hcd_controller.cpp
45 //
46 NTSTATUS CreateHCDController(PHCDCONTROLLER *HcdController);
47
48 //
49 // hardware.cpp
50 //
51 NTSTATUS CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
52
53 //
54 // misc.cpp
55 //
56 NTSTATUS NTAPI SyncForwardIrp(PDEVICE_OBJECT DeviceObject, PIRP Irp);
57 NTSTATUS NTAPI GetBusInterface(PDEVICE_OBJECT DeviceObject, PBUS_INTERFACE_STANDARD busInterface);
58
59 //
60 // root_hub_controller.cpp
61 //
62 NTSTATUS CreateHubController(PHUBCONTROLLER * OutHubController);
63
64 //
65 // memory_manager.cpp
66 //
67 NTSTATUS CreateDMAMemoryManager(PDMAMEMORYMANAGER *OutMemoryManager);
68
69
70 //
71 // usb_device.cpp
72 //
73 NTSTATUS CreateUSBDevice(PUSBDEVICE *OutDevice);
74
75 //
76 // usb_queue.cpp
77 //
78 NTSTATUS CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
79
80 #endif