Sync with trunk r62754.
[reactos.git] / drivers / bus / pcmcia / pcmcia.h
1 #ifndef _PCMCIA_PCH_
2 #define _PCMCIA_PCH_
3
4 #include <wdm.h>
5
6 typedef enum
7 {
8 dsStopped,
9 dsStarted,
10 dsPaused,
11 dsRemoved,
12 dsSurpriseRemoved
13 } PCMCIA_DEVICE_STATE;
14
15 typedef struct _PCMCIA_COMMON_EXTENSION
16 {
17 PDEVICE_OBJECT Self;
18 BOOLEAN IsFDO;
19 POWER_SEQUENCE PowerSequence;
20 PCMCIA_DEVICE_STATE State;
21 DEVICE_POWER_STATE DevicePowerState;
22 SYSTEM_POWER_STATE SystemPowerState;
23 } PCMCIA_COMMON_EXTENSION, *PPCMCIA_COMMON_EXTENSION;
24
25 typedef struct _PCMCIA_PDO_EXTENSION
26 {
27 PCMCIA_COMMON_EXTENSION Common;
28 } PCMCIA_PDO_EXTENSION, *PPCMCIA_PDO_EXTENSION;
29
30 typedef struct _PCMCIA_FDO_EXTENSION
31 {
32 PCMCIA_COMMON_EXTENSION Common;
33 PDEVICE_OBJECT Ldo;
34 LIST_ENTRY ChildDeviceList;
35 KSPIN_LOCK Lock;
36 } PCMCIA_FDO_EXTENSION, *PPCMCIA_FDO_EXTENSION;
37
38 /* pdo.c */
39 NTSTATUS
40 NTAPI
41 PcmciaPdoPlugPlay(PPCMCIA_PDO_EXTENSION PdoExt,
42 PIRP Irp);
43
44 NTSTATUS
45 NTAPI
46 PcmciaPdoSetPowerState(PPCMCIA_PDO_EXTENSION PdoExt);
47
48 /* fdo.c */
49 NTSTATUS
50 NTAPI
51 PcmciaFdoPlugPlay(PPCMCIA_FDO_EXTENSION FdoExt,
52 PIRP Irp);
53
54 #endif /* _PCMCIA_PCH_ */