Let OHCI miniport use shared code in drivers/usb/miniport/common/*, instead of duplic...
[reactos.git] / reactos / drivers / usb / miniport / common / usbcommon.h
1 #ifndef _USBMP_COMMON_H_
2 #define _USBMP_COMMON_H_
3
4 // config and include core/hcd.h, for hc_device struct struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, unsigned ifnum)
5
6 #include "../usb_wrapper.h"
7 #include <usbdi.h>
8 #include <usbiodef.h>
9 #include <initguid.h>
10 #include <ntdd8042.h>
11
12 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
13 #define USB_MINIPORT_TAG TAG('u','s','b','m')
14
15 #include "../../usbport/hcd.h"
16 #include "usbcommon_types.h"
17
18 extern CONNECT_DATA KbdClassInformation;
19 extern CONNECT_DATA MouseClassInformation;
20 extern PDEVICE_OBJECT KeyboardFdo;
21 extern PDEVICE_OBJECT MouseFdo;
22
23 /* cleanup.c */
24 NTSTATUS STDCALL
25 UsbMpCleanup(
26 IN PDEVICE_OBJECT DeviceObject,
27 IN PIRP Irp);
28
29 /* close.c */
30 NTSTATUS STDCALL
31 UsbMpClose(
32 IN PDEVICE_OBJECT DeviceObject,
33 IN PIRP Irp);
34
35 /* create.c */
36 NTSTATUS STDCALL
37 UsbMpCreate(
38 IN PDEVICE_OBJECT DeviceObject,
39 IN PIRP Irp);
40
41 /* fdo.c */
42 NTSTATUS STDCALL
43 UsbMpPnpFdo(
44 IN PDEVICE_OBJECT DeviceObject,
45 IN PIRP Irp);
46
47 NTSTATUS
48 UsbMpDeviceControlFdo(
49 IN PDEVICE_OBJECT DeviceObject,
50 IN PIRP Irp);
51
52 NTSTATUS
53 UsbMpInternalDeviceControlFdo(
54 IN PDEVICE_OBJECT DeviceObject,
55 IN PIRP Irp);
56
57 /* misc.c */
58 NTSTATUS
59 ForwardIrpAndWait(
60 IN PDEVICE_OBJECT DeviceObject,
61 IN PIRP Irp);
62
63 NTSTATUS STDCALL
64 ForwardIrpAndForget(
65 IN PDEVICE_OBJECT DeviceObject,
66 IN PIRP Irp);
67
68 NTSTATUS
69 UsbMpDuplicateUnicodeString(
70 OUT PUNICODE_STRING Destination,
71 IN PUNICODE_STRING Source,
72 IN POOL_TYPE PoolType);
73
74 NTSTATUS
75 UsbMpInitMultiSzString(
76 OUT PUNICODE_STRING Destination,
77 ... /* list of PCSZ */);
78
79 /* pdo.c */
80 NTSTATUS STDCALL
81 UsbMpPnpPdo(
82 IN PDEVICE_OBJECT DeviceObject,
83 IN PIRP Irp);
84
85 NTSTATUS
86 UsbMpDeviceControlPdo(
87 IN PDEVICE_OBJECT DeviceObject,
88 IN PIRP Irp);
89
90 /* Needed by this object library */
91 VOID STDCALL
92 DriverUnload(PDRIVER_OBJECT DriverObject);
93
94 NTSTATUS
95 InitLinuxWrapper(PDEVICE_OBJECT DeviceObject);
96
97 extern struct pci_device_id* pci_ids;
98
99 #endif