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
list()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
display_operations(ctlr,drive)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
print_op_list(ops)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
73