summaryrefslogtreecommitdiff
path: root/sysdeps/freebsd/swap.c
diff options
context:
space:
mode:
authorMartin Baulig <martin@home-of-linux.org>1998-12-05 18:52:09 +0000
committerMartin Baulig <martin@src.gnome.org>1998-12-05 18:52:09 +0000
commit67a344b9d416ea2f3d71f0f9afea497bc0fc5cbc (patch)
treea080fc085255b4255606342c227900fc798422a0 /sysdeps/freebsd/swap.c
parentd414a22ee3e692cdbc926c7a15fc8fc26253b7b8 (diff)
downloadlibgtop-67a344b9d416ea2f3d71f0f9afea497bc0fc5cbc.tar.gz
Make it work with NetBSD 1.3.2.
1998-12-05 Martin Baulig <martin@home-of-linux.org> * Make it work with NetBSD 1.3.2. Well, it compiles without problems but not all features are currently working; need to look a little bit closer at it. Ok for now, think I'll install OpenBSD and test it there ... Martin
Diffstat (limited to 'sysdeps/freebsd/swap.c')
-rw-r--r--sysdeps/freebsd/swap.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/sysdeps/freebsd/swap.c b/sysdeps/freebsd/swap.c
index 11e106a4..df6344fc 100644
--- a/sysdeps/freebsd/swap.c
+++ b/sysdeps/freebsd/swap.c
@@ -28,7 +28,9 @@
#include <glibtop_suid.h>
#include <sys/conf.h>
+#ifdef __FreeBSD__
#include <sys/rlist.h>
+#endif
#include <sys/vmmeter.h>
static const unsigned long _glibtop_sysdeps_swap =
@@ -79,9 +81,11 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
int i, div, avail, nfree, npfree, used;
struct swdevt *sw;
long blocksize, *perdev;
+#ifdef __FreeBSD__
struct rlist head;
struct rlisthdr swaplist;
struct rlist *swapptr;
+#endif
size_t sw_size;
u_long ptr;
@@ -109,12 +113,22 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
buf->pagein = 0;
buf->pageout = 0;
} else {
+#ifdef __FreeBSD__
buf->pagein = vmm.v_swappgsin - swappgsin;
buf->pageout = vmm.v_swappgsout - swappgsout;
+#else
+ buf->pagein = vmm.v_pswpin - swappgsin;
+ buf->pageout = vmm.v_pswpout - swappgsout;
+#endif
}
+#ifdef __FreeBSD__
swappgsin = vmm.v_swappgsin;
swappgsout = vmm.v_swappgsout;
+#else
+ swappgsin = vmm.v_pswpin;
+ swappgsout = vmm.v_pswpout;
+#endif
/* Size of largest swap device. */
@@ -140,6 +154,8 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
return;
}
+#ifdef __FreeBSD__
+
/* List of free swap areas. */
if (kvm_read (server->machine.kd, nlst[VM_SWAPLIST].n_value,
@@ -148,6 +164,8 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
return;
}
+#endif
+
/* Kernel offset of list of swap devices and sizes. */
if (kvm_read (server->machine.kd, nlst[VM_SWDEVT].n_value,
@@ -173,6 +191,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
nfree = 0;
memset (perdev, 0, nswdev * sizeof(*perdev));
+#ifdef __FreeBSD__
swapptr = swaplist.rlh_list;
while (swapptr) {
@@ -212,6 +231,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
swapptr = head.rl_next;
}
+#endif
header = getbsize (&hlen, &blocksize);