From: "Carlos R. Mafra" <[email protected]> Use the option --apple to enable it.
Signed-off-by: Carlos R. Mafra <[email protected]> --- src/cpu.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/src/cpu.c b/src/cpu.c index c9b7570..900a4e0 100644 --- a/src/cpu.c +++ b/src/cpu.c @@ -103,23 +103,40 @@ void read_sysfs_temp(char *dir, char *file, double *value) { } } +void read_applesmc_temp(char *file, double *value) { + char filename[256]; + FILE *fp; + + snprintf(filename, 256, "/sys/devices/platform/applesmc.768/%s", file); + + fp = fopen(filename, "r"); + if (fp) { + fscanf(fp, "%lf", value); + (*value) /= 1000.; + fclose(fp); + } +} + void cpuReadTemp() { DIR *dir; struct dirent *dirent; double cpuTemp = 0; - dir = opendir("/sys/class/thermal/"); - if (!dir) { - printf("Could not open /sys/class/thermal\n"); - return; - } - - while ((dirent = readdir(dir))) { - if (strlen(dirent->d_name) < 3) - continue; - read_sysfs_temp(dirent->d_name, "temp", &cpuTemp); + if (apple) { + read_applesmc_temp("temp8_input", &cpuTemp); + } else { + dir = opendir("/sys/class/thermal/"); + if (!dir) { + printf("Could not open /sys/class/thermal\n"); + return; + } + while ((dirent = readdir(dir))) { + if (strlen(dirent->d_name) < 3) + continue; + read_sysfs_temp(dirent->d_name, "temp", &cpuTemp); + } + closedir(dir); } cpuState.Temp = cpuTemp; - closedir(dir); } -- 1.8.0.1 -- To unsubscribe, send mail to [email protected].
