00001
00002
00003
00004
00005
00011 #ifndef __LIBACPI_H__
00012 #define __LIBACPI_H__
00013
00014 #define PROC_ACPI "/proc/acpi/"
00015 #define LINE_MAX 256
00016 #define MAX_NAME 512
00017 #define MAX_BUF 1024
00018 #define MAX_ITEMS 10
00019
00024 enum {
00025 ITEM_EXCEED = -5,
00026 DISABLED = -4,
00027 NOT_PRESENT = -3,
00028 ALLOC_ERR = -2,
00029 NOT_SUPPORTED = -1,
00030 SUCCESS
00031 };
00032
00037 typedef enum {
00038 P_AC,
00039 P_BATT,
00040 P_ERR
00041 } power_state_t;
00042
00047 typedef enum {
00048 T_CRIT,
00049 T_HOT,
00050 T_PASS,
00051 T_ACT,
00052 T_OK,
00053 T_ERR
00054 } thermal_state_t;
00055
00060 typedef enum {
00061 C_CHARGE,
00062 C_DISCHARGE,
00063 C_CHARGED,
00064 C_NOINFO,
00065 C_ERR
00066 } charge_state_t;
00067
00072 typedef enum {
00073 B_HIGH,
00074 B_MED,
00075 B_LOW,
00076 B_CRIT,
00077 B_HARD_CRIT,
00078 B_ERR
00079 } batt_state_t;
00080
00085 typedef enum {
00086 CO_ACT,
00087 CO_PASS,
00088 CO_CRIT,
00089 CO_ERR
00090 } thermal_mode_t;
00091
00096 typedef enum {
00097 F_ON,
00098 F_OFF,
00099 F_ERR
00100 } fan_state_t;
00101
00106 typedef struct {
00107 char name[MAX_NAME];
00108 char state_file[MAX_NAME];
00109 fan_state_t fan_state;
00110 } fan_t;
00111
00116 typedef struct {
00117 char name[MAX_NAME];
00118 char state_file[MAX_NAME];
00119 char info_file[MAX_NAME];
00120 char alarm_file[MAX_NAME];
00121 int present;
00122 int design_cap;
00123 int last_full_cap;
00124 int design_voltage;
00125 int present_rate;
00126 int remaining_cap;
00127 int present_voltage;
00128 int design_warn;
00129 int design_low;
00130 int design_level1;
00131 int design_level2;
00132 int alarm;
00133
00134 int percentage;
00135 int charge_time;
00136 int remaining_time;
00138
00139 charge_state_t charge_state;
00140 batt_state_t batt_state;
00141 } battery_t;
00142
00147 typedef struct {
00148 char name[MAX_NAME];
00149 int temperature;
00150 int frequency;
00151 char state_file[MAX_NAME];
00152 char cooling_file[MAX_NAME];
00153 char freq_file[MAX_NAME];
00154 char trips_file[MAX_NAME];
00155 char temp_file[MAX_NAME];
00156 thermal_mode_t therm_mode;
00157 thermal_state_t therm_state;
00158 } thermal_t;
00159
00164 typedef struct {
00165 char *name;
00166 char state_file[MAX_NAME];
00167 power_state_t ac_state;
00168 } adapter_t;
00169
00174 typedef struct {
00175 int batt_count;
00176 int thermal_count;
00177 int fan_count;
00178 int temperature;
00179 adapter_t adapt;
00180 } global_t;
00181
00186 battery_t batteries[MAX_ITEMS];
00191 thermal_t thermals[MAX_ITEMS];
00196 fan_t fans[MAX_ITEMS];
00203 int init_acpi_batt(global_t *globals);
00210 int init_acpi_acadapt(global_t *globals);
00217 int init_acpi_thermal(global_t *globals);
00224 int init_acpi_fan(global_t *globals);
00225
00230 int check_acpi_support(void);
00231
00237 int read_acpi_batt(const int num);
00243 void read_acpi_acstate(global_t *globals);
00250 int read_acpi_zone(const int num, global_t *globals);
00256 int read_acpi_fan(const int num);
00257 #endif