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);
23 typedef struct _COMMON_DEVICE_EXTENSION
25 // Pointer to device object, this device extension is associated with
26 PDEVICE_OBJECT DeviceObject;
27 // Wether this device extension is for an FDO or PDO
29 // Wether the device is removed
31 // Current device power state for the device
32 DEVICE_POWER_STATE DevicePowerState;
33 // Lower device object
35 } COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
37 /* Physical Device Object device extension for a child device */
38 typedef struct _PDO_DEVICE_EXTENSION
41 COMMON_DEVICE_EXTENSION Common;
43 UNICODE_STRING HardwareIDs;
45 UNICODE_STRING CompatibleIDs;
46 } PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
48 typedef struct _FDO_DEVICE_EXTENSION
51 COMMON_DEVICE_EXTENSION Common;
52 // Physical Device Object
54 // Current state of the driver
55 ACPI_DEVICE_STATE State;
56 // Supported system states
57 BOOLEAN SystemStates[ACPI_S_STATE_COUNT];
58 // Namespace device list
59 LIST_ENTRY DeviceListHead;
60 // Number of devices in device list
61 ULONG DeviceListCount;
62 // Lock for namespace device list
63 KSPIN_LOCK DeviceListLock;
64 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
67 typedef struct _ACPI_DEVICE
69 // Entry on device list
70 LIST_ENTRY DeviceListEntry;
73 // Physical Device Object
75 // Initialization function
76 ACPI_DRIVER_FUNCTION Initialize;
78 ACPI_DRIVER_FUNCTION Terminate;
79 } ACPI_DEVICE, *PACPI_DEVICE;
85 ACPIEnumerateRootBusses(
86 PFDO_DEVICE_EXTENSION DeviceExtension);
89 ACPIEnumerateNamespace(
90 PFDO_DEVICE_EXTENSION DeviceExtension);
98 PDEVICE_OBJECT DeviceObject,
104 PDEVICE_OBJECT DeviceObject,
112 PDEVICE_OBJECT DeviceObject,
118 PDEVICE_OBJECT DeviceObject,