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