|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)list.c 1.2 (Berkeley/CCI) 11/23/87";
3: #endif
4:
5: #include "vdfmt.h"
6:
7:
8: /*
9: ** Lists all the operations specified so far.
10: */
11:
12: list()
13: {
14: register int ctlr, drive;
15: boolean can_do = false;
16:
17: /* Determine if there are any operations to do */
18: for(ctlr=0; ctlr<MAXCTLR; ctlr++)
19: for(drive=0; drive<MAXDRIVE; drive++) {
20: if(ops_to_do[ctlr][drive].op)
21: can_do = true;
22: }
23: if(can_do == false) {
24: indent();
25: print("There are no operations to list!\n\n");
26: exdent(1);
27: return;
28: }
29: indent();
30: print("The following operations will occur when Start is issued:\n");
31: indent();
32: for(ctlr=0; ctlr<MAXCTLR; ctlr++)
33: for(drive=0; drive<MAXDRIVE; drive++)
34: if(ops_to_do[ctlr][drive].op != 0) {
35: print(""); /* force an indent */
36: display_operations(ctlr, drive);
37: }
38: exdent(2);
39: }
40:
41:
42: /*
43: **
44: */
45:
46: display_operations(ctlr, drive)
47: register int ctlr, drive;
48: {
49: print_op_list(ops_to_do[ctlr][drive].op);
50: printf(": Controller %d, drive %d", ctlr, drive);
51: printf(", type %s.\n", d_info[ctlr][drive].label.d_typename);
52: }
53:
54:
55: /*
56: **
57: */
58:
59: print_op_list(ops)
60: int ops;
61: {
62: register int cur_op;
63: char *prefix = "";
64:
65: for(cur_op=0; cur_op<NUMOPS; cur_op++) {
66: if(ops & (1 << cur_op)) {
67: printf("%s%s", prefix, operations[cur_op].op_name);
68: prefix = ", ";
69: }
70: }
71: }
72:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.