1*48571Sbostic /*- 2*48571Sbostic * Copyright (c) 1991 The Regents of the University of California. 3*48571Sbostic * All rights reserved. 4*48571Sbostic * 5*48571Sbostic * %sccs.include.redist.c% 6*48571Sbostic * 7*48571Sbostic * @(#)names.c 5.1 (Berkeley) 04/23/91 8*48571Sbostic */ 9*48571Sbostic 10*48571Sbostic #if !defined(hp300) && !defined(tahoe) && !defined(vax) 11*48571Sbostic char *defdrives[] = { 0 }; 12*48571Sbostic #endif 13*48571Sbostic 14*48571Sbostic #ifdef hp300 15*48571Sbostic #include <hp300/dev/device.h> 16*48571Sbostic 17*48571Sbostic char *defdrives[] = { "rd0", "rd1", "rd2", 0 }; 18*48571Sbostic 19*48571Sbostic void 20*48571Sbostic read_names() 21*48571Sbostic { 22*48571Sbostic register char *p; 23*48571Sbostic register u_long hp; 24*48571Sbostic static char buf[BUFSIZ]; 25*48571Sbostic struct hp_device hdev; 26*48571Sbostic struct driver hdrv; 27*48571Sbostic char name[10]; 28*48571Sbostic 29*48571Sbostic hp = nl[X_HPDINIT].n_value; 30*48571Sbostic if (hp == 0) { 31*48571Sbostic (void) fprintf(stderr, 32*48571Sbostic "vmstat: disk init info not in namelist\n"); 33*48571Sbostic exit(1); 34*48571Sbostic } 35*48571Sbostic p = buf; 36*48571Sbostic for (;; hp += sizeof hdev) { 37*48571Sbostic (void)kvm_read((void *)hp, &hdev, sizeof hdev); 38*48571Sbostic if (hdev.hp_driver == 0) 39*48571Sbostic break; 40*48571Sbostic if (hdev.hp_dk < 0 || hdev.hp_alive == 0) 41*48571Sbostic continue; 42*48571Sbostic (void)kvm_read(hdev.hp_driver, &hdrv, sizeof hdrv); 43*48571Sbostic (void)kvm_read(hdrv.d_name, name, sizeof name); 44*48571Sbostic dr_name[hdev.hp_dk] = p; 45*48571Sbostic p += sprintf(p, "%s%d", name, hdev.hp_unit); 46*48571Sbostic } 47*48571Sbostic } 48*48571Sbostic #endif /* hp300 */ 49*48571Sbostic 50*48571Sbostic #ifdef tahoe 51*48571Sbostic #include <tahoe/vba/vbavar.h> 52*48571Sbostic 53*48571Sbostic char *defdrives[] = { "dk0", "dk1", "dk2", 0 }; 54*48571Sbostic 55*48571Sbostic void 56*48571Sbostic read_names() 57*48571Sbostic { 58*48571Sbostic register char *p; 59*48571Sbostic struct vba_device udev, *up; 60*48571Sbostic struct vba_driver udrv; 61*48571Sbostic char name[10]; 62*48571Sbostic static char buf[BUFSIZ]; 63*48571Sbostic 64*48571Sbostic up = (struct vba_device *) nl[X_VBDINIT].n_value; 65*48571Sbostic if (up == 0) { 66*48571Sbostic (void) fprintf(stderr, 67*48571Sbostic "vmstat: disk init info not in namelist\n"); 68*48571Sbostic exit(1); 69*48571Sbostic } 70*48571Sbostic p = buf; 71*48571Sbostic for (;; up += sizeof udev) { 72*48571Sbostic (void)kvm_read(up, &udev, sizeof udev); 73*48571Sbostic if (udev.ui_driver == 0) 74*48571Sbostic break; 75*48571Sbostic if (udev.ui_dk < 0 || udev.ui_alive == 0) 76*48571Sbostic continue; 77*48571Sbostic (void)kvm_read(udev.ui_driver, &udrv, sizeof udrv); 78*48571Sbostic (void)kvm_read(udrv.ud_dname, name, sizeof name); 79*48571Sbostic dr_name[udev.ui_dk] = p; 80*48571Sbostic p += sprintf(p, "%s%d", name, udev.ui_unit); 81*48571Sbostic } 82*48571Sbostic } 83*48571Sbostic #endif /* tahoe */ 84*48571Sbostic 85*48571Sbostic #ifdef vax 86*48571Sbostic #include <vax/uba/ubavar.h> 87*48571Sbostic #include <vax/mba/mbavar.h> 88*48571Sbostic 89*48571Sbostic char *defdrives[] = { "hp0", "hp1", "hp2", 0 }; 90*48571Sbostic 91*48571Sbostic void 92*48571Sbostic read_names() 93*48571Sbostic { 94*48571Sbostic register char *p; 95*48571Sbostic unsigned long mp, up; 96*48571Sbostic struct mba_device mdev; 97*48571Sbostic struct mba_driver mdrv; 98*48571Sbostic struct uba_device udev; 99*48571Sbostic struct uba_driver udrv; 100*48571Sbostic char name[10]; 101*48571Sbostic static char buf[BUFSIZ]; 102*48571Sbostic 103*48571Sbostic mp = nl[X_MBDINIT].n_value; 104*48571Sbostic up = nl[X_UBDINIT].n_value; 105*48571Sbostic if (mp == 0 && up == 0) { 106*48571Sbostic (void) fprintf(stderr, 107*48571Sbostic "vmstat: disk init info not in namelist\n"); 108*48571Sbostic exit(1); 109*48571Sbostic } 110*48571Sbostic p = buf; 111*48571Sbostic if (mp) for (;; mp += sizeof mdev) { 112*48571Sbostic (void)kvm_read(mp, &mdev, sizeof mdev); 113*48571Sbostic if (mdev.mi_driver == 0) 114*48571Sbostic break; 115*48571Sbostic if (mdev.mi_dk < 0 || mdev.mi_alive == 0) 116*48571Sbostic continue; 117*48571Sbostic (void)kvm_read(mdev.mi_driver, &mdrv, sizeof mdrv); 118*48571Sbostic (void)kvm_read(mdrv.md_dname, name, sizeof name); 119*48571Sbostic dr_name[mdev.mi_dk] = p; 120*48571Sbostic p += sprintf(p, "%s%d", name, mdev.mi_unit); 121*48571Sbostic } 122*48571Sbostic if (up) for (;; up += sizeof udev) { 123*48571Sbostic (void)kvm_read(up, &udev, sizeof udev); 124*48571Sbostic if (udev.ui_driver == 0) 125*48571Sbostic break; 126*48571Sbostic if (udev.ui_dk < 0 || udev.ui_alive == 0) 127*48571Sbostic continue; 128*48571Sbostic (void)kvm_read(udev.ui_driver, &udrv, sizeof udrv); 129*48571Sbostic (void)kvm_read(udrv.ud_dname, name, sizeof name); 130*48571Sbostic dr_name[udev.ui_dk] = p; 131*48571Sbostic p += sprintf(p, "%s%d", name, udev.ui_unit); 132*48571Sbostic } 133*48571Sbostic } 134*48571Sbostic #endif /* vax */ 135