SCCS-vsn: usr.bin/systat/swap.c 5.11
-/*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
+/*-
+ * Copyright (c) 1980, 1992 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.proprietary.c%
-static char sccsid[] = "@(#)swap.c 5.10 (Berkeley) %G%";
-#endif not lint
+static char sccsid[] = "@(#)swap.c 5.11 (Berkeley) %G%";
+#endif /* not lint */
+#include <sys/types.h>
+#include <sys/dmap.h>
+
+#include <nlist.h>
-#ifdef NOTDEF
-#include <sys/user.h>
-#include <sys/proc.h>
-#include <sys/conf.h>
-#include <sys/stat.h>
-#include <machine/pte.h>
-#include <paths.h>
-#endif NOTDEF
+#include "extern.h"
+
+long ntext, textp;
+struct text *xtext;
+
+static void swaplabel __P((int, int, int));
+static void vsacct __P((struct dmap *));
+static int swapdisplay __P((int, int, int));
+static int dmtoindex __P((int));
return (subwin(stdscr, LINES-5-1, 0, 5, 0));
}
return (subwin(stdscr, LINES-5-1, 0, 5, 0));
}
closeswap(w)
WINDOW *w;
{
closeswap(w)
WINDOW *w;
{
int dmmin;
int dmmax;
int dmtext;
int dmmin;
int dmmax;
int dmtext;
short buckets[MAXSWAPDEV][NDMAP];
struct swdevt *swdevt;
int colwidth;
short buckets[MAXSWAPDEV][NDMAP];
struct swdevt *swdevt;
int colwidth;
register int i, j;
register struct proc *pp;
register struct text *xp;
register int i, j;
register struct proc *pp;
register struct text *xp;
continue;
vsacct(&u.u_dmap);
vsacct(&u.u_smap);
continue;
vsacct(&u.u_dmap);
vsacct(&u.u_smap);
if ((pp->p_flag & SLOAD) == 0)
vusize(pp);
if ((pp->p_flag & SLOAD) == 0)
vusize(pp);
}
(void) swapdisplay(1+row, dmmax, 'X');
}
(void) swapdisplay(1+row, dmmax, 'X');
}
#define OFFSET 5 /* left hand column */
}
#define OFFSET 5 /* left hand column */
swapdisplay(baserow, dmbound, c)
swapdisplay(baserow, dmbound, c)
- int baserow, dmbound;
- char c;
+ int baserow, dmbound, c;
register int i, j, k, row;
register short *pb;
char buf[10];
register int i, j, k, row;
register short *pb;
char buf[10];
vsacct(dmp)
register struct dmap *dmp;
{
vsacct(dmp)
register struct dmap *dmp;
{
register swblk_t *ip;
register int blk = dmmin, index = 0;
register swblk_t *ip;
register int blk = dmmin, index = 0;
register int i, j;
for (j = 0, i = dmmin; i <= dmmax; i *= 2, j++)
register int i, j;
for (j = 0, i = dmmin; i <= dmmax; i *= 2, j++)
return (j);
error("dmtoindex(%d)", dm);
return (NDMAP - 1);
return (j);
error("dmtoindex(%d)", dm);
return (NDMAP - 1);
}
static struct nlist nlst[] = {
}
static struct nlist nlst[] = {
if (nlst[X_FIRST].n_type == 0) {
if (nlst[X_FIRST].n_type == 0) {
+ if (kvm_nlist(kd, nlst)) {
+ nlsterr(nlst);
+ return(0);
+ }
if (nlst[X_FIRST].n_type == 0) {
error("namelist on %s failed", _PATH_UNIX);
return(0);
if (nlst[X_FIRST].n_type == 0) {
error("namelist on %s failed", _PATH_UNIX);
return(0);
if (xtext == NULL)
xtext = (struct text *)calloc(ntext, sizeof (struct text));
return(1);
if (xtext == NULL)
xtext = (struct text *)calloc(ntext, sizeof (struct text));
return(1);
if (nlst[X_FIRST].n_type == 0)
return;
/*
if (nlst[X_FIRST].n_type == 0)
return;
/*
}
if (!KREAD(textp, xtext, ntext * sizeof (struct text)))
error("couldn't read text table");
}
if (!KREAD(textp, xtext, ntext * sizeof (struct text)))
error("couldn't read text table");
register int row;
if (nswdev == 0) {
register int row;
if (nswdev == 0) {
colwidth = (COLS - OFFSET - (nswdev - 1)) / nswdev;
row = swaplabel(0, dmtext, 1);
(void) swaplabel(row, dmmax, 0);
colwidth = (COLS - OFFSET - (nswdev - 1)) / nswdev;
row = swaplabel(0, dmtext, 1);
(void) swaplabel(row, dmmax, 0);
swaplabel(row, dmbound, donames)
register int row;
int dmbound, donames;
{
swaplabel(row, dmbound, donames)
register int row;
int dmbound, donames;
{
register int i, j;
for (i = 0; i < nswdev; i++) {
register int i, j;
for (i = 0; i < nswdev; i++) {
mvwaddch(wnd, row, OFFSET + k*(1 + colwidth) - 1, '|');
}
return (row);
mvwaddch(wnd, row, OFFSET + k*(1 + colwidth) - 1, '|');
}
return (row);