Lines 983-988
enum text_object_type {
Link Here
|
983 |
OBJ_alignc, |
983 |
OBJ_alignc, |
984 |
OBJ_i2c, |
984 |
OBJ_i2c, |
985 |
#if defined(__linux__) |
985 |
#if defined(__linux__) |
|
|
986 |
OBJ_hwmon, |
986 |
OBJ_i8k_version, |
987 |
OBJ_i8k_version, |
987 |
OBJ_i8k_bios, |
988 |
OBJ_i8k_bios, |
988 |
OBJ_i8k_serial, |
989 |
OBJ_i8k_serial, |
Lines 1182-1187
struct text_object {
Link Here
|
1182 |
char *fmt; /* time display formatting */ |
1183 |
char *fmt; /* time display formatting */ |
1183 |
} tztime; |
1184 |
} tztime; |
1184 |
|
1185 |
|
|
|
1186 |
#if defined(__linux__) |
1187 |
struct { |
1188 |
enum hwmon_sensor_type type; |
1189 |
char *fname; /* filename in /sys/class/hwmon/hwmonX/device/ */ |
1190 |
} hwmon; |
1191 |
#endif |
1192 |
|
1185 |
struct { |
1193 |
struct { |
1186 |
struct fs_stat *fs; |
1194 |
struct fs_stat *fs; |
1187 |
int w, h; |
1195 |
int w, h; |
Lines 1780-1785
static void free_text_objects(unsigned i
Link Here
|
1780 |
case OBJ_acpitempf: |
1788 |
case OBJ_acpitempf: |
1781 |
close(objs[i].data.i); |
1789 |
close(objs[i].data.i); |
1782 |
break; |
1790 |
break; |
|
|
1791 |
#if defined(__linux__) |
1792 |
case OBJ_hwmon: |
1793 |
free(objs[i].data.hwmon.fname); |
1794 |
break; |
1795 |
#endif |
1783 |
case OBJ_i2c: |
1796 |
case OBJ_i2c: |
1784 |
close(objs[i].data.i2c.fd); |
1797 |
close(objs[i].data.i2c.fd); |
1785 |
break; |
1798 |
break; |
Lines 2199-2204
static struct text_object *construct_tex
Link Here
|
2199 |
strcpy(bat, "BAT0"); |
2212 |
strcpy(bat, "BAT0"); |
2200 |
} |
2213 |
} |
2201 |
#if defined(__linux__) |
2214 |
#if defined(__linux__) |
|
|
2215 |
END OBJ(hwmon, 0) |
2216 |
if (!arg) { |
2217 |
CRIT_ERR("hwmon: needs arguments (hwmon-number, sensor type, sensor number, sensor subtype)"); |
2218 |
} else { |
2219 |
unsigned int monidx, sensidx; |
2220 |
char sensor[10], senssub[32]; |
2221 |
if (sscanf(arg, "%u %9s %u %31s", &monidx, sensor, &sensidx, senssub) != 4) { |
2222 |
CRIT_ERR("hwmon: invalid (number of) arguments"); |
2223 |
} else { |
2224 |
unsigned int maxlen = strlen(arg)+29+1+1; /* 29=strlen("/sys/class/hwmon/hwmon/device") */ |
2225 |
char fname[maxlen]; |
2226 |
snprintf(fname, maxlen, "/sys/class/hwmon/hwmon%u/device/%s%u_%s", monidx, sensor, sensidx, senssub); |
2227 |
obj->data.hwmon.fname = strdup(fname); |
2228 |
if (strncmp(sensor, "temp", 5) == 0) { |
2229 |
obj->data.hwmon.type = HWMON_temp; |
2230 |
} else if (strncmp(sensor, "fan", 4) == 0) { |
2231 |
obj->data.hwmon.type = HWMON_fan; |
2232 |
} else { |
2233 |
obj->data.hwmon.type = HWMON_other; |
2234 |
} |
2235 |
} |
2236 |
} |
2202 |
END OBJ(i8k_version, INFO_I8K) |
2237 |
END OBJ(i8k_version, INFO_I8K) |
2203 |
END OBJ(i8k_bios, INFO_I8K) |
2238 |
END OBJ(i8k_bios, INFO_I8K) |
2204 |
END OBJ(i8k_serial, INFO_I8K) |
2239 |
END OBJ(i8k_serial, INFO_I8K) |
Lines 3586-3591
static void generate_text_internal(char
Link Here
|
3586 |
new_fg(p, color9); |
3621 |
new_fg(p, color9); |
3587 |
} |
3622 |
} |
3588 |
#if defined(__linux__) |
3623 |
#if defined(__linux__) |
|
|
3624 |
OBJ(hwmon) { |
3625 |
get_hwmon_value(p, p_max_size, obj->data.hwmon.fname, obj->data.hwmon.type); |
3626 |
} |
3589 |
OBJ(i8k_version) { |
3627 |
OBJ(i8k_version) { |
3590 |
snprintf(p, p_max_size, "%s", i8k.version); |
3628 |
snprintf(p, p_max_size, "%s", i8k.version); |
3591 |
} |
3629 |
} |