/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef _MSM_THERMAL_IOCTL_H #define _MSM_THERMAL_IOCTL_H #include <linux/ioctl.h> #define MSM_THERMAL_IOCTL_NAME "msm_thermal_query" #define MSM_IOCTL_FREQ_SIZE 16 struct __attribute__((__packed__)) cpu_freq_arg { uint32_t cpu_num; uint32_t freq_req; }; struct __attribute__((__packed__)) clock_plan_arg { uint32_t cluster_num; uint32_t freq_table_len; uint32_t set_idx; unsigned int freq_table[MSM_IOCTL_FREQ_SIZE]; }; struct __attribute__((__packed__)) voltage_plan_arg { uint32_t cluster_num; uint32_t voltage_table_len; uint32_t set_idx; uint32_t voltage_table[MSM_IOCTL_FREQ_SIZE]; }; struct __attribute__((__packed__)) msm_thermal_ioctl { uint32_t size; union { struct cpu_freq_arg cpu_freq; struct clock_plan_arg clock_freq; struct voltage_plan_arg voltage; }; }; enum { MSM_SET_CPU_MAX_FREQ = 0x00, MSM_SET_CPU_MIN_FREQ = 0x01, MSM_SET_CLUSTER_MAX_FREQ = 0x02, MSM_SET_CLUSTER_MIN_FREQ = 0x03, MSM_GET_CLUSTER_FREQ_PLAN = 0x04, MSM_GET_CLUSTER_VOLTAGE_PLAN = 0x05, MSM_CMD_MAX_NR, }; #define MSM_THERMAL_MAGIC_NUM 0xCA #define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl) #define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl) #define MSM_THERMAL_SET_CLUSTER_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MAX_FREQ, struct msm_thermal_ioctl) #define MSM_THERMAL_SET_CLUSTER_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MIN_FREQ, struct msm_thermal_ioctl) #define MSM_THERMAL_GET_CLUSTER_FREQUENCY_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_FREQ_PLAN, struct msm_thermal_ioctl) #define MSM_THERMAL_GET_CLUSTER_VOLTAGE_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_VOLTAGE_PLAN, struct msm_thermal_ioctl) #endif