View | Details | Raw Unified | Return to bug 58591
Collapse All | Expand All

(-)./xsysinfo/Makefile (-4 lines)
Lines 19-28 Link Here
19
19
20
.include <bsd.port.pre.mk>
20
.include <bsd.port.pre.mk>
21
21
22
.if ${OSVERSION} >= 500113
23
BROKEN=         "Does not compile"
24
.endif
25
26
pre-configure:
22
pre-configure:
27
	if [ -e /usr/lib/libdevstat.a -o -e /usr/lib/aout/libdevstat.a ]; then \
23
	if [ -e /usr/lib/libdevstat.a -o -e /usr/lib/aout/libdevstat.a ]; then \
28
		cd ${WRKSRC} ; \
24
		cd ${WRKSRC} ; \
(-)./xsysinfo/files/patch-ae (-29 lines)
Lines 1-29 Link Here
1
--- sysinfo.c.orig	Tue Oct  6 16:21:18 1998
2
+++ sysinfo.c	Tue Oct 13 09:47:49 1998
3
@@ -238,6 +238,9 @@
4
 	int pkt_in_out;
5
 	int total_xfers=0;
6
 	int mib[3], size;
7
+#if (__FreeBSD_version >= 300004)
8
+    struct vfsconf vfc;
9
+#endif
10
 
11
 	/* NPROCS=0, CPU */
12
   if (cpuflag) {
13
@@ -361,10 +364,13 @@
14
 #else
15
 	mib[0] = CTL_VFS;
16
 #endif
17
-#if (__FreeBSD_version >= 300003) /* ?? */
18
-	mib[1] = MNT_EXPORTED;
19
+#if (__FreeBSD_version >= 300004)
20
+    if (getvfsbyname("nfs", &vfc) < 0)
21
+	/* no NFS in the kernel */
22
+	goto nfs_out;
23
+    mib[1] = vfc.vfc_typenum;
24
 #else
25
-	mib[1] = MNT_NFS;
26
+	mib[1] = MOUNT_NFS;
27
 #endif
28
 	mib[2] = NFS_NFSSTATS;
29
 	if (sysctl( mib, 3, &nfsstats, &size, NULL, 0) < 0)
(-)./xsysinfo/files/patch-af (-68 lines)
Lines 1-68 Link Here
1
--- sysinfo.c.orig	Tue Apr  6 22:53:17 1999
2
+++ sysinfo.c	Tue Apr  6 23:09:37 1999
3
@@ -102,6 +102,7 @@
4
 struct nlist	nl[] = {
5
 #define	X_CP_TIME	0
6
 	{ "_cp_time" },
7
+#if __FreeBSD_version < 400000
8
 #define VM_SWAPLIST	1
9
 	{ "_swaplist" },/* list of free swap areas */
10
 #define VM_SWDEVT	2
11
@@ -129,6 +130,27 @@
12
 #define X_DKXFER        12
13
         { "_dk_xfer" },
14
 #endif
15
+#else /* __FreeBSD_version < 400000 */
16
+#define VM_DMMAX	1
17
+	{ "_dmmax" },	/* maximum size of a swap block */
18
+#define	V_MOUNTLIST	2
19
+	{ "_mountlist" },	/* address of head of mount list. */
20
+#define V_NUMV		3
21
+	{ "_numvnodes" },
22
+#define	FNL_NFILE	4
23
+	{"_nfiles"},
24
+#define FNL_MAXFILE	5
25
+	{"_maxfiles"},
26
+#define NLMANDATORY FNL_MAXFILE	/* names up to here are mandatory */
27
+#define X_CNT           6
28
+	{ "_cnt" },                /* struct vmmeter cnt */
29
+#define N_IFNET         7
30
+        { "_ifnet" },
31
+#ifndef HAVE_DEVSTAT
32
+#define X_DKXFER        8
33
+        { "_dk_xfer" },
34
+#endif
35
+#endif /* __FreeBSD_version < 400000 */
36
 	{ "" },
37
 };
38
 
39
@@ -444,6 +466,21 @@
40
 void
41
 swapmode(int *used, int *avail)
42
 {
43
+#if __FreeBSD_version >= 400000
44
+	/* based on swapmode from /usr/src/usr.bin/top/machine.c */
45
+	int n;
46
+	struct kvm_swap swapary[1];
47
+
48
+	n = kvm_getswapinfo(kd, swapary, 1, 0);
49
+	if (n < 0) {
50
+		*avail = *used = 0;
51
+		return;
52
+	}
53
+
54
+	*avail = swapary[0].ksw_total - swapary[0].ksw_used;
55
+	*used = swapary[0].ksw_used;
56
+	return;
57
+#else
58
 	char *header;
59
 	int hlen, nswap, nswdev, dmmax;
60
 	int i, div, nfree, npfree;
61
@@ -552,6 +589,7 @@
62
 	*used = *avail - nfree;
63
 	free(sw);
64
 	free(perdev);
65
+#endif /* __FreeBSD_version >= 400000 */
66
 }
67
 
68
 /*
(-)./xsysinfo/files/patch-ag (-12 lines)
Lines 1-12 Link Here
1
--- sysinfo.c.orig	Thu Sep  9 20:54:08 1999
2
+++ sysinfo.c	Thu Sep  9 20:54:25 1999
3
@@ -13,7 +13,9 @@
4
 #include <sys/ioctl_compat.h>	/* XXX NTTYDISC is too well hidden */
5
 #include <sys/tty.h>
6
 #include <sys/conf.h>
7
+#if __FreeBSD_version < 400000
8
 #include <sys/rlist.h>
9
+#endif
10
 #include <sys/sysctl.h>
11
 #include <sys/socket.h>
12
 #include <err.h>
(-)./xsysinfo/files/patch-sysinfo.c (+300 lines)
Line 0 Link Here
1
--- sysinfo.c.orig	Tue Oct  6 22:21:18 1998
2
+++ sysinfo.c	Mon Oct 27 15:28:22 2003
3
@@ -13,7 +13,9 @@
4
 #include <sys/ioctl_compat.h>	/* XXX NTTYDISC is too well hidden */
5
 #include <sys/tty.h>
6
 #include <sys/conf.h>
7
+#if __FreeBSD_version < 400000
8
 #include <sys/rlist.h>
9
+#endif
10
 #include <sys/sysctl.h>
11
 #include <sys/socket.h>
12
 #include <err.h>
13
@@ -34,8 +36,14 @@
14
 #include <sys/time.h>
15
 #include <sys/mount.h>
16
 #include <nfs/rpcv2.h>
17
+#if __FreeBSD_version >= 500000
18
+#include <nfs/nfsproto.h>
19
+#include <nfsclient/nfs.h>
20
+#include <nfsserver/nfsrvstats.h>
21
+#else
22
 #include <nfs/nfsv2.h>
23
 #include <nfs/nfs.h>
24
+#endif
25
 #include <osreldate.h>
26
 #include <fcntl.h>
27
 
28
@@ -95,6 +103,9 @@
29
 #endif /* HAVE_DEVSTAT */
30
 
31
 static struct nfsstats nfsstats;
32
+#if __FreeBSD_version >= 500000
33
+static struct nfsrvstats nfsrvstats;
34
+#endif
35
 static struct _nfsStats {
36
     int nfsServer, nfsClient;
37
 } nfsStats, old_nfsStats;
38
@@ -102,6 +113,7 @@
39
 struct nlist	nl[] = {
40
 #define	X_CP_TIME	0
41
 	{ "_cp_time" },
42
+#if __FreeBSD_version < 400000
43
 #define VM_SWAPLIST	1
44
 	{ "_swaplist" },/* list of free swap areas */
45
 #define VM_SWDEVT	2
46
@@ -129,6 +141,27 @@
47
 #define X_DKXFER        12
48
         { "_dk_xfer" },
49
 #endif
50
+#else /* __FreeBSD_version < 400000 */
51
+#define VM_DMMAX	1
52
+	{ "_dmmax" },	/* maximum size of a swap block */
53
+#define	V_MOUNTLIST	2
54
+	{ "_mountlist" },	/* address of head of mount list. */
55
+#define V_NUMV		3
56
+	{ "_numvnodes" },
57
+#define	FNL_NFILE	4
58
+	{"_nfiles"},
59
+#define FNL_MAXFILE	5
60
+	{"_maxfiles"},
61
+#define NLMANDATORY FNL_MAXFILE	/* names up to here are mandatory */
62
+#define X_CNT           6
63
+	{ "_cnt" },                /* struct vmmeter cnt */
64
+#define N_IFNET         7
65
+        { "_ifnet" },
66
+#ifndef HAVE_DEVSTAT
67
+#define X_DKXFER        8
68
+        { "_dk_xfer" },
69
+#endif
70
+#endif /* __FreeBSD_version < 400000 */
71
 	{ "" },
72
 };
73
 
74
@@ -238,6 +271,14 @@
75
 	int pkt_in_out;
76
 	int total_xfers=0;
77
 	int mib[3], size;
78
+#if __FreeBSD_version >= 500000
79
+	int rvsize;
80
+	struct xvfsconf vfc;
81
+#else
82
+#if (__FreeBSD_version >= 300004)
83
+    struct vfsconf vfc;
84
+#endif
85
+#endif // #if __FreeBSD_version >= 500000
86
 
87
 	/* NPROCS=0, CPU */
88
   if (cpuflag) {
89
@@ -356,19 +397,30 @@
90
 	for (i=0; i<10; i++)
91
 	    states[i] = 0;
92
 	size = sizeof(nfsstats);
93
+#if __FreeBSD_version >= 500000
94
+	rvsize = sizeof(nfsrvstats);
95
+#endif 
96
 #if (__FreeBSD_version < 199512)
97
 	mib[0] = CTL_FS;
98
 #else
99
 	mib[0] = CTL_VFS;
100
 #endif
101
-#if (__FreeBSD_version >= 300003) /* ?? */
102
-	mib[1] = MNT_EXPORTED;
103
+#if (__FreeBSD_version >= 300004)
104
+    if (getvfsbyname("nfs", &vfc) < 0)
105
+	/* no NFS in the kernel */
106
+	goto nfs_out;
107
+    mib[1] = vfc.vfc_typenum;
108
 #else
109
-	mib[1] = MNT_NFS;
110
+	mib[1] = MOUNT_NFS;
111
 #endif
112
 	mib[2] = NFS_NFSSTATS;
113
+#if __FreeBSD_version >= 500000
114
+	if (sysctl( mib, 3, &nfsstats, &size, NULL, 0) < 0 || sysctl( mib, 3, &nfsrvstats, &rvsize, NULL, 0) < 0)
115
+	    return;
116
+#else
117
 	if (sysctl( mib, 3, &nfsstats, &size, NULL, 0) < 0)
118
 	    goto nfs_out;
119
+#endif
120
 	else {
121
 	    old_nfsStats = nfsStats;
122
 
123
@@ -395,6 +447,22 @@
124
 #else
125
 				 nfsstats.rpccnt[NFSPROC_READDIR];
126
 #endif
127
+#if __FreeBSD_version >= 500000
128
+	    nfsStats.nfsServer = nfsrvstats.srvrpccnt[NFSPROC_GETATTR] + 
129
+	                         nfsrvstats.srvrpccnt[NFSPROC_SETATTR] +
130
+	                         nfsrvstats.srvrpccnt[NFSPROC_LOOKUP] +
131
+	                         nfsrvstats.srvrpccnt[NFSPROC_READLINK] +
132
+	                         nfsrvstats.srvrpccnt[NFSPROC_READ] +
133
+	                         nfsrvstats.srvrpccnt[NFSPROC_WRITE] +
134
+	                         nfsrvstats.srvrpccnt[NFSPROC_CREATE] +
135
+	                         nfsrvstats.srvrpccnt[NFSPROC_REMOVE] +
136
+	                         nfsrvstats.srvrpccnt[NFSPROC_RENAME] +
137
+	                         nfsrvstats.srvrpccnt[NFSPROC_LINK] +
138
+	                         nfsrvstats.srvrpccnt[NFSPROC_SYMLINK] +
139
+	                         nfsrvstats.srvrpccnt[NFSPROC_MKDIR] +
140
+	                         nfsrvstats.srvrpccnt[NFSPROC_RMDIR] + 
141
+				 nfsrvstats.srvrpccnt[NFSPROC_READDIR];
142
+#else
143
 	    nfsStats.nfsServer = nfsstats.srvrpccnt[NFSPROC_GETATTR] + 
144
 	                         nfsstats.srvrpccnt[NFSPROC_SETATTR] +
145
 	                         nfsstats.srvrpccnt[NFSPROC_LOOKUP] +
146
@@ -418,6 +486,7 @@
147
 #else
148
 				 nfsstats.srvrpccnt[NFSPROC_READDIR];
149
 #endif
150
+#endif // #if __FreeBSD_version >= 500000
151
 	}
152
 	scale_bar(250, nfsStats.nfsClient-old_nfsStats.nfsClient, 25, states, 0);
153
 	draw_bar(nfsflag-1, states, 10);
154
@@ -438,6 +507,21 @@
155
 void
156
 swapmode(int *used, int *avail)
157
 {
158
+#if __FreeBSD_version >= 400000
159
+	/* based on swapmode from /usr/src/usr.bin/top/machine.c */
160
+	int n;
161
+	struct kvm_swap swapary[1];
162
+
163
+	n = kvm_getswapinfo(kd, swapary, 1, 0);
164
+	if (n < 0) {
165
+		*avail = *used = 0;
166
+		return;
167
+	}
168
+
169
+	*avail = swapary[0].ksw_total - swapary[0].ksw_used;
170
+	*used = swapary[0].ksw_used;
171
+	return;
172
+#else
173
 	char *header;
174
 	int hlen, nswap, nswdev, dmmax;
175
 	int i, div, nfree, npfree;
176
@@ -546,6 +630,7 @@
177
 	*used = *avail - nfree;
178
 	free(sw);
179
 	free(perdev);
180
+#endif /* __FreeBSD_version >= 400000 */
181
 }
182
 
183
 /*
184
@@ -623,13 +708,21 @@
185
 	 * Make sure that the userland devstat version matches the kernel
186
 	 * devstat version.
187
 	 */
188
+#if __FreeBSD_version >= 500000
189
+	if (devstat_checkversion(kd) < 0) {
190
+#else
191
 	if (checkversion() < 0) {
192
+#endif
193
 		nodisk++;
194
 		return;
195
 	}
196
 
197
 	/* find out how many devices we have */
198
+#if __FreeBSD_version >= 500000
199
+	if ((num_devices = devstat_getnumdevs(kd)) < 0) {
200
+#else
201
 	if ((num_devices = getnumdevs()) < 0) {
202
+#endif
203
 		nodisk++;
204
 		return;
205
 	}
206
@@ -644,7 +737,11 @@
207
 	 * changed here, since it almost certainly has.  We only look for
208
 	 * errors.
209
 	 */
210
+#if __FreeBSD_version >= 500000
211
+	if (devstat_getdevs(kd,&cur) == -1) {
212
+#else
213
 	if (getdevs(&cur) == -1) {
214
+#endif
215
 		nodisk++;
216
 		return;
217
 	}
218
@@ -656,7 +753,11 @@
219
 
220
 	/* only interested in disks */
221
 	matches = NULL;
222
+#if __FreeBSD_version >= 500000
223
+	if (devstat_buildmatch("da", &matches, &num_matches) != 0) {
224
+#else
225
 	if (buildmatch("da", &matches, &num_matches) != 0) {
226
+#endif
227
 		nodisk++;
228
 		return;
229
 	}
230
@@ -671,7 +772,11 @@
231
 	 * device list has changed, so we don't look for return values of 0
232
 	 * or 1.  If we get back -1, though, there is an error.
233
 	 */
234
+#if __FreeBSD_version >= 500000
235
+	if (devstat_selectdevs(&dev_select, &num_selected,
236
+#else
237
 	if (selectdevs(&dev_select, &num_selected,
238
+#endif
239
 		       &num_selections, &select_generation,
240
 		       generation, cur.dinfo->devices, num_devices,
241
 		       matches, num_matches,
242
@@ -697,7 +802,11 @@
243
 		 * the selection process again, in case a device that we
244
 		 * were previously displaying has gone away.
245
 		 */
246
+#if __FreeBSD_version >= 500000
247
+		switch (devstat_getdevs(kd,&cur)) {
248
+#else
249
 		switch (getdevs(&cur)) {
250
+#endif
251
 		case -1:
252
 			return (0);
253
 		case 1: {
254
@@ -705,7 +814,11 @@
255
 
256
 			num_devices = cur.dinfo->numdevs;
257
 			generation = cur.dinfo->generation;
258
+#if __FreeBSD_version >= 500000
259
+			retval = devstat_selectdevs(&dev_select, &num_selected,
260
+#else
261
 			retval = selectdevs(&dev_select, &num_selected,
262
+#endif
263
 					    &num_selections, &select_generation,
264
 					    generation, cur.dinfo->devices,
265
 					    num_devices, matches, num_matches,
266
@@ -729,14 +842,22 @@
267
 		 * Calculate elapsed time up front, since it's the same for all
268
 		 * devices.
269
 		 */
270
+#if __FreeBSD_version >= 500000
271
+		busy_seconds = cur.snap_time - last.snap_time;
272
+#else
273
 		busy_seconds = compute_etime(cur.busy_time, last.busy_time);
274
+#endif
275
 
276
 		/* this is the first time thru so just copy cur to last */
277
 		if (last.dinfo->numdevs == 0) {
278
 			tmp_dinfo = last.dinfo;
279
 			last.dinfo = cur.dinfo;
280
 			cur.dinfo = tmp_dinfo;
281
+#if __FreeBSD_version >= 500000
282
+			last.snap_time = cur.snap_time;
283
+#else
284
 			last.busy_time = cur.busy_time;
285
+#endif
286
 			return (0);
287
 		}
288
 
289
@@ -764,7 +885,11 @@
290
 		last.dinfo = cur.dinfo;
291
 		cur.dinfo = tmp_dinfo;
292
 
293
+#if __FreeBSD_version >= 500000
294
+		last.snap_time = cur.snap_time;
295
+#else
296
 		last.busy_time = cur.busy_time;
297
+#endif
298
 
299
 	} else
300
 		/* no disks found ? */

Return to bug 58591