[USBEHCI]
[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 //
11 // FIXME:
12 // #include <usbprotocoldefs.h>
13 //
14 #include <usb.h>
15 #include <stdio.h>
16 #include <wdmguid.h>
17
18 //
19 // FIXME:
20 // the following includes are required to get kcom to compile
21 //
22 #include <portcls.h>
23 #include <dmusicks.h>
24 #include <kcom.h>
25
26 #include "interfaces.h"
27
28 //
29 // flags for handling USB_REQUEST_SET_FEATURE / USB_REQUEST_GET_FEATURE
30 //
31 #define PORT_ENABLE 1
32 #define PORT_SUSPEND 2
33 #define PORT_OVER_CURRENT 3
34 #define PORT_RESET 4
35 #define PORT_POWER 8
36 #define C_PORT_CONNECTION 16
37 #define C_PORT_ENABLE 17
38 #define C_PORT_SUSPEND 18
39 #define C_PORT_OVER_CURRENT 19
40 #define C_PORT_RESET 20
41
42 typedef struct
43 {
44 BOOLEAN IsFDO; // is device a FDO or PDO
45 BOOLEAN IsHub; // is device a hub / child - not yet used
46 PDISPATCHIRP Dispatcher; // dispatches the code
47 }COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
48
49 //
50 // tag for allocations
51 //
52 #define TAG_USBEHCI 'ICHE'
53
54 //
55 // assert for c++ - taken from portcls
56 //
57 #define PC_ASSERT(exp) \
58 (VOID)((!(exp)) ? \
59 RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
60
61 //
62 // hcd_controller.cpp
63 //
64 NTSTATUS CreateHCDController(PHCDCONTROLLER *HcdController);
65
66 //
67 // hardware.cpp
68 //
69 NTSTATUS CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
70
71 //
72 // misc.cpp
73 //
74 NTSTATUS NTAPI SyncForwardIrp(PDEVICE_OBJECT DeviceObject, PIRP Irp);
75 NTSTATUS NTAPI GetBusInterface(PDEVICE_OBJECT DeviceObject, PBUS_INTERFACE_STANDARD busInterface);
76
77 //
78 // root_hub_controller.cpp
79 //
80 NTSTATUS CreateHubController(PHUBCONTROLLER * OutHubController);
81
82 //
83 // memory_manager.cpp
84 //
85 NTSTATUS CreateDMAMemoryManager(PDMAMEMORYMANAGER *OutMemoryManager);
86
87
88 //
89 // usb_device.cpp
90 //
91 NTSTATUS CreateUSBDevice(PUSBDEVICE *OutDevice);
92
93 //
94 // usb_queue.cpp
95 //
96 NTSTATUS CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
97
98 //
99 // usb_request.cpp
100 //
101 NTSTATUS InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
102
103 #endif