1 #ifndef lint
2 static char sccsid[] = "@(#)status.c 1.3 (Berkeley/CCI) 06/07/88";
3 #endif
4
5 #include "vdfmt.h"
6
7 /*
8 ** These routines are used to display the status of the formatter.
9 */
10
status()11 status()
12 {
13 indent();
14 switch (cur.state) {
15 case cmd :
16 print("Waiting for operator response.\n");
17 break;
18 case fmt :
19 dump_state("Formatting");
20 break;
21 case vfy :
22 dump_state("Verifying");
23 break;
24 case rel :
25 dump_state("Relocating");
26 break;
27 case cor :
28 dump_state("Correcting");
29 break;
30 case inf :
31 dump_state("Collecting information");
32 break;
33 case exec :
34 dump_state("Exercising disk");
35 break;
36 case setup:
37 printf("Initializing for operation ");
38 printf("on controller %d, drive %d.\n",
39 cur.controller, cur.drive);
40 default:
41 print("Current state is unknown.\n");
42 }
43 exdent(1);
44 }
45
46
47 /*
48 **
49 */
50
dump_state(string)51 dump_state(string)
52 char *string;
53 {
54 extern int wait_for_char;
55
56 indent();
57 print("%s on controller %d, drive %d.\n",
58 string, cur.controller, cur.drive);
59 if (wait_for_char)
60 print("Waiting for operator response.\n");
61 else {
62 print("Currently accessing cylinder %d, head %d.\n",
63 cur.daddr.cylinder, cur.daddr.track);
64 print("Currently ");
65 switch (cur.substate) {
66 case sub_chk :
67 printf("determining drive state.\n");
68 break;
69 case sub_fmt :
70 printf("formatting drive surface.\n");
71 break;
72 case sub_vfy :
73 printf("verifying drive surface.\n");
74 break;
75 case sub_rel :
76 printf("performing relocation operations.\n");
77 break;
78 case sub_rcvr :
79 printf("recovering from hardware error.\n");
80 break;
81 case sub_wmap :
82 printf("writing relocation map.\n");
83 break;
84 default :
85 printf("I don't know what is happening.\n");
86 break;
87 }
88 }
89 exdent(1);
90 }
91
92