$NetBSD: patch-ap,v 1.1 2006/02/28 23:48:12 joerg Exp $

--- sysdeps/freebsd/swap.c.orig	2004-09-24 22:49:06.000000000 +0000
+++ sysdeps/freebsd/swap.c
@@ -32,7 +32,10 @@ static const unsigned long _glibtop_sysd
 (1L << GLIBTOP_SWAP_FREE) + (1L << GLIBTOP_SWAP_PAGEIN) +
 (1L << GLIBTOP_SWAP_PAGEOUT);
 
-#if defined(__FreeBSD__) || defined(__bsdi__)
+#if defined(__DragonFly__)
+#include <sys/vmmeter.h>
+
+#elif defined(__FreeBSD__) || defined(__bsdi__)
 
 #include <sys/conf.h>
 #ifdef __bsdi__
@@ -93,8 +96,8 @@ static struct nlist nlst2 [] = {
 void
 glibtop_init_swap_p (glibtop *server)
 {
-#if defined(__FreeBSD__) || defined(__bsdi__)
-#if __FreeBSD__ < 4 || defined(__bsdi__)
+#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__bsdi__)
+#if !defined(__DragonFly__) && (__FreeBSD__ < 4 || defined(__bsdi__))
 	if (kvm_nlist (server->machine.kd, nlst) < 0) {
 		glibtop_warn_io_r (server, "kvm_nlist (swap)");
 		return;
@@ -129,9 +132,9 @@ glibtop_init_swap_p (glibtop *server)
 void
 glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
 {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
 
-# if __FreeBSD__ < 4
+# if defined(__FreeBSD__) && __FreeBSD__ < 4
 	char *header;
 	int hlen, nswdev, dmmax;
 	int div, nfree, npfree;
@@ -193,7 +196,7 @@ glibtop_get_swap_p (glibtop *server, gli
 		buf->pagein = 0;
 		buf->pageout = 0;
 	} else {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
 		buf->pagein = vmm.v_swappgsin - swappgsin;
 		buf->pageout = vmm.v_swappgsout - swappgsout;
 #else
@@ -207,7 +210,7 @@ glibtop_get_swap_p (glibtop *server, gli
 #endif
 	}
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__DragonFly__)
         swappgsin = vmm.v_swappgsin;
 	swappgsout = vmm.v_swappgsout;
 #else
@@ -220,9 +223,9 @@ glibtop_get_swap_p (glibtop *server, gli
 #endif
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
 
-#if __FreeBSD__ < 4
+#if defined(__FreeBSD__) && __FreeBSD__ < 4
 
 	/* Size of largest swap device. */
 
