openbsd-ports/sysutils/hot-babe/patches/patch-hot-babe_c
alek 8b2e018f1e Import hot-babe 0.2.2
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@
2004-12-25 10:34:14 +00:00

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];