2 * PROJECT: ReactOS ACPI-Compliant Control Method Battery
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: boot/drivers/bus/acpi/cmbatt/cmbatt.h
5 * PURPOSE: Main Header File
6 * PROGRAMMERS: ReactOS Portable Systems Group
16 #define CMBATT_GENERIC_STATUS 0x01
17 #define CMBATT_GENERIC_INFO 0x02
18 #define CMBATT_GENERIC_WARNING 0x04
19 #define CMBATT_ACPI_WARNING 0x08
20 #define CMBATT_POWER_INFO 0x10
21 #define CMBATT_PNP_INFO 0x20
22 #define CMBATT_ACPI_ENTRY_EXIT 0x40
23 #define CMBATT_PNP_ENTRY_EXIT 0x200
24 #define CMBATT_ACPI_ASSERT 0x400
26 typedef enum _CMBATT_EXTENSION_TYPE
30 } CMBATT_EXTENSION_TYPE
;
32 #define ACPI_BUS_CHECK 0x00
33 #define ACPI_DEVICE_CHECK 0x01
35 #define ACPI_STA_PRESENT 0x01
36 #define ACPI_STA_ENABLED 0x02
37 #define ACPI_STA_SHOW_UI 0x04
38 #define ACPI_STA_FUNCTIONAL 0x08
39 #define ACPI_STA_BATTERY_PRESENT 0x10
41 #define ACPI_BATT_NOTIFY_STATUS 0x80
42 #define ACPI_BATT_NOTIFY_INFO 0x81
44 #define ACPI_BATT_STAT_DISCHARG 0x0001
45 #define ACPI_BATT_STAT_CHARGING 0x0002
46 #define ACPI_BATT_STAT_CRITICAL 0x0004
48 #define CM_MAX_VALUE 0x7FFFFFFF
49 #define CM_UNKNOWN_VALUE 0xFFFFFFFF
51 typedef struct _ACPI_BST_DATA
55 ULONG RemainingCapacity
;
57 } ACPI_BST_DATA
, *PACPI_BST_DATA
;
59 #define ACPI_BATT_POWER_UNIT_WATTS 0x0
60 #define ACPI_BATT_POWER_UNIT_AMPS 0x1
62 typedef struct _ACPI_BIF_DATA
66 ULONG LastFullCapacity
;
67 ULONG BatteryTechnology
;
69 ULONG DesignCapacityWarning
;
70 ULONG DesignCapacityLow
;
71 ULONG BatteryCapacityGranularity1
;
72 ULONG BatteryCapacityGranularity2
;
73 CHAR ModelNumber
[256];
74 CHAR SerialNubmer
[256];
75 CHAR BatteryType
[256];
77 } ACPI_BIF_DATA
, *PACPI_BIF_DATA
;
79 #define CMBATT_AR_NOTIFY 0x01
80 #define CMBATT_AR_INSERT 0x02
81 #define CMBATT_AR_REMOVE 0x04
83 typedef struct _CMBATT_DEVICE_EXTENSION
85 CMBATT_EXTENSION_TYPE FdoType
;
86 PDEVICE_OBJECT DeviceObject
;
87 PDEVICE_OBJECT FdoDeviceObject
;
88 PDEVICE_OBJECT PdoDeviceObject
;
89 PDEVICE_OBJECT AttachedDevice
;
93 POWER_STATE PowerState
;
94 WMILIB_CONTEXT WmiLibInfo
;
99 PUNICODE_STRING DeviceName
;
100 ACPI_INTERFACE_STANDARD2 AcpiInterface
;
101 BOOLEAN DelayNotification
;
109 ULONG ModelNumberLength
;
111 ULONG SerialNumberLength
;
115 ACPI_BST_DATA BstData
;
116 ACPI_BIF_DATA BifData
;
119 ULONG RemainingCapacity
;
120 ULONG PresentVoltage
;
122 BATTERY_INFORMATION BatteryInformation
;
123 ULONG BatteryCapacityGranularity1
;
124 ULONG BatteryCapacityGranularity2
;
125 BOOLEAN TripPointSet
;
126 ULONG TripPointValue
;
128 ULONGLONG InterruptTime
;
129 } CMBATT_DEVICE_EXTENSION
, *PCMBATT_DEVICE_EXTENSION
;
134 PDEVICE_OBJECT DeviceObject
,
141 PDEVICE_OBJECT DeviceObject
,
148 PDRIVER_OBJECT DriverObject
,
149 PDEVICE_OBJECT DeviceObject
155 PDEVICE_OBJECT DeviceObject
,
162 PCMBATT_DEVICE_EXTENSION DeviceExtension
,
163 PACPI_BST_DATA BstData
169 PDEVICE_OBJECT DeviceObject
,
176 PDEVICE_OBJECT DeviceObject
,