static char sccsid
[] = "@(#)disks.c 1.1 (Lucasfilm) %G%";
#include <vaxuba/ubavar.h>
#include <vaxmba/mbavar.h>
#include <sundev/mbvar.h>
char dr_name
[DK_NDRIVE
][10];
#define steal(where, var) \
lseek(kmem, where, L_SET); read(kmem, &var, sizeof var);
register struct mba_device
*mp
;
register struct uba_device
*up
;
char *cp
= (char *)&two_char
;
error("Disk init info not in namelist\n");
if (mdev
.mi_dk
< 0 || mdev
.mi_alive
== 0)
steal(mdev
.mi_driver
, mdrv
);
steal(mdrv
.md_dname
, two_char
);
sprintf(dr_name
[mdev
.mi_dk
], "%c%c%d",
cp
[0], cp
[1], mdev
.mi_unit
);
if (udev
.ui_dk
< 0 || udev
.ui_alive
== 0)
steal(udev
.ui_driver
, udrv
);
steal(udrv
.ud_dname
, two_char
);
sprintf(dr_name
[udev
.ui_dk
], "%c%c%d",
cp
[0], cp
[1], udev
.ui_unit
);
register struct mb_device
*mp
;
char *cp
= (char *) &two_char
;
error("Disk init info not in namelist\n");
if (mdev
.md_dk
< 0 || mdev
.md_alive
== 0)
steal(mdev
.md_driver
, mdrv
);
steal(mdrv
.mdr_dname
, two_char
);
sprintf(dr_name
[mdev
.md_dk
], "%c%c%d",
cp
[0], cp
[1], mdev
.md_unit
);
dkselect(args
, truefalse
, selections
)
int truefalse
, selections
[];
for (cp
= args
; *cp
&& isspace(*cp
); cp
++)
for (; *cp
&& !isspace(*cp
); cp
++)
for (i
= 0; i
< DK_NDRIVE
; i
++)
if (strcmp(args
, dr_name
[i
]) == 0) {
selections
[i
] = truefalse
;
error("%s: unknown drive", args
);