/* * Simple interface library for fan control operations * This file provides interface functions to support pwmtachtool. * Copyright (C) <2019> * */ #ifndef __PWMTACH_IOCTL_H__ #define __PWMTACH_IOCTL_H__ typedef struct { unsigned char id; unsigned int value; }__attribute__((packed)) pwmtach_property_t; typedef struct { char device_name[16]; unsigned int dev_id; unsigned int num_fans; unsigned char fannumber; unsigned int rpmvalue; unsigned int min_rpm; unsigned int max_rpm; unsigned char prevdutycycle; unsigned char dutycycle; unsigned int prescalervalue; unsigned int counterresvalue; unsigned int tachnumber; unsigned int pwmnumber; unsigned char status; pwmtach_property_t property; void* fanproperty_dataptr; void* fanmap_dataptr; } __attribute__((packed)) pwmtach_data_t; #define ENABLE_PWM_CHANNEL _IOW('P', 0, int) #define DISABLE_PWM_CHANNEL _IOW('P', 1, int) #define ENABLE_TACH_CHANNEL _IOW('P', 2, int) #define DISABLE_TACH_CHANNEL _IOW('P', 3, int) #define SET_DUTY_CYCLE_BY_PWM_CHANNEL _IOW('P', 4, int) #define SET_DUTY_CYCLE_VALUE_BY_PWM_CHANNEL _IOW('P', 5, int) #define GET_TACH_VALUE_BY_TACH_CHANNEL _IOR('P', 6, int) #define ENABLE_PWM _IOW('P', 7, int) #define ENABLE_ALL_PWM _IOW('P', 8, int) #define ENABLE_TACH _IOW('P', 9, int) #define ENABLE_ALL_TACH _IOW('P', 10, int) #define DISABLE_PWM _IOW('P', 11, int) #define DISABLE_ALL_PWM _IOW('P', 12, int) #define DISABLE_TACH _IOW('P', 13, int) #define DISABLE_ALL_TACH _IOW('P', 14, int) #define GET_TACH_STATUS _IOR('P', 15, int) #define GET_PWM_STATUS _IOR('P', 16, int) #define GET_PWM_CHANNEL_STATUS _IOR('P', 17, int) #define GET_TACH_VALUE _IOW('P', 18, int) #define SET_DUTY_CYCLE _IOW('P', 19, int) #define INIT_PWMTACH _IOW('P', 20, int) #define CONFIGURE_FANMAP_TABLE _IOW('P', 21, int) #define CONFIGURE_FANPROPERTY_TABLE _IOW('P', 22, int) #define SHOW_FANMAP_TABLE _IOR('P', 23, int) #define SHOW_FANPROPERTY_TABLE _IOR('P', 24, int) #define GET_FAN_RPM_RANGE _IOR('P', 25, int) #define GET_DUTY_CYCLE _IOR('P', 26, int) #define SET_TACH_PROPERTY _IOW('P', 27, int) #define GET_TACH_PROPERTY _IOR('P', 28, int) #define SET_PWM_PROPERTY _IOW('P', 29, int) #define GET_PWM_PROPERTY _IOR('P', 30, int) #define CLEAR_TACH_ERROR _IOW('P', 31, int) #define CLEAR_PWM_ERRORS _IOW('P', 32, int) #define END_OF_FUNC_TABLE _IOW('P', 33, int) typedef pwmtach_data_t pwmtach_ioctl_data; #endif // __PWMTACH_IOCTL_H__