xref: /haiku/src/add-ons/kernel/drivers/power/acpi_thermal/acpi_thermal.h (revision 66581f37319cb169eb3095496869c7846731282d)
1 /* ++++++++++
2      Public interface to the ACPI thermal device driver.
3 +++++ */
4 #ifndef _ACPI_THERMAL_H
5 #define _ACPI_THERMAL_H
6 
7 #include <KernelExport.h>
8 #include <ACPI.h>
9 
10 enum { /* ioctl op-codes */
11 	drvOpGetThermalType = B_DEVICE_OP_CODES_END + 10001,
12 };
13 
14 
15 typedef struct acpi_thermal_active_object acpi_thermal_active_object;
16 typedef struct acpi_thermal_type acpi_thermal_type;
17 
18 struct acpi_thermal_type {
19 	/* Required fields for thermal devices */
20 	uint32 critical_temp;
21 	uint32 current_temp;
22 
23 	/* Optional HOT temp, S4 sleep threshold */
24 	uint32 hot_temp;
25 
26 	/* acpi_objects_type evaluated from _PSL
27 	   if != NULL, client must free()
28 	*/
29 	acpi_object_type *passive_package;
30 
31 	/* List of acpi_thermal_active_objects that can actively manage this thermal device */
32 	uint32 active_count;
33 	acpi_thermal_active_object *active_devices;
34 };
35 
36 struct acpi_thermal_active_object {
37 	uint32 threshold_temp;
38 	acpi_object_type *active_package;
39 };
40 
41 #endif /* _ACPI_THERMAL_H */
42