+ memcpy(b, a, sizeof(b));
+ if (sysctl(mib, 2, &a, &size, NULL, 0) == -1) {
+ fprintf(stderr, "sysctl 'KERN_CPTIME': %s\n", strerror(errno));
+ return NULL;
+ }
+ if (!valid) {
+ valid = 1;
+ return NULL;
+ }
+
+ perc = 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] + a[CP_IDLE]) -
+ (b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR] + b[CP_IDLE]));
+
+ return bprintf("%d", perc);
+ }
+#endif