+
+ const char *
+ cpu_iowait(void)
+ {
+ int perc;
+ static int valid;
+ static long double a[7];
+ long double b[7];
+
+ memcpy(b, a, sizeof(b));
+ if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf",
+ &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != 7) {
+ return NULL;
+ }
+ if (!valid) {
+ valid = 1;
+ return NULL;
+ }
+
+ perc = 100 * ((b[4]) - (a[4])) /
+ ((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]));
+
+ return bprintf("%d", perc);