/* BEGIN INCLUDE FILE mtape_data.incl.pl1. Created by J. A. Bush 10/06/82 */ /* format: style4 */ dcl mtdp ptr; dcl mtape_data_version_1 char (8) int static options (constant) init ("mtdv0001"); dcl 1 mtape_data aligned based (mtdp), 2 version char (8), /* Current structure version */ 2 areap ptr, /* Pointer to an allocation area */ 2 iocb_ptr ptr, /* Pointer to our IO control block */ 2 atdp ptr, /* Pointer to the attach description string */ 2 opdp ptr, /* Pointer to the open description string */ 2 cldp ptr, /* Pointer to close description string */ 2 dtdp ptr, /* Pointer to detach description string */ 2 cmtdp ptr, /* If non-null, Ptr to allocated copy of mtape_data */ 2 vs_head ptr, /* Pointer to the first volume_set structure */ 2 vs_tail ptr, /* Pointer to the last volume_set structure */ 2 vs_current ptr, /* Pointer to the current volume_set structure */ 2 vs_mounted_tail ptr, /* Pointer to MRM volume_set member */ 2 fi_head ptr, /* Pointer to the first file_info structure */ 2 fi_tail ptr, /* Pointer to the last file_info structure */ 2 fi_current ptr, /* Pointer to the current file_info structure */ 2 tape_infop ptr, /* Pointer to rcp tape info structure */ 2 last_ur_status_ptr ptr, /* If non-null, Ptr to last unrecoverable status */ 2 io_echan fixed bin (71), /* Fast wait channel for I/O interrupts */ 2 mount_echan fixed bin (71), /* Regular wait channel for mount requests */ 2 data_xfer_args, /* Arguments for time critical (read/write) calls */ 3 arg_buf_ptr ptr, /* Pointer to users buffer */ 3 arg_buf_len fixed bin (21), /* Length of users buffer in bytes */ 3 arg_rec_len fixed bin (21), /* Length of record read in bytes */ 2 error_lock fixed bin (35), /* if ^= 0 = file locked error code */ 2 abs_ans char (3), /* Query answer (yes or no) for abs user */ 2 user_type bit (1), /* "1"b => interactive; "0"b => absentee */ 2 display_errors bit (1), /* "1"b => display verbose error messages */ 2 force_end_of_volume bit (1), /* "1"b => simulate EOV on next write */ 2 opd_len fixed bin (21), /* Allocated length of open description */ 2 drives_in_use fixed bin, /* Number of tape drives currently in use */ 2 data_buffers, /* Info about data buffers */ 3 buf_ptrs (8) ptr, /* Pointers to a subset of ioi buffers */ 3 blind_buf_ptrs (8) ptr, /* Pointers to other subset of buffers */ 3 buf_len (8) fixed bin (21), /* Length of buffers in 9 bit bytes */ 3 blind_buf_len (8) fixed bin (21), /* Lengths of other subset of buffers */ 3 nbufs fixed bin, /* Number of data buffers currently in use */ 3 buf_size fixed bin (21), /* Allocated size of data buffers in bytes */ 3 bufs_per_subset fixed bin, /* Number of buffers to write/read per I/O */ 3 cur_buf_idx fixed bin, /* Index into subset of current buffer */ 3 run bit (1), /* "1"b => wrt I/O queued thru tape_ioi_; "0"b => ^Queued */ 2 label_buffer, /* Info about label record buffer */ 3 lab_bufp ptr, /* Pointer to label I/O buffer */ 3 lab_buf_len fixed bin (21), /* Length of label buffer in 9 bit bytes */ 2 tlb ptr, /* Pointer to a temp label record structure */ 2 position, /* Position on current volume */ 3 phy_file fixed bin, /* physical file number */ 3 phy_block fixed bin, /* physical block within physical file */ 2 current_file, /* instantanious info about current file */ 3 cur_block, /* info about current block */ 4 cur_buf_ptr ptr, /* Pointer to the current data buffer */ 4 log_record_ptr ptr, /* Pointer to current logical record */ 4 length fixed bin (21), /* Length of current block in bytes */ 4 processed fixed bin (21), /* Number of chars processed already */ 4 remain fixed bin (21), /* Number of chars remaining to be processed */ 4 log_record fixed bin (21), /* Log. record within the current block */ 3 char_size fixed bin, /* Size in bits of the data chars of this file */ 3 padding_char char (1), /* To pad blocks to mod 4 on binary writes */ 3 length_mode fixed bin, /* 0 => W/R mod 4 blocks; 1 => W/R non-mod 4 blocks */ 3 hdw_mode fixed bin, /* Hardware recording mode: 1 = binary; 2 = nine track; 3 = BCD */ 3 conversion fixed bin, /* File data conversion: 0 = no conversion; 1 = ASCII<->EBCDIC; 2 = ASCII<->BCD */ 3 buffer_offset fixed bin, /* Number of bytes prior to data */ 3 block_size fixed bin (21), /* Maximum block size for this file */ 3 record_size fixed bin (21), /* Maximum record size for this file */ 3 prev_block_no fixed bin (21), /* Number of previous block read */ 3 ad_file_format fixed bin, /* 1 = U; 2 = F; 3 = D or V; 4 = S or VS */ 3 file_blocked bit (1), /* "1"b => file is blocked */ 3 native_file bit (1), /* "1"b => current file written by mtape_ PFM */ 3 write_after_read bit (1), /* "1"b => truncate file (and file_set) at this record */ 3 first_file bit (1), /* "1"b => first file has been processed */ 3 tot_bytes_processed fixed bin (35), /* total bytes in this file section */ 3 last_io fixed bin, /* Last I/O operation (1 = read; 2 = write) */ 3 lrec_rrcx fixed bin, /* current index of the lrec round robin counter */ 3 lrec_rrc, /* history of last n logical records */ 4 block_no (0:7) fixed bin (35), /* block (within file section) where lrec starts */ 4 block_len (0:7) fixed bin (35), /* block len of current block */ 4 lrec_no (0:7) fixed bin (35), /* logical record within currnt block */ 4 abs_byte (0:7) fixed bin (35), /* byte (within file section) where lrec starts */ 4 byte_offset (0:7) fixed bin, /* offset of 1st byte of lrec (within block) */ 3 blk_rrcx fixed bin, /* index into blk_rrrc array of last block */ 3 blk_rrrc (0:7) fixed bin (35), /* contains Lrec count of last n blocks */ 3 tot_lrec fixed bin (35), /* Total logical records processed in current file */ 2 tioi_id bit (36), /* Identifier used for calls to tape_ioi_ */ 2 attach_info_ptr ptr, /* Pointer to attach option info */ 2 open_info_ptr ptr, /* Pointer to open option info */ 2 close_info_ptr ptr, /* Pointer to close option info */ 2 detach_info_ptr ptr, /* Pointer to detach option info */ 2 pfm_info_ptr ptr, /* Pointer to PFM info block */ 2 saved_pfm_info_ptr ptr, /* Pointer to info for "change_module" control OP */ 2 pfm_name char (32), /* Name of Per-Format module */ 2 pfm_required_entries like pfm_entries, /* Required entry point declarations in PFM */ 2 pfm_work_area (32) fixed bin (35); /* PFM work buffer */ dcl 1 pfm_entries based aligned, /* Entry declarations for PFM entries */ 2 pfm_init entry (ptr, fixed bin (35)), /* PFM initialization entry */ 2 file_open entry (ptr, fixed bin (35)), /* PFM file_open entry */ 2 file_close entry (ptr, fixed bin (35)), /* PFM file_close entry */ 2 read entry (ptr, fixed bin (35)), /* PFM read entry */ 2 write entry (ptr, fixed bin (35)), /* PFM write entry */ 2 order entry (ptr, char (*), ptr, ptr, fixed bin (35)), /* PFM control order entry */ 2 decode_file_labels entry (ptr, ptr, fixed bin, fixed bin, fixed bin (35)), 2 encode_file_labels entry (ptr, ptr, fixed bin, fixed bin, fixed bin, fixed bin (35)); dcl all_buf_ptrs (16) ptr based (addr (mtape_data.buf_ptrs)); dcl all_buf_lens (16) fixed bin (21) based (addr (mtape_data.buf_len)); dcl tape_blk (mtape_data.length) char (1) unaligned based (mtape_data.cur_buf_ptr); /* template for a tape block */ /* END INCLUDE FILE mtape_data.incl.pl1 */ */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */