COMPILATION LISTING OF SEGMENT recover_volume_log Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0955.0 mst Sat Options: optimize list 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* *********************************************************** */ 13 14 /* format: style1,ind2,^inddcls,ifthenstmt,dclind2,declareind2,ifthendo,ifthen*/ 15 16 recover_volume_log: proc; 17 18 /* This utility command is used in the rare case when a volume log is not available, either because it 19* has been deleted, or because we are reloading the RPV. It recovers the latest volume log 20* by name from the dump volume that the requestor provides. It is the requestor's responsibility to provide the 21* latest dump volume. */ 22 23 /* Modified 6/79 by D. Vinograd to correct check for beginning of logical record */ 24 /* Modified 11/79 by D. Vinograd to add -wd as control arg and add code to 25* delete volume log if recovered when there is one already there */ 26 /* Modified: 9/83 by GA Texada to allow multiple pvnames to be specified, 27* and to reformat and move includes. 28* */ 29 /* Modified: 3/14/84 by GA Texada to allow for 'stranger' volume logs. */ 30 31 32 /****^ HISTORY COMMENTS: 33* 1) change(88-10-10,Farley), approve(88-10-10,MCR8005), 34* audit(88-10-15,Beattie), install(88-10-17,MR12.2-1173): 35* Added new read routine and associated surrounding code to support the 36* version 2 volume dump tapes. These tapes have a pair of unique strings 37* that delimit the object data of vtoce_type records. 38* 2) change(89-08-31,GWMay), approve(89-10-03,MCR8135), 39* audit(89-10-04,Beattie), install(89-10-10,MR12.3-1089): 40* Updated to process version 3 of backup_volume_log.incl.pl1 structures. 41* END HISTORY COMMENTS */ 42 43 44 dcl (att_desc, input_volume_desc) char (256); 45 dcl (ac, argl, enl, itype, nargs, words_skipped, i, pvindex) fixed bin; 46 dcl (char_read, read_char) fixed bin (21); 47 dcl recovery_dir char (168); 48 dcl temp_dir char (168); /* a place to put my pdir */ 49 dcl (argp, iocbp) ptr; 50 dcl (debug, wd_specified, new_tape, first_input_volume, ok_to_abc, resynching) bit (1); 51 dcl delimited bit (1) aligned; /* ON = reading object data delimited by unique matching strings */ 52 dcl (irpvpvid, irpvlvid, time) bit (36); 53 dcl input_buf (divide (char_read, CHARS_PER_WORD, 17, 0)) bit (36) based (recordp); 54 dcl word (size (backup_volume_header)) bit (36) based (recordp); 55 dcl string bit (BITS_PER_WORD * size (backup_volume_header)) based (recordp); 56 dcl pattern_match_label label; 57 dcl (ilvname, volname) char (32); 58 dcl var_volname char (32) varying; 59 dcl (code, ignore) fixed bin (35); 60 dcl arg char (argl) based (argp); 61 dcl objectp ptr; 62 dcl input_buffer_ptr ptr; 63 dcl input_buffer_start fixed bin; 64 dcl input_buffer_len fixed bin (21); 65 dcl old_256K_switch bit (2) aligned; 66 dcl tp (3) ptr; 67 68 dcl 1 rvl aligned based (rvlp), /* structure to control multiple pv's */ 69 2 npvs fixed bin, /* number of valid per_pv's */ 70 2 per_pv (maxpvs), /* max that can be done (same as nargs) */ 71 3 pvname char (32), /* pvname name to be recovered */ 72 3 volname char (32), /* tape volume the log found on */ 73 3 ename char (32), /* name to terminate */ 74 3 temp_logp ptr, /* for pdir recovery */ 75 3 new_logp ptr, /* ptr to recoverd log */ 76 3 time bit (36), /* fs time of recover log */ 77 3 flags, 78 4 abandoned bit (1) unal, /* if I had to abandon this one */ 79 4 volog_found bit (1) unal, /* if I found his */ 80 4 mbz bit (34) unal, /* RFU */ 81 rvlp ptr, 82 maxpvs fixed bin; /* will be set to nargs for allocation of rvl */ 83 84 dcl (cleanup, linkage_error) condition; 85 86 dcl error_table_$data_loss fixed bin (35) ext; 87 dcl error_table_$noentry fixed bin (35) ext; 88 dcl error_table_$entlong fixed bin (35) ext; 89 dcl error_table_$segknown fixed bin (35) ext; 90 dcl error_table_$namedup fixed bin (35) ext; 91 dcl error_table_$device_end fixed bin (35) ext; 92 dcl error_table_$end_of_info fixed bin (35) ext; 93 dcl error_table_$badopt ext fixed bin (35); 94 dcl sys_info$seg_size_256K fixed bin (19) ext static; 95 dcl sys_info$max_seg_size fixed bin (18) ext static; 96 97 dcl DEFAULT_RECOVERY_DIR char (168) int static init (">daemon_dir_dir>volume_backup") options (constant); 98 dcl myname char (32) static init ("recover_volume_log") options (constant); 99 dcl DELIMITED bit (1) aligned internal static options (constant) 100 init ("1"b); 101 dcl FORWARD_CHAR_POSITIONING fixed bin int static init (3) options (constant); 102 103 dcl hcs_$delentry_file entry (char (*), char (*), fixed bin (35)); 104 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 105 dcl hphcs_$delentry_file entry (char (*), char (*), fixed bin (35)); 106 dcl get_group_id_ entry returns (char (32)); 107 dcl get_pdir_ entry () returns (char (168)); 108 dcl hcs_$level_get entry returns (fixed bin); 109 dcl date_time_$fstime entry (bit (36), char (*)); 110 dcl adjust_bit_count_ entry (char (*), char (*), bit (1), fixed bin, fixed bin (35)); 111 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 112 dcl hcs_$fs_search_get_wdir entry (ptr, fixed bin (35)); 113 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 114 dcl com_err_ entry options (variable); 115 dcl get_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 116 dcl ioa_$rsnnl entry options (variable); 117 dcl ioa_ entry options (variable); 118 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 119 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 120 dcl hcs_$fs_move_seg entry (ptr, ptr, fixed bin, fixed bin (35)); 121 dcl hcs_$set_256K_switch entry (bit (2) aligned, bit (2) aligned, fixed bin (35)); 122 dcl hcs_$set_max_length_seg entry (ptr, fixed bin (19), fixed bin (35)); 123 dcl hcs_$truncate_seg entry (ptr, fixed bin (19), fixed bin (35)); 124 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 125 dcl command_query_ entry () options (variable); 126 dcl mdc_$pvname_info entry (char (*), bit (36), char (*), bit (36), fixed bin, fixed bin (35)); 127 dcl release_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 128 129 dcl (addcharno, addr, divide, index, length, min, null, ptr, size, substr) builtin; 130 131 /* init local control variables */ 132 133 temp_dir = get_pdir_ (); /* all recovery is done here first, moved after validation*/ 134 recovery_dir = DEFAULT_RECOVERY_DIR; 135 debug, resynching, time, ok_to_abc = "0"b; 136 first_input_volume = "1"b; 137 input_volume_desc = ""; 138 old_256K_switch = ""b; 139 tp (*) = null; 140 bvlp, iocbp, rvlp = null (); 141 code, maxpvs = 0; 142 query_info.version = query_info_version_6; 143 on cleanup call finish_; /* set up cleanup handler */ 144 call cu_$arg_count (nargs, code); 145 if nargs <= 0 then do; 146 argerr: call com_err_ (0, myname, 147 " USAGE: ^a pvnames [-input_volume_desc ""alternate attach decscription""] [-working_dir | -wd]", 148 myname); 149 return; 150 end; 151 do ac = 1 to nargs; 152 call cu_$arg_ptr (ac, argp, argl, code); 153 if code ^= 0 then do; 154 call com_err_ (code, myname); 155 goto finish; 156 end; 157 158 if arg = "-input_volume_desc" then do; 159 ac = ac + 1; 160 call cu_$arg_ptr (ac, argp, argl, code); 161 if code ^= 0 then do; 162 call com_err_ (code, myname, "Unable to access input volume desc"); 163 goto finish; 164 end; 165 input_volume_desc = arg; 166 end; 167 else if arg = "-working_dir" | arg = "-wd" then do; 168 wd_specified = "1"b; 169 recovery_dir = wdir_ (); 170 end; 171 else if substr (arg, 1, 1) = "-" then do; 172 call com_err_ (error_table_$badopt, myname, "^a", arg); 173 goto finish; 174 end; 175 else do; /* should be a pvname, we will validate it later */ 176 if rvlp = null () then do; 177 maxpvs = (nargs - ac) + 1; /* this is the max we could need */ 178 allocate rvl set (rvlp); /* allocate the space */ 179 rvl.npvs = 0; /* get ready */ 180 end; 181 182 rvl.npvs = rvl.npvs + 1; /* bump to the next slot */ 183 rvl.pvname (rvl.npvs) = arg; /* and put in the unvalidated name */ 184 185 rvl.volname (rvl.npvs), rvl.ename (rvl.npvs) = "";/* now, initialize the entry */ 186 rvl.temp_logp (rvl.npvs), rvl.new_logp (rvl.npvs) = null (); /* so the cleanup handler works properly*/ 187 rvl.time (rvl.npvs), rvl.flags (rvl.npvs) = "0"b; 188 end; 189 end; 190 191 if (rvlp = null ()) | (rvl.npvs = 0) then do; /* hmmmm, no pvnames given, complain */ 192 call com_err_ (0, myname, "No pvnames were specified."); 193 goto finish; 194 end; 195 196 call setup_data_segments; 197 if code ^= 0 then do; 198 call com_err_ (code, myname, "Unable to get temp segs"); 199 goto finish; 200 end; 201 code = 0; 202 203 call attach; 204 205 /* The search loop reads successive records from the dump volume until it encounters a volume log with the name 206* that matches pvname. It then creates a segment, if one does not already exist and copies the data into it. The 207* dump volume is read until the end of tape is reached. */ 208 209 search_loop: 210 pvindex = 0; /* pvindex is set by read_volume_record */ 211 do while (pvindex = 0 & code = 0 & not_all_abandoned ()); 212 /* not_all_abandoned returns true if */ 213 call read_volume_record; /* there is at least one pvname that we are still looking for*/ 214 end; 215 if code ^= 0 then do; 216 call com_err_ (code, myname, "Error while reading input volume"); 217 goto finish; 218 end; 219 /* create entry name */ 220 if pvindex ^= 0 then do; 221 call ioa_$rsnnl ("^a.^a", rvl.ename (pvindex), enl, rvl.pvname (pvindex), "volog"); 222 if enl > length (rvl.ename (1)) then do; 223 code = error_table_$entlong; 224 call com_err_ (code, myname, "Error creating volog name for ^a. Recovery for it will be abandoned.", 225 rvl.pvname (pvindex)); 226 rvl.abandoned (pvindex) = "1"b; /* don't do this anymore! */ 227 goto search_loop; 228 end; 229 230 call delete_make_and_move (temp_dir, bvlp, rvl.temp_logp (pvindex)); /* create and get ptr to segment */ 231 if rvl.abandoned (pvindex) then ; /* sorry charlie... */ 232 else rvl.volog_found (pvindex) = "1"b; /* only mark it if all operations worked... */ 233 goto search_loop; 234 end; 235 finish_all_temp: 236 237 if validate_all_vologs () then do; /* ok, we've got all vologs in the process dir */ 238 /* they all must match as to who the RPV is */ 239 if ^wd_specified then do; /* but, if we are NOT wd mode, then they also */ 240 /* must belong to the mounted RPV */ 241 call mdc_$pvname_info ("rpv", irpvpvid, ilvname, irpvlvid, itype, (0)); 242 if irpvpvid ^= rvl.new_logp (1) -> backup_volume_log.info.root_pvid then do; 243 call com_err_ (0, myname, "Invalid attempt to recover a 'stranger' volume log. Use ""-wd""."); 244 goto finish; 245 end; 246 end; 247 do pvindex = 1 to rvl.npvs; 248 if ((rvl.volog_found (pvindex)) & ^(rvl.abandoned (pvindex))) then 249 call delete_make_and_move (recovery_dir, rvl.temp_logp (pvindex), rvl.new_logp (pvindex)); 250 end; 251 end; 252 else call com_err_ (0, myname, "All volume logs must belong to the same RPV."); 253 /* cleanup attachments, temp segs, and address space */ 254 finish: 255 call finish_; 256 257 return; 258 259 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 260 261 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 262 263 all_vologs_found: 264 proc () returns (bit (1)); 265 266 dcl i fixed bin; 267 do i = 1 to rvl.npvs; 268 if (^rvl.volog_found (i)) then return ("0"b); /* if one hasn't been found, return... */ 269 end; 270 return ("1"b); 271 end all_vologs_found; 272 273 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 274 275 not_all_abandoned: proc () returns (bit (1)); 276 277 dcl i fixed bin; 278 279 do i = 1 to rvl.npvs; 280 if rvl.abandoned (i) then ; 281 else return ("1"b); /* at least one is still ok */ 282 end; 283 return ("0"b); /* nope, all abandoned */ 284 end not_all_abandoned; 285 286 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 287 288 289 detach: proc; 290 291 /* This proc closes and detaches the dump volume. */ 292 293 call iox_$close (iocbp, ignore); 294 call iox_$detach_iocb (iocbp, ignore); 295 iocbp = null; /* be sure */ 296 297 end detach; 298 299 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 300 301 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 302 303 304 setup_data_segments: proc; 305 306 /* This proc sets up the data segments used during the recovery. */ 307 308 call get_temp_segments_ (myname, tp, code); 309 if code ^= 0 then return; 310 311 recordp = tp (1); 312 objectp = tp (2); 313 input_buffer_ptr = tp (3); 314 call hcs_$set_256K_switch ("11"b, (""b), code); 315 if code ^= 0 then return; 316 call hcs_$set_max_length_seg (objectp, sys_info$seg_size_256K, code); 317 if code ^= 0 then return; 318 call hcs_$set_max_length_seg (input_buffer_ptr, sys_info$seg_size_256K, code); 319 if code ^= 0 then return; 320 input_buffer_start = 1; 321 input_buffer_len = 0; 322 return; 323 324 end setup_data_segments; 325 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 326 327 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 328 329 330 attach: proc; 331 332 /* This proc queries the caller for the dump volume name, attaches to it and opens it. */ 333 334 335 reask: call command_query_ (addr (query_info), var_volname, myname, 336 "Type ^[next ^;^s^]most recent dump volume name (Type ""."" to quit): ", (^first_input_volume)); 337 if var_volname = "" then goto reask; 338 if var_volname = "." then goto finish; 339 volname = var_volname; 340 341 first_input_volume = "0"b; 342 343 if input_volume_desc ^= "" then 344 call ioa_$rsnnl (input_volume_desc, att_desc, (0), volname); 345 else call ioa_$rsnnl ("tape_mult_ ^a ^[-system^]", att_desc, (0), volname, ^debug); 346 347 call iox_$attach_ioname ("input_volume", iocbp, att_desc, code); 348 if code ^= 0 then do; 349 call com_err_ (code, myname, "Unable to attach input volume with attach desc ^a", att_desc); 350 goto finish; 351 end; 352 353 call iox_$open (iocbp, Stream_input, "0"b, code); 354 if code ^= 0 then do; 355 call com_err_ (code, myname, "Error opening input volume"); 356 goto finish; 357 end; 358 359 end attach; 360 361 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 362 363 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 364 365 delete_make_and_move: 366 proc (temp_dir_in, ptr_in1, ptr_in2); 367 368 dcl temp_dir_in char (*), 369 (ptr_in1, ptr_in2) ptr; 370 371 on linkage_error goto delerr; 372 call hcs_$delentry_file (temp_dir_in, (rvl.ename (pvindex)), code); 373 if code ^= 0 & code ^= error_table_$noentry then do; 374 call hphcs_$delentry_file (temp_dir_in, (rvl.ename (pvindex)), code); 375 if code ^= 0 then do; 376 delerr: call com_err_ (code, myname, "Unable to delete ^a>^a. Recovery for it will be abandoned.", 377 temp_dir_in, rvl.ename (pvindex)); 378 rvl.abandoned (pvindex) = "1"b; /* well, forget this one... */ 379 return; 380 end; 381 end; 382 call hcs_$make_seg (temp_dir_in, (rvl.ename (pvindex)), "", 01010b, ptr_in2, code); 383 if (code = 0 384 | code = error_table_$namedup 385 | code = error_table_$segknown) then ; 386 else do; 387 call com_err_ (code, myname, "Unable to create volog seg ^a>^a. Recovery for it will be abandoned.", 388 temp_dir_in, rvl.ename (pvindex)); 389 rvl.abandoned (pvindex) = "1"b; /* forget this one */ 390 return; 391 end; 392 /* copy data */ 393 call hcs_$fs_move_seg (ptr_in1, ptr_in2, 1, code); 394 if code ^= 0 then do; 395 call com_err_ (code, myname, "Unable to move volog from temp seg to target. Recovery for it will be abandoned."); 396 rvl.abandoned (pvindex) = "1"b; 397 return; 398 end; 399 end delete_make_and_move; 400 401 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 402 403 404 validate_all_vologs: 405 proc () returns (bit (1)); 406 407 dcl i fixed bin, 408 mismatch bit (1) init ("0"b); 409 410 do i = 1 to rvl.npvs; 411 if rvl.temp_logp (i) -> backup_volume_log.info.root_pvid = 412 rvl.temp_logp (1) -> backup_volume_log.info.root_pvid then ; 413 else mismatch = "1"b; 414 end; 415 return (^mismatch); 416 end validate_all_vologs; 417 418 419 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 420 421 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 422 423 424 resynch_volume: proc; 425 426 /* This proc is used for error recovery. It reads the dump volume word by word looking for a match on the 427* 3 words which are part of the header of the logical dump record. When it gets a match it returns to specified label. 428* While resynchronization is in progress , io error handling is suppressed except if we reach the end of a dump 429* volume. This code is freely adapted from the volume reloader. */ 430 431 resynching = "1"b; 432 input_buf (*) = "0"b; 433 new_tape = "0"b; 434 read_char = CHARS_PER_WORD * size (backup_volume_header); 435 call read (recordp, read_char, char_read, ^DELIMITED, code); 436 call check_input_error; 437 438 if new_tape then goto search_loop; 439 words_skipped = 0; 440 test: if word (1) = pattern1 & word (4) = pattern2 & word (7) = pattern3 then do; 441 call com_err_ (0, myname, "Synchronization completed ^d words skipped", 442 words_skipped); 443 resynching = "0"b; 444 delimited = "0"b; 445 code = 0; 446 goto pattern_match_label; 447 end; 448 449 string = substr (string, 37, (size (backup_volume_header) - 1) * BITS_PER_WORD); 450 new_tape = "0"b; 451 read_char = CHARS_PER_WORD; 452 call read (addr (word (size (backup_volume_header))), 453 read_char, char_read, ^DELIMITED, code); 454 call check_input_error; 455 if new_tape then goto search_loop; 456 457 words_skipped = words_skipped + 1; 458 if words_skipped > 1000000 then do; /* put a limit on it */ 459 call com_err_ (0, myname, "Resynchronization failed"); 460 code = error_table_$end_of_info; 461 call check_input_error; 462 goto search_loop; 463 end; 464 goto test; 465 466 end resynch_volume; 467 468 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 469 470 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 471 472 473 skip_chars: proc; 474 475 /* This proc skips forward on a dump volume. */ 476 477 call read (objectp, read_char, char_read, delimited, code); 478 call check_input_error; 479 480 end skip_chars; 481 482 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 483 484 485 check_input_error: proc; 486 487 /* This proc is used to check all io errors after a read request. If no error we return. 488* If we are at the end of the dump volume, then it is detached. If a volume log has not been found, a new dump volume is 489* requested. Otherwise we are done. If the error is the result of a bad read we start resynchronization. 490* If it has already been started we just return. */ 491 492 new_tape = "0"b; 493 if read_char ^= char_read | code ^= 0 then do; 494 if (code = error_table_$end_of_info) | (code = error_table_$device_end) then do; 495 call detach; /* if all have been found OR all */ 496 if (all_vologs_found ()) | (^not_all_abandoned ()) then goto finish_all_temp; 497 /* have been abandoned, then forget it... */ 498 else do; 499 call attach; /* try the next tape */ 500 new_tape = "1"b; 501 end; 502 return; 503 end; 504 else if resynching then do; 505 call com_err_ (code, myname, "I/O error reading input volume"); 506 call detach; 507 goto finish; 508 end; 509 else if ^resynching then do; 510 if read_char ^= char_read then do; 511 if code = error_table_$data_loss then 512 call com_err_ (code, myname, "Incomplete object detected"); 513 else do; 514 if code = 0 then call com_err_ (code, myname, "Read did not complete"); 515 else call com_err_ (code, myname, "I/O error reading input volume"); 516 end; 517 end; 518 else do; 519 if code = -1 then call com_err_ (0, myname, "Invalid dump record header"); 520 else call com_err_ (code, myname, "I/O error reading input volume"); 521 end; 522 call ioa_ ("^a: Resynching started", myname); 523 call resynch_volume; 524 end; 525 end; 526 end check_input_error; 527 528 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 529 530 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 531 532 533 read_volume_record: proc; 534 535 /* This proc reads a logical dump record, and checks to see it it is a volume log with the name pvname. If 536* so it returns with pvindex pointing to the correct rvl entry. If the logical dump record is not what we 537* are looking for, the next logical dump record is examined. */ 538 539 pattern_match_label = pattern_match; 540 new_tape = "0"b; 541 delimited = "0"b; 542 read_char = CHARS_PER_WORD * size (backup_volume_header); 543 call read (recordp, read_char, char_read, delimited, code); 544 call check_input_error; 545 if new_tape then return; 546 if backup_volume_record.pattern1 ^= pattern1 547 | backup_volume_record.pattern2 ^= pattern2 548 | backup_volume_record.pattern3 ^= pattern3 then do; 549 code = -1; 550 call check_input_error; 551 end; 552 pattern_match: 553 read_char = backup_volume_record.rec1_len - size (backup_volume_header) * CHARS_PER_WORD; 554 call read (ptr (recordp, size (backup_volume_header)), 555 read_char, char_read, delimited, code); 556 call check_input_error; 557 if new_tape then return; 558 if backup_volume_record.rec1_type ^= volume_log_type then do; 559 read_char = backup_volume_record.rec2_len; 560 if backup_volume_record.rec1_type = vtoce_type & 561 backup_volume_record.version > backup_volume_record_version_1 562 then delimited = "1"b; /* object data is delimited */ 563 call skip_chars; 564 return; 565 end; 566 567 bvlp = recordp; 568 if (backup_volume_log.version = backup_volume_log_version_1) | 569 (backup_volume_log.version = backup_volume_log_version_2) | 570 (backup_volume_log.version = backup_volume_log_version_3) then ; 571 else do; 572 call com_err_ (0, myname, "Invalid volume log version"); 573 return; 574 end; 575 do pvindex = 1 to rvl.npvs; /* include the check for previous abandonment here...*/ 576 if (backup_volume_log.pvname = rvl.pvname (pvindex)) & ^(rvl.abandoned (pvindex)) then do; 577 if (rvl.volog_found (pvindex)) & (rvl.time (pvindex) > backup_volume_log.time_dumped) then do; 578 pvindex = 0; /* it is older than the one we already have */ 579 return; /* we don't want this one */ 580 end; 581 rvl.time (pvindex) = backup_volume_log.time_dumped; 582 rvl.volname (pvindex) = volname; 583 return; /* pvindex is set */ 584 end; 585 end; 586 pvindex = 0; /* not found */ 587 end read_volume_record; 588 589 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 590 591 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 592 593 read: proc (return_buffer_ptr, 594 Nrequested_chars, 595 Nreturned_chars, 596 Sdelimited, 597 code); 598 599 dcl return_buffer_ptr ptr, 600 Nrequested_chars fixed bin (21), 601 Nreturned_chars fixed bin (21), 602 Sdelimited bit (1) aligned, 603 code fixed bin (35); 604 605 dcl input_buffer char (256 * CHARS_PER_PAGE) 606 based (input_buffer_ptr); 607 608 dcl return_string char (Nrequested_chars) 609 based (return_buffer_ptr); 610 611 dcl Nassign_chars fixed bin (21), 612 Nread_chars fixed bin (21), 613 end_of_record fixed bin, 614 tape_check1 /* bit (72) */ char (8), 615 tape_check2 /* bit (72) */ char (8); 616 617 Nreturned_chars, Nread_chars, code = 0; 618 619 do while (Nreturned_chars < Nrequested_chars & code = 0); 620 if input_buffer_len = 0 then do; 621 input_buffer_start = 1; 622 623 if Sdelimited & Nreturned_chars = 0 then do; 624 call iox_$get_chars (iocbp, 625 addr (tape_check1), length (tape_check1), Nread_chars, code); 626 if code ^= 0 then return; 627 end; 628 629 if return_buffer_ptr = null then do; 630 call iox_$position (iocbp, FORWARD_CHAR_POSITIONING, 631 Nrequested_chars - Nreturned_chars, code); 632 Nreturned_chars = Nreturned_chars + Nrequested_chars; 633 end; 634 else do; 635 call iox_$get_chars (iocbp, 636 addcharno (return_buffer_ptr, Nreturned_chars), 637 Nrequested_chars - Nreturned_chars, Nread_chars, code); 638 Nreturned_chars = Nreturned_chars + Nread_chars; 639 end; 640 if code ^= 0 then return; 641 642 if Sdelimited then do; 643 call iox_$get_chars (iocbp, 644 addr (tape_check2), length (tape_check2), Nread_chars, code); 645 if code ^= 0 then 646 return; 647 648 if tape_check1 ^= tape_check2 then do; 649 /* found a short segment, move */ 650 /* return string into the temp input */ 651 /* buffer and start parsing */ 652 input_buffer_len = Nreturned_chars; 653 substr (input_buffer, 1, input_buffer_len) = 654 return_string; 655 end; 656 end; 657 end; 658 659 else 660 if Sdelimited then do; 661 tape_check1 = substr (input_buffer, 662 input_buffer_start, length (tape_check1)); 663 tape_check2 = ""; 664 input_buffer_start = 665 input_buffer_start + length (tape_check1); 666 input_buffer_len = 667 input_buffer_len - length (tape_check1); 668 end; 669 670 if input_buffer_len > 0 then do; 671 Nassign_chars = 672 min (input_buffer_len, Nrequested_chars); 673 674 if Sdelimited then do; 675 if tape_check1 ^= tape_check2 then do; 676 end_of_record = index (substr (input_buffer, input_buffer_start, 677 input_buffer_len), tape_check1); 678 if end_of_record > 0 then do; 679 Nassign_chars = end_of_record - 1; 680 if Nrequested_chars ^= Nassign_chars then 681 code = error_table_$data_loss; 682 end; 683 end; 684 end; 685 686 if return_buffer_ptr ^= null then 687 return_string = substr (input_buffer, 688 input_buffer_start, Nassign_chars); 689 Nreturned_chars = Nassign_chars; 690 691 input_buffer_start = 692 input_buffer_start + Nassign_chars; 693 input_buffer_len = 694 input_buffer_len - Nassign_chars; 695 696 if Sdelimited & input_buffer_len > 0 then do; 697 input_buffer_start = 698 input_buffer_start + length (tape_check2); 699 substr (input_buffer, 1, input_buffer_len) = 700 substr (input_buffer, input_buffer_start, 701 input_buffer_len - length (tape_check2)) 702 || tape_check2; 703 input_buffer_start = 1; 704 end; 705 end; 706 end; 707 708 return; 709 end read; 710 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 711 712 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 713 714 715 wdir_: proc returns (char (168) aligned); 716 717 /* This proc returns the pathname of the working directory. */ 718 719 720 dcl wdir char (168) aligned; 721 call hcs_$fs_search_get_wdir (addr (wdir), ignore); 722 return (wdir); 723 end wdir_; 724 725 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 726 727 728 time_string: proc (i) returns (char (24)); 729 dcl string char (24), 730 i fixed bin; 731 call date_time_$fstime ((rvl.time (i)), string); 732 return (string); 733 end time_string; 734 735 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 736 737 738 finish_: proc; 739 if iocbp ^= null then call detach; 740 if tp (1) ^= null then do; 741 call hcs_$truncate_seg (objectp, 0, ignore); /* clean up our 256K segs */ 742 call hcs_$truncate_seg (input_buffer_ptr, 0, ignore); 743 call hcs_$set_max_length_seg (objectp, (sys_info$max_seg_size), ignore); 744 call hcs_$set_max_length_seg (input_buffer_ptr, (sys_info$max_seg_size), ignore); 745 call release_temp_segments_ (myname, tp, ignore); 746 call hcs_$set_256K_switch (old_256K_switch, (""b), ignore); 747 end; 748 if get_group_id_ () ^= "Initializer.SysDaemon.z" & hcs_$level_get () ^= 1 then ok_to_abc = "1"b; 749 if rvlp ^= null () then do; 750 do i = 1 to rvl.npvs; 751 if rvl.temp_logp (i) ^= null () then call hcs_$delentry_seg (rvl.temp_logp (i), (0)); 752 if rvl.new_logp (i) ^= null then do; 753 if ok_to_abc then call adjust_bit_count_ (wdir_ (), (rvl.ename (i)), "0"b, (0), ignore); 754 call hcs_$terminate_noname (rvl.new_logp (i), ignore); 755 end; 756 call ioa_ ("Volume log ^a ^[recovered from tape volume ^a, dump time ^a^;not recovered^s^s ^]", rvl.pvname (i), 757 (rvl.volog_found (i)), rvl.volname (i), time_string (i)); 758 end; 759 free rvl; 760 end; 761 end finish_; 762 /* BEGIN INCLUDE FILE ... backup_volume_log.incl.pl1 ... Feb 1976 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(88-03-03,GWMay), approve(89-10-03,MCR8135), 1 6* audit(89-10-04,Beattie), install(89-10-10,MR12.3-1089): 1 7* Added values for storing the number of incremental and consolidated dump 1 8* sets to retain in the volume log. Incremented version number to 3. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Modified: 3/7/84 by GA Texada to change to version 2 */ 1 13 dcl bvlp ptr; 1 14 dcl bvlep ptr; 1 15 1 16 dcl backup_volume_log_version_1 fixed bin static init (1) options (constant); 1 17 dcl backup_volume_log_version_2 fixed bin init(2) int static options(constant); 1 18 dcl backup_volume_log_version_3 fixed bin init(3) int static options(constant); 1 19 1 20 dcl 1 backup_volume_log based (bvlp) aligned, 1 21 2 header like backup_volume_header aligned, 1 22 2 info like backup_pvol_info aligned, 1 23 2 version fixed bin, /* version number */ 1 24 2 lock bit (36), /* shared data base */ 1 25 2 pvname char (32), /* physical volume name */ 1 26 2 pvid bit (36), /* physical volume id */ 1 27 2 next fixed bin, /* next available dump record */ 1 28 2 reload_groups fixed bin, /* number of reload groups in log */ 1 29 2 purge_control (3), /* control selective purging by dump type */ 1 30 3 group (36) bit (1) unaligned, /* up to 36 reload groups */ 1 31 2 disk_type fixed bin unal, /* type of disk drive */ 1 32 2 half_word_pad bit(18) unal, /* MBZ */ 1 33 2 rpv_pvid bit(36), /* pvid of this volumes RPV */ 1 34 2 Nsaved_incr_sets fixed bin, /* number of incr cycles to retain */ 1 35 2 Nsaved_cons_sets fixed bin, /* number of incr cycles to retain */ 1 36 2 pad (31) bit (36), /* for future expansion (MBZ) */ 1 37 2 array (1:1 refer (backup_volume_log.next)) like bvle aligned; 1 38 1 39 dcl 1 bvle based (bvlep) aligned, 1 40 2 cycle_uid bit (36), /* uid of this dump cycle */ 1 41 2 dump_type fixed bin, /* type of dump */ 1 42 2 volname char (32), /* name of output volume */ 1 43 2 open_time fixed bin (71), /* opening time of dump pass on this physical volume */ 1 44 2 close_time fixed bin (71), /* ending time of dump pass */ 1 45 2 volid bit (36), /* uid of output volume */ 1 46 2 io_module char (32), /* outer module name that wrote this volume */ 1 47 2 flags, /* flags */ 1 48 3 purge_scan_logged bit (1) unaligned, /* if on object looged during purge scan */ 1 49 3 pad1 bit (35) unaligned, 1 50 2 pad (7) bit (36), /* for future expansion */ 1 51 (2 dir_num fixed bin, /* number of dirs dumped on this pass */ 1 52 2 dir_rec fixed bin, /* number of records of dirs */ 1 53 2 seg_num fixed bin, /* number of segs dumped on this pass */ 1 54 2 seg_rec fixed bin) unaligned; /* number of records of segs */ 1 55 1 56 /* END INCLUDE FILE ... backup_volume_log */ 762 2 1 /* BEGIN INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 2 2 2 3 dcl bpvip ptr; 2 4 2 5 dcl 1 backup_pvol_info based (bpvip) aligned, 2 6 2 label like label aligned, 2 7 2 n_vtoce fixed bin, 2 8 2 n_free_vtoce fixed bin, 2 9 2 n_rec fixed bin, 2 10 2 baseadd fixed bin, 2 11 2 n_free_rec fixed bin; 2 12 2 13 /* END INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 763 764 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 3 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 6* Add the subvolume info. 3 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 3 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 3 9* Added inconsistent_dbm bit used to determine consistency of volume 3 10* dumper bit maps. 3 11* END HISTORY COMMENTS */ 3 12 3 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 3 14 /* Note: fsout_vol clears pad fields before writing the label */ 3 15 3 16 dcl labelp ptr; 3 17 3 18 dcl 1 label based (labelp) aligned, 3 19 3 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 3 21 3 22 2 gcos (5*64) fixed bin, 3 23 3 24 /* Now we have the Multics label */ 3 25 3 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 3 27 2 version fixed bin, /* Version 1 */ 3 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 3 29 2 pv_name char (32), /* Physical volume name. */ 3 30 2 lv_name char (32), /* Name of logical volume for pack */ 3 31 2 pvid bit (36), /* Unique ID of this pack */ 3 32 2 lvid bit (36), /* unique ID of its logical vol */ 3 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 3 34 2 time_registered fixed bin (71), /* time imported to system */ 3 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 3 36 2 vol_size fixed bin, /* total size of volume, in records */ 3 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 3 38 2 not_used bit (1) unal, /* used to be multiple_class */ 3 39 2 private bit (1) unal, /* TRUE if was registered as private */ 3 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 3 41 2 flagpad bit (33) unal, 3 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 3 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 3 44 2 password bit (72), /* not yet used */ 3 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 3 46 2 this_sv fixed bin, /* what subvolume number it is */ 3 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 3 48 2 pad1 (13) fixed bin, 3 49 2 time_mounted fixed bin (71), /* time mounted */ 3 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 3 51 3 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 3 53* forces a salvage if an MR10 pack is mounted on an earlier system. 3 54* */ 3 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 3 56 2 pad6 fixed bin, 3 57 3 58 2 time_salvaged fixed bin (71), /* time salvaged */ 3 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 3 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 3 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 3 62 2 pad1a (2) fixed bin, 3 63 2 err_hist_size fixed bin, /* size of pack error history */ 3 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 3 65 2 time_last_reloaded fixed bin (71), /* what it says */ 3 66 2 pad2 (40) fixed bin, 3 67 2 root, 3 68 3 here bit (1), /* TRUE if the root is on this pack */ 3 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 3 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 3 71 3 pad7 bit (1) aligned, 3 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 3 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 3 74 3 esd_state fixed bin, /* State of esd */ 3 75 2 volmap_record fixed bin, /* Begin record of volume map */ 3 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 3 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 3 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 3 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 3 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 3 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 3 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 3 83 2 pad3 (52) fixed bin, 3 84 2 nparts fixed bin, /* Number of special partitions on pack */ 3 85 2 parts (47), 3 86 3 part char (4), /* Name of partition */ 3 87 3 frec fixed bin, /* First record */ 3 88 3 nrec fixed bin, /* Number of records */ 3 89 3 pad5 fixed bin, 3 90 2 pad4 (5*64) fixed bin; 3 91 3 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 3 93 3 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 764 765 /* BEGIN INCLUDE FILE ... backup_volume_record.incl.pl1 ... March 1976 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-10-05,GWMay), approve(88-10-05,MCR8005), audit(88-10-12,Farley), 4 7* install(88-10-17,MR12.2-1173): 4 8* Added a version 2 constant 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 dcl recordp ptr; 4 13 4 14 dcl backup_volume_record_version_1 fixed bin static init (1) options (constant); 4 15 dcl backup_volume_record_version_2 fixed bin static init (2) options (constant); 4 16 4 17 dcl 1 backup_volume_record based (recordp) aligned, 4 18 2 header like backup_volume_header aligned, 4 19 2 version fixed bin, /* version number of structure */ 4 20 2 pvid bit (36), /* physical volume id */ 4 21 2 vtocx fixed bin, /* vtoc index of returned vtoc entry */ 4 22 2 vtoce like vtoce aligned; /* vtoc entry */ 4 23 4 24 /* END INCLUDE FILE ... backup_volume_record.incl.pl1 */ 765 5 1 /* BEGIN INCLUDE FILE ... backup_volume_header ... Feb 1976 */ 5 2 5 3 dcl hdp ptr; /* ptr to header */ 5 4 5 5 dcl 1 backup_volume_header based (hdp) aligned, 5 6 2 pattern1 bit (36), /* unique word 1 */ 5 7 2 rec1_type fixed bin, /* record 1 type */ 5 8 2 rec1_len fixed bin, /* length in chars */ 5 9 2 pattern2 bit (36), /* unique word 2 */ 5 10 2 rec2_type fixed bin, /* record 2 type */ 5 11 2 rec2_len fixed bin, /* length in chars */ 5 12 2 pattern3 bit (36), /* unique word 3 */ 5 13 2 time_dumped bit (36); /* dump time of this record */ 5 14 5 15 dcl vtoce_type fixed bin static init (1) options (constant); /* type code for vtoce */ 5 16 dcl dir_type fixed bin static init (2) options (constant); /* type code for directory */ 5 17 dcl seg_type fixed bin static init (3) options (constant); /* type code for segment */ 5 18 dcl null_type fixed bin static init (4) options (constant); /* type code for null record */ 5 19 dcl volume_log_type fixed bin static init (5) options (constant); /* type code for volume log */ 5 20 dcl prev_output_log_type fixed bin static init (6) options (constant); /* type code for prev output log */ 5 21 dcl contents_type fixed bin static init (7) options (constant); /* type code for contents segment of previous volume */ 5 22 dcl info_type fixed bin static init (8) options (constant); /* type code for info structure */ 5 23 5 24 dcl pattern1 bit (36) int static init ("110111000011001100011101101010100101"b) options (constant); 5 25 dcl pattern2 bit (36) int static init ("101001010101101110001100110000111011"b) options (constant); 5 26 dcl pattern3 bit (36) int static init ("001000111100110011100010010101011010"b) options (constant); 5 27 5 28 /* END INCLUDE FILE ... backup_volume_header */ 766 6 1 /* BEGIN INCLUDE FILE ... backup_static_variables.incl.pl1 ... March 1976 */ 6 2 6 3 6 4 dcl incr fixed bin init (1) internal static options (constant); /* incremental dump mode */ 6 5 dcl cons fixed bin init (2) internal static options (constant); /* consolidated dump mode */ 6 6 dcl comp fixed bin init (3) internal static options (constant); /* complete dump mode */ 6 7 dcl backup_version_1 fixed bin init (1) static internal options (constant); /* backup_version_1 of input/output structures */ 6 8 6 9 6 10 6 11 /* END INCLUDE FILE ... backup_static_variables.incl.pl1 */ 767 768 /* BEGIN INCLUDE FILE ...vtoce.incl.pl1 ... last modified September 1982 */ 7 2 /* Template for a VTOC entry. Length = 192 words. (3 * 64). */ 7 3 /* NOTE: vtoc_man clears pad fields before writing a vtoce. */ 7 4 7 5 dcl vtocep ptr; 7 6 7 7 dcl 1 vtoce based (vtocep) aligned, 7 8 7 9 7 10 (2 pad_free_vtoce_chain bit (36), /* Used to be pointer to next free VTOCE */ 7 11 7 12 2 uid bit (36), /* segment's uid - zero if vtoce is free */ 7 13 7 14 2 msl bit (9), /* maximum segment length in 1024 word units */ 7 15 2 csl bit (9), /* current segment length - in 1024 word units */ 7 16 2 records bit (9), /* number of records used by the seg in second storage */ 7 17 2 pad2 bit (9), 7 18 7 19 2 dtu bit (36), /* date and time segment was last used */ 7 20 7 21 2 dtm bit (36), /* date and time segment was last modified */ 7 22 7 23 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 7 24 2 deciduous bit (1), /* true if hc_sdw */ 7 25 2 nid bit (1), /* no incremental dump switch */ 7 26 2 dnzp bit (1), /* Dont null zero pages */ 7 27 2 gtpd bit (1), /* Global transparent paging device */ 7 28 2 per_process bit (1), /* Per process segment (deleted every bootload) */ 7 29 2 damaged bit (1), /* TRUE if contents damaged */ 7 30 2 fm_damaged bit (1), /* TRUE if filemap checksum bad */ 7 31 2 fm_checksum_valid bit (1), /* TRUE if the checksum has been computed */ 7 32 2 synchronized bit (1), /* TRUE if this is a data management synchronized segment */ 7 33 2 pad3 bit (8), 7 34 2 dirsw bit (1), /* directory switch */ 7 35 2 master_dir bit (1), /* master directory - a root for the logical volume */ 7 36 2 pad4 bit (16)) unaligned, /* not used */ 7 37 7 38 2 fm_checksum bit (36) aligned, /* Checksum of used portion of file map */ 7 39 7 40 (2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 7 41 7 42 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 7 43 7 44 2 received (0:1) fixed bin (18) unsigned, /* total amount of storage this dir has received */ 7 45 7 46 2 trp (0:1) fixed bin (71), /* time record product - (0) for non dir pages */ 7 47 7 48 2 trp_time (0:1) bit (36), /* time time_record_product was last calculated */ 7 49 7 50 7 51 7 52 7 53 7 54 2 fm (0:255) bit (18), /* file map - 256 entries - 18 bits per entry */ 7 55 7 56 2 pad6 (10) bit (36), /* not used */ 7 57 7 58 2 ncd bit (1), /* no complete dump switch */ 7 59 2 pad7 bit (17), 7 60 2 pad8 bit (18), 7 61 7 62 2 dtd bit (36), /* date-time-dumped */ 7 63 7 64 2 volid (3) bit (36), /* volume ids of last incremental, consolidated, and complete dumps */ 7 65 7 66 2 master_dir_uid bit (36), /* superior master directory uid */ 7 67 7 68 7 69 7 70 7 71 2 uid_path (0:15) bit (36), /* uid pathname of all parents starting after the root */ 7 72 7 73 2 primary_name char (32), /* primary name of the segment */ 7 74 7 75 2 time_created bit (36), /* time the segment was created */ 7 76 7 77 2 par_pvid bit (36), /* physical volume id of the parent */ 7 78 7 79 2 par_vtocx fixed bin (17), /* vtoc entry index of the parent */ 7 80 2 branch_rp bit (18)) unaligned, /* rel pointer of the branch of this segment */ 7 81 7 82 2 cn_salv_time bit (36), /* time branch - vtoce connection checked */ 7 83 7 84 2 access_class bit (72), /* access class in branch */ 7 85 2 perm_flags aligned, 7 86 3 per_bootload bit (1) unal, /* ON => deleted each bootload */ 7 87 3 pad9 bit (35) unal, 7 88 2 owner bit (36); /* pvid of this volume */ 7 89 7 90 dcl vtoce_parts (3) bit (36 * 64) aligned based (vtocep); 7 91 7 92 dcl 1 seg_vtoce based (vtocep) aligned, /* Overlay for vtoce of segments, which don't have quota */ 7 93 2 pad1 bit (7*36), 7 94 2 usage fixed bin (35), /* page fault count: overlays quota */ 7 95 2 pad2 bit (184*36); 7 96 7 97 /* END INCLUDE FILE vtoce.incl.pl1 */ 768 769 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 8 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 8 3 /* version number changed to 4, 08/10/78 WOS */ 8 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 8 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 8 6 8 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 8 8 2 version fixed bin, /* version of this structure - must be set, see below */ 8 9 2 switches aligned, /* various bit switch values */ 8 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 8 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 8 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 8 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 8 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 8 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 8 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 8 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 8 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 8 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 8 20 8 21 /* Limit of data defined for version 2 */ 8 22 8 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 8 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 8 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 8 26 /* minimum of 30 seconds required for repeat */ 8 27 /* otherwise, no repeat will occur */ 8 28 /* Limit of data defined for version 4 */ 8 29 8 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 8 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 8 32 8 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 8 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 8 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 8 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 8 37 8 38 /* END INCLUDE FILE query_info.incl.pl1 */ 769 770 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 9 2 9 3 /* Written 05/04/78 by C. D. Tavares */ 9 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 9 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 9 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 9 7 9 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 9 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 9 10 iox_$close entry (pointer, fixed bin (35)), 9 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 9 12 iox_$delete_record entry (pointer, fixed bin (35)), 9 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 9 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 9 15 iox_$err_not_attached entry options (variable), 9 16 iox_$err_not_closed entry options (variable), 9 17 iox_$err_no_operation entry options (variable), 9 18 iox_$err_not_open entry options (variable), 9 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 9 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 9 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 9 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 9 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 9 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 9 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 9 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 9 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 9 28 iox_$propagate entry (pointer), 9 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 9 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 9 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 9 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 9 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 9 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 9 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 9 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 9 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 9 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 9 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 9 40 9 41 dcl (iox_$user_output, 9 42 iox_$user_input, 9 43 iox_$user_io, 9 44 iox_$error_output) external static pointer; 9 45 9 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 770 771 /* Begin include file ..... iox_modes.incl.pl1 */ 10 2 10 3 /* Written by C. D. Tavares, 03/17/75 */ 10 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 10 5 10 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 10 7 ("stream_input", "stream_output", "stream_input_output", 10 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 10 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 10 10 "direct_input", "direct_output", "direct_update"); 10 11 10 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 10 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 10 14 10 15 dcl (Stream_input initial (1), 10 16 Stream_output initial (2), 10 17 Stream_input_output initial (3), 10 18 Sequential_input initial (4), 10 19 Sequential_output initial (5), 10 20 Sequential_input_output initial (6), 10 21 Sequential_update initial (7), 10 22 Keyed_sequential_input initial (8), 10 23 Keyed_sequential_output initial (9), 10 24 Keyed_sequential_update initial (10), 10 25 Direct_input initial (11), 10 26 Direct_output initial (12), 10 27 Direct_update initial (13)) fixed bin int static options (constant); 10 28 10 29 /* End include file ..... iox_modes.incl.pl1 */ 771 772 /* BEGIN INCLUDE FILE ... system_constants.incl.pl1 */ 11 2 11 3 /****^ HISTORY COMMENTS: 11 4* 1) change(86-11-12,GWMay), approve(86-11-12,MCR7445), audit(86-11-19,GDixon), 11 5* install(86-11-21,MR12.0-1223): 11 6* created. 11 7* END HISTORY COMMENTS */ 11 8 11 9 /* format: off */ 11 10 11 11 /* ************************************************************************ */ 11 12 /* */ 11 13 /* Function: Provides constants for commonly used Multics system values. */ 11 14 /* */ 11 15 /* Usage: These values are available for use in place of "magic" numbers */ 11 16 /* (unexplained numbers) in programming applications. */ 11 17 /* */ 11 18 /* Definitions: */ 11 19 /* */ 11 20 /* PER bit character/byte word page segment */ 11 21 /* */ 11 22 /* bits 1 9 36 36864 9400320 */ 11 23 /* characters/bytes 1 4 4096 1044480 */ 11 24 /* words 1 1024 261120 */ 11 25 /* pages 1 255 */ 11 26 /* segments 1 */ 11 27 /* */ 11 28 /* The base values for a bit, char, word and page are determined by the */ 11 29 /* Multics hardware implementation. The other values are calculated from */ 11 30 /* their relation to one another as shown in the matrix above. */ 11 31 /* */ 11 32 /* BITS_PER_CHAR = 9 (defined by the hardware) */ 11 33 /* BITS_PER_WORD = BITS_PER_CHAR * CHARS_PER_WORD */ 11 34 /* = 9 * 4 */ 11 35 /* = 36 */ 11 36 /* BITS_PER_PAGE = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE */ 11 37 /* = 9 * 4 * 1024 */ 11 38 /* = 36864 */ 11 39 /* BITS_PER_SEGMENT = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE * */ 11 40 /* PAGES_PER_SEGMENT */ 11 41 /* = 9 * 4 * 1024 * 255 */ 11 42 /* = 9400320 */ 11 43 /* */ 11 44 /* CHARS_PER_WORD = 4 (defined by the hardware) */ 11 45 /* CHARS_PER_PAGE = CHARS_PER_WORD * WORDS_PER_PAGE */ 11 46 /* = 4 * 1024 */ 11 47 /* = 4096 */ 11 48 /* CHARS_PER_SEGMENT = CHARS_PER_WORD * WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 11 49 /* = 4 * 1024 * 255 */ 11 50 /* = 1044480 */ 11 51 /* */ 11 52 /* WORDS_PER_PAGE = 1024 (defined by the hardware) */ 11 53 /* WORDS_PER_SEGMENT = WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 11 54 /* = 1024 * 255 */ 11 55 /* = 261120 */ 11 56 /* */ 11 57 /* PAGES_PER_SEGMENT = 255 (defined by system standard) */ 11 58 /* */ 11 59 /* ************************************************************************ */ 11 60 11 61 declare BITS_PER_CHAR fixed bin (4) internal static 11 62 options (constant) initial (9); 11 63 11 64 declare BITS_PER_WORD fixed bin (6) internal static 11 65 options (constant) initial (36); 11 66 11 67 declare BITS_PER_PAGE fixed bin (16) internal static 11 68 options (constant) initial (36864); 11 69 11 70 declare BITS_PER_SEGMENT fixed bin (24) internal static 11 71 options (constant) initial (9400320); 11 72 11 73 declare CHARS_PER_WORD fixed bin (3) internal static 11 74 options (constant) initial (4); 11 75 11 76 declare CHARS_PER_PAGE fixed bin (13) internal static 11 77 options (constant) initial (4096); 11 78 11 79 declare CHARS_PER_SEGMENT fixed bin (21) internal static 11 80 options (constant) initial (1044480); 11 81 11 82 /* Note: WORDS_PER_PAGE should be equal to sys_info$max_page_size */ 11 83 11 84 declare WORDS_PER_PAGE fixed bin (11) internal static 11 85 options (constant) initial (1024); 11 86 11 87 /* Note: WORDS_PER_SEGMENT should be equal to sys_info$max_seg_size */ 11 88 11 89 declare WORDS_PER_SEGMENT fixed bin (21) internal static 11 90 options (constant) initial (261120); 11 91 11 92 declare PAGES_PER_SEGMENT fixed bin (8) internal static 11 93 options (constant) initial (255); 11 94 11 95 /* END INCLUDE FILE ... system_constants.incl.pl1 */ 11 96 772 773 end recover_volume_log; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0851.4 recover_volume_log.pl1 >spec>install>1115>recover_volume_log.pl1 762 1 10/12/89 2013.4 backup_volume_log.incl.pl1 >ldd>include>backup_volume_log.incl.pl1 763 2 06/07/77 1233.6 backup_pvol_info.incl.pl1 >ldd>include>backup_pvol_info.incl.pl1 764 3 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 765 4 10/18/88 1215.0 backup_volume_record.incl.pl1 >ldd>include>backup_volume_record.incl.pl1 766 5 09/05/80 1136.5 backup_volume_header.incl.pl1 >ldd>include>backup_volume_header.incl.pl1 767 6 09/05/80 1136.5 backup_static_variables.incl.pl1 >ldd>include>backup_static_variables.incl.pl1 768 7 10/04/83 1105.1 vtoce.incl.pl1 >ldd>include>vtoce.incl.pl1 769 8 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 770 9 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 771 10 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 772 11 11/24/86 1243.9 system_constants.incl.pl1 >ldd>include>system_constants.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. BITS_PER_WORD constant fixed bin(6,0) initial dcl 11-64 ref 449 449 449 CHARS_PER_PAGE constant fixed bin(13,0) initial dcl 11-76 ref 653 661 676 686 699 699 CHARS_PER_WORD constant fixed bin(3,0) initial dcl 11-73 ref 432 434 451 542 552 DEFAULT_RECOVERY_DIR 000013 constant char(168) initial packed unaligned dcl 97 ref 134 DELIMITED constant bit(1) initial dcl 99 ref 435 452 FORWARD_CHAR_POSITIONING 000133 constant fixed bin(17,0) initial dcl 101 set ref 630* Nassign_chars 000100 automatic fixed bin(21,0) dcl 611 set ref 671* 679* 680 686 689 691 693 Nread_chars 000101 automatic fixed bin(21,0) dcl 611 set ref 617* 624* 635* 638 643* Nrequested_chars parameter fixed bin(21,0) dcl 599 ref 593 619 630 632 635 653 671 680 686 Nreturned_chars parameter fixed bin(21,0) dcl 599 set ref 593 617* 619 623 630 632* 632 635 635 635 638* 638 652 689* Sdelimited parameter bit(1) dcl 599 ref 593 623 642 659 674 696 Stream_input 000142 constant fixed bin(17,0) initial dcl 10-15 set ref 353* abandoned 37 based bit(1) array level 4 packed packed unaligned dcl 68 set ref 226* 231 248 280 378* 389* 396* 576 ac 000300 automatic fixed bin(17,0) dcl 45 set ref 151* 152* 159* 159 160* 177* addcharno builtin function dcl 129 ref 635 635 addr builtin function dcl 129 ref 335 335 452 452 624 624 643 643 721 721 adjust_bit_count_ 000052 constant entry external dcl 110 ref 753 answer_iocbp 6 000550 automatic pointer initial level 2 dcl 8-7 set ref 8-7* arg based char packed unaligned dcl 60 set ref 158 165 167 167 171 172* 183 argl 000301 automatic fixed bin(17,0) dcl 45 set ref 152* 158 160* 165 167 167 171 172 172 183 argp 000436 automatic pointer dcl 49 set ref 152* 158 160* 165 167 167 171 172 183 att_desc 000100 automatic char(256) packed unaligned dcl 44 set ref 343* 345* 347* 349* backup_pvol_info based structure level 1 dcl 2-5 backup_volume_header based structure level 1 dcl 5-5 ref 434 449 449 449 452 452 542 552 554 554 backup_volume_log based structure level 1 dcl 1-20 backup_volume_log_version_1 constant fixed bin(17,0) initial dcl 1-16 ref 568 backup_volume_log_version_2 constant fixed bin(17,0) initial dcl 1-17 ref 568 backup_volume_log_version_3 constant fixed bin(17,0) initial dcl 1-18 ref 568 backup_volume_record based structure level 1 dcl 4-17 backup_volume_record_version_1 constant fixed bin(17,0) initial dcl 4-14 ref 560 bvle based structure level 1 dcl 1-39 bvlp 000544 automatic pointer dcl 1-13 set ref 140* 230* 567* 568 568 568 576 577 581 char_read 000310 automatic fixed bin(21,0) dcl 46 set ref 432 435* 452* 477* 493 510 543* 554* cleanup 000536 stack reference condition dcl 84 ref 143 code parameter fixed bin(35,0) dcl 599 in procedure "read" set ref 593 617* 619 624* 626 630* 635* 640 643* 645 680* code 000511 automatic fixed bin(35,0) dcl 59 in procedure "recover_volume_log" set ref 141* 144* 152* 153 154* 160* 161 162* 197 198* 201* 211 215 216* 223* 224* 308* 309 314* 315 316* 317 318* 319 347* 348 349* 353* 354 355* 372* 373 373 374* 375 376* 382* 383 383 383 387* 393* 394 395* 435* 445* 452* 460* 477* 493 494 494 505* 511 511* 514 514* 515* 519 520* 543* 549* 554* com_err_ 000062 constant entry external dcl 114 ref 146 154 162 172 192 198 216 224 243 252 349 355 376 387 395 441 459 505 511 514 515 519 520 572 command_query_ 000110 constant entry external dcl 125 ref 335 cp_escape_control 1(02) 000550 automatic bit(2) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* cu_$arg_count 000054 constant entry external dcl 111 ref 144 cu_$arg_ptr 000060 constant entry external dcl 113 ref 152 160 date_time_$fstime 000050 constant entry external dcl 109 ref 731 debug 000442 automatic bit(1) packed unaligned dcl 50 set ref 135* 345 delimited 000450 automatic bit(1) dcl 51 set ref 444* 477* 541* 543* 554* 560* divide builtin function dcl 129 ref 432 ename 22 based char(32) array level 3 dcl 68 set ref 185* 221* 222 372 374 376* 382 387* 753 end_of_record 000102 automatic fixed bin(17,0) dcl 611 set ref 676* 678 679 enl 000302 automatic fixed bin(17,0) dcl 45 set ref 221* 222 error_table_$badopt 000026 external static fixed bin(35,0) dcl 93 set ref 172* error_table_$data_loss 000010 external static fixed bin(35,0) dcl 86 ref 511 680 error_table_$device_end 000022 external static fixed bin(35,0) dcl 91 ref 494 error_table_$end_of_info 000024 external static fixed bin(35,0) dcl 92 ref 460 494 error_table_$entlong 000014 external static fixed bin(35,0) dcl 88 ref 223 error_table_$namedup 000020 external static fixed bin(35,0) dcl 90 ref 383 error_table_$noentry 000012 external static fixed bin(35,0) dcl 87 ref 373 error_table_$segknown 000016 external static fixed bin(35,0) dcl 89 ref 383 explanation_len 14 000550 automatic fixed bin(21,0) initial level 2 dcl 8-7 set ref 8-7* explanation_ptr 12 000550 automatic pointer initial level 2 dcl 8-7 set ref 8-7* first_input_volume 000445 automatic bit(1) packed unaligned dcl 50 set ref 136* 335 341* flags 37 based structure array level 3 dcl 68 set ref 187* get_group_id_ 000042 constant entry external dcl 106 ref 748 get_pdir_ 000044 constant entry external dcl 107 ref 133 get_temp_segments_ 000064 constant entry external dcl 115 ref 308 hcs_$delentry_file 000034 constant entry external dcl 103 ref 372 hcs_$delentry_seg 000036 constant entry external dcl 104 ref 751 hcs_$fs_move_seg 000076 constant entry external dcl 120 ref 393 hcs_$fs_search_get_wdir 000056 constant entry external dcl 112 ref 721 hcs_$level_get 000046 constant entry external dcl 108 ref 748 hcs_$make_seg 000074 constant entry external dcl 119 ref 382 hcs_$set_256K_switch 000100 constant entry external dcl 121 ref 314 746 hcs_$set_max_length_seg 000102 constant entry external dcl 122 ref 316 318 743 744 hcs_$terminate_noname 000072 constant entry external dcl 118 ref 754 hcs_$truncate_seg 000104 constant entry external dcl 123 ref 741 742 hdp automatic pointer dcl 5-3 ref 434 449 449 449 452 452 542 552 554 554 header based structure level 2 in structure "backup_volume_log" dcl 1-20 in procedure "recover_volume_log" header based structure level 2 in structure "backup_volume_record" dcl 4-17 in procedure "recover_volume_log" hphcs_$delentry_file 000040 constant entry external dcl 105 ref 374 i 000306 automatic fixed bin(17,0) dcl 45 in procedure "recover_volume_log" set ref 750* 751 751 752 753 754 756 756 756 756* 756* i parameter fixed bin(17,0) dcl 729 in procedure "time_string" ref 728 731 i 000100 automatic fixed bin(17,0) dcl 277 in procedure "not_all_abandoned" set ref 279* 280* i 000604 automatic fixed bin(17,0) dcl 407 in procedure "validate_all_vologs" set ref 410* 411* i 000106 automatic fixed bin(17,0) dcl 266 in procedure "all_vologs_found" set ref 267* 268* ignore 000512 automatic fixed bin(35,0) dcl 59 set ref 293* 294* 721* 741* 742* 743* 744* 745* 746* 753* 754* ilvname 000460 automatic char(32) packed unaligned dcl 57 set ref 241* index builtin function dcl 129 ref 676 info 10 based structure level 2 dcl 1-20 input_buf based bit(36) array packed unaligned dcl 53 set ref 432* input_buffer based char packed unaligned dcl 605 set ref 653* 661 676 686 699* 699 input_buffer_len 000521 automatic fixed bin(21,0) dcl 64 set ref 321* 620 652* 653 666* 666 670 671 676 693* 693 696 699 699 input_buffer_ptr 000516 automatic pointer dcl 62 set ref 313* 318* 653 661 676 686 699 699 742* 744* input_buffer_start 000520 automatic fixed bin(17,0) dcl 63 set ref 320* 621* 661 664* 664 676 686 691* 691 697* 697 699 703* input_volume_desc 000200 automatic char(256) packed unaligned dcl 44 set ref 137* 165* 343 343* ioa_ 000070 constant entry external dcl 117 ref 522 756 ioa_$rsnnl 000066 constant entry external dcl 116 ref 221 343 345 iocbp 000440 automatic pointer dcl 49 set ref 140* 293* 294* 295* 347* 353* 624* 630* 635* 643* 739 iox_$attach_ioname 000106 constant entry external dcl 124 ref 347 iox_$close 000116 constant entry external dcl 9-8 ref 293 iox_$detach_iocb 000120 constant entry external dcl 9-8 ref 294 iox_$get_chars 000122 constant entry external dcl 9-8 ref 624 635 643 iox_$open 000124 constant entry external dcl 9-8 ref 353 iox_$position 000126 constant entry external dcl 9-8 ref 630 irpvlvid 000452 automatic bit(36) packed unaligned dcl 52 set ref 241* irpvpvid 000451 automatic bit(36) packed unaligned dcl 52 set ref 241* 242 itype 000303 automatic fixed bin(17,0) dcl 45 set ref 241* label based structure level 1 dcl 3-18 in procedure "recover_volume_log" label 10 based structure level 3 in structure "backup_volume_log" dcl 1-20 in procedure "recover_volume_log" length builtin function dcl 129 ref 222 624 624 643 643 661 664 666 697 699 linkage_error 000000 stack reference condition dcl 84 ref 371 literal_sw 1(05) 000550 automatic bit(1) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* maxpvs 000534 automatic fixed bin(17,0) dcl 68 set ref 141* 177* 178 759 mdc_$pvname_info 000112 constant entry external dcl 126 ref 241 min builtin function dcl 129 ref 671 mismatch 000605 automatic bit(1) initial packed unaligned dcl 407 set ref 407* 413* 415 myname 000003 constant char(32) initial packed unaligned dcl 98 set ref 146* 146* 154* 162* 172* 192* 198* 216* 224* 243* 252* 308* 335* 349* 355* 376* 387* 395* 441* 459* 505* 511* 514* 515* 519* 520* 522* 572* 745* nargs 000304 automatic fixed bin(17,0) dcl 45 set ref 144* 145 151 177 new_logp 34 based pointer array level 3 dcl 68 set ref 186* 242 248* 752 754* new_tape 000444 automatic bit(1) packed unaligned dcl 50 set ref 433* 438 450* 455 492* 500* 540* 545 557 npvs based fixed bin(17,0) level 2 dcl 68 set ref 179* 182* 182 183 185 185 186 186 187 187 187 187 191 247 267 279 410 575 750 null builtin function dcl 129 ref 139 140 176 186 191 8-7 8-7 8-7 295 629 686 739 740 749 751 752 objectp 000514 automatic pointer dcl 61 set ref 312* 316* 477* 741* 743* ok_to_abc 000446 automatic bit(1) packed unaligned dcl 50 set ref 135* 748* 753 old_256K_switch 000522 automatic bit(2) dcl 65 set ref 138* 746* padding 1(07) 000550 automatic bit(29) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* pattern1 000002 constant bit(36) initial packed unaligned dcl 5-24 in procedure "recover_volume_log" ref 440 546 pattern1 based bit(36) level 3 in structure "backup_volume_record" dcl 4-17 in procedure "recover_volume_log" ref 546 pattern2 3 based bit(36) level 3 in structure "backup_volume_record" dcl 4-17 in procedure "recover_volume_log" ref 546 pattern2 000001 constant bit(36) initial packed unaligned dcl 5-25 in procedure "recover_volume_log" ref 440 546 pattern3 6 based bit(36) level 3 in structure "backup_volume_record" dcl 4-17 in procedure "recover_volume_log" ref 546 pattern3 000000 constant bit(36) initial packed unaligned dcl 5-26 in procedure "recover_volume_log" ref 440 546 pattern_match_label 000454 automatic label variable dcl 56 set ref 446 539* per_pv 2 based structure array level 2 dcl 68 prompt_after_explanation 1(06) 000550 automatic bit(1) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* ptr builtin function dcl 129 ref 554 554 ptr_in1 parameter pointer dcl 368 set ref 365 393* ptr_in2 parameter pointer dcl 368 set ref 365 382* 393* pvindex 000307 automatic fixed bin(17,0) dcl 45 set ref 209* 211 220 221 221 224 226 230 231 232 247* 248 248 248 248* 372 374 376 378 382 387 389 396 575* 576 576 577 577 578* 581 582* 586* pvname 2 based char(32) array level 3 in structure "rvl" dcl 68 in procedure "recover_volume_log" set ref 183* 221* 224* 576 756* pvname 2017 based char(32) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "recover_volume_log" ref 576 query_code 3 000550 automatic fixed bin(35,0) initial level 2 dcl 8-7 set ref 8-7* query_info 000550 automatic structure level 1 dcl 8-7 set ref 335 335 query_info_version_6 constant fixed bin(17,0) initial dcl 8-36 ref 142 question_iocbp 4 000550 automatic pointer initial level 2 dcl 8-7 set ref 8-7* read_char 000311 automatic fixed bin(21,0) dcl 46 set ref 434* 435* 451* 452* 477* 493 510 542* 543* 552* 554* 559* rec1_len 2 based fixed bin(17,0) level 3 dcl 4-17 ref 552 rec1_type 1 based fixed bin(17,0) level 3 dcl 4-17 ref 558 560 rec2_len 5 based fixed bin(17,0) level 3 dcl 4-17 ref 559 recordp 000546 automatic pointer dcl 4-12 set ref 311* 432 435* 440 440 440 449 449 452 452 543* 546 546 546 552 554 554 558 559 560 560 567 recovery_dir 000312 automatic char(168) packed unaligned dcl 47 set ref 134* 169* 248* release_temp_segments_ 000114 constant entry external dcl 127 ref 745 repeat_time 10 000550 automatic fixed bin(71,0) initial level 2 dcl 8-7 set ref 8-7* resynching 000447 automatic bit(1) packed unaligned dcl 50 set ref 135* 431* 443* 504 509 return_buffer_ptr parameter pointer dcl 599 ref 593 629 635 635 653 686 686 return_string based char packed unaligned dcl 608 set ref 653 686* root_pvid 553 based bit(36) level 4 dcl 1-20 ref 242 411 411 rvl based structure level 1 dcl 68 set ref 178 759 rvlp 000532 automatic pointer dcl 68 set ref 140* 176 178* 179 182 182 183 183 185 185 185 185 186 186 186 186 187 187 187 187 187 187 191 191 221 221 222 224 226 230 231 232 242 247 248 248 248 248 267 268 279 280 372 374 376 378 382 387 389 396 410 411 411 575 576 576 577 577 581 582 731 749 750 751 751 752 753 754 756 756 756 759 size builtin function dcl 129 ref 434 449 449 449 452 452 542 552 554 554 status_code 2 000550 automatic fixed bin(35,0) initial level 2 dcl 8-7 set ref 8-7* string 000106 automatic char(24) packed unaligned dcl 729 in procedure "time_string" set ref 731* 732 string based bit packed unaligned dcl 55 in procedure "recover_volume_log" set ref 449* 449 substr builtin function dcl 129 set ref 171 449 653* 661 676 686 699* 699 suppress_name_sw 1(01) 000550 automatic bit(1) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* suppress_spacing 1(04) 000550 automatic bit(1) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* switches 1 000550 automatic structure level 2 dcl 8-7 sys_info$max_seg_size 000032 external static fixed bin(18,0) dcl 95 ref 743 744 sys_info$seg_size_256K 000030 external static fixed bin(19,0) dcl 94 set ref 316* 318* tape_check1 000104 automatic char(8) packed unaligned dcl 611 set ref 624 624 624 624 648 661* 661 664 666 675 676 tape_check2 000106 automatic char(8) packed unaligned dcl 611 set ref 643 643 643 643 648 663* 675 697 699 699 temp_dir 000364 automatic char(168) packed unaligned dcl 48 set ref 133* 230* temp_dir_in parameter char packed unaligned dcl 368 set ref 365 372* 374* 376* 382* 387* temp_logp 32 based pointer array level 3 dcl 68 set ref 186* 230* 248* 411 411 751 751* time 36 based bit(36) array level 3 in structure "rvl" dcl 68 in procedure "recover_volume_log" set ref 187* 577 581* 731 time 000453 automatic bit(36) packed unaligned dcl 52 in procedure "recover_volume_log" set ref 135* time_dumped 7 based bit(36) level 3 dcl 1-20 ref 577 581 tp 000524 automatic pointer array dcl 66 set ref 139* 308* 311 312 313 740 745* var_volname 000500 automatic varying char(32) dcl 58 set ref 335* 337 338 339 version 2015 based fixed bin(17,0) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "recover_volume_log" ref 568 568 568 version 10 based fixed bin(17,0) level 2 in structure "backup_volume_record" dcl 4-17 in procedure "recover_volume_log" ref 560 version 000550 automatic fixed bin(17,0) level 2 in structure "query_info" dcl 8-7 in procedure "recover_volume_log" set ref 142* volname 000470 automatic char(32) packed unaligned dcl 57 in procedure "recover_volume_log" set ref 339* 343* 345* 582 volname 12 based char(32) array level 3 in structure "rvl" dcl 68 in procedure "recover_volume_log" set ref 185* 582* 756* volog_found 37(01) based bit(1) array level 4 packed packed unaligned dcl 68 set ref 232* 248 268 577 756 volume_log_type constant fixed bin(17,0) initial dcl 5-19 ref 558 vtoce based structure level 1 dcl 7-7 vtoce_type constant fixed bin(17,0) initial dcl 5-15 ref 560 wd_specified 000443 automatic bit(1) packed unaligned dcl 50 set ref 168* 239 wdir 000100 automatic char(168) dcl 720 set ref 721 721 722 word based bit(36) array packed unaligned dcl 54 set ref 440 440 440 452 452 words_skipped 000305 automatic fixed bin(17,0) dcl 45 set ref 439* 441* 457* 457 458 yes_or_no_sw 1 000550 automatic bit(1) initial level 3 packed packed unaligned dcl 8-7 set ref 8-7* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BITS_PER_CHAR internal static fixed bin(4,0) initial dcl 11-61 BITS_PER_PAGE internal static fixed bin(16,0) initial dcl 11-67 BITS_PER_SEGMENT internal static fixed bin(24,0) initial dcl 11-70 CHARS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 11-79 Direct_input internal static fixed bin(17,0) initial dcl 10-15 Direct_output internal static fixed bin(17,0) initial dcl 10-15 Direct_update internal static fixed bin(17,0) initial dcl 10-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 10-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 10-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 10-15 Multics_ID_String internal static char(32) initial packed unaligned dcl 3-92 PAGES_PER_SEGMENT internal static fixed bin(8,0) initial dcl 11-92 Sequential_input internal static fixed bin(17,0) initial dcl 10-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 10-15 Sequential_output internal static fixed bin(17,0) initial dcl 10-15 Sequential_update internal static fixed bin(17,0) initial dcl 10-15 Stream_input_output internal static fixed bin(17,0) initial dcl 10-15 Stream_output internal static fixed bin(17,0) initial dcl 10-15 WORDS_PER_PAGE internal static fixed bin(11,0) initial dcl 11-84 WORDS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 11-89 backup_version_1 internal static fixed bin(17,0) initial dcl 6-7 backup_volume_record_version_2 internal static fixed bin(17,0) initial dcl 4-15 bpvip automatic pointer dcl 2-3 bvlep automatic pointer dcl 1-14 comp internal static fixed bin(17,0) initial dcl 6-6 cons internal static fixed bin(17,0) initial dcl 6-5 contents_type internal static fixed bin(17,0) initial dcl 5-21 dir_type internal static fixed bin(17,0) initial dcl 5-16 incr internal static fixed bin(17,0) initial dcl 6-4 info_type internal static fixed bin(17,0) initial dcl 5-22 iox_$attach_loud 000000 constant entry external dcl 9-8 iox_$attach_name 000000 constant entry external dcl 9-8 iox_$attach_ptr 000000 constant entry external dcl 9-8 iox_$close_file 000000 constant entry external dcl 9-8 iox_$control 000000 constant entry external dcl 9-8 iox_$delete_record 000000 constant entry external dcl 9-8 iox_$destroy_iocb 000000 constant entry external dcl 9-8 iox_$detach 000000 constant entry external dcl 9-8 iox_$err_no_operation 000000 constant entry external dcl 9-8 iox_$err_not_attached 000000 constant entry external dcl 9-8 iox_$err_not_closed 000000 constant entry external dcl 9-8 iox_$err_not_open 000000 constant entry external dcl 9-8 iox_$error_output external static pointer dcl 9-41 iox_$find_iocb 000000 constant entry external dcl 9-8 iox_$find_iocb_n 000000 constant entry external dcl 9-8 iox_$get_line 000000 constant entry external dcl 9-8 iox_$look_iocb 000000 constant entry external dcl 9-8 iox_$modes 000000 constant entry external dcl 9-8 iox_$move_attach 000000 constant entry external dcl 9-8 iox_$open_file 000000 constant entry external dcl 9-8 iox_$propagate 000000 constant entry external dcl 9-8 iox_$put_chars 000000 constant entry external dcl 9-8 iox_$read_key 000000 constant entry external dcl 9-8 iox_$read_length 000000 constant entry external dcl 9-8 iox_$read_record 000000 constant entry external dcl 9-8 iox_$rewrite_record 000000 constant entry external dcl 9-8 iox_$seek_key 000000 constant entry external dcl 9-8 iox_$user_input external static pointer dcl 9-41 iox_$user_io external static pointer dcl 9-41 iox_$user_output external static pointer dcl 9-41 iox_$write_record 000000 constant entry external dcl 9-8 iox_modes internal static char(24) initial array dcl 10-6 labelp automatic pointer dcl 3-16 null_type internal static fixed bin(17,0) initial dcl 5-18 prev_output_log_type internal static fixed bin(17,0) initial dcl 5-20 query_info_version_3 internal static fixed bin(17,0) initial dcl 8-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 8-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 8-35 seg_type internal static fixed bin(17,0) initial dcl 5-17 seg_vtoce based structure level 1 dcl 7-92 short_iox_modes internal static char(4) initial array dcl 10-12 vtoce_parts based bit(2304) array dcl 7-90 vtocep automatic pointer dcl 7-5 NAMES DECLARED BY EXPLICIT CONTEXT. all_vologs_found 002034 constant entry internal dcl 263 ref 496 argerr 000772 constant label dcl 146 attach 002314 constant entry internal dcl 330 ref 203 499 check_input_error 003632 constant entry internal dcl 485 ref 436 454 461 478 544 550 556 delerr 002774 constant label dcl 376 ref 371 delete_make_and_move 002645 constant entry internal dcl 365 ref 230 248 detach 002142 constant entry internal dcl 289 ref 495 506 739 finish 002027 constant label dcl 254 ref 155 163 173 193 199 217 244 338 350 356 507 finish_ 005056 constant entry internal dcl 738 ref 143 254 finish_all_temp 001633 constant label dcl 235 ref 496 not_all_abandoned 002075 constant entry internal dcl 275 ref 211 496 pattern_match 004231 constant label dcl 552 ref 539 read 004421 constant entry internal dcl 593 ref 435 452 477 543 554 read_volume_record 004154 constant entry internal dcl 533 ref 213 reask 002321 constant label dcl 335 ref 337 recover_volume_log 000632 constant entry external dcl 16 resynch_volume 003321 constant entry internal dcl 424 ref 523 search_loop 001403 constant label dcl 209 ref 227 233 438 455 462 setup_data_segments 002176 constant entry internal dcl 304 ref 196 skip_chars 003605 constant entry internal dcl 473 ref 563 test 003410 constant label dcl 440 ref 464 time_string 005023 constant entry internal dcl 728 ref 756 756 validate_all_vologs 003260 constant entry internal dcl 404 ref 235 wdir_ 004775 constant entry internal dcl 715 ref 169 753 753 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6306 6436 5545 6316 Length 7170 5545 130 516 541 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME recover_volume_log 568 external procedure is an external procedure. on unit on line 143 64 on unit all_vologs_found internal procedure shares stack frame of internal procedure check_input_error. not_all_abandoned 67 internal procedure is called by several nonquick procedures. detach 70 internal procedure is called by several nonquick procedures. setup_data_segments internal procedure shares stack frame of external procedure recover_volume_log. attach 107 internal procedure is called by several nonquick procedures. delete_make_and_move 158 internal procedure enables or reverts conditions. on unit on line 371 64 on unit validate_all_vologs internal procedure shares stack frame of external procedure recover_volume_log. resynch_volume internal procedure shares stack frame of internal procedure check_input_error. skip_chars internal procedure shares stack frame of external procedure recover_volume_log. check_input_error 146 internal procedure calls itself recursively. read_volume_record internal procedure shares stack frame of external procedure recover_volume_log. read 88 internal procedure is called by several nonquick procedures. wdir_ 114 internal procedure is called by several nonquick procedures. time_string internal procedure shares stack frame of internal procedure finish_. finish_ 198 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_input_error 000106 i all_vologs_found finish_ 000106 string time_string not_all_abandoned 000100 i not_all_abandoned read 000100 Nassign_chars read 000101 Nread_chars read 000102 end_of_record read 000104 tape_check1 read 000106 tape_check2 read recover_volume_log 000100 att_desc recover_volume_log 000200 input_volume_desc recover_volume_log 000300 ac recover_volume_log 000301 argl recover_volume_log 000302 enl recover_volume_log 000303 itype recover_volume_log 000304 nargs recover_volume_log 000305 words_skipped recover_volume_log 000306 i recover_volume_log 000307 pvindex recover_volume_log 000310 char_read recover_volume_log 000311 read_char recover_volume_log 000312 recovery_dir recover_volume_log 000364 temp_dir recover_volume_log 000436 argp recover_volume_log 000440 iocbp recover_volume_log 000442 debug recover_volume_log 000443 wd_specified recover_volume_log 000444 new_tape recover_volume_log 000445 first_input_volume recover_volume_log 000446 ok_to_abc recover_volume_log 000447 resynching recover_volume_log 000450 delimited recover_volume_log 000451 irpvpvid recover_volume_log 000452 irpvlvid recover_volume_log 000453 time recover_volume_log 000454 pattern_match_label recover_volume_log 000460 ilvname recover_volume_log 000470 volname recover_volume_log 000500 var_volname recover_volume_log 000511 code recover_volume_log 000512 ignore recover_volume_log 000514 objectp recover_volume_log 000516 input_buffer_ptr recover_volume_log 000520 input_buffer_start recover_volume_log 000521 input_buffer_len recover_volume_log 000522 old_256K_switch recover_volume_log 000524 tp recover_volume_log 000532 rvlp recover_volume_log 000534 maxpvs recover_volume_log 000544 bvlp recover_volume_log 000546 recordp recover_volume_log 000550 query_info recover_volume_log 000604 i validate_all_vologs 000605 mismatch validate_all_vologs wdir_ 000100 wdir wdir_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 tra_ext_2 enable_op shorten_stack ext_entry int_entry int_entry_desc set_chars_eis index_chars_eis alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ command_query_ cu_$arg_count cu_$arg_ptr date_time_$fstime get_group_id_ get_pdir_ get_temp_segments_ hcs_$delentry_file hcs_$delentry_seg hcs_$fs_move_seg hcs_$fs_search_get_wdir hcs_$level_get hcs_$make_seg hcs_$set_256K_switch hcs_$set_max_length_seg hcs_$terminate_noname hcs_$truncate_seg hphcs_$delentry_file ioa_ ioa_$rsnnl iox_$attach_ioname iox_$close iox_$detach_iocb iox_$get_chars iox_$open iox_$position mdc_$pvname_info release_temp_segments_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$data_loss error_table_$device_end error_table_$end_of_info error_table_$entlong error_table_$namedup error_table_$noentry error_table_$segknown sys_info$max_seg_size sys_info$seg_size_256K CONSTANTS 005524 aa 000002000000 005525 aa 000000000000 005526 aa 600000000041 005527 aa 000164000000 005530 aa 000002000000 005531 aa 000000000000 005532 aa 600000000041 005533 aa 000625000000 005534 aa 773777777777 005535 aa 767777777777 005536 aa 757777777777 005537 aa 637777777777 005540 aa 577777777777 005541 aa 377777777777 000000 aa 107463422532 000001 aa 512556146073 000002 aa 670314355245 000003 aa 162 145 143 157 reco 000004 aa 166 145 162 137 ver_ 000005 aa 166 157 154 165 volu 000006 aa 155 145 137 154 me_l 000007 aa 157 147 040 040 og 000010 aa 040 040 040 040 000011 aa 040 040 040 040 000012 aa 040 040 040 040 000013 aa 076 144 141 145 >dae 000014 aa 155 157 156 137 mon_ 000015 aa 144 151 162 137 dir_ 000016 aa 144 151 162 076 dir> 000017 aa 166 157 154 165 volu 000020 aa 155 145 137 142 me_b 000021 aa 141 143 153 165 acku 000022 aa 160 040 040 040 p 000023 aa 040 040 040 040 000024 aa 040 040 040 040 000025 aa 040 040 040 040 000026 aa 040 040 040 040 000027 aa 040 040 040 040 000030 aa 040 040 040 040 000031 aa 040 040 040 040 000032 aa 040 040 040 040 000033 aa 040 040 040 040 000034 aa 040 040 040 040 000035 aa 040 040 040 040 000036 aa 040 040 040 040 000037 aa 040 040 040 040 000040 aa 040 040 040 040 000041 aa 040 040 040 040 000042 aa 040 040 040 040 000043 aa 040 040 040 040 000044 aa 040 040 040 040 000045 aa 040 040 040 040 000046 aa 040 040 040 040 000047 aa 040 040 040 040 000050 aa 040 040 040 040 000051 aa 040 040 040 040 000052 aa 040 040 040 040 000053 aa 040 040 040 040 000054 aa 040 040 040 040 000055 aa 040 040 040 040 000056 aa 040 040 040 040 000057 aa 040 040 040 040 000060 aa 040 040 040 040 000061 aa 040 040 040 040 000062 aa 040 040 040 040 000063 aa 040 040 040 040 000064 aa 040 040 040 040 000065 aa 524000000121 000066 aa 514000000044 000067 aa 404000000025 000070 aa 524000000026 000071 aa 524000000025 000072 aa 524000000036 000073 aa 524000000030 000074 aa 000003641100 000075 aa 524000000052 005542 aa 777777777777 000076 aa 524000000120 000077 aa 524000000000 000100 aa 524000000073 000101 aa 526077777777 000102 aa 524000000061 000103 aa 524000000014 000104 aa 524000000031 000105 aa 526000000400 005543 aa 056 000 000 000 . 000106 aa 514000000001 000107 aa 524000000103 000110 aa 530000000040 000111 aa 524000000054 000112 aa 524000000076 000113 aa 516000000044 000114 aa 524000000003 000115 aa 162 160 166 000 rpv 000116 aa 464000000000 000117 aa 524000000104 000120 aa 524000000005 000121 aa 524000000040 000122 aa 524000000027 000123 aa 524000000032 000124 aa 526000000000 000125 aa 524000000002 005544 aa 055 000 000 000 - 000126 aa 055 167 144 000 -wd 000127 aa 524000000042 000130 aa 404000000043 000131 aa 524000000134 000132 aa 404000000005 000133 aa 000000000003 000134 aa 526000000030 000135 aa 524000000250 000136 aa 516000000001 000137 aa 404000000021 000140 aa 526000000250 000141 aa 526000000040 000142 aa 000000000001 000144 aa 040 040 040 040 000145 aa 040 040 040 040 000146 aa 000000000000 000147 aa 000000000000 000150 aa 166 157 154 157 volo 000151 aa 147 000 000 000 g 000152 aa 136 141 056 136 ^a.^ 000153 aa 141 000 000 000 a 000154 aa 077777000043 000155 aa 000001000000 000156 aa 143 154 145 141 clea 000157 aa 156 165 160 000 nup 000160 aa 151 156 160 165 inpu 000161 aa 164 137 166 157 t_vo 000162 aa 154 165 155 145 lume 000163 aa 055 167 157 162 -wor 000164 aa 153 151 156 147 king 000165 aa 137 144 151 162 _dir 000166 aa 464100000000 000167 aa 000000000001 000170 aa 000000000003 000171 aa 000000000002 000172 aa 154 151 156 153 link 000173 aa 141 147 145 137 age_ 000174 aa 145 162 162 157 erro 000175 aa 162 000 000 000 r 000176 aa 055 151 156 160 -inp 000177 aa 165 164 137 166 ut_v 000200 aa 157 154 165 155 olum 000201 aa 145 137 144 145 e_de 000202 aa 163 143 000 000 sc 000203 aa 111 156 151 164 Init 000204 aa 151 141 154 151 iali 000205 aa 172 145 162 056 zer. 000206 aa 123 171 163 104 SysD 000207 aa 141 145 155 157 aemo 000210 aa 156 056 172 000 n.z 000211 aa 136 141 072 040 ^a: 000212 aa 122 145 163 171 Resy 000213 aa 156 143 150 151 nchi 000214 aa 156 147 040 163 ng s 000215 aa 164 141 162 164 tart 000216 aa 145 144 000 000 ed 000217 aa 122 145 141 144 Read 000220 aa 040 144 151 144 did 000221 aa 040 156 157 164 not 000222 aa 040 143 157 155 com 000223 aa 160 154 145 164 plet 000224 aa 145 000 000 000 e 000225 aa 122 145 163 171 Resy 000226 aa 156 143 150 162 nchr 000227 aa 157 156 151 172 oniz 000230 aa 141 164 151 157 atio 000231 aa 156 040 146 141 n fa 000232 aa 151 154 145 144 iled 000233 aa 125 156 141 142 Unab 000234 aa 154 145 040 164 le t 000235 aa 157 040 147 145 o ge 000236 aa 164 040 164 145 t te 000237 aa 155 160 040 163 mp s 000240 aa 145 147 163 000 egs 000241 aa 111 156 166 141 Inva 000242 aa 154 151 144 040 lid 000243 aa 166 157 154 165 volu 000244 aa 155 145 040 154 me l 000245 aa 157 147 040 166 og v 000246 aa 145 162 163 151 ersi 000247 aa 157 156 000 000 on 000250 aa 111 156 166 141 Inva 000251 aa 154 151 144 040 lid 000252 aa 144 165 155 160 dump 000253 aa 040 162 145 143 rec 000254 aa 157 162 144 040 ord 000255 aa 150 145 141 144 head 000256 aa 145 162 000 000 er 000257 aa 111 156 143 157 Inco 000260 aa 155 160 154 145 mple 000261 aa 164 145 040 157 te o 000262 aa 142 152 145 143 bjec 000263 aa 164 040 144 145 t de 000264 aa 164 145 143 164 tect 000265 aa 145 144 000 000 ed 000266 aa 105 162 162 157 Erro 000267 aa 162 040 157 160 r op 000270 aa 145 156 151 156 enin 000271 aa 147 040 151 156 g in 000272 aa 160 165 164 040 put 000273 aa 166 157 154 165 volu 000274 aa 155 145 000 000 me 000275 aa 164 141 160 145 tape 000276 aa 137 155 165 154 _mul 000277 aa 164 137 040 136 t_ ^ 000300 aa 141 040 136 133 a ^[ 000301 aa 055 163 171 163 -sys 000302 aa 164 145 155 136 tem^ 000303 aa 135 000 000 000 ] 000304 aa 116 157 040 160 No p 000305 aa 166 156 141 155 vnam 000306 aa 145 163 040 167 es w 000307 aa 145 162 145 040 ere 000310 aa 163 160 145 143 spec 000311 aa 151 146 151 145 ifie 000312 aa 144 056 000 000 d. 000313 aa 111 057 117 040 I/O 000314 aa 145 162 162 157 erro 000315 aa 162 040 162 145 r re 000316 aa 141 144 151 156 adin 000317 aa 147 040 151 156 g in 000320 aa 160 165 164 040 put 000321 aa 166 157 154 165 volu 000322 aa 155 145 000 000 me 000323 aa 105 162 162 157 Erro 000324 aa 162 040 167 150 r wh 000325 aa 151 154 145 040 ile 000326 aa 162 145 141 144 read 000327 aa 151 156 147 040 ing 000330 aa 151 156 160 165 inpu 000331 aa 164 040 166 157 t vo 000332 aa 154 165 155 145 lume 000333 aa 125 156 141 142 Unab 000334 aa 154 145 040 164 le t 000335 aa 157 040 141 143 o ac 000336 aa 143 145 163 163 cess 000337 aa 040 151 156 160 inp 000340 aa 165 164 040 166 ut v 000341 aa 157 154 165 155 olum 000342 aa 145 040 144 145 e de 000343 aa 163 143 000 000 sc 000344 aa 123 171 156 143 Sync 000345 aa 150 162 157 156 hron 000346 aa 151 172 141 164 izat 000347 aa 151 157 156 040 ion 000350 aa 143 157 155 160 comp 000351 aa 154 145 164 145 lete 000352 aa 144 040 136 144 d ^d 000353 aa 040 167 157 162 wor 000354 aa 144 163 040 163 ds s 000355 aa 153 151 160 160 kipp 000356 aa 145 144 000 000 ed 000357 aa 101 154 154 040 All 000360 aa 166 157 154 165 volu 000361 aa 155 145 040 154 me l 000362 aa 157 147 163 040 ogs 000363 aa 155 165 163 164 must 000364 aa 040 142 145 154 bel 000365 aa 157 156 147 040 ong 000366 aa 164 157 040 164 to t 000367 aa 150 145 040 163 he s 000370 aa 141 155 145 040 ame 000371 aa 122 120 126 056 RPV. 000372 aa 125 156 141 142 Unab 000373 aa 154 145 040 164 le t 000374 aa 157 040 141 164 o at 000375 aa 164 141 143 150 tach 000376 aa 040 151 156 160 inp 000377 aa 165 164 040 166 ut v 000400 aa 157 154 165 155 olum 000401 aa 145 040 167 151 e wi 000402 aa 164 150 040 141 th a 000403 aa 164 164 141 143 ttac 000404 aa 150 040 144 145 h de 000405 aa 163 143 040 136 sc ^ 000406 aa 141 000 000 000 a 000407 aa 125 156 141 142 Unab 000410 aa 154 145 040 164 le t 000411 aa 157 040 144 145 o de 000412 aa 154 145 164 145 lete 000413 aa 040 040 136 141 ^a 000414 aa 076 136 141 056 >^a. 000415 aa 040 122 145 143 Rec 000416 aa 157 166 145 162 over 000417 aa 171 040 146 157 y fo 000420 aa 162 040 151 164 r it 000421 aa 040 167 151 154 wil 000422 aa 154 040 142 145 l be 000423 aa 040 141 142 141 aba 000424 aa 156 144 157 156 ndon 000425 aa 145 144 056 000 ed. 000426 aa 111 156 166 141 Inva 000427 aa 154 151 144 040 lid 000430 aa 141 164 164 145 atte 000431 aa 155 160 164 040 mpt 000432 aa 164 157 040 162 to r 000433 aa 145 143 157 166 ecov 000434 aa 145 162 040 141 er a 000435 aa 040 047 163 164 'st 000436 aa 162 141 156 147 rang 000437 aa 145 162 047 040 er' 000440 aa 166 157 154 165 volu 000441 aa 155 145 040 154 me l 000442 aa 157 147 056 040 og. 000443 aa 125 163 145 040 Use 000444 aa 042 055 167 144 "-wd 000445 aa 042 056 000 000 ". 000446 aa 125 156 141 142 Unab 000447 aa 154 145 040 164 le t 000450 aa 157 040 143 162 o cr 000451 aa 145 141 164 145 eate 000452 aa 040 166 157 154 vol 000453 aa 157 147 040 163 og s 000454 aa 145 147 040 136 eg ^ 000455 aa 141 076 136 141 a>^a 000456 aa 056 040 122 145 . Re 000457 aa 143 157 166 145 cove 000460 aa 162 171 040 146 ry f 000461 aa 157 162 040 151 or i 000462 aa 164 040 167 151 t wi 000463 aa 154 154 040 142 ll b 000464 aa 145 040 141 142 e ab 000465 aa 141 156 144 157 ando 000466 aa 156 145 144 056 ned. 000467 aa 124 171 160 145 Type 000470 aa 040 136 133 156 ^[n 000471 aa 145 170 164 040 ext 000472 aa 136 073 136 163 ^;^s 000473 aa 136 135 155 157 ^]mo 000474 aa 163 164 040 162 st r 000475 aa 145 143 145 156 ecen 000476 aa 164 040 144 165 t du 000477 aa 155 160 040 166 mp v 000500 aa 157 154 165 155 olum 000501 aa 145 040 156 141 e na 000502 aa 155 145 040 050 me ( 000503 aa 124 171 160 145 Type 000504 aa 040 042 056 042 "." 000505 aa 040 164 157 040 to 000506 aa 161 165 151 164 quit 000507 aa 051 072 040 000 ): 000510 aa 105 162 162 157 Erro 000511 aa 162 040 143 162 r cr 000512 aa 145 141 164 151 eati 000513 aa 156 147 040 166 ng v 000514 aa 157 154 157 147 olog 000515 aa 040 156 141 155 nam 000516 aa 145 040 146 157 e fo 000517 aa 162 040 136 141 r ^a 000520 aa 056 040 122 145 . Re 000521 aa 143 157 166 145 cove 000522 aa 162 171 040 146 ry f 000523 aa 157 162 040 151 or i 000524 aa 164 040 167 151 t wi 000525 aa 154 154 040 142 ll b 000526 aa 145 040 141 142 e ab 000527 aa 141 156 144 157 ando 000530 aa 156 145 144 056 ned. 000531 aa 125 156 141 142 Unab 000532 aa 154 145 040 164 le t 000533 aa 157 040 155 157 o mo 000534 aa 166 145 040 166 ve v 000535 aa 157 154 157 147 olog 000536 aa 040 146 162 157 fro 000537 aa 155 040 164 145 m te 000540 aa 155 160 040 163 mp s 000541 aa 145 147 040 164 eg t 000542 aa 157 040 164 141 o ta 000543 aa 162 147 145 164 rget 000544 aa 056 040 122 145 . Re 000545 aa 143 157 166 145 cove 000546 aa 162 171 040 146 ry f 000547 aa 157 162 040 151 or i 000550 aa 164 040 167 151 t wi 000551 aa 154 154 040 142 ll b 000552 aa 145 040 141 142 e ab 000553 aa 141 156 144 157 ando 000554 aa 156 145 144 056 ned. 000555 aa 126 157 154 165 Volu 000556 aa 155 145 040 154 me l 000557 aa 157 147 040 136 og ^ 000560 aa 141 040 136 133 a ^[ 000561 aa 162 145 143 157 reco 000562 aa 166 145 162 145 vere 000563 aa 144 040 146 162 d fr 000564 aa 157 155 040 164 om t 000565 aa 141 160 145 040 ape 000566 aa 166 157 154 165 volu 000567 aa 155 145 040 136 me ^ 000570 aa 141 054 040 144 a, d 000571 aa 165 155 160 040 ump 000572 aa 164 151 155 145 time 000573 aa 040 136 141 136 ^a^ 000574 aa 073 156 157 164 ;not 000575 aa 040 162 145 143 rec 000576 aa 157 166 145 162 over 000577 aa 145 144 136 163 ed^s 000600 aa 136 163 040 136 ^s ^ 000601 aa 135 000 000 000 ] 000602 aa 040 125 123 101 USA 000603 aa 107 105 072 040 GE: 000604 aa 136 141 040 160 ^a p 000605 aa 166 156 141 155 vnam 000606 aa 145 163 040 133 es [ 000607 aa 055 151 156 160 -inp 000610 aa 165 164 137 166 ut_v 000611 aa 157 154 165 155 olum 000612 aa 145 137 144 145 e_de 000613 aa 163 143 040 042 sc " 000614 aa 141 154 164 145 alte 000615 aa 162 156 141 164 rnat 000616 aa 145 040 141 164 e at 000617 aa 164 141 143 150 tach 000620 aa 040 144 145 143 dec 000621 aa 163 143 162 151 scri 000622 aa 160 164 151 157 ptio 000623 aa 156 042 135 040 n"] 000624 aa 133 055 167 157 [-wo 000625 aa 162 153 151 156 rkin 000626 aa 147 137 144 151 g_di 000627 aa 162 040 174 040 r | 000630 aa 055 167 144 135 -wd] BEGIN PROCEDURE recover_volume_log ENTRY TO recover_volume_log STATEMENT 1 ON LINE 16 recover_volume_log: proc; 000631 da 000436200000 000632 aa 001100 6270 00 eax7 576 000633 aa 7 00034 3521 20 epp2 pr7|28,* 000634 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000635 aa 000000000000 000636 aa 000000000000 STATEMENT 1 ON LINE 7 OF FILE 8 000637 aa 6 00552 4501 00 stz pr6|362 query_info.status_code 000640 aa 6 00553 4501 00 stz pr6|363 query_info.query_code 000641 aa 777313 2370 04 ldaq -309,ic 000154 = 077777000043 000001000000 000642 aa 6 00554 7571 00 staq pr6|364 query_info.question_iocbp 000643 aa 6 00556 7571 00 staq pr6|366 query_info.answer_iocbp 000644 aa 777302 2370 04 ldaq -318,ic 000146 = 000000000000 000000000000 000645 aa 6 00560 7571 00 staq pr6|368 query_info.repeat_time 000646 aa 777306 2370 04 ldaq -314,ic 000154 = 077777000043 000001000000 000647 aa 6 00562 7571 00 staq pr6|370 query_info.explanation_ptr 000650 aa 6 00564 4501 00 stz pr6|372 query_info.explanation_len 000651 aa 004670 2350 04 lda 2488,ic 005541 = 377777777777 000652 aa 6 00551 3551 00 ansa pr6|361 query_info.yes_or_no_sw 000653 aa 004665 2350 04 lda 2485,ic 005540 = 577777777777 000654 aa 6 00551 3551 00 ansa pr6|361 query_info.suppress_name_sw 000655 aa 004662 2350 04 lda 2482,ic 005537 = 637777777777 000656 aa 6 00551 3551 00 ansa pr6|361 query_info.cp_escape_control 000657 aa 004657 2350 04 lda 2479,ic 005536 = 757777777777 000660 aa 6 00551 3551 00 ansa pr6|361 query_info.suppress_spacing 000661 aa 004654 2350 04 lda 2476,ic 005535 = 767777777777 000662 aa 6 00551 3551 00 ansa pr6|361 query_info.literal_sw 000663 aa 004651 2350 04 lda 2473,ic 005534 = 773777777777 000664 aa 6 00551 3551 00 ansa pr6|361 query_info.prompt_after_explanation 000665 aa 774000 2350 03 lda 260096,du 000666 aa 6 00551 3551 00 ansa pr6|361 query_info.padding STATEMENT 1 ON LINE 133 temp_dir = get_pdir_ (); 000667 aa 6 00364 3521 00 epp2 pr6|244 temp_dir 000670 aa 6 00630 2521 00 spri2 pr6|408 000671 aa 6 00626 6211 00 eax1 pr6|406 000672 aa 004000 4310 07 fld 2048,dl 000673 la 4 00044 3521 20 epp2 pr4|36,* get_pdir_ 000674 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 134 recovery_dir = DEFAULT_RECOVERY_DIR; 000675 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000676 aa 777116 00 0250 desc9a -434,168 000013 = 076144141145 000677 aa 6 00312 00 0250 desc9a pr6|202,168 recovery_dir STATEMENT 1 ON LINE 135 debug, resynching, time, ok_to_abc = "0"b; 000700 aa 6 00442 4501 00 stz pr6|290 debug 000701 aa 6 00447 4501 00 stz pr6|295 resynching 000702 aa 6 00453 4501 00 stz pr6|299 time 000703 aa 6 00446 4501 00 stz pr6|294 ok_to_abc STATEMENT 1 ON LINE 136 first_input_volume = "1"b; 000704 aa 400000 2350 03 lda 131072,du 000705 aa 6 00445 7551 00 sta pr6|293 first_input_volume STATEMENT 1 ON LINE 137 input_volume_desc = ""; 000706 aa 040 100 100 400 mlr (),(pr),fill(040) 000707 aa 000000 00 0000 desc9a 0,0 000710 aa 6 00200 00 0400 desc9a pr6|128,256 input_volume_desc STATEMENT 1 ON LINE 138 old_256K_switch = ""b; 000711 aa 6 00522 4501 00 stz pr6|338 old_256K_switch STATEMENT 1 ON LINE 139 tp (*) = null; 000712 aa 000001 2360 07 ldq 1,dl 000713 aa 6 00565 7561 00 stq pr6|373 000714 aa 6 00565 2361 00 ldq pr6|373 000715 aa 000001 7360 00 qls 1 000716 aa 000000 6270 06 eax7 0,ql 000717 aa 777235 2370 04 ldaq -355,ic 000154 = 077777000043 000001000000 000720 aa 6 00522 7571 17 staq pr6|338,7 tp 000721 aa 6 00565 2361 00 ldq pr6|373 000722 aa 6 00565 0541 00 aos pr6|373 000723 aa 000003 1160 07 cmpq 3,dl 000724 aa 777770 6040 04 tmi -8,ic 000714 STATEMENT 1 ON LINE 140 bvlp, iocbp, rvlp = null (); 000725 aa 777227 3734 24 epp7 -361,ic* 000726 aa 6 00544 6535 00 spri7 pr6|356 bvlp 000727 aa 6 00440 6535 00 spri7 pr6|288 iocbp 000730 aa 6 00532 6535 00 spri7 pr6|346 rvlp STATEMENT 1 ON LINE 141 code, maxpvs = 0; 000731 aa 6 00511 4501 00 stz pr6|329 code 000732 aa 6 00534 4501 00 stz pr6|348 maxpvs STATEMENT 1 ON LINE 142 query_info.version = query_info_version_6; 000733 aa 000006 2360 07 ldq 6,dl 000734 aa 6 00550 7561 00 stq pr6|360 query_info.version STATEMENT 1 ON LINE 143 on cleanup call finish_; 000735 aa 000007 7260 07 lxl6 7,dl 000736 aa 777220 3520 04 epp2 -368,ic 000156 = 143154145141 000737 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 000740 aa 000004 7100 04 tra 4,ic 000744 000741 aa 000536000000 000742 aa 000015 7100 04 tra 13,ic 000757 BEGIN CONDITION cleanup.1 ENTRY TO cleanup.1 STATEMENT 1 ON LINE 143 on cleanup call finish_; 000743 da 000444200000 000744 aa 000100 6270 00 eax7 64 000745 aa 7 00034 3521 20 epp2 pr7|28,* 000746 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000747 aa 000000000000 000750 aa 000000000000 000751 aa 000001 7270 07 lxl7 1,dl 000752 aa 6 00056 6211 00 eax1 pr6|46 000753 aa 000000 4310 07 fld 0,dl 000754 aa 004102 3520 04 epp2 2114,ic 005056 = 000320627000 000755 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 000756 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION cleanup.1 STATEMENT 1 ON LINE 144 call cu_$arg_count (nargs, code); 000757 aa 6 00304 3521 00 epp2 pr6|196 nargs 000760 aa 6 00636 2521 00 spri2 pr6|414 000761 aa 6 00511 3521 00 epp2 pr6|329 code 000762 aa 6 00640 2521 00 spri2 pr6|416 000763 aa 6 00634 6211 00 eax1 pr6|412 000764 aa 010000 4310 07 fld 4096,dl 000765 aa 6 00044 3701 20 epp4 pr6|36,* 000766 la 4 00054 3521 20 epp2 pr4|44,* cu_$arg_count 000767 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 145 if nargs <= 0 then do; 000770 aa 6 00304 2361 00 ldq pr6|196 nargs 000771 aa 000032 6054 04 tpnz 26,ic 001023 STATEMENT 1 ON LINE 146 argerr: call com_err_ (0, myname, " USAGE: ^a pvnames [-input_volume_desc ""alternate attach decscription""] [-working_dir | -wd]", myname); 000772 aa 6 00625 4501 00 stz pr6|405 000773 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000774 aa 777607 00 0134 desc9a -121,92 000602 = 040125123101 000775 aa 6 00642 00 0134 desc9a pr6|418,92 000776 aa 6 00625 3521 00 epp2 pr6|405 000777 aa 6 00674 2521 00 spri2 pr6|444 001000 aa 777003 3520 04 epp2 -509,ic 000003 = 162145143157 001001 aa 6 00676 2521 00 spri2 pr6|446 001002 aa 6 00642 3521 00 epp2 pr6|418 001003 aa 6 00700 2521 00 spri2 pr6|448 001004 aa 776777 3520 04 epp2 -513,ic 000003 = 162145143157 001005 aa 6 00702 2521 00 spri2 pr6|450 001006 aa 777124 3520 04 epp2 -428,ic 000132 = 404000000005 001007 aa 6 00704 2521 00 spri2 pr6|452 001010 aa 777131 3520 04 epp2 -423,ic 000141 = 526000000040 001011 aa 6 00706 2521 00 spri2 pr6|454 001012 aa 6 00712 2521 00 spri2 pr6|458 001013 aa 777116 3520 04 epp2 -434,ic 000131 = 524000000134 001014 aa 6 00710 2521 00 spri2 pr6|456 001015 aa 6 00672 6211 00 eax1 pr6|442 001016 aa 020000 4310 07 fld 8192,dl 001017 aa 6 00044 3701 20 epp4 pr6|36,* 001020 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001021 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 149 return; 001022 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 150 end; STATEMENT 1 ON LINE 151 do ac = 1 to nargs; 001023 aa 6 00566 7561 00 stq pr6|374 001024 aa 000001 2360 07 ldq 1,dl 001025 aa 6 00300 7561 00 stq pr6|192 ac 001026 aa 6 00300 2361 00 ldq pr6|192 ac 001027 aa 6 00566 1161 00 cmpq pr6|374 001030 aa 000262 6054 04 tpnz 178,ic 001312 STATEMENT 1 ON LINE 152 call cu_$arg_ptr (ac, argp, argl, code); 001031 aa 6 00300 3521 00 epp2 pr6|192 ac 001032 aa 6 00674 2521 00 spri2 pr6|444 001033 aa 6 00436 3521 00 epp2 pr6|286 argp 001034 aa 6 00676 2521 00 spri2 pr6|446 001035 aa 6 00301 3521 00 epp2 pr6|193 argl 001036 aa 6 00700 2521 00 spri2 pr6|448 001037 aa 6 00511 3521 00 epp2 pr6|329 code 001040 aa 6 00702 2521 00 spri2 pr6|450 001041 aa 6 00672 6211 00 eax1 pr6|442 001042 aa 020000 4310 07 fld 8192,dl 001043 aa 6 00044 3701 20 epp4 pr6|36,* 001044 la 4 00060 3521 20 epp2 pr4|48,* cu_$arg_ptr 001045 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 153 if code ^= 0 then do; 001046 aa 6 00511 2361 00 ldq pr6|329 code 001047 aa 000017 6000 04 tze 15,ic 001066 STATEMENT 1 ON LINE 154 call com_err_ (code, myname); 001050 aa 6 00511 3521 00 epp2 pr6|329 code 001051 aa 6 00674 2521 00 spri2 pr6|444 001052 aa 776731 3520 04 epp2 -551,ic 000003 = 162145143157 001053 aa 6 00676 2521 00 spri2 pr6|446 001054 aa 777054 3520 04 epp2 -468,ic 000130 = 404000000043 001055 aa 6 00700 2521 00 spri2 pr6|448 001056 aa 777063 3520 04 epp2 -461,ic 000141 = 526000000040 001057 aa 6 00702 2521 00 spri2 pr6|450 001060 aa 6 00672 6211 00 eax1 pr6|442 001061 aa 010000 4310 07 fld 4096,dl 001062 aa 6 00044 3701 20 epp4 pr6|36,* 001063 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001064 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 155 goto finish; 001065 aa 000742 7100 04 tra 482,ic 002027 STATEMENT 1 ON LINE 156 end; STATEMENT 1 ON LINE 158 if arg = "-input_volume_desc" then do; 001066 aa 6 00436 3735 20 epp7 pr6|286,* argp 001067 aa 6 00301 7271 00 lxl7 pr6|193 argl 001070 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 001071 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 001072 aa 777106 00 0022 desc9a -442,18 000176 = 055151156160 001073 aa 000054 6010 04 tnz 44,ic 001147 STATEMENT 1 ON LINE 159 ac = ac + 1; 001074 aa 6 00300 0541 00 aos pr6|192 ac STATEMENT 1 ON LINE 160 call cu_$arg_ptr (ac, argp, argl, code); 001075 aa 6 00300 3521 00 epp2 pr6|192 ac 001076 aa 6 00674 2521 00 spri2 pr6|444 001077 aa 6 00436 3521 00 epp2 pr6|286 argp 001100 aa 6 00676 2521 00 spri2 pr6|446 001101 aa 6 00301 3521 00 epp2 pr6|193 argl 001102 aa 6 00700 2521 00 spri2 pr6|448 001103 aa 6 00511 3521 00 epp2 pr6|329 code 001104 aa 6 00702 2521 00 spri2 pr6|450 001105 aa 6 00672 6211 00 eax1 pr6|442 001106 aa 020000 4310 07 fld 8192,dl 001107 aa 6 00044 3701 20 epp4 pr6|36,* 001110 la 4 00060 3521 20 epp2 pr4|48,* cu_$arg_ptr 001111 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 161 if code ^= 0 then do; 001112 aa 6 00511 2361 00 ldq pr6|329 code 001113 aa 000026 6000 04 tze 22,ic 001141 STATEMENT 1 ON LINE 162 call com_err_ (code, myname, "Unable to access input volume desc"); 001114 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001115 aa 777217 00 0044 desc9a -369,36 000333 = 125156141142 001116 aa 6 00672 00 0044 desc9a pr6|442,36 001117 aa 6 00511 3521 00 epp2 pr6|329 code 001120 aa 6 00644 2521 00 spri2 pr6|420 001121 aa 776662 3520 04 epp2 -590,ic 000003 = 162145143157 001122 aa 6 00646 2521 00 spri2 pr6|422 001123 aa 6 00672 3521 00 epp2 pr6|442 001124 aa 6 00650 2521 00 spri2 pr6|424 001125 aa 777003 3520 04 epp2 -509,ic 000130 = 404000000043 001126 aa 6 00652 2521 00 spri2 pr6|426 001127 aa 777012 3520 04 epp2 -502,ic 000141 = 526000000040 001130 aa 6 00654 2521 00 spri2 pr6|428 001131 aa 776776 3520 04 epp2 -514,ic 000127 = 524000000042 001132 aa 6 00656 2521 00 spri2 pr6|430 001133 aa 6 00642 6211 00 eax1 pr6|418 001134 aa 014000 4310 07 fld 6144,dl 001135 aa 6 00044 3701 20 epp4 pr6|36,* 001136 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001137 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 163 goto finish; 001140 aa 000667 7100 04 tra 439,ic 002027 STATEMENT 1 ON LINE 164 end; STATEMENT 1 ON LINE 165 input_volume_desc = arg; 001141 aa 6 00436 3735 20 epp7 pr6|286,* argp 001142 aa 6 00301 7271 00 lxl7 pr6|193 argl 001143 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001144 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 001145 aa 6 00200 00 0400 desc9a pr6|128,256 input_volume_desc STATEMENT 1 ON LINE 166 end; 001146 aa 000142 7100 04 tra 98,ic 001310 STATEMENT 1 ON LINE 167 else if arg = "-working_dir" | arg = "-wd" then do; 001147 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 001150 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 001151 aa 777014 00 0014 desc9a -500,12 000163 = 055167157162 001152 aa 000005 6000 04 tze 5,ic 001157 001153 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 001154 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 001155 aa 776753 00 0003 desc9a -533,3 000126 = 055167144000 001156 aa 000015 6010 04 tnz 13,ic 001173 STATEMENT 1 ON LINE 168 wd_specified = "1"b; 001157 aa 400000 2350 03 lda 131072,du 001160 aa 6 00443 7551 00 sta pr6|291 wd_specified STATEMENT 1 ON LINE 169 recovery_dir = wdir_ (); 001161 aa 6 00714 3521 00 epp2 pr6|460 001162 aa 6 00636 2521 00 spri2 pr6|414 001163 aa 6 00634 6211 00 eax1 pr6|412 001164 aa 004000 4310 07 fld 2048,dl 001165 aa 003610 3520 04 epp2 1928,ic 004775 = 000200627000 001166 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this 001167 aa 000 100 100 500 mlr (pr),(pr),fill(000) 001170 aa 6 00714 00 0250 desc9a pr6|460,168 001171 aa 6 00312 00 0250 desc9a pr6|202,168 recovery_dir STATEMENT 1 ON LINE 170 end; 001172 aa 000116 7100 04 tra 78,ic 001310 STATEMENT 1 ON LINE 171 else if substr (arg, 1, 1) = "-" then do; 001173 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 001174 aa 7 00000 00 0001 desc9a pr7|0,1 arg 001175 aa 004351 00 0001 desc9a 2281,1 005544 = 055000000000 001176 aa 000034 6010 04 tnz 28,ic 001232 STATEMENT 1 ON LINE 172 call com_err_ (error_table_$badopt, myname, "^a", arg); 001177 aa 6 00301 2361 00 ldq pr6|193 argl 001200 aa 526000 2760 03 orq 175104,du 001201 aa 6 00625 7561 00 stq pr6|405 001202 aa 136141 2350 03 lda 48225,du 001203 aa 6 00671 7551 00 sta pr6|441 001204 aa 6 00044 3701 20 epp4 pr6|36,* 001205 la 4 00026 3521 20 epp2 pr4|22,* error_table_$badopt 001206 aa 6 00674 2521 00 spri2 pr6|444 001207 aa 776574 3520 04 epp2 -644,ic 000003 = 162145143157 001210 aa 6 00676 2521 00 spri2 pr6|446 001211 aa 6 00671 3521 00 epp2 pr6|441 001212 aa 6 00700 2521 00 spri2 pr6|448 001213 aa 7 00000 3521 00 epp2 pr7|0 arg 001214 aa 6 00702 2521 00 spri2 pr6|450 001215 aa 776713 3520 04 epp2 -565,ic 000130 = 404000000043 001216 aa 6 00704 2521 00 spri2 pr6|452 001217 aa 776722 3520 04 epp2 -558,ic 000141 = 526000000040 001220 aa 6 00706 2521 00 spri2 pr6|454 001221 aa 776704 3520 04 epp2 -572,ic 000125 = 524000000002 001222 aa 6 00710 2521 00 spri2 pr6|456 001223 aa 6 00625 3521 00 epp2 pr6|405 001224 aa 6 00712 2521 00 spri2 pr6|458 001225 aa 6 00672 6211 00 eax1 pr6|442 001226 aa 020000 4310 07 fld 8192,dl 001227 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001230 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 173 goto finish; 001231 aa 000576 7100 04 tra 382,ic 002027 STATEMENT 1 ON LINE 174 end; STATEMENT 1 ON LINE 175 else do; STATEMENT 1 ON LINE 176 if rvlp = null () then do; 001232 aa 6 00532 2371 00 ldaq pr6|346 rvlp 001233 aa 776721 6770 04 eraq -559,ic 000154 = 077777000043 000001000000 001234 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001235 aa 000014 6010 04 tnz 12,ic 001251 STATEMENT 1 ON LINE 177 maxpvs = (nargs - ac) + 1; 001236 aa 6 00304 2361 00 ldq pr6|196 nargs 001237 aa 6 00300 1761 00 sbq pr6|192 ac 001240 aa 000001 0760 07 adq 1,dl 001241 aa 6 00534 7561 00 stq pr6|348 maxpvs STATEMENT 1 ON LINE 178 allocate rvl set (rvlp); 001242 aa 6 00534 2361 00 ldq pr6|348 maxpvs 001243 aa 000036 4020 07 mpy 30,dl 001244 aa 000002 0760 07 adq 2,dl 001245 aa 0 01403 7001 00 tsx0 pr0|771 alloc_storage 001246 aa 777774 7100 04 tra -4,ic 001242 001247 aa 6 00532 2521 00 spri2 pr6|346 rvlp STATEMENT 1 ON LINE 179 rvl.npvs = 0; 001250 aa 2 00000 4501 00 stz pr2|0 rvl.npvs STATEMENT 1 ON LINE 180 end; STATEMENT 1 ON LINE 182 rvl.npvs = rvl.npvs + 1; 001251 aa 6 00532 0541 20 aos pr6|346,* rvl.npvs STATEMENT 1 ON LINE 183 rvl.pvname (rvl.npvs) = arg; 001252 aa 6 00532 2361 20 ldq pr6|346,* rvl.npvs 001253 aa 000036 4020 07 mpy 30,dl 001254 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001255 aa 7 77744 3735 06 epp7 pr7|-28,ql rvl.pvname 001256 aa 6 00436 3715 20 epp5 pr6|286,* argp 001257 aa 6 00301 7271 00 lxl7 pr6|193 argl 001260 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001261 aa 5 00000 00 0017 desc9a pr5|0,x7 arg 001262 aa 7 00000 00 0040 desc9a pr7|0,32 rvl.pvname STATEMENT 1 ON LINE 185 rvl.volname (rvl.npvs), rvl.ename (rvl.npvs) = ""; 001263 aa 6 00532 3535 20 epp3 pr6|346,* rvlp 001264 aa 3 77754 3535 06 epp3 pr3|-20,ql rvl.volname 001265 aa 040 100 100 400 mlr (),(pr),fill(040) 001266 aa 000000 00 0000 desc9a 0,0 001267 aa 3 00000 00 0040 desc9a pr3|0,32 rvl.volname 001270 aa 6 00532 3515 20 epp1 pr6|346,* rvlp 001271 aa 1 77764 3515 06 epp1 pr1|-12,ql rvl.ename 001272 aa 040 100 100 400 mlr (),(pr),fill(040) 001273 aa 000000 00 0000 desc9a 0,0 001274 aa 1 00000 00 0040 desc9a pr1|0,32 rvl.ename STATEMENT 1 ON LINE 186 rvl.temp_logp (rvl.npvs), rvl.new_logp (rvl.npvs) = null (); 001275 aa 776657 3534 24 epp3 -593,ic* 001276 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001277 aa 7 77774 2535 06 spri3 pr7|-4,ql rvl.temp_logp 001300 aa 7 77776 2535 06 spri3 pr7|-2,ql rvl.new_logp STATEMENT 1 ON LINE 187 rvl.time (rvl.npvs), rvl.flags (rvl.npvs) = "0"b; 001301 aa 7 00000 4501 06 stz pr7|0,ql rvl.time 001302 aa 004237 2350 04 lda 2207,ic 005541 = 377777777777 001303 aa 7 00001 3551 06 ansa pr7|1,ql rvl.abandoned 001304 aa 004234 2350 04 lda 2204,ic 005540 = 577777777777 001305 aa 7 00001 3551 06 ansa pr7|1,ql rvl.volog_found 001306 aa 600000 2350 03 lda 196608,du 001307 aa 7 00001 3551 06 ansa pr7|1,ql rvl.mbz STATEMENT 1 ON LINE 188 end; STATEMENT 1 ON LINE 189 end; 001310 aa 6 00300 0541 00 aos pr6|192 ac 001311 aa 777515 7100 04 tra -179,ic 001026 STATEMENT 1 ON LINE 191 if (rvlp = null ()) | (rvl.npvs = 0) then do; 001312 aa 6 00532 2371 00 ldaq pr6|346 rvlp 001313 aa 776641 6770 04 eraq -607,ic 000154 = 077777000043 000001000000 001314 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001315 aa 000003 6000 04 tze 3,ic 001320 001316 aa 6 00532 2361 20 ldq pr6|346,* rvl.npvs 001317 aa 000027 6010 04 tnz 23,ic 001346 STATEMENT 1 ON LINE 192 call com_err_ (0, myname, "No pvnames were specified."); 001320 aa 6 00625 4501 00 stz pr6|405 001321 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001322 aa 776763 00 0034 desc9a -525,28 000304 = 116157040160 001323 aa 6 00672 00 0034 desc9a pr6|442,28 001324 aa 6 00625 3521 00 epp2 pr6|405 001325 aa 6 00644 2521 00 spri2 pr6|420 001326 aa 776455 3520 04 epp2 -723,ic 000003 = 162145143157 001327 aa 6 00646 2521 00 spri2 pr6|422 001330 aa 6 00672 3521 00 epp2 pr6|442 001331 aa 6 00650 2521 00 spri2 pr6|424 001332 aa 776600 3520 04 epp2 -640,ic 000132 = 404000000005 001333 aa 6 00652 2521 00 spri2 pr6|426 001334 aa 776605 3520 04 epp2 -635,ic 000141 = 526000000040 001335 aa 6 00654 2521 00 spri2 pr6|428 001336 aa 776565 3520 04 epp2 -651,ic 000123 = 524000000032 001337 aa 6 00656 2521 00 spri2 pr6|430 001340 aa 6 00642 6211 00 eax1 pr6|418 001341 aa 014000 4310 07 fld 6144,dl 001342 aa 6 00044 3701 20 epp4 pr6|36,* 001343 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001344 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 193 goto finish; 001345 aa 000462 7100 04 tra 306,ic 002027 STATEMENT 1 ON LINE 194 end; STATEMENT 1 ON LINE 196 call setup_data_segments; 001346 aa 000630 6700 04 tsp4 408,ic 002176 STATEMENT 1 ON LINE 197 if code ^= 0 then do; 001347 aa 6 00511 2361 00 ldq pr6|329 code 001350 aa 000026 6000 04 tze 22,ic 001376 STATEMENT 1 ON LINE 198 call com_err_ (code, myname, "Unable to get temp segs"); 001351 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001352 aa 776662 00 0030 desc9a -590,24 000233 = 125156141142 001353 aa 6 00634 00 0030 desc9a pr6|412,24 001354 aa 6 00511 3521 00 epp2 pr6|329 code 001355 aa 6 00674 2521 00 spri2 pr6|444 001356 aa 776425 3520 04 epp2 -747,ic 000003 = 162145143157 001357 aa 6 00676 2521 00 spri2 pr6|446 001360 aa 6 00634 3521 00 epp2 pr6|412 001361 aa 6 00700 2521 00 spri2 pr6|448 001362 aa 776546 3520 04 epp2 -666,ic 000130 = 404000000043 001363 aa 6 00702 2521 00 spri2 pr6|450 001364 aa 776555 3520 04 epp2 -659,ic 000141 = 526000000040 001365 aa 6 00704 2521 00 spri2 pr6|452 001366 aa 776534 3520 04 epp2 -676,ic 000122 = 524000000027 001367 aa 6 00706 2521 00 spri2 pr6|454 001370 aa 6 00672 6211 00 eax1 pr6|442 001371 aa 014000 4310 07 fld 6144,dl 001372 aa 6 00044 3701 20 epp4 pr6|36,* 001373 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001374 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 199 goto finish; 001375 aa 000432 7100 04 tra 282,ic 002027 STATEMENT 1 ON LINE 200 end; STATEMENT 1 ON LINE 201 code = 0; 001376 aa 6 00511 4501 00 stz pr6|329 code STATEMENT 1 ON LINE 203 call attach; 001377 aa 6 00056 6211 00 eax1 pr6|46 001400 aa 000000 4310 07 fld 0,dl 001401 aa 000713 3520 04 epp2 459,ic 002314 = 000160627000 001402 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 209 search_loop: pvindex = 0; 001403 aa 6 00307 4501 00 stz pr6|199 pvindex STATEMENT 1 ON LINE 211 do while (pvindex = 0 & code = 0 & not_all_abandoned ()); 001404 aa 6 00625 3521 00 epp2 pr6|405 001405 aa 6 00636 2521 00 spri2 pr6|414 001406 aa 6 00634 6211 00 eax1 pr6|412 001407 aa 004000 4310 07 fld 2048,dl 001410 aa 000465 3520 04 epp2 309,ic 002075 = 000120627000 001411 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this 001412 aa 6 00625 2351 00 lda pr6|405 001413 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 001414 aa 6 00625 7551 00 sta pr6|405 001415 aa 6 00511 2361 00 ldq pr6|329 code 001416 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 001417 aa 6 00671 7551 00 sta pr6|441 001420 aa 6 00307 2361 00 ldq pr6|199 pvindex 001421 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 001422 aa 6 00671 3751 00 ana pr6|441 001423 aa 6 00625 3151 00 cana pr6|405 001424 aa 000003 6000 04 tze 3,ic 001427 STATEMENT 1 ON LINE 213 call read_volume_record; 001425 aa 002527 6700 04 tsp4 1367,ic 004154 STATEMENT 1 ON LINE 214 end; 001426 aa 777756 7100 04 tra -18,ic 001404 STATEMENT 1 ON LINE 215 if code ^= 0 then do; 001427 aa 6 00511 2361 00 ldq pr6|329 code 001430 aa 000026 6000 04 tze 22,ic 001456 STATEMENT 1 ON LINE 216 call com_err_ (code, myname, "Error while reading input volume"); 001431 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001432 aa 776672 00 0040 desc9a -582,32 000323 = 105162162157 001433 aa 6 00672 00 0040 desc9a pr6|442,32 001434 aa 6 00511 3521 00 epp2 pr6|329 code 001435 aa 6 00644 2521 00 spri2 pr6|420 001436 aa 776345 3520 04 epp2 -795,ic 000003 = 162145143157 001437 aa 6 00646 2521 00 spri2 pr6|422 001440 aa 6 00672 3521 00 epp2 pr6|442 001441 aa 6 00650 2521 00 spri2 pr6|424 001442 aa 776466 3520 04 epp2 -714,ic 000130 = 404000000043 001443 aa 6 00652 2521 00 spri2 pr6|426 001444 aa 776475 3520 04 epp2 -707,ic 000141 = 526000000040 001445 aa 6 00654 2521 00 spri2 pr6|428 001446 aa 776453 3520 04 epp2 -725,ic 000121 = 524000000040 001447 aa 6 00656 2521 00 spri2 pr6|430 001450 aa 6 00642 6211 00 eax1 pr6|418 001451 aa 014000 4310 07 fld 6144,dl 001452 aa 6 00044 3701 20 epp4 pr6|36,* 001453 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001454 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 217 goto finish; 001455 aa 000352 7100 04 tra 234,ic 002027 STATEMENT 1 ON LINE 218 end; STATEMENT 1 ON LINE 220 if pvindex ^= 0 then do; 001456 aa 6 00307 2361 00 ldq pr6|199 pvindex 001457 aa 000154 6000 04 tze 108,ic 001633 STATEMENT 1 ON LINE 221 call ioa_$rsnnl ("^a.^a", rvl.ename (pvindex), enl, rvl.pvname (pvindex), "volog"); 001460 aa 776441 2360 04 ldq -735,ic 000121 = 524000000040 001461 aa 6 00625 7561 00 stq pr6|405 001462 aa 6 00671 7561 00 stq pr6|441 001463 aa 776467 2370 04 ldaq -713,ic 000152 = 136141056136 141000000000 001464 aa 6 00632 7571 00 staq pr6|410 001465 aa 6 00307 2361 00 ldq pr6|199 pvindex 001466 aa 000036 4020 07 mpy 30,dl 001467 aa 000000 6270 06 eax7 0,ql 001470 aa 776460 2370 04 ldaq -720,ic 000150 = 166157154157 147000000000 001471 aa 6 00766 7571 00 staq pr6|502 001472 aa 6 00632 3521 00 epp2 pr6|410 001473 aa 6 00644 2521 00 spri2 pr6|420 001474 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001475 aa 7 77764 3521 17 epp2 pr7|-12,7 rvl.ename 001476 aa 6 00646 2521 00 spri2 pr6|422 001477 aa 6 00302 3521 00 epp2 pr6|194 enl 001500 aa 6 00650 2521 00 spri2 pr6|424 001501 aa 7 77744 3521 17 epp2 pr7|-28,7 rvl.pvname 001502 aa 6 00652 2521 00 spri2 pr6|426 001503 aa 6 00766 3521 00 epp2 pr6|502 001504 aa 6 00654 2521 00 spri2 pr6|428 001505 aa 776413 3520 04 epp2 -757,ic 000120 = 524000000005 001506 aa 6 00656 2521 00 spri2 pr6|430 001507 aa 6 00666 2521 00 spri2 pr6|438 001510 aa 6 00625 3521 00 epp2 pr6|405 001511 aa 6 00660 2521 00 spri2 pr6|432 001512 aa 776425 3520 04 epp2 -747,ic 000137 = 404000000021 001513 aa 6 00662 2521 00 spri2 pr6|434 001514 aa 6 00671 3521 00 epp2 pr6|441 001515 aa 6 00664 2521 00 spri2 pr6|436 001516 aa 6 00642 6211 00 eax1 pr6|418 001517 aa 024000 4310 07 fld 10240,dl 001520 aa 6 00044 3701 20 epp4 pr6|36,* 001521 la 4 00066 3521 20 epp2 pr4|54,* ioa_$rsnnl 001522 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 222 if enl > length (rvl.ename (1)) then do; 001523 aa 6 00302 2361 00 ldq pr6|194 enl 001524 aa 000040 1160 07 cmpq 32,dl 001525 aa 000046 6044 04 tmoz 38,ic 001573 STATEMENT 1 ON LINE 223 code = error_table_$entlong; 001526 aa 6 00044 3701 20 epp4 pr6|36,* 001527 la 4 00014 2361 20 ldq pr4|12,* error_table_$entlong 001530 aa 6 00511 7561 00 stq pr6|329 code STATEMENT 1 ON LINE 224 call com_err_ (code, myname, "Error creating volog name for ^a. Recovery for it will be abandoned.", rvl.pvname (pvindex)); 001531 aa 776370 2360 04 ldq -776,ic 000121 = 524000000040 001532 aa 6 00625 7561 00 stq pr6|405 001533 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001534 aa 776755 00 0104 desc9a -531,68 000510 = 105162162157 001535 aa 6 00672 00 0104 desc9a pr6|442,68 001536 aa 6 00307 2361 00 ldq pr6|199 pvindex 001537 aa 000036 4020 07 mpy 30,dl 001540 aa 6 00511 3521 00 epp2 pr6|329 code 001541 aa 6 00644 2521 00 spri2 pr6|420 001542 aa 776241 3520 04 epp2 -863,ic 000003 = 162145143157 001543 aa 6 00646 2521 00 spri2 pr6|422 001544 aa 6 00672 3521 00 epp2 pr6|442 001545 aa 6 00650 2521 00 spri2 pr6|424 001546 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001547 aa 7 77744 3521 06 epp2 pr7|-28,ql rvl.pvname 001550 aa 6 00652 2521 00 spri2 pr6|426 001551 aa 776357 3520 04 epp2 -785,ic 000130 = 404000000043 001552 aa 6 00654 2521 00 spri2 pr6|428 001553 aa 776366 3520 04 epp2 -778,ic 000141 = 526000000040 001554 aa 6 00656 2521 00 spri2 pr6|430 001555 aa 776342 3520 04 epp2 -798,ic 000117 = 524000000104 001556 aa 6 00660 2521 00 spri2 pr6|432 001557 aa 6 00625 3521 00 epp2 pr6|405 001560 aa 6 00662 2521 00 spri2 pr6|434 001561 aa 6 00642 6211 00 eax1 pr6|418 001562 aa 020000 4310 07 fld 8192,dl 001563 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001564 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 226 rvl.abandoned (pvindex) = "1"b; 001565 aa 6 00307 2361 00 ldq pr6|199 pvindex 001566 aa 000036 4020 07 mpy 30,dl 001567 aa 400000 2350 03 lda 131072,du 001570 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001571 aa 7 00001 2551 06 orsa pr7|1,ql rvl.abandoned STATEMENT 1 ON LINE 227 goto search_loop; 001572 aa 777611 7100 04 tra -119,ic 001403 STATEMENT 1 ON LINE 228 end; STATEMENT 1 ON LINE 230 call delete_make_and_move (temp_dir, bvlp, rvl.temp_logp (pvindex)); 001573 aa 464000 2360 03 ldq 157696,du 001574 aa 6 00625 7561 00 stq pr6|405 001575 aa 6 00307 2361 00 ldq pr6|199 pvindex 001576 aa 000036 4020 07 mpy 30,dl 001577 aa 6 00364 3521 00 epp2 pr6|244 temp_dir 001600 aa 6 00674 2521 00 spri2 pr6|444 001601 aa 6 00544 3521 00 epp2 pr6|356 bvlp 001602 aa 6 00676 2521 00 spri2 pr6|446 001603 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001604 aa 7 77774 3521 06 epp2 pr7|-4,ql rvl.temp_logp 001605 aa 6 00700 2521 00 spri2 pr6|448 001606 aa 776332 3520 04 epp2 -806,ic 000140 = 526000000250 001607 aa 6 00704 2521 00 spri2 pr6|452 001610 aa 776306 3520 04 epp2 -826,ic 000116 = 464000000000 001611 aa 6 00706 2521 00 spri2 pr6|454 001612 aa 6 00625 3521 00 epp2 pr6|405 001613 aa 6 00710 2521 00 spri2 pr6|456 001614 aa 6 00672 6211 00 eax1 pr6|442 001615 aa 014000 4310 07 fld 6144,dl 001616 aa 001027 3520 04 epp2 535,ic 002645 = 000240627000 001617 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 231 if rvl.abandoned (pvindex) then ; 001620 aa 6 00307 2361 00 ldq pr6|199 pvindex 001621 aa 000036 4020 07 mpy 30,dl 001622 aa 6 00625 7561 00 stq pr6|405 001623 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001624 aa 7 00001 2351 06 lda pr7|1,ql rvl.abandoned 001625 aa 400000 3150 03 cana 131072,du 001626 aa 000002 6000 04 tze 2,ic 001630 001627 aa 777554 7100 04 tra -148,ic 001403 STATEMENT 1 ON LINE 232 else rvl.volog_found (pvindex) = "1"b; 001630 aa 200000 2350 03 lda 65536,du 001631 aa 7 00001 2551 06 orsa pr7|1,ql rvl.volog_found STATEMENT 1 ON LINE 233 goto search_loop; 001632 aa 777551 7100 04 tra -151,ic 001403 STATEMENT 1 ON LINE 234 end; STATEMENT 1 ON LINE 235 finish_all_temp: if validate_all_vologs () then do; 001633 aa 003675 3520 04 epp2 1981,ic 005530 = 000002000000 001634 aa 001424 6700 04 tsp4 788,ic 003260 001635 aa 6 00625 2351 00 lda pr6|405 001636 aa 400000 3150 03 cana 131072,du 001637 aa 000143 6000 04 tze 99,ic 002002 STATEMENT 1 ON LINE 239 if ^wd_specified then do; 001640 aa 6 00443 2351 00 lda pr6|291 wd_specified 001641 aa 000073 6010 04 tnz 59,ic 001734 STATEMENT 1 ON LINE 241 call mdc_$pvname_info ("rpv", irpvpvid, ilvname, irpvlvid, itype, (0)); 001642 aa 776253 2350 04 lda -853,ic 000115 = 162160166000 001643 aa 6 00625 7551 00 sta pr6|405 001644 aa 6 00671 4501 00 stz pr6|441 001645 aa 6 00625 3521 00 epp2 pr6|405 001646 aa 6 00716 2521 00 spri2 pr6|462 001647 aa 6 00451 3521 00 epp2 pr6|297 irpvpvid 001650 aa 6 00720 2521 00 spri2 pr6|464 001651 aa 6 00460 3521 00 epp2 pr6|304 ilvname 001652 aa 6 00722 2521 00 spri2 pr6|466 001653 aa 6 00452 3521 00 epp2 pr6|298 irpvlvid 001654 aa 6 00724 2521 00 spri2 pr6|468 001655 aa 6 00303 3521 00 epp2 pr6|195 itype 001656 aa 6 00726 2521 00 spri2 pr6|470 001657 aa 6 00671 3521 00 epp2 pr6|441 001660 aa 6 00730 2521 00 spri2 pr6|472 001661 aa 776233 3520 04 epp2 -869,ic 000114 = 524000000003 001662 aa 6 00732 2521 00 spri2 pr6|474 001663 aa 776230 3520 04 epp2 -872,ic 000113 = 516000000044 001664 aa 6 00734 2521 00 spri2 pr6|476 001665 aa 6 00740 2521 00 spri2 pr6|480 001666 aa 776253 3520 04 epp2 -853,ic 000141 = 526000000040 001667 aa 6 00736 2521 00 spri2 pr6|478 001670 aa 776247 3520 04 epp2 -857,ic 000137 = 404000000021 001671 aa 6 00742 2521 00 spri2 pr6|482 001672 aa 776236 3520 04 epp2 -866,ic 000130 = 404000000043 001673 aa 6 00744 2521 00 spri2 pr6|484 001674 aa 6 00714 6211 00 eax1 pr6|460 001675 aa 030000 4310 07 fld 12288,dl 001676 aa 6 00044 3701 20 epp4 pr6|36,* 001677 la 4 00112 3521 20 epp2 pr4|74,* mdc_$pvname_info 001700 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 242 if irpvpvid ^= rvl.new_logp (1) -> backup_volume_log.info.root_pvid then do; 001701 aa 6 00451 2351 00 lda pr6|297 irpvpvid 001702 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001703 aa 7 00034 3715 20 epp5 pr7|28,* rvl.new_logp 001704 aa 5 00553 1151 00 cmpa pr5|363 backup_volume_log.root_pvid 001705 aa 000027 6000 04 tze 23,ic 001734 STATEMENT 1 ON LINE 243 call com_err_ (0, myname, "Invalid attempt to recover a 'stranger' volume log. Use ""-wd""."); 001706 aa 6 00671 4501 00 stz pr6|441 001707 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001710 aa 776517 00 0100 desc9a -689,64 000426 = 111156166141 001711 aa 6 00672 00 0100 desc9a pr6|442,64 001712 aa 6 00671 3521 00 epp2 pr6|441 001713 aa 6 00644 2521 00 spri2 pr6|420 001714 aa 776067 3520 04 epp2 -969,ic 000003 = 162145143157 001715 aa 6 00646 2521 00 spri2 pr6|422 001716 aa 6 00672 3521 00 epp2 pr6|442 001717 aa 6 00650 2521 00 spri2 pr6|424 001720 aa 776212 3520 04 epp2 -886,ic 000132 = 404000000005 001721 aa 6 00652 2521 00 spri2 pr6|426 001722 aa 776217 3520 04 epp2 -881,ic 000141 = 526000000040 001723 aa 6 00654 2521 00 spri2 pr6|428 001724 aa 776166 3520 04 epp2 -906,ic 000112 = 524000000076 001725 aa 6 00656 2521 00 spri2 pr6|430 001726 aa 6 00642 6211 00 eax1 pr6|418 001727 aa 014000 4310 07 fld 6144,dl 001730 aa 6 00044 3701 20 epp4 pr6|36,* 001731 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 001732 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 244 goto finish; 001733 aa 000074 7100 04 tra 60,ic 002027 STATEMENT 1 ON LINE 245 end; STATEMENT 1 ON LINE 246 end; STATEMENT 1 ON LINE 247 do pvindex = 1 to rvl.npvs; 001734 aa 6 00532 2361 20 ldq pr6|346,* rvl.npvs 001735 aa 6 00567 7561 00 stq pr6|375 001736 aa 000001 2360 07 ldq 1,dl 001737 aa 6 00307 7561 00 stq pr6|199 pvindex 001740 aa 6 00307 2361 00 ldq pr6|199 pvindex 001741 aa 6 00567 1161 00 cmpq pr6|375 001742 aa 000065 6054 04 tpnz 53,ic 002027 STATEMENT 1 ON LINE 248 if ((rvl.volog_found (pvindex)) & ^(rvl.abandoned (pvindex))) then call delete_make_and_move (recovery_dir, rvl.temp_logp (pvindex), rvl.new_logp (pvindex)); 001743 aa 000036 4020 07 mpy 30,dl 001744 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 001745 aa 7 00001 2351 06 lda pr7|1,ql rvl.volog_found 001746 aa 200000 3150 03 cana 65536,du 001747 aa 000030 6000 04 tze 24,ic 001777 001750 aa 7 00001 2351 06 lda pr7|1,ql rvl.abandoned 001751 aa 400000 3150 03 cana 131072,du 001752 aa 000025 6010 04 tnz 21,ic 001777 001753 aa 000000 6270 06 eax7 0,ql 001754 aa 464000 2360 03 ldq 157696,du 001755 aa 6 00671 7561 00 stq pr6|441 001756 aa 6 00770 7561 00 stq pr6|504 001757 aa 6 00312 3521 00 epp2 pr6|202 recovery_dir 001760 aa 6 00674 2521 00 spri2 pr6|444 001761 aa 7 77774 3521 17 epp2 pr7|-4,7 rvl.temp_logp 001762 aa 6 00676 2521 00 spri2 pr6|446 001763 aa 7 77776 3521 17 epp2 pr7|-2,7 rvl.new_logp 001764 aa 6 00700 2521 00 spri2 pr6|448 001765 aa 776153 3520 04 epp2 -917,ic 000140 = 526000000250 001766 aa 6 00704 2521 00 spri2 pr6|452 001767 aa 6 00671 3521 00 epp2 pr6|441 001770 aa 6 00706 2521 00 spri2 pr6|454 001771 aa 6 00770 3521 00 epp2 pr6|504 001772 aa 6 00710 2521 00 spri2 pr6|456 001773 aa 6 00672 6211 00 eax1 pr6|442 001774 aa 014000 4310 07 fld 6144,dl 001775 aa 000650 3520 04 epp2 424,ic 002645 = 000240627000 001776 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 250 end; 001777 aa 6 00307 0541 00 aos pr6|199 pvindex 002000 aa 777740 7100 04 tra -32,ic 001740 STATEMENT 1 ON LINE 251 end; 002001 aa 000026 7100 04 tra 22,ic 002027 STATEMENT 1 ON LINE 252 else call com_err_ (0, myname, "All volume logs must belong to the same RPV."); 002002 aa 6 00671 4501 00 stz pr6|441 002003 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002004 aa 776354 00 0054 desc9a -788,44 000357 = 101154154040 002005 aa 6 00672 00 0054 desc9a pr6|442,44 002006 aa 6 00671 3521 00 epp2 pr6|441 002007 aa 6 00644 2521 00 spri2 pr6|420 002010 aa 775773 3520 04 epp2 -1029,ic 000003 = 162145143157 002011 aa 6 00646 2521 00 spri2 pr6|422 002012 aa 6 00672 3521 00 epp2 pr6|442 002013 aa 6 00650 2521 00 spri2 pr6|424 002014 aa 776116 3520 04 epp2 -946,ic 000132 = 404000000005 002015 aa 6 00652 2521 00 spri2 pr6|426 002016 aa 776123 3520 04 epp2 -941,ic 000141 = 526000000040 002017 aa 6 00654 2521 00 spri2 pr6|428 002020 aa 776071 3520 04 epp2 -967,ic 000111 = 524000000054 002021 aa 6 00656 2521 00 spri2 pr6|430 002022 aa 6 00642 6211 00 eax1 pr6|418 002023 aa 014000 4310 07 fld 6144,dl 002024 aa 6 00044 3701 20 epp4 pr6|36,* 002025 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 002026 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 254 finish: call finish_; 002027 aa 6 00056 6211 00 eax1 pr6|46 002030 aa 000000 4310 07 fld 0,dl 002031 aa 003025 3520 04 epp2 1557,ic 005056 = 000320627000 002032 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 257 return; 002033 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 773 end recover_volume_log; BEGIN PROCEDURE all_vologs_found ENTRY TO all_vologs_found STATEMENT 1 ON LINE 263 all_vologs_found: proc () returns (bit (1)); 002034 aa 6 00100 6501 00 spri4 pr6|64 002035 aa 6 00102 2521 00 spri2 pr6|66 STATEMENT 1 ON LINE 267 do i = 1 to rvl.npvs; 002036 aa 6 00040 3735 20 epp7 pr6|32,* 002037 aa 7 00532 2361 20 ldq pr7|346,* rvl.npvs 002040 aa 6 00107 7561 00 stq pr6|71 002041 aa 000001 2360 07 ldq 1,dl 002042 aa 6 00106 7561 00 stq pr6|70 i 002043 aa 000000 0110 03 nop 0,du 002044 aa 6 00106 2361 00 ldq pr6|70 i 002045 aa 6 00107 1161 00 cmpq pr6|71 002046 aa 000020 6054 04 tpnz 16,ic 002066 STATEMENT 1 ON LINE 268 if (^rvl.volog_found (i)) then return ("0"b); 002047 aa 000036 4020 07 mpy 30,dl 002050 aa 6 00117 7561 00 stq pr6|79 002051 aa 6 00040 3735 20 epp7 pr6|32,* 002052 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 002053 aa 5 00001 2351 06 lda pr5|1,ql rvl.volog_found 002054 aa 200000 3150 03 cana 65536,du 002055 aa 000007 6010 04 tnz 7,ic 002064 002056 aa 6 00102 3535 20 epp3 pr6|66,* 002057 aa 3 00002 3515 20 epp1 pr3|2,* 002060 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 002061 aa 000000 00 0000 descb 0,0 002062 aa 1 00000 00 0001 descb pr1|0,1 002063 aa 6 00100 6101 00 rtcd pr6|64 STATEMENT 1 ON LINE 269 end; 002064 aa 6 00106 0541 00 aos pr6|70 i 002065 aa 777757 7100 04 tra -17,ic 002044 STATEMENT 1 ON LINE 270 return ("1"b); 002066 aa 6 00102 3735 20 epp7 pr6|66,* 002067 aa 7 00002 3715 20 epp5 pr7|2,* 002070 aa 403 100 060 400 csl (),(pr),fill(1),bool(move) 002071 aa 000000 00 0000 descb 0,0 002072 aa 5 00000 00 0001 descb pr5|0,1 002073 aa 6 00100 6101 00 rtcd pr6|64 STATEMENT 1 ON LINE 271 end all_vologs_found; END PROCEDURE all_vologs_found BEGIN PROCEDURE not_all_abandoned ENTRY TO not_all_abandoned STATEMENT 1 ON LINE 275 not_all_abandoned: proc () returns (bit (1)); 002074 da 000454220000 002075 aa 000120 6270 00 eax7 80 002076 aa 7 00034 3521 20 epp2 pr7|28,* 002077 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002100 aa 000002000000 002101 aa 000000000000 STATEMENT 1 ON LINE 279 do i = 1 to rvl.npvs; 002102 aa 6 00040 3735 20 epp7 pr6|32,* 002103 aa 7 00532 2361 20 ldq pr7|346,* rvl.npvs 002104 aa 6 00101 7561 00 stq pr6|65 002105 aa 000001 2360 07 ldq 1,dl 002106 aa 6 00100 7561 00 stq pr6|64 i 002107 aa 000000 0110 03 nop 0,du 002110 aa 6 00100 2361 00 ldq pr6|64 i 002111 aa 6 00101 1161 00 cmpq pr6|65 002112 aa 000021 6054 04 tpnz 17,ic 002133 STATEMENT 1 ON LINE 280 if rvl.abandoned (i) then ; 002113 aa 000036 4020 07 mpy 30,dl 002114 aa 6 00102 7561 00 stq pr6|66 002115 aa 6 00040 3735 20 epp7 pr6|32,* 002116 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 002117 aa 5 00001 2351 06 lda pr5|1,ql rvl.abandoned 002120 aa 400000 3150 03 cana 131072,du 002121 aa 000002 6000 04 tze 2,ic 002123 002122 aa 000007 7100 04 tra 7,ic 002131 STATEMENT 1 ON LINE 281 else return ("1"b); 002123 aa 6 00032 3535 20 epp3 pr6|26,* 002124 aa 3 00002 3515 20 epp1 pr3|2,* 002125 aa 403 100 060 400 csl (),(pr),fill(1),bool(move) 002126 aa 000000 00 0000 descb 0,0 002127 aa 1 00000 00 0001 descb pr1|0,1 002130 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 282 end; 002131 aa 6 00100 0541 00 aos pr6|64 i 002132 aa 777756 7100 04 tra -18,ic 002110 STATEMENT 1 ON LINE 283 return ("0"b); 002133 aa 6 00032 3735 20 epp7 pr6|26,* 002134 aa 7 00002 3715 20 epp5 pr7|2,* 002135 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 002136 aa 000000 00 0000 descb 0,0 002137 aa 5 00000 00 0001 descb pr5|0,1 002140 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 284 end not_all_abandoned; END PROCEDURE not_all_abandoned BEGIN PROCEDURE detach ENTRY TO detach STATEMENT 1 ON LINE 289 detach: proc; 002141 da 000461200000 002142 aa 000120 6270 00 eax7 80 002143 aa 7 00034 3521 20 epp2 pr7|28,* 002144 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002145 aa 000000000000 002146 aa 000000000000 STATEMENT 1 ON LINE 293 call iox_$close (iocbp, ignore); 002147 aa 6 00040 3735 20 epp7 pr6|32,* 002150 aa 7 00440 3521 00 epp2 pr7|288 iocbp 002151 aa 6 00102 2521 00 spri2 pr6|66 002152 aa 7 00512 3521 00 epp2 pr7|330 ignore 002153 aa 6 00104 2521 00 spri2 pr6|68 002154 aa 6 00100 6211 00 eax1 pr6|64 002155 aa 010000 4310 07 fld 4096,dl 002156 la 4 00116 3521 20 epp2 pr4|78,* iox_$close 002157 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 294 call iox_$detach_iocb (iocbp, ignore); 002160 aa 6 00040 3735 20 epp7 pr6|32,* 002161 aa 7 00440 3521 00 epp2 pr7|288 iocbp 002162 aa 6 00102 2521 00 spri2 pr6|66 002163 aa 7 00512 3521 00 epp2 pr7|330 ignore 002164 aa 6 00104 2521 00 spri2 pr6|68 002165 aa 6 00100 6211 00 eax1 pr6|64 002166 aa 010000 4310 07 fld 4096,dl 002167 aa 6 00044 3701 20 epp4 pr6|36,* 002170 la 4 00120 3521 20 epp2 pr4|80,* iox_$detach_iocb 002171 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 295 iocbp = null; 002172 aa 775762 2370 04 ldaq -1038,ic 000154 = 077777000043 000001000000 002173 aa 6 00040 3735 20 epp7 pr6|32,* 002174 aa 7 00440 7571 00 staq pr7|288 iocbp STATEMENT 1 ON LINE 297 end detach; 002175 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE detach BEGIN PROCEDURE setup_data_segments ENTRY TO setup_data_segments STATEMENT 1 ON LINE 304 setup_data_segments: proc; 002176 aa 6 00570 6501 00 spri4 pr6|376 STATEMENT 1 ON LINE 308 call get_temp_segments_ (myname, tp, code); 002177 aa 775604 3520 04 epp2 -1148,ic 000003 = 162145143157 002200 aa 6 00774 2521 00 spri2 pr6|508 002201 aa 6 00524 3521 00 epp2 pr6|340 tp 002202 aa 6 00776 2521 00 spri2 pr6|510 002203 aa 6 00511 3521 00 epp2 pr6|329 code 002204 aa 6 01000 2521 00 spri2 pr6|512 002205 aa 775734 3520 04 epp2 -1060,ic 000141 = 526000000040 002206 aa 6 01002 2521 00 spri2 pr6|514 002207 aa 775757 3520 04 epp2 -1041,ic 000166 = 464100000000 002210 aa 6 01004 2521 00 spri2 pr6|516 002211 aa 775717 3520 04 epp2 -1073,ic 000130 = 404000000043 002212 aa 6 01006 2521 00 spri2 pr6|518 002213 aa 6 00772 6211 00 eax1 pr6|506 002214 aa 014000 4310 07 fld 6144,dl 002215 aa 6 00044 3701 20 epp4 pr6|36,* 002216 la 4 00064 3521 20 epp2 pr4|52,* get_temp_segments_ 002217 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 309 if code ^= 0 then return; 002220 aa 6 00511 2361 00 ldq pr6|329 code 002221 aa 000002 6000 04 tze 2,ic 002223 002222 aa 6 00570 6101 00 rtcd pr6|376 STATEMENT 1 ON LINE 311 recordp = tp (1); 002223 aa 6 00524 3735 20 epp7 pr6|340,* tp 002224 aa 6 00546 6535 00 spri7 pr6|358 recordp STATEMENT 1 ON LINE 312 objectp = tp (2); 002225 aa 6 00526 3715 20 epp5 pr6|342,* tp 002226 aa 6 00514 6515 00 spri5 pr6|332 objectp STATEMENT 1 ON LINE 313 input_buffer_ptr = tp (3); 002227 aa 6 00530 3735 20 epp7 pr6|344,* tp 002230 aa 6 00516 6535 00 spri7 pr6|334 input_buffer_ptr STATEMENT 1 ON LINE 314 call hcs_$set_256K_switch ("11"b, (""b), code); 002231 aa 600000 2350 03 lda 196608,du 002232 aa 6 00771 7551 00 sta pr6|505 002233 aa 000000 2350 07 lda 0,dl 002234 aa 6 01010 7551 00 sta pr6|520 002235 aa 6 00771 3521 00 epp2 pr6|505 002236 aa 6 00774 2521 00 spri2 pr6|508 002237 aa 6 01010 3521 00 epp2 pr6|520 002240 aa 6 00776 2521 00 spri2 pr6|510 002241 aa 6 00511 3521 00 epp2 pr6|329 code 002242 aa 6 01000 2521 00 spri2 pr6|512 002243 aa 6 00772 6211 00 eax1 pr6|506 002244 aa 014000 4310 07 fld 6144,dl 002245 aa 6 00044 3701 20 epp4 pr6|36,* 002246 la 4 00100 3521 20 epp2 pr4|64,* hcs_$set_256K_switch 002247 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 315 if code ^= 0 then return; 002250 aa 6 00511 2361 00 ldq pr6|329 code 002251 aa 000002 6000 04 tze 2,ic 002253 002252 aa 6 00570 6101 00 rtcd pr6|376 STATEMENT 1 ON LINE 316 call hcs_$set_max_length_seg (objectp, sys_info$seg_size_256K, code); 002253 aa 6 00514 3521 00 epp2 pr6|332 objectp 002254 aa 6 00774 2521 00 spri2 pr6|508 002255 aa 6 00044 3701 20 epp4 pr6|36,* 002256 la 4 00030 3521 20 epp2 pr4|24,* sys_info$seg_size_256K 002257 aa 6 00776 2521 00 spri2 pr6|510 002260 aa 6 00511 3521 00 epp2 pr6|329 code 002261 aa 6 01000 2521 00 spri2 pr6|512 002262 aa 6 00772 6211 00 eax1 pr6|506 002263 aa 014000 4310 07 fld 6144,dl 002264 la 4 00102 3521 20 epp2 pr4|66,* hcs_$set_max_length_seg 002265 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 317 if code ^= 0 then return; 002266 aa 6 00511 2361 00 ldq pr6|329 code 002267 aa 000002 6000 04 tze 2,ic 002271 002270 aa 6 00570 6101 00 rtcd pr6|376 STATEMENT 1 ON LINE 318 call hcs_$set_max_length_seg (input_buffer_ptr, sys_info$seg_size_256K, code); 002271 aa 6 00516 3521 00 epp2 pr6|334 input_buffer_ptr 002272 aa 6 00774 2521 00 spri2 pr6|508 002273 aa 6 00044 3701 20 epp4 pr6|36,* 002274 la 4 00030 3521 20 epp2 pr4|24,* sys_info$seg_size_256K 002275 aa 6 00776 2521 00 spri2 pr6|510 002276 aa 6 00511 3521 00 epp2 pr6|329 code 002277 aa 6 01000 2521 00 spri2 pr6|512 002300 aa 6 00772 6211 00 eax1 pr6|506 002301 aa 014000 4310 07 fld 6144,dl 002302 la 4 00102 3521 20 epp2 pr4|66,* hcs_$set_max_length_seg 002303 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 319 if code ^= 0 then return; 002304 aa 6 00511 2361 00 ldq pr6|329 code 002305 aa 000002 6000 04 tze 2,ic 002307 002306 aa 6 00570 6101 00 rtcd pr6|376 STATEMENT 1 ON LINE 320 input_buffer_start = 1; 002307 aa 000001 2360 07 ldq 1,dl 002310 aa 6 00520 7561 00 stq pr6|336 input_buffer_start STATEMENT 1 ON LINE 321 input_buffer_len = 0; 002311 aa 6 00521 4501 00 stz pr6|337 input_buffer_len STATEMENT 1 ON LINE 322 return; 002312 aa 6 00570 6101 00 rtcd pr6|376 STATEMENT 1 ON LINE 324 end setup_data_segments; END PROCEDURE setup_data_segments BEGIN PROCEDURE attach ENTRY TO attach STATEMENT 1 ON LINE 330 attach: proc; 002313 da 000466200000 002314 aa 000160 6270 00 eax7 112 002315 aa 7 00034 3521 20 epp2 pr7|28,* 002316 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002317 aa 000000000000 002320 aa 000000000000 STATEMENT 1 ON LINE 335 reask: call command_query_ (addr (query_info), var_volname, myname, "Type ^[next ^;^s^]most recent dump volume name (Type ""."" to quit): ", (^first_input_volume)); 002321 aa 6 00040 3735 20 epp7 pr6|32,* 002322 aa 7 00550 3735 00 epp7 pr7|360 query_info 002323 aa 6 00100 6535 00 spri7 pr6|64 002324 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002325 aa 776143 00 0104 desc9a -925,68 000467 = 124171160145 002326 aa 6 00102 00 0104 desc9a pr6|66,68 002327 aa 6 00040 3715 20 epp5 pr6|32,* 002330 aa 5 00445 2351 00 lda pr5|293 first_input_volume 002331 aa 0 00002 6751 00 era pr0|2 = 400000000000 002332 aa 6 00123 7551 00 sta pr6|83 002333 aa 6 00100 3521 00 epp2 pr6|64 002334 aa 6 00126 2521 00 spri2 pr6|86 002335 aa 5 00501 3521 00 epp2 pr5|321 var_volname 002336 aa 6 00130 2521 00 spri2 pr6|88 002337 aa 775444 3520 04 epp2 -1244,ic 000003 = 162145143157 002340 aa 6 00132 2521 00 spri2 pr6|90 002341 aa 6 00102 3521 00 epp2 pr6|66 002342 aa 6 00134 2521 00 spri2 pr6|92 002343 aa 6 00123 3521 00 epp2 pr6|83 002344 aa 6 00136 2521 00 spri2 pr6|94 002345 aa 775551 3520 04 epp2 -1175,ic 000116 = 464000000000 002346 aa 6 00140 2521 00 spri2 pr6|96 002347 aa 775541 3520 04 epp2 -1183,ic 000110 = 530000000040 002350 aa 6 00142 2521 00 spri2 pr6|98 002351 aa 775570 3520 04 epp2 -1160,ic 000141 = 526000000040 002352 aa 6 00144 2521 00 spri2 pr6|100 002353 aa 775534 3520 04 epp2 -1188,ic 000107 = 524000000103 002354 aa 6 00146 2521 00 spri2 pr6|102 002355 aa 775531 3520 04 epp2 -1191,ic 000106 = 514000000001 002356 aa 6 00150 2521 00 spri2 pr6|104 002357 aa 6 00124 6211 00 eax1 pr6|84 002360 aa 024000 4310 07 fld 10240,dl 002361 aa 6 00044 3701 20 epp4 pr6|36,* 002362 la 4 00110 3521 20 epp2 pr4|72,* command_query_ 002363 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 337 if var_volname = "" then goto reask; 002364 aa 6 00040 3735 20 epp7 pr6|32,* 002365 aa 7 00500 7271 00 lxl7 pr7|320 var_volname 002366 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 002367 aa 7 00501 00 0017 desc9a pr7|321,x7 var_volname 002370 aa 003154 00 0000 desc9a 1644,0 005542 = 777777777777 002371 aa 777730 6000 04 tze -40,ic 002321 STATEMENT 1 ON LINE 338 if var_volname = "." then goto finish; 002372 aa 7 00500 7271 00 lxl7 pr7|320 var_volname 002373 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 002374 aa 7 00501 00 0017 desc9a pr7|321,x7 var_volname 002375 aa 003150 00 0001 desc9a 1640,1 005543 = 056000000000 002376 aa 000004 6010 04 tnz 4,ic 002402 002377 aa 777430 3520 04 epp2 -232,ic 002027 = 600056621100 002400 aa 000001 7270 07 lxl7 1,dl 002401 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 339 volname = var_volname; 002402 aa 6 00040 3735 20 epp7 pr6|32,* 002403 aa 7 00500 7271 00 lxl7 pr7|320 var_volname 002404 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 002405 aa 7 00501 00 0017 desc9a pr7|321,x7 var_volname 002406 aa 7 00470 00 0040 desc9a pr7|312,32 volname STATEMENT 1 ON LINE 341 first_input_volume = "0"b; 002407 aa 7 00445 4501 00 stz pr7|293 first_input_volume STATEMENT 1 ON LINE 343 if input_volume_desc ^= "" then call ioa_$rsnnl (input_volume_desc, att_desc, (0), volname); 002410 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002411 aa 7 00200 00 0400 desc9a pr7|128,256 input_volume_desc 002412 aa 003132 00 0000 desc9a 1626,0 005542 = 777777777777 002413 aa 000027 6000 04 tze 23,ic 002442 002414 aa 6 00123 4501 00 stz pr6|83 002415 aa 7 00200 3521 00 epp2 pr7|128 input_volume_desc 002416 aa 6 00126 2521 00 spri2 pr6|86 002417 aa 7 00100 3521 00 epp2 pr7|64 att_desc 002420 aa 6 00130 2521 00 spri2 pr6|88 002421 aa 6 00123 3521 00 epp2 pr6|83 002422 aa 6 00132 2521 00 spri2 pr6|90 002423 aa 7 00470 3521 00 epp2 pr7|312 volname 002424 aa 6 00134 2521 00 spri2 pr6|92 002425 aa 775460 3520 04 epp2 -1232,ic 000105 = 526000000400 002426 aa 6 00136 2521 00 spri2 pr6|94 002427 aa 6 00140 2521 00 spri2 pr6|96 002430 aa 775502 3520 04 epp2 -1214,ic 000132 = 404000000005 002431 aa 6 00142 2521 00 spri2 pr6|98 002432 aa 775507 3520 04 epp2 -1209,ic 000141 = 526000000040 002433 aa 6 00144 2521 00 spri2 pr6|100 002434 aa 6 00124 6211 00 eax1 pr6|84 002435 aa 020000 4310 07 fld 8192,dl 002436 aa 6 00044 3701 20 epp4 pr6|36,* 002437 la 4 00066 3521 20 epp2 pr4|54,* ioa_$rsnnl 002440 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 002441 aa 000041 7100 04 tra 33,ic 002502 STATEMENT 1 ON LINE 345 else call ioa_$rsnnl ("tape_mult_ ^a ^[-system^]", att_desc, (0), volname, ^debug); 002442 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002443 aa 775633 00 0034 desc9a -1125,28 000275 = 164141160145 002444 aa 6 00102 00 0034 desc9a pr6|66,28 002445 aa 6 00123 4501 00 stz pr6|83 002446 aa 7 00442 2351 00 lda pr7|290 debug 002447 aa 0 00002 6751 00 era pr0|2 = 400000000000 002450 aa 6 00152 7551 00 sta pr6|106 002451 aa 6 00102 3521 00 epp2 pr6|66 002452 aa 6 00126 2521 00 spri2 pr6|86 002453 aa 7 00100 3521 00 epp2 pr7|64 att_desc 002454 aa 6 00130 2521 00 spri2 pr6|88 002455 aa 6 00123 3521 00 epp2 pr6|83 002456 aa 6 00132 2521 00 spri2 pr6|90 002457 aa 7 00470 3521 00 epp2 pr7|312 volname 002460 aa 6 00134 2521 00 spri2 pr6|92 002461 aa 6 00152 3521 00 epp2 pr6|106 002462 aa 6 00136 2521 00 spri2 pr6|94 002463 aa 775421 3520 04 epp2 -1263,ic 000104 = 524000000031 002464 aa 6 00140 2521 00 spri2 pr6|96 002465 aa 775420 3520 04 epp2 -1264,ic 000105 = 526000000400 002466 aa 6 00142 2521 00 spri2 pr6|98 002467 aa 775443 3520 04 epp2 -1245,ic 000132 = 404000000005 002470 aa 6 00144 2521 00 spri2 pr6|100 002471 aa 775450 3520 04 epp2 -1240,ic 000141 = 526000000040 002472 aa 6 00146 2521 00 spri2 pr6|102 002473 aa 775413 3520 04 epp2 -1269,ic 000106 = 514000000001 002474 aa 6 00150 2521 00 spri2 pr6|104 002475 aa 6 00124 6211 00 eax1 pr6|84 002476 aa 024000 4310 07 fld 10240,dl 002477 aa 6 00044 3701 20 epp4 pr6|36,* 002500 la 4 00066 3521 20 epp2 pr4|54,* ioa_$rsnnl 002501 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 347 call iox_$attach_ioname ("input_volume", iocbp, att_desc, code); 002502 aa 775456 2370 04 ldaq -1234,ic 000160 = 151156160165 164137166157 002503 aa 6 00102 7571 00 staq pr6|66 002504 aa 775456 2350 04 lda -1234,ic 000162 = 154165155145 002505 aa 6 00104 7551 00 sta pr6|68 002506 aa 6 00102 3521 00 epp2 pr6|66 002507 aa 6 00126 2521 00 spri2 pr6|86 002510 aa 6 00040 3735 20 epp7 pr6|32,* 002511 aa 7 00440 3521 00 epp2 pr7|288 iocbp 002512 aa 6 00130 2521 00 spri2 pr6|88 002513 aa 7 00100 3521 00 epp2 pr7|64 att_desc 002514 aa 6 00132 2521 00 spri2 pr6|90 002515 aa 7 00511 3521 00 epp2 pr7|329 code 002516 aa 6 00134 2521 00 spri2 pr6|92 002517 aa 775364 3520 04 epp2 -1292,ic 000103 = 524000000014 002520 aa 6 00136 2521 00 spri2 pr6|94 002521 aa 775375 3520 04 epp2 -1283,ic 000116 = 464000000000 002522 aa 6 00140 2521 00 spri2 pr6|96 002523 aa 775362 3520 04 epp2 -1294,ic 000105 = 526000000400 002524 aa 6 00142 2521 00 spri2 pr6|98 002525 aa 775403 3520 04 epp2 -1277,ic 000130 = 404000000043 002526 aa 6 00144 2521 00 spri2 pr6|100 002527 aa 6 00124 6211 00 eax1 pr6|84 002530 aa 020000 4310 07 fld 8192,dl 002531 aa 6 00044 3701 20 epp4 pr6|36,* 002532 la 4 00106 3521 20 epp2 pr4|70,* iox_$attach_ioname 002533 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 348 if code ^= 0 then do; 002534 aa 6 00040 3735 20 epp7 pr6|32,* 002535 aa 7 00511 2361 00 ldq pr7|329 code 002536 aa 000034 6000 04 tze 28,ic 002572 STATEMENT 1 ON LINE 349 call com_err_ (code, myname, "Unable to attach input volume with attach desc ^a", att_desc); 002537 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002540 aa 775633 00 0064 desc9a -1125,52 000372 = 125156141142 002541 aa 6 00102 00 0064 desc9a pr6|66,52 002542 aa 7 00511 3521 00 epp2 pr7|329 code 002543 aa 6 00126 2521 00 spri2 pr6|86 002544 aa 775237 3520 04 epp2 -1377,ic 000003 = 162145143157 002545 aa 6 00130 2521 00 spri2 pr6|88 002546 aa 6 00102 3521 00 epp2 pr6|66 002547 aa 6 00132 2521 00 spri2 pr6|90 002550 aa 7 00100 3521 00 epp2 pr7|64 att_desc 002551 aa 6 00134 2521 00 spri2 pr6|92 002552 aa 775356 3520 04 epp2 -1298,ic 000130 = 404000000043 002553 aa 6 00136 2521 00 spri2 pr6|94 002554 aa 775365 3520 04 epp2 -1291,ic 000141 = 526000000040 002555 aa 6 00140 2521 00 spri2 pr6|96 002556 aa 775324 3520 04 epp2 -1324,ic 000102 = 524000000061 002557 aa 6 00142 2521 00 spri2 pr6|98 002560 aa 775325 3520 04 epp2 -1323,ic 000105 = 526000000400 002561 aa 6 00144 2521 00 spri2 pr6|100 002562 aa 6 00124 6211 00 eax1 pr6|84 002563 aa 020000 4310 07 fld 8192,dl 002564 aa 6 00044 3701 20 epp4 pr6|36,* 002565 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 002566 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 350 goto finish; 002567 aa 777240 3520 04 epp2 -352,ic 002027 = 600056621100 002570 aa 000001 7270 07 lxl7 1,dl 002571 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 351 end; STATEMENT 1 ON LINE 353 call iox_$open (iocbp, Stream_input, "0"b, code); 002572 aa 000000 2350 07 lda 0,dl 002573 aa 6 00152 7551 00 sta pr6|106 002574 aa 7 00440 3521 00 epp2 pr7|288 iocbp 002575 aa 6 00104 2521 00 spri2 pr6|68 002576 aa 775344 3520 04 epp2 -1308,ic 000142 = 000000000001 002577 aa 6 00106 2521 00 spri2 pr6|70 002600 aa 6 00152 3521 00 epp2 pr6|106 002601 aa 6 00110 2521 00 spri2 pr6|72 002602 aa 7 00511 3521 00 epp2 pr7|329 code 002603 aa 6 00112 2521 00 spri2 pr6|74 002604 aa 6 00102 6211 00 eax1 pr6|66 002605 aa 020000 4310 07 fld 8192,dl 002606 aa 6 00044 3701 20 epp4 pr6|36,* 002607 la 4 00124 3521 20 epp2 pr4|84,* iox_$open 002610 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 354 if code ^= 0 then do; 002611 aa 6 00040 3735 20 epp7 pr6|32,* 002612 aa 7 00511 2361 00 ldq pr7|329 code 002613 aa 000030 6000 04 tze 24,ic 002643 STATEMENT 1 ON LINE 355 call com_err_ (code, myname, "Error opening input volume"); 002614 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002615 aa 775452 00 0034 desc9a -1238,28 000266 = 105162162157 002616 aa 6 00102 00 0034 desc9a pr6|66,28 002617 aa 7 00511 3521 00 epp2 pr7|329 code 002620 aa 6 00126 2521 00 spri2 pr6|86 002621 aa 775162 3520 04 epp2 -1422,ic 000003 = 162145143157 002622 aa 6 00130 2521 00 spri2 pr6|88 002623 aa 6 00102 3521 00 epp2 pr6|66 002624 aa 6 00132 2521 00 spri2 pr6|90 002625 aa 775303 3520 04 epp2 -1341,ic 000130 = 404000000043 002626 aa 6 00134 2521 00 spri2 pr6|92 002627 aa 775312 3520 04 epp2 -1334,ic 000141 = 526000000040 002630 aa 6 00136 2521 00 spri2 pr6|94 002631 aa 775272 3520 04 epp2 -1350,ic 000123 = 524000000032 002632 aa 6 00140 2521 00 spri2 pr6|96 002633 aa 6 00124 6211 00 eax1 pr6|84 002634 aa 014000 4310 07 fld 6144,dl 002635 aa 6 00044 3701 20 epp4 pr6|36,* 002636 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 002637 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 356 goto finish; 002640 aa 777167 3520 04 epp2 -393,ic 002027 = 600056621100 002641 aa 000001 7270 07 lxl7 1,dl 002642 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 357 end; STATEMENT 1 ON LINE 359 end attach; 002643 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE attach BEGIN PROCEDURE delete_make_and_move ENTRY TO delete_make_and_move STATEMENT 1 ON LINE 365 delete_make_and_move: proc (temp_dir_in, ptr_in1, ptr_in2); 002644 da 000477200000 002645 aa 000240 6270 00 eax7 160 002646 aa 7 00034 3521 20 epp2 pr7|28,* 002647 aa 2 01050 2721 00 tsp2 pr2|552 int_entry_desc 002650 aa 000006000000 002651 aa 000000000000 002652 aa 6 00042 3735 20 epp7 pr6|34,* 002653 aa 7 00000 2361 20 ldq pr7|0,* 002654 aa 000002 6040 04 tmi 2,ic 002656 002655 aa 777777 3760 07 anq 262143,dl 002656 aa 0 00250 3761 00 anq pr0|168 = 000077777777 002657 aa 6 00106 7561 00 stq pr6|70 STATEMENT 1 ON LINE 371 on linkage_error goto delerr; 002660 aa 000015 7260 07 lxl6 13,dl 002661 aa 775311 3520 04 epp2 -1335,ic 000172 = 154151156153 002662 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 002663 aa 000004 7100 04 tra 4,ic 002667 002664 aa 000100000000 002665 aa 000012 7100 04 tra 10,ic 002677 BEGIN CONDITION linkage_error.2 ENTRY TO linkage_error.2 STATEMENT 1 ON LINE 371 on linkage_error goto delerr; 002666 da 000506200000 002667 aa 000100 6270 00 eax7 64 002670 aa 7 00034 3521 20 epp2 pr7|28,* 002671 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002672 aa 000000000000 002673 aa 000000000000 002674 aa 000100 3520 04 epp2 64,ic 002774 = 775125236004 002675 aa 000001 7270 07 lxl7 1,dl 002676 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 END CONDITION linkage_error.2 STATEMENT 1 ON LINE 372 call hcs_$delentry_file (temp_dir_in, (rvl.ename (pvindex)), code); 002677 aa 6 00040 3735 20 epp7 pr6|32,* 002700 aa 7 00307 2361 00 ldq pr7|199 pvindex 002701 aa 000036 4020 07 mpy 30,dl 002702 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 002703 aa 5 77764 3715 06 epp5 pr5|-12,ql rvl.ename 002704 aa 000 100 100 500 mlr (pr),(pr),fill(000) 002705 aa 5 00000 00 0040 desc9a pr5|0,32 rvl.ename 002706 aa 6 00110 00 0040 desc9a pr6|72,32 002707 aa 6 00032 3535 20 epp3 pr6|26,* 002710 aa 3 00002 3521 20 epp2 pr3|2,* temp_dir_in 002711 aa 6 00122 2521 00 spri2 pr6|82 002712 aa 6 00110 3521 00 epp2 pr6|72 002713 aa 6 00124 2521 00 spri2 pr6|84 002714 aa 7 00511 3521 00 epp2 pr7|329 code 002715 aa 6 00126 2521 00 spri2 pr6|86 002716 aa 6 00042 3515 20 epp1 pr6|34,* 002717 aa 1 00000 3521 20 epp2 pr1|0,* 002720 aa 6 00130 2521 00 spri2 pr6|88 002721 aa 775200 3520 04 epp2 -1408,ic 000121 = 524000000040 002722 aa 6 00132 2521 00 spri2 pr6|90 002723 aa 775205 3520 04 epp2 -1403,ic 000130 = 404000000043 002724 aa 6 00134 2521 00 spri2 pr6|92 002725 aa 6 00120 6211 00 eax1 pr6|80 002726 aa 014000 4310 07 fld 6144,dl 002727 aa 6 00044 3701 20 epp4 pr6|36,* 002730 la 4 00034 3521 20 epp2 pr4|28,* hcs_$delentry_file 002731 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 373 if code ^= 0 & code ^= error_table_$noentry then do; 002732 aa 6 00040 3735 20 epp7 pr6|32,* 002733 aa 7 00511 2361 00 ldq pr7|329 code 002734 aa 000113 6000 04 tze 75,ic 003047 002735 aa 6 00044 3701 20 epp4 pr6|36,* 002736 la 4 00012 1161 20 cmpq pr4|10,* error_table_$noentry 002737 aa 000110 6000 04 tze 72,ic 003047 STATEMENT 1 ON LINE 374 call hphcs_$delentry_file (temp_dir_in, (rvl.ename (pvindex)), code); 002740 aa 7 00307 2361 00 ldq pr7|199 pvindex 002741 aa 000036 4020 07 mpy 30,dl 002742 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 002743 aa 5 77764 3715 06 epp5 pr5|-12,ql rvl.ename 002744 aa 000 100 100 500 mlr (pr),(pr),fill(000) 002745 aa 5 00000 00 0040 desc9a pr5|0,32 rvl.ename 002746 aa 6 00110 00 0040 desc9a pr6|72,32 002747 aa 6 00032 3535 20 epp3 pr6|26,* 002750 aa 3 00002 3521 20 epp2 pr3|2,* temp_dir_in 002751 aa 6 00122 2521 00 spri2 pr6|82 002752 aa 6 00110 3521 00 epp2 pr6|72 002753 aa 6 00124 2521 00 spri2 pr6|84 002754 aa 7 00511 3521 00 epp2 pr7|329 code 002755 aa 6 00126 2521 00 spri2 pr6|86 002756 aa 6 00042 3515 20 epp1 pr6|34,* 002757 aa 1 00000 3521 20 epp2 pr1|0,* 002760 aa 6 00130 2521 00 spri2 pr6|88 002761 aa 775140 3520 04 epp2 -1440,ic 000121 = 524000000040 002762 aa 6 00132 2521 00 spri2 pr6|90 002763 aa 775145 3520 04 epp2 -1435,ic 000130 = 404000000043 002764 aa 6 00134 2521 00 spri2 pr6|92 002765 aa 6 00120 6211 00 eax1 pr6|80 002766 aa 014000 4310 07 fld 6144,dl 002767 la 4 00040 3521 20 epp2 pr4|32,* hphcs_$delentry_file 002770 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 375 if code ^= 0 then do; 002771 aa 6 00040 3735 20 epp7 pr6|32,* 002772 aa 7 00511 2361 00 ldq pr7|329 code 002773 aa 000054 6000 04 tze 44,ic 003047 STATEMENT 1 ON LINE 376 delerr: call com_err_ (code, myname, "Unable to delete ^a>^a. Recovery for it will be abandoned.", temp_dir_in, rvl.ename (pvindex)); 002774 aa 775125 2360 04 ldq -1451,ic 000121 = 524000000040 002775 aa 6 00107 7561 00 stq pr6|71 002776 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002777 aa 775411 00 0074 desc9a -1271,60 000407 = 125156141142 003000 aa 6 00136 00 0074 desc9a pr6|94,60 003001 aa 6 00040 3735 20 epp7 pr6|32,* 003002 aa 7 00307 2361 00 ldq pr7|199 pvindex 003003 aa 000036 4020 07 mpy 30,dl 003004 aa 7 00511 3521 00 epp2 pr7|329 code 003005 aa 6 00160 2521 00 spri2 pr6|112 003006 aa 774775 3520 04 epp2 -1539,ic 000003 = 162145143157 003007 aa 6 00162 2521 00 spri2 pr6|114 003010 aa 6 00136 3521 00 epp2 pr6|94 003011 aa 6 00164 2521 00 spri2 pr6|116 003012 aa 6 00032 3715 20 epp5 pr6|26,* 003013 aa 5 00002 3521 20 epp2 pr5|2,* temp_dir_in 003014 aa 6 00166 2521 00 spri2 pr6|118 003015 aa 7 00532 3535 20 epp3 pr7|346,* rvlp 003016 aa 3 77764 3521 06 epp2 pr3|-12,ql rvl.ename 003017 aa 6 00170 2521 00 spri2 pr6|120 003020 aa 775110 3520 04 epp2 -1464,ic 000130 = 404000000043 003021 aa 6 00172 2521 00 spri2 pr6|122 003022 aa 775117 3520 04 epp2 -1457,ic 000141 = 526000000040 003023 aa 6 00174 2521 00 spri2 pr6|124 003024 aa 775054 3520 04 epp2 -1492,ic 000100 = 524000000073 003025 aa 6 00176 2521 00 spri2 pr6|126 003026 aa 6 00042 3515 20 epp1 pr6|34,* 003027 aa 1 00000 3521 20 epp2 pr1|0,* 003030 aa 6 00200 2521 00 spri2 pr6|128 003031 aa 6 00107 3521 00 epp2 pr6|71 003032 aa 6 00202 2521 00 spri2 pr6|130 003033 aa 6 00156 6211 00 eax1 pr6|110 003034 aa 024000 4310 07 fld 10240,dl 003035 aa 6 00044 3701 20 epp4 pr6|36,* 003036 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003037 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 378 rvl.abandoned (pvindex) = "1"b; 003040 aa 6 00040 3735 20 epp7 pr6|32,* 003041 aa 7 00307 2361 00 ldq pr7|199 pvindex 003042 aa 000036 4020 07 mpy 30,dl 003043 aa 400000 2350 03 lda 131072,du 003044 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 003045 aa 5 00001 2551 06 orsa pr5|1,ql rvl.abandoned STATEMENT 1 ON LINE 379 return; 003046 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 380 end; STATEMENT 1 ON LINE 381 end; STATEMENT 1 ON LINE 382 call hcs_$make_seg (temp_dir_in, (rvl.ename (pvindex)), "", 01010b, ptr_in2, code); 003047 aa 7 00307 2361 00 ldq pr7|199 pvindex 003050 aa 000036 4020 07 mpy 30,dl 003051 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 003052 aa 5 77764 3715 06 epp5 pr5|-12,ql rvl.ename 003053 aa 000 100 100 500 mlr (pr),(pr),fill(000) 003054 aa 5 00000 00 0040 desc9a pr5|0,32 rvl.ename 003055 aa 6 00110 00 0040 desc9a pr6|72,32 003056 aa 000012 2360 07 ldq 10,dl 003057 aa 6 00155 7561 00 stq pr6|109 003060 aa 6 00032 3535 20 epp3 pr6|26,* 003061 aa 3 00002 3521 20 epp2 pr3|2,* temp_dir_in 003062 aa 6 00206 2521 00 spri2 pr6|134 003063 aa 6 00110 3521 00 epp2 pr6|72 003064 aa 6 00210 2521 00 spri2 pr6|136 003065 aa 6 00107 3521 00 epp2 pr6|71 003066 aa 6 00212 2521 00 spri2 pr6|138 003067 aa 6 00155 3521 00 epp2 pr6|109 003070 aa 6 00214 2521 00 spri2 pr6|140 003071 aa 3 00006 3521 20 epp2 pr3|6,* ptr_in2 003072 aa 6 00216 2521 00 spri2 pr6|142 003073 aa 7 00511 3521 00 epp2 pr7|329 code 003074 aa 6 00220 2521 00 spri2 pr6|144 003075 aa 6 00042 3515 20 epp1 pr6|34,* 003076 aa 1 00000 3521 20 epp2 pr1|0,* 003077 aa 6 00222 2521 00 spri2 pr6|146 003100 aa 775021 3520 04 epp2 -1519,ic 000121 = 524000000040 003101 aa 6 00224 2521 00 spri2 pr6|148 003102 aa 774775 3520 04 epp2 -1539,ic 000077 = 524000000000 003103 aa 6 00226 2521 00 spri2 pr6|150 003104 aa 775026 3520 04 epp2 -1514,ic 000132 = 404000000005 003105 aa 6 00230 2521 00 spri2 pr6|152 003106 aa 775010 3520 04 epp2 -1528,ic 000116 = 464000000000 003107 aa 6 00232 2521 00 spri2 pr6|154 003110 aa 775020 3520 04 epp2 -1520,ic 000130 = 404000000043 003111 aa 6 00234 2521 00 spri2 pr6|156 003112 aa 6 00204 6211 00 eax1 pr6|132 003113 aa 030000 4310 07 fld 12288,dl 003114 aa 6 00044 3701 20 epp4 pr6|36,* 003115 la 4 00074 3521 20 epp2 pr4|60,* hcs_$make_seg 003116 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 383 if (code = 0 | code = error_table_$namedup | code = error_table_$segknown) then ; 003117 aa 6 00040 3735 20 epp7 pr6|32,* 003120 aa 7 00511 2361 00 ldq pr7|329 code 003121 aa 000060 6000 04 tze 48,ic 003201 003122 aa 6 00044 3701 20 epp4 pr6|36,* 003123 la 4 00020 1161 20 cmpq pr4|16,* error_table_$namedup 003124 aa 000055 6000 04 tze 45,ic 003201 003125 la 4 00016 1161 20 cmpq pr4|14,* error_table_$segknown 003126 aa 000002 6010 04 tnz 2,ic 003130 003127 aa 000052 7100 04 tra 42,ic 003201 STATEMENT 1 ON LINE 386 else do; STATEMENT 1 ON LINE 387 call com_err_ (code, myname, "Unable to create volog seg ^a>^a. Recovery for it will be abandoned.", temp_dir_in, rvl.ename (pvindex)); 003130 aa 774771 2360 04 ldq -1543,ic 000121 = 524000000040 003131 aa 6 00155 7561 00 stq pr6|109 003132 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003133 aa 775314 00 0104 desc9a -1332,68 000446 = 125156141142 003134 aa 6 00156 00 0104 desc9a pr6|110,68 003135 aa 7 00307 2361 00 ldq pr7|199 pvindex 003136 aa 000036 4020 07 mpy 30,dl 003137 aa 7 00511 3521 00 epp2 pr7|329 code 003140 aa 6 00206 2521 00 spri2 pr6|134 003141 aa 774642 3520 04 epp2 -1630,ic 000003 = 162145143157 003142 aa 6 00210 2521 00 spri2 pr6|136 003143 aa 6 00156 3521 00 epp2 pr6|110 003144 aa 6 00212 2521 00 spri2 pr6|138 003145 aa 6 00032 3715 20 epp5 pr6|26,* 003146 aa 5 00002 3521 20 epp2 pr5|2,* temp_dir_in 003147 aa 6 00214 2521 00 spri2 pr6|140 003150 aa 7 00532 3535 20 epp3 pr7|346,* rvlp 003151 aa 3 77764 3521 06 epp2 pr3|-12,ql rvl.ename 003152 aa 6 00216 2521 00 spri2 pr6|142 003153 aa 774755 3520 04 epp2 -1555,ic 000130 = 404000000043 003154 aa 6 00220 2521 00 spri2 pr6|144 003155 aa 774764 3520 04 epp2 -1548,ic 000141 = 526000000040 003156 aa 6 00222 2521 00 spri2 pr6|146 003157 aa 774740 3520 04 epp2 -1568,ic 000117 = 524000000104 003160 aa 6 00224 2521 00 spri2 pr6|148 003161 aa 6 00042 3515 20 epp1 pr6|34,* 003162 aa 1 00000 3521 20 epp2 pr1|0,* 003163 aa 6 00226 2521 00 spri2 pr6|150 003164 aa 6 00155 3521 00 epp2 pr6|109 003165 aa 6 00230 2521 00 spri2 pr6|152 003166 aa 6 00204 6211 00 eax1 pr6|132 003167 aa 024000 4310 07 fld 10240,dl 003170 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003171 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 389 rvl.abandoned (pvindex) = "1"b; 003172 aa 6 00040 3735 20 epp7 pr6|32,* 003173 aa 7 00307 2361 00 ldq pr7|199 pvindex 003174 aa 000036 4020 07 mpy 30,dl 003175 aa 400000 2350 03 lda 131072,du 003176 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 003177 aa 5 00001 2551 06 orsa pr5|1,ql rvl.abandoned STATEMENT 1 ON LINE 390 return; 003200 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 391 end; STATEMENT 1 ON LINE 393 call hcs_$fs_move_seg (ptr_in1, ptr_in2, 1, code); 003201 aa 000001 2360 07 ldq 1,dl 003202 aa 6 00155 7561 00 stq pr6|109 003203 aa 6 00032 3715 20 epp5 pr6|26,* 003204 aa 5 00004 3521 20 epp2 pr5|4,* ptr_in1 003205 aa 6 00122 2521 00 spri2 pr6|82 003206 aa 5 00006 3521 20 epp2 pr5|6,* ptr_in2 003207 aa 6 00124 2521 00 spri2 pr6|84 003210 aa 6 00155 3521 00 epp2 pr6|109 003211 aa 6 00126 2521 00 spri2 pr6|86 003212 aa 7 00511 3521 00 epp2 pr7|329 code 003213 aa 6 00130 2521 00 spri2 pr6|88 003214 aa 6 00120 6211 00 eax1 pr6|80 003215 aa 020000 4310 07 fld 8192,dl 003216 aa 6 00044 3701 20 epp4 pr6|36,* 003217 la 4 00076 3521 20 epp2 pr4|62,* hcs_$fs_move_seg 003220 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 394 if code ^= 0 then do; 003221 aa 6 00040 3735 20 epp7 pr6|32,* 003222 aa 7 00511 2361 00 ldq pr7|329 code 003223 aa 000034 6000 04 tze 28,ic 003257 STATEMENT 1 ON LINE 395 call com_err_ (code, myname, "Unable to move volog from temp seg to target. Recovery for it will be abandoned."); 003224 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003225 aa 775305 00 0120 desc9a -1339,80 000531 = 125156141142 003226 aa 6 00156 00 0120 desc9a pr6|110,80 003227 aa 7 00511 3521 00 epp2 pr7|329 code 003230 aa 6 00122 2521 00 spri2 pr6|82 003231 aa 774552 3520 04 epp2 -1686,ic 000003 = 162145143157 003232 aa 6 00124 2521 00 spri2 pr6|84 003233 aa 6 00156 3521 00 epp2 pr6|110 003234 aa 6 00126 2521 00 spri2 pr6|86 003235 aa 774673 3520 04 epp2 -1605,ic 000130 = 404000000043 003236 aa 6 00130 2521 00 spri2 pr6|88 003237 aa 774702 3520 04 epp2 -1598,ic 000141 = 526000000040 003240 aa 6 00132 2521 00 spri2 pr6|90 003241 aa 774635 3520 04 epp2 -1635,ic 000076 = 524000000120 003242 aa 6 00134 2521 00 spri2 pr6|92 003243 aa 6 00120 6211 00 eax1 pr6|80 003244 aa 014000 4310 07 fld 6144,dl 003245 aa 6 00044 3701 20 epp4 pr6|36,* 003246 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003247 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 396 rvl.abandoned (pvindex) = "1"b; 003250 aa 6 00040 3735 20 epp7 pr6|32,* 003251 aa 7 00307 2361 00 ldq pr7|199 pvindex 003252 aa 000036 4020 07 mpy 30,dl 003253 aa 400000 2350 03 lda 131072,du 003254 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 003255 aa 5 00001 2551 06 orsa pr5|1,ql rvl.abandoned STATEMENT 1 ON LINE 397 return; 003256 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 398 end; STATEMENT 1 ON LINE 399 end delete_make_and_move; 003257 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE delete_make_and_move BEGIN PROCEDURE validate_all_vologs ENTRY TO validate_all_vologs STATEMENT 1 ON LINE 404 validate_all_vologs: proc () returns (bit (1)); 003260 aa 6 00576 6501 00 spri4 pr6|382 003261 aa 6 00600 2521 00 spri2 pr6|384 STATEMENT 1 ON LINE 407 003262 aa 6 00605 4501 00 stz pr6|389 mismatch STATEMENT 1 ON LINE 410 do i = 1 to rvl.npvs; 003263 aa 6 00532 2361 20 ldq pr6|346,* rvl.npvs 003264 aa 6 00606 7561 00 stq pr6|390 003265 aa 000001 2360 07 ldq 1,dl 003266 aa 6 00604 7561 00 stq pr6|388 i 003267 aa 000000 0110 03 nop 0,du 003270 aa 6 00604 2361 00 ldq pr6|388 i 003271 aa 6 00606 1161 00 cmpq pr6|390 003272 aa 000016 6054 04 tpnz 14,ic 003310 STATEMENT 1 ON LINE 411 if rvl.temp_logp (i) -> backup_volume_log.info.root_pvid = rvl.temp_logp (1) -> backup_volume_log.info.root_pvid then ; 003273 aa 000036 4020 07 mpy 30,dl 003274 aa 6 01011 7561 00 stq pr6|521 003275 aa 6 00532 3735 20 epp7 pr6|346,* rvlp 003276 aa 7 77774 3715 26 epp5 pr7|-4,ql* rvl.temp_logp 003277 aa 5 00553 2351 00 lda pr5|363 backup_volume_log.root_pvid 003300 aa 7 00032 3535 20 epp3 pr7|26,* rvl.temp_logp 003301 aa 3 00553 1151 00 cmpa pr3|363 backup_volume_log.root_pvid 003302 aa 000002 6010 04 tnz 2,ic 003304 003303 aa 000003 7100 04 tra 3,ic 003306 STATEMENT 1 ON LINE 413 else mismatch = "1"b; 003304 aa 400000 2350 03 lda 131072,du 003305 aa 6 00605 7551 00 sta pr6|389 mismatch STATEMENT 1 ON LINE 414 end; 003306 aa 6 00604 0541 00 aos pr6|388 i 003307 aa 777761 7100 04 tra -15,ic 003270 STATEMENT 1 ON LINE 415 return (^mismatch); 003310 aa 6 00605 2351 00 lda pr6|389 mismatch 003311 aa 0 00002 6751 00 era pr0|2 = 400000000000 003312 aa 6 01011 7551 00 sta pr6|521 003313 aa 6 00600 3735 20 epp7 pr6|384,* 003314 aa 7 00002 3715 20 epp5 pr7|2,* 003315 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 003316 aa 6 01011 00 0001 descb pr6|521,1 003317 aa 5 00000 00 0001 descb pr5|0,1 003320 aa 6 00576 6101 00 rtcd pr6|382 STATEMENT 1 ON LINE 416 end validate_all_vologs; END PROCEDURE validate_all_vologs BEGIN PROCEDURE resynch_volume ENTRY TO resynch_volume STATEMENT 1 ON LINE 424 resynch_volume: proc; 003321 aa 6 00110 6501 00 spri4 pr6|72 STATEMENT 1 ON LINE 431 resynching = "1"b; 003322 aa 400000 2350 03 lda 131072,du 003323 aa 6 00040 3735 20 epp7 pr6|32,* 003324 aa 7 00447 7551 00 sta pr7|295 resynching STATEMENT 1 ON LINE 432 input_buf (*) = "0"b; 003325 aa 7 00310 2361 00 ldq pr7|200 char_read 003326 aa 000004 5060 07 div 4,dl 003327 aa 6 00120 7561 00 stq pr6|80 003330 aa 000001 2360 07 ldq 1,dl 003331 aa 6 00116 7561 00 stq pr6|78 003332 aa 6 00040 3735 20 epp7 pr6|32,* 003333 aa 6 00116 7271 00 lxl7 pr6|78 003334 aa 7 00546 3715 20 epp5 pr7|358,* recordp 003335 aa 5 77777 3735 17 epp7 pr5|-1,7 input_buf 003336 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 003337 aa 000000 00 0000 descb 0,0 003340 aa 7 00000 00 0044 descb pr7|0,36 input_buf 003341 aa 6 00116 2361 00 ldq pr6|78 003342 aa 6 00116 0541 00 aos pr6|78 003343 aa 6 00120 1161 00 cmpq pr6|80 003344 aa 777766 6040 04 tmi -10,ic 003332 STATEMENT 1 ON LINE 433 new_tape = "0"b; 003345 aa 6 00040 3535 20 epp3 pr6|32,* 003346 aa 3 00444 4501 00 stz pr3|292 new_tape STATEMENT 1 ON LINE 434 read_char = CHARS_PER_WORD * size (backup_volume_header); 003347 aa 000040 2360 07 ldq 32,dl 003350 aa 3 00311 7561 00 stq pr3|201 read_char STATEMENT 1 ON LINE 435 call read (recordp, read_char, char_read, ^DELIMITED, code); 003351 aa 400000 2350 03 lda 131072,du 003352 aa 0 00002 6751 00 era pr0|2 = 400000000000 003353 aa 6 00120 7551 00 sta pr6|80 003354 aa 3 00546 3521 00 epp2 pr3|358 recordp 003355 aa 6 00124 2521 00 spri2 pr6|84 003356 aa 3 00311 3521 00 epp2 pr3|201 read_char 003357 aa 6 00126 2521 00 spri2 pr6|86 003360 aa 3 00310 3521 00 epp2 pr3|200 char_read 003361 aa 6 00130 2521 00 spri2 pr6|88 003362 aa 6 00120 3521 00 epp2 pr6|80 003363 aa 6 00132 2521 00 spri2 pr6|90 003364 aa 3 00511 3521 00 epp2 pr3|329 code 003365 aa 6 00134 2521 00 spri2 pr6|92 003366 aa 000001 7270 07 lxl7 1,dl 003367 aa 6 00122 6211 00 eax1 pr6|82 003370 aa 024000 4310 07 fld 10240,dl 003371 aa 001030 3520 04 epp2 536,ic 004421 = 000140627000 003372 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 436 call check_input_error; 003373 aa 000001 7270 07 lxl7 1,dl 003374 aa 6 00056 6211 00 eax1 pr6|46 003375 aa 000000 4310 07 fld 0,dl 003376 aa 000234 3520 04 epp2 156,ic 003632 = 000240627000 003377 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 438 if new_tape then goto search_loop; 003400 aa 6 00040 3735 20 epp7 pr6|32,* 003401 aa 7 00444 2351 00 lda pr7|292 new_tape 003402 aa 000004 6000 04 tze 4,ic 003406 003403 aa 776000 3520 04 epp2 -1024,ic 001403 = 600307450100 003404 aa 000001 7270 07 lxl7 1,dl 003405 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 439 words_skipped = 0; 003406 aa 6 00040 3735 20 epp7 pr6|32,* 003407 aa 7 00305 4501 00 stz pr7|197 words_skipped STATEMENT 1 ON LINE 440 test: if word (1) = pattern1 & word (4) = pattern2 & word (7) = pattern3 then do; 003410 aa 6 00040 3735 20 epp7 pr6|32,* 003411 aa 7 00546 3715 20 epp5 pr7|358,* recordp 003412 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 003413 aa 5 00000 00 0044 descb pr5|0,36 word 003414 aa 774370 00 0044 descb -1800,36 000002 = 670314355245 003415 aa 000050 6010 04 tnz 40,ic 003465 003416 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 003417 aa 5 00003 00 0044 descb pr5|3,36 word 003420 aa 774363 00 0044 descb -1805,36 000001 = 512556146073 003421 aa 000044 6010 04 tnz 36,ic 003465 003422 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 003423 aa 5 00006 00 0044 descb pr5|6,36 word 003424 aa 774356 00 0044 descb -1810,36 000000 = 107463422532 003425 aa 000040 6010 04 tnz 32,ic 003465 STATEMENT 1 ON LINE 441 call com_err_ (0, myname, "Synchronization completed ^d words skipped", words_skipped); 003426 aa 6 00120 4501 00 stz pr6|80 003427 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003430 aa 774715 00 0054 desc9a -1587,44 000344 = 123171156143 003431 aa 6 00122 00 0054 desc9a pr6|82,44 003432 aa 6 00120 3521 00 epp2 pr6|80 003433 aa 6 00142 2521 00 spri2 pr6|98 003434 aa 774347 3520 04 epp2 -1817,ic 000003 = 162145143157 003435 aa 6 00144 2521 00 spri2 pr6|100 003436 aa 6 00122 3521 00 epp2 pr6|82 003437 aa 6 00146 2521 00 spri2 pr6|102 003440 aa 7 00305 3521 00 epp2 pr7|197 words_skipped 003441 aa 6 00150 2521 00 spri2 pr6|104 003442 aa 774470 3520 04 epp2 -1736,ic 000132 = 404000000005 003443 aa 6 00152 2521 00 spri2 pr6|106 003444 aa 774475 3520 04 epp2 -1731,ic 000141 = 526000000040 003445 aa 6 00154 2521 00 spri2 pr6|108 003446 aa 774427 3520 04 epp2 -1769,ic 000075 = 524000000052 003447 aa 6 00156 2521 00 spri2 pr6|110 003450 aa 774467 3520 04 epp2 -1737,ic 000137 = 404000000021 003451 aa 6 00160 2521 00 spri2 pr6|112 003452 aa 6 00140 6211 00 eax1 pr6|96 003453 aa 020000 4310 07 fld 8192,dl 003454 aa 6 00044 3701 20 epp4 pr6|36,* 003455 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003456 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 443 resynching = "0"b; 003457 aa 6 00040 3735 20 epp7 pr6|32,* 003460 aa 7 00447 4501 00 stz pr7|295 resynching STATEMENT 1 ON LINE 444 delimited = "0"b; 003461 aa 7 00450 4501 00 stz pr7|296 delimited STATEMENT 1 ON LINE 445 code = 0; 003462 aa 7 00511 4501 00 stz pr7|329 code STATEMENT 1 ON LINE 446 goto pattern_match_label; 003463 aa 7 00454 3521 00 epp2 pr7|300 pattern_match_label 003464 aa 0 00660 7101 00 tra pr0|432 tra_ext_2 STATEMENT 1 ON LINE 447 end; STATEMENT 1 ON LINE 449 string = substr (string, 37, (size (backup_volume_header) - 1) * BITS_PER_WORD); 003465 aa 000440 2360 07 ldq 288,dl 003466 aa 6 00120 7561 00 stq pr6|80 003467 aa 000374 2360 07 ldq 252,dl 003470 aa 6 00120 2351 00 lda pr6|80 003471 aa 003 140 060 540 csl (pr,rl),(pr,rl),fill(0),bool(move) 003472 aa 5 00001 00 0006 descb pr5|1,ql string 003473 aa 5 00000 00 0005 descb pr5|0,al string STATEMENT 1 ON LINE 450 new_tape = "0"b; 003474 aa 7 00444 4501 00 stz pr7|292 new_tape STATEMENT 1 ON LINE 451 read_char = CHARS_PER_WORD; 003475 aa 000004 2360 07 ldq 4,dl 003476 aa 7 00311 7561 00 stq pr7|201 read_char STATEMENT 1 ON LINE 452 call read (addr (word (size (backup_volume_header))), read_char, char_read, ^DELIMITED, code); 003477 aa 5 00007 3521 00 epp2 pr5|7 word 003500 aa 6 00162 2521 00 spri2 pr6|114 003501 aa 400000 2350 03 lda 131072,du 003502 aa 0 00002 6751 00 era pr0|2 = 400000000000 003503 aa 6 00120 7551 00 sta pr6|80 003504 aa 6 00162 3521 00 epp2 pr6|114 003505 aa 6 00124 2521 00 spri2 pr6|84 003506 aa 7 00311 3521 00 epp2 pr7|201 read_char 003507 aa 6 00126 2521 00 spri2 pr6|86 003510 aa 7 00310 3521 00 epp2 pr7|200 char_read 003511 aa 6 00130 2521 00 spri2 pr6|88 003512 aa 6 00120 3521 00 epp2 pr6|80 003513 aa 6 00132 2521 00 spri2 pr6|90 003514 aa 7 00511 3521 00 epp2 pr7|329 code 003515 aa 6 00134 2521 00 spri2 pr6|92 003516 aa 000001 7270 07 lxl7 1,dl 003517 aa 6 00122 6211 00 eax1 pr6|82 003520 aa 024000 4310 07 fld 10240,dl 003521 aa 000700 3520 04 epp2 448,ic 004421 = 000140627000 003522 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 454 call check_input_error; 003523 aa 000001 7270 07 lxl7 1,dl 003524 aa 6 00056 6211 00 eax1 pr6|46 003525 aa 000000 4310 07 fld 0,dl 003526 aa 000104 3520 04 epp2 68,ic 003632 = 000240627000 003527 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 455 if new_tape then goto search_loop; 003530 aa 6 00040 3735 20 epp7 pr6|32,* 003531 aa 7 00444 2351 00 lda pr7|292 new_tape 003532 aa 000004 6000 04 tze 4,ic 003536 003533 aa 775650 3520 04 epp2 -1112,ic 001403 = 600307450100 003534 aa 000001 7270 07 lxl7 1,dl 003535 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 457 words_skipped = words_skipped + 1; 003536 aa 6 00040 3735 20 epp7 pr6|32,* 003537 aa 7 00305 0541 00 aos pr7|197 words_skipped STATEMENT 1 ON LINE 458 if words_skipped > 1000000 then do; 003540 aa 7 00305 2361 00 ldq pr7|197 words_skipped 003541 aa 774333 1160 04 cmpq -1829,ic 000074 = 000003641100 003542 aa 777646 6044 04 tmoz -90,ic 003410 STATEMENT 1 ON LINE 459 call com_err_ (0, myname, "Resynchronization failed"); 003543 aa 6 00120 4501 00 stz pr6|80 003544 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003545 aa 774461 00 0030 desc9a -1743,24 000225 = 122145163171 003546 aa 6 00122 00 0030 desc9a pr6|82,24 003547 aa 6 00120 3521 00 epp2 pr6|80 003550 aa 6 00142 2521 00 spri2 pr6|98 003551 aa 774232 3520 04 epp2 -1894,ic 000003 = 162145143157 003552 aa 6 00144 2521 00 spri2 pr6|100 003553 aa 6 00122 3521 00 epp2 pr6|82 003554 aa 6 00146 2521 00 spri2 pr6|102 003555 aa 774355 3520 04 epp2 -1811,ic 000132 = 404000000005 003556 aa 6 00150 2521 00 spri2 pr6|104 003557 aa 774362 3520 04 epp2 -1806,ic 000141 = 526000000040 003560 aa 6 00152 2521 00 spri2 pr6|106 003561 aa 774312 3520 04 epp2 -1846,ic 000073 = 524000000030 003562 aa 6 00154 2521 00 spri2 pr6|108 003563 aa 6 00140 6211 00 eax1 pr6|96 003564 aa 014000 4310 07 fld 6144,dl 003565 aa 6 00044 3701 20 epp4 pr6|36,* 003566 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003567 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 460 code = error_table_$end_of_info; 003570 aa 6 00044 3701 20 epp4 pr6|36,* 003571 la 4 00024 2361 20 ldq pr4|20,* error_table_$end_of_info 003572 aa 6 00040 3735 20 epp7 pr6|32,* 003573 aa 7 00511 7561 00 stq pr7|329 code STATEMENT 1 ON LINE 461 call check_input_error; 003574 aa 000001 7270 07 lxl7 1,dl 003575 aa 6 00056 6211 00 eax1 pr6|46 003576 aa 000000 4310 07 fld 0,dl 003577 aa 000033 3520 04 epp2 27,ic 003632 = 000240627000 003600 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 462 goto search_loop; 003601 aa 775602 3520 04 epp2 -1150,ic 001403 = 600307450100 003602 aa 000001 7270 07 lxl7 1,dl 003603 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 463 end; STATEMENT 1 ON LINE 464 goto test; 003604 aa 777604 7100 04 tra -124,ic 003410 STATEMENT 1 ON LINE 466 end resynch_volume; END PROCEDURE resynch_volume BEGIN PROCEDURE skip_chars ENTRY TO skip_chars STATEMENT 1 ON LINE 473 skip_chars: proc; 003605 aa 6 00610 6501 00 spri4 pr6|392 STATEMENT 1 ON LINE 477 call read (objectp, read_char, char_read, delimited, code); 003606 aa 6 00514 3521 00 epp2 pr6|332 objectp 003607 aa 6 01014 2521 00 spri2 pr6|524 003610 aa 6 00311 3521 00 epp2 pr6|201 read_char 003611 aa 6 01016 2521 00 spri2 pr6|526 003612 aa 6 00310 3521 00 epp2 pr6|200 char_read 003613 aa 6 01020 2521 00 spri2 pr6|528 003614 aa 6 00450 3521 00 epp2 pr6|296 delimited 003615 aa 6 01022 2521 00 spri2 pr6|530 003616 aa 6 00511 3521 00 epp2 pr6|329 code 003617 aa 6 01024 2521 00 spri2 pr6|532 003620 aa 6 01012 6211 00 eax1 pr6|522 003621 aa 024000 4310 07 fld 10240,dl 003622 aa 000577 3520 04 epp2 383,ic 004421 = 000140627000 003623 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 478 call check_input_error; 003624 aa 6 00056 6211 00 eax1 pr6|46 003625 aa 000000 4310 07 fld 0,dl 003626 aa 000004 3520 04 epp2 4,ic 003632 = 000240627000 003627 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 480 end skip_chars; 003630 aa 6 00610 6101 00 rtcd pr6|392 END PROCEDURE skip_chars BEGIN PROCEDURE check_input_error ENTRY TO check_input_error STATEMENT 1 ON LINE 485 check_input_error: proc; 003631 da 000516200000 003632 aa 000240 6270 00 eax7 160 003633 aa 7 00034 3521 20 epp2 pr7|28,* 003634 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 003635 aa 000000000000 003636 aa 000000000000 STATEMENT 1 ON LINE 492 new_tape = "0"b; 003637 aa 6 00040 3735 20 epp7 pr6|32,* 003640 aa 7 00444 4501 00 stz pr7|292 new_tape STATEMENT 1 ON LINE 493 if read_char ^= char_read | code ^= 0 then do; 003641 aa 7 00311 2361 00 ldq pr7|201 read_char 003642 aa 7 00310 1161 00 cmpq pr7|200 char_read 003643 aa 000003 6010 04 tnz 3,ic 003646 003644 aa 7 00511 2361 00 ldq pr7|329 code 003645 aa 000306 6000 04 tze 198,ic 004153 STATEMENT 1 ON LINE 494 if (code = error_table_$end_of_info) | (code = error_table_$device_end) then do; 003646 aa 7 00511 2361 00 ldq pr7|329 code 003647 la 4 00024 1161 20 cmpq pr4|20,* error_table_$end_of_info 003650 aa 000003 6000 04 tze 3,ic 003653 003651 la 4 00022 1161 20 cmpq pr4|18,* error_table_$device_end 003652 aa 000043 6010 04 tnz 35,ic 003715 STATEMENT 1 ON LINE 495 call detach; 003653 aa 000001 7270 07 lxl7 1,dl 003654 aa 6 00056 6211 00 eax1 pr6|46 003655 aa 000000 4310 07 fld 0,dl 003656 aa 776264 3520 04 epp2 -844,ic 002142 = 000120627000 003657 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 496 if (all_vologs_found ()) | (^not_all_abandoned ()) then goto finish_all_temp; 003660 aa 001644 3520 04 epp2 932,ic 005524 = 000002000000 003661 aa 776153 6700 04 tsp4 -917,ic 002034 003662 aa 6 00165 3521 00 epp2 pr6|117 003663 aa 6 00170 2521 00 spri2 pr6|120 003664 aa 000001 7270 07 lxl7 1,dl 003665 aa 6 00166 6211 00 eax1 pr6|118 003666 aa 004000 4310 07 fld 2048,dl 003667 aa 776206 3520 04 epp2 -890,ic 002075 = 000120627000 003670 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 003671 aa 6 00165 2351 00 lda pr6|117 003672 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 003673 aa 0 00002 6751 00 era pr0|2 = 400000000000 003674 aa 6 00165 7551 00 sta pr6|117 003675 aa 6 00164 2351 00 lda pr6|116 003676 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 003677 aa 6 00165 2751 00 ora pr6|117 003700 aa 000004 6000 04 tze 4,ic 003704 003701 aa 775732 3520 04 epp2 -1062,ic 001633 = 003675352004 003702 aa 000001 7270 07 lxl7 1,dl 003703 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 498 else do; STATEMENT 1 ON LINE 499 call attach; 003704 aa 000001 7270 07 lxl7 1,dl 003705 aa 6 00056 6211 00 eax1 pr6|46 003706 aa 000000 4310 07 fld 0,dl 003707 aa 776405 3520 04 epp2 -763,ic 002314 = 000160627000 003710 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 500 new_tape = "1"b; 003711 aa 400000 2350 03 lda 131072,du 003712 aa 6 00040 3735 20 epp7 pr6|32,* 003713 aa 7 00444 7551 00 sta pr7|292 new_tape STATEMENT 1 ON LINE 501 end; STATEMENT 1 ON LINE 502 return; 003714 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 503 end; STATEMENT 1 ON LINE 504 else if resynching then do; 003715 aa 7 00447 2351 00 lda pr7|295 resynching 003716 aa 000034 6000 04 tze 28,ic 003752 STATEMENT 1 ON LINE 505 call com_err_ (code, myname, "I/O error reading input volume"); 003717 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003720 aa 774374 00 0040 desc9a -1796,32 000313 = 111057117040 003721 aa 6 00174 00 0040 desc9a pr6|124,32 003722 aa 7 00511 3521 00 epp2 pr7|329 code 003723 aa 6 00206 2521 00 spri2 pr6|134 003724 aa 774057 3520 04 epp2 -2001,ic 000003 = 162145143157 003725 aa 6 00210 2521 00 spri2 pr6|136 003726 aa 6 00174 3521 00 epp2 pr6|124 003727 aa 6 00212 2521 00 spri2 pr6|138 003730 aa 774200 3520 04 epp2 -1920,ic 000130 = 404000000043 003731 aa 6 00214 2521 00 spri2 pr6|140 003732 aa 774207 3520 04 epp2 -1913,ic 000141 = 526000000040 003733 aa 6 00216 2521 00 spri2 pr6|142 003734 aa 774136 3520 04 epp2 -1954,ic 000072 = 524000000036 003735 aa 6 00220 2521 00 spri2 pr6|144 003736 aa 6 00204 6211 00 eax1 pr6|132 003737 aa 014000 4310 07 fld 6144,dl 003740 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 003741 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 506 call detach; 003742 aa 000001 7270 07 lxl7 1,dl 003743 aa 6 00056 6211 00 eax1 pr6|46 003744 aa 000000 4310 07 fld 0,dl 003745 aa 776175 3520 04 epp2 -899,ic 002142 = 000120627000 003746 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 507 goto finish; 003747 aa 776060 3520 04 epp2 -976,ic 002027 = 600056621100 003750 aa 000001 7270 07 lxl7 1,dl 003751 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 508 end; STATEMENT 1 ON LINE 509 else if ^resynching then do; 003752 aa 000201 6010 04 tnz 129,ic 004153 STATEMENT 1 ON LINE 510 if read_char ^= char_read then do; 003753 aa 7 00311 2361 00 ldq pr7|201 read_char 003754 aa 7 00310 1161 00 cmpq pr7|200 char_read 003755 aa 000102 6000 04 tze 66,ic 004057 STATEMENT 1 ON LINE 511 if code = error_table_$data_loss then call com_err_ (code, myname, "Incomplete object detected"); 003756 aa 7 00511 2361 00 ldq pr7|329 code 003757 la 4 00010 1161 20 cmpq pr4|8,* error_table_$data_loss 003760 aa 000025 6010 04 tnz 21,ic 004005 003761 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003762 aa 774276 00 0034 desc9a -1858,28 000257 = 111156143157 003763 aa 6 00174 00 0034 desc9a pr6|124,28 003764 aa 7 00511 3521 00 epp2 pr7|329 code 003765 aa 6 00206 2521 00 spri2 pr6|134 003766 aa 774015 3520 04 epp2 -2035,ic 000003 = 162145143157 003767 aa 6 00210 2521 00 spri2 pr6|136 003770 aa 6 00174 3521 00 epp2 pr6|124 003771 aa 6 00212 2521 00 spri2 pr6|138 003772 aa 774136 3520 04 epp2 -1954,ic 000130 = 404000000043 003773 aa 6 00214 2521 00 spri2 pr6|140 003774 aa 774145 3520 04 epp2 -1947,ic 000141 = 526000000040 003775 aa 6 00216 2521 00 spri2 pr6|142 003776 aa 774125 3520 04 epp2 -1963,ic 000123 = 524000000032 003777 aa 6 00220 2521 00 spri2 pr6|144 004000 aa 6 00204 6211 00 eax1 pr6|132 004001 aa 014000 4310 07 fld 6144,dl 004002 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004003 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004004 aa 000126 7100 04 tra 86,ic 004132 STATEMENT 1 ON LINE 513 else do; STATEMENT 1 ON LINE 514 if code = 0 then call com_err_ (code, myname, "Read did not complete"); 004005 aa 7 00511 2361 00 ldq pr7|329 code 004006 aa 000025 6010 04 tnz 21,ic 004033 004007 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004010 aa 774210 00 0030 desc9a -1912,24 000217 = 122145141144 004011 aa 6 00166 00 0030 desc9a pr6|118,24 004012 aa 7 00511 3521 00 epp2 pr7|329 code 004013 aa 6 00206 2521 00 spri2 pr6|134 004014 aa 773767 3520 04 epp2 -2057,ic 000003 = 162145143157 004015 aa 6 00210 2521 00 spri2 pr6|136 004016 aa 6 00166 3521 00 epp2 pr6|118 004017 aa 6 00212 2521 00 spri2 pr6|138 004020 aa 774110 3520 04 epp2 -1976,ic 000130 = 404000000043 004021 aa 6 00214 2521 00 spri2 pr6|140 004022 aa 774117 3520 04 epp2 -1969,ic 000141 = 526000000040 004023 aa 6 00216 2521 00 spri2 pr6|142 004024 aa 774045 3520 04 epp2 -2011,ic 000071 = 524000000025 004025 aa 6 00220 2521 00 spri2 pr6|144 004026 aa 6 00204 6211 00 eax1 pr6|132 004027 aa 014000 4310 07 fld 6144,dl 004030 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004031 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004032 aa 000100 7100 04 tra 64,ic 004132 STATEMENT 1 ON LINE 515 else call com_err_ (code, myname, "I/O error reading input volume"); 004033 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004034 aa 774260 00 0040 desc9a -1872,32 000313 = 111057117040 004035 aa 6 00174 00 0040 desc9a pr6|124,32 004036 aa 7 00511 3521 00 epp2 pr7|329 code 004037 aa 6 00206 2521 00 spri2 pr6|134 004040 aa 773743 3520 04 epp2 -2077,ic 000003 = 162145143157 004041 aa 6 00210 2521 00 spri2 pr6|136 004042 aa 6 00174 3521 00 epp2 pr6|124 004043 aa 6 00212 2521 00 spri2 pr6|138 004044 aa 774064 3520 04 epp2 -1996,ic 000130 = 404000000043 004045 aa 6 00214 2521 00 spri2 pr6|140 004046 aa 774073 3520 04 epp2 -1989,ic 000141 = 526000000040 004047 aa 6 00216 2521 00 spri2 pr6|142 004050 aa 774022 3520 04 epp2 -2030,ic 000072 = 524000000036 004051 aa 6 00220 2521 00 spri2 pr6|144 004052 aa 6 00204 6211 00 eax1 pr6|132 004053 aa 014000 4310 07 fld 6144,dl 004054 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004055 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 516 end; STATEMENT 1 ON LINE 517 end; 004056 aa 000054 7100 04 tra 44,ic 004132 STATEMENT 1 ON LINE 518 else do; STATEMENT 1 ON LINE 519 if code = -1 then call com_err_ (0, myname, "Invalid dump record header"); 004057 aa 7 00511 2361 00 ldq pr7|329 code 004060 aa 001462 1160 04 cmpq 818,ic 005542 = 777777777777 004061 aa 000026 6010 04 tnz 22,ic 004107 004062 aa 6 00165 4501 00 stz pr6|117 004063 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004064 aa 774165 00 0034 desc9a -1931,28 000250 = 111156166141 004065 aa 6 00174 00 0034 desc9a pr6|124,28 004066 aa 6 00165 3521 00 epp2 pr6|117 004067 aa 6 00206 2521 00 spri2 pr6|134 004070 aa 773713 3520 04 epp2 -2101,ic 000003 = 162145143157 004071 aa 6 00210 2521 00 spri2 pr6|136 004072 aa 6 00174 3521 00 epp2 pr6|124 004073 aa 6 00212 2521 00 spri2 pr6|138 004074 aa 774036 3520 04 epp2 -2018,ic 000132 = 404000000005 004075 aa 6 00214 2521 00 spri2 pr6|140 004076 aa 774043 3520 04 epp2 -2013,ic 000141 = 526000000040 004077 aa 6 00216 2521 00 spri2 pr6|142 004100 aa 774023 3520 04 epp2 -2029,ic 000123 = 524000000032 004101 aa 6 00220 2521 00 spri2 pr6|144 004102 aa 6 00204 6211 00 eax1 pr6|132 004103 aa 014000 4310 07 fld 6144,dl 004104 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004105 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004106 aa 000024 7100 04 tra 20,ic 004132 STATEMENT 1 ON LINE 520 else call com_err_ (code, myname, "I/O error reading input volume"); 004107 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004110 aa 774204 00 0040 desc9a -1916,32 000313 = 111057117040 004111 aa 6 00174 00 0040 desc9a pr6|124,32 004112 aa 7 00511 3521 00 epp2 pr7|329 code 004113 aa 6 00206 2521 00 spri2 pr6|134 004114 aa 773667 3520 04 epp2 -2121,ic 000003 = 162145143157 004115 aa 6 00210 2521 00 spri2 pr6|136 004116 aa 6 00174 3521 00 epp2 pr6|124 004117 aa 6 00212 2521 00 spri2 pr6|138 004120 aa 774010 3520 04 epp2 -2040,ic 000130 = 404000000043 004121 aa 6 00214 2521 00 spri2 pr6|140 004122 aa 774017 3520 04 epp2 -2033,ic 000141 = 526000000040 004123 aa 6 00216 2521 00 spri2 pr6|142 004124 aa 773746 3520 04 epp2 -2074,ic 000072 = 524000000036 004125 aa 6 00220 2521 00 spri2 pr6|144 004126 aa 6 00204 6211 00 eax1 pr6|132 004127 aa 014000 4310 07 fld 6144,dl 004130 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004131 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 521 end; STATEMENT 1 ON LINE 522 call ioa_ ("^a: Resynching started", myname); 004132 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004133 aa 774057 00 0030 desc9a -2001,24 000211 = 136141072040 004134 aa 6 00166 00 0030 desc9a pr6|118,24 004135 aa 6 00166 3521 00 epp2 pr6|118 004136 aa 6 00206 2521 00 spri2 pr6|134 004137 aa 773644 3520 04 epp2 -2140,ic 000003 = 162145143157 004140 aa 6 00210 2521 00 spri2 pr6|136 004141 aa 773727 3520 04 epp2 -2089,ic 000070 = 524000000026 004142 aa 6 00212 2521 00 spri2 pr6|138 004143 aa 773776 3520 04 epp2 -2050,ic 000141 = 526000000040 004144 aa 6 00214 2521 00 spri2 pr6|140 004145 aa 6 00204 6211 00 eax1 pr6|132 004146 aa 010000 4310 07 fld 4096,dl 004147 aa 6 00044 3701 20 epp4 pr6|36,* 004150 la 4 00070 3521 20 epp2 pr4|56,* ioa_ 004151 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 523 call resynch_volume; 004152 aa 777147 6700 04 tsp4 -409,ic 003321 STATEMENT 1 ON LINE 524 end; STATEMENT 1 ON LINE 525 end; STATEMENT 1 ON LINE 526 end check_input_error; 004153 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE check_input_error BEGIN PROCEDURE read_volume_record ENTRY TO read_volume_record STATEMENT 1 ON LINE 533 read_volume_record: proc; 004154 aa 6 00616 6501 00 spri4 pr6|398 STATEMENT 1 ON LINE 539 pattern_match_label = pattern_match; 004155 aa 000054 3520 04 epp2 44,ic 004231 = 000040236007 004156 aa 6 00454 2521 00 spri2 pr6|300 pattern_match_label 004157 aa 6 00456 6521 00 spri6 pr6|302 pattern_match_label STATEMENT 1 ON LINE 540 new_tape = "0"b; 004160 aa 6 00444 4501 00 stz pr6|292 new_tape STATEMENT 1 ON LINE 541 delimited = "0"b; 004161 aa 6 00450 4501 00 stz pr6|296 delimited STATEMENT 1 ON LINE 542 read_char = CHARS_PER_WORD * size (backup_volume_header); 004162 aa 000040 2360 07 ldq 32,dl 004163 aa 6 00311 7561 00 stq pr6|201 read_char STATEMENT 1 ON LINE 543 call read (recordp, read_char, char_read, delimited, code); 004164 aa 6 00546 3521 00 epp2 pr6|358 recordp 004165 aa 6 01032 2521 00 spri2 pr6|538 004166 aa 6 00311 3521 00 epp2 pr6|201 read_char 004167 aa 6 01034 2521 00 spri2 pr6|540 004170 aa 6 00310 3521 00 epp2 pr6|200 char_read 004171 aa 6 01036 2521 00 spri2 pr6|542 004172 aa 6 00450 3521 00 epp2 pr6|296 delimited 004173 aa 6 01040 2521 00 spri2 pr6|544 004174 aa 6 00511 3521 00 epp2 pr6|329 code 004175 aa 6 01042 2521 00 spri2 pr6|546 004176 aa 6 01030 6211 00 eax1 pr6|536 004177 aa 024000 4310 07 fld 10240,dl 004200 aa 000221 3520 04 epp2 145,ic 004421 = 000140627000 004201 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 544 call check_input_error; 004202 aa 6 00056 6211 00 eax1 pr6|46 004203 aa 000000 4310 07 fld 0,dl 004204 aa 777426 3520 04 epp2 -234,ic 003632 = 000240627000 004205 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 545 if new_tape then return; 004206 aa 6 00444 2351 00 lda pr6|292 new_tape 004207 aa 000002 6000 04 tze 2,ic 004211 004210 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 546 if backup_volume_record.pattern1 ^= pattern1 | backup_volume_record.pattern2 ^= pattern2 | backup_volume_record.pattern3 ^= pattern3 then do; 004211 aa 6 00546 2351 20 lda pr6|358,* backup_volume_record.pattern1 004212 aa 773570 1150 04 cmpa -2184,ic 000002 = 670314355245 004213 aa 000010 6010 04 tnz 8,ic 004223 004214 aa 6 00546 3735 20 epp7 pr6|358,* recordp 004215 aa 7 00003 2351 00 lda pr7|3 backup_volume_record.pattern2 004216 aa 773563 1150 04 cmpa -2189,ic 000001 = 512556146073 004217 aa 000004 6010 04 tnz 4,ic 004223 004220 aa 7 00006 2351 00 lda pr7|6 backup_volume_record.pattern3 004221 aa 773557 1150 04 cmpa -2193,ic 000000 = 107463422532 004222 aa 000007 6000 04 tze 7,ic 004231 STATEMENT 1 ON LINE 549 code = -1; 004223 aa 000001 3360 07 lcq 1,dl 004224 aa 6 00511 7561 00 stq pr6|329 code STATEMENT 1 ON LINE 550 call check_input_error; 004225 aa 6 00056 6211 00 eax1 pr6|46 004226 aa 000000 4310 07 fld 0,dl 004227 aa 777403 3520 04 epp2 -253,ic 003632 = 000240627000 004230 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 551 end; STATEMENT 1 ON LINE 552 pattern_match: read_char = backup_volume_record.rec1_len - size (backup_volume_header) * CHARS_PER_WORD; 004231 aa 000040 2360 07 ldq 32,dl 004232 aa 6 01046 7561 00 stq pr6|550 004233 aa 6 00546 3735 20 epp7 pr6|358,* recordp 004234 aa 7 00002 2361 00 ldq pr7|2 backup_volume_record.rec1_len 004235 aa 6 01046 1761 00 sbq pr6|550 004236 aa 6 00311 7561 00 stq pr6|201 read_char STATEMENT 1 ON LINE 554 call read (ptr (recordp, size (backup_volume_header)), read_char, char_read, delimited, code); 004237 aa 7 00000 3521 00 epp2 pr7|0 004240 aa 000010 3120 00 eawp2 8 004241 aa 6 01050 2521 00 spri2 pr6|552 004242 aa 6 01050 3521 00 epp2 pr6|552 004243 aa 6 01032 2521 00 spri2 pr6|538 004244 aa 6 00311 3521 00 epp2 pr6|201 read_char 004245 aa 6 01034 2521 00 spri2 pr6|540 004246 aa 6 00310 3521 00 epp2 pr6|200 char_read 004247 aa 6 01036 2521 00 spri2 pr6|542 004250 aa 6 00450 3521 00 epp2 pr6|296 delimited 004251 aa 6 01040 2521 00 spri2 pr6|544 004252 aa 6 00511 3521 00 epp2 pr6|329 code 004253 aa 6 01042 2521 00 spri2 pr6|546 004254 aa 6 01030 6211 00 eax1 pr6|536 004255 aa 024000 4310 07 fld 10240,dl 004256 aa 000143 3520 04 epp2 99,ic 004421 = 000140627000 004257 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 556 call check_input_error; 004260 aa 6 00056 6211 00 eax1 pr6|46 004261 aa 000000 4310 07 fld 0,dl 004262 aa 777350 3520 04 epp2 -280,ic 003632 = 000240627000 004263 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 557 if new_tape then return; 004264 aa 6 00444 2351 00 lda pr6|292 new_tape 004265 aa 000002 6000 04 tze 2,ic 004267 004266 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 558 if backup_volume_record.rec1_type ^= volume_log_type then do; 004267 aa 6 00546 3735 20 epp7 pr6|358,* recordp 004270 aa 7 00001 2361 00 ldq pr7|1 backup_volume_record.rec1_type 004271 aa 000005 1160 07 cmpq 5,dl 004272 aa 000015 6000 04 tze 13,ic 004307 STATEMENT 1 ON LINE 559 read_char = backup_volume_record.rec2_len; 004273 aa 7 00005 2361 00 ldq pr7|5 backup_volume_record.rec2_len 004274 aa 6 00311 7561 00 stq pr6|201 read_char STATEMENT 1 ON LINE 560 if backup_volume_record.rec1_type = vtoce_type & backup_volume_record.version > backup_volume_record_version_1 then delimited = "1"b; 004275 aa 7 00001 2361 00 ldq pr7|1 backup_volume_record.rec1_type 004276 aa 000001 1160 07 cmpq 1,dl 004277 aa 000006 6010 04 tnz 6,ic 004305 004300 aa 7 00010 2361 00 ldq pr7|8 backup_volume_record.version 004301 aa 000001 1160 07 cmpq 1,dl 004302 aa 000003 6044 04 tmoz 3,ic 004305 004303 aa 400000 2350 03 lda 131072,du 004304 aa 6 00450 7551 00 sta pr6|296 delimited STATEMENT 1 ON LINE 563 call skip_chars; 004305 aa 777300 6700 04 tsp4 -320,ic 003605 STATEMENT 1 ON LINE 564 return; 004306 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 565 end; STATEMENT 1 ON LINE 567 bvlp = recordp; 004307 aa 6 00544 6535 00 spri7 pr6|356 bvlp STATEMENT 1 ON LINE 568 if (backup_volume_log.version = backup_volume_log_version_1) | (backup_volume_log.version = backup_volume_log_version_2) | (backup_volume_log.version = backup_volume_log_version_3) then ; 004310 aa 6 00544 3735 20 epp7 pr6|356,* bvlp 004311 aa 7 02015 2361 00 ldq pr7|1037 backup_volume_log.version 004312 aa 000001 1160 07 cmpq 1,dl 004313 aa 000034 6000 04 tze 28,ic 004347 004314 aa 000002 1160 07 cmpq 2,dl 004315 aa 000032 6000 04 tze 26,ic 004347 004316 aa 000003 1160 07 cmpq 3,dl 004317 aa 000002 6010 04 tnz 2,ic 004321 004320 aa 000027 7100 04 tra 23,ic 004347 STATEMENT 1 ON LINE 571 else do; STATEMENT 1 ON LINE 572 call com_err_ (0, myname, "Invalid volume log version"); 004321 aa 6 01047 4501 00 stz pr6|551 004322 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004323 aa 773717 00 0034 desc9a -2097,28 000241 = 111156166141 004324 aa 6 01030 00 0034 desc9a pr6|536,28 004325 aa 6 01047 3521 00 epp2 pr6|551 004326 aa 6 01054 2521 00 spri2 pr6|556 004327 aa 773454 3520 04 epp2 -2260,ic 000003 = 162145143157 004330 aa 6 01056 2521 00 spri2 pr6|558 004331 aa 6 01030 3521 00 epp2 pr6|536 004332 aa 6 01060 2521 00 spri2 pr6|560 004333 aa 773577 3520 04 epp2 -2177,ic 000132 = 404000000005 004334 aa 6 01062 2521 00 spri2 pr6|562 004335 aa 773604 3520 04 epp2 -2172,ic 000141 = 526000000040 004336 aa 6 01064 2521 00 spri2 pr6|564 004337 aa 773564 3520 04 epp2 -2188,ic 000123 = 524000000032 004340 aa 6 01066 2521 00 spri2 pr6|566 004341 aa 6 01052 6211 00 eax1 pr6|554 004342 aa 014000 4310 07 fld 6144,dl 004343 aa 6 00044 3701 20 epp4 pr6|36,* 004344 la 4 00062 3521 20 epp2 pr4|50,* com_err_ 004345 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 573 return; 004346 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 574 end; STATEMENT 1 ON LINE 575 do pvindex = 1 to rvl.npvs; 004347 aa 6 00532 2361 20 ldq pr6|346,* rvl.npvs 004350 aa 6 00624 7561 00 stq pr6|404 004351 aa 000001 2360 07 ldq 1,dl 004352 aa 6 00307 7561 00 stq pr6|199 pvindex 004353 aa 000000 0110 03 nop 0,du 004354 aa 6 00307 2361 00 ldq pr6|199 pvindex 004355 aa 6 00624 1161 00 cmpq pr6|404 004356 aa 000040 6054 04 tpnz 32,ic 004416 STATEMENT 1 ON LINE 576 if (backup_volume_log.pvname = rvl.pvname (pvindex)) & ^(rvl.abandoned (pvindex)) then do; 004357 aa 000036 4020 07 mpy 30,dl 004360 aa 6 01047 7561 00 stq pr6|551 004361 aa 6 00544 3735 20 epp7 pr6|356,* bvlp 004362 aa 6 00532 3715 20 epp5 pr6|346,* rvlp 004363 aa 5 77744 3715 06 epp5 pr5|-28,ql rvl.pvname 004364 aa 040 100 106 500 cmpc (pr),(pr),fill(040) 004365 aa 7 02017 00 0040 desc9a pr7|1039,32 backup_volume_log.pvname 004366 aa 5 00000 00 0040 desc9a pr5|0,32 rvl.pvname 004367 aa 000025 6010 04 tnz 21,ic 004414 004370 aa 6 00532 3535 20 epp3 pr6|346,* rvlp 004371 aa 3 00001 2351 06 lda pr3|1,ql rvl.abandoned 004372 aa 400000 3150 03 cana 131072,du 004373 aa 000021 6010 04 tnz 17,ic 004414 STATEMENT 1 ON LINE 577 if (rvl.volog_found (pvindex)) & (rvl.time (pvindex) > backup_volume_log.time_dumped) then do; 004374 aa 3 00001 2351 06 lda pr3|1,ql rvl.volog_found 004375 aa 200000 3150 03 cana 65536,du 004376 aa 000007 6000 04 tze 7,ic 004405 004377 aa 3 00000 2351 06 lda pr3|0,ql rvl.time 004400 aa 7 00007 1151 00 cmpa pr7|7 backup_volume_log.time_dumped 004401 aa 000004 6020 04 tnc 4,ic 004405 004402 aa 000003 6000 04 tze 3,ic 004405 STATEMENT 1 ON LINE 578 pvindex = 0; 004403 aa 6 00307 4501 00 stz pr6|199 pvindex STATEMENT 1 ON LINE 579 return; 004404 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 580 end; STATEMENT 1 ON LINE 581 rvl.time (pvindex) = backup_volume_log.time_dumped; 004405 aa 7 00007 2351 00 lda pr7|7 backup_volume_log.time_dumped 004406 aa 3 00000 7551 06 sta pr3|0,ql rvl.time STATEMENT 1 ON LINE 582 rvl.volname (pvindex) = volname; 004407 aa 3 77754 3515 06 epp1 pr3|-20,ql rvl.volname 004410 aa 000 100 100 500 mlr (pr),(pr),fill(000) 004411 aa 6 00470 00 0040 desc9a pr6|312,32 volname 004412 aa 1 00000 00 0040 desc9a pr1|0,32 rvl.volname STATEMENT 1 ON LINE 583 return; 004413 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 584 end; STATEMENT 1 ON LINE 585 end; 004414 aa 6 00307 0541 00 aos pr6|199 pvindex 004415 aa 777737 7100 04 tra -33,ic 004354 STATEMENT 1 ON LINE 586 pvindex = 0; 004416 aa 6 00307 4501 00 stz pr6|199 pvindex STATEMENT 1 ON LINE 587 end read_volume_record; 004417 aa 6 00616 6101 00 rtcd pr6|398 END PROCEDURE read_volume_record BEGIN PROCEDURE read ENTRY TO read STATEMENT 1 ON LINE 593 read: proc (return_buffer_ptr, Nrequested_chars, Nreturned_chars, Sdelimited, code); 004420 da 000523200000 004421 aa 000140 6270 00 eax7 96 004422 aa 7 00034 3521 20 epp2 pr7|28,* 004423 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 004424 aa 000012000000 004425 aa 000000000000 STATEMENT 1 ON LINE 617 Nreturned_chars, Nread_chars, code = 0; 004426 aa 6 00032 3735 20 epp7 pr6|26,* 004427 aa 7 00006 4501 20 stz pr7|6,* Nreturned_chars 004430 aa 6 00101 4501 00 stz pr6|65 Nread_chars 004431 aa 7 00012 4501 20 stz pr7|10,* code STATEMENT 1 ON LINE 619 do while (Nreturned_chars < Nrequested_chars & code = 0); 004432 aa 6 00032 3735 20 epp7 pr6|26,* 004433 aa 7 00006 2361 20 ldq pr7|6,* Nreturned_chars 004434 aa 7 00004 1161 20 cmpq pr7|4,* Nrequested_chars 004435 aa 000336 6050 04 tpl 222,ic 004773 004436 aa 7 00012 2361 20 ldq pr7|10,* code 004437 aa 000334 6010 04 tnz 220,ic 004773 STATEMENT 1 ON LINE 620 if input_buffer_len = 0 then do; 004440 aa 6 00040 3715 20 epp5 pr6|32,* 004441 aa 5 00521 2361 00 ldq pr5|337 input_buffer_len 004442 aa 000174 6010 04 tnz 124,ic 004636 STATEMENT 1 ON LINE 621 input_buffer_start = 1; 004443 aa 000001 2360 07 ldq 1,dl 004444 aa 5 00520 7561 00 stq pr5|336 input_buffer_start STATEMENT 1 ON LINE 623 if Sdelimited & Nreturned_chars = 0 then do; 004445 aa 7 00010 2351 20 lda pr7|8,* Sdelimited 004446 aa 400000 3150 03 cana 131072,du 004447 aa 000031 6000 04 tze 25,ic 004500 004450 aa 7 00006 2361 20 ldq pr7|6,* Nreturned_chars 004451 aa 000027 6010 04 tnz 23,ic 004500 STATEMENT 1 ON LINE 624 call iox_$get_chars (iocbp, addr (tape_check1), length (tape_check1), Nread_chars, code); 004452 aa 6 00104 3535 00 epp3 pr6|68 tape_check1 004453 aa 6 00110 2535 00 spri3 pr6|72 004454 aa 000010 2360 07 ldq 8,dl 004455 aa 6 00112 7561 00 stq pr6|74 004456 aa 5 00440 3521 00 epp2 pr5|288 iocbp 004457 aa 6 00116 2521 00 spri2 pr6|78 004460 aa 6 00110 3521 00 epp2 pr6|72 004461 aa 6 00120 2521 00 spri2 pr6|80 004462 aa 6 00112 3521 00 epp2 pr6|74 004463 aa 6 00122 2521 00 spri2 pr6|82 004464 aa 6 00101 3521 00 epp2 pr6|65 Nread_chars 004465 aa 6 00124 2521 00 spri2 pr6|84 004466 aa 7 00012 3521 20 epp2 pr7|10,* code 004467 aa 6 00126 2521 00 spri2 pr6|86 004470 aa 6 00114 6211 00 eax1 pr6|76 004471 aa 024000 4310 07 fld 10240,dl 004472 aa 6 00044 3701 20 epp4 pr6|36,* 004473 la 4 00122 3521 20 epp2 pr4|82,* iox_$get_chars 004474 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 626 if code ^= 0 then return; 004475 aa 6 00032 3735 20 epp7 pr6|26,* 004476 aa 7 00012 2361 20 ldq pr7|10,* code 004477 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 627 end; STATEMENT 1 ON LINE 629 if return_buffer_ptr = null then do; 004500 aa 7 00002 2371 20 ldaq pr7|2,* return_buffer_ptr 004501 aa 773453 6770 04 eraq -2261,ic 000154 = 077777000043 000001000000 004502 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004503 aa 000026 6010 04 tnz 22,ic 004531 STATEMENT 1 ON LINE 630 call iox_$position (iocbp, FORWARD_CHAR_POSITIONING, Nrequested_chars - Nreturned_chars, code); 004504 aa 7 00004 2361 20 ldq pr7|4,* Nrequested_chars 004505 aa 7 00006 1761 20 sbq pr7|6,* Nreturned_chars 004506 aa 6 00112 7561 00 stq pr6|74 004507 aa 6 00040 3715 20 epp5 pr6|32,* 004510 aa 5 00440 3521 00 epp2 pr5|288 iocbp 004511 aa 6 00116 2521 00 spri2 pr6|78 004512 aa 773421 3520 04 epp2 -2287,ic 000133 = 000000000003 004513 aa 6 00120 2521 00 spri2 pr6|80 004514 aa 6 00112 3521 00 epp2 pr6|74 004515 aa 6 00122 2521 00 spri2 pr6|82 004516 aa 7 00012 3521 20 epp2 pr7|10,* code 004517 aa 6 00124 2521 00 spri2 pr6|84 004520 aa 6 00114 6211 00 eax1 pr6|76 004521 aa 020000 4310 07 fld 8192,dl 004522 aa 6 00044 3701 20 epp4 pr6|36,* 004523 la 4 00126 3521 20 epp2 pr4|86,* iox_$position 004524 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 632 Nreturned_chars = Nreturned_chars + Nrequested_chars; 004525 aa 6 00032 3735 20 epp7 pr6|26,* 004526 aa 7 00004 2361 20 ldq pr7|4,* Nrequested_chars 004527 aa 7 00006 0561 20 asq pr7|6,* Nreturned_chars STATEMENT 1 ON LINE 633 end; 004530 aa 000034 7100 04 tra 28,ic 004564 STATEMENT 1 ON LINE 634 else do; STATEMENT 1 ON LINE 635 call iox_$get_chars (iocbp, addcharno (return_buffer_ptr, Nreturned_chars), Nrequested_chars - Nreturned_chars, Nread_chars, code); 004531 aa 7 00002 3521 20 epp2 pr7|2,* return_buffer_ptr 004532 aa 2 00000 3521 20 epp2 pr2|0,* return_buffer_ptr 004533 aa 7 00006 2361 20 ldq pr7|6,* Nreturned_chars 004534 aa 2 00000 5005 06 a9bd pr2|0,ql 004535 aa 6 00110 2521 00 spri2 pr6|72 004536 aa 7 00004 2361 20 ldq pr7|4,* Nrequested_chars 004537 aa 7 00006 1761 20 sbq pr7|6,* Nreturned_chars 004540 aa 6 00112 7561 00 stq pr6|74 004541 aa 6 00040 3715 20 epp5 pr6|32,* 004542 aa 5 00440 3521 00 epp2 pr5|288 iocbp 004543 aa 6 00116 2521 00 spri2 pr6|78 004544 aa 6 00110 3521 00 epp2 pr6|72 004545 aa 6 00120 2521 00 spri2 pr6|80 004546 aa 6 00112 3521 00 epp2 pr6|74 004547 aa 6 00122 2521 00 spri2 pr6|82 004550 aa 6 00101 3521 00 epp2 pr6|65 Nread_chars 004551 aa 6 00124 2521 00 spri2 pr6|84 004552 aa 7 00012 3521 20 epp2 pr7|10,* code 004553 aa 6 00126 2521 00 spri2 pr6|86 004554 aa 6 00114 6211 00 eax1 pr6|76 004555 aa 024000 4310 07 fld 10240,dl 004556 aa 6 00044 3701 20 epp4 pr6|36,* 004557 la 4 00122 3521 20 epp2 pr4|82,* iox_$get_chars 004560 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 638 Nreturned_chars = Nreturned_chars + Nread_chars; 004561 aa 6 00101 2361 00 ldq pr6|65 Nread_chars 004562 aa 6 00032 3735 20 epp7 pr6|26,* 004563 aa 7 00006 0561 20 asq pr7|6,* Nreturned_chars STATEMENT 1 ON LINE 639 end; STATEMENT 1 ON LINE 640 if code ^= 0 then return; 004564 aa 7 00012 2361 20 ldq pr7|10,* code 004565 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 642 if Sdelimited then do; 004566 aa 7 00010 2351 20 lda pr7|8,* Sdelimited 004567 aa 400000 3150 03 cana 131072,du 004570 aa 000064 6000 04 tze 52,ic 004654 STATEMENT 1 ON LINE 643 call iox_$get_chars (iocbp, addr (tape_check2), length (tape_check2), Nread_chars, code); 004571 aa 6 00106 3715 00 epp5 pr6|70 tape_check2 004572 aa 6 00110 6515 00 spri5 pr6|72 004573 aa 000010 2360 07 ldq 8,dl 004574 aa 6 00112 7561 00 stq pr6|74 004575 aa 6 00040 3535 20 epp3 pr6|32,* 004576 aa 3 00440 3521 00 epp2 pr3|288 iocbp 004577 aa 6 00116 2521 00 spri2 pr6|78 004600 aa 6 00110 3521 00 epp2 pr6|72 004601 aa 6 00120 2521 00 spri2 pr6|80 004602 aa 6 00112 3521 00 epp2 pr6|74 004603 aa 6 00122 2521 00 spri2 pr6|82 004604 aa 6 00101 3521 00 epp2 pr6|65 Nread_chars 004605 aa 6 00124 2521 00 spri2 pr6|84 004606 aa 7 00012 3521 20 epp2 pr7|10,* code 004607 aa 6 00126 2521 00 spri2 pr6|86 004610 aa 6 00114 6211 00 eax1 pr6|76 004611 aa 024000 4310 07 fld 10240,dl 004612 aa 6 00044 3701 20 epp4 pr6|36,* 004613 la 4 00122 3521 20 epp2 pr4|82,* iox_$get_chars 004614 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 645 if code ^= 0 then return; 004615 aa 6 00032 3735 20 epp7 pr6|26,* 004616 aa 7 00012 2361 20 ldq pr7|10,* code 004617 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 648 if tape_check1 ^= tape_check2 then do; 004620 aa 6 00104 2371 00 ldaq pr6|68 tape_check1 004621 aa 6 00106 1171 00 cmpaq pr6|70 tape_check2 004622 aa 000032 6000 04 tze 26,ic 004654 STATEMENT 1 ON LINE 652 input_buffer_len = Nreturned_chars; 004623 aa 7 00006 2361 20 ldq pr7|6,* Nreturned_chars 004624 aa 6 00040 3715 20 epp5 pr6|32,* 004625 aa 5 00521 7561 00 stq pr5|337 input_buffer_len STATEMENT 1 ON LINE 653 substr (input_buffer, 1, input_buffer_len) = return_string; 004626 aa 5 00516 3535 20 epp3 pr5|334,* input_buffer_ptr 004627 aa 7 00002 3515 20 epp1 pr7|2,* return_buffer_ptr 004630 aa 1 00000 3515 20 epp1 pr1|0,* return_buffer_ptr 004631 aa 7 00004 2351 20 lda pr7|4,* Nrequested_chars 004632 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 004633 aa 1 00000 00 0005 desc9a pr1|0,al return_string 004634 aa 3 00000 00 0006 desc9a pr3|0,ql input_buffer STATEMENT 1 ON LINE 655 end; STATEMENT 1 ON LINE 656 end; STATEMENT 1 ON LINE 657 end; 004635 aa 000017 7100 04 tra 15,ic 004654 STATEMENT 1 ON LINE 659 else if Sdelimited then do; 004636 aa 7 00010 2351 20 lda pr7|8,* Sdelimited 004637 aa 400000 3150 03 cana 131072,du 004640 aa 000014 6000 04 tze 12,ic 004654 STATEMENT 1 ON LINE 661 tape_check1 = substr (input_buffer, input_buffer_start, length (tape_check1)); 004641 aa 5 00520 7271 00 lxl7 pr5|336 input_buffer_start 004642 aa 5 00516 3535 20 epp3 pr5|334,* input_buffer_ptr 004643 aa 040 100 100 517 mlr (pr,x7),(pr),fill(040) 004644 aa 3 77777 60 0010 desc9a pr3|-1(3),8 input_buffer 004645 aa 6 00104 00 0010 desc9a pr6|68,8 tape_check1 STATEMENT 1 ON LINE 663 tape_check2 = ""; 004646 aa 773276 2370 04 ldaq -2370,ic 000144 = 040040040040 040040040040 004647 aa 6 00106 7571 00 staq pr6|70 tape_check2 STATEMENT 1 ON LINE 664 input_buffer_start = input_buffer_start + length (tape_check1); 004650 aa 000010 2360 07 ldq 8,dl 004651 aa 5 00520 0561 00 asq pr5|336 input_buffer_start STATEMENT 1 ON LINE 666 input_buffer_len = input_buffer_len - length (tape_check1); 004652 aa 000010 3360 07 lcq 8,dl 004653 aa 5 00521 0561 00 asq pr5|337 input_buffer_len STATEMENT 1 ON LINE 668 end; STATEMENT 1 ON LINE 670 if input_buffer_len > 0 then do; 004654 aa 6 00040 3715 20 epp5 pr6|32,* 004655 aa 5 00521 2361 00 ldq pr5|337 input_buffer_len 004656 aa 777554 6044 04 tmoz -148,ic 004432 STATEMENT 1 ON LINE 671 Nassign_chars = min (input_buffer_len, Nrequested_chars); 004657 aa 7 00004 1161 20 cmpq pr7|4,* Nrequested_chars 004660 aa 000002 6040 04 tmi 2,ic 004662 004661 aa 7 00004 2361 20 ldq pr7|4,* Nrequested_chars 004662 aa 6 00100 7561 00 stq pr6|64 Nassign_chars STATEMENT 1 ON LINE 674 if Sdelimited then do; 004663 aa 7 00010 2351 20 lda pr7|8,* Sdelimited 004664 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 004665 aa 6 00112 7551 00 sta pr6|74 Sdelimited 004666 aa 000027 6000 04 tze 23,ic 004715 STATEMENT 1 ON LINE 675 if tape_check1 ^= tape_check2 then do; 004667 aa 6 00104 2371 00 ldaq pr6|68 tape_check1 004670 aa 6 00106 1171 00 cmpaq pr6|70 tape_check2 004671 aa 000024 6000 04 tze 20,ic 004715 STATEMENT 1 ON LINE 676 end_of_record = index (substr (input_buffer, input_buffer_start, input_buffer_len), tape_check1); 004672 aa 5 00521 2361 00 ldq pr5|337 input_buffer_len 004673 aa 5 00520 7271 00 lxl7 pr5|336 input_buffer_start 004674 aa 000003 6270 17 eax7 3,7 004675 aa 5 00516 3535 20 epp3 pr5|334,* input_buffer_ptr 004676 aa 3 77777 3521 00 epp2 pr3|-1 input_buffer 004677 aa 2 00000 5005 17 a9bd pr2|0,7 004700 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 004701 aa 000010 2360 07 ldq 8,dl 004702 aa 6 00104 3521 00 epp2 pr6|68 tape_check1 004703 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 004704 aa 6 00102 7561 00 stq pr6|66 end_of_record STATEMENT 1 ON LINE 678 if end_of_record > 0 then do; 004705 aa 000010 6044 04 tmoz 8,ic 004715 STATEMENT 1 ON LINE 679 Nassign_chars = end_of_record - 1; 004706 aa 000001 1760 07 sbq 1,dl 004707 aa 6 00100 7561 00 stq pr6|64 Nassign_chars STATEMENT 1 ON LINE 680 if Nrequested_chars ^= Nassign_chars then code = error_table_$data_loss; 004710 aa 7 00004 1161 20 cmpq pr7|4,* Nrequested_chars 004711 aa 000004 6000 04 tze 4,ic 004715 004712 aa 6 00044 3701 20 epp4 pr6|36,* 004713 la 4 00010 2361 20 ldq pr4|8,* error_table_$data_loss 004714 aa 7 00012 7561 20 stq pr7|10,* code STATEMENT 1 ON LINE 682 end; STATEMENT 1 ON LINE 683 end; STATEMENT 1 ON LINE 684 end; STATEMENT 1 ON LINE 686 if return_buffer_ptr ^= null then return_string = substr (input_buffer, input_buffer_start, Nassign_chars); 004715 aa 7 00002 2371 20 ldaq pr7|2,* return_buffer_ptr 004716 aa 773236 6770 04 eraq -2402,ic 000154 = 077777000043 000001000000 004717 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004720 aa 000012 6000 04 tze 10,ic 004732 004721 aa 7 00002 3535 20 epp3 pr7|2,* return_buffer_ptr 004722 aa 3 00000 3535 20 epp3 pr3|0,* return_buffer_ptr 004723 aa 5 00520 7271 00 lxl7 pr5|336 input_buffer_start 004724 aa 5 00516 3515 20 epp1 pr5|334,* input_buffer_ptr 004725 aa 7 00004 2351 20 lda pr7|4,* Nrequested_chars 004726 aa 6 00100 2361 00 ldq pr6|64 Nassign_chars 004727 aa 040 140 100 557 mlr (pr,rl,x7),(pr,rl),fill(040) 004730 aa 1 77777 60 0006 desc9a pr1|-1(3),ql input_buffer 004731 aa 3 00000 00 0005 desc9a pr3|0,al return_string STATEMENT 1 ON LINE 689 Nreturned_chars = Nassign_chars; 004732 aa 6 00100 2361 00 ldq pr6|64 Nassign_chars 004733 aa 7 00006 7561 20 stq pr7|6,* Nreturned_chars STATEMENT 1 ON LINE 691 input_buffer_start = input_buffer_start + Nassign_chars; 004734 aa 5 00520 0561 00 asq pr5|336 input_buffer_start STATEMENT 1 ON LINE 693 input_buffer_len = input_buffer_len - Nassign_chars; 004735 aa 6 00100 3361 00 lcq pr6|64 Nassign_chars 004736 aa 5 00521 0561 00 asq pr5|337 input_buffer_len STATEMENT 1 ON LINE 696 if Sdelimited & input_buffer_len > 0 then do; 004737 aa 6 00112 2351 00 lda pr6|74 Sdelimited 004740 aa 777472 6000 04 tze -198,ic 004432 004741 aa 5 00521 2361 00 ldq pr5|337 input_buffer_len 004742 aa 777470 6044 04 tmoz -200,ic 004432 STATEMENT 1 ON LINE 697 input_buffer_start = input_buffer_start + length (tape_check2); 004743 aa 000010 2360 07 ldq 8,dl 004744 aa 5 00520 0561 00 asq pr5|336 input_buffer_start STATEMENT 1 ON LINE 699 substr (input_buffer, 1, input_buffer_len) = substr (input_buffer, input_buffer_start, input_buffer_len - length (tape_check2)) || tape_check2; 004745 aa 5 00521 2361 00 ldq pr5|337 input_buffer_len 004746 aa 000010 1760 07 sbq 8,dl 004747 aa 6 00112 7561 00 stq pr6|74 004750 aa 000010 0760 07 adq 8,dl 004751 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 004752 aa 5 00520 7271 00 lxl7 pr5|336 input_buffer_start 004753 aa 5 00516 3535 20 epp3 pr5|334,* input_buffer_ptr 004754 aa 6 00112 2351 00 lda pr6|74 004755 aa 040 140 100 557 mlr (pr,rl,x7),(pr,rl),fill(040) 004756 aa 3 77777 60 0005 desc9a pr3|-1(3),al input_buffer 004757 aa 2 00000 00 0005 desc9a pr2|0,al 004760 aa 040 105 100 500 mlr (pr),(pr,al),fill(040) 004761 aa 6 00106 00 0010 desc9a pr6|70,8 tape_check2 004762 aa 2 00000 00 0010 desc9a pr2|0,8 004763 aa 5 00521 2351 00 lda pr5|337 input_buffer_len 004764 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 004765 aa 2 00000 00 0006 desc9a pr2|0,ql 004766 aa 3 00000 00 0005 desc9a pr3|0,al input_buffer STATEMENT 1 ON LINE 703 input_buffer_start = 1; 004767 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 004770 aa 000001 2360 07 ldq 1,dl 004771 aa 5 00520 7561 00 stq pr5|336 input_buffer_start STATEMENT 1 ON LINE 704 end; STATEMENT 1 ON LINE 705 end; STATEMENT 1 ON LINE 706 end; 004772 aa 777440 7100 04 tra -224,ic 004432 STATEMENT 1 ON LINE 708 return; 004773 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 709 end read; END PROCEDURE read BEGIN PROCEDURE wdir_ ENTRY TO wdir_ STATEMENT 1 ON LINE 715 wdir_: proc returns (char (168) aligned); 004774 da 000530220000 004775 aa 000200 6270 00 eax7 128 004776 aa 7 00034 3521 20 epp2 pr7|28,* 004777 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 005000 aa 000002000000 005001 aa 000000000000 STATEMENT 1 ON LINE 721 call hcs_$fs_search_get_wdir (addr (wdir), ignore); 005002 aa 6 00100 3735 00 epp7 pr6|64 wdir 005003 aa 6 00152 6535 00 spri7 pr6|106 005004 aa 6 00152 3521 00 epp2 pr6|106 005005 aa 6 00156 2521 00 spri2 pr6|110 005006 aa 6 00040 3715 20 epp5 pr6|32,* 005007 aa 5 00512 3521 00 epp2 pr5|330 ignore 005010 aa 6 00160 2521 00 spri2 pr6|112 005011 aa 6 00154 6211 00 eax1 pr6|108 005012 aa 010000 4310 07 fld 4096,dl 005013 la 4 00056 3521 20 epp2 pr4|46,* hcs_$fs_search_get_wdir 005014 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 722 return (wdir); 005015 aa 6 00032 3735 20 epp7 pr6|26,* 005016 aa 7 00002 3715 20 epp5 pr7|2,* 005017 aa 000 100 100 500 mlr (pr),(pr),fill(000) 005020 aa 6 00100 00 0250 desc9a pr6|64,168 wdir 005021 aa 5 00000 00 0250 desc9a pr5|0,168 005022 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 723 end wdir_; END PROCEDURE wdir_ BEGIN PROCEDURE time_string ENTRY TO time_string STATEMENT 1 ON LINE 728 time_string: proc (i) returns (char (24)); 005023 aa 6 00100 6501 00 spri4 pr6|64 005024 aa 6 00102 2521 00 spri2 pr6|66 STATEMENT 1 ON LINE 731 call date_time_$fstime ((rvl.time (i)), string); 005025 aa 2 00002 2361 20 ldq pr2|2,* i 005026 aa 000036 4020 07 mpy 30,dl 005027 aa 6 00040 3735 20 epp7 pr6|32,* 005030 aa 7 00532 2351 66 lda pr7|346,*ql rvl.time 005031 aa 6 00115 7551 00 sta pr6|77 005032 aa 6 00115 3521 00 epp2 pr6|77 005033 aa 6 00120 2521 00 spri2 pr6|80 005034 aa 6 00106 3521 00 epp2 pr6|70 string 005035 aa 6 00122 2521 00 spri2 pr6|82 005036 aa 773030 3520 04 epp2 -2536,ic 000066 = 514000000044 005037 aa 6 00124 2521 00 spri2 pr6|84 005040 aa 773074 3520 04 epp2 -2500,ic 000134 = 526000000030 005041 aa 6 00126 2521 00 spri2 pr6|86 005042 aa 6 00116 6211 00 eax1 pr6|78 005043 aa 010000 4310 07 fld 4096,dl 005044 aa 6 00044 3701 20 epp4 pr6|36,* 005045 la 4 00050 3521 20 epp2 pr4|40,* date_time_$fstime 005046 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 732 return (string); 005047 aa 6 00102 3735 20 epp7 pr6|66,* 005050 aa 7 00004 3715 20 epp5 pr7|4,* 005051 aa 040 100 100 500 mlr (pr),(pr),fill(040) 005052 aa 6 00106 00 0030 desc9a pr6|70,24 string 005053 aa 5 00000 00 0030 desc9a pr5|0,24 005054 aa 6 00100 6101 00 rtcd pr6|64 STATEMENT 1 ON LINE 733 end time_string; END PROCEDURE time_string BEGIN PROCEDURE finish_ ENTRY TO finish_ STATEMENT 1 ON LINE 738 finish_: proc; 005055 da 000535200000 005056 aa 000320 6270 00 eax7 208 005057 aa 7 00034 3521 20 epp2 pr7|28,* 005060 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 005061 aa 000000000000 005062 aa 000000000000 STATEMENT 1 ON LINE 739 if iocbp ^= null then call detach; 005063 aa 6 00040 3735 20 epp7 pr6|32,* 005064 aa 7 00440 2371 00 ldaq pr7|288 iocbp 005065 aa 773067 6770 04 eraq -2505,ic 000154 = 077777000043 000001000000 005066 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005067 aa 000006 6000 04 tze 6,ic 005075 005070 aa 000001 7270 07 lxl7 1,dl 005071 aa 6 00056 6211 00 eax1 pr6|46 005072 aa 000000 4310 07 fld 0,dl 005073 aa 775047 3520 04 epp2 -1497,ic 002142 = 000120627000 005074 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 740 if tp (1) ^= null then do; 005075 aa 6 00040 3735 20 epp7 pr6|32,* 005076 aa 7 00524 2371 00 ldaq pr7|340 tp 005077 aa 773055 6770 04 eraq -2515,ic 000154 = 077777000043 000001000000 005100 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005101 aa 000126 6000 04 tze 86,ic 005227 STATEMENT 1 ON LINE 741 call hcs_$truncate_seg (objectp, 0, ignore); 005102 aa 6 00130 4501 00 stz pr6|88 005103 aa 7 00514 3521 00 epp2 pr7|332 objectp 005104 aa 6 00134 2521 00 spri2 pr6|92 005105 aa 6 00130 3521 00 epp2 pr6|88 005106 aa 6 00136 2521 00 spri2 pr6|94 005107 aa 7 00512 3521 00 epp2 pr7|330 ignore 005110 aa 6 00140 2521 00 spri2 pr6|96 005111 aa 6 00132 6211 00 eax1 pr6|90 005112 aa 014000 4310 07 fld 6144,dl 005113 aa 6 00044 3701 20 epp4 pr6|36,* 005114 la 4 00104 3521 20 epp2 pr4|68,* hcs_$truncate_seg 005115 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 742 call hcs_$truncate_seg (input_buffer_ptr, 0, ignore); 005116 aa 6 00130 4501 00 stz pr6|88 005117 aa 6 00040 3735 20 epp7 pr6|32,* 005120 aa 7 00516 3521 00 epp2 pr7|334 input_buffer_ptr 005121 aa 6 00134 2521 00 spri2 pr6|92 005122 aa 6 00130 3521 00 epp2 pr6|88 005123 aa 6 00136 2521 00 spri2 pr6|94 005124 aa 7 00512 3521 00 epp2 pr7|330 ignore 005125 aa 6 00140 2521 00 spri2 pr6|96 005126 aa 6 00132 6211 00 eax1 pr6|90 005127 aa 014000 4310 07 fld 6144,dl 005130 aa 6 00044 3701 20 epp4 pr6|36,* 005131 la 4 00104 3521 20 epp2 pr4|68,* hcs_$truncate_seg 005132 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 743 call hcs_$set_max_length_seg (objectp, (sys_info$max_seg_size), ignore); 005133 aa 6 00044 3701 20 epp4 pr6|36,* 005134 la 4 00032 2361 20 ldq pr4|26,* sys_info$max_seg_size 005135 aa 6 00130 7561 00 stq pr6|88 005136 aa 6 00040 3735 20 epp7 pr6|32,* 005137 aa 7 00514 3521 00 epp2 pr7|332 objectp 005140 aa 6 00134 2521 00 spri2 pr6|92 005141 aa 6 00130 3521 00 epp2 pr6|88 005142 aa 6 00136 2521 00 spri2 pr6|94 005143 aa 7 00512 3521 00 epp2 pr7|330 ignore 005144 aa 6 00140 2521 00 spri2 pr6|96 005145 aa 6 00132 6211 00 eax1 pr6|90 005146 aa 014000 4310 07 fld 6144,dl 005147 la 4 00102 3521 20 epp2 pr4|66,* hcs_$set_max_length_seg 005150 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 744 call hcs_$set_max_length_seg (input_buffer_ptr, (sys_info$max_seg_size), ignore); 005151 aa 6 00044 3701 20 epp4 pr6|36,* 005152 la 4 00032 2361 20 ldq pr4|26,* sys_info$max_seg_size 005153 aa 6 00130 7561 00 stq pr6|88 005154 aa 6 00040 3735 20 epp7 pr6|32,* 005155 aa 7 00516 3521 00 epp2 pr7|334 input_buffer_ptr 005156 aa 6 00134 2521 00 spri2 pr6|92 005157 aa 6 00130 3521 00 epp2 pr6|88 005160 aa 6 00136 2521 00 spri2 pr6|94 005161 aa 7 00512 3521 00 epp2 pr7|330 ignore 005162 aa 6 00140 2521 00 spri2 pr6|96 005163 aa 6 00132 6211 00 eax1 pr6|90 005164 aa 014000 4310 07 fld 6144,dl 005165 la 4 00102 3521 20 epp2 pr4|66,* hcs_$set_max_length_seg 005166 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 745 call release_temp_segments_ (myname, tp, ignore); 005167 aa 772614 3520 04 epp2 -2676,ic 000003 = 162145143157 005170 aa 6 00144 2521 00 spri2 pr6|100 005171 aa 6 00040 3735 20 epp7 pr6|32,* 005172 aa 7 00524 3521 00 epp2 pr7|340 tp 005173 aa 6 00146 2521 00 spri2 pr6|102 005174 aa 7 00512 3521 00 epp2 pr7|330 ignore 005175 aa 6 00150 2521 00 spri2 pr6|104 005176 aa 772743 3520 04 epp2 -2589,ic 000141 = 526000000040 005177 aa 6 00152 2521 00 spri2 pr6|106 005200 aa 772766 3520 04 epp2 -2570,ic 000166 = 464100000000 005201 aa 6 00154 2521 00 spri2 pr6|108 005202 aa 772726 3520 04 epp2 -2602,ic 000130 = 404000000043 005203 aa 6 00156 2521 00 spri2 pr6|110 005204 aa 6 00142 6211 00 eax1 pr6|98 005205 aa 014000 4310 07 fld 6144,dl 005206 aa 6 00044 3701 20 epp4 pr6|36,* 005207 la 4 00114 3521 20 epp2 pr4|76,* release_temp_segments_ 005210 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 746 call hcs_$set_256K_switch (old_256K_switch, (""b), ignore); 005211 aa 000000 2350 07 lda 0,dl 005212 aa 6 00130 7551 00 sta pr6|88 005213 aa 6 00040 3735 20 epp7 pr6|32,* 005214 aa 7 00522 3521 00 epp2 pr7|338 old_256K_switch 005215 aa 6 00134 2521 00 spri2 pr6|92 005216 aa 6 00130 3521 00 epp2 pr6|88 005217 aa 6 00136 2521 00 spri2 pr6|94 005220 aa 7 00512 3521 00 epp2 pr7|330 ignore 005221 aa 6 00140 2521 00 spri2 pr6|96 005222 aa 6 00132 6211 00 eax1 pr6|90 005223 aa 014000 4310 07 fld 6144,dl 005224 aa 6 00044 3701 20 epp4 pr6|36,* 005225 la 4 00100 3521 20 epp2 pr4|64,* hcs_$set_256K_switch 005226 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 747 end; STATEMENT 1 ON LINE 748 if get_group_id_ () ^= "Initializer.SysDaemon.z" & hcs_$level_get () ^= 1 then ok_to_abc = "1"b; 005227 aa 6 00130 3521 00 epp2 pr6|88 005230 aa 6 00134 2521 00 spri2 pr6|92 005231 aa 6 00132 6211 00 eax1 pr6|90 005232 aa 004000 4310 07 fld 2048,dl 005233 aa 6 00044 3701 20 epp4 pr6|36,* 005234 la 4 00046 3521 20 epp2 pr4|38,* hcs_$level_get 005235 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 005236 aa 6 00130 2361 00 ldq pr6|88 005237 aa 000001 1160 07 cmpq 1,dl 005240 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 005241 aa 6 00130 7551 00 sta pr6|88 005242 aa 6 00132 3521 00 epp2 pr6|90 005243 aa 6 00144 2521 00 spri2 pr6|100 005244 aa 6 00142 6211 00 eax1 pr6|98 005245 aa 004000 4310 07 fld 2048,dl 005246 aa 6 00044 3701 20 epp4 pr6|36,* 005247 la 4 00042 3521 20 epp2 pr4|34,* get_group_id_ 005250 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 005251 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 005252 aa 6 00132 00 0040 desc9a pr6|90,32 005253 aa 772732 00 0027 desc9a -2598,23 000203 = 111156151164 005254 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 005255 aa 6 00130 3151 00 cana pr6|88 005256 aa 000004 6000 04 tze 4,ic 005262 005257 aa 400000 2350 03 lda 131072,du 005260 aa 6 00040 3735 20 epp7 pr6|32,* 005261 aa 7 00446 7551 00 sta pr7|294 ok_to_abc STATEMENT 1 ON LINE 749 if rvlp ^= null () then do; 005262 aa 6 00040 3735 20 epp7 pr6|32,* 005263 aa 7 00532 2371 00 ldaq pr7|346 rvlp 005264 aa 772670 6770 04 eraq -2632,ic 000154 = 077777000043 000001000000 005265 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005266 aa 000234 6000 04 tze 156,ic 005522 STATEMENT 1 ON LINE 750 do i = 1 to rvl.npvs; 005267 aa 7 00532 2361 20 ldq pr7|346,* rvl.npvs 005270 aa 6 00114 7561 00 stq pr6|76 005271 aa 000001 2360 07 ldq 1,dl 005272 aa 7 00306 7561 00 stq pr7|198 i 005273 aa 000000 0110 03 nop 0,du 005274 aa 6 00040 3735 20 epp7 pr6|32,* 005275 aa 7 00306 2361 00 ldq pr7|198 i 005276 aa 6 00114 1161 00 cmpq pr6|76 005277 aa 000216 6054 04 tpnz 142,ic 005515 STATEMENT 1 ON LINE 751 if rvl.temp_logp (i) ^= null () then call hcs_$delentry_seg (rvl.temp_logp (i), (0)); 005300 aa 000036 4020 07 mpy 30,dl 005301 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005302 aa 6 00130 7561 00 stq pr6|88 005303 aa 5 77774 2371 06 ldaq pr5|-4,ql rvl.temp_logp 005304 aa 772650 6770 04 eraq -2648,ic 000154 = 077777000043 000001000000 005305 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005306 aa 000014 6000 04 tze 12,ic 005322 005307 aa 6 00131 4501 00 stz pr6|89 005310 aa 6 00130 7271 00 lxl7 pr6|88 005311 aa 5 77774 3521 17 epp2 pr5|-4,7 rvl.temp_logp 005312 aa 6 00134 2521 00 spri2 pr6|92 005313 aa 6 00131 3521 00 epp2 pr6|89 005314 aa 6 00136 2521 00 spri2 pr6|94 005315 aa 6 00132 6211 00 eax1 pr6|90 005316 aa 010000 4310 07 fld 4096,dl 005317 aa 6 00044 3701 20 epp4 pr6|36,* 005320 la 4 00036 3521 20 epp2 pr4|30,* hcs_$delentry_seg 005321 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 752 if rvl.new_logp (i) ^= null then do; 005322 aa 6 00040 3735 20 epp7 pr6|32,* 005323 aa 7 00306 2361 00 ldq pr7|198 i 005324 aa 000036 4020 07 mpy 30,dl 005325 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005326 aa 5 77776 2371 06 ldaq pr5|-2,ql rvl.new_logp 005327 aa 772625 6770 04 eraq -2667,ic 000154 = 077777000043 000001000000 005330 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005331 aa 000076 6000 04 tze 62,ic 005427 STATEMENT 1 ON LINE 753 if ok_to_abc then call adjust_bit_count_ (wdir_ (), (rvl.ename (i)), "0"b, (0), ignore); 005332 aa 7 00446 2351 00 lda pr7|294 ok_to_abc 005333 aa 000057 6000 04 tze 47,ic 005412 005334 aa 6 00160 3521 00 epp2 pr6|112 005335 aa 6 00134 2521 00 spri2 pr6|92 005336 aa 000001 7270 07 lxl7 1,dl 005337 aa 6 00132 6211 00 eax1 pr6|90 005340 aa 004000 4310 07 fld 2048,dl 005341 aa 777434 3520 04 epp2 -228,ic 004775 = 000200627000 005342 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 005343 aa 000 100 100 500 mlr (pr),(pr),fill(000) 005344 aa 6 00160 00 0250 desc9a pr6|112,168 005345 aa 6 00232 00 0250 desc9a pr6|154,168 005346 aa 6 00040 3735 20 epp7 pr6|32,* 005347 aa 7 00306 2361 00 ldq pr7|198 i 005350 aa 000036 4020 07 mpy 30,dl 005351 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005352 aa 5 77764 3715 06 epp5 pr5|-12,ql rvl.ename 005353 aa 000 100 100 500 mlr (pr),(pr),fill(000) 005354 aa 5 00000 00 0040 desc9a pr5|0,32 rvl.ename 005355 aa 6 00132 00 0040 desc9a pr6|90,32 005356 aa 000000 2350 07 lda 0,dl 005357 aa 6 00131 7551 00 sta pr6|89 005360 aa 6 00130 4501 00 stz pr6|88 005361 aa 6 00232 3521 00 epp2 pr6|154 005362 aa 6 00162 2521 00 spri2 pr6|114 005363 aa 6 00132 3521 00 epp2 pr6|90 005364 aa 6 00164 2521 00 spri2 pr6|116 005365 aa 6 00131 3521 00 epp2 pr6|89 005366 aa 6 00166 2521 00 spri2 pr6|118 005367 aa 6 00130 3521 00 epp2 pr6|88 005370 aa 6 00170 2521 00 spri2 pr6|120 005371 aa 7 00512 3521 00 epp2 pr7|330 ignore 005372 aa 6 00172 2521 00 spri2 pr6|122 005373 aa 772542 3520 04 epp2 -2718,ic 000135 = 524000000250 005374 aa 6 00174 2521 00 spri2 pr6|124 005375 aa 772524 3520 04 epp2 -2732,ic 000121 = 524000000040 005376 aa 6 00176 2521 00 spri2 pr6|126 005377 aa 772507 3520 04 epp2 -2745,ic 000106 = 514000000001 005400 aa 6 00200 2521 00 spri2 pr6|128 005401 aa 772536 3520 04 epp2 -2722,ic 000137 = 404000000021 005402 aa 6 00202 2521 00 spri2 pr6|130 005403 aa 772525 3520 04 epp2 -2731,ic 000130 = 404000000043 005404 aa 6 00204 2521 00 spri2 pr6|132 005405 aa 6 00160 6211 00 eax1 pr6|112 005406 aa 024000 4310 07 fld 10240,dl 005407 aa 6 00044 3701 20 epp4 pr6|36,* 005410 la 4 00052 3521 20 epp2 pr4|42,* adjust_bit_count_ 005411 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 754 call hcs_$terminate_noname (rvl.new_logp (i), ignore); 005412 aa 6 00040 3735 20 epp7 pr6|32,* 005413 aa 7 00306 2361 00 ldq pr7|198 i 005414 aa 000036 4020 07 mpy 30,dl 005415 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005416 aa 5 77776 3521 06 epp2 pr5|-2,ql rvl.new_logp 005417 aa 6 00134 2521 00 spri2 pr6|92 005420 aa 7 00512 3521 00 epp2 pr7|330 ignore 005421 aa 6 00136 2521 00 spri2 pr6|94 005422 aa 6 00132 6211 00 eax1 pr6|90 005423 aa 010000 4310 07 fld 4096,dl 005424 aa 6 00044 3701 20 epp4 pr6|36,* 005425 la 4 00072 3521 20 epp2 pr4|58,* hcs_$terminate_noname 005426 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 755 end; STATEMENT 1 ON LINE 756 call ioa_ ("Volume log ^a ^[recovered from tape volume ^a, dump time ^a^;not recovered^s^s ^]", rvl.pvname (i), (rvl.volog_found (i)), rvl.volname (i), time_string (i)); 005427 aa 772472 2360 04 ldq -2758,ic 000121 = 524000000040 005430 aa 6 00130 7561 00 stq pr6|88 005431 aa 6 00131 7561 00 stq pr6|89 005432 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005433 aa 773123 00 0124 desc9a -2477,84 000555 = 126157154165 005434 aa 6 00160 00 0124 desc9a pr6|112,84 005435 aa 6 00040 3735 20 epp7 pr6|32,* 005436 aa 7 00306 2361 00 ldq pr7|198 i 005437 aa 000036 4020 07 mpy 30,dl 005440 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005441 aa 5 00001 2351 06 lda pr5|1,ql rvl.volog_found 005442 aa 000001 7350 00 als 1 005443 aa 6 00305 7561 00 stq pr6|197 005444 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 005445 aa 6 00304 7551 00 sta pr6|196 005446 aa 7 00306 3521 00 epp2 pr7|198 i 005447 aa 6 00144 2521 00 spri2 pr6|100 005450 aa 6 00132 3521 00 epp2 pr6|90 005451 aa 6 00146 2521 00 spri2 pr6|102 005452 aa 6 00142 3521 00 epp2 pr6|98 005453 aa 010000 4310 07 fld 4096,dl 005454 aa 2 00000 7571 00 staq pr2|0 005455 aa 777346 6700 04 tsp4 -282,ic 005023 005456 aa 6 00160 3521 00 epp2 pr6|112 005457 aa 6 00234 2521 00 spri2 pr6|156 005460 aa 6 00040 3735 20 epp7 pr6|32,* 005461 aa 6 00305 7271 00 lxl7 pr6|197 005462 aa 7 00532 3715 20 epp5 pr7|346,* rvlp 005463 aa 5 77744 3521 17 epp2 pr5|-28,7 rvl.pvname 005464 aa 6 00236 2521 00 spri2 pr6|158 005465 aa 6 00304 3521 00 epp2 pr6|196 005466 aa 6 00240 2521 00 spri2 pr6|160 005467 aa 5 77754 3521 17 epp2 pr5|-20,7 rvl.volname 005470 aa 6 00242 2521 00 spri2 pr6|162 005471 aa 6 00132 3521 00 epp2 pr6|90 005472 aa 6 00244 2521 00 spri2 pr6|164 005473 aa 772372 3520 04 epp2 -2822,ic 000065 = 524000000121 005474 aa 6 00246 2521 00 spri2 pr6|166 005475 aa 6 00130 3521 00 epp2 pr6|88 005476 aa 6 00250 2521 00 spri2 pr6|168 005477 aa 772407 3520 04 epp2 -2809,ic 000106 = 514000000001 005500 aa 6 00252 2521 00 spri2 pr6|170 005501 aa 6 00131 3521 00 epp2 pr6|89 005502 aa 6 00254 2521 00 spri2 pr6|172 005503 aa 772370 3520 04 epp2 -2824,ic 000073 = 524000000030 005504 aa 6 00256 2521 00 spri2 pr6|174 005505 aa 6 00232 6211 00 eax1 pr6|154 005506 aa 024000 4310 07 fld 10240,dl 005507 aa 6 00044 3701 20 epp4 pr6|36,* 005510 la 4 00070 3521 20 epp2 pr4|56,* ioa_ 005511 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 758 end; 005512 aa 6 00040 3735 20 epp7 pr6|32,* 005513 aa 7 00306 0541 00 aos pr7|198 i 005514 aa 777560 7100 04 tra -144,ic 005274 STATEMENT 1 ON LINE 759 free rvl; 005515 aa 7 00534 2361 00 ldq pr7|348 maxpvs 005516 aa 000036 4020 07 mpy 30,dl 005517 aa 000002 0760 07 adq 2,dl 005520 aa 7 00532 3715 00 epp5 pr7|346 rvlp 005521 aa 0 01404 7001 00 tsx0 pr0|772 op_freen_ STATEMENT 1 ON LINE 760 end; STATEMENT 1 ON LINE 761 end finish_; 005522 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE finish_ END PROCEDURE recover_volume_log ----------------------------------------------------------- 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