2 * PROJECT: ReactOS ACPI bus driver
3 * FILE: acpi/ospm/include/acpisys.h
4 * PURPOSE: ACPI bus driver definitions
8 #define __INCLUDE_TYPES_H
9 #include <platform/types.h>
11 #include <ddk/ntddk.h>
14 typedef ACPI_STATUS (*ACPI_DRIVER_FUNCTION)(VOID);
26 typedef struct _COMMON_DEVICE_EXTENSION
28 // Pointer to device object, this device extension is associated with
29 PDEVICE_OBJECT DeviceObject;
30 // Wether this device extension is for an FDO or PDO
32 // Wether the device is removed
34 // Current device power state for the device
35 DEVICE_POWER_STATE DevicePowerState;
36 // Lower device object
38 } COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
40 /* Physical Device Object device extension for a child device */
41 typedef struct _PDO_DEVICE_EXTENSION
44 COMMON_DEVICE_EXTENSION Common;
46 UNICODE_STRING HardwareIDs;
48 UNICODE_STRING CompatibleIDs;
49 } PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
51 typedef struct _FDO_DEVICE_EXTENSION
54 COMMON_DEVICE_EXTENSION Common;
55 // Physical Device Object
57 // Current state of the driver
58 ACPI_DEVICE_STATE State;
59 // Supported system states
60 BOOLEAN SystemStates[ACPI_S_STATE_COUNT];
61 // Namespace device list
62 LIST_ENTRY DeviceListHead;
63 // Number of devices in device list
64 ULONG DeviceListCount;
65 // Lock for namespace device list
66 KSPIN_LOCK DeviceListLock;
67 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
70 typedef struct _ACPI_DEVICE
72 // Entry on device list
73 LIST_ENTRY DeviceListEntry;
76 // Physical Device Object
78 // Initialization function
79 ACPI_DRIVER_FUNCTION Initialize;
81 ACPI_DRIVER_FUNCTION Terminate;
82 } ACPI_DEVICE, *PACPI_DEVICE;
88 ACPIEnumerateRootBusses(
89 PFDO_DEVICE_EXTENSION DeviceExtension);
92 ACPIEnumerateNamespace(
93 PFDO_DEVICE_EXTENSION DeviceExtension);
101 PDEVICE_OBJECT DeviceObject,
107 PDEVICE_OBJECT DeviceObject,
115 PDEVICE_OBJECT DeviceObject,
121 PDEVICE_OBJECT DeviceObject,