xref: /reactos/drivers/bus/pcmcia/pcmcia.h (revision c2c66aff)
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_ */
55