1 | /* |
---|
2 | * $Source: /afs/dev.mit.edu/source/repository/athena/bin/mon/readnames.c,v $ |
---|
3 | * $Author: dgg $ |
---|
4 | * $Locker: $ |
---|
5 | * $Header: /afs/dev.mit.edu/source/repository/athena/bin/mon/readnames.c,v 1.1 1984-12-13 12:01:24 dgg Exp $ |
---|
6 | */ |
---|
7 | |
---|
8 | #ifndef lint |
---|
9 | static char *rcsid_readnames_c = "$Header: /afs/dev.mit.edu/source/repository/athena/bin/mon/readnames.c,v 1.1 1984-12-13 12:01:24 dgg Exp $"; |
---|
10 | #endif lint |
---|
11 | |
---|
12 | /* |
---|
13 | * R E A D N A M E S |
---|
14 | * |
---|
15 | * purpose: Reads the names of the disks from kernel space |
---|
16 | * |
---|
17 | */ |
---|
18 | #include "mon.h" |
---|
19 | #include <sys/buf.h> /* needed by following two includes */ |
---|
20 | #include <vaxuba/ubavar.h> /* unibus adapters */ |
---|
21 | #include <vaxmba/mbavar.h> /* massbus adapters */ |
---|
22 | |
---|
23 | #define steal(where, var) lseek(kmem, where, 0); read(kmem, &var, sizeof var); |
---|
24 | |
---|
25 | read_names() |
---|
26 | { |
---|
27 | struct mba_device mdev; |
---|
28 | register struct mba_device *mp; |
---|
29 | struct mba_driver mdrv; |
---|
30 | short two_char; |
---|
31 | char *cp = (char *) &two_char; |
---|
32 | struct uba_device udev, *up; |
---|
33 | struct uba_driver udrv; |
---|
34 | |
---|
35 | mp = (struct mba_device *) namelist[X_MBDINIT].n_value; |
---|
36 | up = (struct uba_device *) namelist[X_UBDINIT].n_value; |
---|
37 | if (mp) for (;;) { |
---|
38 | steal(mp++, mdev); |
---|
39 | if (mdev.mi_driver == 0) |
---|
40 | break; |
---|
41 | if (mdev.mi_dk < 0 || mdev.mi_alive == 0) |
---|
42 | continue; |
---|
43 | steal(mdev.mi_driver, mdrv); |
---|
44 | steal(mdrv.md_dname, two_char); |
---|
45 | sprintf(dr_name[mdev.mi_dk], "%c%c%d", cp[0], cp[1], mdev.mi_unit); |
---|
46 | dr_unit[mdev.mi_dk] = mdev.mi_unit; |
---|
47 | } |
---|
48 | if (up) for (;;) { |
---|
49 | steal(up++, udev); |
---|
50 | if (udev.ui_driver == 0) |
---|
51 | break; |
---|
52 | if (udev.ui_dk < 0 || udev.ui_alive == 0) |
---|
53 | continue; |
---|
54 | steal(udev.ui_driver, udrv); |
---|
55 | steal(udrv.ud_dname, two_char); |
---|
56 | sprintf(dr_name[udev.ui_dk], "%c%c%d", cp[0], cp[1], udev.ui_unit); |
---|
57 | dr_unit[udev.ui_dk] = udev.ui_unit; |
---|
58 | } |
---|
59 | } |
---|