2 * PROJECT: ReactOS ACPI bus driver
3 * FILE: acpi/ospm/include/acpisys.h
4 * PURPOSE: ACPI bus driver definitions
11 typedef ACPI_STATUS (*ACPI_DRIVER_FUNCTION
)(VOID
);
24 typedef struct _COMMON_DEVICE_EXTENSION
26 // Pointer to device object, this device extension is associated with
27 PDEVICE_OBJECT DeviceObject
;
28 // Wether this device extension is for an FDO or PDO
30 // Wether the device is removed
32 // Current device power state for the device
33 DEVICE_POWER_STATE DevicePowerState
;
34 // Lower device object
36 } COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
39 /* Physical Device Object device extension for a child device */
40 typedef struct _PDO_DEVICE_EXTENSION
43 COMMON_DEVICE_EXTENSION Common
;
45 UNICODE_STRING DeviceID
;
47 UNICODE_STRING InstanceID
;
49 UNICODE_STRING HardwareIDs
;
50 // Textual description of device
51 UNICODE_STRING DeviceDescription
;
53 PCM_RESOURCE_LIST ResourceList
;
54 ULONG ResourceListSize
;
56 PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
;
57 ULONG ResourceRequirementsListSize
;
58 } PDO_DEVICE_EXTENSION
, *PPDO_DEVICE_EXTENSION
;
61 typedef struct _FDO_DEVICE_EXTENSION
64 COMMON_DEVICE_EXTENSION Common
;
65 // Physical Device Object
67 // Current state of the driver
68 ACPI_DEVICE_STATE State
;
69 // Supported system states
70 BOOLEAN SystemStates
[ACPI_S_STATE_COUNT
];
71 // Namespace device list
72 LIST_ENTRY DeviceListHead
;
73 // Number of devices in device list
74 ULONG DeviceListCount
;
75 // Lock for namespace device list
76 KSPIN_LOCK DeviceListLock
;
77 } FDO_DEVICE_EXTENSION
, *PFDO_DEVICE_EXTENSION
;
80 typedef struct _ACPI_DEVICE
82 // Entry on device list
83 LIST_ENTRY DeviceListEntry
;
86 // Physical Device Object
88 // Initialization function
89 ACPI_DRIVER_FUNCTION Initialize
;
91 ACPI_DRIVER_FUNCTION Terminate
;
92 } ACPI_DEVICE
, *PACPI_DEVICE
;
99 PFDO_DEVICE_EXTENSION DeviceExtension
);
107 PDEVICE_OBJECT DeviceObject
,
113 PDEVICE_OBJECT DeviceObject
,
121 PDEVICE_OBJECT DeviceObject
,
127 PDEVICE_OBJECT DeviceObject
,