X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/a7ade0dc6db99fe19bc6788a5e972a90641915ad..43a12832a343747b7317987b552a87eb8ed5b42d:/components/cpu.c diff --git a/components/cpu.c b/components/cpu.c index 53af71d..ceb95d8 100644 --- a/components/cpu.c +++ b/components/cpu.c @@ -1,5 +1,4 @@ /* See LICENSE file for copyright and license details. */ -#include #include #include @@ -12,15 +11,15 @@ const char * cpu_freq(void) { - uint64_t freq; + uintmax_t freq; /* in kHz */ if (pscanf("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", - "%"SCNu64, &freq) != 1) { + "%" PRIuMAX, &freq) != 1) { return NULL; } - return fmt_human_10(freq * 1000, "Hz"); + return fmt_human(freq * 1000, 1000); } const char * @@ -39,13 +38,14 @@ return NULL; } - return bprintf("%d%%", (int)(100 * + return bprintf("%d", (int)(100 * ((b[0] + b[1] + b[2] + b[5] + b[6]) - (a[0] + a[1] + a[2] + a[5] + a[6])) / ((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) - (a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6])))); } #elif defined(__OpenBSD__) + #include #include #include #include @@ -67,15 +67,15 @@ return NULL; } - return fmt_human_10((size_t)freq * 1000 * 1000, "Hz"); + return fmt_human((size_t)freq * 1000 * 1000, 1000); } const char * cpu_perc(void) { int mib[2]; - static long int a[CPUSTATES]; - long int b[CPUSTATES]; + static uintmax_t a[CPUSTATES]; + uintmax_t b[CPUSTATES]; size_t size; mib[0] = CTL_KERN; @@ -92,7 +92,7 @@ return NULL; } - return bprintf("%d%%", 100 * + return bprintf("%d", 100 * ((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR]) - (b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR])) / ((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] +