8b2e018f1e
Hot-babe is a small graphical utility which displays the system activity in a very special way. From Jan Lindblom <cl0wn@ludd.ltu.se> help and ok xsa@, mbalmer@
61 lines
1.5 KiB
Plaintext
61 lines
1.5 KiB
Plaintext
$OpenBSD: patch-hot-babe_c,v 1.1.1.1 2004/12/25 10:34:14 alek Exp $
|
|
--- hot-babe.c.orig Thu Dec 16 18:38:18 2004
|
|
+++ hot-babe.c Thu Dec 16 18:42:12 2004
|
|
@@ -19,6 +19,14 @@
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
+#ifdef __OpenBSD__
|
|
+#include <sys/param.h>
|
|
+#include <sys/sched.h>
|
|
+#include <sys/sysctl.h>
|
|
+#include <sys/dkstat.h>
|
|
+#include <fcntl.h>
|
|
+#include <nlist.h>
|
|
+#endif
|
|
#ifdef __FreeBSD__
|
|
#include <sys/time.h>
|
|
#include <sys/resource.h>
|
|
@@ -99,6 +107,13 @@ static int system_cpu(void)
|
|
long cp_time[CPUSTATES];
|
|
size_t len = sizeof(cp_time);
|
|
#endif
|
|
+#ifdef __OpenBSD__
|
|
+ long load, total, oload, ototal;
|
|
+ long ab, ac, ad, ae, af;
|
|
+ long cp_time[CPUSTATES];
|
|
+ size_t len = sizeof(cp_time);
|
|
+ static int mib[] = { CTL_KERN, KERN_CPTIME };
|
|
+#endif
|
|
|
|
#ifdef __linux__
|
|
stat = fopen("/proc/stat", "r");
|
|
@@ -114,6 +129,16 @@ static int system_cpu(void)
|
|
ad = cp_time[CP_SYS];
|
|
ae = cp_time[CP_IDLE];
|
|
#endif
|
|
+#ifdef __OpenBSD__
|
|
+ if (sysctl(mib, 2, &cp_time, &len, NULL, 0) < 0) {
|
|
+ (void)fprintf(stderr, "Cannot get kern.cp_time");
|
|
+ }
|
|
+ ab = cp_time[CP_USER];
|
|
+ ac = cp_time[CP_NICE];
|
|
+ ad = cp_time[CP_SYS];
|
|
+ ae = cp_time[CP_IDLE];
|
|
+ af = cp_time[CP_INTR];
|
|
+#endif
|
|
|
|
|
|
/* Find out the CPU load */
|
|
@@ -122,6 +147,10 @@ static int system_cpu(void)
|
|
load = ab + ad; /* cpu.user + cpu.sys; */
|
|
if(!bm.noNice) load += ac;
|
|
total = ab + ac + ad + ae; /* cpu.total; */
|
|
+#ifdef __OpenBSD__
|
|
+ load += af;
|
|
+ total += af;
|
|
+#endif
|
|
|
|
i = bm.loadIndex;
|
|
oload = bm.load[i];
|