summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pstat/pstat.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-09-22 20:01:34 +0000
committerpeter <peter@FreeBSD.org>1995-09-22 20:01:34 +0000
commit13f02e87b759638329f4492edb6868d9308ef089 (patch)
tree54c5d3e3dd7b0a23359efe1a379bb0bd270331a8 /usr.sbin/pstat/pstat.c
parent93bc840fa1fa7e0d6a7e90968972c3d5f51fef19 (diff)
downloadFreeBSD-src-13f02e87b759638329f4492edb6868d9308ef089.zip
FreeBSD-src-13f02e87b759638329f4492edb6868d9308ef089.tar.gz
Add support for the "si" Specialix driver in "pstat -t"
The si driver is different to the others in that the _si_tty symbol is a pointer, not the base of an array.
Diffstat (limited to 'usr.sbin/pstat/pstat.c')
-rw-r--r--usr.sbin/pstat/pstat.c54
1 files changed, 33 insertions, 21 deletions
diff --git a/usr.sbin/pstat/pstat.c b/usr.sbin/pstat/pstat.c
index cfff165..6f4e886 100644
--- a/usr.sbin/pstat/pstat.c
+++ b/usr.sbin/pstat/pstat.c
@@ -144,6 +144,10 @@ struct nlist nl[] = {
{ "_cy_tty" },
#define NCY (SNPTY+8)
{ "_ncy_tty" },
+#define SI (SNPTY+9)
+ { "_si_tty" },
+#define NSI (SNPTY+10)
+ { "_si_Nports" },
#endif
{ "" }
};
@@ -184,7 +188,7 @@ int nfs_print __P((struct vnode *));
void swapmode __P((void));
void ttymode __P((void));
void ttyprt __P((struct tty *, int));
-void ttytype __P((struct tty *, char *, int, int));
+void ttytype __P((struct tty *, char *, int, int, int));
void ufs_header __P((void));
int ufs_print __P((struct vnode *));
void vnode_header __P((void));
@@ -770,58 +774,61 @@ ttymode()
if (nl[SNQD].n_type != 0)
qdss();
if (nl[SNDZ].n_type != 0)
- ttytype(tty, "dz", SDZ, SNDZ);
+ ttytype(tty, "dz", SDZ, SNDZ, 0);
if (nl[SNDH].n_type != 0)
- ttytype(tty, "dh", SDH, SNDH);
+ ttytype(tty, "dh", SDH, SNDH, 0);
if (nl[SNDMF].n_type != 0)
- ttytype(tty, "dmf", SDMF, SNDMF);
+ ttytype(tty, "dmf", SDMF, SNDMF, 0);
if (nl[SNDHU].n_type != 0)
- ttytype(tty, "dhu", SDHU, SNDHU);
+ ttytype(tty, "dhu", SDHU, SNDHU, 0);
if (nl[SNDMZ].n_type != 0)
- ttytype(tty, "dmz", SDMZ, SNDMZ);
+ ttytype(tty, "dmz", SDMZ, SNDMZ, 0);
#endif
#ifdef tahoe
if (nl[SNVX].n_type != 0)
- ttytype(tty, "vx", SVX, SNVX);
+ ttytype(tty, "vx", SVX, SNVX, 0);
if (nl[SNMP].n_type != 0)
- ttytype(tty, "mp", SMP, SNMP);
+ ttytype(tty, "mp", SMP, SNMP, 0);
#endif
#ifdef hp300
if (nl[SNITE].n_type != 0)
- ttytype(tty, "ite", SITE, SNITE);
+ ttytype(tty, "ite", SITE, SNITE, 0);
if (nl[SNDCA].n_type != 0)
- ttytype(tty, "dca", SDCA, SNDCA);
+ ttytype(tty, "dca", SDCA, SNDCA, 0);
if (nl[SNDCM].n_type != 0)
- ttytype(tty, "dcm", SDCM, SNDCM);
+ ttytype(tty, "dcm", SDCM, SNDCM, 0);
if (nl[SNDCL].n_type != 0)
- ttytype(tty, "dcl", SDCL, SNDCL);
+ ttytype(tty, "dcl", SDCL, SNDCL, 0);
#endif
#ifdef mips
if (nl[SNDC].n_type != 0)
- ttytype(tty, "dc", SDC, SNDC);
+ ttytype(tty, "dc", SDC, SNDC, 0);
#endif
#ifdef __FreeBSD__
if (nl[NSCCONS].n_type != 0)
- ttytype(tty, "vty", SCCONS, NSCCONS);
+ ttytype(tty, "vty", SCCONS, NSCCONS, 0);
if (nl[NSIO].n_type != 0)
- ttytype(tty, "sio", SIO, NSIO);
+ ttytype(tty, "sio", SIO, NSIO, 0);
if (nl[NRC].n_type != 0)
- ttytype(tty, "rc", RC, NRC);
+ ttytype(tty, "rc", RC, NRC, 0);
if (nl[NCY].n_type != 0)
- ttytype(tty, "cy", CY, NCY);
+ ttytype(tty, "cy", CY, NCY, 0);
+ if (nl[NSI].n_type != 0)
+ ttytype(tty, "si", SI, NSI, 1);
#endif
if (nl[SNPTY].n_type != 0)
- ttytype(tty, "pty", SPTY, SNPTY);
+ ttytype(tty, "pty", SPTY, SNPTY, 0);
}
void
-ttytype(tty, name, type, number)
+ttytype(tty, name, type, number, indir)
register struct tty *tty;
char *name;
- int type, number;
+ int type, number, indir;
{
register struct tty *tp;
int ntty;
+ struct tty **ttyaddr;
if (tty == NULL)
return;
@@ -832,7 +839,12 @@ ttytype(tty, name, type, number)
if ((tty = realloc(tty, ttyspace * sizeof(*tty))) == 0)
err(1, NULL);
}
- KGET1(type, tty, ntty * sizeof(struct tty), "tty structs");
+ if (indir) {
+ KGET(type, ttyaddr);
+ KGET2(ttyaddr, tty, ntty * sizeof(struct tty), "tty structs");
+ } else {
+ KGET1(type, tty, ntty * sizeof(struct tty), "tty structs");
+ }
(void)printf(hdr);
for (tp = tty; tp < &tty[ntty]; tp++)
ttyprt(tp, tp - tty);
OpenPOWER on IntegriCloud