1 /*        Begin  include file ... tmdb.incl.pl1
 2    *
 3    *      Created by  Bill Silver  on 10/20/74
 4    *      Modified by J. A. Bush 12/30/80 for bootable tape labels
 5    *      Modified by J. A. Bush 12/15/81 for re-write of read error recovery
 6    *      Modified 8/82 by S.Krupp for change from tdcm_ to tape_ioi_
 7    *      This include file describes the work variables used by the Multics standard
 8    *      tape I/O module, tape_mult_.  This include file must be used with the include
 9    *      file:  mstr.incl.pl1
10 */
11 
12 
13 /****^  HISTORY COMMENTS:
14   1) change(86-10-13,GWMay), approve(86-10-13,MCR7552),
15      audit(86-10-13,Martinson), install(86-10-20,MR12.0-1189):
16      added fields to the tmdb structure that will add support for the use of
17      rcp in determining the density and format of a tape.
18                                                    END HISTORY COMMENTS */
19 
20 
21 /* format: style4,delnl,insnl,indattr,ifthen,declareind10,dclind10 */
22 dcl       tmdb_ptr               ptr;                       /* Pointer to tape_mult_ data block. */
23 
24 dcl       1 tmdb                 based (tmdb_ptr) aligned,  /* tape_mult_ data block. */
25             2 attach,                                       /* Attach description. */
26               3 length           fixed bin,                 /* Actual length of attach description. */
27               3 description      char (64),                 /* Attach description string. */
28             2 open,                                         /* Open description. */
29               3 length           fixed bin,                 /* Actual length of open description. */
30               3 description      char (32),                 /* Open description string. */
31             2 opt,                                          /* Attach options. */
32               3 flags,                                      /* Flags set from user input and options. */
33               ( 4 com_err        bit (1),                   /* ON => call com_err_ if there is an error. */
34                 4 ring           bit (1),                   /* ON => use writ ring,  OFF => no write ring. */
35                 4 system         bit (1),                   /* ON => user wants to be a system process. */
36                 4 err_tal        bit (1),                   /* ON => user wants error report */
37                 4 begin          bit (1),                   /* ON => begin processing tape */
38                 4 write_sw       bit (1),                   /* ON => write allowed */
39                 4 async_sw       bit (1)                    /* ON => user is prepared for errors to imply that previous put_chars failed. */
40                 )                unaligned,                 /* ON => user wants error tally displayed on closing */
41               3 reel_name        char (32) unal,            /* Tape reel slot ID. */
42               3 volume_set_id    char (32) unal,            /* volume set name */
43               3 mount_mode       char (7),                  /* Mount mode: "writing" or "reading". */
44               3 tracks           fixed bin,                 /* Either 9 or 7. */
45               3 density          fixed bin,                 /* Either 1600 or 800. */
46               3 tbpp             ptr,                       /* If not null, ptr to temp seg containing boot program */
47               3 blp              ptr,                       /* Ptr to buffer containing boot label record (READ ONLY) */
48               3 speed            bit (36),                  /* bits are 75, 125, 200 ips */
49               3 comment          char (64),                 /* User comment to operator. */
50             2 head               like mstr_header,          /* Dummy tape record header. */
51             2 trail              like mstr_trailer,         /* Dummy tape record trailer. */
52             2 work,                                         /* Work variables used. */
53               3 flags,                                      /* Flags we need that aren't in head.flags. */
54               ( 4 eod            bit (1),                   /* ON => end of good data. */
55                 4 eof            bit (1),                   /* ON => End of File. */
56                 4 bot            bit (1),                   /* ON => beginning of tape */
57                 4 retry_read     bit (1),                   /* ON => try reread recovery */
58                 4 read_fwd       bit (1),                   /* ON => want to read forward (recovery) */
59                 4 fatal_read_error bit (1),                 /* ON => read error recovery failed. */
60                 4 data_loss  bit (1)                        /* ON => read something, but with evidence that we lost something */
61                 )                unaligned,
62               3 rcp_id           bit (36),                  /* Id of current tape drive attachment */
63               3 tioi_id          bit (36),                  /* Id of current tape_ioi_ activation */
64               3 label_uid        bit (72),                  /* Unique ID of label record. */
65               3 label_version    fixed bin,                 /* version of label, returned on read */
66               3 output_mode      fixed bin,                 /* output mode tape was written with */
67               3 buf_pos          fixed bin,                 /* Current position within current bufffer. */
68               3 curr_buf         ptr,                       /* Current buffer being processed. */
69               3 next_buf         ptr,                       /* Next buffer to be processed. */
70               3 rec_length       fixed bin (21),            /* Length of data record in characters. */
71               3 n_full           fixed bin,                 /* Number of buffers ready to write. */
72               3 n_recs_to_eof    fixed bin,                 /* Num recs to write pre eof mark. */
73               3 n_bufs           fixed bin,                 /* Total number of buffers. */
74               3 bufs_per_subset  fixed bin,                 /* Number of buffers per subset. */
75               3 buf_len          fixed bin (21),            /* Length of a buffer. */
76               3 buffer           (8) ptr,                   /* Pointers to a subset of I/O buffers. */
77             2 meters,
78               3 fwd_rd_recovery  fixed bin,
79               3 reposition_recovery
80                                  fixed bin,
81             2 channels,
82               3 rcp              fixed bin(71),             /* Regular, used by rcp. */
83               3 ioi              fixed bin(71),             /* Fast, used by ioi. */
84             2 buffer             (1040) fixed bin (35),     /* Work buffer (currently used for label I/O). */
85             2 volume_density     fixed bin,                 /* either the input from -den or the value     */
86 
87                                                             /* returned by rcp_$check_attach in tape_info  */
88             2 volume_format      char (16);                 /* determined by rcp_                          */
89 /*        End of include file ... tmdb.incl.pl1   */