2 * PROJECT: ReactOS ACPI bus driver
3 * FILE: acpi/ospm/include/acpisys.h
4 * PURPOSE: ACPI bus driver definitions
8 typedef ACPI_STATUS (*ACPI_DRIVER_FUNCTION
)(VOID
);
21 typedef struct _COMMON_DEVICE_EXTENSION
23 // Pointer to device object, this device extension is associated with
24 PDEVICE_OBJECT DeviceObject
;
25 // Wether this device extension is for an FDO or PDO
27 // Wether the device is removed
29 // Current device power state for the device
30 DEVICE_POWER_STATE DevicePowerState
;
31 // Lower device object
33 } COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
36 /* Physical Device Object device extension for a child device */
37 typedef struct _PDO_DEVICE_EXTENSION
40 COMMON_DEVICE_EXTENSION Common
;
42 UNICODE_STRING DeviceID
;
44 UNICODE_STRING InstanceID
;
46 UNICODE_STRING HardwareIDs
;
47 // Textual description of device
48 UNICODE_STRING DeviceDescription
;
50 PCM_RESOURCE_LIST ResourceList
;
51 ULONG ResourceListSize
;
53 PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirementsList
;
54 ULONG ResourceRequirementsListSize
;
55 } PDO_DEVICE_EXTENSION
, *PPDO_DEVICE_EXTENSION
;
58 typedef struct _FDO_DEVICE_EXTENSION
61 COMMON_DEVICE_EXTENSION Common
;
62 // Physical Device Object
64 // Current state of the driver
65 ACPI_DEVICE_STATE State
;
66 // Supported system states
67 BOOLEAN SystemStates
[ACPI_S_STATE_COUNT
];
68 // Namespace device list
69 LIST_ENTRY DeviceListHead
;
70 // Number of devices in device list
71 ULONG DeviceListCount
;
72 // Lock for namespace device list
73 KSPIN_LOCK DeviceListLock
;
74 } FDO_DEVICE_EXTENSION
, *PFDO_DEVICE_EXTENSION
;
77 typedef struct _ACPI_DEVICE
79 // Entry on device list
80 LIST_ENTRY DeviceListEntry
;
83 // Physical Device Object
85 // Initialization function
86 ACPI_DRIVER_FUNCTION Initialize
;
88 ACPI_DRIVER_FUNCTION Terminate
;
89 } ACPI_DEVICE
, *PACPI_DEVICE
;
96 PFDO_DEVICE_EXTENSION DeviceExtension
);
104 PDEVICE_OBJECT DeviceObject
,
110 PDEVICE_OBJECT DeviceObject
,
118 PDEVICE_OBJECT DeviceObject
,
124 PDEVICE_OBJECT DeviceObject
,