COMPILATION LISTING OF SEGMENT check_mst Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 07/16/87 1337.0 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(87-01-13,GDixon), approve(87-04-16,MCR7614), 17* audit(87-05-21,Farley), install(87-07-15,MR12.1-1040): 18* Add support for storing boot program as first segment of MST image stored 19* in a file. 20* END HISTORY COMMENTS */ 21 22 23 /* format: style2 */ 24 /* Command version of Multics checker */ 25 /* Written long ago by someone who probably wouldn't admit it today, anyway */ 26 /* Modified 26 June 1981, W. Olin Sibert, to call get_collection_$init and avoid creeping sizes */ 27 /* Completely rewritten 7/82 BIM */ 28 29 30 check_mst: 31 ckm: 32 procedure; 33 34 dcl ( 35 error_table_$noarg, 36 error_table_$inconsistent, 37 error_table_$too_many_args, 38 error_table_$badopt, 39 error_table_$bad_conversion, 40 error_table_$bad_arg 41 ) ext static fixed bin (35); 42 43 dcl density fixed bin; 44 dcl thing_name char (168); 45 dcl filename char (168); 46 dcl code fixed bin (35); 47 dcl (file, positional, tape) 48 bit (1) aligned; /* file --> -file, positional --> positional control arg seen, tape --> -tape */ 49 dcl ap pointer; 50 dcl al fixed bin (21); 51 dcl argument char (al) based (ap); 52 dcl argx fixed bin; 53 dcl n_args fixed bin; 54 55 dcl (addr, before, binary, char, fixed, null, string) 56 builtin; 57 58 dcl (get_temp_segments_, release_temp_segments_) 59 entry (char (*), dim (*) ptr, fixed bin (35)); 60 dcl ioa_ entry options (variable); 61 dcl checker_print_$init entry; 62 dcl define_area_ entry (ptr, fixed bin (35)); 63 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 64 dcl tape_reader_$init entry (char (*), char (*), fixed bin, bit (1) aligned, fixed bin (35)); 65 dcl tape_reader_$final entry; 66 dcl com_err_ entry options (variable); 67 dcl cu_$arg_count entry entry (fixed bin, fixed bin (35)); 68 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 69 dcl expand_pathname_$add_suffix 70 entry (char (*), char (*), char (*), char (*), fixed bin (35)); 71 dcl get_wdir_ entry returns (char (168)); 72 73 dcl checker_init_meters_ entry; 74 dcl checker_load_MST_ entry; 75 dcl checker_crossref_ entry; 76 77 dcl sslt_manager_$init entry (ptr); 78 dcl sslt_init_ entry (ptr, ptr); 79 80 dcl cleanup condition; 81 dcl checker_fatal_error_ condition; 82 dcl conversion condition; 83 1 1 /* Begin include file ..... iox_modes.incl.pl1 */ 1 2 1 3 /* Written by C. D. Tavares, 03/17/75 */ 1 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 1 5 1 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 1 7 ("stream_input", "stream_output", "stream_input_output", 1 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 1 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 1 10 "direct_input", "direct_output", "direct_update"); 1 11 1 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 1 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 1 14 1 15 dcl (Stream_input initial (1), 1 16 Stream_output initial (2), 1 17 Stream_input_output initial (3), 1 18 Sequential_input initial (4), 1 19 Sequential_output initial (5), 1 20 Sequential_input_output initial (6), 1 21 Sequential_update initial (7), 1 22 Keyed_sequential_input initial (8), 1 23 Keyed_sequential_output initial (9), 1 24 Keyed_sequential_update initial (10), 1 25 Direct_input initial (11), 1 26 Direct_output initial (12), 1 27 Direct_update initial (13)) fixed bin int static options (constant); 1 28 1 29 /* End include file ..... iox_modes.incl.pl1 */ 84 85 2 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 2 2 2 3 /* Written 05/04/78 by C. D. Tavares */ 2 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 2 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 2 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 2 7 2 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 2 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 2 10 iox_$close entry (pointer, fixed bin (35)), 2 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 2 12 iox_$delete_record entry (pointer, fixed bin (35)), 2 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 2 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 2 15 iox_$err_not_attached entry options (variable), 2 16 iox_$err_not_closed entry options (variable), 2 17 iox_$err_no_operation entry options (variable), 2 18 iox_$err_not_open entry options (variable), 2 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 2 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 2 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 2 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 2 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 2 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 2 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 2 28 iox_$propagate entry (pointer), 2 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 2 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 2 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 2 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 2 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 2 40 2 41 dcl (iox_$user_output, 2 42 iox_$user_input, 2 43 iox_$user_io, 2 44 iox_$error_output) external static pointer; 2 45 2 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 86 87 3 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 3 2 3 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 3 4 3 5 dcl area_infop ptr; 3 6 3 7 dcl 1 area_info aligned based (area_infop), 3 8 2 version fixed bin, /* version number for this structure is 1 */ 3 9 2 control aligned like area_control, /* control bits for the area */ 3 10 2 owner char (32) unal, /* creator of the area */ 3 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 3 12 2 size fixed bin (18), /* size of the area in words */ 3 13 2 version_of_area fixed bin, /* version of area (returned only) */ 3 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 3 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 3 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 3 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 3 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 3 19 3 20 dcl 1 area_control aligned based, 3 21 2 extend bit (1) unal, /* says area is extensible */ 3 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 3 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 3 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 3 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 3 26 2 system bit (1) unal, /* says area is managed by system */ 3 27 2 pad bit (30) unal; 3 28 3 29 /* END INCLUDE FILE area_info.incl.pl1 */ 88 89 dcl 1 AI aligned like area_info; 90 91 4 1 /* Begin include file checker_dcls_.incl.pl1 BIM 7/82 */ 4 2 /* Modified for loaded by Keith Loepere, December 1983 */ 4 3 /* format: style3,idind30 */ 4 4 4 5 dcl checker_data_$temp_ptrs (4) ptr external static; 4 6 dcl checker_data_$slt_ptr ptr external static; 4 7 dcl checker_data_$area_ptr ptr external static; 4 8 dcl checker_area area (sys_info$max_seg_size) based (checker_data_$area_ptr); 4 9 4 10 dcl checker_data_$name_table_ptr ptr external static; 4 11 dcl checker_data_$buffer_ptr ptr external static; 4 12 dcl checker_data_$meter_ptr ptr external static; 4 13 4 14 dcl checker_data_$input_iocbp ptr ext static; 4 15 dcl checker_data_$output_iocbp ptr ext static; 4 16 4 17 4 18 dcl checker_data_$last_wired_collection 4 19 fixed bin external static; 4 20 dcl checker_data_$last_text_wired_collection 4 21 fixed bin external static; 4 22 dcl checker_data_$last_supervisor_collection 4 23 fixed bin external static; 4 24 4 25 dcl 1 checker_data_$collection_names (0:10) external static, 4 26 2 major fixed bin, 4 27 2 minor fixed bin; 4 28 4 29 dcl checker_data_$loaded (0:10) external static bit (1) aligned; 4 30 4 31 dcl checker_data_$n_temp_ptrs fixed bin external static; 4 32 4 33 dcl checker_data_$severity fixed bin external static; 4 34 4 35 dcl 1 meters aligned based (checker_data_$meter_ptr), 4 36 2 sizes aligned, 4 37 3 wired_ai_linkage_size fixed bin, 4 38 3 paged_ai_linkage_size fixed bin, 4 39 3 wired_wi_linkage_size fixed bin, 4 40 3 paged_wi_linkage_size fixed bin, 4 41 3 wired_as_linkage_size fixed bin, 4 42 3 paged_as_linkage_size fixed bin, 4 43 3 wired_ws_linkage_size fixed bin, 4 44 3 paged_ws_linkage_size fixed bin, 4 45 3 wired_definitions_size fixed bin, 4 46 3 paged_definitions_size fixed bin, 4 47 2 wired_nt_size fixed bin, 4 48 2 paged_nt_size fixed bin, 4 49 2 overflown aligned, 4 50 3 (wired_ai_linkage, paged_ai_linkage, wired_wi_linkage, 4 51 paged_wi_linkage, wired_as_linkage, paged_as_linkage, 4 52 wired_ws_linkage, paged_ws_linkage, 4 53 wired_definitions, paged_definitions, 4 54 wired_nt, paged_nt, 4 55 wired_storage) bit (1) unaligned, 4 56 2 counts aligned, 4 57 3 wired_sdw_count fixed bin, 4 58 3 paged_sdw_count fixed bin, 4 59 3 wired_slte_count fixed bin, 4 60 3 paged_slte_count fixed bin, 4 61 2 wired_nt_used fixed bin, 4 62 2 paged_nt_used fixed bin, 4 63 2 used aligned, 4 64 3 wired_ai_linkage_used fixed bin, 4 65 3 paged_ai_linkage_used fixed bin, 4 66 3 wired_wi_linkage_used fixed bin, 4 67 3 paged_wi_linkage_used fixed bin, 4 68 3 wired_as_linkage_used fixed bin, 4 69 3 paged_as_linkage_used fixed bin, 4 70 3 wired_ws_linkage_used fixed bin, 4 71 3 paged_ws_linkage_used fixed bin, 4 72 3 wired_definitions_used fixed bin, 4 73 3 paged_definitions_used fixed bin, 4 74 2 per_collection (0:10) aligned, 4 75 3 read bit (1) aligned, 4 76 3 mark aligned, 4 77 4 major fixed bin, 4 78 4 minor fixed bin, 4 79 3 first_segment fixed bin (18), 4 80 3 last_segment fixed bin (18), 4 81 3 segment_count fixed bin (17), 4 82 3 words_used fixed bin (35), /* for wired */ 4 83 3 pages_used fixed bin (35), /* for paged */ 4 84 3 wired_pages_used fixed bin (35), /* for both! */ 4 85 3 perm_segment_count fixed bin, /* stay forever */ 4 86 3 temp_segment_count fixed bin, /* one collection */ 4 87 3 init_segment_count fixed bin, /* all of initialization */ 4 88 3 user_ring_segment_count fixed bin, 4 89 3 user_ring_segment_pages fixed bin, 4 90 3 ai_linkage_used fixed bin, 4 91 3 wi_linkage_used fixed bin, 4 92 3 as_linkage_used fixed bin, 4 93 3 ws_linkage_used fixed bin, 4 94 3 definitions_used fixed bin, 4 95 3 name_table_used fixed bin, 4 96 2 per_segment (0:1024) aligned, 4 97 3 collection fixed bin, 4 98 3 next fixed bin (18), 4 99 3 link_ptr pointer unaligned, 4 100 3 defs_ptr pointer unaligned; 4 101 4 102 declare segment_links_ptr pointer; 4 103 declare 1 segment_links aligned based (segment_links_ptr), 4 104 2 n_links fixed bin, 4 105 2 per_link (a_n_links refer (segment_links.n_links)) aligned, 4 106 3 expression_relps fixed bin (18) uns unal, 4 107 3 modifiers bit (6) unal; 4 108 4 109 /* rel pointers into def section stored in area */ 4 110 4 111 declare a_n_links fixed bin; 4 112 4 113 declare segment_defs_ptr pointer; 4 114 declare 1 segment_defs based (segment_defs_ptr) aligned, 4 115 2 length fixed bin, 4 116 2 definitions (a_defs_length refer (segment_defs.length)) bit (36) aligned; 4 117 4 118 declare a_defs_length fixed bin; 4 119 4 120 declare (CHECKER_WARNING init (1), /* */ 4 121 CHECKER_ERROR init (2), /* */ 4 122 CHECKER_SEVERE init (3), /* */ 4 123 CHECKER_FATAL init (4)) fixed bin int static options (constant); 4 124 4 125 declare ERROR_NAMES (1:4) char (16) init ("WARNING", "ERROR", "SEVERE ERROR", "FATAL ERROR") int static options (constant); 4 126 4 127 /* End include file checker_dcls_.incl.pl1 */ 92 93 94 dcl sys_info$max_seg_size fixed bin (35) ext; 95 96 dcl ME char (32) init ("check_mst") int static options (constant); 97 98 99 call cu_$arg_count (n_args, code); 100 if code ^= 0 101 then do; 102 call com_err_ (code, ME); 103 return; 104 end; 105 106 thing_name = ""; 107 positional = "0"b; 108 file = "0"b; 109 tape = "0"b; 110 density = 0; 111 checker_data_$severity = 0; 112 113 do argx = 1 to n_args; 114 call cu_$arg_ptr (argx, ap, al, (0)); 115 if char (argument, 1) ^= "-" 116 then do; 117 if positional /* only one positional allowed */ 118 then do; 119 call com_err_ (error_table_$too_many_args, ME, 120 "Only one MST may be supplied. ^a cannot be processed.", argument); 121 return; 122 end; 123 positional = "1"b; 124 thing_name = argument; 125 end; 126 else if argument = "-severity" | argument = "-sv" 127 then do; 128 if argx = n_args 129 then do; 130 call com_err_ (error_table_$noarg, ME, 131 "-severity must be followed by a severity number."); 132 return; 133 end; 134 on conversion 135 begin; 136 call com_err_ (error_table_$bad_conversion, ME, "Invalid severity number ^a.", 137 argument); 138 go to RETURN; 139 end; 140 argx = argx + 1; 141 call cu_$arg_ptr (argx, ap, al, (0)); 142 checker_data_$severity = fixed (argument); 143 revert conversion; 144 if checker_data_$severity > 4 | checker_data_$severity < 0 145 then do; 146 call com_err_ (error_table_$bad_arg, ME, 147 "-severity must be followed by N, for 0 <= N <= 4."); 148 return; 149 end; 150 end; 151 else if argument = "-tape" 152 then do; 153 if file | tape 154 then 155 DUP_INPUT: 156 do; 157 call com_err_ (error_table_$inconsistent, ME, 158 "-tape and -file may not both be specified."); 159 return; 160 end; 161 tape = "1"b; 162 end; 163 else if argument = "-file" 164 then do; 165 if file | tape 166 then goto DUP_INPUT; 167 file = "1"b; 168 end; 169 else if argument = "-density" | argument = "-den" 170 then do; 171 if argx = n_args 172 then do; 173 call com_err_ (error_table_$noarg, ME, "-density must be followed by a density."); 174 return; 175 end; 176 argx = argx + 1; 177 call cu_$arg_ptr (argx, ap, al, (0)); 178 if char (argument, 1) = "-" 179 then do; 180 call com_err_ (error_table_$noarg, ME, 181 "-density must be followed by a density, but a control argument, ^a, was found.", 182 argument); 183 return; 184 end; 185 on conversion 186 begin; 187 call com_err_ (error_table_$bad_conversion, ME, "^a is not a valid density.", argument) 188 ; 189 go to RETURN; 190 end; 191 192 density = binary (argument); 193 revert conversion; 194 end; 195 196 else do; 197 call com_err_ (error_table_$badopt, ME, "Unrecognized control argument ^a", argument); 198 RETURN: 199 return; 200 end; 201 end; 202 203 if ^file & ^tape 204 then tape = "1"b; 205 if thing_name = "" 206 then do; 207 call com_err_ (error_table_$noarg, ME, "No input specified."); 208 return; 209 end; 210 211 if file & density ^= 0 212 then do; 213 call com_err_ (error_table_$inconsistent, ME, "-density may not be specified with -file."); 214 return; 215 end; 216 217 thing_name = before (thing_name, ","); /* in case of ,den= */ 218 219 checker_data_$temp_ptrs (*) = null (); 220 checker_data_$input_iocbp, checker_data_$output_iocbp = null; 221 on cleanup call clean_up; 222 223 call get_temp_segments_ (ME, checker_data_$temp_ptrs, code); 224 if code ^= 0 225 then do; 226 call com_err_ (code, ME, "No temp segs to be had."); 227 go to EXIT; 228 end; 229 230 call tape_reader_$init (ME, thing_name, density, file, code); 231 if code ^= 0 232 then go to EXIT; 233 234 AI.version = area_info_version_1; 235 AI.owner = "check_mst"; 236 AI.size = sys_info$max_seg_size; 237 AI.areap = checker_data_$area_ptr; 238 string (AI.control) = ""b; 239 AI.no_freeing = "1"b; 240 AI.extend = "1"b; 241 242 call define_area_ (addr (AI), code); 243 if code ^= 0 244 then do; 245 call com_err_ (code, "check_mst", "Could not define def area."); 246 go to EXIT; 247 end; 248 249 call expand_pathname_$add_suffix (thing_name, "ckrout", (""), filename, code); 250 filename = pathname_ (get_wdir_ (), (filename)); 251 252 call iox_$attach_name ("checker_output_", checker_data_$output_iocbp, "vfile_ " || filename, null (), code); 253 if code ^= 0 254 then do; 255 outerr: 256 call com_err_ (code, "check_mst", "checker output file"); 257 go to EXIT; 258 end; 259 call iox_$open (checker_data_$output_iocbp, Stream_output, "0"b, code); 260 if code ^= 0 261 then go to outerr; 262 263 264 265 call ioa_ ("Begin checker"); 266 267 call checker_init_meters_; 268 call checker_print_$init; 269 270 call sslt_init_ (checker_data_$slt_ptr, checker_data_$name_table_ptr); 271 call sslt_manager_$init (checker_data_$slt_ptr); /* initialize "simulated slt" */ 272 273 on checker_fatal_error_ 274 begin; 275 call com_err_ (0, ME, "Fatal error. Checker run aborted."); 276 go to EXIT; 277 end; 278 279 call checker_load_MST_; 280 281 call checker_crossref_; 282 283 call tape_reader_$final; 284 285 call ioa_ ("End checker"); 286 287 EXIT: 288 call clean_up; 289 290 return; 291 292 293 clean_up: 294 proc; 295 296 297 if checker_data_$temp_ptrs (1) ^= null () 298 then call release_temp_segments_ (ME, checker_data_$temp_ptrs, code); 299 checker_data_$temp_ptrs (*) = null; 300 301 call tape_reader_$final (); 302 303 if checker_data_$output_iocbp ^= null 304 then do; 305 call iox_$close (checker_data_$output_iocbp, code); 306 call iox_$detach_iocb (checker_data_$output_iocbp, code); 307 checker_data_$output_iocbp = null; 308 end; 309 310 return; 311 end; 312 313 end check_mst; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/15/87 1602.4 check_mst.pl1 >special_ldd>install>MR12.1-1040>check_mst.pl1 84 1 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 86 2 05/23/83 0916.6 iox_entries.incl.pl1 >ldd>include>iox_dcls.incl.pl1 88 3 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 92 4 07/11/84 0937.3 checker_dcls_.incl.pl1 >ldd>include>checker_dcls_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. AI 000262 automatic structure level 1 dcl 89 set ref 242 242 ME 000000 constant char(32) initial unaligned dcl 96 set ref 102* 119* 130* 136* 146* 157* 173* 180* 187* 197* 207* 213* 223* 226* 230* 275* 297* Stream_output 000046 constant fixed bin(17,0) initial dcl 1-15 set ref 259* addr builtin function dcl 55 ref 242 242 al 000234 automatic fixed bin(21,0) dcl 50 set ref 114* 115 119 119 124 126 126 136 136 141* 142 151 163 169 169 177* 178 180 180 187 187 192 197 197 ap 000232 automatic pointer dcl 49 set ref 114* 115 119 124 126 126 136 141* 142 151 163 169 169 177* 178 180 187 192 197 area_control based structure level 1 dcl 3-20 area_info based structure level 1 dcl 3-7 area_info_version_1 constant fixed bin(17,0) initial dcl 3-3 ref 234 areap 16 000262 automatic pointer level 2 dcl 89 set ref 237* argument based char unaligned dcl 51 set ref 115 119* 124 126 126 136* 142 151 163 169 169 178 180* 187* 192 197* argx 000235 automatic fixed bin(17,0) dcl 52 set ref 113* 114* 128 140* 140 141* 171 176* 176 177* before builtin function dcl 55 ref 217 binary builtin function dcl 55 ref 192 char builtin function dcl 55 ref 115 178 checker_crossref_ 000062 constant entry external dcl 75 ref 281 checker_data_$area_ptr 000104 external static pointer dcl 4-7 ref 237 checker_data_$input_iocbp 000110 external static pointer dcl 4-14 set ref 220* checker_data_$name_table_ptr 000106 external static pointer dcl 4-10 set ref 270* checker_data_$output_iocbp 000112 external static pointer dcl 4-15 set ref 220* 252* 259* 303 305* 306* 307* checker_data_$severity 000114 external static fixed bin(17,0) dcl 4-33 set ref 111* 142* 144 144 checker_data_$slt_ptr 000102 external static pointer dcl 4-6 set ref 270* 271* checker_data_$temp_ptrs 000100 external static pointer array dcl 4-5 set ref 219* 223* 297 297* 299* checker_fatal_error_ 000246 stack reference condition dcl 81 ref 273 checker_init_meters_ 000056 constant entry external dcl 73 ref 267 checker_load_MST_ 000060 constant entry external dcl 74 ref 279 checker_print_$init 000032 constant entry external dcl 61 ref 268 cleanup 000240 stack reference condition dcl 80 ref 221 code 000225 automatic fixed bin(35,0) dcl 46 set ref 99* 100 102* 223* 224 226* 230* 231 242* 243 245* 249* 252* 253 255* 259* 260 297* 305* 306* com_err_ 000044 constant entry external dcl 66 ref 102 119 130 136 146 157 173 180 187 197 207 213 226 245 255 275 control 1 000262 automatic structure level 2 dcl 89 set ref 238* conversion 000254 stack reference condition dcl 82 ref 134 143 185 193 cu_$arg_count 000046 constant entry external dcl 67 ref 99 cu_$arg_ptr 000050 constant entry external dcl 68 ref 114 141 177 define_area_ 000034 constant entry external dcl 62 ref 242 density 000100 automatic fixed bin(17,0) dcl 43 set ref 110* 192* 211 230* error_table_$bad_arg 000022 external static fixed bin(35,0) dcl 34 set ref 146* error_table_$bad_conversion 000020 external static fixed bin(35,0) dcl 34 set ref 136* 187* error_table_$badopt 000016 external static fixed bin(35,0) dcl 34 set ref 197* error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 34 set ref 157* 213* error_table_$noarg 000010 external static fixed bin(35,0) dcl 34 set ref 130* 173* 180* 207* error_table_$too_many_args 000014 external static fixed bin(35,0) dcl 34 set ref 119* expand_pathname_$add_suffix 000052 constant entry external dcl 69 ref 249 extend 1 000262 automatic bit(1) level 3 packed unaligned dcl 89 set ref 240* file 000226 automatic bit(1) dcl 47 set ref 108* 153 165 167* 203 211 230* filename 000153 automatic char(168) unaligned dcl 45 set ref 249* 250* 250 252 fixed builtin function dcl 55 ref 142 get_temp_segments_ 000024 constant entry external dcl 58 ref 223 get_wdir_ 000054 constant entry external dcl 71 ref 250 250 ioa_ 000030 constant entry external dcl 60 ref 265 285 iox_$attach_name 000070 constant entry external dcl 2-8 ref 252 iox_$close 000072 constant entry external dcl 2-8 ref 305 iox_$detach_iocb 000074 constant entry external dcl 2-8 ref 306 iox_$open 000076 constant entry external dcl 2-8 ref 259 n_args 000236 automatic fixed bin(17,0) dcl 53 set ref 99* 113 128 171 no_freeing 1(04) 000262 automatic bit(1) level 3 packed unaligned dcl 89 set ref 239* null builtin function dcl 55 ref 219 220 252 252 297 299 303 307 owner 2 000262 automatic char(32) level 2 packed unaligned dcl 89 set ref 235* pathname_ 000036 constant entry external dcl 63 ref 250 positional 000227 automatic bit(1) dcl 47 set ref 107* 117 123* release_temp_segments_ 000026 constant entry external dcl 58 ref 297 size 13 000262 automatic fixed bin(18,0) level 2 dcl 89 set ref 236* sslt_init_ 000066 constant entry external dcl 78 ref 270 sslt_manager_$init 000064 constant entry external dcl 77 ref 271 string builtin function dcl 55 set ref 238* sys_info$max_seg_size 000116 external static fixed bin(35,0) dcl 94 ref 236 tape 000230 automatic bit(1) dcl 47 set ref 109* 153 161* 165 203 203* tape_reader_$final 000042 constant entry external dcl 65 ref 283 301 tape_reader_$init 000040 constant entry external dcl 64 ref 230 thing_name 000101 automatic char(168) unaligned dcl 44 set ref 106* 124* 205 217* 217 230* 249* version 000262 automatic fixed bin(17,0) level 2 dcl 89 set ref 234* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CHECKER_ERROR internal static fixed bin(17,0) initial dcl 4-120 CHECKER_FATAL internal static fixed bin(17,0) initial dcl 4-120 CHECKER_SEVERE internal static fixed bin(17,0) initial dcl 4-120 CHECKER_WARNING internal static fixed bin(17,0) initial dcl 4-120 Direct_input internal static fixed bin(17,0) initial dcl 1-15 Direct_output internal static fixed bin(17,0) initial dcl 1-15 Direct_update internal static fixed bin(17,0) initial dcl 1-15 ERROR_NAMES internal static char(16) initial array unaligned dcl 4-125 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 1-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 1-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 1-15 Sequential_input internal static fixed bin(17,0) initial dcl 1-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 1-15 Sequential_output internal static fixed bin(17,0) initial dcl 1-15 Sequential_update internal static fixed bin(17,0) initial dcl 1-15 Stream_input internal static fixed bin(17,0) initial dcl 1-15 Stream_input_output internal static fixed bin(17,0) initial dcl 1-15 a_defs_length automatic fixed bin(17,0) dcl 4-118 a_n_links automatic fixed bin(17,0) dcl 4-111 area_infop automatic pointer dcl 3-5 checker_area based area dcl 4-8 checker_data_$buffer_ptr external static pointer dcl 4-11 checker_data_$collection_names external static structure array level 1 unaligned dcl 4-25 checker_data_$last_supervisor_collection external static fixed bin(17,0) dcl 4-22 checker_data_$last_text_wired_collection external static fixed bin(17,0) dcl 4-20 checker_data_$last_wired_collection external static fixed bin(17,0) dcl 4-18 checker_data_$loaded external static bit(1) array dcl 4-29 checker_data_$meter_ptr external static pointer dcl 4-12 checker_data_$n_temp_ptrs external static fixed bin(17,0) dcl 4-31 iox_$attach_loud 000000 constant entry external dcl 2-8 iox_$attach_ptr 000000 constant entry external dcl 2-8 iox_$close_file 000000 constant entry external dcl 2-8 iox_$control 000000 constant entry external dcl 2-8 iox_$delete_record 000000 constant entry external dcl 2-8 iox_$destroy_iocb 000000 constant entry external dcl 2-8 iox_$detach 000000 constant entry external dcl 2-8 iox_$err_no_operation 000000 constant entry external dcl 2-8 iox_$err_not_attached 000000 constant entry external dcl 2-8 iox_$err_not_closed 000000 constant entry external dcl 2-8 iox_$err_not_open 000000 constant entry external dcl 2-8 iox_$error_output external static pointer dcl 2-41 iox_$find_iocb 000000 constant entry external dcl 2-8 iox_$find_iocb_n 000000 constant entry external dcl 2-8 iox_$get_chars 000000 constant entry external dcl 2-8 iox_$get_line 000000 constant entry external dcl 2-8 iox_$look_iocb 000000 constant entry external dcl 2-8 iox_$modes 000000 constant entry external dcl 2-8 iox_$move_attach 000000 constant entry external dcl 2-8 iox_$open_file 000000 constant entry external dcl 2-8 iox_$position 000000 constant entry external dcl 2-8 iox_$propagate 000000 constant entry external dcl 2-8 iox_$put_chars 000000 constant entry external dcl 2-8 iox_$read_key 000000 constant entry external dcl 2-8 iox_$read_length 000000 constant entry external dcl 2-8 iox_$read_record 000000 constant entry external dcl 2-8 iox_$rewrite_record 000000 constant entry external dcl 2-8 iox_$seek_key 000000 constant entry external dcl 2-8 iox_$user_input external static pointer dcl 2-41 iox_$user_io external static pointer dcl 2-41 iox_$user_output external static pointer dcl 2-41 iox_$write_record 000000 constant entry external dcl 2-8 iox_modes internal static char(24) initial array dcl 1-6 meters based structure level 1 dcl 4-35 segment_defs based structure level 1 dcl 4-114 segment_defs_ptr automatic pointer dcl 4-113 segment_links based structure level 1 dcl 4-103 segment_links_ptr automatic pointer dcl 4-102 short_iox_modes internal static char(4) initial array dcl 1-12 NAMES DECLARED BY EXPLICIT CONTEXT. DUP_INPUT 000740 constant label dcl 153 ref 165 EXIT 002167 constant label dcl 287 ref 227 231 246 257 276 RETURN 001250 constant label dcl 198 ref 138 189 check_mst 000354 constant entry external dcl 30 ckm 000345 constant entry external dcl 30 clean_up 002175 constant entry internal dcl 293 ref 221 287 outerr 001743 constant label dcl 255 ref 260 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2772 3112 2305 3002 Length 3460 2305 120 331 465 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ckm 454 external procedure is an external procedure. on unit on line 134 92 on unit on unit on line 185 92 on unit on unit on line 221 64 on unit on unit on line 273 90 on unit clean_up 80 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ckm 000100 density ckm 000101 thing_name ckm 000153 filename ckm 000225 code ckm 000226 file ckm 000227 positional ckm 000230 tape ckm 000232 ap ckm 000234 al ckm 000235 argx ckm 000236 n_args ckm 000262 AI ckm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op ext_entry int_entry any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. checker_crossref_ checker_init_meters_ checker_load_MST_ checker_print_$init com_err_ cu_$arg_count cu_$arg_ptr define_area_ expand_pathname_$add_suffix get_temp_segments_ get_wdir_ ioa_ iox_$attach_name iox_$close iox_$detach_iocb iox_$open pathname_ release_temp_segments_ sslt_init_ sslt_manager_$init tape_reader_$final tape_reader_$init THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. checker_data_$area_ptr checker_data_$input_iocbp checker_data_$name_table_ptr checker_data_$output_iocbp checker_data_$severity checker_data_$slt_ptr checker_data_$temp_ptrs error_table_$bad_arg error_table_$bad_conversion error_table_$badopt error_table_$inconsistent error_table_$noarg error_table_$too_many_args sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000344 99 000361 100 000371 102 000373 103 000410 106 000411 107 000414 108 000415 109 000416 110 000417 111 000420 113 000422 114 000431 115 000447 117 000460 119 000462 121 000515 123 000516 124 000520 125 000524 126 000525 128 000536 130 000541 132 000565 134 000566 136 000602 138 000635 140 000640 141 000641 142 000657 143 000674 144 000675 146 000702 148 000725 150 000726 151 000727 153 000733 157 000740 159 000764 161 000765 162 000767 163 000770 165 000774 167 001001 168 001003 169 001004 171 001014 173 001017 174 001043 176 001044 177 001045 178 001063 180 001074 183 001127 185 001130 187 001144 189 001177 192 001202 193 001214 194 001215 197 001216 198 001250 201 001251 203 001253 205 001262 207 001266 208 001312 211 001313 213 001320 214 001344 217 001345 219 001355 220 001373 221 001376 223 001420 224 001441 226 001443 227 001467 230 001470 231 001521 234 001523 235 001525 236 001530 237 001533 238 001536 239 001537 240 001541 242 001543 243 001555 245 001557 246 001610 249 001611 250 001643 252 001675 253 001741 255 001743 257 001777 259 002000 260 002017 265 002021 267 002036 268 002043 270 002050 271 002061 273 002070 275 002104 276 002130 279 002133 281 002140 283 002145 285 002152 287 002167 290 002173 293 002174 297 002202 299 002227 301 002245 303 002251 305 002256 306 002267 307 002301 310 002304 ----------------------------------------------------------- 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