[PARPORT]
[reactos.git] / reactos / drivers / parallel / parport / parport.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Parallel Port Function Driver
4 * PURPOSE: Parport driver header
5 */
6
7 #ifndef _PARPORT_PCH_
8 #define _PARPORT_PCH_
9
10 #include <ntddk.h>
11 #include <ndk/haltypes.h>
12 #include <ntddpar.h>
13 #include <stdio.h>
14
15 //#define NDEBUG
16 #include <debug.h>
17
18 typedef enum
19 {
20 dsStopped,
21 dsStarted,
22 dsPaused,
23 dsRemoved,
24 dsSurpriseRemoved
25 } DEVICE_STATE;
26
27 typedef struct _COMMON_DEVICE_EXTENSION
28 {
29 BOOLEAN IsFDO;
30 DEVICE_STATE PnpState;
31 } COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
32
33 typedef struct _FDO_DEVICE_EXTENSION
34 {
35 COMMON_DEVICE_EXTENSION Common;
36
37 PDEVICE_OBJECT Pdo;
38 PDEVICE_OBJECT LowerDevice;
39
40 ULONG ParallelPortNumber;
41
42 ULONG LptPort;
43 ULONG OpenCount;
44
45 ULONG BaseAddress;
46 PKINTERRUPT Interrupt;
47
48 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
49
50 typedef struct _PDO_DEVICE_EXTENSION
51 {
52 COMMON_DEVICE_EXTENSION Common;
53
54 } PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
55
56
57 /* fdo.c */
58
59 DRIVER_ADD_DEVICE AddDevice;
60
61 NTSTATUS
62 NTAPI
63 FdoCreate(IN PDEVICE_OBJECT DeviceObject,
64 IN PIRP Irp);
65
66 NTSTATUS
67 NTAPI
68 FdoClose(IN PDEVICE_OBJECT DeviceObject,
69 IN PIRP Irp);
70
71 NTSTATUS
72 NTAPI
73 FdoCleanup(IN PDEVICE_OBJECT DeviceObject,
74 IN PIRP Irp);
75
76 NTSTATUS
77 NTAPI
78 FdoWrite(IN PDEVICE_OBJECT DeviceObject,
79 IN PIRP Irp);
80
81 NTSTATUS
82 NTAPI
83 FdoPnp(IN PDEVICE_OBJECT DeviceObject,
84 IN PIRP Irp);
85
86 NTSTATUS
87 NTAPI
88 FdoPower(IN PDEVICE_OBJECT DeviceObject,
89 IN PIRP Irp);
90
91
92 /* misc.c */
93
94 NTSTATUS
95 ForwardIrpAndWait(IN PDEVICE_OBJECT DeviceObject,
96 IN PIRP Irp);
97
98 DRIVER_DISPATCH ForwardIrpAndForget;
99
100 PVOID
101 GetUserBuffer(IN PIRP Irp);
102
103 //KSERVICE_ROUTINE ParportInterruptService;
104
105
106 /* pdo.c */
107
108 NTSTATUS
109 NTAPI
110 PdoCreate(IN PDEVICE_OBJECT DeviceObject,
111 IN PIRP Irp);
112
113 NTSTATUS
114 NTAPI
115 PdoClose(IN PDEVICE_OBJECT DeviceObject,
116 IN PIRP Irp);
117
118 NTSTATUS
119 NTAPI
120 PdoCleanup(IN PDEVICE_OBJECT DeviceObject,
121 IN PIRP Irp);
122
123 NTSTATUS
124 NTAPI
125 PdoWrite(IN PDEVICE_OBJECT DeviceObject,
126 IN PIRP Irp);
127
128 NTSTATUS
129 NTAPI
130 PdoPnp(IN PDEVICE_OBJECT DeviceObject,
131 IN PIRP Irp);
132
133 NTSTATUS
134 NTAPI
135 PdoPower(IN PDEVICE_OBJECT DeviceObject,
136 IN PIRP Irp);
137
138 #endif /* _PARPORT_PCH_ */