1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _MSM_THERMAL_IOCTL_H
20 #define _MSM_THERMAL_IOCTL_H
21 #include <linux/ioctl.h>
22 #define MSM_THERMAL_IOCTL_NAME "msm_thermal_query"
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define MSM_IOCTL_FREQ_SIZE 16
25 struct __attribute__((__packed__)) cpu_freq_arg {
26   uint32_t cpu_num;
27   uint32_t freq_req;
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 };
30 struct __attribute__((__packed__)) clock_plan_arg {
31   uint32_t cluster_num;
32   uint32_t freq_table_len;
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34   uint32_t set_idx;
35   unsigned int freq_table[MSM_IOCTL_FREQ_SIZE];
36 };
37 struct __attribute__((__packed__)) voltage_plan_arg {
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   uint32_t cluster_num;
40   uint32_t voltage_table_len;
41   uint32_t set_idx;
42   uint32_t voltage_table[MSM_IOCTL_FREQ_SIZE];
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 };
45 struct __attribute__((__packed__)) msm_thermal_ioctl {
46   uint32_t size;
47   union {
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49     struct cpu_freq_arg cpu_freq;
50     struct clock_plan_arg clock_freq;
51     struct voltage_plan_arg voltage;
52   };
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 };
55 enum {
56   MSM_SET_CPU_MAX_FREQ = 0x00,
57   MSM_SET_CPU_MIN_FREQ = 0x01,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   MSM_SET_CLUSTER_MAX_FREQ = 0x02,
60   MSM_SET_CLUSTER_MIN_FREQ = 0x03,
61   MSM_GET_CLUSTER_FREQ_PLAN = 0x04,
62   MSM_GET_CLUSTER_VOLTAGE_PLAN = 0x05,
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   MSM_CMD_MAX_NR,
65 };
66 #define MSM_THERMAL_MAGIC_NUM 0xCA
67 #define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl)
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl)
70 #define MSM_THERMAL_SET_CLUSTER_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MAX_FREQ, struct msm_thermal_ioctl)
71 #define MSM_THERMAL_SET_CLUSTER_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MIN_FREQ, struct msm_thermal_ioctl)
72 #define MSM_THERMAL_GET_CLUSTER_FREQUENCY_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_FREQ_PLAN, struct msm_thermal_ioctl)
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define MSM_THERMAL_GET_CLUSTER_VOLTAGE_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_VOLTAGE_PLAN, struct msm_thermal_ioctl)
75 #endif
76 
77