From 81a8e2e2cd5108c00affd6fe7aa90d3bf78e10a2 Mon Sep 17 00:00:00 2001
From: Gary Jennejohn <gj@FreeBSD.org>
Date: Wed, 7 Apr 1999 19:23:33 +0000
Subject: Add patch-af to use kvm_getswapinfo for -current.

I would have liked to pass this by the maintainer but "he's in the
army now" and inaccessible.

PR:		ports/10091
---
 sysutils/xsysinfo/files/patch-af | 68 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 sysutils/xsysinfo/files/patch-af

diff --git a/sysutils/xsysinfo/files/patch-af b/sysutils/xsysinfo/files/patch-af
new file mode 100644
index 000000000000..7ce0df34ff97
--- /dev/null
+++ b/sysutils/xsysinfo/files/patch-af
@@ -0,0 +1,68 @@
+--- sysinfo.c.orig	Tue Apr  6 22:53:17 1999
++++ sysinfo.c	Tue Apr  6 23:09:37 1999
+@@ -102,6 +102,7 @@
+ struct nlist	nl[] = {
+ #define	X_CP_TIME	0
+ 	{ "_cp_time" },
++#if __FreeBSD_version < 400000
+ #define VM_SWAPLIST	1
+ 	{ "_swaplist" },/* list of free swap areas */
+ #define VM_SWDEVT	2
+@@ -129,6 +130,27 @@
+ #define X_DKXFER        12
+         { "_dk_xfer" },
+ #endif
++#else /* __FreeBSD_version < 400000 */
++#define VM_DMMAX	1
++	{ "_dmmax" },	/* maximum size of a swap block */
++#define	V_MOUNTLIST	2
++	{ "_mountlist" },	/* address of head of mount list. */
++#define V_NUMV		3
++	{ "_numvnodes" },
++#define	FNL_NFILE	4
++	{"_nfiles"},
++#define FNL_MAXFILE	5
++	{"_maxfiles"},
++#define NLMANDATORY FNL_MAXFILE	/* names up to here are mandatory */
++#define X_CNT           6
++	{ "_cnt" },                /* struct vmmeter cnt */
++#define N_IFNET         7
++        { "_ifnet" },
++#ifndef HAVE_DEVSTAT
++#define X_DKXFER        8
++        { "_dk_xfer" },
++#endif
++#endif /* __FreeBSD_version < 400000 */
+ 	{ "" },
+ };
+ 
+@@ -444,6 +466,21 @@
+ void
+ swapmode(int *used, int *avail)
+ {
++#if __FreeBSD_version >= 400000
++	/* based on swapmode from /usr/src/usr.bin/top/machine.c */
++	int n;
++	struct kvm_swap swapary[1];
++
++	n = kvm_getswapinfo(kd, swapary, 1, 0);
++	if (n < 0) {
++		*avail = *used = 0;
++		return;
++	}
++
++	*avail = swapary[0].ksw_total - swapary[0].ksw_used;
++	*used = swapary[0].ksw_used;
++	return;
++#else
+ 	char *header;
+ 	int hlen, nswap, nswdev, dmmax;
+ 	int i, div, nfree, npfree;
+@@ -552,6 +589,7 @@
+ 	*used = *avail - nfree;
+ 	free(sw);
+ 	free(perdev);
++#endif /* __FreeBSD_version >= 400000 */
+ }
+ 
+ /*
-- 
cgit debian/1.2.3+git2.25.1-1-2-gaceb0