COMPILATION LISTING OF SEGMENT gfms_file_content_records_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1142.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gfms_file_content_records_: proc (); 7 8 /* Display FILE CONTENT records information. 9* 10* Author: Dave Ward 10/03/80 11* Change: Dave Ward 10/08/80 isolate printing names. 12* Change: Dave Ward 10/10/80 create and move date to file. 13* Change: Dave Ward 10/13/80 lower case names, handle record_quota_overflow 14* Change: Dave Ward 10/15/80 total records, record entry. 15* Change: Dave Ward 10/16/80 corrected totaling records. 16* Change: Dave Ward 10/17/80 provide gtss file attributes. 17* Change: Dave Ward 10/29/80 adjusted to new tree description. 18* Change: Dave Ward 10/30/80 adjusted to new file name list. 19* Change: Dave Ward 11/12/80 creation date from content record. 20* Change: Dave Ward 11/25/80 bug in selective unloading. 21* Change: Scott C. Akers 02/08/82 Get working directory from gfms_ext$working_dir. 22* Don't blow up on bad file, just skip it. 23* Selective unloading by UMC, use UMC 24* to specify pathname if "-drm umc" applies. 25* Change: Ron Barstad 11/24/82 Fix bug on restoring MSFs--cl was not being set to 0 on new seg 26* Change: Ron Barstad 12/23/82 Fix bug on return from quota overflow fix command level 27* Change: Ron Barstad 11/21/84 Added rtrims to formation of msf paths 28* 29**/ 30 31 call ioa ("^|FILE CONTENT RECORDS INFORMATION:"); 32 first_warning = "1"b; 33 rqo_in_progress = "0"b; /* Whether processing record quota overflow (0 => not). */ 34 fcbp = null (); /* MSF fcb pointer. */ 35 wd = gfms_ext$working_dir; /* Obtain caller's working directory. */ 36 i = 0; /* Total file count. */ 37 bf = ""; /* Bad file string. */ 38 file_name_list.next_entry = 1; /* Next available start entry. */ 39 file_name_list.nn = 0; /* Number of file names. */ 40 file_name_list.total_llinks = 0; /* Total number llinks in all files. */ 41 if unload then /* Unloading, provide for record quota overflow. */ 42 on condition (record_quota_overflow) 43 call process_rqo ( /* Procedure to call if quota exceeded. */ 44 "Creating file:" 45 ||"^/"||rtrim(wd)||rtrim(sub_dir)||">"||rtrim (file_entry) 46 ); 47 LOOP_1: do while (get_rec () = GOT_RECORD); /* Obtain next file content record. */ 48 if file_continued = "0"b then 49 GROUP_1: do; /* Start f next file. */ 50 i = i+1; /* Count of files. */ 51 t = file_size; /* Total file llinks. */ 52 a = file_llinks_in_record; /* Accumulated file llinks (1st record). */ 53 call block_info; 54 call display_header (bf); 55 call define_file ( /* Establish Multics file in which to unload. */ 56 file_name2 /* (input) file name. */ 57 , file_desc_sect_num /* (input) sector number of file description record. */ 58 , t /* (input) total length of file llinks. */ 59 , bf /* (input) string of codes why file bad. */ 60 , cfd /* (output) gcos catalog/file description. */ 61 , sub_dir /* (output) multics directory path. */ 62 , gcos_file_name /* (output) GCOS file name (upper case). */ 63 , file_entry /* (output) multics file entry name (lower case). */ 64 , fne_ptr /* (output) pointer to file name entry. */ 65 , have_file /* (output) "1"b file definition successful. */ 66 ); 67 unloading_file = "0"b; /* Assume we are not to unload file. */ 68 if have_file then 69 if unload then 70 if do_file (cfd, gcos_file_name) then 71 GROUP_2: do; 72 call create_file ( 73 wd 74 , sub_dir 75 , file_entry 76 , fcbp 77 , c (0) 78 , have_file 79 ); 80 if have_file then do; 81 if gf then /* Provide gtss file attributes. */ 82 call gfms_gtss_attributes_ ( 83 rtrim(wd)||sub_dir /* (input) directory. */ 84 , file_entry /* (input) file name. */ 85 , fne_ptr /* (input) pointer to file name entry. */ 86 , fcr.file_creation_date /* (input) creation date BCD. */ 87 ); 88 cn = 0; /* Current component number. */ 89 cp = c (0); /* Pointer to the Multics file (segment). */ 90 cl, nll = a; /* Number of llinks to move 91* (will not exceed 1st segment <= 3840 words). */ 92 unspec (cp -> move_llinks) = unspec (addr (fcr.words66_nw) -> move_llinks); 93 unloading_file = "1"b; /* File is being unloaded. */ 94 end; 95 end GROUP_2; 96 97 LOOP_2: do while (t>a); /* total llinks > accumulated llinks. */ 98 i = i+1; 99 if get_rec () = END_OF_FILE then do; 100 call com_err_ ( 101 0 102 , "gfms_file_content_records_" 103 , "end of input during continuation record in file ^a" 104 , cfd 105 ); 106 signal condition (gfms_fail); 107 end; 108 if file_continued = "0"b then do; /* This should be a continued record. */ 109 call com_err_ ( 110 0 111 , "gfms_file_content_records_" 112 , "File ^a file size ^i accumulated ^i uncontinued record." 113 , cfd 114 , t 115 , a 116 ); 117 end; 118 call block_info; 119 call display_header (bf); 120 if unloading_file then 121 call unload_record; 122 a = a + file_llinks_in_record; /* Number of accumulated llinks moved. */ 123 end LOOP_2; 124 125 /* "close" the file. */ 126 if unloading_file then do; 127 call msf_manager_$adjust ( 128 fcbp 129 , cn 130 , cl*320*36 131 , "1"b /* Set the bit count. */ 132 ||"1"b /* truncate the final component. */ 133 ||"1"b /* terminate the component. */ 134 , code 135 ); 136 if code ^= 0 then do; 137 call com_err_ ( 138 code 139 , "gfms_file_content_records_" 140 , "Unable to adjust at component ^i:" 141 ||"^/""^a""" 142 , cn 143 , rtrim(wd)||rtrim(sub_dir)||">"||file_entry 144 ); 145 end; 146 call msf_manager_$close (fcbp); 147 end; 148 149 if t ^= a then do; /* Accumulated records not equal to total. */ 150 call com_err_ ( 151 0 152 , "gfms_file_content_records_" 153 , "File ^a size ^i accumulated ^i." 154 , cfd 155 , t 156 , a 157 ); 158 end; 159 160 end GROUP_1; 161 else do; /* Continued record after file completed. */ 162 call com_err_ ( 163 0 164 , "gfms_file_content_records_" 165 , "Continued record after file ^a completed." 166 , cfd 167 ); 168 end; 169 end LOOP_1; 170 171 if prfn | tll then call gfms_print_names_ (nn); 172 return; 173 174 bcd: proc (w)returns (char (13)); 175 176 /* Convert 6 bcd characters to ascii, convert blanks to 177* underlines (bcd has no underline character, so this 178* distinguishes bcd blanks). Return the 6 characters as a 2 179* strings of 6 characters each, space in middle, each input 180* character preceeded by a space. 181**/ 182 dcl w bit(36)aligned parm; 183 string (s) = gfms_ascii_ ((w)); /* Convert bcd to ascii. */ 184 string (s) = translate (string (s), "_", " "); /* Convert spaces to underlines. */ 185 string (r) = " "; /* Blank the result. */ 186 do i = 0 to 5; 187 if i<3 then k = 1; 188 else k = 2; 189 r ((i*2)+k) = s (i); /* Distribute to every other character of the output. */ 190 end; 191 return (string (r)); 192 193 dcl i fixed bin; 194 dcl k fixed bin; 195 dcl r (0:12)char(1)unal; 196 dcl s (0:5)char(1)unal; 197 end bcd; 198 199 block_info: proc; 200 201 /* Display and verify block information 202* from file content record. 203**/ 204 call ioa ( 205 "^6i. (block^6i) size^6i record-size^6i" 206 , i 207 , block_serial_number 208 , block_size 209 , record_size 210 ); 211 212 if no_files_in_record ^= 1 then do; 213 call ioa ("number of files in record not 1 (^i)", no_files_in_record); 214 do i = 0 to 65 by 4; 215 call ioa_nnl ("^12x^2i. ", i); 216 do j = i to (i+3) while (j <= 65); 217 call ioa_nnl (" ^12.3b", w (j)); 218 end; 219 call ioa_nnl ("^/"); 220 end; 221 end; 222 return; 223 end block_info; 224 225 create_directory: proc (wd, dr); 226 227 /* Create subdirectories specified by "dr" 228* under directory specified by "wd" 229**/ 230 dcl dr char(168)var parm; 231 dcl wd char(168)var parm; 232 n = 1; 233 on condition (record_quota_overflow) 234 call process_rqo ( 235 "Creating directory:" 236 ||"^/"||rtrim(wd)||">"||rtrim(dr)||">"||ent 237 ); 238 do while (n <= length (dr)); 239 k = index (substr (dr, n), ">"); 240 if k = 0 then k = length (dr)-n+2; 241 if n> 1 then wdir = rtrim(wd)||">"||substr (dr, 1, n-2); 242 else wdir = wd; 243 ent = substr (dr, n, k-1); 244 call hcs_$append_branchx ( 245 wdir /* (input) pathname of containing directory. */ 246 , ent /* (input) name of subdirectory. */ 247 , 01011b /* (input) status, modify and append access for *.*.*. */ 248 , rings /* (input) ring brackets. */ 249 , "*.*.*" /* (input) person project for access. */ 250 , 1 /* (input) directory being created. */ 251 , 0 /* (input) copy switch not on. */ 252 , 0 /* (input) no bit count. */ 253 , code /* (output) storage system status. */ 254 ); 255 if code ^= 0 then 256 if code ^= error_table_$namedup then do; 257 call com_err_ ( 258 code 259 , "gfms" 260 , "Directory: ^a>^a (retryable)" 261 , wdir 262 , ent 263 ); 264 signal condition (gfms_fail); 265 end; 266 n = n+k; 267 end; 268 revert condition (record_quota_overflow); 269 return; 270 271 dcl ent char(32); 272 dcl k fixed bin; 273 dcl n fixed bin; 274 dcl wdir char(168); 275 end create_directory; 276 277 create_file: proc (wd, dir, ent, fcbp, p1, fc); 278 279 /* Create MSF file wd>dir>ent. 280* Set fcbp to MSF file control block (fcb). 281* Set pointer p1 to 1st component. 282* Set fc "1"b if successful. 283**/ 284 dcl dir char(168)var parm; 285 dcl ent char(32)parm; 286 dcl fc bit(1)parm; 287 dcl fcbp ptr parm; 288 dcl p1 ptr parm; 289 dcl wd char(168)var parm; 290 number_of_attempts = 0; 291 try2: ; 292 call msf_manager_$open ( 293 rtrim(wd)||dir 294 , ent 295 , fcbp 296 , code 297 ); 298 if code ^= 0 then 299 if code ^= error_table_$noentry then do; 300 if code = error_table_$no_dir then do; 301 number_of_attempts = number_of_attempts+1; 302 if number_of_attempts = 1 then do; 303 if length (dir)>1 then 304 call create_directory (wd, substr (dir, 2)); 305 goto try2; 306 end; 307 end; 308 call com_err_ ( 309 code 310 , "gfms_file_content_records_" 311 , "Attempting to create:" 312 ||"^/""^a""" 313 , rtrim(wd)||rtrim(dir)||">"||ent 314 ); 315 fc = "0"b; /* Could not create the file. */ 316 return; 317 end; 318 319 call msf_manager_$get_ptr ( /* Obtain pointer to 1st component. */ 320 fcbp 321 , 0 /* 1st component number. */ 322 , "1"b /* (input) => create file if non-existent. */ 323 , p1 /* (output) pointer to component 0. */ 324 , bc /* (output) bit count. */ 325 , code 326 ); 327 if code ^= 0 then do; 328 if code ^= error_table_$namedup then 329 if code ^= error_table_$segknown then do; 330 call com_err_ ( 331 code 332 , "gfms_file_content_records_" 333 , "Unable to obtain pointer to 1st component of:" 334 ||"^/""^a""" 335 , rtrim(wd)||rtrim(dir)||">"||ent 336 ); 337 fc = "0"b; /* Could not create the file. */ 338 return; 339 end; 340 call msf_manager_$adjust ( /* Truncate existing file. */ 341 fcbp /* (input) pointer to file control block. */ 342 , 0 /* (input) MSF component. */ 343 , 0 /* (input) bit count. */ 344 , "0"b /* (3 bits input) do not set bit count. */ 345 ||"1"b /* truncate the component. */ 346 ||"0"b /* do not terminate the component. */ 347 , code /* (output) status code. */ 348 ); 349 if code ^= 0 then 350 call com_err_ ( 351 code 352 , "gfms" 353 , "Unable to truncate existing file ^a^a>^a" 354 , wd 355 , dir 356 , ent 357 ); 358 end; 359 360 fc = "1"b; 361 return; 362 363 dcl number_of_attempts fixed bin; 364 end create_file; 365 366 define_file: proc (n, s, l, bfc, cfn, dir, fn, ent, fep, defined); 367 368 /* Look up sector number "s" in the description tree 369* and display the catalog description found. 370* "n" is the BCD name of the file in the header information. 371* "l" is the total length of the file in llinks (=> 320 words @). 372* "bfc" is the bad file code string. 373* "cfn" is to be output the catalog/file name obtained. 374* "dir" is the Multics (sub) directory pathname. 375* "fn" is GCOS file name (upper case). 376* "ent" is the Multics file entry name (fn lower case). 377* "fep" is output set to file name entry. 378* "defined" is "1"b if file defined, else "0"b. 379**/ 380 dcl bfc char(20)var parm; 381 dcl cfn char(200)var parm; 382 dcl defined bit(1)parm; 383 dcl dir char(168)var parm; 384 dcl ent char(32)parm; 385 dcl fep ptr parm; 386 dcl fn char(12)var parm; 387 dcl l fixed bin parm; 388 dcl n bit(72)aligned parm; 389 dcl s fixed bin(18)unsigned unal parm; 390 defined = "1"b; /* Assume file will be defined. */ 391 cfn /* GCOS catalog file description. */ 392 , dir = ""; /* Multics directory pathname. */ 393 fn = rtrim (gfms_ascii_ ((n))); /* GCOS file name (i.e., upper case).. */ 394 ent = translate (fn, lower, upper); /* Multics entry name (lower case). */ 395 396 /* Locate description record. */ 397 d = start_list.desc (mod (s, hbound (start_list.desc, 1)+1)); 398 do while (d>0); 399 if description (d).sector = s then goto found_desc; 400 d = description (d).link; 401 end; 402 call com_err_ ( /* Unable to find desc. */ 403 0 404 , "gfms_file_content_records_" 405 , "Can not find description for sector ^6i (^6.3b oct) ""^a""" 406 , s 407 , unspec (s) 408 , fn 409 ); 410 fail: ; 411 defined = "0"b; /* File not defined. */ 412 goto finish_define_file; 413 414 found_desc: ; 415 416 /* Locate file entry of catalog. */ 417 f = start_list.file_child (mod (s, hbound (start_list.file_child, 1)+1)); 418 do while (f>0); 419 if cat (f).child_sector = s then goto found_file; 420 f = cat (f).child_link; 421 end; 422 call com_err_ ( /* Unable to find file catalog. */ 423 0 424 , "gfms_file_content_records_" 425 , "Can not find sector ^6i (^6.3b oct) ""^a"" file in catalog." 426 , s 427 , unspec (s) 428 , fn 429 ); 430 goto fail; 431 432 found_file: ; 433 434 if (n ^= description (d).name) | (n ^= cat (f).name) then 435 call com_err_ ( /* Names not consistant. */ 436 0 437 , "gfms_file_content_records_" 438 , "Names from content, description and catalog not consistant:" 439 ||"^/""^a"", ""^a"" and ""^a""" 440 ||"^/ Using first name." 441 , gfms_ascii_ ((n)) 442 , gfms_ascii_ ((description (d).name)) 443 , gfms_ascii_ ((cat (f).name)) 444 ); 445 446 /* Search the tree (backwards) to determine the 447* GCOS catalog/file description and correspondingly 448* the Multics pathname. 449**/ 450 next_level_up_tree: ; 451 cs = cat (f).parent_sector; /* Catalog sector of my parent. */ 452 f = start_list.cat_child (mod (cs, hbound (start_list.cat_child, 1)+1)); 453 do while (f>0); 454 if cat (f).child_sector = cs then do; /* Found my parent. */ 455 if length (cfn) = 0 then cfn, dir = cat (f).ascii_name; 456 else do; 457 cfn = cat (f).ascii_name||"/"||cfn; 458 dir = cat (f).ascii_name||">"||dir; 459 end; 460 goto next_level_up_tree; 461 end; 462 f = cat (f).child_link; 463 end; 464 465 /* Unable to find previous parent. 466* => There is no parent, i.e., catalog/file description 467* terminated. 468**/ 469 470 /* Collect file information. */ 471 fep, fnep = addr (file_name_list.start_entry (file_name_list.next_entry)); 472 file_name_entry.char_length.defl = length (bfc); 473 file_name_entry.char_length.naml = length (fn); 474 file_name_entry.char_length.catl = length (cfn); 475 if (file_name_list.next_entry + size (file_name_entry)) > hbound (file_name_list.start_entry, 1) then do; 476 if first_warning then 477 call com_err_ ( 478 error_table_$too_many_names 479 , "gfms_file_content_records_" 480 , "Only space for first ^i file names. Continuing." 481 , file_name_list.nn 482 ); 483 first_warning = "0"b; 484 end; 485 else do; /* Store the next file name entry. */ 486 nn = nn+1; 487 file_name_entry.llinks = l; 488 file_name_entry.defective = bfc; 489 file_name_entry.name = fn; 490 file_name_entry.catalog = cfn; 491 unspec (file_name_entry.attr) = unspec (description (d).attributes); 492 file_name_list.next_entry = 493 file_name_list.next_entry + size (file_name_entry); /* Locate next available entry. */ 494 end; 495 total_llinks = total_llinks + l; /* Total llinks for all files. */ 496 finish_define_file: ; 497 cfn = cfn||"/"||fn; /* Complete catalog file description. */ 498 if length (dir)>0 then 499 dir = ">"|| translate (dir, lower, upper); 500 return; 501 502 dcl cs fixed bin(18)unsigned; 503 dcl d fixed bin; 504 dcl f fixed bin; 505 end define_file; 506 507 display_header: proc (bfc); 508 509 /* Display file content header. */ 510 dcl bfc char(20)var parm /* bad file code. */; 511 call ioa_nnl ("^11x"); 512 call ioa_nnl (" file_name2 ^12a", gfms_ascii_ ((file_name2))); 513 call ioa_nnl (" user_name ^12a", gfms_ascii_ ((user_name))); 514 call ioa_nnl (" file_size ^6i llinks", file_size); 515 call ioa_nnl (" file_continued ^1b", file_continued); 516 call ioa_nnl (" file_llinks_in_record ^6i", file_llinks_in_record); 517 call ioa_nnl ("^/^11x"); 518 call ioa_nnl (" record_code ^a", record_code_type ()); 519 call ioa_nnl (" file_desc_sect_num ^6i", file_desc_sect_num); 520 call ioa_nnl ("^/^11x"); 521 if abort_locked ^= "0"b then do; 522 bfc = bfc||" AL"; 523 call ioa_nnl (" abort_locked ^1b", abort_locked); 524 end; 525 if defective_space ^= "0"b then do; 526 bfc = bfc||" DS"; 527 call ioa_nnl (" defective_space ^1b", defective_space); 528 end; 529 if saved_while_write_busy ^= "0"b then do; 530 bfc = bfc||" WB"; 531 call ioa_nnl (" saved_while_write_busy ^1b", saved_while_write_busy); 532 end; 533 if file_creation_date ^= "0"b then 534 call ioa_nnl (" file_creation_date ^12a", gfms_date_ (file_creation_date)); 535 if defective_llinks ^= "0"b then do; 536 bfc = bfc||" DL"; 537 call ioa_nnl (" defective_llinks ^4.3b", defective_llinks); 538 end; 539 if part_of_file ^= "0"b then do; 540 bfc = bfc||" PF"; 541 call ioa_nnl (" part_of_file ^1b", part_of_file); 542 end; 543 call ioa_nnl ("^/"); 544 return; 545 end display_header; 546 547 do_file: proc (c, f)returns (bit (1)); 548 549 /* Return "1"b if caller designated that 550* catalog file description "c" or file "f" is to 551* be unloaded. 552**/ 553 dcl c char(200)var parm; 554 dcl f char(12)var parm; 555 if file_names.number_names < 1 then return ("1"b); /* => do all. */ 556 k = file_start (gfms_hash_ ((f), hbound (file_start, 1)+1)); 557 do while (k>0); /* Examine if file name specified. */ 558 if file_name (k).name = f then do; 559 if file_name (k).not then return ("0"b); /* Do not unload file f. */ 560 return ("1"b); /* Do unload file f. */ 561 end; 562 k = file_name (k).link; 563 end; 564 k = cat_start (gfms_hash_ ((c), hbound (cat_start, 1)+1)); 565 do while (k>0); /* Examine if file name specified. */ 566 if file_name (k).name = c then do; 567 if file_name (k).not then return ("0"b); /* Do not unload file f. */ 568 return ("1"b); /* Do unload file f. */ 569 end; 570 k = file_name (k).link; 571 end; 572 return ("0"b); /* Neither specified. Don't unload. */ 573 574 dcl gfms_hash_ entry (char(*), fixed bin) returns(fixed bin); 575 dcl k fixed bin; 576 1 1 /* BEGIN INCLUDE FILE gfms_do_files.incl.pl1 (Wardd Multics) 10/19/80 2212.5 mst Sun */ 1 2 1 3 /* Hash list of files specified in -file, -no_file 1 4* control arguments and in the file designated by 1 5* the -input_file. 1 6**/ 1 7 dcl 1 file_names aligned based(inp) 1 8 , 3 number_names fixed bin 1 9 , 3 cat_start (0:1020)fixed bin 1 10 , 3 file_start (0:1020)fixed bin 1 11 , 3 file_name (4500) 1 12 , 4 not bit(1)unal 1 13 , 4 fill bit(17)unal 1 14 , 4 link fixed bin(17)unal 1 15 , 4 name char(168)var 1 16 ; 1 17 1 18 /* END INCLUDE FILE gfms_do_files.incl.pl1 */ 577 578 end do_file; 579 580 dump_rec: proc (p, l); 581 582 /* Display record BCD and octal. 583**/ 584 dcl l fixed bin parm; 585 dcl p ptr parm; 586 n = l-1; /* Number counting from 0 of l words. */ 587 call ioa_$ioa_switch_nnl (iox_$error_output, "^5x"); 588 do i = 0 to 7; /* Print header. */ 589 call ioa_$ioa_switch_nnl (iox_$error_output, "^13x^i", i); 590 end; 591 call ioa_$ioa_switch_nnl (iox_$error_output, "^/"); 592 do i = 0 by 8 to n; 593 if i>0 then 594 if last_line = current_line then do; 595 if first then do; 596 first = "0"b; 597 call ioa_$ioa_switch_nnl (iox_$error_output, "^6x^12(=^)"); 598 call ioa_$ioa_switch_nnl (iox_$error_output, "^/"); 599 end; 600 goto next_line; 601 end; 602 first = "1"b; 603 call ioa_$ioa_switch_nnl (iox_$error_output, "^4i.", i); 604 do j = i to (i+8-1) while (j <= n); /* Print bcd. */ 605 call ioa_$ioa_switch_nnl (iox_$error_output, "^1x^13a", bcd (w (j))); 606 end; 607 call ioa_$ioa_switch_nnl (iox_$error_output, "^/^5x"); 608 do j = i to (i+8-1) while (j <= n); /* Print octal. */ 609 call ioa_$ioa_switch_nnl (iox_$error_output, "^1x^6.3b'^6.3b", wl (j), wr (j)); 610 end; 611 call ioa_$ioa_switch_nnl (iox_$error_output, "^/"); 612 next_line: ; 613 end; 614 return; 615 616 dcl current_line bit(min(8,l-i)*36)aligned based(addr(w(i))); 617 dcl first bit(1); 618 dcl i fixed bin; 619 dcl ioa_$ioa_switch_nnl entry() options(variable); 620 dcl iox_$error_output ptr ext static; 621 dcl j fixed bin; 622 dcl last_line bit(min(8,l-i)*36)aligned based(addr(w(i-8))); 623 dcl n fixed bin; 624 dcl w (0:n)bit(36)aligned based(p); 625 626 dcl 1 w2 (0:n)aligned based(p) 627 , 2 wl bit(18)unal 628 , 2 wr bit(18)unal 629 ; 630 end dump_rec; 631 632 get_rec: proc returns (fixed bin); 633 634 /* Obtain the next FILE CONTENT record from tape. 635* Returns END_OF_FILE when no more input. 636* Returns GOT_RECORD when a good record is read. 637* Returns SKIP_FILE when a sick record is read. 638* 639* If we're restoring a specific UMC, then get_rec "eats" all records 640* which don't belong to the user name specified, and only returns 641* when one of the foregoing conditions is satisfied. 642* 643**/ 644 more: ; 645 call iox_$read_record ( 646 cbp /* (input) pointer to control block. */ 647 , addr (fcr_space) /* (input) record buffer. */ 648 , size (fcr_space)*4 /* (input) buffer length in bytes. */ 649 , nbr /* (output) number of bytes read. */ 650 , code /* (output) I/O system status. */ 651 ); 652 if code ^= 0 then 653 if code = error_table_$end_of_info then 654 if gfms_end_of_input_ ( 655 addr (fcr_space) /* (input) pointer to input buffer. */ 656 , size (fcr_space)*4 /* (input) length of buffer (bytes). */ 657 , nbr /* (input/output) current number bytes in buffer. */ 658 ) then return (END_OF_FILE); /* No more tape input. */ 659 else goto cont; /* Next reel in process. */ 660 else 661 if code ^= error_table_$long_record then do; 662 call com_err_ ( 663 code 664 , "gfms_file_content_records_" 665 , "Attempting to read file content record." 666 ||"^/Tape status ^4.3b" 667 ||"^/buffer length ^i (bytes)." 668 ||"^/bytes read ^i." 669 ||"^/attach description ""^a""" 670 , gfms_tape_status_ (cbp) 671 , size (fcr_space)*4 672 , nbr 673 , attach_description 674 ); 675 fail: ; 676 signal condition (gfms_fail); 677 end; 678 679 cont: ; 680 lc_uname = translate (gfms_ascii_ ((user_name)), lower, upper); 681 if gfms_ext$umc_name ^= "" /* Skip this record if it's 682* not related to the specified UMC. */ 683 & lc_uname ^= gfms_ext$umc_name 684 then goto more; 685 686 if gfms_ext$mapping_rule = "umc" /* Gotta put the stuff in the 687* right place. */ 688 then wd = rtrim (gfms_ext$working_dir) 689 || ">" 690 || rtrim (lc_uname) 691 || ">" 692 || rtrim (lc_uname); 693 694 if mod (nbr, 4) ^= 0 then /* Make sure length in words is consistent. */ 695 call com_err_ ( 696 0 697 , "gfms_file_content_records_" 698 , "Bytes read (^i) not word modulo, will truncate to word and continue." 699 , nbr 700 ); 701 nwr = divide (nbr, 4, 17); /* Number of words read. */ 702 if nwr = 66 then 703 if block_size = 65 then 704 if record_size = 64 then 705 if no_files_in_record = 1 then 706 if file_llinks_in_record = 0 then do; /* Empty content record. */ 707 call com_err_ ( 708 0 709 , "gfms_file_content_records_" 710 , "Empty content record (file ^i) for ""^a""" 711 , i 712 , gfms_ascii_ ((file_name2)) 713 ); 714 i = i+1; /* Count file. */ 715 goto more; 716 end; 717 nw = nwr-1; /* upper bound of fcr structure. */ 718 if nw < lbound (words66_nw, 1) then do; 719 call com_err_ ( 720 0 721 , "gfms_file_content_records_" 722 , "Faulty file content record." 723 ||"^/file ^i, ^i bytes read." 724 ||"^2/File contents will be inconsistent." 725 , i 726 , nbr 727 ); 728 call dump_rec (addr (fcr_space), nwr); 729 return (SKIP_FILE); /* Skip this file. */ 730 end; 731 return (GOT_RECORD); 732 end get_rec; 733 734 process_rqo: proc (m); 735 736 /* Process record quota overflow (message m). 737**/ 738 dcl m char(*)parm; 739 call user_info_$process_type (t); 740 if t ^= 1 then do; /* Not interactive caller. */ 741 call com_err_ ( 742 0 743 , "gfms" 744 , "Record quota overflow. "||m 745 ); 746 signal condition (gfms_fail); 747 end; 748 if rqo_in_progress then do; 749 call com_err_ ( 750 0 751 , "gfms" 752 , "Successive record quota overflow." 753 ||"^/Can not continue." 754 ); 755 signal condition (gfms_fail); 756 end; 757 rqo_in_progress = "1"b; 758 version = query_info_version_4; 759 yes_or_no_sw = "1"b; /* Accept only yes or no. */ 760 suppress_name_sw = "1"b; /* Include name. */ 761 suppress_spacing = "1"b; 762 cp_escape_control = "00"b; /* Obey default. */ 763 status_code = error_table_$rqover; /* record quota overflow. */ 764 query_code = 0; 765 question_iocbp, answer_iocbp = null (); 766 repeat_time = 0; /* Don't repeat question. */ 767 call command_query_ ( 768 addr (query_info) 769 , ans 770 , "gfms" 771 , "Record quota overflow. "||m 772 ||"^/Do you want to correct? " 773 ); 774 if ans = "no" then signal condition (gfms_fail); 775 on condition (program_interrupt) rqo_in_progress = "0"b; 776 call ioa_ ("You're at command level. Correct and ""pi"""); 777 call cu_$cl (); 778 if ^rqo_in_progress then return; 779 call com_err_ ( 780 0 781 , "gfms_file_content_records_" 782 , "Record quota overflow. Cannot continue." 783 ); 784 785 signal condition (gfms_fail); 786 dcl ans char(3)var; 787 dcl command_query_ entry() options(variable); 788 dcl cu_$cl entry(); 789 dcl program_interrupt condition ext; 790 dcl t fixed bin; 791 dcl user_info_$process_type entry (fixed bin); 792 end process_rqo; 793 794 record_code_type: proc returns (char (*)); 795 796 /* Evaluate record code. */ 797 if record_code = 0 then return ("NORMAL"); 798 if record_code = 1 then return ("DELAYED FILE, CONTENT FOLLOWS HEADER"); 799 if record_code = 2 then return ("DELAYED FILE, CONTENT LATER"); 800 if record_code = 4 then return ("NO CONTENT SAVED"); 801 return ("UNKNOW RECORD CODE "||ltrim (char (record_code))); 802 end record_code_type; 803 804 unload_record: proc; 805 806 /* Unload the current data record into the Multics file. */ 807 l = file_llinks_in_record; /* Expected number of llinks to move. */ 808 if (cl + l) > llinks_per_segment then do; /* About to span a Multics segment. */ 809 pl, nll = llinks_per_segment - cl; /* Fill out the segment. */ 810 l = l - pl; /* Reduce llinks in record by amount moved. */ 811 unspec (addrel (cp, 320*cl) -> move_llinks) = /* Move initial part of record. */ 812 unspec (addr (fcr.words66_nw) -> move_llinks); 813 814 /* Move to next MFS component. */ 815 cn = cn+1; 816 if cn > hbound (c, 1) then do; /* Exceeded MSF number of components. */ 817 call com_err_ ( 818 code 819 , "gfms_file_content_records_" 820 , "Exceeded ^i maximum number allowed MSF components:" 821 ||"^/""^a""" 822 , hbound (c, 1) 823 , rtrim(wd)||rtrim(sub_dir)||">"||file_entry 824 ); 825 signal condition (gfms_fail); /* FOR NOW. */ 826 end; 827 828 call msf_manager_$get_ptr ( /* Obtain the next MSF component (segment). */ 829 fcbp 830 , cn /* Component number. */ 831 , "1"b /* (input) => create file if non-existent. */ 832 , c (cn) 833 , bc /* (output) bit count. */ 834 , code 835 ); 836 if code ^= 0 then 837 if code ^= error_table_$segknown then do; 838 call com_err_ ( 839 code 840 , "gfms_file_content_records_" 841 , "Unable to obtain pointer to component ^i of:" 842 ||"^/""^a""" 843 , cn 844 , rtrim(wd)||rtrim(sub_dir)||">"||file_entry 845 ); 846 signal condition (gfms_fail); 847 end; 848 cp = c (cn); cl = 0; /* Reset to next component segment. */ 849 end; 850 else pl = 0; /* Start of data record to be moved. */ 851 nll = l; /* Number llinks to move. */ 852 unspec (addrel (cp, 320*cl) -> move_llinks) = /* Move final part of record. */ 853 unspec (addrel (addr (fcr.words66_nw), 320*pl) -> move_llinks); 854 cl = cl + nll; /* Curren length. */ 855 return; 856 end unload_record; 857 858 /* Variables for gfms_file_content_records_: */ 859 /* IDENTIFIER ATTRIBUTES */ 860 dcl a fixed bin; 861 dcl addr builtin; 862 dcl addrel builtin; 863 dcl bc fixed bin(24); 864 dcl bf char(20)var; 865 dcl c (0:499)ptr; 866 dcl cat_ptr ptr init(null()); 867 dcl cfd char(200)var; 868 dcl char builtin; 869 dcl cl fixed bin(24); /* current length in llinks of seg */ 870 dcl cn fixed bin; 871 dcl code fixed bin(35); 872 dcl com_err_ entry() options(variable); 873 dcl cp ptr; 874 dcl divide builtin; 875 dcl END_OF_FILE fixed bin internal static options (constant) init (3); 876 dcl error_table_$end_of_info fixed bin(35) ext static; 877 dcl error_table_$long_record fixed bin(35) ext static; 878 dcl error_table_$namedup fixed bin(35) ext static; 879 dcl error_table_$noentry fixed bin(35) ext static; 880 dcl error_table_$no_dir fixed bin(35) ext static; 881 dcl error_table_$rqover fixed bin(35) ext static; 882 dcl error_table_$segknown fixed bin(35) ext static; 883 dcl error_table_$too_many_names fixed bin(35) ext static; 884 dcl fcbp ptr; 885 dcl fcr_space (3906)bit(36)aligned; 886 dcl file_entry char(32); 887 dcl first_warning bit(1); 888 dcl fne_ptr ptr init(null()); 889 dcl gcos_file_name char(12)var; 890 dcl gfms_ascii_ entry(bit(*))returns(char(*)); 891 dcl gfms_date_ entry (bit(36) aligned) returns(char(8)); 892 dcl gfms_end_of_input_ entry (ptr, fixed bin(21), fixed bin(21)) returns(bit(1)); 893 dcl gfms_fail condition ext; 894 dcl gfms_gtss_attributes_ entry (char(186), char(32), ptr, bit(36) aligned); 895 dcl gfms_print_names_ entry(fixed bin); 896 dcl gfms_tape_status_ entry (ptr) returns(bit(12)); 897 dcl GOT_RECORD fixed bin internal static options (constant) init (2); 898 dcl have_file bit(1); 899 dcl hbound builtin; 900 dcl i fixed bin; 901 dcl index builtin; 902 dcl ioa_ entry() options(variable); 903 dcl iox_$read_record entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 904 dcl j fixed bin; 905 dcl l fixed bin; 906 dcl lbound builtin; 907 dcl lc_uname char (12); 908 dcl length builtin; 909 dcl llinks_per_segment fixed bin static int options(constant)init(816); 910 dcl lower char(26)static int options(constant)init("abcdefghijklmnopqrstuvwxyz"); 911 dcl ltrim builtin; 912 dcl min builtin; 913 dcl mod builtin; 914 dcl move_llinks (nll) bit(36*320)aligned based; 915 dcl msf_manager_$adjust entry (ptr, fixed bin, fixed bin(24), bit(3), fixed bin(35)); 916 dcl msf_manager_$close entry (ptr); 917 dcl msf_manager_$get_ptr entry (ptr, fixed bin, bit(1), ptr, fixed bin(24), fixed bin(35)); 918 dcl msf_manager_$open entry (char(*), char(*), ptr, fixed bin(35)); 919 dcl nbr fixed bin(21); 920 dcl nll fixed bin; 921 dcl null builtin; 922 dcl nw fixed bin; 923 dcl nwr fixed bin; 924 dcl pl fixed bin; 925 dcl record_quota_overflow condition ext; 926 dcl rings (3)fixed bin(3)static int options(constant)init(4,4,4); 927 dcl rqo_in_progress bit(1); 928 dcl rtrim builtin; 929 dcl SKIP_FILE fixed bin internal static options (constant) init (1); 930 dcl size builtin; 931 dcl string builtin; 932 dcl substr builtin; 933 dcl sub_dir char(168)var; 934 dcl t fixed bin; 935 dcl translate builtin; 936 dcl unloading_file bit(1); 937 dcl unspec builtin; 938 dcl upper char(26)static int options(constant)init("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 939 dcl w (0:65)bit(36)aligned based(addr(fcr_space)); 940 dcl wd char(168)var; 941 942 dcl hcs_$append_branchx entry ( 943 char(*) 944 , char(*) 945 , fixed bin(5) 946 , (3) fixed bin(3) 947 , char(*) 948 , fixed bin(1) 949 , fixed bin(1) 950 , fixed bin(24) 951 , fixed bin(35) 952 ); 953 954 /* See DD14, Rev 1 (June 1976) SYSTEM TABLES 955* Page 16-27 FILE CONTENT RECORDS (<=3906 words) 956**/ 957 dcl 1 fcr aligned based(addr(fcr_space)) 958 , 3 word0 959 , 4 block_serial_number fixed bin(18)unsigned unal 960 , 4 block_size fixed bin(18)unsigned unal 961 , 3 word1 962 , 4 record_size fixed bin(18)unsigned unal 963 , 4 b18_35 bit(18)unal 964 , 3 content_header 965 , 4 word2 966 , 5 record_code fixed bin(4)unsigned unal 967 , 5 no_files_in_record fixed bin(4)unsigned unal /* always 1. */ 968 , 5 serial_no_records_in_file fixed bin(4)unsigned unal 969 , 5 SMC_section_no fixed bin(6)unsigned unal 970 , 5 RFG1 bit(18)unal /* RFG => reserved For GCOS. */ 971 , 4 words3_4 972 , 5 user_name bit(72) 973 , 4 word5 974 , 5 file_desc_sect_num fixed bin(18)unsigned unal 975 , 5 RFG6 bit(1)unal 976 , 5 abort_locked bit(1)unal 977 , 5 RFG7 bit(7)unal 978 , 5 defective_space bit(1)unal 979 , 5 RFG8 bit(7)unal 980 , 5 saved_while_write_busy bit(1)unal 981 , 4 word6 982 , 5 file_creation_date bit(36) 983 , 4 word7 984 , 5 time_at_create bit(24)unal 985 , 5 prior_creation bit(12)unal 986 , 4 word8 987 , 5 file_continued bit(1)unal 988 , 5 file_llinks_in_record fixed bin(4)unsigned unal 989 , 5 RFG2 bit(1)unal 990 , 5 defective_llinks bit(12)unal 991 , 5 RFG3 bit(18)unal 992 , 4 word9 993 , 5 part_of_file bit(1)unal 994 , 5 RFG4 bit(11)unal 995 , 5 file_size fixed bin(24)unsigned unal 996 , 4 words10_11 997 , 5 file_name bit(72) 998 , 4 words12_13 999 , 5 file_name2 bit(72) 1000 , 4 words14_64 1001 , 5 RFG5 (14:64)bit(36) 1002 , 4 word65 1003 , 5 checksum bit(36) 1004 , 3 words66_nw (66:nw)bit(36) 1005 ; 1006 2 1 /* BEGIN INCLUDE FILE gfms_description_tree.incl.pl1 (Wardd Multics) 10/28/80 1222.2 mst Tue */ 2 2 dcl 1 description_tree aligned based(dtp) 2 3 2 4 , 3 start_list 2 5 , 4 cat_child (0:1020)fixed bin(18)unsigned 2 6 , 4 file_child (0:1020)fixed bin(18)unsigned 2 7 , 4 desc (0:1020)fixed bin(18)unsigned 2 8 2 9 , 3 n_cat fixed bin 2 10 , 3 cat (20000) 2 11 , 4 name bit(72) 2 12 , 4 ascii_name char(12)var 2 13 , 4 is_cat bit(1)unal 2 14 , 4 fill bit(17)unal 2 15 , 4 parent_sector fixed bin(18)unsigned unal 2 16 , 4 child_sector fixed bin(18)unsigned unal 2 17 , 4 child_link fixed bin(18)unsigned unal 2 18 2 19 , 3 n_desc fixed bin 2 20 , 3 description (19000) 2 21 , 4 link fixed bin(18)unsigned unal 2 22 , 4 sector fixed bin(18)unsigned unal 2 23 , 4 name bit(72) 2 24 , 4 attributes 2 25 , 5 max_size_llinks fixed bin(18)unsigned unal 2 26 , 5 mode bit(4)unal /* 1000 seq 0100 random 0010 ascii 0001 ids */ 2 27 , 5 not_in_use bit(14)unal 2 28 , 5 user_info 2 29 , 6 present bit(1)unal 2 30 , 6 value bit(35)unal 2 31 ; 2 32 2 33 /* END INCLUDE FILE gfms_description_tree.incl.pl1 */ 1007 1008 3 1 /* BEGIN INCLUDE FILE gfms_ext.incl.pl1 (Wardd Multics) 10/07/80 2142.2 mst Tue */ 3 2 /* Modified by: S. C. Akers 02/08/82 Add gfms_ext$working_dir, 3 3* mapping_rule, 3 4* umc_name 3 5* Modified Ron Barstad 83-06-03 attach_desc from 40 to 80 char 3 6**/ 3 7 3 8 dcl 1 gfms_ext$print_routines aligned ext 3 9 , 3 ioa entry variable options(variable) 3 10 , 3 ioa_nnl entry variable options(variable) 3 11 ; 3 12 3 13 dcl 1 gfms_ext$temp_segs aligned ext 3 14 , 3 dtp ptr 3 15 , 3 nlp ptr 3 16 , 3 inp ptr 3 17 ; 3 18 3 19 dcl 1 gfms_ext$tape_file aligned ext 3 20 , 3 cbp ptr 3 21 , 3 attach_description char(80)unal 3 22 , 3 density 3 23 , 4 ftd fixed bin /* First tape density to attempt. */ 3 24 , 4 ltd fixed bin /* Last tape density to attempt. */ 3 25 , 3 tape_reel_information 3 26 , 4 reel_serial_num char(6) 3 27 , 4 file_serial_num char(6) 3 28 , 4 reel_sequence_num char(6) 3 29 ; 3 30 3 31 dcl 1 gfms_ext$options aligned ext 3 32 , 3 close bit(1)unal /* perform iox close. */ 3 33 , 3 detach bit(1)unal /* perform iox detach. */ 3 34 , 3 dump bit(1)unal /* dump tape records/information. */ 3 35 , 3 gf bit(1)unal /* provide gtss file attributes. */ 3 36 , 3 prfn bit(1)unal /* print file names. */ 3 37 , 3 scan_ss bit(1)unal /* scan substructure, display, quit. */ 3 38 , 3 tll bit(1)unal /* print totals of llinks. */ 3 39 , 3 unload bit(1)unal /* unload files. */ 3 40 , 3 NOT_IN_USE bit(28)unal 3 41 ; 3 42 3 43 dcl gfms_ext$working_dir char (168) var ext static; /* Where to restore the files. 3 44* It may be the user's working 3 45* directory, or the UMC or SMC directory. */ 3 46 3 47 dcl gfms_ext$mapping_rule char(3) external static; 3 48 3 49 dcl gfms_ext$umc_name char(12) external static; 3 50 3 51 /* END INCLUDE FILE gfms_ext.incl.pl1 */ 1009 1010 4 1 /* BEGIN INCLUDE FILE gfms_file_name_list.incl.pl1 (Wardd Multics) 10/30/80 1053.4 mst Thu */ 4 2 4 3 /* List of files (with associated information) 4 4* found on the save tape. 4 5**/ 4 6 dcl 1 file_name_list aligned based(nlp) 4 7 , 3 nn fixed bin /* Number of names (entries). */ 4 8 , 3 total_llinks fixed bin(24) /* Accumulitive llinks. */ 4 9 , 3 next_entry fixed bin(24) /* index to start_entry to next entry. */ 4 10 , 3 start_entry (255*1024-3)bit(36) 4 11 ; 4 12 4 13 dcl fnep ptr; 4 14 dcl 1 file_name_entry aligned based(fnep) 4 15 , 3 llinks fixed bin(24) /* llinks in file. */ 4 16 , 3 attr like description_tree.attributes 4 17 , 3 char_length /* Lengths of variable. */ 4 18 , 4 defl fixed bin 4 19 , 4 naml fixed bin 4 20 , 4 catl fixed bin 4 21 , 3 defective char(file_name_entry.char_length.defl)unal 4 22 , 3 name char(file_name_entry.char_length.naml)unal 4 23 , 3 catalog char(file_name_entry.char_length.catl)unal 4 24 ; 4 25 4 26 /* END INCLUDE FILE gfms_file_name_list.incl.pl1 */ 1011 1012 5 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 5 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 5 3 /* version number changed to 4, 08/10/78 WOS */ 5 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 5 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 5 6 5 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 5 8 2 version fixed bin, /* version of this structure - must be set, see below */ 5 9 2 switches aligned, /* various bit switch values */ 5 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 5 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 5 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 5 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 5 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 5 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 5 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 5 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 5 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 5 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 5 20 5 21 /* Limit of data defined for version 2 */ 5 22 5 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 5 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 5 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 5 26 /* minimum of 30 seconds required for repeat */ 5 27 /* otherwise, no repeat will occur */ 5 28 /* Limit of data defined for version 4 */ 5 29 5 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 5 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 5 32 5 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 5 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 5 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 5 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 5 37 5 38 /* END INCLUDE FILE query_info.incl.pl1 */ 1013 1014 end gfms_file_content_records_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1022.3 gfms_file_content_records_.pl1 >spec>on>7105>gfms_file_content_records_.pl1 577 1 03/27/82 0424.8 gfms_do_files.incl.pl1 >ldd>include>gfms_do_files.incl.pl1 1007 2 03/27/82 0424.8 gfms_description_tree.incl.pl1 >ldd>include>gfms_description_tree.incl.pl1 1009 3 10/24/83 1642.4 gfms_ext.incl.pl1 >ldd>include>gfms_ext.incl.pl1 1011 4 03/27/82 0424.8 gfms_file_name_list.incl.pl1 >ldd>include>gfms_file_name_list.incl.pl1 1013 5 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.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. END_OF_FILE constant fixed bin(17,0) initial dcl 875 ref 99 652 GOT_RECORD constant fixed bin(17,0) initial dcl 897 ref 47 731 SKIP_FILE constant fixed bin(17,0) initial dcl 929 ref 729 a 000100 automatic fixed bin(17,0) dcl 860 set ref 52* 90 97 109* 122* 122 149 150* abort_locked 5(19) based bit(1) level 4 packed unaligned dcl 957 set ref 521 523* addr builtin function dcl 861 ref 48 51 52 55 55 81 92 92 108 122 204 204 204 212 213 217 471 512 513 514 515 516 519 521 523 525 527 529 531 533 533 533 535 537 539 541 593 593 645 645 652 652 680 702 702 702 702 707 718 728 728 767 767 797 798 799 800 801 807 811 811 852 852 addrel builtin function dcl 862 ref 811 852 852 ans 000100 automatic varying char(3) dcl 786 set ref 767* 774 answer_iocbp 6 012062 automatic pointer initial level 2 dcl 5-7 set ref 5-7* 765* ascii_name 5772 based varying char(12) array level 3 dcl 2-2 ref 455 457 458 attach_description 2 000070 external static char(80) level 2 packed unaligned dcl 3-19 set ref 662* attr 1 based structure level 2 dcl 4-14 set ref 491* attributes 476374 based structure array level 3 dcl 2-2 ref 491 bc 000101 automatic fixed bin(24,0) dcl 863 set ref 319* 828* bf 000102 automatic varying char(20) dcl 864 set ref 37* 54* 55* 119* bfc parameter varying char(20) dcl 510 in procedure "display_header" set ref 507 522* 522 526* 526 530* 530 536* 536 540* 540 bfc parameter varying char(20) dcl 380 in procedure "define_file" ref 366 472 488 block_serial_number based fixed bin(18,0) level 3 packed unsigned unaligned dcl 957 set ref 204* block_size 0(18) based fixed bin(18,0) level 3 packed unsigned unaligned dcl 957 set ref 204* 702 c parameter varying char(200) dcl 553 in procedure "do_file" ref 547 564 566 c 000110 automatic pointer array dcl 865 in procedure "gfms_file_content_records_" set ref 72* 89 816 817 817 828* 848 cat 5770 based structure array level 2 dcl 2-2 cat_child based fixed bin(18,0) array level 3 unsigned dcl 2-2 ref 452 452 cat_ptr 002060 automatic pointer initial dcl 866 set ref 866* cat_start 1 based fixed bin(17,0) array level 2 dcl 1-7 ref 564 564 catalog based char level 2 packed unaligned dcl 4-14 set ref 490* catl 5 based fixed bin(17,0) level 3 dcl 4-14 set ref 474* 475 490 492 cbp 000070 external static pointer level 2 dcl 3-19 set ref 645* 662* 662* cfd 002062 automatic varying char(200) dcl 867 set ref 55* 68* 100* 109* 150* 162* cfn parameter varying char(200) dcl 381 set ref 366 391* 455 455* 457* 457 474 490 497* 497 char builtin function dcl 868 ref 801 char_length 3 based structure level 2 dcl 4-14 child_link 5777(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-2 ref 420 462 child_sector 5777 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-2 ref 419 454 cl 002145 automatic fixed bin(24,0) dcl 869 set ref 90* 127 808 809 811 848* 852 854* 854 cn 002146 automatic fixed bin(17,0) dcl 870 set ref 88* 127* 137* 815* 815 816 828* 828 838* 848 code 002147 automatic fixed bin(35,0) dcl 871 set ref 127* 136 137* 244* 255 255 257* 292* 298 298 300 308* 319* 327 328 328 330* 340* 349 349* 645* 652 652 660 662* 817* 828* 836 836 838* com_err_ 000010 constant entry external dcl 872 ref 100 109 137 150 162 257 308 330 349 402 422 434 476 662 694 707 719 741 749 779 817 838 command_query_ 000110 constant entry external dcl 787 ref 767 content_header 2 based structure level 2 dcl 957 cp 002150 automatic pointer dcl 873 set ref 89* 92 811 848* 852 cp_escape_control 1(02) 012062 automatic bit(2) initial level 3 packed unaligned dcl 5-7 set ref 5-7* 762* cs 012144 automatic fixed bin(18,0) unsigned dcl 502 set ref 451* 452 454 cu_$cl 000112 constant entry external dcl 788 ref 777 current_line based bit dcl 616 ref 593 d 012145 automatic fixed bin(17,0) dcl 503 set ref 397* 398 399 400* 400 434 434 491 defective 6 based char level 2 packed unaligned dcl 4-14 set ref 488* defective_llinks 10(06) based bit(12) level 4 packed unaligned dcl 957 set ref 535 537* defective_space 5(27) based bit(1) level 4 packed unaligned dcl 957 set ref 525 527* defined parameter bit(1) unaligned dcl 382 set ref 366 390* 411* defl 3 based fixed bin(17,0) level 3 dcl 4-14 set ref 472* 475 488 489 490 492 desc 3772 based fixed bin(18,0) array level 3 unsigned dcl 2-2 ref 397 397 description 476371 based structure array level 2 dcl 2-2 description_tree based structure level 1 dcl 2-2 dir parameter varying char(168) dcl 284 in procedure "create_file" set ref 277 292 303 303 303 308 330 349* dir parameter varying char(168) dcl 383 in procedure "define_file" set ref 366 391* 455* 458* 458 498 498* 498 divide builtin function dcl 874 ref 701 dr parameter varying char(168) dcl 230 ref 225 233 238 239 240 241 243 dtp 000066 external static pointer level 2 dcl 3-13 ref 397 397 399 400 417 417 419 420 434 434 434 434 451 452 452 454 455 457 458 462 491 ent 000100 automatic char(32) unaligned dcl 271 in procedure "create_directory" set ref 233 243* 244* 257* ent parameter char(32) unaligned dcl 285 in procedure "create_file" set ref 277 292* 308 330 349* ent parameter char(32) unaligned dcl 384 in procedure "define_file" set ref 366 394* error_table_$end_of_info 000012 external static fixed bin(35,0) dcl 876 ref 652 error_table_$long_record 000014 external static fixed bin(35,0) dcl 877 ref 660 error_table_$namedup 000016 external static fixed bin(35,0) dcl 878 ref 255 328 error_table_$no_dir 000022 external static fixed bin(35,0) dcl 880 ref 300 error_table_$noentry 000020 external static fixed bin(35,0) dcl 879 ref 298 error_table_$rqover 000024 external static fixed bin(35,0) dcl 881 ref 763 error_table_$segknown 000026 external static fixed bin(35,0) dcl 882 ref 328 836 error_table_$too_many_names 000030 external static fixed bin(35,0) dcl 883 set ref 476* explanation_len 14 012062 automatic fixed bin(21,0) initial level 2 dcl 5-7 set ref 5-7* explanation_ptr 12 012062 automatic pointer initial level 2 dcl 5-7 set ref 5-7* f parameter varying char(12) dcl 554 in procedure "do_file" ref 547 556 558 f 012146 automatic fixed bin(17,0) dcl 504 in procedure "define_file" set ref 417* 418 419 420* 420 434 434 451 452* 453 454 455 457 458 462* 462 fc parameter bit(1) unaligned dcl 286 set ref 277 315* 337* 360* fcbp parameter pointer dcl 287 in procedure "create_file" set ref 277 292* 319* 340* fcbp 002152 automatic pointer dcl 884 in procedure "gfms_file_content_records_" set ref 34* 72* 127* 146* 828* fcr based structure level 1 dcl 957 fcr_space 002154 automatic bit(36) array dcl 885 set ref 48 51 52 55 55 81 92 108 122 204 204 204 212 213 217 512 513 514 515 516 519 521 523 525 527 529 531 533 533 533 535 537 539 541 645 645 645 652 652 652 662 680 702 702 702 702 707 718 728 728 797 798 799 800 801 807 811 852 fep parameter pointer dcl 385 set ref 366 471* file_child 1775 based fixed bin(18,0) array level 3 unsigned dcl 2-2 ref 417 417 file_continued 10 based bit(1) level 4 packed unaligned dcl 957 set ref 48 108 515* file_creation_date 6 based bit(36) level 4 dcl 957 set ref 81* 533 533* 533* file_desc_sect_num 5 based fixed bin(18,0) level 4 packed unsigned unaligned dcl 957 set ref 55* 519* file_entry 011656 automatic char(32) unaligned dcl 886 set ref 41 55* 72* 81* 137 817 838 file_llinks_in_record 10(01) based fixed bin(4,0) level 4 packed unsigned unaligned dcl 957 set ref 52 122 516* 702 807 file_name 3773 based structure array level 2 dcl 1-7 file_name2 14 based bit(72) level 4 dcl 957 set ref 55* 512 707 file_name_entry based structure level 1 dcl 4-14 set ref 475 492 file_name_list based structure level 1 dcl 4-6 file_names based structure level 1 dcl 1-7 file_size 11(12) based fixed bin(24,0) level 4 packed unsigned unaligned dcl 957 set ref 51 514* file_start 1776 based fixed bin(17,0) array level 2 dcl 1-7 ref 556 556 first 012174 automatic bit(1) unaligned dcl 617 set ref 595 596* 602* first_warning 011666 automatic bit(1) unaligned dcl 887 set ref 32* 476 483* fn parameter varying char(12) dcl 386 set ref 366 393* 394 402* 422* 473 489 497 fne_ptr 011670 automatic pointer initial dcl 888 set ref 55* 81* 888* fnep 012060 automatic pointer dcl 4-13 set ref 471* 472 473 474 475 475 475 475 487 488 488 489 489 489 490 490 490 490 491 492 492 492 492 gcos_file_name 011672 automatic varying char(12) dcl 889 set ref 55* 68* gf 0(03) 000072 external static bit(1) level 2 packed unaligned dcl 3-31 ref 81 gfms_ascii_ 000032 constant entry external dcl 890 ref 183 393 434 434 434 512 513 680 707 gfms_date_ 000034 constant entry external dcl 891 ref 533 533 gfms_end_of_input_ 000036 constant entry external dcl 892 ref 652 gfms_ext$mapping_rule 000076 external static char(3) unaligned dcl 3-47 ref 686 gfms_ext$options 000072 external static structure level 1 dcl 3-31 gfms_ext$print_routines 000064 external static structure level 1 dcl 3-8 gfms_ext$tape_file 000070 external static structure level 1 dcl 3-19 gfms_ext$temp_segs 000066 external static structure level 1 dcl 3-13 gfms_ext$umc_name 000100 external static char(12) unaligned dcl 3-49 ref 681 681 gfms_ext$working_dir 000074 external static varying char(168) dcl 3-43 ref 35 686 gfms_fail 011676 stack reference condition dcl 893 ref 106 264 676 746 755 774 785 825 846 gfms_gtss_attributes_ 000040 constant entry external dcl 894 ref 81 gfms_hash_ 000102 constant entry external dcl 574 ref 556 564 gfms_print_names_ 000042 constant entry external dcl 895 ref 171 gfms_tape_status_ 000044 constant entry external dcl 896 ref 662 662 have_file 011704 automatic bit(1) unaligned dcl 898 set ref 55* 68 72* 80 hbound builtin function dcl 899 ref 397 417 452 475 556 564 816 817 817 hcs_$append_branchx 000062 constant entry external dcl 942 ref 244 i 012175 automatic fixed bin(17,0) dcl 618 in procedure "dump_rec" set ref 588* 589* 592* 593 593 593 593 593 603* 604 604 608 608* i 011705 automatic fixed bin(17,0) dcl 900 in procedure "gfms_file_content_records_" set ref 36* 50* 50 98* 98 204* 214* 215* 216 216* 707* 714* 714 719* i 012106 automatic fixed bin(17,0) dcl 193 in procedure "bcd" set ref 186* 187 189 189* index builtin function dcl 901 ref 239 inp 4 000066 external static pointer level 2 dcl 3-13 ref 555 556 556 558 559 562 564 564 566 567 570 ioa 000064 external static entry variable level 2 dcl 3-8 ref 31 204 213 ioa_ 000046 constant entry external dcl 902 ref 776 ioa_$ioa_switch_nnl 000104 constant entry external dcl 619 ref 587 589 591 597 598 603 605 607 609 611 ioa_nnl 4 000064 external static entry variable level 2 dcl 3-8 ref 215 217 219 511 512 513 514 515 516 517 518 519 520 523 527 531 533 537 541 543 iox_$error_output 000106 external static pointer dcl 620 set ref 587* 589* 591* 597* 598* 603* 605* 607* 609* 611* iox_$read_record 000050 constant entry external dcl 903 ref 645 j 011706 automatic fixed bin(17,0) dcl 904 in procedure "gfms_file_content_records_" set ref 216* 216* 217* j 012176 automatic fixed bin(17,0) dcl 621 in procedure "dump_rec" set ref 604* 604* 605 605* 608* 608* 609 609* k 000110 automatic fixed bin(17,0) dcl 272 in procedure "create_directory" set ref 239* 240 240* 243 266 k 012107 automatic fixed bin(17,0) dcl 194 in procedure "bcd" set ref 187* 188* 189 k 012164 automatic fixed bin(17,0) dcl 575 in procedure "do_file" set ref 556* 557 558 559 562* 562 564* 565 566 567 570* 570 l 011707 automatic fixed bin(17,0) dcl 905 in procedure "gfms_file_content_records_" set ref 807* 808 810* 810 851 l parameter fixed bin(17,0) dcl 584 in procedure "dump_rec" ref 580 586 593 593 l parameter fixed bin(17,0) dcl 387 in procedure "define_file" ref 366 487 495 last_line based bit dcl 622 ref 593 lbound builtin function dcl 906 ref 718 lc_uname 011710 automatic char(12) unaligned dcl 907 set ref 680* 681 686 686 length builtin function dcl 908 ref 238 240 303 455 472 473 474 498 link 476371 based fixed bin(18,0) array level 3 in structure "description_tree" packed unsigned unaligned dcl 2-2 in procedure "gfms_file_content_records_" ref 400 link 3773(18) based fixed bin(17,0) array level 3 in structure "file_names" packed unaligned dcl 1-7 in procedure "do_file" ref 562 570 literal_sw 1(05) 012062 automatic bit(1) initial level 3 packed unaligned dcl 5-7 set ref 5-7* llinks based fixed bin(24,0) level 2 dcl 4-14 set ref 487* llinks_per_segment constant fixed bin(17,0) initial dcl 909 ref 808 809 lower 000012 constant char(26) initial unaligned dcl 910 ref 394 498 680 ltrim builtin function dcl 911 ref 801 m parameter char unaligned dcl 738 ref 734 741 767 min builtin function dcl 912 ref 593 593 mod builtin function dcl 913 ref 397 417 452 694 move_llinks based bit(11520) array dcl 914 set ref 92* 92 811* 811 852* 852 msf_manager_$adjust 000052 constant entry external dcl 915 ref 127 340 msf_manager_$close 000054 constant entry external dcl 916 ref 146 msf_manager_$get_ptr 000056 constant entry external dcl 917 ref 319 828 msf_manager_$open 000060 constant entry external dcl 918 ref 292 n 012177 automatic fixed bin(17,0) dcl 623 in procedure "dump_rec" set ref 586* 592 604 608 n parameter bit(72) dcl 388 in procedure "define_file" ref 366 393 434 434 434 n 000111 automatic fixed bin(17,0) dcl 273 in procedure "create_directory" set ref 232* 238 239 240 241 241 243 266* 266 name 3774 based varying char(168) array level 3 in structure "file_names" dcl 1-7 in procedure "do_file" ref 558 566 name based char level 2 in structure "file_name_entry" packed unaligned dcl 4-14 in procedure "gfms_file_content_records_" set ref 489* name 5770 based bit(72) array level 3 in structure "description_tree" dcl 2-2 in procedure "gfms_file_content_records_" ref 434 434 name 476372 based bit(72) array level 3 in structure "description_tree" dcl 2-2 in procedure "gfms_file_content_records_" ref 434 434 naml 4 based fixed bin(17,0) level 3 dcl 4-14 set ref 473* 475 489 490 492 nbr 011713 automatic fixed bin(21,0) dcl 919 set ref 645* 652* 662* 694 694* 701 719* next_entry 2 based fixed bin(24,0) level 2 dcl 4-6 set ref 38* 471 475 492* 492 nll 011714 automatic fixed bin(17,0) dcl 920 set ref 90* 92 92 809* 811 811 851* 852 852 854 nlp 2 000066 external static pointer level 2 dcl 3-13 ref 38 39 40 171 471 471 475 475 476 486 486 492 492 495 495 nn based fixed bin(17,0) level 2 dcl 4-6 set ref 39* 171* 476* 486* 486 no_files_in_record 2(04) based fixed bin(4,0) level 4 packed unsigned unaligned dcl 957 set ref 212 213* 702 not 3773 based bit(1) array level 3 packed unaligned dcl 1-7 ref 559 567 null builtin function dcl 921 ref 34 866 888 5-7 5-7 5-7 765 number_names based fixed bin(17,0) level 2 dcl 1-7 ref 555 number_of_attempts 012134 automatic fixed bin(17,0) dcl 363 set ref 290* 301* 301 302 nw 011715 automatic fixed bin(17,0) dcl 922 set ref 717* 718 nwr 011716 automatic fixed bin(17,0) dcl 923 set ref 701* 702 717 728* p parameter pointer dcl 585 ref 580 593 593 605 605 609 609 p1 parameter pointer dcl 288 set ref 277 319* padding 1(07) 012062 automatic bit(29) initial level 3 packed unaligned dcl 5-7 set ref 5-7* parent_sector 5776(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-2 ref 451 part_of_file 11 based bit(1) level 4 packed unaligned dcl 957 set ref 539 541* pl 011717 automatic fixed bin(17,0) dcl 924 set ref 809* 810 850* 852 prfn 0(04) 000072 external static bit(1) level 2 packed unaligned dcl 3-31 ref 171 program_interrupt 000102 stack reference condition dcl 789 ref 775 prompt_after_explanation 1(06) 012062 automatic bit(1) initial level 3 packed unaligned dcl 5-7 set ref 5-7* query_code 3 012062 automatic fixed bin(35,0) initial level 2 dcl 5-7 set ref 5-7* 764* query_info 012062 automatic structure level 1 dcl 5-7 set ref 767 767 query_info_version_4 constant fixed bin(17,0) initial dcl 5-34 ref 758 question_iocbp 4 012062 automatic pointer initial level 2 dcl 5-7 set ref 5-7* 765* r 012110 automatic char(1) array unaligned dcl 195 set ref 185* 189* 191 record_code 2 based fixed bin(4,0) level 4 packed unsigned unaligned dcl 957 ref 797 798 799 800 801 record_quota_overflow 011720 stack reference condition dcl 925 ref 41 233 268 record_size 1 based fixed bin(18,0) level 3 packed unsigned unaligned dcl 957 set ref 204* 702 repeat_time 10 012062 automatic fixed bin(71,0) initial level 2 dcl 5-7 set ref 5-7* 766* rings 000007 constant fixed bin(3,0) initial array dcl 926 set ref 244* rqo_in_progress 011726 automatic bit(1) unaligned dcl 927 set ref 33* 748 757* 775* 778 rtrim builtin function dcl 928 ref 41 41 41 81 137 137 233 233 241 292 308 308 330 330 393 686 686 686 817 817 838 838 s 012114 automatic char(1) array unaligned dcl 196 in procedure "bcd" set ref 183* 184* 184 189 s parameter fixed bin(18,0) unsigned unaligned dcl 389 in procedure "define_file" set ref 366 397 399 402* 402 402 417 419 422* 422 422 saved_while_write_busy 5(35) based bit(1) level 4 packed unaligned dcl 957 set ref 529 531* sector 476371(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-2 ref 399 size builtin function dcl 930 ref 475 492 645 652 662 start_entry 3 based bit(36) array level 2 dcl 4-6 set ref 471 475 start_list based structure level 2 dcl 2-2 status_code 2 012062 automatic fixed bin(35,0) initial level 2 dcl 5-7 set ref 5-7* 763* string builtin function dcl 931 set ref 183* 184* 184 185* 191 sub_dir 011727 automatic varying char(168) dcl 933 set ref 41 55* 72* 81 137 817 838 substr builtin function dcl 932 ref 239 241 243 303 303 suppress_name_sw 1(01) 012062 automatic bit(1) initial level 3 packed unaligned dcl 5-7 set ref 5-7* 760* suppress_spacing 1(04) 012062 automatic bit(1) initial level 3 packed unaligned dcl 5-7 set ref 5-7* 761* switches 1 012062 automatic structure level 2 dcl 5-7 t 000110 automatic fixed bin(17,0) dcl 790 in procedure "process_rqo" set ref 739* 740 t 012002 automatic fixed bin(17,0) dcl 934 in procedure "gfms_file_content_records_" set ref 51* 55* 97 109* 149 150* tll 0(06) 000072 external static bit(1) level 2 packed unaligned dcl 3-31 ref 171 total_llinks 1 based fixed bin(24,0) level 2 dcl 4-6 set ref 40* 495* 495 translate builtin function dcl 935 ref 184 394 498 680 unload 0(07) 000072 external static bit(1) level 2 packed unaligned dcl 3-31 ref 41 68 unloading_file 012003 automatic bit(1) unaligned dcl 936 set ref 67* 93* 120 126 unspec builtin function dcl 937 set ref 92* 92 402 402 422 422 491* 491 811* 811 852* 852 upper 000000 constant char(26) initial unaligned dcl 938 ref 394 498 680 user_info_$process_type 000114 constant entry external dcl 791 ref 739 user_name 3 based bit(72) level 4 dcl 957 ref 513 680 version 012062 automatic fixed bin(17,0) level 2 dcl 5-7 set ref 758* w based bit(36) array dcl 624 in procedure "dump_rec" set ref 593 593 605* 605* w based bit(36) array dcl 939 in procedure "gfms_file_content_records_" set ref 217* w parameter bit(36) dcl 182 in procedure "bcd" ref 174 183 w2 based structure array level 1 dcl 626 wd parameter varying char(168) dcl 289 in procedure "create_file" set ref 277 292 303* 308 330 349* wd parameter varying char(168) dcl 231 in procedure "create_directory" ref 225 233 241 242 wd 012004 automatic varying char(168) dcl 940 in procedure "gfms_file_content_records_" set ref 35* 41 72* 81 137 686* 817 838 wdir 000112 automatic char(168) unaligned dcl 274 set ref 241* 242* 244* 257* wl based bit(18) array level 2 packed unaligned dcl 626 set ref 609* word0 based structure level 2 dcl 957 word1 1 based structure level 2 dcl 957 word2 2 based structure level 3 dcl 957 word5 5 based structure level 3 dcl 957 word6 6 based structure level 3 dcl 957 word8 10 based structure level 3 dcl 957 word9 11 based structure level 3 dcl 957 words12_13 14 based structure level 3 dcl 957 words3_4 3 based structure level 3 dcl 957 words66_nw 102 based bit(36) array level 2 dcl 957 set ref 92 718 811 852 wr 0(18) based bit(18) array level 2 packed unaligned dcl 626 set ref 609* yes_or_no_sw 1 012062 automatic bit(1) initial level 3 packed unaligned dcl 5-7 set ref 5-7* 759* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. query_info_version_3 internal static fixed bin(17,0) initial dcl 5-33 query_info_version_5 internal static fixed bin(17,0) initial dcl 5-35 query_info_version_6 internal static fixed bin(17,0) initial dcl 5-36 NAMES DECLARED BY EXPLICIT CONTEXT. GROUP_1 001400 constant label dcl 48 GROUP_2 001460 constant label dcl 68 LOOP_1 001366 constant label dcl 47 LOOP_2 001553 constant label dcl 97 bcd 002213 constant entry internal dcl 174 ref 605 605 block_info 002313 constant entry internal dcl 199 ref 53 118 cont 006747 constant label dcl 679 ref 652 create_directory 002505 constant entry internal dcl 225 ref 303 create_file 003121 constant entry internal dcl 277 ref 72 define_file 003660 constant entry internal dcl 366 ref 55 display_header 005051 constant entry internal dcl 507 ref 54 119 do_file 005724 constant entry internal dcl 547 ref 68 dump_rec 006160 constant entry internal dcl 580 ref 728 fail 006743 constant label dcl 675 in procedure "get_rec" fail 004104 constant label dcl 410 in procedure "define_file" ref 430 finish_define_file 004754 constant label dcl 496 ref 412 found_desc 004113 constant label dcl 414 ref 399 found_file 004227 constant label dcl 432 set ref 419 get_rec 006574 constant entry internal dcl 632 ref 47 99 gfms_file_content_records_ 001130 constant entry external dcl 6 more 006576 constant label dcl 644 ref 681 715 next_level_up_tree 004402 constant label dcl 450 ref 460 next_line 006567 constant label dcl 612 ref 600 process_rqo 007361 constant entry internal dcl 734 ref 41 233 record_code_type 007730 constant entry internal dcl 794 ref 518 try2 003124 constant label dcl 291 set ref 305 unload_record 010054 constant entry internal dcl 804 ref 120 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11616 11734 11134 11626 Length 12372 11134 116 421 462 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gfms_file_content_records_ 5840 external procedure is an external procedure. on unit on line 41 82 on unit bcd internal procedure shares stack frame of external procedure gfms_file_content_records_. block_info internal procedure shares stack frame of external procedure gfms_file_content_records_. create_directory 194 internal procedure enables or reverts conditions. on unit on line 233 82 on unit create_file internal procedure shares stack frame of external procedure gfms_file_content_records_. define_file internal procedure shares stack frame of external procedure gfms_file_content_records_. display_header internal procedure shares stack frame of external procedure gfms_file_content_records_. do_file internal procedure shares stack frame of external procedure gfms_file_content_records_. dump_rec internal procedure shares stack frame of external procedure gfms_file_content_records_. get_rec internal procedure shares stack frame of external procedure gfms_file_content_records_. process_rqo 140 internal procedure is called during a stack extension, and enables or reverts conditions. on unit on line 775 64 on unit record_code_type 69 internal procedure uses returns(char(*)) or returns(bit(*)). unload_record internal procedure shares stack frame of external procedure gfms_file_content_records_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME create_directory 000100 ent create_directory 000110 k create_directory 000111 n create_directory 000112 wdir create_directory gfms_file_content_records_ 000100 a gfms_file_content_records_ 000101 bc gfms_file_content_records_ 000102 bf gfms_file_content_records_ 000110 c gfms_file_content_records_ 002060 cat_ptr gfms_file_content_records_ 002062 cfd gfms_file_content_records_ 002145 cl gfms_file_content_records_ 002146 cn gfms_file_content_records_ 002147 code gfms_file_content_records_ 002150 cp gfms_file_content_records_ 002152 fcbp gfms_file_content_records_ 002154 fcr_space gfms_file_content_records_ 011656 file_entry gfms_file_content_records_ 011666 first_warning gfms_file_content_records_ 011670 fne_ptr gfms_file_content_records_ 011672 gcos_file_name gfms_file_content_records_ 011704 have_file gfms_file_content_records_ 011705 i gfms_file_content_records_ 011706 j gfms_file_content_records_ 011707 l gfms_file_content_records_ 011710 lc_uname gfms_file_content_records_ 011713 nbr gfms_file_content_records_ 011714 nll gfms_file_content_records_ 011715 nw gfms_file_content_records_ 011716 nwr gfms_file_content_records_ 011717 pl gfms_file_content_records_ 011726 rqo_in_progress gfms_file_content_records_ 011727 sub_dir gfms_file_content_records_ 012002 t gfms_file_content_records_ 012003 unloading_file gfms_file_content_records_ 012004 wd gfms_file_content_records_ 012060 fnep gfms_file_content_records_ 012062 query_info gfms_file_content_records_ 012106 i bcd 012107 k bcd 012110 r bcd 012114 s bcd 012134 number_of_attempts create_file 012144 cs define_file 012145 d define_file 012146 f define_file 012164 k do_file 012174 first dump_rec 012175 i dump_rec 012176 j dump_rec 012177 n dump_rec process_rqo 000100 ans process_rqo 000110 t process_rqo THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc return mpfx2 mod_fx1 signal enable shorten_stack ext_entry int_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_ cu_$cl gfms_ascii_ gfms_date_ gfms_end_of_input_ gfms_gtss_attributes_ gfms_hash_ gfms_print_names_ gfms_tape_status_ hcs_$append_branchx ioa_ ioa_$ioa_switch_nnl iox_$read_record msf_manager_$adjust msf_manager_$close msf_manager_$get_ptr msf_manager_$open user_info_$process_type THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info error_table_$long_record error_table_$namedup error_table_$no_dir error_table_$noentry error_table_$rqover error_table_$segknown error_table_$too_many_names gfms_ext$mapping_rule gfms_ext$options gfms_ext$print_routines gfms_ext$tape_file gfms_ext$temp_segs gfms_ext$umc_name gfms_ext$working_dir iox_$error_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 001127 866 001135 888 001137 5 7 001140 31 001167 32 001202 33 001204 34 001205 35 001207 36 001216 37 001217 38 001220 39 001224 40 001225 41 001226 47 001366 48 001373 50 001400 51 001401 52 001404 53 001410 54 001411 55 001413 67 001443 68 001444 72 001460 80 001462 81 001465 88 001535 89 001537 90 001541 92 001544 93 001551 97 001553 98 001557 99 001560 100 001565 106 001621 108 001624 109 001627 118 001672 119 001673 120 001675 122 001700 123 001704 126 001705 127 001707 136 001737 137 001741 145 002063 146 002064 149 002073 150 002076 160 002141 162 002142 169 002176 171 002177 172 002212 174 002213 183 002215 184 002244 185 002255 186 002260 187 002265 188 002272 189 002274 190 002303 191 002305 199 002313 204 002314 212 002350 213 002355 214 002377 215 002403 216 002426 217 002441 218 002462 219 002464 220 002500 222 002503 225 002504 232 002512 233 002514 238 002651 239 002657 240 002675 241 002702 242 002752 243 002760 244 002765 255 003046 257 003054 264 003111 266 003114 267 003116 268 003117 269 003120 277 003121 290 003123 291 003124 292 003125 298 003205 300 003213 301 003215 302 003216 303 003221 305 003246 308 003247 315 003370 316 003376 319 003377 327 003424 328 003426 330 003433 337 003554 338 003562 340 003563 349 003606 360 003652 361 003657 366 003660 390 003662 391 003666 393 003672 394 003743 397 003757 398 003777 399 004002 400 004026 401 004031 402 004032 410 004104 411 004105 412 004112 414 004113 417 004114 418 004123 419 004126 420 004150 421 004153 422 004154 430 004226 432 004227 434 004230 450 004402 451 004404 452 004414 453 004423 454 004426 455 004437 456 004474 457 004475 458 004533 459 004572 460 004573 462 004574 463 004600 471 004601 472 004612 473 004615 474 004620 475 004623 476 004636 483 004672 484 004673 486 004674 487 004675 488 004677 489 004705 490 004714 491 004725 492 004737 495 004746 496 004754 497 004755 498 005013 500 005047 507 005051 511 005053 512 005067 513 005132 514 005177 515 005223 516 005247 517 005272 518 005306 519 005342 520 005364 521 005400 522 005403 523 005417 525 005442 526 005445 527 005461 529 005507 530 005512 531 005526 533 005551 535 005605 536 005610 537 005624 539 005647 540 005652 541 005666 543 005707 544 005723 547 005724 555 005726 556 005740 557 006000 558 006004 559 006022 560 006032 562 006037 563 006043 564 006044 565 006106 566 006112 567 006130 568 006140 570 006145 571 006151 572 006152 580 006160 586 006162 587 006165 588 006204 589 006211 590 006234 591 006236 592 006255 593 006263 595 006306 596 006310 597 006311 598 006332 600 006351 602 006352 603 006354 604 006377 605 006411 606 006447 607 006451 608 006470 609 006503 610 006546 611 006550 612 006567 613 006570 614 006573 632 006574 644 006576 645 006577 652 006623 660 006657 662 006661 675 006743 676 006744 679 006747 680 006750 681 007005 686 007020 694 007124 701 007164 702 007167 707 007214 714 007274 715 007276 717 007277 718 007302 719 007304 728 007344 729 007350 731 007354 734 007360 739 007374 740 007402 741 007405 746 007450 748 007454 749 007457 755 007506 757 007511 758 007514 759 007516 760 007520 761 007522 762 007524 763 007526 764 007531 765 007532 766 007535 767 007537 774 007616 775 007627 776 007647 777 007663 778 007670 779 007673 785 007723 792 007726 794 007727 797 007735 798 007752 799 007764 800 007776 801 010010 804 010054 807 010055 808 010061 809 010064 810 010070 811 010072 815 010104 816 010105 817 010110 825 010234 828 010240 836 010265 838 010272 846 010413 848 010417 848 010423 849 010424 850 010425 851 010426 852 010430 854 010451 855 010453 ----------------------------------------------------------- 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