diff options
Diffstat (limited to 'daemon/libsensors/sensors.h')
-rw-r--r-- | daemon/libsensors/sensors.h | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/daemon/libsensors/sensors.h b/daemon/libsensors/sensors.h new file mode 100644 index 0000000..7874d02 --- /dev/null +++ b/daemon/libsensors/sensors.h | |||
@@ -0,0 +1,311 @@ | |||
1 | /* | ||
2 | sensors.h - Part of libsensors, a Linux library for reading sensor data. | ||
3 | Copyright (c) 1998, 1999 Frodo Looijaard <frodol@dds.nl> | ||
4 | Copyright (C) 2007, 2010 Jean Delvare <khali@linux-fr.org> | ||
5 | |||
6 | This library is free software; you can redistribute it and/or | ||
7 | modify it under the terms of the GNU Lesser General Public | ||
8 | License as published by the Free Software Foundation; either | ||
9 | version 2.1 of the License, or (at your option) any later version. | ||
10 | |||
11 | This library is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU Lesser General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
19 | MA 02110-1301 USA. | ||
20 | */ | ||
21 | |||
22 | /*** This file modified by ARM on Jan 23, 2013 to read non-scaled values. ***/ | ||
23 | |||
24 | #ifndef LIB_SENSORS_SENSORS_H | ||
25 | #define LIB_SENSORS_SENSORS_H | ||
26 | |||
27 | #include <stdio.h> | ||
28 | #include <limits.h> | ||
29 | |||
30 | /* Publicly accessible library functions */ | ||
31 | |||
32 | /* libsensors API version define, first digit is the major version (changed | ||
33 | when the API + ABI breaks), the third digit is incremented to track small | ||
34 | API additions like new flags / enum values. The second digit is for tracking | ||
35 | larger additions like new methods. */ | ||
36 | #define SENSORS_API_VERSION 0x432 | ||
37 | |||
38 | #define SENSORS_CHIP_NAME_PREFIX_ANY NULL | ||
39 | #define SENSORS_CHIP_NAME_ADDR_ANY (-1) | ||
40 | |||
41 | #define SENSORS_BUS_TYPE_ANY (-1) | ||
42 | #define SENSORS_BUS_TYPE_I2C 0 | ||
43 | #define SENSORS_BUS_TYPE_ISA 1 | ||
44 | #define SENSORS_BUS_TYPE_PCI 2 | ||
45 | #define SENSORS_BUS_TYPE_SPI 3 | ||
46 | #define SENSORS_BUS_TYPE_VIRTUAL 4 | ||
47 | #define SENSORS_BUS_TYPE_ACPI 5 | ||
48 | #define SENSORS_BUS_TYPE_HID 6 | ||
49 | #define SENSORS_BUS_NR_ANY (-1) | ||
50 | #define SENSORS_BUS_NR_IGNORE (-2) | ||
51 | |||
52 | #ifdef __cplusplus | ||
53 | extern "C" { | ||
54 | #endif /* __cplusplus */ | ||
55 | |||
56 | extern const char *libsensors_version; | ||
57 | |||
58 | extern int sensors_sysfs_no_scaling; | ||
59 | |||
60 | typedef struct sensors_bus_id { | ||
61 | short type; | ||
62 | short nr; | ||
63 | } sensors_bus_id; | ||
64 | |||
65 | /* A chip name is encoded in this structure */ | ||
66 | typedef struct sensors_chip_name { | ||
67 | char *prefix; | ||
68 | sensors_bus_id bus; | ||
69 | int addr; | ||
70 | char *path; | ||
71 | } sensors_chip_name; | ||
72 | |||
73 | /* Load the configuration file and the detected chips list. If this | ||
74 | returns a value unequal to zero, you are in trouble; you can not | ||
75 | assume anything will be initialized properly. If you want to | ||
76 | reload the configuration file, call sensors_cleanup() below before | ||
77 | calling sensors_init() again. */ | ||
78 | int sensors_init(FILE *input); | ||
79 | |||
80 | /* Clean-up function: You can't access anything after | ||
81 | this, until the next sensors_init() call! */ | ||
82 | void sensors_cleanup(void); | ||
83 | |||
84 | /* Parse a chip name to the internal representation. Return 0 on success, <0 | ||
85 | on error. */ | ||
86 | int sensors_parse_chip_name(const char *orig_name, sensors_chip_name *res); | ||
87 | |||
88 | /* Free memory allocated for the internal representation of a chip name. */ | ||
89 | void sensors_free_chip_name(sensors_chip_name *chip); | ||
90 | |||
91 | /* Print a chip name from its internal representation. Note that chip should | ||
92 | not contain wildcard values! Return the number of characters printed on | ||
93 | success (same as snprintf), <0 on error. */ | ||
94 | int sensors_snprintf_chip_name(char *str, size_t size, | ||
95 | const sensors_chip_name *chip); | ||
96 | |||
97 | /* This function returns the adapter name of a bus, | ||
98 | as used within the sensors_chip_name structure. If it could not be found, | ||
99 | it returns NULL */ | ||
100 | const char *sensors_get_adapter_name(const sensors_bus_id *bus); | ||
101 | |||
102 | typedef struct sensors_feature sensors_feature; | ||
103 | |||
104 | /* Look up the label for a given feature. Note that chip should not | ||
105 | contain wildcard values! The returned string is newly allocated (free it | ||
106 | yourself). On failure, NULL is returned. | ||
107 | If no label exists for this feature, its name is returned itself. */ | ||
108 | char *sensors_get_label(const sensors_chip_name *name, | ||
109 | const sensors_feature *feature); | ||
110 | |||
111 | /* Read the value of a subfeature of a certain chip. Note that chip should not | ||
112 | contain wildcard values! This function will return 0 on success, and <0 | ||
113 | on failure. */ | ||
114 | int sensors_get_value(const sensors_chip_name *name, int subfeat_nr, | ||
115 | double *value); | ||
116 | |||
117 | /* Set the value of a subfeature of a certain chip. Note that chip should not | ||
118 | contain wildcard values! This function will return 0 on success, and <0 | ||
119 | on failure. */ | ||
120 | int sensors_set_value(const sensors_chip_name *name, int subfeat_nr, | ||
121 | double value); | ||
122 | |||
123 | /* Execute all set statements for this particular chip. The chip may contain | ||
124 | wildcards! This function will return 0 on success, and <0 on failure. */ | ||
125 | int sensors_do_chip_sets(const sensors_chip_name *name); | ||
126 | |||
127 | /* This function returns all detected chips that match a given chip name, | ||
128 | one by one. If no chip name is provided, all detected chips are returned. | ||
129 | To start at the beginning of the list, use 0 for nr; NULL is returned if | ||
130 | we are at the end of the list. Do not try to change these chip names, as | ||
131 | they point to internal structures! */ | ||
132 | const sensors_chip_name *sensors_get_detected_chips(const sensors_chip_name | ||
133 | *match, int *nr); | ||
134 | |||
135 | /* These defines are used in the flags field of sensors_subfeature */ | ||
136 | #define SENSORS_MODE_R 1 | ||
137 | #define SENSORS_MODE_W 2 | ||
138 | #define SENSORS_COMPUTE_MAPPING 4 | ||
139 | |||
140 | typedef enum sensors_feature_type { | ||
141 | SENSORS_FEATURE_IN = 0x00, | ||
142 | SENSORS_FEATURE_FAN = 0x01, | ||
143 | SENSORS_FEATURE_TEMP = 0x02, | ||
144 | SENSORS_FEATURE_POWER = 0x03, | ||
145 | SENSORS_FEATURE_ENERGY = 0x04, | ||
146 | SENSORS_FEATURE_CURR = 0x05, | ||
147 | SENSORS_FEATURE_HUMIDITY = 0x06, | ||
148 | SENSORS_FEATURE_MAX_MAIN, | ||
149 | SENSORS_FEATURE_VID = 0x10, | ||
150 | SENSORS_FEATURE_INTRUSION = 0x11, | ||
151 | SENSORS_FEATURE_MAX_OTHER, | ||
152 | SENSORS_FEATURE_BEEP_ENABLE = 0x18, | ||
153 | SENSORS_FEATURE_UNKNOWN = INT_MAX, | ||
154 | } sensors_feature_type; | ||
155 | |||
156 | /* All the sensor types (in, fan, temp, vid) are a multiple of 0x100 apart, | ||
157 | and sensor subfeatures which have no compute mapping have bit 7 set. */ | ||
158 | typedef enum sensors_subfeature_type { | ||
159 | SENSORS_SUBFEATURE_IN_INPUT = SENSORS_FEATURE_IN << 8, | ||
160 | SENSORS_SUBFEATURE_IN_MIN, | ||
161 | SENSORS_SUBFEATURE_IN_MAX, | ||
162 | SENSORS_SUBFEATURE_IN_LCRIT, | ||
163 | SENSORS_SUBFEATURE_IN_CRIT, | ||
164 | SENSORS_SUBFEATURE_IN_AVERAGE, | ||
165 | SENSORS_SUBFEATURE_IN_LOWEST, | ||
166 | SENSORS_SUBFEATURE_IN_HIGHEST, | ||
167 | SENSORS_SUBFEATURE_IN_ALARM = (SENSORS_FEATURE_IN << 8) | 0x80, | ||
168 | SENSORS_SUBFEATURE_IN_MIN_ALARM, | ||
169 | SENSORS_SUBFEATURE_IN_MAX_ALARM, | ||
170 | SENSORS_SUBFEATURE_IN_BEEP, | ||
171 | SENSORS_SUBFEATURE_IN_LCRIT_ALARM, | ||
172 | SENSORS_SUBFEATURE_IN_CRIT_ALARM, | ||
173 | |||
174 | SENSORS_SUBFEATURE_FAN_INPUT = SENSORS_FEATURE_FAN << 8, | ||
175 | SENSORS_SUBFEATURE_FAN_MIN, | ||
176 | SENSORS_SUBFEATURE_FAN_MAX, | ||
177 | SENSORS_SUBFEATURE_FAN_ALARM = (SENSORS_FEATURE_FAN << 8) | 0x80, | ||
178 | SENSORS_SUBFEATURE_FAN_FAULT, | ||
179 | SENSORS_SUBFEATURE_FAN_DIV, | ||
180 | SENSORS_SUBFEATURE_FAN_BEEP, | ||
181 | SENSORS_SUBFEATURE_FAN_PULSES, | ||
182 | SENSORS_SUBFEATURE_FAN_MIN_ALARM, | ||
183 | SENSORS_SUBFEATURE_FAN_MAX_ALARM, | ||
184 | |||
185 | SENSORS_SUBFEATURE_TEMP_INPUT = SENSORS_FEATURE_TEMP << 8, | ||
186 | SENSORS_SUBFEATURE_TEMP_MAX, | ||
187 | SENSORS_SUBFEATURE_TEMP_MAX_HYST, | ||
188 | SENSORS_SUBFEATURE_TEMP_MIN, | ||
189 | SENSORS_SUBFEATURE_TEMP_CRIT, | ||
190 | SENSORS_SUBFEATURE_TEMP_CRIT_HYST, | ||
191 | SENSORS_SUBFEATURE_TEMP_LCRIT, | ||
192 | SENSORS_SUBFEATURE_TEMP_EMERGENCY, | ||
193 | SENSORS_SUBFEATURE_TEMP_EMERGENCY_HYST, | ||
194 | SENSORS_SUBFEATURE_TEMP_LOWEST, | ||
195 | SENSORS_SUBFEATURE_TEMP_HIGHEST, | ||
196 | SENSORS_SUBFEATURE_TEMP_ALARM = (SENSORS_FEATURE_TEMP << 8) | 0x80, | ||
197 | SENSORS_SUBFEATURE_TEMP_MAX_ALARM, | ||
198 | SENSORS_SUBFEATURE_TEMP_MIN_ALARM, | ||
199 | SENSORS_SUBFEATURE_TEMP_CRIT_ALARM, | ||
200 | SENSORS_SUBFEATURE_TEMP_FAULT, | ||
201 | SENSORS_SUBFEATURE_TEMP_TYPE, | ||
202 | SENSORS_SUBFEATURE_TEMP_OFFSET, | ||
203 | SENSORS_SUBFEATURE_TEMP_BEEP, | ||
204 | SENSORS_SUBFEATURE_TEMP_EMERGENCY_ALARM, | ||
205 | SENSORS_SUBFEATURE_TEMP_LCRIT_ALARM, | ||
206 | |||
207 | SENSORS_SUBFEATURE_POWER_AVERAGE = SENSORS_FEATURE_POWER << 8, | ||
208 | SENSORS_SUBFEATURE_POWER_AVERAGE_HIGHEST, | ||
209 | SENSORS_SUBFEATURE_POWER_AVERAGE_LOWEST, | ||
210 | SENSORS_SUBFEATURE_POWER_INPUT, | ||
211 | SENSORS_SUBFEATURE_POWER_INPUT_HIGHEST, | ||
212 | SENSORS_SUBFEATURE_POWER_INPUT_LOWEST, | ||
213 | SENSORS_SUBFEATURE_POWER_CAP, | ||
214 | SENSORS_SUBFEATURE_POWER_CAP_HYST, | ||
215 | SENSORS_SUBFEATURE_POWER_MAX, | ||
216 | SENSORS_SUBFEATURE_POWER_CRIT, | ||
217 | SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL = (SENSORS_FEATURE_POWER << 8) | 0x80, | ||
218 | SENSORS_SUBFEATURE_POWER_ALARM, | ||
219 | SENSORS_SUBFEATURE_POWER_CAP_ALARM, | ||
220 | SENSORS_SUBFEATURE_POWER_MAX_ALARM, | ||
221 | SENSORS_SUBFEATURE_POWER_CRIT_ALARM, | ||
222 | |||
223 | SENSORS_SUBFEATURE_ENERGY_INPUT = SENSORS_FEATURE_ENERGY << 8, | ||
224 | |||
225 | SENSORS_SUBFEATURE_CURR_INPUT = SENSORS_FEATURE_CURR << 8, | ||
226 | SENSORS_SUBFEATURE_CURR_MIN, | ||
227 | SENSORS_SUBFEATURE_CURR_MAX, | ||
228 | SENSORS_SUBFEATURE_CURR_LCRIT, | ||
229 | SENSORS_SUBFEATURE_CURR_CRIT, | ||
230 | SENSORS_SUBFEATURE_CURR_AVERAGE, | ||
231 | SENSORS_SUBFEATURE_CURR_LOWEST, | ||
232 | SENSORS_SUBFEATURE_CURR_HIGHEST, | ||
233 | SENSORS_SUBFEATURE_CURR_ALARM = (SENSORS_FEATURE_CURR << 8) | 0x80, | ||
234 | SENSORS_SUBFEATURE_CURR_MIN_ALARM, | ||
235 | SENSORS_SUBFEATURE_CURR_MAX_ALARM, | ||
236 | SENSORS_SUBFEATURE_CURR_BEEP, | ||
237 | SENSORS_SUBFEATURE_CURR_LCRIT_ALARM, | ||
238 | SENSORS_SUBFEATURE_CURR_CRIT_ALARM, | ||
239 | |||
240 | SENSORS_SUBFEATURE_HUMIDITY_INPUT = SENSORS_FEATURE_HUMIDITY << 8, | ||
241 | |||
242 | SENSORS_SUBFEATURE_VID = SENSORS_FEATURE_VID << 8, | ||
243 | |||
244 | SENSORS_SUBFEATURE_INTRUSION_ALARM = SENSORS_FEATURE_INTRUSION << 8, | ||
245 | SENSORS_SUBFEATURE_INTRUSION_BEEP, | ||
246 | |||
247 | SENSORS_SUBFEATURE_BEEP_ENABLE = SENSORS_FEATURE_BEEP_ENABLE << 8, | ||
248 | |||
249 | SENSORS_SUBFEATURE_UNKNOWN = INT_MAX, | ||
250 | } sensors_subfeature_type; | ||
251 | |||
252 | /* Data about a single chip feature (or category leader) */ | ||
253 | struct sensors_feature { | ||
254 | char *name; | ||
255 | int number; | ||
256 | sensors_feature_type type; | ||
257 | /* Members below are for libsensors internal use only */ | ||
258 | int first_subfeature; | ||
259 | int padding1; | ||
260 | }; | ||
261 | |||
262 | /* Data about a single chip subfeature: | ||
263 | name is the string name used to refer to this subfeature (in config files) | ||
264 | number is the internal subfeature number, used in many functions to refer | ||
265 | to this subfeature | ||
266 | type is the subfeature type | ||
267 | mapping is the number of a main feature this subfeature belongs to | ||
268 | (for example subfeatures fan1_input, fan1_min, fan1_div and fan1_alarm | ||
269 | are mapped to main feature fan1) | ||
270 | flags is a bitfield, its value is a combination of SENSORS_MODE_R (readable), | ||
271 | SENSORS_MODE_W (writable) and SENSORS_COMPUTE_MAPPING (affected by the | ||
272 | computation rules of the main feature) */ | ||
273 | typedef struct sensors_subfeature { | ||
274 | char *name; | ||
275 | int number; | ||
276 | sensors_subfeature_type type; | ||
277 | int mapping; | ||
278 | unsigned int flags; | ||
279 | } sensors_subfeature; | ||
280 | |||
281 | /* This returns all main features of a specific chip. nr is an internally | ||
282 | used variable. Set it to zero to start at the begin of the list. If no | ||
283 | more features are found NULL is returned. | ||
284 | Do not try to change the returned structure; you will corrupt internal | ||
285 | data structures. */ | ||
286 | const sensors_feature * | ||
287 | sensors_get_features(const sensors_chip_name *name, int *nr); | ||
288 | |||
289 | /* This returns all subfeatures of a given main feature. nr is an internally | ||
290 | used variable. Set it to zero to start at the begin of the list. If no | ||
291 | more features are found NULL is returned. | ||
292 | Do not try to change the returned structure; you will corrupt internal | ||
293 | data structures. */ | ||
294 | const sensors_subfeature * | ||
295 | sensors_get_all_subfeatures(const sensors_chip_name *name, | ||
296 | const sensors_feature *feature, int *nr); | ||
297 | |||
298 | /* This returns the subfeature of the given type for a given main feature, | ||
299 | if it exists, NULL otherwise. | ||
300 | Do not try to change the returned structure; you will corrupt internal | ||
301 | data structures. */ | ||
302 | const sensors_subfeature * | ||
303 | sensors_get_subfeature(const sensors_chip_name *name, | ||
304 | const sensors_feature *feature, | ||
305 | sensors_subfeature_type type); | ||
306 | |||
307 | #ifdef __cplusplus | ||
308 | } | ||
309 | #endif /* __cplusplus */ | ||
310 | |||
311 | #endif /* def LIB_SENSORS_ERROR_H */ | ||