Home | History | Annotate | Download | only in linux
      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 #define MSM_IOCTL_FREQ_SIZE 16
     24 struct __attribute__((__packed__)) cpu_freq_arg {
     25   uint32_t cpu_num;
     26   uint32_t freq_req;
     27 };
     28 struct __attribute__((__packed__)) clock_plan_arg {
     29   uint32_t cluster_num;
     30   uint32_t freq_table_len;
     31   uint32_t set_idx;
     32   unsigned int freq_table[MSM_IOCTL_FREQ_SIZE];
     33 };
     34 struct __attribute__((__packed__)) voltage_plan_arg {
     35   uint32_t cluster_num;
     36   uint32_t voltage_table_len;
     37   uint32_t set_idx;
     38   uint32_t voltage_table[MSM_IOCTL_FREQ_SIZE];
     39 };
     40 struct __attribute__((__packed__)) msm_thermal_ioctl {
     41   uint32_t size;
     42   union {
     43     struct cpu_freq_arg cpu_freq;
     44     struct clock_plan_arg clock_freq;
     45     struct voltage_plan_arg voltage;
     46   };
     47 };
     48 enum {
     49   MSM_SET_CPU_MAX_FREQ = 0x00,
     50   MSM_SET_CPU_MIN_FREQ = 0x01,
     51   MSM_SET_CLUSTER_MAX_FREQ = 0x02,
     52   MSM_SET_CLUSTER_MIN_FREQ = 0x03,
     53   MSM_GET_CLUSTER_FREQ_PLAN = 0x04,
     54   MSM_GET_CLUSTER_VOLTAGE_PLAN = 0x05,
     55   MSM_CMD_MAX_NR,
     56 };
     57 #define MSM_THERMAL_MAGIC_NUM 0xCA
     58 #define MSM_THERMAL_SET_CPU_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MAX_FREQ, struct msm_thermal_ioctl)
     59 #define MSM_THERMAL_SET_CPU_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CPU_MIN_FREQ, struct msm_thermal_ioctl)
     60 #define MSM_THERMAL_SET_CLUSTER_MAX_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MAX_FREQ, struct msm_thermal_ioctl)
     61 #define MSM_THERMAL_SET_CLUSTER_MIN_FREQUENCY _IOW(MSM_THERMAL_MAGIC_NUM, MSM_SET_CLUSTER_MIN_FREQ, struct msm_thermal_ioctl)
     62 #define MSM_THERMAL_GET_CLUSTER_FREQUENCY_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_FREQ_PLAN, struct msm_thermal_ioctl)
     63 #define MSM_THERMAL_GET_CLUSTER_VOLTAGE_PLAN _IOR(MSM_THERMAL_MAGIC_NUM, MSM_GET_CLUSTER_VOLTAGE_PLAN, struct msm_thermal_ioctl)
     64 #endif
     65 
     66