summaryrefslogtreecommitdiff
path: root/sysdeps/sun4
diff options
context:
space:
mode:
authorMartin Baulig <martin@src.gnome.org>1998-07-14 22:57:20 +0000
committerMartin Baulig <martin@src.gnome.org>1998-07-14 22:57:20 +0000
commitf18952a9d88dbeee8474dbf4c2909acc38e76093 (patch)
treef0a5fcb6721731175af3b2e14aa170066641c86d /sysdeps/sun4
parent16cb163bb0c0cff30fe235e03d0f93b398b0dfe3 (diff)
downloadlibgtop-f18952a9d88dbeee8474dbf4c2909acc38e76093.tar.gz
Initial revision
Diffstat (limited to 'sysdeps/sun4')
-rw-r--r--sysdeps/sun4/loadavg.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/sysdeps/sun4/loadavg.h b/sysdeps/sun4/loadavg.h
new file mode 100644
index 00000000..f49541e7
--- /dev/null
+++ b/sysdeps/sun4/loadavg.h
@@ -0,0 +1,57 @@
+/*
+ * Top - a top users display for Berkeley Unix
+ *
+ * Defines required to access load average figures.
+ *
+ * This include file sets up everything we need to access the load average
+ * values in the kernel in a machine independent way. First, it sets the
+ * typedef "load_avg" to be either double or long (depending on what is
+ * needed), then it defines these macros appropriately:
+ *
+ * loaddouble(la) - convert load_avg to double.
+ * intload(i) - convert integer to load_avg.
+ */
+
+/*
+ * We assume that if FSCALE is defined, then avenrun and ccpu are type long.
+ * If your machine is an exception (mips, perhaps?) then make adjustments
+ * here.
+ *
+ * Defined types: load_avg for load averages, pctcpu for cpu percentages.
+ */
+#if defined(mips) && !defined(NetBSD)
+# include <sys/fixpoint.h>
+# if defined(FBITS) && !defined(FSCALE)
+# define FSCALE (1 << FBITS) /* mips */
+# endif
+#endif
+
+#ifdef FSCALE
+# define FIXED_LOADAVG FSCALE
+# define FIXED_PCTCPU FSCALE
+#endif
+
+#ifdef ibm032
+# undef FIXED_LOADAVG
+# undef FIXED_PCTCPU
+# define FIXED_PCTCPU PCT_SCALE
+#endif
+
+
+#ifdef FIXED_PCTCPU
+ typedef long pctcpu;
+# define pctdouble(p) ((double)(p) / FIXED_PCTCPU)
+#else
+typedef double pctcpu;
+# define pctdouble(p) (p)
+#endif
+
+#ifdef FIXED_LOADAVG
+ typedef long load_avg;
+# define loaddouble(la) ((double)(la) / FIXED_LOADAVG)
+# define intload(i) ((int)((i) * FIXED_LOADAVG))
+#else
+ typedef double load_avg;
+# define loaddouble(la) (la)
+# define intload(i) ((double)(i))
+#endif