|
|
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.