[USBCCGP]
[reactos.git] / drivers / usb / usbccgp / usbccgp.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 <usbdlib.h>
11
12 //
13 // FIXME:
14 // #include <usbprotocoldefs.h>
15 //
16 #include <usb.h>
17 #include <stdio.h>
18 #include <wdmguid.h>
19
20 typedef struct
21 {
22 BOOLEAN IsFDO; // is device a FDO or PDO
23 }COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
24
25 typedef struct
26 {
27 COMMON_DEVICE_EXTENSION Common; // shared with PDO
28 PDRIVER_OBJECT DriverObject; // driver object
29 PDEVICE_OBJECT PhysicalDeviceObject; // physical device object
30 PDEVICE_OBJECT NextDeviceObject; // lower device object
31 PUSB_DEVICE_DESCRIPTOR DeviceDescriptor; // usb device descriptor
32 PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; // usb configuration descriptor
33 DEVICE_CAPABILITIES Capabilities; // device capabilities
34 PUSBD_INTERFACE_LIST_ENTRY InterfaceList; // interface list
35 ULONG InterfaceListCount; // interface list count
36 USBD_CONFIGURATION_HANDLE ConfigurationHandle; // configuration handle
37 }FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
38
39 #define USBCCPG_TAG 'cbsu'
40
41 typedef struct
42 {
43 COMMON_DEVICE_EXTENSION Common; // shared with FDO
44
45 }PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
46
47 /* descriptor.c */
48
49 NTSTATUS
50 USBCCGP_GetDescriptors(
51 IN PDEVICE_OBJECT DeviceObject);
52
53 NTSTATUS
54 USBCCGP_SelectConfiguration(
55 IN PDEVICE_OBJECT DeviceObject,
56 IN PFDO_DEVICE_EXTENSION DeviceExtension);
57
58 /* misc.c */
59
60 NTSTATUS
61 NTAPI
62 USBCCGP_SyncForwardIrp(
63 PDEVICE_OBJECT DeviceObject,
64 PIRP Irp);
65
66 NTSTATUS
67 USBCCGP_SyncUrbRequest(
68 IN PDEVICE_OBJECT DeviceObject,
69 OUT PURB UrbRequest);
70
71 PVOID
72 AllocateItem(
73 IN POOL_TYPE PoolType,
74 IN ULONG ItemSize);
75
76 VOID
77 FreeItem(
78 IN PVOID Item);
79
80 /* fdo.c */
81
82 NTSTATUS
83 FDO_Dispatch(
84 PDEVICE_OBJECT DeviceObject,
85 PIRP Irp);
86
87 /* pdo.c */
88
89 NTSTATUS
90 PDO_Dispatch(
91 PDEVICE_OBJECT DeviceObject,
92 PIRP Irp);
93
94
95
96 #endif