xref: /csrg-svn/usr.bin/vmstat/names.c (revision 54025)
148571Sbostic /*-
248571Sbostic  * Copyright (c) 1991 The Regents of the University of California.
348571Sbostic  * All rights reserved.
448571Sbostic  *
548571Sbostic  * %sccs.include.redist.c%
648571Sbostic  *
7*54025Sbostic  *	@(#)names.c	5.3 (Berkeley) 06/17/92
848571Sbostic  */
948571Sbostic 
1048571Sbostic #if !defined(hp300) && !defined(tahoe) && !defined(vax)
1148571Sbostic char *defdrives[] = { 0 };
1248571Sbostic #endif
1348571Sbostic 
1448571Sbostic #ifdef hp300
15*54025Sbostic #include <hp/dev/device.h>
1648571Sbostic 
1750003Skarels char *defdrives[] = { "sd0", "sd1", "sd2", "rd0", "rd1", "rd2", 0 };
1848571Sbostic 
1948571Sbostic void
2048571Sbostic read_names()
2148571Sbostic {
2248571Sbostic 	register char *p;
2348571Sbostic 	register u_long hp;
2448571Sbostic 	static char buf[BUFSIZ];
2548571Sbostic 	struct hp_device hdev;
2648571Sbostic 	struct driver hdrv;
2748571Sbostic 	char name[10];
2848571Sbostic 
2948571Sbostic 	hp = nl[X_HPDINIT].n_value;
3048571Sbostic 	if (hp == 0) {
3148571Sbostic 		(void) fprintf(stderr,
3248571Sbostic 		    "vmstat: disk init info not in namelist\n");
3348571Sbostic 		exit(1);
3448571Sbostic 	}
3548571Sbostic 	p = buf;
3648571Sbostic 	for (;; hp += sizeof hdev) {
3748571Sbostic 		(void)kvm_read((void *)hp, &hdev, sizeof hdev);
3848571Sbostic 		if (hdev.hp_driver == 0)
3948571Sbostic 			break;
4050003Skarels 		if (hdev.hp_dk < 0 || hdev.hp_alive == 0 ||
4150003Skarels 		    hdev.hp_cdriver == 0)
4248571Sbostic 			continue;
4348571Sbostic 		(void)kvm_read(hdev.hp_driver, &hdrv, sizeof hdrv);
4448571Sbostic 		(void)kvm_read(hdrv.d_name, name, sizeof name);
4548571Sbostic 		dr_name[hdev.hp_dk] = p;
4650003Skarels 		p += sprintf(p, "%s%d", name, hdev.hp_unit) + 1;
4748571Sbostic 	}
4848571Sbostic }
4948571Sbostic #endif /* hp300 */
5048571Sbostic 
5148571Sbostic #ifdef tahoe
5248571Sbostic #include <tahoe/vba/vbavar.h>
5348571Sbostic 
5448571Sbostic char *defdrives[] = { "dk0", "dk1", "dk2", 0 };
5548571Sbostic 
5648571Sbostic void
5748571Sbostic read_names()
5848571Sbostic {
5948571Sbostic 	register char *p;
6048571Sbostic 	struct vba_device udev, *up;
6148571Sbostic 	struct vba_driver udrv;
6248571Sbostic 	char name[10];
6348571Sbostic 	static char buf[BUFSIZ];
6448571Sbostic 
6548571Sbostic 	up = (struct vba_device *) nl[X_VBDINIT].n_value;
6648571Sbostic 	if (up == 0) {
6748571Sbostic 		(void) fprintf(stderr,
6848571Sbostic 		    "vmstat: disk init info not in namelist\n");
6948571Sbostic 		exit(1);
7048571Sbostic 	}
7148571Sbostic 	p = buf;
7248571Sbostic 	for (;; up += sizeof udev) {
7348571Sbostic 		(void)kvm_read(up, &udev, sizeof udev);
7448571Sbostic 		if (udev.ui_driver == 0)
7548571Sbostic 			break;
7648571Sbostic 		if (udev.ui_dk < 0 || udev.ui_alive == 0)
7748571Sbostic 			continue;
7848571Sbostic 		(void)kvm_read(udev.ui_driver, &udrv, sizeof udrv);
7948571Sbostic 		(void)kvm_read(udrv.ud_dname, name, sizeof name);
8048571Sbostic 		dr_name[udev.ui_dk] = p;
8148571Sbostic 		p += sprintf(p, "%s%d", name, udev.ui_unit);
8248571Sbostic 	}
8348571Sbostic }
8448571Sbostic #endif /* tahoe */
8548571Sbostic 
8648571Sbostic #ifdef vax
8748571Sbostic #include <vax/uba/ubavar.h>
8848571Sbostic #include <vax/mba/mbavar.h>
8948571Sbostic 
9048571Sbostic char *defdrives[] = { "hp0", "hp1", "hp2", 0 };
9148571Sbostic 
9248571Sbostic void
9348571Sbostic read_names()
9448571Sbostic {
9548571Sbostic 	register char *p;
9648571Sbostic 	unsigned long mp, up;
9748571Sbostic 	struct mba_device mdev;
9848571Sbostic 	struct mba_driver mdrv;
9948571Sbostic 	struct uba_device udev;
10048571Sbostic 	struct uba_driver udrv;
10148571Sbostic 	char name[10];
10248571Sbostic 	static char buf[BUFSIZ];
10348571Sbostic 
10448571Sbostic 	mp = nl[X_MBDINIT].n_value;
10548571Sbostic 	up = nl[X_UBDINIT].n_value;
10648571Sbostic 	if (mp == 0 && up == 0) {
10748571Sbostic 		(void) fprintf(stderr,
10848571Sbostic 		    "vmstat: disk init info not in namelist\n");
10948571Sbostic 		exit(1);
11048571Sbostic 	}
11148571Sbostic 	p = buf;
11248571Sbostic 	if (mp) for (;; mp += sizeof mdev) {
11348571Sbostic 		(void)kvm_read(mp, &mdev, sizeof mdev);
11448571Sbostic 		if (mdev.mi_driver == 0)
11548571Sbostic 			break;
11648571Sbostic 		if (mdev.mi_dk < 0 || mdev.mi_alive == 0)
11748571Sbostic 			continue;
11848571Sbostic 		(void)kvm_read(mdev.mi_driver, &mdrv, sizeof mdrv);
11948571Sbostic 		(void)kvm_read(mdrv.md_dname, name, sizeof name);
12048571Sbostic 		dr_name[mdev.mi_dk] = p;
12148571Sbostic 		p += sprintf(p, "%s%d", name, mdev.mi_unit);
12248571Sbostic 	}
12348571Sbostic 	if (up) for (;; up += sizeof udev) {
12448571Sbostic 		(void)kvm_read(up, &udev, sizeof udev);
12548571Sbostic 		if (udev.ui_driver == 0)
12648571Sbostic 			break;
12748571Sbostic 		if (udev.ui_dk < 0 || udev.ui_alive == 0)
12848571Sbostic 			continue;
12948571Sbostic 		(void)kvm_read(udev.ui_driver, &udrv, sizeof udrv);
13048571Sbostic 		(void)kvm_read(udrv.ud_dname, name, sizeof name);
13148571Sbostic 		dr_name[udev.ui_dk] = p;
13248571Sbostic 		p += sprintf(p, "%s%d", name, udev.ui_unit);
13348571Sbostic 	}
13448571Sbostic }
13548571Sbostic #endif /* vax */
136