xref: /haiku/src/add-ons/kernel/drivers/power/acpi_thermal/acpi_thermal.h (revision 1d9d47fc72028bb71b5f232a877231e59cfe2438)
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 	/* Published thermal device number */
20 	int devnum;
21 
22 	/* Required fields for thermal devices */
23 	uint32 critical_temp;
24 	uint32 current_temp;
25 
26 	/* Optional HOT temp, S4 sleep threshold */
27 	uint32 hot_temp;
28 
29 	/* acpi_objects_type evaluated from _PSL
30 	   if != NULL, client must free()
31 	*/
32 	acpi_object_type *passive_package;
33 
34 	/* List of acpi_thermal_active_objects that can actively manage this thermal device */
35 	uint32 active_count;
36 	acpi_thermal_active_object *active_devices;
37 };
38 
39 struct acpi_thermal_active_object {
40 	uint32 threshold_temp;
41 	acpi_object_type *active_package;
42 };
43 
44 #endif /* _ACPI_THERMAL_H */