COMPILATION LISTING OF SEGMENT rcprm_journalize_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 10/27/92 1453.8 mst Tue Options: optimize list 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1992 * 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 15 16 17 /****^ HISTORY COMMENTS: 18* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 19* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1056): 20* Correct error message documentation. 21* 2) change(92-09-23,Zimmerman), approve(92-09-23,MCR8267), 22* audit(92-10-26,Schroth), install(92-10-27,MR12.5-1041): 23* Fix journal list traversal problems encountered when date deleting 24* journals. (phx18654) 25* END HISTORY COMMENTS */ 26 27 28 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 29 rcprm_journalize_: 30 proc (arg_resource_desc_ptr, arg_action, arg_clock_time, arg_system_dir); 31 32 /* This routine manages the RCPRM journal-- a backup mechanism that allows one 33* to recover clobbered registries given a good (manually-requested) checkpoint 34* copy of the registries, and the journal (that this module manages, ahem) 35* which describes every operation which occurred since the checkpoint. */ 36 37 /* Written 01/08/79 by C. D. Tavares */ 38 /* Modified 11/21/79 by CDT to fix several bugs and add a recovery strategy to 39* allow reconstruction to continue after errors. */ 40 /* Modified 7/13/82 by BLB to ignore action_not_performed error from 41* admin_gate_$reclassify_sys_seg */ 42 /* Modified 1984-11-02 BIM to recover from missing obsolete journals. */ 43 /* Modified 1984-12-27 by Keith Loepere for version 2 create_branch_info. */ 44 /* Modified 1985-02-15 by Chris Jones to use privileges when creating journals, 45* to use rcprm_registry_util_, and for better clean up. */ 46 47 dcl arg_resource_desc_ptr pointer parameter; 48 dcl arg_action fixed bin parameter; 49 dcl arg_clock_time fixed bin (71) parameter; 50 dcl arg_system_dir char (*) parameter; 51 52 /* automatic */ 53 54 dcl auto_code fixed bin (35); 55 dcl clock_time fixed bin (71); 56 dcl n_doublewords fixed bin; 57 dcl journal_dir char (168); 58 dcl prev_time fixed bin (71); 59 dcl privileges_string bit (36) aligned; 60 dcl system_dir char (168) automatic; 61 62 declare current_journal_name char (32); 63 declare missing_journal bit (1) aligned; 64 65 /* static */ 66 67 dcl max_seg_size fixed bin static initial (0); 68 69 dcl 1 force_flags like force_write_flags aligned static; 70 71 dcl DEFAULT_JOURNAL_NAME char (13) static options (constant) init ("rcprm.journal"); 72 73 /* external static */ 74 75 dcl ( 76 sys_info$max_seg_size, 77 error_table_$no_record, 78 error_table_$recoverable_error, 79 error_table_$not_seg_type, 80 error_table_$action_not_performed, 81 error_table_$noentry 82 ) ext fixed bin (35) static; 83 84 /* entries */ 85 86 dcl ( 87 admin_gate_$syserr_error_code, 88 admin_gate_$syserr 89 ) ext entry options (variable); 90 dcl admin_gate_$reclassify_sys_seg 91 ext entry (char (*), char (*), bit (72) aligned, fixed bin (35)); 92 dcl get_group_id_ entry returns (char (32)); 93 dcl get_max_authorization_ ext entry returns (bit (72) aligned); 94 dcl get_ring_ entry returns (fixed bin); 95 dcl hcs_$chname_file entry (char (*), char (*), char (*), char (*), fixed bin (35)); 96 dcl hcs_$chname_seg entry (ptr, char (*), char (*), fixed bin (35)); 97 dcl hcs_$create_branch_ entry (char (*), char (*), pointer, fixed bin (35)); 98 dcl hcs_$force_write ext entry (pointer, pointer, fixed bin (35)); 99 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 100 dcl ioa_$rsnnl entry options (variable); 101 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 102 dcl rcprm_registry_util_$grab_registry 103 entry (ptr, char (*), char (*), fixed bin (35)); 104 dcl rcprm_registry_util_$grab_transaction_control_file 105 entry (ptr, char (*), fixed bin (35)); 106 dcl rcprm_registry_util_$release_registry 107 entry (ptr, fixed bin (35)); 108 dcl rcprm_registry_util_$release_transaction_control_file 109 entry (ptr, fixed bin (35)); 110 dcl rcprm_registry_util_$turn_off_privs 111 entry (bit (36) aligned); 112 dcl rcprm_registry_util_$turn_on_privs 113 entry (bit (36) aligned); 114 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 115 dcl unique_chars_ entry (bit (*)) returns (char (15)); 116 117 dcl sys_info$access_class_ceiling 118 bit (72) aligned ext static; 119 120 /* based */ 121 122 dcl based_words (n_doublewords) fixed bin (71) aligned based; 123 124 /* builtins and conditions */ 125 126 dcl (addr, addrel, binary, currentsize, divide, hbound, null, pointer, rel, rtrim, unspec) 127 builtin; 128 129 dcl cleanup condition; 130 131 tsw_attach_ptr, journalp, switch_ptr = null (); 132 resource_desc_ptr = arg_resource_desc_ptr; 133 clock_time = arg_clock_time; 134 system_dir = arg_system_dir; 135 rcp_priv_was_on = 1; 136 call cu_$level_get (prev_level); 137 on cleanup call clean_up ("0"b, (0)); 138 139 call journalize (auto_code); 140 if auto_code ^= 0 then 141 call admin_gate_$syserr_error_code (BEEP, auto_code, "RCP: Journal lost transaction for ^a.", 142 get_group_id_ ()); 143 144 return; 145 146 journalize: 147 proc (code); 148 149 dcl code fixed bin (35) parameter; 150 151 call find_journal ("1"b, code); 152 if code ^= 0 then 153 return; 154 155 n_doublewords = divide (currentsize (resource_desc_ptr -> resource_descriptions) + 1, 2, 35, 0); 156 if journal.next_free_word + (n_doublewords * 2) > max_seg_size then do; 157 call make_new_journal (code); 158 if code ^= 0 then 159 return; 160 end; 161 162 je_ptr = pointer (journalp, journal.next_free_word); 163 164 journal_entry.clock_time = clock_time; 165 journal_entry.n_doublewords = n_doublewords; 166 journal_entry.action = arg_action; 167 journal_entry.j_resource_desc = resource_desc_ptr -> based_words; 168 169 journal.next_free_word = journal.next_free_word + currentsize (journal_entry); 170 journal.own_last_transaction_time = clock_time; 171 172 call hcs_$force_write (journalp, addr (force_flags), code); 173 if code ^= 0 then do; 174 call admin_gate_$syserr_error_code (LOG, code, "RCP: Journal could not be forcibly written."); 175 code = 0; 176 end; 177 178 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 179 return; 180 181 end journalize; 182 183 find_journal: 184 proc (create_sw, code); 185 186 dcl create_sw bit (1) aligned parameter; 187 dcl code fixed bin (35) parameter; 188 189 if max_seg_size = 0 then do; /* initialize constants */ 190 max_seg_size = sys_info$max_seg_size; 191 unspec (force_flags) = ""b; 192 force_flags.priority_write, /* anything we can get away with */ 193 force_flags.lru_or_mru = "1"b; /* MRU */ 194 end; 195 196 journal_dir = pathname_ (system_dir, "journals"); 197 current_journal_name = DEFAULT_JOURNAL_NAME; 198 call initiate_file_ (journal_dir, current_journal_name, RW_ACCESS, journalp, (0), code); 199 200 if code = error_table_$noentry then 201 if create_sw then do; 202 call make_new_journal (code); 203 if code ^= 0 then 204 return; 205 end; 206 207 return; 208 209 end find_journal; 210 211 find_previous_journal: 212 proc (code); 213 214 dcl code fixed bin (35) parameter; 215 216 217 current_journal_name = journal.previous_journal_name; 218 call initiate_file_ (journal_dir, current_journal_name, RW_ACCESS, journalp, (0), code); 219 if code ^= 0 then 220 call admin_gate_$syserr_error_code (BEEP, code, "RCP: Cannot initiate journal ^a.", 221 pathname_ (journal_dir, current_journal_name)); 222 223 return; 224 225 end find_previous_journal; 226 227 228 make_new_journal: 229 proc (code); 230 231 dcl code fixed bin (35) parameter; 232 233 dcl from_journal_name char (32); 234 dcl to_journal_name char (32); 235 236 237 dcl 1 cbi like create_branch_info aligned automatic; 238 239 call ioa_$rsnnl ("rcprm.journal.^a", to_journal_name, (0), unique_chars_ (""b)); 240 241 if journalp ^= null then do; 242 243 /* If here, we were called because an old log had too little room left-- 244* so part of our job is to rename the old log before creating a new one. */ 245 246 from_journal_name = journal.own_name; 247 journal.subsequent_journal_name = to_journal_name; 248 prev_time = journal.own_last_transaction_time; 249 250 call hcs_$chname_file (journal_dir, DEFAULT_JOURNAL_NAME, DEFAULT_JOURNAL_NAME, "", code); 251 /* remove name "rcprm.journal" from exiting journal */ 252 if code ^= 0 then 253 return; 254 255 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 256 end; 257 258 else do; 259 from_journal_name = ""; /* first journal in chain */ 260 prev_time = 0; 261 call admin_gate_$syserr (LOG, "RCP: Creating ^a.", pathname_ (journal_dir, DEFAULT_JOURNAL_NAME)); 262 end; 263 264 unspec (cbi) = ""b; 265 cbi.version = create_branch_version_2; 266 cbi.mode = RW_ACCESS; 267 cbi.rings (*) = get_ring_ (); 268 cbi.userid = "*.*.*"; 269 cbi.access_class = get_max_authorization_ (); /* This fellow may not be allowed to SYSTEM_HIGH */ 270 cbi.priv_upgrade_sw = (cbi.rings (3) = 1); 271 cbi.parent_ac_sw = ^cbi.priv_upgrade_sw; 272 273 call rcprm_registry_util_$turn_on_privs (privileges_string); 274 call hcs_$create_branch_ (journal_dir, to_journal_name, addr (cbi), code); 275 call rcprm_registry_util_$turn_off_privs (privileges_string); 276 if code ^= 0 then 277 return; 278 279 call admin_gate_$reclassify_sys_seg (journal_dir, to_journal_name, sys_info$access_class_ceiling, code); 280 /* Force the seg to SYSTEM_HIGH via privileged call */ 281 if code ^= 0 & code ^= error_table_$action_not_performed then 282 return; 283 284 call hcs_$chname_file (journal_dir, to_journal_name, "", DEFAULT_JOURNAL_NAME, code); 285 /* add name "rcprm.journal" to new current journal */ 286 if code ^= 0 then 287 return; 288 289 call initiate_file_ (journal_dir, DEFAULT_JOURNAL_NAME, RW_ACCESS, journalp, (0), code); 290 if code ^= 0 then 291 return; /* wow, something really sick */ 292 293 journal.version = 0; 294 journal.next_free_word = currentsize (journal); 295 journal.previous_journal_last_transaction_time = prev_time; 296 journal.previous_journal_name = from_journal_name; 297 journal.own_name = to_journal_name; 298 journal.subsequent_journal_name = ""; 299 300 return; 301 302 end make_new_journal; 303 304 make_fresh_journal: 305 entry (arg_system_dir, code); 306 307 /* This entry gets rid of all old journal entries and starts a fresh journal. */ 308 309 dcl temp_ptr pointer; 310 311 dcl delete_$ptr ext entry (pointer, bit (*), char (*), fixed bin (35)); 312 313 /* This entry called from the proper validation level, jump right into code. */ 314 315 call cu_$level_get (prev_level); 316 rcp_priv_was_on = 1; /* so it won't get reset in window */ 317 tsw_attach_ptr, journalp, resource_desc_ptr, switch_ptr = null; 318 system_dir = arg_system_dir; 319 320 on cleanup call clean_up (""b, 0); 321 322 call find_journal (""b, code); 323 if code ^= 0 then 324 return; 325 326 from_time = journal.own_last_transaction_time; 327 temp_ptr = journalp; 328 329 missing_journal = "0"b; /* set to 1 if we failed to set journalp in find_previous_journal */ 330 do while (^missing_journal); 331 if journal.previous_journal_name = "" then 332 go to STOP_CHASING; 333 334 call find_previous_journal (code); 335 if code ^= 0 then 336 missing_journal = "1"b; 337 call delete_$ptr (temp_ptr, "101101"b, "rcprm_journalize_", code); 338 /* delete Journal(x), journalp -> Journal(x-1) */ 339 /* force, no question, delete anything and chase */ 340 if code ^= 0 then 341 call rename_bad_journal; 342 temp_ptr = journalp; /* temp_ptr -> Journal(x-1), find_revious_journal will set journalp -> Journal(x-2) */ 343 end; 344 345 STOP_CHASING: 346 if ^missing_journal /* if we have one left at this point */ 347 then do; 348 call delete_$ptr (temp_ptr, "101101"b, "rcprm_journalize_", code); 349 if code ^= 0 then 350 call rename_bad_journal; 351 end; 352 353 journalp = null; 354 call make_new_journal (code); 355 if code ^= 0 then 356 return; 357 358 journal.previous_journal_last_transaction_time, journal.own_last_transaction_time = from_time; 359 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 360 return; 361 362 reconstruct: 363 entry (arg_system_dir, arg_enames, arg_rtdeps, code); 364 365 dcl arg_enames char (*) dimension (*) parameter; 366 dcl arg_rtdeps pointer dimension (*) parameter; 367 dcl code fixed bin (35) parameter; 368 369 /* automatic */ 370 371 dcl action fixed bin; 372 dcl done bit (1) aligned; 373 dcl from_time fixed bin (71); 374 dcl eoj bit (1) aligned; 375 dcl (i, j, k) fixed bin; 376 dcl n_resources fixed bin; 377 dcl operation bit (36) aligned; 378 dcl prev_level fixed bin; 379 dcl rcp_priv_was_on fixed bin (35); 380 dcl reclen fixed bin (21); 381 dcl switch_ptr pointer; 382 dcl syserr_called bit (1) aligned; 383 dcl tjournalp pointer; 384 dcl tsw_attach_ptr pointer; 385 dcl who_am_i char (64); 386 387 /* external static */ 388 389 dcl error_table_$bad_date ext fixed bin (35) static; 390 dcl access_operations_$rcp_reconstruct_registry 391 bit (36) aligned ext static; 392 393 /* entries */ 394 395 dcl cu_$level_get entry (fixed bin); 396 dcl cu_$level_set entry (fixed bin); 397 dcl get_temp_segment_ entry (char (*), pointer, fixed bin (35)); 398 dcl release_temp_segment_ entry (char (*), pointer, fixed bin (35)); 399 dcl suffixed_name_$new_suffix 400 entry (char (*), char (*), char (*), char (32), fixed bin (35)); 401 dcl ( 402 system_privilege_$rcp_priv_on, 403 system_privilege_$rcp_priv_off 404 ) ext entry (fixed bin (35)); 405 406 dcl rcprm_find_resource_$reconstruct 407 ext entry (pointer, char (*), fixed bin, pointer, fixed bin (35)); 408 dcl rcprm_registry_mgr_$audit 409 entry (char (*), bit (36) aligned, fixed bin, char (*), char (*), bit (1), 410 fixed bin (35)); 411 dcl rcprm_registry_mgr_$update_registry_header_mylock 412 ext entry (char (*), pointer, fixed bin (35)); 413 414 call cu_$level_get (prev_level); 415 rcp_priv_was_on = 1; /* so it won't get reset in window */ 416 tsw_attach_ptr, journalp, resource_desc_ptr, switch_ptr = null; 417 418 on cleanup call clean_up (""b, 0); 419 420 call cu_$level_set (get_ring_ ()); 421 call system_privilege_$rcp_priv_on (rcp_priv_was_on); 422 423 n_resources = hbound (arg_enames, 1); 424 425 begin; 426 427 dcl 1 registry_data (n_resources) aligned, /* automatic adjustable */ 428 2 resource_name char (32) unaligned, 429 2 rtdep pointer, 430 2 dtcm fixed bin (71); 431 432 operation = access_operations_$rcp_reconstruct_registry; 433 ops_ptr = addr (addr (operation) -> encoded_access_op.detailed_operation); 434 detailed_operation.priv_gate_call = "1"b; 435 who_am_i = "rcprm_journalize_$reconstruct"; 436 do i = 1 to n_resources; 437 registry_data.resource_name (i) = arg_enames (i); 438 registry_data.rtdep (i) = arg_rtdeps (i); 439 end; 440 441 system_dir = arg_system_dir; 442 code = 0; 443 444 445 /* Find the journal and scoot back to the proper time. */ 446 447 call find_journal (""b, code); /* find the current journal */ 448 if code ^= 0 then 449 call audit (""); 450 451 done = "0"b; 452 tjournalp = null (); 453 454 do while (^done); /* find older journals */ 455 tjournalp = journalp; /* keep track of the journal we've currently got 456* so we don't loose it when we go looking for 457* the next one */ 458 call find_previous_journal (code); 459 if code = 0 then do; 460 call terminate_file_ (tjournalp, (0), TERM_FILE_TERM, code); 461 /* no longer interested in the last one. */ 462 if code ^= 0 then 463 call audit (""); 464 if journal.previous_journal_name = "" then 465 done = "1"b; /* end of the list */ 466 end; 467 else do; 468 /*** The list was improperly terminated, either by 469* some form of crash damage or by someone deleting 470* the journals by hand. If the former, it will be 471* caught and handled in the next code block. If the 472* latter, everything should still work o.k.... */ 473 journalp = tjournalp; /* journalp now points at something useful, the oldest */ 474 done = "1"b; 475 end; 476 477 end; 478 479 /* We must make ABSOLUTELY SURE that no operations had been performed on any 480* of the registries between the time they were saved and the time of the 481* first recorded journal entry. We do this by checking the field at the 482* header of the journal that gives the clock_time of the last transaction 483* that occurred in the last set of journals before they were deleted 484* (this field is carried over across the deletion) and verifying that it is 485* less than the DTCM of the affected registries. All transaction times 486* recorded in the journal are generated BEFORE rcprm_find_resource_ attempts 487* to perform whatever operation it is bidden-- therefore, we are ASSURED that 488* if the DTCM of the registry is greater than the transaction time recorded in 489* the journal, that transaction has already been incorporated. Likewise 490* we are ASSURED that if the DTCM of the registry is NOT greater than the 491* transaction time of the last transaction in the previous set of journals, 492* this transaction (and possibly a few transactions previous to it) have NOT 493* been incorporated, and if we start reconstruction from this time, we will 494* certainly lose! So we require that from_time CAN NOT be greater than the 495* DTCM of any registry. */ 496 497 from_time = journal.previous_journal_last_transaction_time; 498 499 /* Before we can attach any registries, we must grab the transaction control file 500* with an iron fist to make sure nobody slams things around behind our backs */ 501 502 call rcprm_registry_util_$grab_transaction_control_file (tsw_attach_ptr, system_dir, code); 503 if code ^= 0 then 504 call audit (""); 505 506 call get_temp_segment_ ("rcprm_journalize_", resource_desc_ptr, code); 507 if code ^= 0 then 508 call audit (""); 509 510 header_ptr = resource_desc_ptr; 511 512 513 /* Attach each registry under consideration and examine its DTCM 514* (as recorded in last_transaction_time) */ 515 516 do i = 1 to n_resources; 517 518 /**** Open each registry in turn. First, remove any "rcpr" suffix from registry_data, then attach 519* and open the registry. ****/ 520 521 call suffixed_name_$new_suffix ((registry_data.resource_name (i)), "rcpr", "", 522 registry_data.resource_name (i), code); 523 if code ^= 0 then 524 call audit (registry_data.resource_name (i)); 525 526 call rcprm_registry_util_$grab_registry (switch_ptr, system_dir, registry_data.resource_name (i), 527 code); 528 if code ^= 0 then 529 call audit (registry_data.resource_name (i)); 530 531 call iox_$seek_key (switch_ptr, (REGISTRY_HEADER_KEY), reclen, code); 532 if code = error_table_$no_record then 533 code = error_table_$not_seg_type; 534 if code ^= 0 then 535 call audit (registry_data.resource_name (i)); 536 537 call iox_$read_record (switch_ptr, header_ptr, reclen, 0, code); 538 if code ^= 0 then 539 call audit (registry_data.resource_name (i)); 540 541 registry_data.dtcm (i) = registry_header.last_transaction_time; 542 543 call rcprm_registry_util_$release_registry (switch_ptr, code); 544 if code ^= 0 then 545 call audit (registry_data.resource_name (i)); 546 547 /**** Note that there is a potential problem here (which won't be fixed for this release). If a registry has 548* not been changed at all since the last copy_registry -reset, we'll report an error. This isn't tragic, 549* merely confusing (the safe copy of the registry is correct, but we'll probably cause some concern to 550* whoever is doing the copying). ****/ 551 if registry_data.dtcm (i) < from_time then do; 552 code = error_table_$bad_date; 553 call audit (registry_data.resource_name (i)); 554 end; 555 end; 556 switch_ptr = null; 557 558 559 /* Here is where we start walking through all the journal entries, 560* processing them one by one. */ 561 562 eoj = ""b; 563 564 je_ptr = pointer (journalp, currentsize (journal)); 565 566 syserr_called = ""b; 567 568 do while (^eoj); /* until end of journal */ 569 action = journal_entry.action; 570 n_doublewords = journal_entry.n_doublewords; 571 resource_desc_ptr -> based_words = journal_entry.j_resource_desc; 572 573 do i = 1 by 1 while (i ^> resource_descriptions.n_items); 574 do j = 1 to n_resources 575 while (registry_data.resource_name (j) ^= resource_descriptions.type (i)); 576 end; 577 578 if j > n_resources then 579 goto dont_want_it; /* we're not updating the registry for this type */ 580 if journal_entry.clock_time ^> registry_data.dtcm (j) then do; 581 dont_want_it: 582 do k = i to resource_descriptions.n_items - 1; 583 unspec (resource_descriptions.item (k)) = unspec (resource_descriptions.item (k + 1)); 584 end; 585 resource_descriptions.n_items = resource_descriptions.n_items - 1; 586 i = i - 1; /* "this" item now new, check it again */ 587 end; 588 end; 589 590 if resource_descriptions.n_items > 0 then do; 591 592 /* We can't simulate the original call in the original process, but by jiggling 593* some of the given bits we CAN simulate a privileged call on behalf of the 594* original user that will accomplish the same thing (we hope!) First, 595* do all the operations in as easy a mode as possible-- don't tempt fate! */ 596 597 resource_descriptions.given.name (*) = "1"b; 598 resource_descriptions.given.uid (*) = "0"b; 599 600 /* Registrations, deregistrations and clears are always proxy-type operations, 601* so no additional fiddling with the given bits is necessary (with the 602* minor exception of turning the given.uid bit on for registrations to 603* signify that the old UID of the resource must be reused.) We don't 604* journalize reservations or cancellations, so we don't have to worry about 605* those. We don't journalize statuses because they never change the registry. 606* Releases need only the resource name, and we have that. Sets carry all 607* their own information with them, so these are repeatable. Only acquisitions 608* are left, and we have to diddle these slightly, because some of the 609* necessary information is sometimes derived from implication. */ 610 611 if action = Acquire then 612 resource_descriptions.given.owner (*), resource_descriptions.given.aim_range (*) = "1"b; 613 614 if action = Register then 615 resource_descriptions.given.uid (*) = "1"b; 616 617 /* Now we cross our fingers and push the red button. */ 618 619 call rcprm_find_resource_$reconstruct (resource_desc_ptr, system_dir, action, tsw_attach_ptr, 620 code); /* special entry does not try to seize rcp.tcf */ 621 if code ^= 0 then do; /* wow, bought the farm. */ 622 if code ^= error_table_$action_not_performed then 623 call audit (registry_data.resource_name (j)); 624 /* error was general, not resource-related */ 625 626 /* If code = action_not_performed, error was resource-related and REAL code is 627* in resource_descriptions structure. Print notification. */ 628 629 if ^syserr_called then 630 call admin_gate_$syserr (BEEP, "RCP: Error during registry reconstruction for ^a.", 631 get_group_id_ ()); 632 633 do i = 1 to resource_descriptions.n_items; 634 call admin_gate_$syserr_error_code (LOG, resource_descriptions.item (i).status_code, 635 "RCP: Could not ^a ^a ^a.", Action_noun (action), 636 resource_descriptions.item (i).type, resource_descriptions.item (i).name); 637 end; 638 639 syserr_called = "1"b; /* Don't goose beeper more than once */ 640 code = 0; 641 end; 642 end; 643 644 call find_next_entry; 645 call rcprm_registry_mgr_$audit (who_am_i, operation, prev_level, system_dir, 646 registry_data.resource_name (j), "1"b, 0); 647 end; 648 649 /* Now we update the headers in the registry to account for RTDT's that may 650* have been installed between the checkpoint time and the present. */ 651 652 do i = 1 to n_resources; 653 call rcprm_registry_mgr_$update_registry_header_mylock (system_dir, registry_data.rtdep (i), code); 654 if code ^= 0 then 655 call audit (registry_data.resource_name (i)); 656 /* to have come so far... */ 657 end; 658 end; /* begin block */ 659 660 /* If we make it to here, we light a candle to Babbage and collapse. */ 661 662 call clean_up ("1"b, code); 663 if code = 0 then 664 if syserr_called then do; 665 code = error_table_$recoverable_error; 666 call admin_gate_$syserr_error_code (BEEP, code, "RCP: End of reconstruction operation."); 667 end; 668 669 return; 670 671 find_next_entry: 672 proc; 673 674 /* This subroutine finds the next transaction entry in the journal. */ 675 676 dcl new_name char (32); 677 678 je_ptr = addrel (je_ptr, currentsize (journal_entry)); 679 /* addrel, addrel, mea culpa! */ 680 681 if binary (rel (je_ptr)) < max_seg_size then 682 if journal_entry.clock_time > 0 then 683 return; /* great, easy */ 684 685 new_name = journal.subsequent_journal_name; 686 687 call terminate_file_ (journalp, (0), TERM_FILE_TERM, code); 688 if code ^= 0 then 689 goto error_return; 690 691 if new_name = "" then do; 692 eoj = "1"b; 693 return; 694 end; 695 journal_dir = pathname_ (system_dir, "journals"); 696 call initiate_file_ (journal_dir, new_name, RW_ACCESS, journalp, (0), code); 697 if code ^= 0 then do; 698 call admin_gate_$syserr_error_code (BEEP, code, "RCP: Cannot initiate journal ^a.", 699 pathname_ (system_dir, new_name)); 700 goto error_return; 701 end; 702 703 je_ptr = pointer (journalp, currentsize (journal)); 704 return; 705 end find_next_entry; 706 707 708 clean_up: 709 proc (error_matters, code); 710 711 dcl error_matters bit (1) aligned parameter; 712 dcl code fixed bin (35) parameter; 713 714 if resource_desc_ptr ^= null then 715 call release_temp_segment_ ("rcprm_journalize_", resource_desc_ptr, code); 716 if error_matters then 717 if code ^= 0 then 718 goto error_return; 719 720 if journalp ^= null then 721 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 722 723 if rcp_priv_was_on = 0 then 724 call system_privilege_$rcp_priv_off (0); 725 726 if switch_ptr ^= null then do; 727 call rcprm_registry_util_$release_registry (switch_ptr, code); 728 if error_matters then 729 if code ^= 0 then 730 goto error_return; 731 end; 732 733 if tsw_attach_ptr ^= null then do; 734 call rcprm_registry_util_$release_transaction_control_file (tsw_attach_ptr, code); 735 if error_matters then 736 if code ^= 0 then 737 goto error_return; 738 end; 739 740 call cu_$level_set (prev_level); 741 742 return; 743 744 end clean_up; 745 746 rename_bad_journal: 747 procedure; 748 749 declare p_code fixed bin (35); 750 751 p_code = code; 752 753 call hcs_$chname_seg (temp_ptr, current_journal_name, rtrim (current_journal_name) || ".bad", code); 754 if code = 0 then 755 call admin_gate_$syserr_error_code (LOG, p_code, 756 "RCP: Failed to delete old journal ^a. Renamed it to ^a.bad", 757 pathname_ (journal_dir, current_journal_name), current_journal_name); 758 else call admin_gate_$syserr_error_code (LOG, code, 759 "RCP: Failed to rename or delete old journal ^a. Use hp_delete_vtoce.", 760 pathname_ (journal_dir, current_journal_name)); 761 return; 762 763 end rename_bad_journal; 764 765 766 767 error_return: 768 call clean_up (""b, (0)); 769 return; 770 771 audit: 772 proc (a_registry_name); 773 774 dcl a_registry_name char (*); 775 776 call rcprm_registry_mgr_$audit (who_am_i, operation, prev_level, system_dir, a_registry_name, "0"b, code); 777 goto error_return; 778 779 end audit; 780 1 1 /* begin include file - access_audit_encoded_op.incl.pl1 */ 1 2 1 3 dcl 1 encoded_access_op aligned based, 1 4 2 audit_type unal, 1 5 3 object_type fixed bin (4) uns unal, 1 6 3 access_type fixed bin (2) uns unal, 1 7 2 operation_index fixed bin (12) uns unal, 1 8 2 detailed_operation fixed bin (18) uns unal; 1 9 1 10 /* object_type = Seg, Dir, Rcp, Admin, Special, Other 1 11* access_type = None, Modify_Acl, Modify, Read 1 12* operation_index is the index of this code in 1 13* access_operations_$oper_codes and the index of 1 14* the text descriptor in access_operations_$text_offest_table 1 15* (see access_operations_.incl.pl1) 1 16* detailed_operation is additional info inserted by the 1 17* caller of the subsystem performing the operation 1 18**/ 1 19 1 20 /* end include file - access_audit_encoded_op.incl.pl1 */ 781 782 2 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 2 /* BEGIN include rcp_ops.incl.pl1 */ 2 3 2 4 /* Written 02/27/85 by Chris Jones, Maria Pozzo */ 2 5 2 6 dcl ops_ptr ptr; 2 7 2 8 dcl 1 detailed_operation unaligned based (ops_ptr), 2 9 2 given, 2 10 3 potential_attributes 2 11 bit (1), 2 12 3 desired_attributes 2 13 bit (1), 2 14 3 potential_aim_range 2 15 bit (1), 2 16 3 aim_range bit (1), 2 17 3 owner bit (1), 2 18 3 acs_path bit (1), 2 19 3 location bit (1), 2 20 3 comment bit (1), 2 21 3 charge_type bit (1), 2 22 3 usage_lock bit (1), 2 23 3 release_lock bit (1), 2 24 3 user_alloc bit (1), 2 25 2 priv_gate_call bit (1), 2 26 2 search bit (1), 2 27 2 force bit (1), 2 28 2 process bit (1), 2 29 2 owner bit (1), 2 30 2 pad bit (1); 2 31 783 784 3 1 /* --------------- BEGIN include file rcprm_journal.incl.pl1 --------------- */ 3 2 3 3 dcl 1 journal aligned based (journalp), 3 4 2 version fixed bin, 3 5 2 next_free_word fixed bin (18) aligned unsigned, 3 6 2 previous_journal_last_transaction_time fixed bin (71), 3 7 2 pad1 (2) bit (36) aligned, 3 8 2 own_last_transaction_time fixed bin (71), 3 9 2 previous_journal_name char (32), 3 10 2 own_name char (32), 3 11 2 subsequent_journal_name char (32), 3 12 2 pad2 (30) bit (36) aligned, 3 13 2 pad3 pointer aligned; 3 14 3 15 dcl 1 journal_entry aligned based (je_ptr), 3 16 2 clock_time fixed bin (71), 3 17 2 n_doublewords fixed bin, 3 18 2 action fixed bin, 3 19 2 pad (4) fixed bin, 3 20 2 j_resource_desc (0 refer (journal_entry.n_doublewords)) fixed bin (71) aligned; 3 21 3 22 /* j_resource_desc is really a copy of resource_control_desc that we can't declare any more cleanly 3 23* because of the like/refer conflicts involved. */ 3 24 /* j_resource_desc must be an even number of words and begin on an even boundary */ 3 25 3 26 dcl journalp pointer initial (null), 3 27 je_ptr pointer initial (null); 3 28 3 29 /* ---------------- END include file rcprm_journal.incl.pl1 ---------------- */ 785 786 4 1 /* --------------- BEGIN include file resource_control_desc.incl.pl1 --------------- */ 4 2 4 3 /* Written by R.J.C. Kissel 3/78. */ 4 4 /* Modified 09/28/78 by C. D. Tavares */ 4 5 4 6 dcl 1 resource_descriptions based (resource_desc_ptr) aligned, 4 7 2 version_no fixed bin, /* caller must set this to resource_desc_version_1 */ 4 8 2 n_items fixed bin, /* Number of resources described by this structure. */ 4 9 2 item (Resource_count refer (resource_descriptions.n_items)) aligned, 4 10 3 type char (32), /* e.g., "tape_drive" */ 4 11 3 name char (32), /* e.g., "tapa_03" */ 4 12 3 uid bit (36), /* The resource unique id. */ 4 13 3 potential_attributes bit (72), /* resource's permissible attributes */ 4 14 3 attributes (2) bit (72), /* RCP attribute description (output) */ 4 15 3 desired_attributes (4) bit (72), /* desired attributes (input) */ 4 16 3 potential_aim_range (2) bit (72), /* Lowest and highest possible AIM bounds for resource */ 4 17 3 aim_range (2) bit (72), /* Current AIM range */ 4 18 3 owner char (32), /* e.g., "Smith.Project" */ 4 19 3 acs_path char (168), /* Access control segment pathname. */ 4 20 3 location char (168), /* String describing location in unusual cases */ 4 21 3 comment char (168), /* User-settable comment string */ 4 22 3 charge_type char (32), /* accounting identifier for this resource */ 4 23 3 rew bit (3) unaligned, /* user's effective access to resource */ 4 24 3 (usage_lock, /* This resource may not be acquired or used. */ 4 25 release_lock, /* The owner is not allowed to release the resource. */ 4 26 awaiting_clear, /* Resource awaiting manual clear */ 4 27 user_alloc) bit (1) unaligned, /* User claims volume contains useful data */ 4 28 3 pad2 bit (29) unaligned, /* Ignored field. */ 4 29 3 given aligned, /* each of these bits says the corresponding */ 4 30 /* item is significant on input */ 4 31 (4 (name, 4 32 uid, 4 33 potential_attributes, 4 34 desired_attributes, 4 35 potential_aim_range, 4 36 aim_range, 4 37 owner, 4 38 acs_path, 4 39 location, 4 40 comment, 4 41 charge_type, 4 42 usage_lock, 4 43 release_lock, 4 44 user_alloc) bit (1), 4 45 4 pad1 bit (22)) unaligned, 4 46 3 state bit (36) aligned, /* For use of resource_control_ only */ 4 47 3 status_code fixed bin (35); /* Standard system status code for this resource. */ 4 48 4 49 4 50 /* Note that the reservation description must always be used with a resource 4 51* description structure. When they are used together the two structures must 4 52* have the same number of entries, i.e. Resource_count is the same for both. */ 4 53 4 54 4 55 dcl 1 reservation_description based (resource_res_ptr) aligned, 4 56 2 version_no fixed bin, /* The version number for this structure. */ 4 57 2 reserved_for char (32), /* Group id of reserved for process. */ 4 58 2 reserved_by char (32), /* Group id of reserved by process. */ 4 59 2 reservation_id fixed bin (71), /* Reservation id of this reservation group. */ 4 60 2 group_starting_time fixed bin (71), /* Starting time for this reservation group. */ 4 61 2 asap_duration fixed bin (71), /* Duration after which as soon as possible is no longer good. */ 4 62 2 flags aligned, 4 63 (3 auto_expire bit (1), /* Should reservation expire when this process terminates. */ 4 64 3 asap bit (1), /* Make this reservation group as soon as possible. */ 4 65 3 rel bit (1), /* Times are relative/absolute. */ 4 66 3 sec bit (1)) unaligned, /* Times are in sec/microsec. */ 4 67 2 n_items fixed bin, /* Number of resources reserved in this group. */ 4 68 2 reservation_group (Resource_count refer (reservation_description.n_items)), 4 69 3 starting_time fixed bin (71), /* When this resource res. starts in the group. */ 4 70 3 duration fixed bin (71); /* Duration of this resource res. in the group. */ 4 71 4 72 dcl (resource_desc_ptr, 4 73 resource_res_ptr) pointer; 4 74 4 75 dcl (resource_desc_version_1 initial (1), 4 76 resource_res_version_1 initial (1)) internal static options (constant); 4 77 4 78 dcl Resource_count fixed bin; /* The number of resources described in the structures. */ 4 79 4 80 /* ---------------- END include file resource_control_desc.incl.pl1 ---------------- */ 787 788 5 1 /* START OF: rcprm_registry_keys.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 /* Written January 1985 by Chris Jones. */ 5 3 5 4 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 5 5 dcl ( 5 6 REGISTRY_ACS_PATH_KEY init ("!ACS_paths"), 5 7 REGISTRY_AIM_RANGE_KEY init ("!AIM_ranges"), 5 8 REGISTRY_ATTRIBUTES_KEY 5 9 init ("!attributes"), 5 10 REGISTRY_CHARGE_TYPE_KEY 5 11 init ("!charge_types"), 5 12 REGISTRY_COMMENT_KEY init ("!comments"), 5 13 REGISTRY_FREE_KEY init ("!free"), 5 14 REGISTRY_HEADER_KEY init ("!header"), 5 15 REGISTRY_LOCATION_KEY init ("!locations"), 5 16 REGISTRY_NAME_KEY_HEAD init ("!N."), 5 17 REGISTRY_OWNER_KEY_HEAD 5 18 init ("!O."), 5 19 REGISTRY_SYSTEM_KEY init ("!system"), 5 20 REGISTRY_UID_KEY_HEAD init ("!U.") 5 21 ) static char (16) varying options (constant); 5 22 5 23 5 24 /* END OF: rcprm_registry_keys.incl.pl1 * * * * * * * * * * * * * * * * */ 789 790 6 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 6 2 6 3 /* Written 05/04/78 by C. D. Tavares */ 6 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 6 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 6 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 6 7 6 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 6 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 6 10 iox_$close entry (pointer, fixed bin (35)), 6 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 6 12 iox_$delete_record entry (pointer, fixed bin (35)), 6 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 6 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 6 15 iox_$err_not_attached entry options (variable), 6 16 iox_$err_not_closed entry options (variable), 6 17 iox_$err_no_operation entry options (variable), 6 18 iox_$err_not_open entry options (variable), 6 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 6 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 6 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 6 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 6 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 6 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 6 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 6 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 6 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 6 28 iox_$propagate entry (pointer), 6 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 6 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 6 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 6 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 6 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 6 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 6 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 6 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 6 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 6 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 6 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 6 40 6 41 dcl (iox_$user_output, 6 42 iox_$user_input, 6 43 iox_$user_io, 6 44 iox_$error_output) external static pointer; 6 45 6 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 791 792 7 1 /* --------------- BEGIN include file rcprm_action_codes.incl.pl1 --------------- */ 7 2 7 3 dcl (Register initial (1), /* Positive actions must be ODD */ 7 4 Deregister initial (2), /* Negative actions must be EVEN */ 7 5 Acquire initial (3), 7 6 Release initial (4), 7 7 Clear initial (6), 7 8 Set initial (7), 7 9 Status initial (8), 7 10 Reserve initial (9), 7 11 Cancel initial (10)) fixed bin static options (constant); 7 12 7 13 dcl Action_noun (10) char (12) static options (constant) initial 7 14 ("register", "deregister", "acquire", "release", "ERROR", "clear", "set", "status", "reserve", "cancel"); 7 15 7 16 7 17 /* ---------------- END include file rcprm_action_codes.incl.pl1 ---------------- */ 793 794 8 1 /* Begin include file ..... iox_modes.incl.pl1 */ 8 2 8 3 /* Written by C. D. Tavares, 03/17/75 */ 8 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 8 5 8 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 8 7 ("stream_input", "stream_output", "stream_input_output", 8 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 8 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 8 10 "direct_input", "direct_output", "direct_update"); 8 11 8 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 8 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 8 14 8 15 dcl (Stream_input initial (1), 8 16 Stream_output initial (2), 8 17 Stream_input_output initial (3), 8 18 Sequential_input initial (4), 8 19 Sequential_output initial (5), 8 20 Sequential_input_output initial (6), 8 21 Sequential_update initial (7), 8 22 Keyed_sequential_input initial (8), 8 23 Keyed_sequential_output initial (9), 8 24 Keyed_sequential_update initial (10), 8 25 Direct_input initial (11), 8 26 Direct_output initial (12), 8 27 Direct_update initial (13)) fixed bin int static options (constant); 8 28 8 29 /* End include file ..... iox_modes.incl.pl1 */ 795 796 9 1 /* --------------- BEGIN include file rcp_registry.incl.pl1 --------------- */ 9 2 9 3 /* Written 05/04/78 by C. D. Tavares */ 9 4 9 5 dcl 1 registry_record aligned based (record_ptr), 9 6 2 dynamic_info aligned, 9 7 3 attributes (2) bit (72) aligned, 9 8 3 (location_desc, 9 9 comment_desc, 9 10 pad (2)) fixed bin (35) aligned, 9 11 2 acquisition_info aligned, 9 12 3 (owner_desc, 9 13 acs_path_desc, 9 14 aim_range_desc) fixed bin (35) aligned, 9 15 3 flags unaligned, 9 16 4 (usage_lock, 9 17 release_lock, 9 18 awaiting_clear, 9 19 user_alloc, 9 20 system, 9 21 free) bit (1) unaligned, 9 22 4 pad bit (12) unaligned, 9 23 3 reserver_chain bit (18) unaligned, 9 24 3 pad (2) fixed bin (35) aligned, 9 25 2 registration_info aligned, 9 26 3 uid bit (36) aligned, 9 27 3 (potential_attributes_desc, 9 28 potential_aim_range_desc, 9 29 charge_type_desc, 9 30 pad (2)) fixed bin (35) aligned, 9 31 3 name unaligned, 9 32 4 n fixed bin (8) unaligned, 9 33 4 string char (rr_strl refer (registry_record.name.n)) unaligned; 9 34 9 35 dcl 1 registry_header aligned based (header_ptr), 9 36 2 rtde_size fixed bin (18), 9 37 2 rtde_copy (RTDE_SIZE refer (registry_header.rtde_size)) bit (36) aligned, 9 38 2 other aligned, 9 39 3 last_transaction_time fixed bin (71), 9 40 3 pad (18) bit (36) aligned; 9 41 9 42 dcl RTDE_SIZE fixed bin (18); 9 43 10 1 /* --------------- BEGIN include file rtdt.incl.pl1 --------------- */ 10 2 10 3 dcl 1 rtdt aligned based (rtdtp), /* resource type description table */ 11 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 11 2 11 3 /* the "author" items must always be the first ones in the table. The 11 4* module which moves the converted table to the System Control process 11 5* fills in these data items and assumes them to be at the head of the segment 11 6* regardless of the specific table's actual declaration. The variables 11 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 11 8* respectively. For tables installed in multiple processes, these 11 9* are to be used to lock out multiple installations. */ 11 10 11 11 /* Lock should be used as a modification lock. Since, in general, 11 12* entries may not be moved in system tables, even by installations, 11 13* it is sufficient for only installers and programs that change threads 11 14* to set or respect the lock. Simply updating data in an entry 11 15* requires no such protection. 11 16* 11 17* Last_install_time is used by readers of system tables to detect 11 18* installations or other serious modifications. By checking it before 11 19* and after copying a block of data, they can be protected against 11 20* modifications. 11 21* 11 22* Modules that set the lock should save proc_group_id, and then 11 23* put their group id there for the time they hold the lock. 11 24* if they do not actually install the, they should restore the group id. 11 25**/ 11 26 11 27 2 author aligned, /* validation data about table's author */ 11 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 11 29 3 lock bit (36), /* installation lock */ 11 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 11 31 3 update_authorization bit (1) unal, /* update only authorizations */ 11 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 11 33 3 pad bit (33) unaligned, 11 34 3 last_install_time fixed bin (71), 11 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 11 36 3 w_dir char (64), /* author's working directory */ 11 37 11 38 /* END INCLUDE FILE author.incl.pl1 */ 10 4 10 5 2 version fixed bin, /* version number */ 10 6 2 installed_under_resource_mgt bit (1) aligned, /* resource mgt. was ON when this was installed */ 10 7 2 charge_type_table_ptr offset, /* points to charge_type_table */ 10 8 2 first_resource offset, /* chain for RTDE's */ 10 9 2 rtdt_area area (RTDT_area_len); /* all following items allocated here */ 10 10 10 11 dcl 1 charge_type_table aligned based (cttp), /* describes charges for resource types */ 10 12 2 n_charge_types fixed bin, /* number of distinct charge types */ 10 13 2 charge_types (N_CHARGE_TYPES refer (charge_type_table.n_charge_types)) aligned char (32), 10 14 2 flagword fixed bin (35) aligned; /* this word simply help us set bitcount properly */ 10 15 10 16 dcl 1 rtde aligned based (rtdep), /* describes one resource type */ 10 17 2 fixed_info aligned, 10 18 3 next_resource offset, /* chains to next type, or nullo */ 10 19 3 name char (32), /* name of resource type, e.g. "tape_drive" */ 10 20 3 syn_to char (32), /* if is_synonym this is master syn */ 10 21 3 precanon_proc char (64), /* name of routine to standardize resource name */ 10 22 3 pad_1 (16) fixed bin (35), 10 23 3 flags unaligned, 10 24 4 (valid, /* resource type hasn't been deleted */ 10 25 is_volume, /* specifies volume or device type */ 10 26 manual_clear, /* volumes of this type to be "degaussed" between owners */ 10 27 addition_pending, /* bookkeeping bit for upd_rtdt_ */ 10 28 deletion_pending, 10 29 is_synonym) bit (1) unaligned, /* ditto */ 10 30 4 pad bit (12) unaligned, 10 31 3 (process_limit, /* how many can you assign at one time */ 10 32 default_time, /* implicit reservations are for how many minutes */ 10 33 max_time, /* how long can you reserve it for */ 10 34 advance_notice_time, /* warn operator to prepare mount ahead of time */ 10 35 pad2, 10 36 n_exclusion_specs, /* number of distinct "name=" fields in attributes */ 10 37 n_mates, /* number of mating devs/vols for this vol/dev */ 10 38 n_subtypes, /* number of registration subtypes */ 10 39 n_defined_attributes) fixed bin (17) unaligned, /* number of defined attributes */ 10 40 3 pad_2 (8) fixed bin (35), 10 41 3 attributes_valid bit (72) aligned, /* "1"b if corresp. attribute undeleted */ 10 42 3 attributes_to_match bit (72) aligned, /* potential mate must possess these attributes */ 10 43 3 attribute_names (72) char (12) aligned, /* all possible attributes for this resource */ 10 44 3 exclusion_specs (36) bit (72) aligned, /* each masks all attrributes of the form "key=val" */ 10 45 3 pad_3 (32) fixed bin (35), 10 46 3 registration_defaults aligned, /* applied at reg. time if none given */ 10 47 4 default_flags aligned, 10 48 5 (potential_attributes_given, /* "1"b = there are default potential_attributes */ 10 49 attributes_given, /* and similarly, etc. */ 10 50 aim_range_given, 10 51 charge_type_given) bit (1) unaligned, 10 52 5 pad bit (31) unaligned, 10 53 4 potential_attributes bit (72) aligned, /* for registration, if given */ 10 54 4 attributes bit (72) aligned, /* for registration and also for runtime "I-don't-care" */ 10 55 4 aim_range (2) bit (72) aligned, /* and similarly, etc. */ 10 56 4 charge_type fixed bin, 10 57 4 pad_4 (8) fixed bin (35) aligned, 10 58 2 mates (N_MATES refer (rtde.n_mates)) char (32) aligned, 10 59 /* the volume type that mounts on this device, or vice versa */ 10 60 2 subtypes (N_SUBTYPES refer (rtde.n_subtypes)) aligned, /* named registration default groups */ 10 61 3 subtype_name char (32), /* name of the group */ 10 62 3 subtype_defaults like rtde.registration_defaults aligned; 10 63 10 64 dcl RTDT_version_3 fixed bin static options (constant) initial (3), 10 65 RTDT_version_2 fixed bin static options (constant) initial (2), 10 66 /* same format, but without precanon_proc */ 10 67 (N_MATES, N_SUBTYPES, N_CHARGE_TYPES) fixed bin, 10 68 RTDT_area_len fixed bin (18); 10 69 10 70 dcl (rtdep, rtdtp, cttp) pointer; 10 71 10 72 /* ---------------- END include file rtdt.incl.pl1 ---------------- */ 9 44 9 45 9 46 dcl (record_ptr, header_ptr) pointer, 9 47 rr_strl fixed bin; 9 48 9 49 /* ---------------- END include file rcp_registry.incl.pl1 ---------------- */ 797 798 12 1 /* BEGIN INCLUDE FILE ... force_write_flags.incl.pl1 ... Created January 1977 */ 12 2 12 3 dcl fwfp ptr; 12 4 12 5 dcl 1 force_write_flags aligned based (fwfp), 12 6 2 priority_write bit (1) unal, /* "1"b if request to be queued for priority write */ 12 7 /* "0"b if request to be queued for normal write */ 12 8 2 serial_write bit (1) unal, /* "1"b if force write to be done serially */ 12 9 /* "0"b if force write to be done in parallel */ 12 10 2 lru_or_mru bit (1) unal, /* "1"b thread force written pages into list as mru */ 12 11 /* "0"b thread force written pages into lru list */ 12 12 2 mbz bit (33) unal; 12 13 12 14 /* END INCLUDE FILE ... force_write_flags.incl.pl1 */ 799 800 13 1 /* BEGIN INCLUDE FILE - - - create_branch_info.incl.pl1 - - - created January 1975 */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(89-01-16,TLNguyen), approve(89-01-16,MCR8049), 13 6* audit(89-02-03,Parisek), install(89-03-15,MR12.3-1025): 13 7* 1. Declare version constant properly. 13 8* 2. Remove version 1 since it was never referenced and to force 13 9* callers to upgrade their programs. 13 10* END HISTORY COMMENTS */ 13 11 13 12 13 13 /* Modified December 1984 for dir_quota, Keith Loepere. */ 13 14 13 15 /* this include files gives the argument structure for create_branch_ */ 13 16 13 17 dcl 1 create_branch_info aligned based, 13 18 2 version fixed bin, /* set this to the largest value given below */ 13 19 2 switches unaligned, 13 20 3 dir_sw bit (1) unaligned, /* if on, a directory branch is wanted */ 13 21 3 copy_sw bit (1) unaligned, /* if on, initiating segment will be done by copying */ 13 22 3 chase_sw bit (1) unaligned, /* if on, if pathname is a link, it will be chased */ 13 23 3 priv_upgrade_sw bit (1) unaligned, /* privileged creation (ring 1) of upgraded object */ 13 24 3 parent_ac_sw bit (1) unaligned, /* if on, use parent's access class for seg or dir created */ 13 25 3 mbz1 bit (31) unaligned, /* pad to full word */ 13 26 2 mode bit (3) unaligned, /* segment or directory for acl for userid */ 13 27 2 mbz2 bit (33) unaligned, /* pad to full word */ 13 28 2 rings (3) fixed bin (3), /* branch's ring brackets */ 13 29 2 userid char (32), /* user's access control name */ 13 30 2 bitcnt fixed bin (24), /* bit count of the segment */ 13 31 2 quota fixed bin (18), /* for directories, this am't of quota will be moved to it */ 13 32 2 access_class bit (72), /* is the access class of the body of the branch */ 13 33 2 dir_quota fixed bin (18); /* for directories, this am't of dir quota will be moved to it */ 13 34 13 35 dcl create_branch_version_2 fixed bin int static options (constant) init (2); 13 36 13 37 /* END INCLUDE FILE - - - create_branch_info.incl.pl1 - - - */ 13 38 801 802 14 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 14 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 14 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 14 4 14 5 /* This include file has an ALM version. Keep 'em in sync! */ 14 6 14 7 dcl ( 14 8 14 9 /* The following constants define the message action codes. This indicates 14 10*how a message is to be handled. */ 14 11 14 12 SYSERR_CRASH_SYSTEM init (1), 14 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 14 14 14 15 SYSERR_TERMINATE_PROCESS init (2), 14 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 14 17 14 18 SYSERR_PRINT_WITH_ALARM init (3), 14 19 BEEP init (3), /* Beep and print the message on the console. */ 14 20 14 21 SYSERR_PRINT_ON_CONSOLE init (0), 14 22 ANNOUNCE init (0), /* Just print the message on the console. */ 14 23 14 24 SYSERR_LOG_OR_PRINT init (4), 14 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 14 26 14 27 SYSERR_LOG_OR_DISCARD init (5), 14 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 14 29 14 30 14 31 /* The following constants are added to the normal severities to indicate 14 32*different sorting classes of messages. */ 14 33 14 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 14 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 14 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 14 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 14 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 14 39 ) fixed bin internal static options (constant); 14 40 14 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 803 804 15 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 15 2* 15 3* Values for the "access mode" argument so often used in hardcore 15 4* James R. Davis 26 Jan 81 MCR 4844 15 5* Added constants for SM access 4/28/82 Jay Pattin 15 6* Added text strings 03/19/85 Chris Jones 15 7**/ 15 8 15 9 15 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 15 11 dcl ( 15 12 N_ACCESS init ("000"b), 15 13 R_ACCESS init ("100"b), 15 14 E_ACCESS init ("010"b), 15 15 W_ACCESS init ("001"b), 15 16 RE_ACCESS init ("110"b), 15 17 REW_ACCESS init ("111"b), 15 18 RW_ACCESS init ("101"b), 15 19 S_ACCESS init ("100"b), 15 20 M_ACCESS init ("010"b), 15 21 A_ACCESS init ("001"b), 15 22 SA_ACCESS init ("101"b), 15 23 SM_ACCESS init ("110"b), 15 24 SMA_ACCESS init ("111"b) 15 25 ) bit (3) internal static options (constant); 15 26 15 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 15 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 15 29 15 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 15 31 static options (constant); 15 32 15 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 15 34 static options (constant); 15 35 15 36 dcl ( 15 37 N_ACCESS_BIN init (00000b), 15 38 R_ACCESS_BIN init (01000b), 15 39 E_ACCESS_BIN init (00100b), 15 40 W_ACCESS_BIN init (00010b), 15 41 RW_ACCESS_BIN init (01010b), 15 42 RE_ACCESS_BIN init (01100b), 15 43 REW_ACCESS_BIN init (01110b), 15 44 S_ACCESS_BIN init (01000b), 15 45 M_ACCESS_BIN init (00010b), 15 46 A_ACCESS_BIN init (00001b), 15 47 SA_ACCESS_BIN init (01001b), 15 48 SM_ACCESS_BIN init (01010b), 15 49 SMA_ACCESS_BIN init (01011b) 15 50 ) fixed bin (5) internal static options (constant); 15 51 15 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 805 806 16 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 16 2 /* format: style2,^inddcls,idind32 */ 16 3 16 4 declare 1 terminate_file_switches based, 16 5 2 truncate bit (1) unaligned, 16 6 2 set_bc bit (1) unaligned, 16 7 2 terminate bit (1) unaligned, 16 8 2 force_write bit (1) unaligned, 16 9 2 delete bit (1) unaligned; 16 10 16 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 16 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 16 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 16 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 16 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 16 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 16 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 16 18 16 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 807 808 809 /* BEGIN MESSAGE DOCUMENTATION 810* 811* Message: 812* RCP: Journal lost transaction for USERID. ERROR_CODE 813* 814* S: $beep 815* 816* T: $run 817* 818* M: Some RCP Resource Management activity, while successfully completed, was 819* not properly journalized for recovery purposes. Subsequently, if the 820* registries become damaged before they are safely copied by the System 821* Administrator, this activity will be lost. 822* 823* A: $contact_sa 824* 825* 826* Message: 827* RCP: Journal could not be forcibly written. ERROR CODE 828* 829* S: $info 830* 831* T: $run 832* 833* M: A force-write to disk of the RCP journal failed. $err 834* 835* A: $contact 836* 837* 838* Message: 839* RCP: Cannot initiate journal PATH. ERROR_CODE 840* 841* S: $beep 842* 843* T: $run 844* 845* M: The RCP journal at PATH has been damaged or is missing. 846* 847* A: $contact 848* 849* 850* Message: 851* RCP: Creating DIRNAME>rcprm.journal 852* 853* S: $info 854* 855* T: $run 856* 857* M: Printed by RCP Resource Management when first enabled. 858* 859* A: $ignore 860* 861* 862* Message: 863* RCP: Error during registry reconstruction for USERID. 864* RCP: Could not OPERATION RESOURCE_TYPE RESOURCE_NAME 865* {may occur multiple times} 866* RCP: End of reconstruction operation. 867* 868* S: $beep 869* 870* 871* T: This message should only occur during a special session. The second 872* message in the series may occur multiple times. 873* 874* M: The specified RCP Resource Management activity failed to be re-performed 875* during an attempt to reconstruct the registries by the System Administrator. 876* $err 877* 878* A: $contact_sa 879* 880* END MESSAGE DOCUMENTATION */ 881 882 end rcprm_journalize_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/92 1453.8 rcprm_journalize_.pl1 >spec>install>1041>rcprm_journalize_.pl1 781 1 01/30/85 1523.9 access_audit_encoded_op.incl.pl1 >ldd>include>access_audit_encoded_op.incl.pl1 783 2 03/15/85 0953.1 rcp_ops.incl.pl1 >ldd>include>rcp_ops.incl.pl1 785 3 11/20/79 2015.5 rcprm_journal.incl.pl1 >ldd>include>rcprm_journal.incl.pl1 787 4 02/13/79 1715.0 resource_control_desc.incl.pl1 >ldd>include>resource_control_desc.incl.pl1 789 5 03/15/85 0953.1 rcprm_registry_keys.incl.pl1 >ldd>include>rcprm_registry_keys.incl.pl1 791 6 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 793 7 02/11/80 1426.1 rcprm_action_codes.incl.pl1 >ldd>include>rcprm_action_codes.incl.pl1 795 8 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 797 9 11/20/79 2015.5 rcp_registry.incl.pl1 >ldd>include>rcp_registry.incl.pl1 9-44 10 11/20/79 2015.6 rtdt.incl.pl1 >ldd>include>rtdt.incl.pl1 10-4 11 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 799 12 11/16/78 0718.7 force_write_flags.incl.pl1 >ldd>include>force_write_flags.incl.pl1 801 13 03/16/89 2012.8 create_branch_info.incl.pl1 >ldd>include>create_branch_info.incl.pl1 803 14 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 805 15 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 807 16 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.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. Acquire constant fixed bin(17,0) initial dcl 7-3 ref 611 Action_noun 000002 constant char(12) initial array packed unaligned dcl 7-13 set ref 634* BEEP 000111 constant fixed bin(17,0) initial dcl 14-7 set ref 140* 219* 629* 666* 698* DEFAULT_JOURNAL_NAME 000045 constant char(13) initial packed unaligned dcl 71 set ref 197 250* 250* 261* 261* 284* 289* LOG 000102 constant fixed bin(17,0) initial dcl 14-7 set ref 174* 261* 634* 754* 758* REGISTRY_HEADER_KEY 000040 constant varying char(16) initial dcl 5-5 ref 531 RW_ACCESS 000001 constant bit(3) initial packed unaligned dcl 15-11 set ref 198* 218* 266 289* 696* Register constant fixed bin(17,0) initial dcl 7-3 ref 614 TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 16-14 set ref 178* 255* 359* 460* 687* 720* a_registry_name parameter char packed unaligned dcl 774 set ref 771 776* access_class 20 000120 automatic bit(72) level 2 dcl 237 set ref 269* access_operations_$rcp_reconstruct_registry 000106 external static bit(36) dcl 390 ref 432 action 000256 automatic fixed bin(17,0) dcl 371 in procedure "rcprm_journalize_" set ref 569* 611 614 619* 634 action 3 based fixed bin(17,0) level 2 in structure "journal_entry" dcl 3-15 in procedure "rcprm_journalize_" set ref 166* 569 addr builtin function dcl 126 ref 172 172 274 274 433 433 addrel builtin function dcl 126 ref 678 admin_gate_$reclassify_sys_seg 000032 constant entry external dcl 90 ref 279 admin_gate_$syserr 000030 constant entry external dcl 86 ref 261 629 admin_gate_$syserr_error_code 000026 constant entry external dcl 86 ref 140 174 219 634 666 698 754 758 aim_range 270(05) based bit(1) array level 4 packed packed unaligned dcl 4-6 set ref 611* arg_action parameter fixed bin(17,0) dcl 48 ref 29 166 arg_clock_time parameter fixed bin(71,0) dcl 49 ref 29 133 arg_enames parameter char array packed unaligned dcl 365 ref 362 423 437 arg_resource_desc_ptr parameter pointer dcl 47 ref 29 132 arg_rtdeps parameter pointer array dcl 366 ref 362 438 arg_system_dir parameter char packed unaligned dcl 50 ref 29 134 304 318 362 441 auto_code 000100 automatic fixed bin(35,0) dcl 54 set ref 139* 140 140* based_words based fixed bin(71,0) array dcl 122 set ref 167 571* binary builtin function dcl 126 ref 681 cbi 000120 automatic structure level 1 dcl 237 set ref 264* 274 274 cleanup 000246 stack reference condition dcl 129 ref 137 320 418 clock_time 000102 automatic fixed bin(71,0) dcl 55 in procedure "rcprm_journalize_" set ref 133* 164 170 clock_time based fixed bin(71,0) level 2 in structure "journal_entry" dcl 3-15 in procedure "rcprm_journalize_" set ref 164* 580 681 code parameter fixed bin(35,0) dcl 214 in procedure "find_previous_journal" set ref 211 218* 219 219* code parameter fixed bin(35,0) dcl 367 in procedure "rcprm_journalize_" set ref 304 322* 323 334* 335 337* 340 348* 349 354* 355 362 442* 447* 448 458* 459 460* 462 502* 503 506* 507 521* 523 526* 528 531* 532 532* 534 537* 538 543* 544 552* 619* 621 622 640* 653* 654 662* 663 665* 666* 687* 688 696* 697 698* 751 753* 754 758* 776* code parameter fixed bin(35,0) dcl 712 in procedure "clean_up" set ref 708 714* 716 727* 728 734* 735 code parameter fixed bin(35,0) dcl 187 in procedure "find_journal" set ref 183 198* 200 202* 203 code parameter fixed bin(35,0) dcl 231 in procedure "make_new_journal" set ref 228 250* 252 274* 276 279* 281 281 284* 286 289* 290 code parameter fixed bin(35,0) dcl 149 in procedure "journalize" set ref 146 151* 152 157* 158 172* 173 174* 175* create_branch_info based structure level 1 dcl 13-17 create_branch_version_2 constant fixed bin(17,0) initial dcl 13-35 ref 265 create_sw parameter bit(1) dcl 186 ref 183 200 cu_$level_get 000110 constant entry external dcl 395 ref 136 315 414 cu_$level_set 000112 constant entry external dcl 396 ref 420 740 current_journal_name 000235 automatic char(32) packed unaligned dcl 62 set ref 197* 198* 217* 218* 219* 219* 753* 753 754* 754* 754* 758* 758* currentsize builtin function dcl 126 ref 155 169 294 564 678 703 delete_$ptr 000102 constant entry external dcl 311 ref 337 348 detailed_operation based structure level 1 packed packed unaligned dcl 2-8 in procedure "rcprm_journalize_" detailed_operation 0(18) based fixed bin(18,0) level 2 in structure "encoded_access_op" packed packed unsigned unaligned dcl 1-3 in procedure "rcprm_journalize_" set ref 433 divide builtin function dcl 126 ref 155 done 000257 automatic bit(1) dcl 372 set ref 451* 454 464* 474* dtcm 12 000100 automatic fixed bin(71,0) array level 2 dcl 427 set ref 541* 551 580 encoded_access_op based structure level 1 dcl 1-3 eoj 000262 automatic bit(1) dcl 374 set ref 562* 568 692* error_matters parameter bit(1) dcl 711 ref 708 716 728 735 error_table_$action_not_performed 000022 external static fixed bin(35,0) dcl 75 ref 281 622 error_table_$bad_date 000104 external static fixed bin(35,0) dcl 389 ref 552 error_table_$no_record 000014 external static fixed bin(35,0) dcl 75 ref 532 error_table_$noentry 000024 external static fixed bin(35,0) dcl 75 ref 200 error_table_$not_seg_type 000020 external static fixed bin(35,0) dcl 75 ref 532 error_table_$recoverable_error 000016 external static fixed bin(35,0) dcl 75 ref 665 fixed_info based structure level 2 dcl 10-16 force_flags 000011 internal static structure level 1 dcl 69 set ref 172 172 191* force_write_flags based structure level 1 dcl 12-5 from_journal_name 000100 automatic char(32) packed unaligned dcl 233 set ref 246* 259* 296 from_time 000260 automatic fixed bin(71,0) dcl 373 set ref 326* 358 497* 551 get_group_id_ 000034 constant entry external dcl 92 ref 140 140 629 629 get_max_authorization_ 000036 constant entry external dcl 93 ref 269 get_ring_ 000040 constant entry external dcl 94 ref 267 420 420 get_temp_segment_ 000114 constant entry external dcl 397 ref 506 given 270 based structure array level 3 dcl 4-6 hbound builtin function dcl 126 ref 423 hcs_$chname_file 000042 constant entry external dcl 95 ref 250 284 hcs_$chname_seg 000044 constant entry external dcl 96 ref 753 hcs_$create_branch_ 000046 constant entry external dcl 97 ref 274 hcs_$force_write 000050 constant entry external dcl 98 ref 172 header_ptr 000334 automatic pointer dcl 9-46 set ref 510* 537* 541 i 000263 automatic fixed bin(17,0) dcl 375 set ref 436* 437 437 438 438* 516* 521 521 523 526 528 534 538 541 544 551 553* 573* 573* 574 581 586* 586* 633* 634 634 634* 652* 653 654* initiate_file_ 000052 constant entry external dcl 99 ref 198 218 289 696 ioa_$rsnnl 000054 constant entry external dcl 100 ref 239 iox_$read_record 000134 constant entry external dcl 6-8 ref 537 iox_$seek_key 000136 constant entry external dcl 6-8 ref 531 item 2 based structure array level 2 dcl 4-6 set ref 583* 583 j 000264 automatic fixed bin(17,0) dcl 375 set ref 574* 574* 578 580 622 645 j_resource_desc 10 based fixed bin(71,0) array level 2 dcl 3-15 set ref 167* 571 je_ptr 000330 automatic pointer initial dcl 3-26 set ref 3-26* 162* 164 165 166 167 169 564* 569 570 571 580 678* 678 678 681 681 703* journal based structure level 1 dcl 3-3 set ref 294 564 703 journal_dir 000105 automatic char(168) packed unaligned dcl 57 set ref 196* 198* 218* 219* 219* 250* 261* 261* 274* 279* 284* 289* 695* 696* 754* 754* 758* 758* journal_entry based structure level 1 dcl 3-15 set ref 169 678 journalp 000326 automatic pointer initial dcl 3-26 set ref 131* 317* 326 327 331 342 353* 358 358 359* 416* 3-26* 156 162 162 169 169 170 172* 178* 198* 217 218* 241 246 247 248 255* 289* 293 294 294 295 296 297 298 455 464 473* 497 564 564 685 687* 696* 703 703 720 720* k 000265 automatic fixed bin(17,0) dcl 375 set ref 581* 583 583* last_transaction_time based fixed bin(71,0) level 3 dcl 9-35 ref 541 lru_or_mru 0(02) 000011 internal static bit(1) level 2 packed packed unaligned dcl 69 set ref 192* max_seg_size 000010 internal static fixed bin(17,0) initial dcl 67 set ref 156 189 190* 681 missing_journal 000245 automatic bit(1) dcl 63 set ref 329* 330 335* 345 mode 2 000120 automatic bit(3) level 2 packed packed unaligned dcl 237 set ref 266* n_doublewords 2 based fixed bin(17,0) level 2 in structure "journal_entry" dcl 3-15 in procedure "rcprm_journalize_" set ref 165* 167 169 570 571 678 n_doublewords 000104 automatic fixed bin(17,0) dcl 56 in procedure "rcprm_journalize_" set ref 155* 156 165 167 570* 571 n_items 1 based fixed bin(17,0) level 2 dcl 4-6 set ref 155 573 581 585* 585 590 597 598 611 611 614 633 n_resources 000266 automatic fixed bin(17,0) dcl 376 set ref 423* 427 436 516 574 578 652 name 12 based char(32) array level 3 in structure "resource_descriptions" dcl 4-6 in procedure "rcprm_journalize_" set ref 634* name 270 based bit(1) array level 4 in structure "resource_descriptions" packed packed unaligned dcl 4-6 in procedure "rcprm_journalize_" set ref 597* new_name 000122 automatic char(32) packed unaligned dcl 676 set ref 685* 691 696* 698* 698* next_free_word 1 based fixed bin(18,0) level 2 unsigned dcl 3-3 set ref 156 162 169* 169 294* null builtin function dcl 126 ref 131 317 353 416 3-26 3-26 241 452 556 714 720 726 733 operation 000267 automatic bit(36) dcl 377 set ref 432* 433 645* 776* ops_ptr 000324 automatic pointer dcl 2-6 set ref 433* 434 other based structure level 2 dcl 9-35 own_last_transaction_time 6 based fixed bin(71,0) level 2 dcl 3-3 set ref 170* 248 326 358* own_name 20 based char(32) level 2 dcl 3-3 set ref 246 297* owner 270(06) based bit(1) array level 4 packed packed unaligned dcl 4-6 set ref 611* p_code 000362 automatic fixed bin(35,0) dcl 749 set ref 751* 754* parent_ac_sw 1(04) 000120 automatic bit(1) level 3 packed packed unaligned dcl 237 set ref 271* pathname_ 000056 constant entry external dcl 101 ref 196 219 219 261 261 695 698 698 754 754 758 758 pointer builtin function dcl 126 ref 162 564 703 prev_level 000270 automatic fixed bin(17,0) dcl 378 set ref 136* 315* 414* 645* 740* 776* prev_time 000160 automatic fixed bin(71,0) dcl 58 set ref 248* 260* 295 previous_journal_last_transaction_time 2 based fixed bin(71,0) level 2 dcl 3-3 set ref 295* 358* 497 previous_journal_name 10 based char(32) level 2 dcl 3-3 set ref 217 296* 331 464 priority_write 000011 internal static bit(1) level 2 packed packed unaligned dcl 69 set ref 192* priv_gate_call 0(12) based bit(1) level 2 packed packed unaligned dcl 2-8 set ref 434* priv_upgrade_sw 1(03) 000120 automatic bit(1) level 3 packed packed unaligned dcl 237 set ref 270* 271 privileges_string 000162 automatic bit(36) dcl 59 set ref 273* 275* rcp_priv_was_on 000271 automatic fixed bin(35,0) dcl 379 set ref 135* 316* 415* 421* 723 rcprm_find_resource_$reconstruct 000126 constant entry external dcl 406 ref 619 rcprm_registry_mgr_$audit 000130 constant entry external dcl 408 ref 645 776 rcprm_registry_mgr_$update_registry_header_mylock 000132 constant entry external dcl 411 ref 653 rcprm_registry_util_$grab_registry 000060 constant entry external dcl 102 ref 526 rcprm_registry_util_$grab_transaction_control_file 000062 constant entry external dcl 104 ref 502 rcprm_registry_util_$release_registry 000064 constant entry external dcl 106 ref 543 727 rcprm_registry_util_$release_transaction_control_file 000066 constant entry external dcl 108 ref 734 rcprm_registry_util_$turn_off_privs 000070 constant entry external dcl 110 ref 275 rcprm_registry_util_$turn_on_privs 000072 constant entry external dcl 112 ref 273 reclen 000272 automatic fixed bin(21,0) dcl 380 set ref 531* 537* registration_defaults 602 based structure level 3 dcl 10-16 registry_data 000100 automatic structure array level 1 dcl 427 registry_header based structure level 1 dcl 9-35 rel builtin function dcl 126 ref 681 release_temp_segment_ 000116 constant entry external dcl 398 ref 714 resource_desc_ptr 000332 automatic pointer dcl 4-72 set ref 132* 155 167 317* 416* 506* 510 571 573 574 581 583 583 585 585 590 597 598 611 611 614 619* 633 634 634 634 714 714* resource_descriptions based structure level 1 dcl 4-6 set ref 155 resource_name 000100 automatic char(32) array level 2 packed packed unaligned dcl 427 set ref 437* 521 521* 523* 526* 528* 534* 538* 544* 553* 574 622* 645* 654* rings 3 000120 automatic fixed bin(3,0) array level 2 dcl 237 set ref 267* 270 rtde based structure level 1 dcl 10-16 rtde_size based fixed bin(18,0) level 2 dcl 9-35 ref 541 rtdep 10 000100 automatic pointer array level 2 dcl 427 set ref 438* 653* rtrim builtin function dcl 126 ref 753 status_code 272 based fixed bin(35,0) array level 3 dcl 4-6 set ref 634* subsequent_journal_name 30 based char(32) level 2 dcl 3-3 set ref 247* 298* 685 suffixed_name_$new_suffix 000120 constant entry external dcl 399 ref 521 switch_ptr 000274 automatic pointer dcl 381 set ref 131* 317* 416* 526* 531* 537* 543* 556* 726 727* switches 1 000120 automatic structure level 2 packed packed unaligned dcl 237 sys_info$access_class_ceiling 000100 external static bit(72) dcl 117 set ref 279* sys_info$max_seg_size 000012 external static fixed bin(35,0) dcl 75 ref 190 syserr_called 000276 automatic bit(1) dcl 382 set ref 566* 629 639* 663 system_dir 000163 automatic char(168) packed unaligned dcl 60 set ref 134* 196* 318* 441* 502* 526* 619* 645* 653* 695* 698* 698* 776* system_privilege_$rcp_priv_off 000124 constant entry external dcl 401 ref 723 system_privilege_$rcp_priv_on 000122 constant entry external dcl 401 ref 421 temp_ptr 000254 automatic pointer dcl 309 set ref 327* 337* 342* 348* 753* terminate_file_ 000074 constant entry external dcl 114 ref 178 255 359 460 687 720 tjournalp 000300 automatic pointer dcl 383 set ref 452* 455* 460* 473 to_journal_name 000110 automatic char(32) packed unaligned dcl 234 set ref 239* 247 274* 279* 284* 297 tsw_attach_ptr 000302 automatic pointer dcl 384 set ref 131* 317* 416* 502* 619* 733 734* type 2 based char(32) array level 3 dcl 4-6 set ref 574 634* uid 270(01) based bit(1) array level 4 packed packed unaligned dcl 4-6 set ref 598* 614* unique_chars_ 000076 constant entry external dcl 115 ref 239 239 unspec builtin function dcl 126 set ref 191* 264* 583* 583 userid 6 000120 automatic char(32) level 2 dcl 237 set ref 268* version based fixed bin(17,0) level 2 in structure "journal" dcl 3-3 in procedure "rcprm_journalize_" set ref 293* version 000120 automatic fixed bin(17,0) level 2 in structure "cbi" dcl 237 in procedure "make_new_journal" set ref 265* who_am_i 000304 automatic char(64) packed unaligned dcl 385 set ref 435* 645* 776* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANNOUNCE internal static fixed bin(17,0) initial dcl 14-7 A_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 CRASH internal static fixed bin(17,0) initial dcl 14-7 Cancel internal static fixed bin(17,0) initial dcl 7-3 Clear internal static fixed bin(17,0) initial dcl 7-3 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 15-33 Deregister internal static fixed bin(17,0) initial dcl 7-3 Direct_input internal static fixed bin(17,0) initial dcl 8-15 Direct_output internal static fixed bin(17,0) initial dcl 8-15 Direct_update internal static fixed bin(17,0) initial dcl 8-15 E_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 JUST_LOG internal static fixed bin(17,0) initial dcl 14-7 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 8-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 8-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 8-15 M_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 N_CHARGE_TYPES automatic fixed bin(17,0) dcl 10-64 N_MATES automatic fixed bin(17,0) dcl 10-64 N_SUBTYPES automatic fixed bin(17,0) dcl 10-64 REGISTRY_ACS_PATH_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_AIM_RANGE_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_ATTRIBUTES_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_CHARGE_TYPE_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_COMMENT_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_FREE_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_LOCATION_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_NAME_KEY_HEAD internal static varying char(16) initial dcl 5-5 REGISTRY_OWNER_KEY_HEAD internal static varying char(16) initial dcl 5-5 REGISTRY_SYSTEM_KEY internal static varying char(16) initial dcl 5-5 REGISTRY_UID_KEY_HEAD internal static varying char(16) initial dcl 5-5 REW_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 RTDE_SIZE automatic fixed bin(18,0) dcl 9-42 RTDT_area_len automatic fixed bin(18,0) dcl 10-64 RTDT_version_2 internal static fixed bin(17,0) initial dcl 10-64 RTDT_version_3 internal static fixed bin(17,0) initial dcl 10-64 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 Release internal static fixed bin(17,0) initial dcl 7-3 Reserve internal static fixed bin(17,0) initial dcl 7-3 Resource_count automatic fixed bin(17,0) dcl 4-78 SA_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 15-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 14-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 14-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 14-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 14-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 14-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 14-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 14-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 14-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 14-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 14-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 14-7 S_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 Sequential_input internal static fixed bin(17,0) initial dcl 8-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 8-15 Sequential_output internal static fixed bin(17,0) initial dcl 8-15 Sequential_update internal static fixed bin(17,0) initial dcl 8-15 Set internal static fixed bin(17,0) initial dcl 7-3 Status internal static fixed bin(17,0) initial dcl 7-3 Stream_input internal static fixed bin(17,0) initial dcl 8-15 Stream_input_output internal static fixed bin(17,0) initial dcl 8-15 Stream_output internal static fixed bin(17,0) initial dcl 8-15 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 14-7 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 16-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 16-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 16-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 16-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 16-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 16-15 W_ACCESS internal static bit(3) initial packed unaligned dcl 15-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 15-36 charge_type_table based structure level 1 dcl 10-11 cttp automatic pointer dcl 10-70 fwfp automatic pointer dcl 12-3 iox_$attach_loud 000000 constant entry external dcl 6-8 iox_$attach_name 000000 constant entry external dcl 6-8 iox_$attach_ptr 000000 constant entry external dcl 6-8 iox_$close 000000 constant entry external dcl 6-8 iox_$close_file 000000 constant entry external dcl 6-8 iox_$control 000000 constant entry external dcl 6-8 iox_$delete_record 000000 constant entry external dcl 6-8 iox_$destroy_iocb 000000 constant entry external dcl 6-8 iox_$detach 000000 constant entry external dcl 6-8 iox_$detach_iocb 000000 constant entry external dcl 6-8 iox_$err_no_operation 000000 constant entry external dcl 6-8 iox_$err_not_attached 000000 constant entry external dcl 6-8 iox_$err_not_closed 000000 constant entry external dcl 6-8 iox_$err_not_open 000000 constant entry external dcl 6-8 iox_$error_output external static pointer dcl 6-41 iox_$find_iocb 000000 constant entry external dcl 6-8 iox_$find_iocb_n 000000 constant entry external dcl 6-8 iox_$get_chars 000000 constant entry external dcl 6-8 iox_$get_line 000000 constant entry external dcl 6-8 iox_$look_iocb 000000 constant entry external dcl 6-8 iox_$modes 000000 constant entry external dcl 6-8 iox_$move_attach 000000 constant entry external dcl 6-8 iox_$open 000000 constant entry external dcl 6-8 iox_$open_file 000000 constant entry external dcl 6-8 iox_$position 000000 constant entry external dcl 6-8 iox_$propagate 000000 constant entry external dcl 6-8 iox_$put_chars 000000 constant entry external dcl 6-8 iox_$read_key 000000 constant entry external dcl 6-8 iox_$read_length 000000 constant entry external dcl 6-8 iox_$rewrite_record 000000 constant entry external dcl 6-8 iox_$user_input external static pointer dcl 6-41 iox_$user_io external static pointer dcl 6-41 iox_$user_output external static pointer dcl 6-41 iox_$write_record 000000 constant entry external dcl 6-8 iox_modes internal static char(24) initial array dcl 8-6 record_ptr automatic pointer dcl 9-46 registry_record based structure level 1 dcl 9-5 reservation_description based structure level 1 dcl 4-55 resource_desc_version_1 internal static fixed bin(17,0) initial dcl 4-75 resource_res_ptr automatic pointer dcl 4-72 resource_res_version_1 internal static fixed bin(17,0) initial dcl 4-75 rr_strl automatic fixed bin(17,0) dcl 9-46 rtdep automatic pointer dcl 10-70 rtdt based structure level 1 dcl 10-3 rtdtp automatic pointer dcl 10-70 short_iox_modes internal static char(4) initial array dcl 8-12 terminate_file_switches based structure level 1 packed packed unaligned dcl 16-4 NAMES DECLARED BY EXPLICIT CONTEXT. STOP_CHASING 000705 constant label dcl 345 ref 331 audit 005040 constant entry internal dcl 771 ref 448 462 503 507 523 528 534 538 544 553 622 654 clean_up 004422 constant entry internal dcl 708 ref 137 320 418 662 767 dont_want_it 002141 constant label dcl 581 ref 578 error_return 002706 constant label dcl 767 ref 688 700 716 728 735 777 find_journal 003140 constant entry internal dcl 183 ref 151 322 447 find_next_entry 004162 constant entry internal dcl 671 ref 644 find_previous_journal 003267 constant entry internal dcl 211 ref 334 458 journalize 002722 constant entry internal dcl 146 ref 139 make_fresh_journal 000503 constant entry external dcl 304 make_new_journal 003416 constant entry internal dcl 228 ref 157 202 354 rcprm_journalize_ 000333 constant entry external dcl 29 reconstruct 001017 constant entry external dcl 362 rename_bad_journal 004631 constant entry internal dcl 746 ref 340 349 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6022 6162 5136 6032 Length 7024 5136 140 626 664 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcprm_journalize_ 448 external procedure is an external procedure. on unit on line 137 74 on unit journalize internal procedure shares stack frame of external procedure rcprm_journalize_. find_journal 108 internal procedure is called by several nonquick procedures. find_previous_journal 166 internal procedure is called by several nonquick procedures. make_new_journal 204 internal procedure is called by several nonquick procedures. on unit on line 320 74 on unit on unit on line 418 74 on unit begin block on line 425 334 begin block uses auto adjustable storage. find_next_entry internal procedure shares stack frame of begin block on line 425. clean_up 104 internal procedure is called by several nonquick procedures. rename_bad_journal internal procedure shares stack frame of external procedure rcprm_journalize_. audit internal procedure shares stack frame of begin block on line 425. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 max_seg_size rcprm_journalize_ 000011 force_flags rcprm_journalize_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 425 000100 registry_data begin block on line 425 000122 new_name find_next_entry make_new_journal 000100 from_journal_name make_new_journal 000110 to_journal_name make_new_journal 000120 cbi make_new_journal rcprm_journalize_ 000100 auto_code rcprm_journalize_ 000102 clock_time rcprm_journalize_ 000104 n_doublewords rcprm_journalize_ 000105 journal_dir rcprm_journalize_ 000160 prev_time rcprm_journalize_ 000162 privileges_string rcprm_journalize_ 000163 system_dir rcprm_journalize_ 000235 current_journal_name rcprm_journalize_ 000245 missing_journal rcprm_journalize_ 000254 temp_ptr rcprm_journalize_ 000256 action rcprm_journalize_ 000257 done rcprm_journalize_ 000260 from_time rcprm_journalize_ 000262 eoj rcprm_journalize_ 000263 i rcprm_journalize_ 000264 j rcprm_journalize_ 000265 k rcprm_journalize_ 000266 n_resources rcprm_journalize_ 000267 operation rcprm_journalize_ 000270 prev_level rcprm_journalize_ 000271 rcp_priv_was_on rcprm_journalize_ 000272 reclen rcprm_journalize_ 000274 switch_ptr rcprm_journalize_ 000276 syserr_called rcprm_journalize_ 000300 tjournalp rcprm_journalize_ 000302 tsw_attach_ptr rcprm_journalize_ 000304 who_am_i rcprm_journalize_ 000324 ops_ptr rcprm_journalize_ 000326 journalp rcprm_journalize_ 000330 je_ptr rcprm_journalize_ 000332 resource_desc_ptr rcprm_journalize_ 000334 header_ptr rcprm_journalize_ 000362 p_code rename_bad_journal THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp enter_begin_block leave_begin_block call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 alloc_auto_adj bound_ck_signal enable_op shorten_stack ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. admin_gate_$reclassify_sys_seg admin_gate_$syserr admin_gate_$syserr_error_code cu_$level_get cu_$level_set delete_$ptr get_group_id_ get_max_authorization_ get_ring_ get_temp_segment_ hcs_$chname_file hcs_$chname_seg hcs_$create_branch_ hcs_$force_write initiate_file_ ioa_$rsnnl iox_$read_record iox_$seek_key pathname_ rcprm_find_resource_$reconstruct rcprm_registry_mgr_$audit rcprm_registry_mgr_$update_registry_header_mylock rcprm_registry_util_$grab_registry rcprm_registry_util_$grab_transaction_control_file rcprm_registry_util_$release_registry rcprm_registry_util_$release_transaction_control_file rcprm_registry_util_$turn_off_privs rcprm_registry_util_$turn_on_privs release_temp_segment_ suffixed_name_$new_suffix system_privilege_$rcp_priv_off system_privilege_$rcp_priv_on terminate_file_ unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$rcp_reconstruct_registry error_table_$action_not_performed error_table_$bad_date error_table_$no_record error_table_$noentry error_table_$not_seg_type error_table_$recoverable_error sys_info$access_class_ceiling sys_info$max_seg_size CONSTANTS 005122 aa 577777777777 005124 aa 000002000000 005125 aa 000002000000 005126 aa 600000000041 005127 aa 000140000000 005130 ta 000062000000 005131 aa 000000000000 005132 aa 000002000000 005133 aa 000000000000 005134 aa 600000000041 005135 aa 000100000000 000000 aa 100000000000 000001 aa 500000000000 000002 aa 162 145 147 151 regi 000003 aa 163 164 145 162 ster 000004 aa 040 040 040 040 000005 aa 144 145 162 145 dere 000006 aa 147 151 163 164 gist 000007 aa 145 162 040 040 er 000010 aa 141 143 161 165 acqu 000011 aa 151 162 145 040 ire 000012 aa 040 040 040 040 000013 aa 162 145 154 145 rele 000014 aa 141 163 145 040 ase 000015 aa 040 040 040 040 000016 aa 105 122 122 117 ERRO 000017 aa 122 040 040 040 R 000020 aa 040 040 040 040 000021 aa 143 154 145 141 clea 000022 aa 162 040 040 040 r 000023 aa 040 040 040 040 000024 aa 163 145 164 040 set 000025 aa 040 040 040 040 000026 aa 040 040 040 040 000027 aa 163 164 141 164 stat 000030 aa 165 163 040 040 us 000031 aa 040 040 040 040 000032 aa 162 145 163 145 rese 000033 aa 162 166 145 040 rve 000034 aa 040 040 040 040 000035 aa 143 141 156 143 canc 000036 aa 145 154 040 040 el 000037 aa 040 040 040 040 000040 aa 000000000007 000041 aa 041 150 145 141 !hea 000042 aa 144 145 162 040 der 000043 aa 040 040 040 040 000044 aa 040 040 040 040 000045 aa 162 143 160 162 rcpr 000046 aa 155 056 152 157 m.jo 000047 aa 165 162 156 141 urna 000050 aa 154 000 000 000 l 000051 aa 524000000104 000052 aa 524000000072 000053 aa 056 142 141 144 .bad 000054 aa 514000000044 000055 aa 526000000100 000056 aa 526000000014 000057 aa 524000000030 000060 aa 524000000061 000061 aa 524000000004 000062 aa 524000000000 000063 aa 526000000015 000064 aa 524000000017 000065 aa 514000000000 000066 aa 404000000005 000067 aa 524000000020 000070 aa 524000000250 000071 aa 524000000010 000072 aa 514000000001 000073 aa 524000000053 000074 aa 516000000003 000075 aa 404000000030 000076 aa 524000000021 000077 aa 514000000006 000100 aa 524000000040 000101 aa 524000000045 000102 aa 000000000004 000103 aa 404000000043 000104 aa 526000000017 000105 aa 526000000250 000106 aa 514000000110 000107 aa 526000000040 000110 aa 526077777777 000111 aa 000000000003 000112 aa 410000000107 000113 aa 404000000021 000114 aa 464000000000 000116 aa 052 056 052 056 *.*. 000117 aa 052 000 000 000 * 000120 aa 000000000000 000121 aa 000000000000 000122 aa 152 157 165 162 jour 000123 aa 156 141 154 163 nals 000124 aa 077777000043 000125 aa 000001000000 000126 aa 143 154 145 141 clea 000127 aa 156 165 160 000 nup 000130 aa 162 143 160 162 rcpr 000131 aa 155 056 152 157 m.jo 000132 aa 165 162 156 141 urna 000133 aa 154 056 136 141 l.^a 000134 aa 464100000000 000135 aa 400000000000 000136 aa 400000000000 000137 aa 400000000000 000140 aa 526177777777 000141 aa 400000000000 000142 aa 400000000000 000143 aa 400000000000 000144 aa 122 103 120 072 RCP: 000145 aa 040 103 162 145 Cre 000146 aa 141 164 151 156 atin 000147 aa 147 040 136 141 g ^a 000150 aa 056 000 000 000 . 000151 aa 162 143 160 162 rcpr 000152 aa 155 137 152 157 m_jo 000153 aa 165 162 156 141 urna 000154 aa 154 151 172 145 lize 000155 aa 137 000 000 000 _ 000156 aa 122 103 120 072 RCP: 000157 aa 040 103 157 165 Cou 000160 aa 154 144 040 156 ld n 000161 aa 157 164 040 136 ot ^ 000162 aa 141 040 136 141 a ^a 000163 aa 040 136 141 056 ^a. 000164 aa 162 143 160 162 rcpr 000165 aa 155 137 152 157 m_jo 000166 aa 165 162 156 141 urna 000167 aa 154 151 172 145 lize 000170 aa 137 044 162 145 _$re 000171 aa 143 157 156 163 cons 000172 aa 164 162 165 143 truc 000173 aa 164 000 000 000 t 000174 aa 122 103 120 072 RCP: 000175 aa 040 103 141 156 Can 000176 aa 156 157 164 040 not 000177 aa 151 156 151 164 init 000200 aa 151 141 164 145 iate 000201 aa 040 152 157 165 jou 000202 aa 162 156 141 154 rnal 000203 aa 040 136 141 056 ^a. 000204 aa 122 103 120 072 RCP: 000205 aa 040 105 156 144 End 000206 aa 040 157 146 040 of 000207 aa 162 145 143 157 reco 000210 aa 156 163 164 162 nstr 000211 aa 165 143 164 151 ucti 000212 aa 157 156 040 157 on o 000213 aa 160 145 162 141 pera 000214 aa 164 151 157 156 tion 000215 aa 056 000 000 000 . 000216 aa 122 103 120 072 RCP: 000217 aa 040 112 157 165 Jou 000220 aa 162 156 141 154 rnal 000221 aa 040 154 157 163 los 000222 aa 164 040 164 162 t tr 000223 aa 141 156 163 141 ansa 000224 aa 143 164 151 157 ctio 000225 aa 156 040 146 157 n fo 000226 aa 162 040 136 141 r ^a 000227 aa 056 000 000 000 . 000230 aa 122 103 120 072 RCP: 000231 aa 040 112 157 165 Jou 000232 aa 162 156 141 154 rnal 000233 aa 040 143 157 165 cou 000234 aa 154 144 040 156 ld n 000235 aa 157 164 040 142 ot b 000236 aa 145 040 146 157 e fo 000237 aa 162 143 151 142 rcib 000240 aa 154 171 040 167 ly w 000241 aa 162 151 164 164 ritt 000242 aa 145 156 056 000 en. 000243 aa 122 103 120 072 RCP: 000244 aa 040 105 162 162 Err 000245 aa 157 162 040 144 or d 000246 aa 165 162 151 156 urin 000247 aa 147 040 162 145 g re 000250 aa 147 151 163 164 gist 000251 aa 162 171 040 162 ry r 000252 aa 145 143 157 156 econ 000253 aa 163 164 162 165 stru 000254 aa 143 164 151 157 ctio 000255 aa 156 040 146 157 n fo 000256 aa 162 040 136 141 r ^a 000257 aa 056 000 000 000 . 000260 aa 122 103 120 072 RCP: 000261 aa 040 106 141 151 Fai 000262 aa 154 145 144 040 led 000263 aa 164 157 040 144 to d 000264 aa 145 154 145 164 elet 000265 aa 145 040 157 154 e ol 000266 aa 144 040 152 157 d jo 000267 aa 165 162 156 141 urna 000270 aa 154 040 136 141 l ^a 000271 aa 056 040 122 145 . Re 000272 aa 156 141 155 145 name 000273 aa 144 040 151 164 d it 000274 aa 040 164 157 040 to 000275 aa 136 141 056 142 ^a.b 000276 aa 141 144 000 000 ad 000277 aa 122 103 120 072 RCP: 000300 aa 040 106 141 151 Fai 000301 aa 154 145 144 040 led 000302 aa 164 157 040 162 to r 000303 aa 145 156 141 155 enam 000304 aa 145 040 157 162 e or 000305 aa 040 144 145 154 del 000306 aa 145 164 145 040 ete 000307 aa 157 154 144 040 old 000310 aa 152 157 165 162 jour 000311 aa 156 141 154 040 nal 000312 aa 136 141 056 040 ^a. 000313 aa 125 163 145 040 Use 000314 aa 150 160 137 144 hp_d 000315 aa 145 154 145 164 elet 000316 aa 145 137 166 164 e_vt 000317 aa 157 143 145 056 oce. BEGIN PROCEDURE rcprm_journalize_ PROLOGUE SEQUENCE 000320 aa 6 00363 4401 00 sxl0 pr6|243 STATEMENT 1 ON LINE 26 OF FILE 3 000321 aa 777603 2370 04 ldaq -125,ic 000124 = 077777000043 000001000000 000322 aa 6 00326 7571 00 staq pr6|214 journalp 000323 aa 6 00330 7571 00 staq pr6|216 je_ptr 000324 aa 6 00363 7201 00 lxl0 pr6|243 000325 aa 000000 7100 10 tra 0,0 MAIN SEQUENCE ENTRY TO rcprm_journalize_ STATEMENT 1 ON LINE 29 rcprm_journalize_: proc (arg_resource_desc_ptr, arg_action, arg_clock_time, arg_system_dir); 000326 at 000004000114 000327 tt 000113000112 000330 ta 000110000000 000331 ta 000326000000 000332 da 000565300000 000333 aa 000700 6270 00 eax7 448 000334 aa 7 00034 3521 20 epp2 pr7|28,* 000335 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000336 aa 000010000000 000337 aa 000000000000 000340 aa 6 00032 3735 20 epp7 pr6|26,* 000341 aa 7 00010 3715 20 epp5 pr7|8,* 000342 aa 6 00340 6515 00 spri5 pr6|224 000343 aa 6 00042 3535 20 epp3 pr6|34,* 000344 aa 3 00006 3515 20 epp1 pr3|6,* 000345 aa 6 00336 2515 00 spri1 pr6|222 000346 aa 777752 7000 04 tsx0 -22,ic 000320 STATEMENT 1 ON LINE 131 tsw_attach_ptr, journalp, switch_ptr = null (); 000347 aa 777555 3734 24 epp7 -147,ic* 000350 aa 6 00302 6535 00 spri7 pr6|194 tsw_attach_ptr 000351 aa 6 00326 6535 00 spri7 pr6|214 journalp 000352 aa 6 00274 6535 00 spri7 pr6|188 switch_ptr STATEMENT 1 ON LINE 132 resource_desc_ptr = arg_resource_desc_ptr; 000353 aa 6 00032 3715 20 epp5 pr6|26,* 000354 aa 5 00002 3535 20 epp3 pr5|2,* arg_resource_desc_ptr 000355 aa 3 00000 3535 20 epp3 pr3|0,* arg_resource_desc_ptr 000356 aa 6 00332 2535 00 spri3 pr6|218 resource_desc_ptr STATEMENT 1 ON LINE 133 clock_time = arg_clock_time; 000357 aa 5 00006 2371 20 ldaq pr5|6,* arg_clock_time 000360 aa 6 00102 7571 00 staq pr6|66 clock_time STATEMENT 1 ON LINE 134 system_dir = arg_system_dir; 000361 aa 6 00336 2361 20 ldq pr6|222,* 000362 aa 000002 6040 04 tmi 2,ic 000364 000363 aa 777777 3760 07 anq 262143,dl 000364 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000365 aa 6 00340 3515 20 epp1 pr6|224,* 000366 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000367 aa 1 00000 00 0006 desc9a pr1|0,ql arg_system_dir 000370 aa 6 00163 00 0250 desc9a pr6|115,168 system_dir STATEMENT 1 ON LINE 135 rcp_priv_was_on = 1; 000371 aa 000001 2360 07 ldq 1,dl 000372 aa 6 00271 7561 00 stq pr6|185 rcp_priv_was_on STATEMENT 1 ON LINE 136 call cu_$level_get (prev_level); 000373 aa 6 00270 3521 00 epp2 pr6|184 prev_level 000374 aa 6 00370 2521 00 spri2 pr6|248 000375 aa 6 00366 6211 00 eax1 pr6|246 000376 aa 004000 4310 07 fld 2048,dl 000377 aa 6 00044 3701 20 epp4 pr6|36,* 000400 la 4 00110 3521 20 epp2 pr4|72,* cu_$level_get 000401 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 137 on cleanup call clean_up ("0"b, (0)); 000402 aa 000007 7260 07 lxl6 7,dl 000403 aa 777523 3520 04 epp2 -173,ic 000126 = 143154145141 000404 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 000405 aa 000004 7100 04 tra 4,ic 000411 000406 aa 000246000000 000407 aa 000024 7100 04 tra 20,ic 000433 BEGIN CONDITION cleanup.1 ENTRY TO cleanup.1 STATEMENT 1 ON LINE 137 on cleanup call clean_up ("0"b, (0)); 000410 da 000573200000 000411 aa 000120 6270 00 eax7 80 000412 aa 7 00034 3521 20 epp2 pr7|28,* 000413 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000414 aa 000000000000 000415 aa 000000000000 000416 aa 000000 2350 07 lda 0,dl 000417 aa 6 00100 7551 00 sta pr6|64 000420 aa 6 00101 4501 00 stz pr6|65 000421 aa 6 00100 3521 00 epp2 pr6|64 000422 aa 6 00104 2521 00 spri2 pr6|68 000423 aa 6 00101 3521 00 epp2 pr6|65 000424 aa 6 00106 2521 00 spri2 pr6|70 000425 aa 000001 7270 07 lxl7 1,dl 000426 aa 6 00102 6211 00 eax1 pr6|66 000427 aa 010000 4310 07 fld 4096,dl 000430 aa 003772 3520 04 epp2 2042,ic 004422 = 000160627000 000431 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 000432 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION cleanup.1 STATEMENT 1 ON LINE 139 call journalize (auto_code); 000433 aa 004477 3520 04 epp2 2367,ic 005132 = 000002000000 000434 aa 002266 6700 04 tsp4 1206,ic 002722 STATEMENT 1 ON LINE 140 if auto_code ^= 0 then call admin_gate_$syserr_error_code (BEEP, auto_code, "RCP: Journal lost transaction for ^a.", get_group_id_ ()); 000435 aa 6 00100 2361 00 ldq pr6|64 auto_code 000436 aa 000040 6000 04 tze 32,ic 000476 000437 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000440 aa 777557 00 0050 desc9a -145,40 000216 = 122103120072 000441 aa 6 00372 00 0050 desc9a pr6|250,40 000442 aa 6 00404 3521 00 epp2 pr6|260 000443 aa 6 00370 2521 00 spri2 pr6|248 000444 aa 6 00366 6211 00 eax1 pr6|246 000445 aa 004000 4310 07 fld 2048,dl 000446 aa 6 00044 3701 20 epp4 pr6|36,* 000447 la 4 00034 3521 20 epp2 pr4|28,* get_group_id_ 000450 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 000451 aa 777440 3520 04 epp2 -224,ic 000111 = 000000000003 000452 aa 6 00416 2521 00 spri2 pr6|270 000453 aa 6 00100 3521 00 epp2 pr6|64 auto_code 000454 aa 6 00420 2521 00 spri2 pr6|272 000455 aa 6 00372 3521 00 epp2 pr6|250 000456 aa 6 00422 2521 00 spri2 pr6|274 000457 aa 6 00404 3521 00 epp2 pr6|260 000460 aa 6 00424 2521 00 spri2 pr6|276 000461 aa 777432 3520 04 epp2 -230,ic 000113 = 404000000021 000462 aa 6 00426 2521 00 spri2 pr6|278 000463 aa 777420 3520 04 epp2 -240,ic 000103 = 404000000043 000464 aa 6 00430 2521 00 spri2 pr6|280 000465 aa 777414 3520 04 epp2 -244,ic 000101 = 524000000045 000466 aa 6 00432 2521 00 spri2 pr6|282 000467 aa 777411 3520 04 epp2 -247,ic 000100 = 524000000040 000470 aa 6 00434 2521 00 spri2 pr6|284 000471 aa 6 00414 6211 00 eax1 pr6|268 000472 aa 020000 4310 07 fld 8192,dl 000473 aa 6 00044 3701 20 epp4 pr6|36,* 000474 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 000475 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 144 return; 000476 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO make_fresh_journal STATEMENT 1 ON LINE 304 make_fresh_journal: entry (arg_system_dir, code); 000477 at 000002000110 000500 ta 000103000000 000501 ta 000477000000 000502 da 000603300000 000503 aa 000700 6270 00 eax7 448 000504 aa 7 00034 3521 20 epp2 pr7|28,* 000505 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000506 aa 000004000000 000507 aa 000000000000 000510 aa 6 00032 3735 20 epp7 pr6|26,* 000511 aa 7 00002 3715 20 epp5 pr7|2,* 000512 aa 6 00340 6515 00 spri5 pr6|224 000513 aa 6 00042 3535 20 epp3 pr6|34,* 000514 aa 3 00000 3515 20 epp1 pr3|0,* 000515 aa 6 00336 2515 00 spri1 pr6|222 000516 aa 7 00004 3715 20 epp5 pr7|4,* 000517 aa 6 00342 6515 00 spri5 pr6|226 000520 aa 777600 7000 04 tsx0 -128,ic 000320 STATEMENT 1 ON LINE 315 call cu_$level_get (prev_level); 000521 aa 6 00270 3521 00 epp2 pr6|184 prev_level 000522 aa 6 00370 2521 00 spri2 pr6|248 000523 aa 6 00366 6211 00 eax1 pr6|246 000524 aa 004000 4310 07 fld 2048,dl 000525 aa 6 00044 3701 20 epp4 pr6|36,* 000526 la 4 00110 3521 20 epp2 pr4|72,* cu_$level_get 000527 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 316 rcp_priv_was_on = 1; 000530 aa 000001 2360 07 ldq 1,dl 000531 aa 6 00271 7561 00 stq pr6|185 rcp_priv_was_on STATEMENT 1 ON LINE 317 tsw_attach_ptr, journalp, resource_desc_ptr, switch_ptr = null; 000532 aa 777372 3734 24 epp7 -262,ic* 000533 aa 6 00302 6535 00 spri7 pr6|194 tsw_attach_ptr 000534 aa 6 00326 6535 00 spri7 pr6|214 journalp 000535 aa 6 00332 6535 00 spri7 pr6|218 resource_desc_ptr 000536 aa 6 00274 6535 00 spri7 pr6|188 switch_ptr STATEMENT 1 ON LINE 318 system_dir = arg_system_dir; 000537 aa 6 00336 2361 20 ldq pr6|222,* 000540 aa 000002 6040 04 tmi 2,ic 000542 000541 aa 777777 3760 07 anq 262143,dl 000542 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000543 aa 6 00340 3715 20 epp5 pr6|224,* 000544 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000545 aa 5 00000 00 0006 desc9a pr5|0,ql arg_system_dir 000546 aa 6 00163 00 0250 desc9a pr6|115,168 system_dir STATEMENT 1 ON LINE 320 on cleanup call clean_up (""b, 0); 000547 aa 000007 7260 07 lxl6 7,dl 000550 aa 777356 3520 04 epp2 -274,ic 000126 = 143154145141 000551 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 000552 aa 000004 7100 04 tra 4,ic 000556 000553 aa 000246000000 000554 aa 000024 7100 04 tra 20,ic 000600 BEGIN CONDITION cleanup.2 ENTRY TO cleanup.2 STATEMENT 1 ON LINE 320 on cleanup call clean_up (""b, 0); 000555 da 000611200000 000556 aa 000120 6270 00 eax7 80 000557 aa 7 00034 3521 20 epp2 pr7|28,* 000560 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000561 aa 000000000000 000562 aa 000000000000 000563 aa 000000 2350 07 lda 0,dl 000564 aa 6 00100 7551 00 sta pr6|64 000565 aa 6 00101 4501 00 stz pr6|65 000566 aa 6 00100 3521 00 epp2 pr6|64 000567 aa 6 00104 2521 00 spri2 pr6|68 000570 aa 6 00101 3521 00 epp2 pr6|65 000571 aa 6 00106 2521 00 spri2 pr6|70 000572 aa 000001 7270 07 lxl7 1,dl 000573 aa 6 00102 6211 00 eax1 pr6|66 000574 aa 010000 4310 07 fld 4096,dl 000575 aa 003625 3520 04 epp2 1941,ic 004422 = 000160627000 000576 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 000577 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION cleanup.2 STATEMENT 1 ON LINE 322 call find_journal (""b, code); 000600 aa 000000 2350 07 lda 0,dl 000601 aa 6 00436 7551 00 sta pr6|286 000602 aa 6 00436 3521 00 epp2 pr6|286 000603 aa 6 00406 2521 00 spri2 pr6|262 000604 aa 6 00342 3521 20 epp2 pr6|226,* code 000605 aa 6 00410 2521 00 spri2 pr6|264 000606 aa 6 00404 6211 00 eax1 pr6|260 000607 aa 010000 4310 07 fld 4096,dl 000610 aa 002330 3520 04 epp2 1240,ic 003140 = 000160627000 000611 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 323 if code ^= 0 then return; 000612 aa 6 00342 2361 20 ldq pr6|226,* code 000613 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 326 from_time = journal.own_last_transaction_time; 000614 aa 6 00326 3735 20 epp7 pr6|214,* journalp 000615 aa 7 00006 2371 00 ldaq pr7|6 journal.own_last_transaction_time 000616 aa 6 00260 7571 00 staq pr6|176 from_time STATEMENT 1 ON LINE 327 temp_ptr = journalp; 000617 aa 6 00254 6535 00 spri7 pr6|172 temp_ptr STATEMENT 1 ON LINE 329 missing_journal = "0"b; 000620 aa 6 00245 4501 00 stz pr6|165 missing_journal STATEMENT 1 ON LINE 330 do while (^missing_journal); 000621 aa 000000 0110 03 nop 0,du 000622 aa 6 00245 2351 00 lda pr6|165 missing_journal 000623 aa 0 00002 6751 00 era pr0|2 = 400000000000 000624 aa 6 00436 7551 00 sta pr6|286 000625 aa 000060 6000 04 tze 48,ic 000705 STATEMENT 1 ON LINE 331 if journal.previous_journal_name = "" then go to STOP_CHASING; 000626 aa 6 00326 3735 20 epp7 pr6|214,* journalp 000627 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000630 aa 7 00010 00 0040 desc9a pr7|8,32 journal.previous_journal_name 000631 aa 004307 00 0000 desc9a 2247,0 005136 = 000010000000 000632 aa 000053 6000 04 tze 43,ic 000705 STATEMENT 1 ON LINE 334 call find_previous_journal (code); 000633 aa 6 00342 3521 20 epp2 pr6|226,* code 000634 aa 6 00406 2521 00 spri2 pr6|262 000635 aa 6 00404 6211 00 eax1 pr6|260 000636 aa 004000 4310 07 fld 2048,dl 000637 aa 002430 3520 04 epp2 1304,ic 003267 = 000260627000 000640 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 335 if code ^= 0 then missing_journal = "1"b; 000641 aa 6 00342 2361 20 ldq pr6|226,* code 000642 aa 000003 6000 04 tze 3,ic 000645 000643 aa 400000 2350 03 lda 131072,du 000644 aa 6 00245 7551 00 sta pr6|165 missing_journal STATEMENT 1 ON LINE 337 call delete_$ptr (temp_ptr, "101101"b, "rcprm_journalize_", code); 000645 aa 550000 2350 03 lda 184320,du 000646 aa 6 00437 7551 00 sta pr6|287 000647 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000650 aa 777302 00 0024 desc9a -318,20 000151 = 162143160162 000651 aa 6 00404 00 0024 desc9a pr6|260,20 000652 aa 6 00254 3521 00 epp2 pr6|172 temp_ptr 000653 aa 6 00416 2521 00 spri2 pr6|270 000654 aa 6 00437 3521 00 epp2 pr6|287 000655 aa 6 00420 2521 00 spri2 pr6|272 000656 aa 6 00404 3521 00 epp2 pr6|260 000657 aa 6 00422 2521 00 spri2 pr6|274 000660 aa 6 00342 3521 20 epp2 pr6|226,* code 000661 aa 6 00424 2521 00 spri2 pr6|276 000662 aa 777232 3520 04 epp2 -358,ic 000114 = 464000000000 000663 aa 6 00426 2521 00 spri2 pr6|278 000664 aa 777213 3520 04 epp2 -373,ic 000077 = 514000000006 000665 aa 6 00430 2521 00 spri2 pr6|280 000666 aa 777210 3520 04 epp2 -376,ic 000076 = 524000000021 000667 aa 6 00432 2521 00 spri2 pr6|282 000670 aa 777213 3520 04 epp2 -373,ic 000103 = 404000000043 000671 aa 6 00434 2521 00 spri2 pr6|284 000672 aa 6 00414 6211 00 eax1 pr6|268 000673 aa 020000 4310 07 fld 8192,dl 000674 aa 6 00044 3701 20 epp4 pr6|36,* 000675 la 4 00102 3521 20 epp2 pr4|66,* delete_$ptr 000676 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 340 if code ^= 0 then call rename_bad_journal; 000677 aa 6 00342 2361 20 ldq pr6|226,* code 000700 aa 000002 6000 04 tze 2,ic 000702 000701 aa 003730 6700 04 tsp4 2008,ic 004631 STATEMENT 1 ON LINE 342 temp_ptr = journalp; 000702 aa 6 00326 3735 20 epp7 pr6|214,* journalp 000703 aa 6 00254 6535 00 spri7 pr6|172 temp_ptr STATEMENT 1 ON LINE 343 end; 000704 aa 777716 7100 04 tra -50,ic 000622 STATEMENT 1 ON LINE 345 STOP_CHASING: if ^missing_journal /* if we have one left at this point */ then do; 000705 aa 400000 3150 03 cana 131072,du 000706 aa 000036 6000 04 tze 30,ic 000744 STATEMENT 1 ON LINE 348 call delete_$ptr (temp_ptr, "101101"b, "rcprm_journalize_", code); 000707 aa 550000 2350 03 lda 184320,du 000710 aa 6 00436 7551 00 sta pr6|286 000711 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000712 aa 777240 00 0024 desc9a -352,20 000151 = 162143160162 000713 aa 6 00404 00 0024 desc9a pr6|260,20 000714 aa 6 00254 3521 00 epp2 pr6|172 temp_ptr 000715 aa 6 00416 2521 00 spri2 pr6|270 000716 aa 6 00436 3521 00 epp2 pr6|286 000717 aa 6 00420 2521 00 spri2 pr6|272 000720 aa 6 00404 3521 00 epp2 pr6|260 000721 aa 6 00422 2521 00 spri2 pr6|274 000722 aa 6 00342 3521 20 epp2 pr6|226,* code 000723 aa 6 00424 2521 00 spri2 pr6|276 000724 aa 777170 3520 04 epp2 -392,ic 000114 = 464000000000 000725 aa 6 00426 2521 00 spri2 pr6|278 000726 aa 777151 3520 04 epp2 -407,ic 000077 = 514000000006 000727 aa 6 00430 2521 00 spri2 pr6|280 000730 aa 777146 3520 04 epp2 -410,ic 000076 = 524000000021 000731 aa 6 00432 2521 00 spri2 pr6|282 000732 aa 777151 3520 04 epp2 -407,ic 000103 = 404000000043 000733 aa 6 00434 2521 00 spri2 pr6|284 000734 aa 6 00414 6211 00 eax1 pr6|268 000735 aa 020000 4310 07 fld 8192,dl 000736 aa 6 00044 3701 20 epp4 pr6|36,* 000737 la 4 00102 3521 20 epp2 pr4|66,* delete_$ptr 000740 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 349 if code ^= 0 then call rename_bad_journal; 000741 aa 6 00342 2361 20 ldq pr6|226,* code 000742 aa 000002 6000 04 tze 2,ic 000744 000743 aa 003666 6700 04 tsp4 1974,ic 004631 STATEMENT 1 ON LINE 351 end; STATEMENT 1 ON LINE 353 journalp = null; 000744 aa 777160 2370 04 ldaq -400,ic 000124 = 077777000043 000001000000 000745 aa 6 00326 7571 00 staq pr6|214 journalp STATEMENT 1 ON LINE 354 call make_new_journal (code); 000746 aa 6 00342 3521 20 epp2 pr6|226,* code 000747 aa 6 00406 2521 00 spri2 pr6|262 000750 aa 6 00404 6211 00 eax1 pr6|260 000751 aa 004000 4310 07 fld 2048,dl 000752 aa 002444 3520 04 epp2 1316,ic 003416 = 000320627000 000753 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 355 if code ^= 0 then return; 000754 aa 6 00342 2361 20 ldq pr6|226,* code 000755 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 358 journal.previous_journal_last_transaction_time, journal.own_last_transaction_time = from_time; 000756 aa 6 00260 2371 00 ldaq pr6|176 from_time 000757 aa 6 00326 3735 20 epp7 pr6|214,* journalp 000760 aa 7 00002 7571 00 staq pr7|2 journal.previous_journal_last_transaction_time 000761 aa 7 00006 7571 00 staq pr7|6 journal.own_last_transaction_time STATEMENT 1 ON LINE 359 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 000762 aa 6 00436 4501 00 stz pr6|286 000763 aa 6 00437 4501 00 stz pr6|287 000764 aa 6 00326 3521 00 epp2 pr6|214 journalp 000765 aa 6 00416 2521 00 spri2 pr6|270 000766 aa 6 00436 3521 00 epp2 pr6|286 000767 aa 6 00420 2521 00 spri2 pr6|272 000770 aa 777010 3520 04 epp2 -504,ic 000000 = 100000000000 000771 aa 6 00422 2521 00 spri2 pr6|274 000772 aa 6 00437 3521 00 epp2 pr6|287 000773 aa 6 00424 2521 00 spri2 pr6|276 000774 aa 777120 3520 04 epp2 -432,ic 000114 = 464000000000 000775 aa 6 00426 2521 00 spri2 pr6|278 000776 aa 777077 3520 04 epp2 -449,ic 000075 = 404000000030 000777 aa 6 00430 2521 00 spri2 pr6|280 001000 aa 777074 3520 04 epp2 -452,ic 000074 = 516000000003 001001 aa 6 00432 2521 00 spri2 pr6|282 001002 aa 777101 3520 04 epp2 -447,ic 000103 = 404000000043 001003 aa 6 00434 2521 00 spri2 pr6|284 001004 aa 6 00414 6211 00 eax1 pr6|268 001005 aa 020000 4310 07 fld 8192,dl 001006 aa 6 00044 3701 20 epp4 pr6|36,* 001007 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 001010 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 360 return; 001011 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO reconstruct STATEMENT 1 ON LINE 362 reconstruct: entry (arg_system_dir, arg_enames, arg_rtdeps, code); 001012 at 000004000110 001013 tt 000140000134 001014 ta 000103000000 001015 ta 001012000000 001016 da 000614300000 001017 aa 000700 6270 00 eax7 448 001020 aa 7 00034 3521 20 epp2 pr7|28,* 001021 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 001022 aa 000010000000 001023 aa 000000000000 001024 aa 6 00042 3735 20 epp7 pr6|34,* 001025 aa 7 00002 2361 20 ldq pr7|2,* 001026 aa 000002 6040 04 tmi 2,ic 001030 001027 aa 777777 3760 07 anq 262143,dl 001030 aa 0 00250 3761 00 anq pr0|168 = 000077777777 001031 aa 6 00440 7561 00 stq pr6|288 001032 aa 6 00032 3715 20 epp5 pr6|26,* 001033 aa 5 00002 3535 20 epp3 pr5|2,* 001034 aa 6 00340 2535 00 spri3 pr6|224 001035 aa 7 00000 3515 20 epp1 pr7|0,* 001036 aa 6 00336 2515 00 spri1 pr6|222 001037 aa 5 00010 3535 20 epp3 pr5|8,* 001040 aa 6 00342 2535 00 spri3 pr6|226 001041 aa 777257 7000 04 tsx0 -337,ic 000320 STATEMENT 1 ON LINE 414 call cu_$level_get (prev_level); 001042 aa 6 00270 3521 00 epp2 pr6|184 prev_level 001043 aa 6 00370 2521 00 spri2 pr6|248 001044 aa 6 00366 6211 00 eax1 pr6|246 001045 aa 004000 4310 07 fld 2048,dl 001046 aa 6 00044 3701 20 epp4 pr6|36,* 001047 la 4 00110 3521 20 epp2 pr4|72,* cu_$level_get 001050 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 415 rcp_priv_was_on = 1; 001051 aa 000001 2360 07 ldq 1,dl 001052 aa 6 00271 7561 00 stq pr6|185 rcp_priv_was_on STATEMENT 1 ON LINE 416 tsw_attach_ptr, journalp, resource_desc_ptr, switch_ptr = null; 001053 aa 777051 3734 24 epp7 -471,ic* 001054 aa 6 00302 6535 00 spri7 pr6|194 tsw_attach_ptr 001055 aa 6 00326 6535 00 spri7 pr6|214 journalp 001056 aa 6 00332 6535 00 spri7 pr6|218 resource_desc_ptr 001057 aa 6 00274 6535 00 spri7 pr6|188 switch_ptr STATEMENT 1 ON LINE 418 on cleanup call clean_up (""b, 0); 001060 aa 000007 7260 07 lxl6 7,dl 001061 aa 777045 3520 04 epp2 -475,ic 000126 = 143154145141 001062 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 001063 aa 000004 7100 04 tra 4,ic 001067 001064 aa 000246000000 001065 aa 000024 7100 04 tra 20,ic 001111 BEGIN CONDITION cleanup.3 ENTRY TO cleanup.3 STATEMENT 1 ON LINE 418 on cleanup call clean_up (""b, 0); 001066 da 000622200000 001067 aa 000120 6270 00 eax7 80 001070 aa 7 00034 3521 20 epp2 pr7|28,* 001071 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 001072 aa 000000000000 001073 aa 000000000000 001074 aa 000000 2350 07 lda 0,dl 001075 aa 6 00100 7551 00 sta pr6|64 001076 aa 6 00101 4501 00 stz pr6|65 001077 aa 6 00100 3521 00 epp2 pr6|64 001100 aa 6 00104 2521 00 spri2 pr6|68 001101 aa 6 00101 3521 00 epp2 pr6|65 001102 aa 6 00106 2521 00 spri2 pr6|70 001103 aa 000001 7270 07 lxl7 1,dl 001104 aa 6 00102 6211 00 eax1 pr6|66 001105 aa 010000 4310 07 fld 4096,dl 001106 aa 003314 3520 04 epp2 1740,ic 004422 = 000160627000 001107 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other 001110 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION cleanup.3 STATEMENT 1 ON LINE 420 call cu_$level_set (get_ring_ ()); 001111 aa 6 00437 3521 00 epp2 pr6|287 001112 aa 6 00370 2521 00 spri2 pr6|248 001113 aa 6 00366 6211 00 eax1 pr6|246 001114 aa 004000 4310 07 fld 2048,dl 001115 aa 6 00044 3701 20 epp4 pr6|36,* 001116 la 4 00040 3521 20 epp2 pr4|32,* get_ring_ 001117 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 001120 aa 6 00437 3521 00 epp2 pr6|287 001121 aa 6 00370 2521 00 spri2 pr6|248 001122 aa 6 00366 6211 00 eax1 pr6|246 001123 aa 004000 4310 07 fld 2048,dl 001124 aa 6 00044 3701 20 epp4 pr6|36,* 001125 la 4 00112 3521 20 epp2 pr4|74,* cu_$level_set 001126 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 421 call system_privilege_$rcp_priv_on (rcp_priv_was_on); 001127 aa 6 00271 3521 00 epp2 pr6|185 rcp_priv_was_on 001130 aa 6 00370 2521 00 spri2 pr6|248 001131 aa 6 00366 6211 00 eax1 pr6|246 001132 aa 004000 4310 07 fld 2048,dl 001133 aa 6 00044 3701 20 epp4 pr6|36,* 001134 la 4 00122 3521 20 epp2 pr4|82,* system_privilege_$rcp_priv_on 001135 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 423 n_resources = hbound (arg_enames, 1); 001136 aa 6 00042 3735 20 epp7 pr6|34,* 001137 aa 7 00002 3715 20 epp5 pr7|2,* 001140 aa 5 00002 2361 00 ldq pr5|2 001141 aa 6 00266 7561 00 stq pr6|182 n_resources STATEMENT 1 ON LINE 425 begin; 001142 aa 000520 6270 00 eax7 336 001143 aa 0 00614 2721 00 tsp2 pr0|396 enter_begin_block 001144 aa 000000000000 BEGIN BLOCK 1 PROLOGUE SEQUENCE STATEMENT 1 ON LINE 427 001145 aa 6 00040 3735 20 epp7 pr6|32,* 001146 aa 7 00266 2361 00 ldq pr7|182 n_resources 001147 aa 6 00102 7561 00 stq pr6|66 001150 aa 000014 4020 07 mpy 12,dl 001151 aa 0 00661 7001 00 tsx0 pr0|433 alloc_auto_adj 001152 aa 6 00100 2521 00 spri2 pr6|64 STATEMENT 1 ON LINE 521 001153 aa 776734 2360 04 ldq -548,ic 000107 = 526000000040 001154 aa 6 00105 7561 00 stq pr6|69 STATEMENT 1 ON LINE 653 001155 aa 464000 2360 03 ldq 157696,du 001156 aa 6 00113 7561 00 stq pr6|75 MAIN SEQUENCE STATEMENT 1 ON LINE 432 operation = access_operations_$rcp_reconstruct_registry; 001157 aa 6 00044 3701 20 epp4 pr6|36,* 001160 la 4 00106 2351 20 lda pr4|70,* access_operations_$rcp_reconstruct_registry 001161 aa 7 00267 7551 00 sta pr7|183 operation STATEMENT 1 ON LINE 433 ops_ptr = addr (addr (operation) -> encoded_access_op.detailed_operation); 001162 aa 000022 7270 07 lxl7 18,dl 001163 aa 7 00267 3521 00 epp2 pr7|183 encoded_access_op.detailed_operation 001164 aa 2 00000 5035 17 abd pr2|0,7 001165 aa 7 00324 2521 00 spri2 pr7|212 ops_ptr STATEMENT 1 ON LINE 434 detailed_operation.priv_gate_call = "1"b; 001166 aa 403 100 060 400 csl (),(pr),fill(1),bool(move) 001167 aa 000000 00 0000 descb 0,0 001170 aa 2 00000 23 0001 descb pr2|0(12),1 detailed_operation.priv_gate_call STATEMENT 1 ON LINE 435 who_am_i = "rcprm_journalize_$reconstruct"; 001171 aa 040 100 100 404 mlr (ic),(pr),fill(040) 001172 aa 776773 00 0035 desc9a -517,29 000164 = 162143160162 001173 aa 7 00304 00 0100 desc9a pr7|196,64 who_am_i STATEMENT 1 ON LINE 436 do i = 1 to n_resources; 001174 aa 7 00266 2361 00 ldq pr7|182 n_resources 001175 aa 6 00103 7561 00 stq pr6|67 001176 aa 000001 2360 07 ldq 1,dl 001177 aa 7 00263 7561 00 stq pr7|179 i 001200 aa 6 00040 3735 20 epp7 pr6|32,* 001201 aa 7 00263 2361 00 ldq pr7|179 i 001202 aa 6 00103 1161 00 cmpq pr6|67 001203 aa 000042 6054 04 tpnz 34,ic 001245 STATEMENT 1 ON LINE 437 registry_data.resource_name (i) = arg_enames (i); 001204 aa 000014 4020 07 mpy 12,dl 001205 aa 7 00042 3715 20 epp5 pr7|34,* 001206 aa 5 00002 3535 20 epp3 pr5|2,* 001207 aa 000000 6270 06 eax7 0,ql 001210 aa 3 00003 2361 00 ldq pr3|3 001211 aa 3 00001 4021 00 mpy pr3|1 001212 aa 6 00141 7561 00 stq pr6|97 001213 aa 3 00003 2361 00 ldq pr3|3 001214 aa 7 00263 4021 00 mpy pr7|179 i 001215 aa 6 00141 1761 00 sbq pr6|97 001216 aa 000011 5060 07 div 9,dl 001217 aa 6 00100 3515 20 epp1 pr6|64,* 001220 aa 1 77764 3515 17 epp1 pr1|-12,7 registry_data.resource_name 001221 aa 7 00032 3535 20 epp3 pr7|26,* 001222 aa 3 00004 3715 20 epp5 pr3|4,* 001223 aa 7 00440 2351 00 lda pr7|288 001224 aa 040 100 100 546 mlr (pr,rl,ql),(pr),fill(040) 001225 aa 5 00000 00 0005 desc9a pr5|0,al arg_enames 001226 aa 1 00000 00 0040 desc9a pr1|0,32 registry_data.resource_name STATEMENT 1 ON LINE 438 registry_data.rtdep (i) = arg_rtdeps (i); 001227 aa 7 00042 3515 20 epp1 pr7|34,* 001230 aa 1 00004 3715 20 epp5 pr1|4,* 001231 aa 5 00003 2361 00 ldq pr5|3 001232 aa 5 00001 4021 00 mpy pr5|1 001233 aa 6 00140 7561 00 stq pr6|96 001234 aa 5 00003 2361 00 ldq pr5|3 001235 aa 7 00263 4021 00 mpy pr7|179 i 001236 aa 6 00140 1761 00 sbq pr6|96 001237 aa 3 00006 3715 66 epp5 pr3|6,*ql arg_rtdeps 001240 aa 5 00000 3715 20 epp5 pr5|0,* arg_rtdeps 001241 aa 6 00100 3515 20 epp1 pr6|64,* 001242 aa 1 77774 6515 17 spri5 pr1|-4,7 registry_data.rtdep STATEMENT 1 ON LINE 439 end; 001243 aa 7 00263 0541 00 aos pr7|179 i 001244 aa 777734 7100 04 tra -36,ic 001200 STATEMENT 1 ON LINE 441 system_dir = arg_system_dir; 001245 aa 7 00336 2361 20 ldq pr7|222,* 001246 aa 000002 6040 04 tmi 2,ic 001250 001247 aa 777777 3760 07 anq 262143,dl 001250 aa 0 00250 3761 00 anq pr0|168 = 000077777777 001251 aa 7 00340 3715 20 epp5 pr7|224,* 001252 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001253 aa 5 00000 00 0006 desc9a pr5|0,ql arg_system_dir 001254 aa 7 00163 00 0250 desc9a pr7|115,168 system_dir STATEMENT 1 ON LINE 442 code = 0; 001255 aa 7 00342 4501 20 stz pr7|226,* code STATEMENT 1 ON LINE 447 call find_journal (""b, code); 001256 aa 000000 2350 07 lda 0,dl 001257 aa 6 00140 7551 00 sta pr6|96 001260 aa 6 00140 3521 00 epp2 pr6|96 001261 aa 6 00144 2521 00 spri2 pr6|100 001262 aa 7 00342 3521 20 epp2 pr7|226,* code 001263 aa 6 00146 2521 00 spri2 pr6|102 001264 aa 000001 7270 07 lxl7 1,dl 001265 aa 6 00142 6211 00 eax1 pr6|98 001266 aa 010000 4310 07 fld 4096,dl 001267 aa 001651 3520 04 epp2 937,ic 003140 = 000160627000 001270 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 448 if code ^= 0 then call audit (""); 001271 aa 6 00040 3735 20 epp7 pr6|32,* 001272 aa 7 00342 2361 20 ldq pr7|226,* code 001273 aa 000004 6000 04 tze 4,ic 001277 001274 aa 003630 3520 04 epp2 1944,ic 005124 = 000002000000 001275 aa 2 00000 2351 00 lda pr2|0 001276 aa 003542 6700 04 tsp4 1890,ic 005040 STATEMENT 1 ON LINE 451 done = "0"b; 001277 aa 6 00040 3735 20 epp7 pr6|32,* 001300 aa 7 00257 4501 00 stz pr7|175 done STATEMENT 1 ON LINE 452 tjournalp = null (); 001301 aa 776623 2370 04 ldaq -621,ic 000124 = 077777000043 000001000000 001302 aa 7 00300 7571 00 staq pr7|192 tjournalp STATEMENT 1 ON LINE 454 do while (^done); 001303 aa 000000 0110 03 nop 0,du 001304 aa 6 00040 3735 20 epp7 pr6|32,* 001305 aa 7 00257 2351 00 lda pr7|175 done 001306 aa 000067 6010 04 tnz 55,ic 001375 STATEMENT 1 ON LINE 455 tjournalp = journalp; 001307 aa 7 00326 3715 20 epp5 pr7|214,* journalp 001310 aa 7 00300 6515 00 spri5 pr7|192 tjournalp STATEMENT 1 ON LINE 458 call find_previous_journal (code); 001311 aa 7 00342 3521 20 epp2 pr7|226,* code 001312 aa 6 00144 2521 00 spri2 pr6|100 001313 aa 000001 7270 07 lxl7 1,dl 001314 aa 6 00142 6211 00 eax1 pr6|98 001315 aa 004000 4310 07 fld 2048,dl 001316 aa 001751 3520 04 epp2 1001,ic 003267 = 000260627000 001317 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 459 if code = 0 then do; 001320 aa 6 00040 3735 20 epp7 pr6|32,* 001321 aa 7 00342 2361 20 ldq pr7|226,* code 001322 aa 000046 6010 04 tnz 38,ic 001370 STATEMENT 1 ON LINE 460 call terminate_file_ (tjournalp, (0), TERM_FILE_TERM, code); 001323 aa 6 00140 4501 00 stz pr6|96 001324 aa 7 00300 3521 00 epp2 pr7|192 tjournalp 001325 aa 6 00154 2521 00 spri2 pr6|108 001326 aa 6 00140 3521 00 epp2 pr6|96 001327 aa 6 00156 2521 00 spri2 pr6|110 001330 aa 776450 3520 04 epp2 -728,ic 000000 = 100000000000 001331 aa 6 00160 2521 00 spri2 pr6|112 001332 aa 7 00342 3521 20 epp2 pr7|226,* code 001333 aa 6 00162 2521 00 spri2 pr6|114 001334 aa 776560 3520 04 epp2 -656,ic 000114 = 464000000000 001335 aa 6 00164 2521 00 spri2 pr6|116 001336 aa 776537 3520 04 epp2 -673,ic 000075 = 404000000030 001337 aa 6 00166 2521 00 spri2 pr6|118 001340 aa 776534 3520 04 epp2 -676,ic 000074 = 516000000003 001341 aa 6 00170 2521 00 spri2 pr6|120 001342 aa 776541 3520 04 epp2 -671,ic 000103 = 404000000043 001343 aa 6 00172 2521 00 spri2 pr6|122 001344 aa 6 00152 6211 00 eax1 pr6|106 001345 aa 020000 4310 07 fld 8192,dl 001346 aa 6 00044 3701 20 epp4 pr6|36,* 001347 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 001350 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 462 if code ^= 0 then call audit (""); 001351 aa 6 00040 3735 20 epp7 pr6|32,* 001352 aa 7 00342 2361 20 ldq pr7|226,* code 001353 aa 000004 6000 04 tze 4,ic 001357 001354 aa 003550 3520 04 epp2 1896,ic 005124 = 000002000000 001355 aa 2 00000 2351 00 lda pr2|0 001356 aa 003462 6700 04 tsp4 1842,ic 005040 STATEMENT 1 ON LINE 464 if journal.previous_journal_name = "" then done = "1"b; 001357 aa 6 00040 3735 20 epp7 pr6|32,* 001360 aa 7 00326 3715 20 epp5 pr7|214,* journalp 001361 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 001362 aa 5 00010 00 0040 desc9a pr5|8,32 journal.previous_journal_name 001363 aa 003555 00 0000 desc9a 1901,0 005136 = 000010000000 001364 aa 777720 6010 04 tnz -48,ic 001304 001365 aa 400000 2350 03 lda 131072,du 001366 aa 7 00257 7551 00 sta pr7|175 done STATEMENT 1 ON LINE 466 end; 001367 aa 777715 7100 04 tra -51,ic 001304 STATEMENT 1 ON LINE 467 else do; STATEMENT 1 ON LINE 473 journalp = tjournalp; 001370 aa 7 00300 3715 20 epp5 pr7|192,* tjournalp 001371 aa 7 00326 6515 00 spri5 pr7|214 journalp STATEMENT 1 ON LINE 474 done = "1"b; 001372 aa 400000 2350 03 lda 131072,du 001373 aa 7 00257 7551 00 sta pr7|175 done STATEMENT 1 ON LINE 475 end; STATEMENT 1 ON LINE 477 end; 001374 aa 777710 7100 04 tra -56,ic 001304 STATEMENT 1 ON LINE 497 from_time = journal.previous_journal_last_transaction_time; 001375 aa 7 00326 3715 20 epp5 pr7|214,* journalp 001376 aa 5 00002 2371 00 ldaq pr5|2 journal.previous_journal_last_transaction_time 001377 aa 7 00260 7571 00 staq pr7|176 from_time STATEMENT 1 ON LINE 502 call rcprm_registry_util_$grab_transaction_control_file (tsw_attach_ptr, system_dir, code); 001400 aa 7 00302 3521 00 epp2 pr7|194 tsw_attach_ptr 001401 aa 6 00154 2521 00 spri2 pr6|108 001402 aa 7 00163 3521 00 epp2 pr7|115 system_dir 001403 aa 6 00156 2521 00 spri2 pr6|110 001404 aa 7 00342 3521 20 epp2 pr7|226,* code 001405 aa 6 00160 2521 00 spri2 pr6|112 001406 aa 776506 3520 04 epp2 -698,ic 000114 = 464000000000 001407 aa 6 00162 2521 00 spri2 pr6|114 001410 aa 776475 3520 04 epp2 -707,ic 000105 = 526000000250 001411 aa 6 00164 2521 00 spri2 pr6|116 001412 aa 776471 3520 04 epp2 -711,ic 000103 = 404000000043 001413 aa 6 00166 2521 00 spri2 pr6|118 001414 aa 6 00152 6211 00 eax1 pr6|106 001415 aa 014000 4310 07 fld 6144,dl 001416 aa 6 00044 3701 20 epp4 pr6|36,* 001417 la 4 00062 3521 20 epp2 pr4|50,* rcprm_registry_util_$grab_transaction_control_file 001420 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 503 if code ^= 0 then call audit (""); 001421 aa 6 00040 3735 20 epp7 pr6|32,* 001422 aa 7 00342 2361 20 ldq pr7|226,* code 001423 aa 000004 6000 04 tze 4,ic 001427 001424 aa 003500 3520 04 epp2 1856,ic 005124 = 000002000000 001425 aa 2 00000 2351 00 lda pr2|0 001426 aa 003412 6700 04 tsp4 1802,ic 005040 STATEMENT 1 ON LINE 506 call get_temp_segment_ ("rcprm_journalize_", resource_desc_ptr, code); 001427 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001430 aa 776522 00 0024 desc9a -686,20 000151 = 162143160162 001431 aa 6 00142 00 0024 desc9a pr6|98,20 001432 aa 6 00142 3521 00 epp2 pr6|98 001433 aa 6 00154 2521 00 spri2 pr6|108 001434 aa 6 00040 3735 20 epp7 pr6|32,* 001435 aa 7 00332 3521 00 epp2 pr7|218 resource_desc_ptr 001436 aa 6 00156 2521 00 spri2 pr6|110 001437 aa 7 00342 3521 20 epp2 pr7|226,* code 001440 aa 6 00160 2521 00 spri2 pr6|112 001441 aa 776435 3520 04 epp2 -739,ic 000076 = 524000000021 001442 aa 6 00162 2521 00 spri2 pr6|114 001443 aa 776451 3520 04 epp2 -727,ic 000114 = 464000000000 001444 aa 6 00164 2521 00 spri2 pr6|116 001445 aa 776436 3520 04 epp2 -738,ic 000103 = 404000000043 001446 aa 6 00166 2521 00 spri2 pr6|118 001447 aa 6 00152 6211 00 eax1 pr6|106 001450 aa 014000 4310 07 fld 6144,dl 001451 aa 6 00044 3701 20 epp4 pr6|36,* 001452 la 4 00114 3521 20 epp2 pr4|76,* get_temp_segment_ 001453 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 507 if code ^= 0 then call audit (""); 001454 aa 6 00040 3735 20 epp7 pr6|32,* 001455 aa 7 00342 2361 20 ldq pr7|226,* code 001456 aa 000004 6000 04 tze 4,ic 001462 001457 aa 003445 3520 04 epp2 1829,ic 005124 = 000002000000 001460 aa 2 00000 2351 00 lda pr2|0 001461 aa 003357 6700 04 tsp4 1775,ic 005040 STATEMENT 1 ON LINE 510 header_ptr = resource_desc_ptr; 001462 aa 6 00040 3735 20 epp7 pr6|32,* 001463 aa 7 00332 3735 20 epp7 pr7|218,* resource_desc_ptr 001464 aa 6 00040 3715 20 epp5 pr6|32,* 001465 aa 5 00334 6535 00 spri7 pr5|220 header_ptr STATEMENT 1 ON LINE 516 do i = 1 to n_resources; 001466 aa 5 00266 2361 00 ldq pr5|182 n_resources 001467 aa 6 00104 7561 00 stq pr6|68 001470 aa 000001 2360 07 ldq 1,dl 001471 aa 5 00263 7561 00 stq pr5|179 i 001472 aa 6 00040 3735 20 epp7 pr6|32,* 001473 aa 7 00263 2361 00 ldq pr7|179 i 001474 aa 6 00104 1161 00 cmpq pr6|68 001475 aa 000327 6054 04 tpnz 215,ic 002024 STATEMENT 1 ON LINE 521 call suffixed_name_$new_suffix ((registry_data.resource_name (i)), "rcpr", "", registry_data.resource_name (i), code); 001476 aa 000014 4020 07 mpy 12,dl 001477 aa 6 00100 3715 20 epp5 pr6|64,* 001500 aa 5 77764 3715 06 epp5 pr5|-12,ql registry_data.resource_name 001501 aa 000 100 100 500 mlr (pr),(pr),fill(000) 001502 aa 5 00000 00 0040 desc9a pr5|0,32 registry_data.resource_name 001503 aa 6 00142 00 0040 desc9a pr6|98,32 001504 aa 776424 2350 04 lda -748,ic 000130 = 162143160162 001505 aa 6 00140 7551 00 sta pr6|96 001506 aa 6 00142 3521 00 epp2 pr6|98 001507 aa 6 00176 2521 00 spri2 pr6|126 001510 aa 6 00140 3521 00 epp2 pr6|96 001511 aa 6 00200 2521 00 spri2 pr6|128 001512 aa 6 00141 3521 00 epp2 pr6|97 001513 aa 6 00202 2521 00 spri2 pr6|130 001514 aa 6 00100 3535 20 epp3 pr6|64,* 001515 aa 3 77764 3521 06 epp2 pr3|-12,ql registry_data.resource_name 001516 aa 6 00204 2521 00 spri2 pr6|132 001517 aa 7 00342 3521 20 epp2 pr7|226,* code 001520 aa 6 00206 2521 00 spri2 pr6|134 001521 aa 776357 3520 04 epp2 -785,ic 000100 = 524000000040 001522 aa 6 00210 2521 00 spri2 pr6|136 001523 aa 776336 3520 04 epp2 -802,ic 000061 = 524000000004 001524 aa 6 00212 2521 00 spri2 pr6|138 001525 aa 776335 3520 04 epp2 -803,ic 000062 = 524000000000 001526 aa 6 00214 2521 00 spri2 pr6|140 001527 aa 6 00105 3521 00 epp2 pr6|69 001530 aa 6 00216 2521 00 spri2 pr6|142 001531 aa 776352 3520 04 epp2 -790,ic 000103 = 404000000043 001532 aa 6 00220 2521 00 spri2 pr6|144 001533 aa 6 00174 6211 00 eax1 pr6|124 001534 aa 024000 4310 07 fld 10240,dl 001535 aa 6 00044 3701 20 epp4 pr6|36,* 001536 la 4 00120 3521 20 epp2 pr4|80,* suffixed_name_$new_suffix 001537 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 523 if code ^= 0 then call audit (registry_data.resource_name (i)); 001540 aa 6 00040 3735 20 epp7 pr6|32,* 001541 aa 7 00342 2361 20 ldq pr7|226,* code 001542 aa 000014 6000 04 tze 12,ic 001556 001543 aa 7 00263 2361 00 ldq pr7|179 i 001544 aa 000014 4020 07 mpy 12,dl 001545 aa 6 00100 3715 20 epp5 pr6|64,* 001546 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001547 aa 6 00144 2521 00 spri2 pr6|100 001550 aa 6 00105 3521 00 epp2 pr6|69 001551 aa 6 00146 2521 00 spri2 pr6|102 001552 aa 6 00142 3521 00 epp2 pr6|98 001553 aa 004000 4310 07 fld 2048,dl 001554 aa 2 00000 7571 00 staq pr2|0 001555 aa 003263 6700 04 tsp4 1715,ic 005040 STATEMENT 1 ON LINE 526 call rcprm_registry_util_$grab_registry (switch_ptr, system_dir, registry_data.resource_name (i), code); 001556 aa 6 00040 3735 20 epp7 pr6|32,* 001557 aa 7 00263 2361 00 ldq pr7|179 i 001560 aa 000014 4020 07 mpy 12,dl 001561 aa 7 00274 3521 00 epp2 pr7|188 switch_ptr 001562 aa 6 00154 2521 00 spri2 pr6|108 001563 aa 7 00163 3521 00 epp2 pr7|115 system_dir 001564 aa 6 00156 2521 00 spri2 pr6|110 001565 aa 6 00100 3715 20 epp5 pr6|64,* 001566 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001567 aa 6 00160 2521 00 spri2 pr6|112 001570 aa 7 00342 3521 20 epp2 pr7|226,* code 001571 aa 6 00162 2521 00 spri2 pr6|114 001572 aa 776322 3520 04 epp2 -814,ic 000114 = 464000000000 001573 aa 6 00164 2521 00 spri2 pr6|116 001574 aa 776311 3520 04 epp2 -823,ic 000105 = 526000000250 001575 aa 6 00166 2521 00 spri2 pr6|118 001576 aa 6 00105 3521 00 epp2 pr6|69 001577 aa 6 00170 2521 00 spri2 pr6|120 001600 aa 776303 3520 04 epp2 -829,ic 000103 = 404000000043 001601 aa 6 00172 2521 00 spri2 pr6|122 001602 aa 6 00152 6211 00 eax1 pr6|106 001603 aa 020000 4310 07 fld 8192,dl 001604 aa 6 00044 3701 20 epp4 pr6|36,* 001605 la 4 00060 3521 20 epp2 pr4|48,* rcprm_registry_util_$grab_registry 001606 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 528 if code ^= 0 then call audit (registry_data.resource_name (i)); 001607 aa 6 00040 3735 20 epp7 pr6|32,* 001610 aa 7 00342 2361 20 ldq pr7|226,* code 001611 aa 000014 6000 04 tze 12,ic 001625 001612 aa 7 00263 2361 00 ldq pr7|179 i 001613 aa 000014 4020 07 mpy 12,dl 001614 aa 6 00100 3715 20 epp5 pr6|64,* 001615 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001616 aa 6 00144 2521 00 spri2 pr6|100 001617 aa 6 00105 3521 00 epp2 pr6|69 001620 aa 6 00146 2521 00 spri2 pr6|102 001621 aa 6 00142 3521 00 epp2 pr6|98 001622 aa 004000 4310 07 fld 2048,dl 001623 aa 2 00000 7571 00 staq pr2|0 001624 aa 003214 6700 04 tsp4 1676,ic 005040 STATEMENT 1 ON LINE 531 call iox_$seek_key (switch_ptr, (REGISTRY_HEADER_KEY), reclen, code); 001625 aa 000007 2360 07 ldq 7,dl 001626 aa 6 00222 7561 00 stq pr6|146 001627 aa 040 140 100 444 mlr (rl,ic),(pr,rl),fill(040) 001630 aa 776212 00 0006 desc9a -886,ql 000041 = 041150145141 001631 aa 6 00223 00 0006 desc9a pr6|147,ql 001632 aa 6 00040 3735 20 epp7 pr6|32,* 001633 aa 7 00274 3521 00 epp2 pr7|188 switch_ptr 001634 aa 6 00154 2521 00 spri2 pr6|108 001635 aa 6 00223 3521 00 epp2 pr6|147 001636 aa 6 00156 2521 00 spri2 pr6|110 001637 aa 7 00272 3521 00 epp2 pr7|186 reclen 001640 aa 6 00160 2521 00 spri2 pr6|112 001641 aa 7 00342 3521 20 epp2 pr7|226,* code 001642 aa 6 00162 2521 00 spri2 pr6|114 001643 aa 6 00152 6211 00 eax1 pr6|106 001644 aa 020000 4310 07 fld 8192,dl 001645 aa 6 00044 3701 20 epp4 pr6|36,* 001646 la 4 00136 3521 20 epp2 pr4|94,* iox_$seek_key 001647 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 532 if code = error_table_$no_record then code = error_table_$not_seg_type; 001650 aa 6 00040 3735 20 epp7 pr6|32,* 001651 aa 7 00342 2361 20 ldq pr7|226,* code 001652 aa 6 00044 3701 20 epp4 pr6|36,* 001653 la 4 00014 1161 20 cmpq pr4|12,* error_table_$no_record 001654 aa 000003 6010 04 tnz 3,ic 001657 001655 la 4 00020 2361 20 ldq pr4|16,* error_table_$not_seg_type 001656 aa 7 00342 7561 20 stq pr7|226,* code STATEMENT 1 ON LINE 534 if code ^= 0 then call audit (registry_data.resource_name (i)); 001657 aa 7 00342 2361 20 ldq pr7|226,* code 001660 aa 000014 6000 04 tze 12,ic 001674 001661 aa 7 00263 2361 00 ldq pr7|179 i 001662 aa 000014 4020 07 mpy 12,dl 001663 aa 6 00100 3715 20 epp5 pr6|64,* 001664 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001665 aa 6 00144 2521 00 spri2 pr6|100 001666 aa 6 00105 3521 00 epp2 pr6|69 001667 aa 6 00146 2521 00 spri2 pr6|102 001670 aa 6 00142 3521 00 epp2 pr6|98 001671 aa 004000 4310 07 fld 2048,dl 001672 aa 2 00000 7571 00 staq pr2|0 001673 aa 003145 6700 04 tsp4 1637,ic 005040 STATEMENT 1 ON LINE 537 call iox_$read_record (switch_ptr, header_ptr, reclen, 0, code); 001674 aa 6 00141 4501 00 stz pr6|97 001675 aa 6 00040 3735 20 epp7 pr6|32,* 001676 aa 7 00274 3521 00 epp2 pr7|188 switch_ptr 001677 aa 6 00154 2521 00 spri2 pr6|108 001700 aa 7 00334 3521 00 epp2 pr7|220 header_ptr 001701 aa 6 00156 2521 00 spri2 pr6|110 001702 aa 7 00272 3521 00 epp2 pr7|186 reclen 001703 aa 6 00160 2521 00 spri2 pr6|112 001704 aa 6 00141 3521 00 epp2 pr6|97 001705 aa 6 00162 2521 00 spri2 pr6|114 001706 aa 7 00342 3521 20 epp2 pr7|226,* code 001707 aa 6 00164 2521 00 spri2 pr6|116 001710 aa 6 00152 6211 00 eax1 pr6|106 001711 aa 024000 4310 07 fld 10240,dl 001712 aa 6 00044 3701 20 epp4 pr6|36,* 001713 la 4 00134 3521 20 epp2 pr4|92,* iox_$read_record 001714 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 538 if code ^= 0 then call audit (registry_data.resource_name (i)); 001715 aa 6 00040 3735 20 epp7 pr6|32,* 001716 aa 7 00342 2361 20 ldq pr7|226,* code 001717 aa 000014 6000 04 tze 12,ic 001733 001720 aa 7 00263 2361 00 ldq pr7|179 i 001721 aa 000014 4020 07 mpy 12,dl 001722 aa 6 00100 3715 20 epp5 pr6|64,* 001723 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001724 aa 6 00144 2521 00 spri2 pr6|100 001725 aa 6 00105 3521 00 epp2 pr6|69 001726 aa 6 00146 2521 00 spri2 pr6|102 001727 aa 6 00142 3521 00 epp2 pr6|98 001730 aa 004000 4310 07 fld 2048,dl 001731 aa 2 00000 7571 00 staq pr2|0 001732 aa 003106 6700 04 tsp4 1606,ic 005040 STATEMENT 1 ON LINE 541 registry_data.dtcm (i) = registry_header.last_transaction_time; 001733 aa 6 00040 3735 20 epp7 pr6|32,* 001734 aa 7 00263 2361 00 ldq pr7|179 i 001735 aa 000014 4020 07 mpy 12,dl 001736 aa 000000 6270 06 eax7 0,ql 001737 aa 7 00334 2361 20 ldq pr7|220,* registry_header.rtde_size 001740 aa 000001 0760 07 adq 1,dl 001741 aa 000001 0760 07 adq 1,dl 001742 aa 777776 3760 07 anq 262142,dl 001743 aa 7 00334 2371 66 ldaq pr7|220,*ql registry_header.last_transaction_time 001744 aa 6 00100 3715 20 epp5 pr6|64,* 001745 aa 5 77776 7571 17 staq pr5|-2,7 registry_data.dtcm STATEMENT 1 ON LINE 543 call rcprm_registry_util_$release_registry (switch_ptr, code); 001746 aa 7 00274 3521 00 epp2 pr7|188 switch_ptr 001747 aa 6 00144 2521 00 spri2 pr6|100 001750 aa 7 00342 3521 20 epp2 pr7|226,* code 001751 aa 6 00146 2521 00 spri2 pr6|102 001752 aa 6 00142 6211 00 eax1 pr6|98 001753 aa 010000 4310 07 fld 4096,dl 001754 aa 6 00044 3701 20 epp4 pr6|36,* 001755 la 4 00064 3521 20 epp2 pr4|52,* rcprm_registry_util_$release_registry 001756 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 544 if code ^= 0 then call audit (registry_data.resource_name (i)); 001757 aa 6 00040 3735 20 epp7 pr6|32,* 001760 aa 7 00342 2361 20 ldq pr7|226,* code 001761 aa 000014 6000 04 tze 12,ic 001775 001762 aa 7 00263 2361 00 ldq pr7|179 i 001763 aa 000014 4020 07 mpy 12,dl 001764 aa 6 00100 3715 20 epp5 pr6|64,* 001765 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 001766 aa 6 00144 2521 00 spri2 pr6|100 001767 aa 6 00105 3521 00 epp2 pr6|69 001770 aa 6 00146 2521 00 spri2 pr6|102 001771 aa 6 00142 3521 00 epp2 pr6|98 001772 aa 004000 4310 07 fld 2048,dl 001773 aa 2 00000 7571 00 staq pr2|0 001774 aa 003044 6700 04 tsp4 1572,ic 005040 STATEMENT 1 ON LINE 551 if registry_data.dtcm (i) < from_time then do; 001775 aa 6 00040 3735 20 epp7 pr6|32,* 001776 aa 7 00263 2361 00 ldq pr7|179 i 001777 aa 000014 4020 07 mpy 12,dl 002000 aa 6 00100 3715 20 epp5 pr6|64,* 002001 aa 6 00141 7561 00 stq pr6|97 002002 aa 5 77776 2371 06 ldaq pr5|-2,ql registry_data.dtcm 002003 aa 7 00260 1171 00 cmpaq pr7|176 from_time 002004 aa 000015 6050 04 tpl 13,ic 002021 STATEMENT 1 ON LINE 552 code = error_table_$bad_date; 002005 aa 6 00044 3701 20 epp4 pr6|36,* 002006 la 4 00104 2361 20 ldq pr4|68,* error_table_$bad_date 002007 aa 7 00342 7561 20 stq pr7|226,* code STATEMENT 1 ON LINE 553 call audit (registry_data.resource_name (i)); 002010 aa 6 00141 7271 00 lxl7 pr6|97 002011 aa 5 77764 3521 17 epp2 pr5|-12,7 registry_data.resource_name 002012 aa 6 00144 2521 00 spri2 pr6|100 002013 aa 6 00105 3521 00 epp2 pr6|69 002014 aa 6 00146 2521 00 spri2 pr6|102 002015 aa 6 00142 3521 00 epp2 pr6|98 002016 aa 004000 4310 07 fld 2048,dl 002017 aa 2 00000 7571 00 staq pr2|0 002020 aa 003020 6700 04 tsp4 1552,ic 005040 STATEMENT 1 ON LINE 554 end; STATEMENT 1 ON LINE 555 end; 002021 aa 6 00040 3735 20 epp7 pr6|32,* 002022 aa 7 00263 0541 00 aos pr7|179 i 002023 aa 777447 7100 04 tra -217,ic 001472 STATEMENT 1 ON LINE 556 switch_ptr = null; 002024 aa 776100 2370 04 ldaq -960,ic 000124 = 077777000043 000001000000 002025 aa 7 00274 7571 00 staq pr7|188 switch_ptr STATEMENT 1 ON LINE 562 eoj = ""b; 002026 aa 7 00262 4501 00 stz pr7|178 eoj STATEMENT 1 ON LINE 564 je_ptr = pointer (journalp, currentsize (journal)); 002027 aa 7 00326 3521 20 epp2 pr7|214,* journalp 002030 aa 000100 3120 00 eawp2 64 002031 aa 7 00330 2521 00 spri2 pr7|216 je_ptr STATEMENT 1 ON LINE 566 syserr_called = ""b; 002032 aa 7 00276 4501 00 stz pr7|190 syserr_called STATEMENT 1 ON LINE 568 do while (^eoj); 002033 aa 000000 0110 03 nop 0,du 002034 aa 6 00040 3735 20 epp7 pr6|32,* 002035 aa 7 00262 2351 00 lda pr7|178 eoj 002036 aa 000526 6010 04 tnz 342,ic 002564 STATEMENT 1 ON LINE 569 action = journal_entry.action; 002037 aa 7 00330 3715 20 epp5 pr7|216,* je_ptr 002040 aa 5 00003 2361 00 ldq pr5|3 journal_entry.action 002041 aa 7 00256 7561 00 stq pr7|174 action STATEMENT 1 ON LINE 570 n_doublewords = journal_entry.n_doublewords; 002042 aa 5 00002 2361 00 ldq pr5|2 journal_entry.n_doublewords 002043 aa 7 00104 7561 00 stq pr7|68 n_doublewords STATEMENT 1 ON LINE 571 resource_desc_ptr -> based_words = journal_entry.j_resource_desc; 002044 aa 5 00002 2361 00 ldq pr5|2 journal_entry.n_doublewords 002045 aa 5 00002 2351 00 lda pr5|2 journal_entry.n_doublewords 002046 aa 7 00104 1111 00 cwl pr7|68 n_doublewords 002047 aa 000002 6000 04 tze 2,ic 002051 002050 aa 0 00665 7001 00 tsx0 pr0|437 bound_ck_signal 002051 aa 7 00104 2361 00 ldq pr7|68 n_doublewords 002052 aa 6 00141 7561 00 stq pr6|97 002053 aa 000001 2360 07 ldq 1,dl 002054 aa 6 00106 7561 00 stq pr6|70 002055 aa 000000 0110 03 nop 0,du 002056 aa 6 00106 2361 00 ldq pr6|70 002057 aa 000001 7360 00 qls 1 002060 aa 6 00040 3735 20 epp7 pr6|32,* 002061 aa 7 00330 3715 20 epp5 pr7|216,* je_ptr 002062 aa 000000 6270 06 eax7 0,ql 002063 aa 5 00006 2371 06 ldaq pr5|6,ql journal_entry.j_resource_desc 002064 aa 7 00332 3535 20 epp3 pr7|218,* resource_desc_ptr 002065 aa 3 77776 7571 17 staq pr3|-2,7 based_words 002066 aa 6 00106 2361 00 ldq pr6|70 002067 aa 6 00106 0541 00 aos pr6|70 002070 aa 6 00141 1161 00 cmpq pr6|97 002071 aa 777765 6040 04 tmi -11,ic 002056 STATEMENT 1 ON LINE 573 do i = 1 by 1 while (i ^> resource_descriptions.n_items); 002072 aa 000001 2360 07 ldq 1,dl 002073 aa 7 00263 7561 00 stq pr7|179 i 002074 aa 6 00040 3735 20 epp7 pr6|32,* 002075 aa 7 00263 2361 00 ldq pr7|179 i 002076 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002077 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002100 aa 000075 6054 04 tpnz 61,ic 002175 STATEMENT 1 ON LINE 574 do j = 1 to n_resources while (registry_data.resource_name (j) ^= resource_descriptions.type (i)); 002101 aa 7 00266 2361 00 ldq pr7|182 n_resources 002102 aa 6 00107 7561 00 stq pr6|71 002103 aa 000001 2360 07 ldq 1,dl 002104 aa 7 00264 7561 00 stq pr7|180 j 002105 aa 000000 0110 03 nop 0,du 002106 aa 6 00040 3735 20 epp7 pr6|32,* 002107 aa 7 00264 2361 00 ldq pr7|180 j 002110 aa 6 00107 1161 00 cmpq pr6|71 002111 aa 000017 6054 04 tpnz 15,ic 002130 002112 aa 000014 4020 07 mpy 12,dl 002113 aa 000000 6270 06 eax7 0,ql 002114 aa 7 00263 2361 00 ldq pr7|179 i 002115 aa 000271 4020 07 mpy 185,dl 002116 aa 6 00100 3715 20 epp5 pr6|64,* 002117 aa 5 77764 3715 17 epp5 pr5|-12,7 registry_data.resource_name 002120 aa 7 00332 3535 20 epp3 pr7|218,* resource_desc_ptr 002121 aa 3 77511 3535 06 epp3 pr3|-183,ql resource_descriptions.type 002122 aa 040 100 106 500 cmpc (pr),(pr),fill(040) 002123 aa 5 00000 00 0040 desc9a pr5|0,32 registry_data.resource_name 002124 aa 3 00000 00 0040 desc9a pr3|0,32 resource_descriptions.type 002125 aa 000003 6000 04 tze 3,ic 002130 STATEMENT 1 ON LINE 576 end; 002126 aa 7 00264 0541 00 aos pr7|180 j 002127 aa 777757 7100 04 tra -17,ic 002106 STATEMENT 1 ON LINE 578 if j > n_resources then goto dont_want_it; 002130 aa 7 00264 2361 00 ldq pr7|180 j 002131 aa 7 00266 1161 00 cmpq pr7|182 n_resources 002132 aa 000007 6054 04 tpnz 7,ic 002141 STATEMENT 1 ON LINE 580 if journal_entry.clock_time ^> registry_data.dtcm (j) then do; 002133 aa 000014 4020 07 mpy 12,dl 002134 aa 000000 6270 06 eax7 0,ql 002135 aa 7 00330 2371 20 ldaq pr7|216,* journal_entry.clock_time 002136 aa 6 00100 3715 20 epp5 pr6|64,* 002137 aa 5 77776 1171 17 cmpaq pr5|-2,7 registry_data.dtcm 002140 aa 000033 6054 04 tpnz 27,ic 002173 STATEMENT 1 ON LINE 581 dont_want_it: do k = i to resource_descriptions.n_items - 1; 002141 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002142 aa 5 00001 2361 00 ldq pr5|1 resource_descriptions.n_items 002143 aa 000001 1760 07 sbq 1,dl 002144 aa 6 00110 7561 00 stq pr6|72 002145 aa 7 00263 2361 00 ldq pr7|179 i 002146 aa 7 00265 7561 00 stq pr7|181 k 002147 aa 000000 0110 03 nop 0,du 002150 aa 6 00040 3735 20 epp7 pr6|32,* 002151 aa 7 00265 2361 00 ldq pr7|181 k 002152 aa 6 00110 1161 00 cmpq pr6|72 002153 aa 000013 6054 04 tpnz 11,ic 002166 STATEMENT 1 ON LINE 583 unspec (resource_descriptions.item (k)) = unspec (resource_descriptions.item (k + 1)); 002154 aa 000271 4020 07 mpy 185,dl 002155 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002156 aa 5 77511 3715 06 epp5 pr5|-183,ql 002157 aa 7 00332 3535 20 epp3 pr7|218,* resource_desc_ptr 002160 aa 3 00002 3535 06 epp3 pr3|2,ql 002161 aa 000 100 100 500 mlr (pr),(pr),fill(000) 002162 aa 3 00000 00 1344 desc9a pr3|0,740 002163 aa 5 00000 00 1344 desc9a pr5|0,740 STATEMENT 1 ON LINE 584 end; 002164 aa 7 00265 0541 00 aos pr7|181 k 002165 aa 777763 7100 04 tra -13,ic 002150 STATEMENT 1 ON LINE 585 resource_descriptions.n_items = resource_descriptions.n_items - 1; 002166 aa 000001 3360 07 lcq 1,dl 002167 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002170 aa 5 00001 0561 00 asq pr5|1 resource_descriptions.n_items STATEMENT 1 ON LINE 586 i = i - 1; 002171 aa 000001 3360 07 lcq 1,dl 002172 aa 7 00263 0561 00 asq pr7|179 i STATEMENT 1 ON LINE 587 end; STATEMENT 1 ON LINE 588 end; 002173 aa 7 00263 0541 00 aos pr7|179 i 002174 aa 777700 7100 04 tra -64,ic 002074 STATEMENT 1 ON LINE 590 if resource_descriptions.n_items > 0 then do; 002175 aa 5 00001 2361 00 ldq pr5|1 resource_descriptions.n_items 002176 aa 000314 6044 04 tmoz 204,ic 002512 STATEMENT 1 ON LINE 597 resource_descriptions.given.name (*) = "1"b; 002177 aa 000001 2360 07 ldq 1,dl 002200 aa 6 00106 7561 00 stq pr6|70 002201 aa 000000 0110 03 nop 0,du 002202 aa 6 00106 2361 00 ldq pr6|70 002203 aa 000271 4020 07 mpy 185,dl 002204 aa 400000 2350 03 lda 131072,du 002205 aa 6 00040 3735 20 epp7 pr6|32,* 002206 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002207 aa 5 77777 2551 06 orsa pr5|-1,ql resource_descriptions.name 002210 aa 6 00106 2361 00 ldq pr6|70 002211 aa 6 00106 0541 00 aos pr6|70 002212 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002213 aa 777767 6040 04 tmi -9,ic 002202 STATEMENT 1 ON LINE 598 resource_descriptions.given.uid (*) = "0"b; 002214 aa 000001 2360 07 ldq 1,dl 002215 aa 6 00106 7561 00 stq pr6|70 002216 aa 6 00106 2361 00 ldq pr6|70 002217 aa 000271 4020 07 mpy 185,dl 002220 aa 002702 2350 04 lda 1474,ic 005122 = 577777777777 002221 aa 6 00040 3735 20 epp7 pr6|32,* 002222 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002223 aa 5 77777 3551 06 ansa pr5|-1,ql resource_descriptions.uid 002224 aa 6 00106 2361 00 ldq pr6|70 002225 aa 6 00106 0541 00 aos pr6|70 002226 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002227 aa 777767 6040 04 tmi -9,ic 002216 STATEMENT 1 ON LINE 611 if action = Acquire then resource_descriptions.given.owner (*), resource_descriptions.given.aim_range (*) = "1"b; 002230 aa 7 00256 2361 00 ldq pr7|174 action 002231 aa 000003 1160 07 cmpq 3,dl 002232 aa 000032 6010 04 tnz 26,ic 002264 002233 aa 000001 2360 07 ldq 1,dl 002234 aa 6 00106 7561 00 stq pr6|70 002235 aa 000000 0110 03 nop 0,du 002236 aa 6 00106 2361 00 ldq pr6|70 002237 aa 000271 4020 07 mpy 185,dl 002240 aa 004000 2350 03 lda 2048,du 002241 aa 6 00040 3735 20 epp7 pr6|32,* 002242 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002243 aa 5 77777 2551 06 orsa pr5|-1,ql resource_descriptions.owner 002244 aa 6 00106 2361 00 ldq pr6|70 002245 aa 6 00106 0541 00 aos pr6|70 002246 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002247 aa 777767 6040 04 tmi -9,ic 002236 002250 aa 000001 2360 07 ldq 1,dl 002251 aa 6 00106 7561 00 stq pr6|70 002252 aa 6 00106 2361 00 ldq pr6|70 002253 aa 000271 4020 07 mpy 185,dl 002254 aa 010000 2350 03 lda 4096,du 002255 aa 6 00040 3735 20 epp7 pr6|32,* 002256 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002257 aa 5 77777 2551 06 orsa pr5|-1,ql resource_descriptions.aim_range 002260 aa 6 00106 2361 00 ldq pr6|70 002261 aa 6 00106 0541 00 aos pr6|70 002262 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002263 aa 777767 6040 04 tmi -9,ic 002252 STATEMENT 1 ON LINE 614 if action = Register then resource_descriptions.given.uid (*) = "1"b; 002264 aa 7 00256 2361 00 ldq pr7|174 action 002265 aa 000001 1160 07 cmpq 1,dl 002266 aa 000016 6010 04 tnz 14,ic 002304 002267 aa 000001 2360 07 ldq 1,dl 002270 aa 6 00106 7561 00 stq pr6|70 002271 aa 000000 0110 03 nop 0,du 002272 aa 6 00106 2361 00 ldq pr6|70 002273 aa 000271 4020 07 mpy 185,dl 002274 aa 200000 2350 03 lda 65536,du 002275 aa 6 00040 3735 20 epp7 pr6|32,* 002276 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002277 aa 5 77777 2551 06 orsa pr5|-1,ql resource_descriptions.uid 002300 aa 6 00106 2361 00 ldq pr6|70 002301 aa 6 00106 0541 00 aos pr6|70 002302 aa 5 00001 1161 00 cmpq pr5|1 resource_descriptions.n_items 002303 aa 777767 6040 04 tmi -9,ic 002272 STATEMENT 1 ON LINE 619 call rcprm_find_resource_$reconstruct (resource_desc_ptr, system_dir, action, tsw_attach_ptr, code); 002304 aa 7 00332 3521 00 epp2 pr7|218 resource_desc_ptr 002305 aa 6 00176 2521 00 spri2 pr6|126 002306 aa 7 00163 3521 00 epp2 pr7|115 system_dir 002307 aa 6 00200 2521 00 spri2 pr6|128 002310 aa 7 00256 3521 00 epp2 pr7|174 action 002311 aa 6 00202 2521 00 spri2 pr6|130 002312 aa 7 00302 3521 00 epp2 pr7|194 tsw_attach_ptr 002313 aa 6 00204 2521 00 spri2 pr6|132 002314 aa 7 00342 3521 20 epp2 pr7|226,* code 002315 aa 6 00206 2521 00 spri2 pr6|134 002316 aa 775576 3520 04 epp2 -1154,ic 000114 = 464000000000 002317 aa 6 00210 2521 00 spri2 pr6|136 002320 aa 6 00216 2521 00 spri2 pr6|142 002321 aa 775564 3520 04 epp2 -1164,ic 000105 = 526000000250 002322 aa 6 00212 2521 00 spri2 pr6|138 002323 aa 775570 3520 04 epp2 -1160,ic 000113 = 404000000021 002324 aa 6 00214 2521 00 spri2 pr6|140 002325 aa 775556 3520 04 epp2 -1170,ic 000103 = 404000000043 002326 aa 6 00220 2521 00 spri2 pr6|144 002327 aa 6 00174 6211 00 eax1 pr6|124 002330 aa 024000 4310 07 fld 10240,dl 002331 aa 6 00044 3701 20 epp4 pr6|36,* 002332 la 4 00126 3521 20 epp2 pr4|86,* rcprm_find_resource_$reconstruct 002333 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 621 if code ^= 0 then do; 002334 aa 6 00040 3735 20 epp7 pr6|32,* 002335 aa 7 00342 2361 20 ldq pr7|226,* code 002336 aa 000154 6000 04 tze 108,ic 002512 STATEMENT 1 ON LINE 622 if code ^= error_table_$action_not_performed then call audit (registry_data.resource_name (j)); 002337 aa 6 00044 3701 20 epp4 pr6|36,* 002340 la 4 00022 1161 20 cmpq pr4|18,* error_table_$action_not_performed 002341 aa 000014 6000 04 tze 12,ic 002355 002342 aa 7 00264 2361 00 ldq pr7|180 j 002343 aa 000014 4020 07 mpy 12,dl 002344 aa 6 00100 3715 20 epp5 pr6|64,* 002345 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 002346 aa 6 00144 2521 00 spri2 pr6|100 002347 aa 6 00105 3521 00 epp2 pr6|69 002350 aa 6 00146 2521 00 spri2 pr6|102 002351 aa 6 00142 3521 00 epp2 pr6|98 002352 aa 004000 4310 07 fld 2048,dl 002353 aa 2 00000 7571 00 staq pr2|0 002354 aa 002464 6700 04 tsp4 1332,ic 005040 STATEMENT 1 ON LINE 629 if ^syserr_called then call admin_gate_$syserr (BEEP, "RCP: Error during registry reconstruction for ^a.", get_group_id_ ()); 002355 aa 6 00040 3735 20 epp7 pr6|32,* 002356 aa 7 00276 2351 00 lda pr7|190 syserr_called 002357 aa 000034 6010 04 tnz 28,ic 002413 002360 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002361 aa 775663 00 0064 desc9a -1101,52 000243 = 122103120072 002362 aa 6 00152 00 0064 desc9a pr6|106,52 002363 aa 6 00142 3521 00 epp2 pr6|98 002364 aa 6 00176 2521 00 spri2 pr6|126 002365 aa 6 00174 6211 00 eax1 pr6|124 002366 aa 004000 4310 07 fld 2048,dl 002367 aa 6 00044 3701 20 epp4 pr6|36,* 002370 la 4 00034 3521 20 epp2 pr4|28,* get_group_id_ 002371 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 002372 aa 775517 3520 04 epp2 -1201,ic 000111 = 000000000003 002373 aa 6 00176 2521 00 spri2 pr6|126 002374 aa 6 00152 3521 00 epp2 pr6|106 002375 aa 6 00200 2521 00 spri2 pr6|128 002376 aa 6 00142 3521 00 epp2 pr6|98 002377 aa 6 00202 2521 00 spri2 pr6|130 002400 aa 775513 3520 04 epp2 -1205,ic 000113 = 404000000021 002401 aa 6 00204 2521 00 spri2 pr6|132 002402 aa 775456 3520 04 epp2 -1234,ic 000060 = 524000000061 002403 aa 6 00206 2521 00 spri2 pr6|134 002404 aa 775474 3520 04 epp2 -1220,ic 000100 = 524000000040 002405 aa 6 00210 2521 00 spri2 pr6|136 002406 aa 6 00174 6211 00 eax1 pr6|124 002407 aa 014000 4310 07 fld 6144,dl 002410 aa 6 00044 3701 20 epp4 pr6|36,* 002411 la 4 00030 3521 20 epp2 pr4|24,* admin_gate_$syserr 002412 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 633 do i = 1 to resource_descriptions.n_items; 002413 aa 6 00040 3735 20 epp7 pr6|32,* 002414 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002415 aa 5 00001 2361 00 ldq pr5|1 resource_descriptions.n_items 002416 aa 6 00111 7561 00 stq pr6|73 002417 aa 000001 2360 07 ldq 1,dl 002420 aa 7 00263 7561 00 stq pr7|179 i 002421 aa 000000 0110 03 nop 0,du 002422 aa 6 00040 3735 20 epp7 pr6|32,* 002423 aa 7 00263 2361 00 ldq pr7|179 i 002424 aa 6 00111 1161 00 cmpq pr6|73 002425 aa 000062 6054 04 tpnz 50,ic 002507 STATEMENT 1 ON LINE 634 call admin_gate_$syserr_error_code (LOG, resource_descriptions.item (i).status_code, "RCP: Could not ^a ^a ^a.", Action_noun (action), resource_descriptions.item (i).type, resource_descriptions.item (i).name); 002426 aa 775455 2360 04 ldq -1235,ic 000103 = 404000000043 002427 aa 6 00141 7561 00 stq pr6|97 002430 aa 775450 2360 04 ldq -1240,ic 000100 = 524000000040 002431 aa 6 00140 7561 00 stq pr6|96 002432 aa 6 00323 7561 00 stq pr6|211 002433 aa 7 00263 2361 00 ldq pr7|179 i 002434 aa 000271 4020 07 mpy 185,dl 002435 aa 000000 6270 06 eax7 0,ql 002436 aa 775520 2370 04 ldaq -1200,ic 000156 = 122103120072 040103157165 002437 aa 6 00142 7571 00 staq pr6|98 002440 aa 775520 2370 04 ldaq -1200,ic 000160 = 154144040156 157164040136 002441 aa 6 00144 7571 00 staq pr6|100 002442 aa 775520 2370 04 ldaq -1200,ic 000162 = 141040136141 040136141056 002443 aa 6 00146 7571 00 staq pr6|102 002444 aa 7 00256 2361 00 ldq pr7|174 action 002445 aa 000003 4020 07 mpy 3,dl 002446 aa 775434 3520 04 epp2 -1252,ic 000102 = 000000000004 002447 aa 6 00224 2521 00 spri2 pr6|148 002450 aa 7 00332 3715 20 epp5 pr7|218,* resource_desc_ptr 002451 aa 5 00001 3521 17 epp2 pr5|1,7 resource_descriptions.status_code 002452 aa 6 00226 2521 00 spri2 pr6|150 002453 aa 6 00142 3521 00 epp2 pr6|98 002454 aa 6 00230 2521 00 spri2 pr6|152 002455 ta 777777 3520 06 epp2 -1,ql 002456 aa 6 00232 2521 00 spri2 pr6|154 002457 aa 5 77511 3521 17 epp2 pr5|-183,7 resource_descriptions.type 002460 aa 6 00234 2521 00 spri2 pr6|156 002461 aa 5 77521 3521 17 epp2 pr5|-175,7 resource_descriptions.name 002462 aa 6 00236 2521 00 spri2 pr6|158 002463 aa 775430 3520 04 epp2 -1256,ic 000113 = 404000000021 002464 aa 6 00240 2521 00 spri2 pr6|160 002465 aa 6 00141 3521 00 epp2 pr6|97 002466 aa 6 00242 2521 00 spri2 pr6|162 002467 aa 775370 3520 04 epp2 -1288,ic 000057 = 524000000030 002470 aa 6 00244 2521 00 spri2 pr6|164 002471 aa 775365 3520 04 epp2 -1291,ic 000056 = 526000000014 002472 aa 6 00246 2521 00 spri2 pr6|166 002473 aa 6 00140 3521 00 epp2 pr6|96 002474 aa 6 00250 2521 00 spri2 pr6|168 002475 aa 6 00323 3521 00 epp2 pr6|211 002476 aa 6 00252 2521 00 spri2 pr6|170 002477 aa 6 00222 6211 00 eax1 pr6|146 002500 aa 030000 4310 07 fld 12288,dl 002501 aa 6 00044 3701 20 epp4 pr6|36,* 002502 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 002503 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 637 end; 002504 aa 6 00040 3735 20 epp7 pr6|32,* 002505 aa 7 00263 0541 00 aos pr7|179 i 002506 aa 777714 7100 04 tra -52,ic 002422 STATEMENT 1 ON LINE 639 syserr_called = "1"b; 002507 aa 400000 2350 03 lda 131072,du 002510 aa 7 00276 7551 00 sta pr7|190 syserr_called STATEMENT 1 ON LINE 640 code = 0; 002511 aa 7 00342 4501 20 stz pr7|226,* code STATEMENT 1 ON LINE 641 end; STATEMENT 1 ON LINE 642 end; STATEMENT 1 ON LINE 644 call find_next_entry; 002512 aa 001450 6700 04 tsp4 808,ic 004162 STATEMENT 1 ON LINE 645 call rcprm_registry_mgr_$audit (who_am_i, operation, prev_level, system_dir, registry_data.resource_name (j), "1"b, 0); 002513 aa 6 00040 3735 20 epp7 pr6|32,* 002514 aa 7 00264 2361 00 ldq pr7|180 j 002515 aa 000014 4020 07 mpy 12,dl 002516 aa 400000 2350 03 lda 131072,du 002517 aa 6 00141 7551 00 sta pr6|97 002520 aa 6 00140 4501 00 stz pr6|96 002521 aa 7 00304 3521 00 epp2 pr7|196 who_am_i 002522 aa 6 00224 2521 00 spri2 pr6|148 002523 aa 7 00267 3521 00 epp2 pr7|183 operation 002524 aa 6 00226 2521 00 spri2 pr6|150 002525 aa 7 00270 3521 00 epp2 pr7|184 prev_level 002526 aa 6 00230 2521 00 spri2 pr6|152 002527 aa 7 00163 3521 00 epp2 pr7|115 system_dir 002530 aa 6 00232 2521 00 spri2 pr6|154 002531 aa 6 00100 3715 20 epp5 pr6|64,* 002532 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 002533 aa 6 00234 2521 00 spri2 pr6|156 002534 aa 6 00141 3521 00 epp2 pr6|97 002535 aa 6 00236 2521 00 spri2 pr6|158 002536 aa 6 00140 3521 00 epp2 pr6|96 002537 aa 6 00240 2521 00 spri2 pr6|160 002540 aa 775315 3520 04 epp2 -1331,ic 000055 = 526000000100 002541 aa 6 00242 2521 00 spri2 pr6|162 002542 aa 775312 3520 04 epp2 -1334,ic 000054 = 514000000044 002543 aa 6 00244 2521 00 spri2 pr6|164 002544 aa 775347 3520 04 epp2 -1305,ic 000113 = 404000000021 002545 aa 6 00246 2521 00 spri2 pr6|166 002546 aa 775337 3520 04 epp2 -1313,ic 000105 = 526000000250 002547 aa 6 00250 2521 00 spri2 pr6|168 002550 aa 6 00105 3521 00 epp2 pr6|69 002551 aa 6 00252 2521 00 spri2 pr6|170 002552 aa 775320 3520 04 epp2 -1328,ic 000072 = 514000000001 002553 aa 6 00254 2521 00 spri2 pr6|172 002554 aa 775327 3520 04 epp2 -1321,ic 000103 = 404000000043 002555 aa 6 00256 2521 00 spri2 pr6|174 002556 aa 6 00222 6211 00 eax1 pr6|146 002557 aa 034000 4310 07 fld 14336,dl 002560 aa 6 00044 3701 20 epp4 pr6|36,* 002561 la 4 00130 3521 20 epp2 pr4|88,* rcprm_registry_mgr_$audit 002562 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 647 end; 002563 aa 777251 7100 04 tra -343,ic 002034 STATEMENT 1 ON LINE 652 do i = 1 to n_resources; 002564 aa 7 00266 2361 00 ldq pr7|182 n_resources 002565 aa 6 00112 7561 00 stq pr6|74 002566 aa 000001 2360 07 ldq 1,dl 002567 aa 7 00263 7561 00 stq pr7|179 i 002570 aa 6 00040 3735 20 epp7 pr6|32,* 002571 aa 7 00263 2361 00 ldq pr7|179 i 002572 aa 6 00112 1161 00 cmpq pr6|74 002573 aa 000045 6054 04 tpnz 37,ic 002640 STATEMENT 1 ON LINE 653 call rcprm_registry_mgr_$update_registry_header_mylock (system_dir, registry_data.rtdep (i), code); 002574 aa 000014 4020 07 mpy 12,dl 002575 aa 7 00163 3521 00 epp2 pr7|115 system_dir 002576 aa 6 00154 2521 00 spri2 pr6|108 002577 aa 6 00100 3715 20 epp5 pr6|64,* 002600 aa 5 77774 3521 06 epp2 pr5|-4,ql registry_data.rtdep 002601 aa 6 00156 2521 00 spri2 pr6|110 002602 aa 7 00342 3521 20 epp2 pr7|226,* code 002603 aa 6 00160 2521 00 spri2 pr6|112 002604 aa 775301 3520 04 epp2 -1343,ic 000105 = 526000000250 002605 aa 6 00162 2521 00 spri2 pr6|114 002606 aa 6 00113 3521 00 epp2 pr6|75 002607 aa 6 00164 2521 00 spri2 pr6|116 002610 aa 775273 3520 04 epp2 -1349,ic 000103 = 404000000043 002611 aa 6 00166 2521 00 spri2 pr6|118 002612 aa 6 00152 6211 00 eax1 pr6|106 002613 aa 014000 4310 07 fld 6144,dl 002614 aa 6 00044 3701 20 epp4 pr6|36,* 002615 la 4 00132 3521 20 epp2 pr4|90,* rcprm_registry_mgr_$update_registry_header_mylock 002616 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 654 if code ^= 0 then call audit (registry_data.resource_name (i)); 002617 aa 6 00040 3735 20 epp7 pr6|32,* 002620 aa 7 00342 2361 20 ldq pr7|226,* code 002621 aa 000014 6000 04 tze 12,ic 002635 002622 aa 7 00263 2361 00 ldq pr7|179 i 002623 aa 000014 4020 07 mpy 12,dl 002624 aa 6 00100 3715 20 epp5 pr6|64,* 002625 aa 5 77764 3521 06 epp2 pr5|-12,ql registry_data.resource_name 002626 aa 6 00144 2521 00 spri2 pr6|100 002627 aa 6 00105 3521 00 epp2 pr6|69 002630 aa 6 00146 2521 00 spri2 pr6|102 002631 aa 6 00142 3521 00 epp2 pr6|98 002632 aa 004000 4310 07 fld 2048,dl 002633 aa 2 00000 7571 00 staq pr2|0 002634 aa 002204 6700 04 tsp4 1156,ic 005040 STATEMENT 1 ON LINE 657 end; 002635 aa 6 00040 3735 20 epp7 pr6|32,* 002636 aa 7 00263 0541 00 aos pr7|179 i 002637 aa 777731 7100 04 tra -39,ic 002570 STATEMENT 1 ON LINE 658 end; 002640 aa 0 00615 7001 00 tsx0 pr0|397 leave_begin_block END BLOCK 1 STATEMENT 1 ON LINE 662 call clean_up ("1"b, code); 002641 aa 400000 2350 03 lda 131072,du 002642 aa 6 00437 7551 00 sta pr6|287 002643 aa 6 00437 3521 00 epp2 pr6|287 002644 aa 6 00406 2521 00 spri2 pr6|262 002645 aa 6 00342 3521 20 epp2 pr6|226,* code 002646 aa 6 00410 2521 00 spri2 pr6|264 002647 aa 6 00404 6211 00 eax1 pr6|260 002650 aa 010000 4310 07 fld 4096,dl 002651 aa 001551 3520 04 epp2 873,ic 004422 = 000160627000 002652 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 663 if code = 0 then if syserr_called then do; 002653 aa 6 00342 2361 20 ldq pr6|226,* code 002654 aa 000031 6010 04 tnz 25,ic 002705 002655 aa 6 00276 2351 00 lda pr6|190 syserr_called 002656 aa 000027 6000 04 tze 23,ic 002705 STATEMENT 1 ON LINE 665 code = error_table_$recoverable_error; 002657 aa 6 00044 3701 20 epp4 pr6|36,* 002660 la 4 00016 2361 20 ldq pr4|14,* error_table_$recoverable_error 002661 aa 6 00342 7561 20 stq pr6|226,* code STATEMENT 1 ON LINE 666 call admin_gate_$syserr_error_code (BEEP, code, "RCP: End of reconstruction operation."); 002662 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002663 aa 775322 00 0050 desc9a -1326,40 000204 = 122103120072 002664 aa 6 00372 00 0050 desc9a pr6|250,40 002665 aa 775224 3520 04 epp2 -1388,ic 000111 = 000000000003 002666 aa 6 00416 2521 00 spri2 pr6|270 002667 aa 6 00342 3521 20 epp2 pr6|226,* code 002670 aa 6 00420 2521 00 spri2 pr6|272 002671 aa 6 00372 3521 00 epp2 pr6|250 002672 aa 6 00422 2521 00 spri2 pr6|274 002673 aa 775220 3520 04 epp2 -1392,ic 000113 = 404000000021 002674 aa 6 00424 2521 00 spri2 pr6|276 002675 aa 775206 3520 04 epp2 -1402,ic 000103 = 404000000043 002676 aa 6 00426 2521 00 spri2 pr6|278 002677 aa 775202 3520 04 epp2 -1406,ic 000101 = 524000000045 002700 aa 6 00430 2521 00 spri2 pr6|280 002701 aa 6 00414 6211 00 eax1 pr6|268 002702 aa 014000 4310 07 fld 6144,dl 002703 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 002704 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 667 end; STATEMENT 1 ON LINE 669 return; 002705 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 767 error_return: call clean_up (""b, (0)); 002706 aa 000000 2350 07 lda 0,dl 002707 aa 6 00437 7551 00 sta pr6|287 002710 aa 6 00436 4501 00 stz pr6|286 002711 aa 6 00437 3521 00 epp2 pr6|287 002712 aa 6 00406 2521 00 spri2 pr6|262 002713 aa 6 00436 3521 00 epp2 pr6|286 002714 aa 6 00410 2521 00 spri2 pr6|264 002715 aa 6 00404 6211 00 eax1 pr6|260 002716 aa 010000 4310 07 fld 4096,dl 002717 aa 001503 3520 04 epp2 835,ic 004422 = 000160627000 002720 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 769 return; 002721 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 882 end rcprm_journalize_; BEGIN PROCEDURE journalize ENTRY TO journalize STATEMENT 1 ON LINE 146 journalize: proc (code); 002722 aa 6 00344 6501 00 spri4 pr6|228 002723 aa 6 00346 2521 00 spri2 pr6|230 STATEMENT 1 ON LINE 151 call find_journal ("1"b, code); 002724 aa 400000 2350 03 lda 131072,du 002725 aa 6 00441 7551 00 sta pr6|289 002726 aa 6 00441 3521 00 epp2 pr6|289 002727 aa 6 00444 2521 00 spri2 pr6|292 002730 aa 6 00346 3735 20 epp7 pr6|230,* 002731 aa 7 00002 3521 20 epp2 pr7|2,* code 002732 aa 6 00446 2521 00 spri2 pr6|294 002733 aa 6 00442 6211 00 eax1 pr6|290 002734 aa 010000 4310 07 fld 4096,dl 002735 aa 000203 3520 04 epp2 131,ic 003140 = 000160627000 002736 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 152 if code ^= 0 then return; 002737 aa 6 00346 3735 20 epp7 pr6|230,* 002740 aa 7 00002 2361 20 ldq pr7|2,* code 002741 aa 000002 6000 04 tze 2,ic 002743 002742 aa 6 00344 6101 00 rtcd pr6|228 STATEMENT 1 ON LINE 155 n_doublewords = divide (currentsize (resource_desc_ptr -> resource_descriptions) + 1, 2, 35, 0); 002743 aa 6 00332 3715 20 epp5 pr6|218,* resource_desc_ptr 002744 aa 5 00001 2361 00 ldq pr5|1 resource_descriptions.n_items 002745 aa 000271 4020 07 mpy 185,dl 002746 aa 000003 0760 07 adq 3,dl 002747 aa 000002 5060 07 div 2,dl 002750 aa 6 00104 7561 00 stq pr6|68 n_doublewords STATEMENT 1 ON LINE 156 if journal.next_free_word + (n_doublewords * 2) > max_seg_size then do; 002751 aa 000001 7360 00 qls 1 002752 aa 6 00326 3535 20 epp3 pr6|214,* journalp 002753 aa 3 00001 0761 00 adq pr3|1 journal.next_free_word 002754 aa 6 00044 3701 20 epp4 pr6|36,* 002755 ia 4 00010 1161 00 cmpq pr4|8 max_seg_size 002756 aa 000013 6044 04 tmoz 11,ic 002771 STATEMENT 1 ON LINE 157 call make_new_journal (code); 002757 aa 7 00002 3521 20 epp2 pr7|2,* code 002760 aa 6 00444 2521 00 spri2 pr6|292 002761 aa 6 00442 6211 00 eax1 pr6|290 002762 aa 004000 4310 07 fld 2048,dl 002763 aa 000433 3520 04 epp2 283,ic 003416 = 000320627000 002764 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 158 if code ^= 0 then return; 002765 aa 6 00346 3735 20 epp7 pr6|230,* 002766 aa 7 00002 2361 20 ldq pr7|2,* code 002767 aa 000002 6000 04 tze 2,ic 002771 002770 aa 6 00344 6101 00 rtcd pr6|228 STATEMENT 1 ON LINE 160 end; STATEMENT 1 ON LINE 162 je_ptr = pointer (journalp, journal.next_free_word); 002771 aa 6 00326 3715 20 epp5 pr6|214,* journalp 002772 aa 5 00001 2361 00 ldq pr5|1 journal.next_free_word 002773 aa 5 00000 3521 00 epp2 pr5|0 002774 aa 000000 3120 06 eawp2 0,ql 002775 aa 6 00330 2521 00 spri2 pr6|216 je_ptr STATEMENT 1 ON LINE 164 journal_entry.clock_time = clock_time; 002776 aa 6 00102 2371 00 ldaq pr6|66 clock_time 002777 aa 2 00000 7571 00 staq pr2|0 journal_entry.clock_time STATEMENT 1 ON LINE 165 journal_entry.n_doublewords = n_doublewords; 003000 aa 6 00104 2361 00 ldq pr6|68 n_doublewords 003001 aa 2 00002 7561 00 stq pr2|2 journal_entry.n_doublewords STATEMENT 1 ON LINE 166 journal_entry.action = arg_action; 003002 aa 6 00032 3535 20 epp3 pr6|26,* 003003 aa 3 00004 2361 20 ldq pr3|4,* arg_action 003004 aa 2 00003 7561 00 stq pr2|3 journal_entry.action STATEMENT 1 ON LINE 167 journal_entry.j_resource_desc = resource_desc_ptr -> based_words; 003005 aa 6 00104 2361 00 ldq pr6|68 n_doublewords 003006 aa 6 00104 2351 00 lda pr6|68 n_doublewords 003007 aa 2 00002 1111 00 cwl pr2|2 journal_entry.n_doublewords 003010 aa 000002 6000 04 tze 2,ic 003012 003011 aa 0 00665 7001 00 tsx0 pr0|437 bound_ck_signal 003012 aa 2 00002 2361 00 ldq pr2|2 journal_entry.n_doublewords 003013 aa 6 00441 7561 00 stq pr6|289 003014 aa 000001 2360 07 ldq 1,dl 003015 aa 6 00352 7561 00 stq pr6|234 003016 aa 6 00352 2361 00 ldq pr6|234 003017 aa 000001 7360 00 qls 1 003020 aa 6 00332 3735 20 epp7 pr6|218,* resource_desc_ptr 003021 aa 000000 6270 06 eax7 0,ql 003022 aa 7 77776 2371 06 ldaq pr7|-2,ql based_words 003023 aa 6 00330 3715 20 epp5 pr6|216,* je_ptr 003024 aa 5 00006 7571 17 staq pr5|6,7 journal_entry.j_resource_desc 003025 aa 6 00352 2361 00 ldq pr6|234 003026 aa 6 00352 0541 00 aos pr6|234 003027 aa 6 00441 1161 00 cmpq pr6|289 003030 aa 777766 6040 04 tmi -10,ic 003016 STATEMENT 1 ON LINE 169 journal.next_free_word = journal.next_free_word + currentsize (journal_entry); 003031 aa 5 00002 2361 00 ldq pr5|2 journal_entry.n_doublewords 003032 aa 000001 7360 00 qls 1 003033 aa 000010 0760 07 adq 8,dl 003034 aa 6 00326 3535 20 epp3 pr6|214,* journalp 003035 aa 3 00001 0561 00 asq pr3|1 journal.next_free_word STATEMENT 1 ON LINE 170 journal.own_last_transaction_time = clock_time; 003036 aa 6 00102 2371 00 ldaq pr6|66 clock_time 003037 aa 3 00006 7571 00 staq pr3|6 journal.own_last_transaction_time STATEMENT 1 ON LINE 172 call hcs_$force_write (journalp, addr (force_flags), code); 003040 aa 6 00044 3701 20 epp4 pr6|36,* 003041 ia 4 00011 3515 00 epp1 pr4|9 force_flags 003042 aa 6 00454 2515 00 spri1 pr6|300 003043 aa 6 00326 3521 00 epp2 pr6|214 journalp 003044 aa 6 00444 2521 00 spri2 pr6|292 003045 aa 6 00454 3521 00 epp2 pr6|300 003046 aa 6 00446 2521 00 spri2 pr6|294 003047 aa 6 00346 3735 20 epp7 pr6|230,* 003050 aa 7 00002 3521 20 epp2 pr7|2,* code 003051 aa 6 00450 2521 00 spri2 pr6|296 003052 aa 6 00442 6211 00 eax1 pr6|290 003053 aa 014000 4310 07 fld 6144,dl 003054 la 4 00050 3521 20 epp2 pr4|40,* hcs_$force_write 003055 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 173 if code ^= 0 then do; 003056 aa 6 00346 3735 20 epp7 pr6|230,* 003057 aa 7 00002 2361 20 ldq pr7|2,* code 003060 aa 000027 6000 04 tze 23,ic 003107 STATEMENT 1 ON LINE 174 call admin_gate_$syserr_error_code (LOG, code, "RCP: Journal could not be forcibly written."); 003061 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003062 aa 775147 00 0054 desc9a -1433,44 000230 = 122103120072 003063 aa 6 00456 00 0054 desc9a pr6|302,44 003064 aa 775016 3520 04 epp2 -1522,ic 000102 = 000000000004 003065 aa 6 00474 2521 00 spri2 pr6|316 003066 aa 7 00002 3521 20 epp2 pr7|2,* code 003067 aa 6 00476 2521 00 spri2 pr6|318 003070 aa 6 00456 3521 00 epp2 pr6|302 003071 aa 6 00500 2521 00 spri2 pr6|320 003072 aa 775021 3520 04 epp2 -1519,ic 000113 = 404000000021 003073 aa 6 00502 2521 00 spri2 pr6|322 003074 aa 775007 3520 04 epp2 -1529,ic 000103 = 404000000043 003075 aa 6 00504 2521 00 spri2 pr6|324 003076 aa 774775 3520 04 epp2 -1539,ic 000073 = 524000000053 003077 aa 6 00506 2521 00 spri2 pr6|326 003100 aa 6 00472 6211 00 eax1 pr6|314 003101 aa 014000 4310 07 fld 6144,dl 003102 aa 6 00044 3701 20 epp4 pr6|36,* 003103 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 003104 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 175 code = 0; 003105 aa 6 00346 3735 20 epp7 pr6|230,* 003106 aa 7 00002 4501 20 stz pr7|2,* code STATEMENT 1 ON LINE 176 end; STATEMENT 1 ON LINE 178 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 003107 aa 6 00471 4501 00 stz pr6|313 003110 aa 6 00453 4501 00 stz pr6|299 003111 aa 6 00326 3521 00 epp2 pr6|214 journalp 003112 aa 6 00512 2521 00 spri2 pr6|330 003113 aa 6 00471 3521 00 epp2 pr6|313 003114 aa 6 00514 2521 00 spri2 pr6|332 003115 aa 774663 3520 04 epp2 -1613,ic 000000 = 100000000000 003116 aa 6 00516 2521 00 spri2 pr6|334 003117 aa 6 00453 3521 00 epp2 pr6|299 003120 aa 6 00520 2521 00 spri2 pr6|336 003121 aa 774773 3520 04 epp2 -1541,ic 000114 = 464000000000 003122 aa 6 00522 2521 00 spri2 pr6|338 003123 aa 774752 3520 04 epp2 -1558,ic 000075 = 404000000030 003124 aa 6 00524 2521 00 spri2 pr6|340 003125 aa 774747 3520 04 epp2 -1561,ic 000074 = 516000000003 003126 aa 6 00526 2521 00 spri2 pr6|342 003127 aa 774754 3520 04 epp2 -1556,ic 000103 = 404000000043 003130 aa 6 00530 2521 00 spri2 pr6|344 003131 aa 6 00510 6211 00 eax1 pr6|328 003132 aa 020000 4310 07 fld 8192,dl 003133 aa 6 00044 3701 20 epp4 pr6|36,* 003134 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 003135 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 179 return; 003136 aa 6 00344 6101 00 rtcd pr6|228 STATEMENT 1 ON LINE 181 end journalize; END PROCEDURE journalize BEGIN PROCEDURE find_journal ENTRY TO find_journal STATEMENT 1 ON LINE 183 find_journal: proc (create_sw, code); 003137 da 000631200000 003140 aa 000160 6270 00 eax7 112 003141 aa 7 00034 3521 20 epp2 pr7|28,* 003142 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 003143 aa 000004000000 003144 aa 000000000000 STATEMENT 1 ON LINE 189 if max_seg_size = 0 then do; 003145 ia 4 00010 2361 00 ldq pr4|8 max_seg_size 003146 aa 000010 6010 04 tnz 8,ic 003156 STATEMENT 1 ON LINE 190 max_seg_size = sys_info$max_seg_size; 003147 la 4 00012 2361 20 ldq pr4|10,* sys_info$max_seg_size 003150 ia 4 00010 7561 00 stq pr4|8 max_seg_size STATEMENT 1 ON LINE 191 unspec (force_flags) = ""b; 003151 ia 4 00011 4501 00 stz pr4|9 STATEMENT 1 ON LINE 192 force_flags.priority_write, /* anything we can get away with */ force_flags.lru_or_mru = "1"b; 003152 aa 400000 2350 03 lda 131072,du 003153 ia 4 00011 2551 00 orsa pr4|9 force_flags.priority_write 003154 aa 100000 2350 03 lda 32768,du 003155 ia 4 00011 2551 00 orsa pr4|9 force_flags.lru_or_mru STATEMENT 1 ON LINE 194 end; STATEMENT 1 ON LINE 196 journal_dir = pathname_ (system_dir, "journals"); 003156 aa 774744 2370 04 ldaq -1564,ic 000122 = 152157165162 156141154163 003157 aa 6 00100 7571 00 staq pr6|64 003160 aa 6 00040 3735 20 epp7 pr6|32,* 003161 aa 7 00163 3521 00 epp2 pr7|115 system_dir 003162 aa 6 00104 2521 00 spri2 pr6|68 003163 aa 6 00100 3521 00 epp2 pr6|64 003164 aa 6 00106 2521 00 spri2 pr6|70 003165 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 003166 aa 6 00110 2521 00 spri2 pr6|72 003167 aa 774716 3520 04 epp2 -1586,ic 000105 = 526000000250 003170 aa 6 00112 2521 00 spri2 pr6|74 003171 aa 6 00116 2521 00 spri2 pr6|78 003172 aa 774677 3520 04 epp2 -1601,ic 000071 = 524000000010 003173 aa 6 00114 2521 00 spri2 pr6|76 003174 aa 6 00102 6211 00 eax1 pr6|66 003175 aa 014000 4310 07 fld 6144,dl 003176 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 003177 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 197 current_journal_name = DEFAULT_JOURNAL_NAME; 003200 aa 6 00040 3735 20 epp7 pr6|32,* 003201 aa 040 100 100 404 mlr (ic),(pr),fill(040) 003202 aa 774644 00 0015 desc9a -1628,13 000045 = 162143160162 003203 aa 7 00235 00 0040 desc9a pr7|157,32 current_journal_name STATEMENT 1 ON LINE 198 call initiate_file_ (journal_dir, current_journal_name, RW_ACCESS, journalp, (0), code); 003204 aa 6 00120 4501 00 stz pr6|80 003205 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 003206 aa 6 00124 2521 00 spri2 pr6|84 003207 aa 7 00235 3521 00 epp2 pr7|157 current_journal_name 003210 aa 6 00126 2521 00 spri2 pr6|86 003211 aa 774570 3520 04 epp2 -1672,ic 000001 = 500000000000 003212 aa 6 00130 2521 00 spri2 pr6|88 003213 aa 7 00326 3521 00 epp2 pr7|214 journalp 003214 aa 6 00132 2521 00 spri2 pr6|90 003215 aa 6 00120 3521 00 epp2 pr6|80 003216 aa 6 00134 2521 00 spri2 pr6|92 003217 aa 6 00032 3715 20 epp5 pr6|26,* 003220 aa 5 00004 3521 20 epp2 pr5|4,* code 003221 aa 6 00136 2521 00 spri2 pr6|94 003222 aa 774663 3520 04 epp2 -1613,ic 000105 = 526000000250 003223 aa 6 00140 2521 00 spri2 pr6|96 003224 aa 774663 3520 04 epp2 -1613,ic 000107 = 526000000040 003225 aa 6 00142 2521 00 spri2 pr6|98 003226 aa 774646 3520 04 epp2 -1626,ic 000074 = 516000000003 003227 aa 6 00144 2521 00 spri2 pr6|100 003230 aa 774664 3520 04 epp2 -1612,ic 000114 = 464000000000 003231 aa 6 00146 2521 00 spri2 pr6|102 003232 aa 774643 3520 04 epp2 -1629,ic 000075 = 404000000030 003233 aa 6 00150 2521 00 spri2 pr6|104 003234 aa 774647 3520 04 epp2 -1625,ic 000103 = 404000000043 003235 aa 6 00152 2521 00 spri2 pr6|106 003236 aa 6 00122 6211 00 eax1 pr6|82 003237 aa 030000 4310 07 fld 12288,dl 003240 aa 6 00044 3701 20 epp4 pr6|36,* 003241 la 4 00052 3521 20 epp2 pr4|42,* initiate_file_ 003242 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 200 if code = error_table_$noentry then if create_sw then do; 003243 aa 6 00032 3735 20 epp7 pr6|26,* 003244 aa 7 00004 2361 20 ldq pr7|4,* code 003245 aa 6 00044 3701 20 epp4 pr6|36,* 003246 la 4 00024 1161 20 cmpq pr4|20,* error_table_$noentry 003247 aa 000016 6010 04 tnz 14,ic 003265 003250 aa 7 00002 2351 20 lda pr7|2,* create_sw 003251 aa 400000 3150 03 cana 131072,du 003252 aa 000013 6000 04 tze 11,ic 003265 STATEMENT 1 ON LINE 202 call make_new_journal (code); 003253 aa 7 00004 3521 20 epp2 pr7|4,* code 003254 aa 6 00104 2521 00 spri2 pr6|68 003255 aa 000001 7270 07 lxl7 1,dl 003256 aa 6 00102 6211 00 eax1 pr6|66 003257 aa 004000 4310 07 fld 2048,dl 003260 aa 000136 3520 04 epp2 94,ic 003416 = 000320627000 003261 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 203 if code ^= 0 then return; 003262 aa 6 00032 3735 20 epp7 pr6|26,* 003263 aa 7 00004 2361 20 ldq pr7|4,* code 003264 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 205 end; STATEMENT 1 ON LINE 207 return; 003265 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 209 end find_journal; END PROCEDURE find_journal BEGIN PROCEDURE find_previous_journal ENTRY TO find_previous_journal STATEMENT 1 ON LINE 211 find_previous_journal: proc (code); 003266 da 000642200000 003267 aa 000260 6270 00 eax7 176 003270 aa 7 00034 3521 20 epp2 pr7|28,* 003271 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 003272 aa 000002000000 003273 aa 000000000000 STATEMENT 1 ON LINE 217 current_journal_name = journal.previous_journal_name; 003274 aa 6 00040 3735 20 epp7 pr6|32,* 003275 aa 7 00326 3715 20 epp5 pr7|214,* journalp 003276 aa 000 100 100 500 mlr (pr),(pr),fill(000) 003277 aa 5 00010 00 0040 desc9a pr5|8,32 journal.previous_journal_name 003300 aa 7 00235 00 0040 desc9a pr7|157,32 current_journal_name STATEMENT 1 ON LINE 218 call initiate_file_ (journal_dir, current_journal_name, RW_ACCESS, journalp, (0), code); 003301 aa 6 00100 4501 00 stz pr6|64 003302 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 003303 aa 6 00104 2521 00 spri2 pr6|68 003304 aa 7 00235 3521 00 epp2 pr7|157 current_journal_name 003305 aa 6 00106 2521 00 spri2 pr6|70 003306 aa 774473 3520 04 epp2 -1733,ic 000001 = 500000000000 003307 aa 6 00110 2521 00 spri2 pr6|72 003310 aa 7 00326 3521 00 epp2 pr7|214 journalp 003311 aa 6 00112 2521 00 spri2 pr6|74 003312 aa 6 00100 3521 00 epp2 pr6|64 003313 aa 6 00114 2521 00 spri2 pr6|76 003314 aa 6 00032 3535 20 epp3 pr6|26,* 003315 aa 3 00002 3521 20 epp2 pr3|2,* code 003316 aa 6 00116 2521 00 spri2 pr6|78 003317 aa 774566 3520 04 epp2 -1674,ic 000105 = 526000000250 003320 aa 6 00120 2521 00 spri2 pr6|80 003321 aa 774566 3520 04 epp2 -1674,ic 000107 = 526000000040 003322 aa 6 00122 2521 00 spri2 pr6|82 003323 aa 774551 3520 04 epp2 -1687,ic 000074 = 516000000003 003324 aa 6 00124 2521 00 spri2 pr6|84 003325 aa 774567 3520 04 epp2 -1673,ic 000114 = 464000000000 003326 aa 6 00126 2521 00 spri2 pr6|86 003327 aa 774546 3520 04 epp2 -1690,ic 000075 = 404000000030 003330 aa 6 00130 2521 00 spri2 pr6|88 003331 aa 774552 3520 04 epp2 -1686,ic 000103 = 404000000043 003332 aa 6 00132 2521 00 spri2 pr6|90 003333 aa 6 00102 6211 00 eax1 pr6|66 003334 aa 030000 4310 07 fld 12288,dl 003335 la 4 00052 3521 20 epp2 pr4|42,* initiate_file_ 003336 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 219 if code ^= 0 then call admin_gate_$syserr_error_code (BEEP, code, "RCP: Cannot initiate journal ^a.", pathname_ (journal_dir, current_journal_name)); 003337 aa 6 00032 3735 20 epp7 pr6|26,* 003340 aa 7 00002 2361 20 ldq pr7|2,* code 003341 aa 000053 6000 04 tze 43,ic 003414 003342 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003343 aa 774632 00 0040 desc9a -1638,32 000174 = 122103120072 003344 aa 6 00102 00 0040 desc9a pr6|66,32 003345 aa 6 00040 3715 20 epp5 pr6|32,* 003346 aa 5 00105 3521 00 epp2 pr5|69 journal_dir 003347 aa 6 00210 2521 00 spri2 pr6|136 003350 aa 5 00235 3521 00 epp2 pr5|157 current_journal_name 003351 aa 6 00212 2521 00 spri2 pr6|138 003352 aa 6 00134 3521 00 epp2 pr6|92 003353 aa 6 00214 2521 00 spri2 pr6|140 003354 aa 774531 3520 04 epp2 -1703,ic 000105 = 526000000250 003355 aa 6 00216 2521 00 spri2 pr6|142 003356 aa 6 00222 2521 00 spri2 pr6|146 003357 aa 774530 3520 04 epp2 -1704,ic 000107 = 526000000040 003360 aa 6 00220 2521 00 spri2 pr6|144 003361 aa 6 00206 6211 00 eax1 pr6|134 003362 aa 014000 4310 07 fld 6144,dl 003363 aa 6 00044 3701 20 epp4 pr6|36,* 003364 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 003365 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 003366 aa 774523 3520 04 epp2 -1709,ic 000111 = 000000000003 003367 aa 6 00226 2521 00 spri2 pr6|150 003370 aa 6 00032 3735 20 epp7 pr6|26,* 003371 aa 7 00002 3521 20 epp2 pr7|2,* code 003372 aa 6 00230 2521 00 spri2 pr6|152 003373 aa 6 00102 3521 00 epp2 pr6|66 003374 aa 6 00232 2521 00 spri2 pr6|154 003375 aa 6 00134 3521 00 epp2 pr6|92 003376 aa 6 00234 2521 00 spri2 pr6|156 003377 aa 774514 3520 04 epp2 -1716,ic 000113 = 404000000021 003400 aa 6 00236 2521 00 spri2 pr6|158 003401 aa 774502 3520 04 epp2 -1726,ic 000103 = 404000000043 003402 aa 6 00240 2521 00 spri2 pr6|160 003403 aa 774475 3520 04 epp2 -1731,ic 000100 = 524000000040 003404 aa 6 00242 2521 00 spri2 pr6|162 003405 aa 774463 3520 04 epp2 -1741,ic 000070 = 524000000250 003406 aa 6 00244 2521 00 spri2 pr6|164 003407 aa 6 00224 6211 00 eax1 pr6|148 003410 aa 020000 4310 07 fld 8192,dl 003411 aa 6 00044 3701 20 epp4 pr6|36,* 003412 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 003413 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 223 return; 003414 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 225 end find_previous_journal; END PROCEDURE find_previous_journal BEGIN PROCEDURE make_new_journal ENTRY TO make_new_journal STATEMENT 1 ON LINE 228 make_new_journal: proc (code); 003415 da 000652200000 003416 aa 000320 6270 00 eax7 208 003417 aa 7 00034 3521 20 epp2 pr7|28,* 003420 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 003421 aa 000002000000 003422 aa 000000000000 STATEMENT 1 ON LINE 239 call ioa_$rsnnl ("rcprm.journal.^a", to_journal_name, (0), unique_chars_ (""b)); 003423 aa 774505 2370 04 ldaq -1723,ic 000130 = 162143160162 155056152157 003424 aa 6 00144 7571 00 staq pr6|100 003425 aa 774505 2370 04 ldaq -1723,ic 000132 = 165162156141 154056136141 003426 aa 6 00146 7571 00 staq pr6|102 003427 aa 6 00150 4501 00 stz pr6|104 003430 aa 6 00151 3521 00 epp2 pr6|105 003431 aa 6 00160 2521 00 spri2 pr6|112 003432 aa 6 00152 3521 00 epp2 pr6|106 003433 aa 6 00162 2521 00 spri2 pr6|114 003434 aa 774431 3520 04 epp2 -1767,ic 000065 = 514000000000 003435 aa 6 00164 2521 00 spri2 pr6|116 003436 aa 774446 3520 04 epp2 -1754,ic 000104 = 526000000017 003437 aa 6 00166 2521 00 spri2 pr6|118 003440 aa 6 00156 6211 00 eax1 pr6|110 003441 aa 010000 4310 07 fld 4096,dl 003442 la 4 00076 3521 20 epp2 pr4|62,* unique_chars_ 003443 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 003444 aa 6 00144 3521 00 epp2 pr6|100 003445 aa 6 00172 2521 00 spri2 pr6|122 003446 aa 6 00110 3521 00 epp2 pr6|72 to_journal_name 003447 aa 6 00174 2521 00 spri2 pr6|124 003450 aa 6 00150 3521 00 epp2 pr6|104 003451 aa 6 00176 2521 00 spri2 pr6|126 003452 aa 6 00152 3521 00 epp2 pr6|106 003453 aa 6 00200 2521 00 spri2 pr6|128 003454 aa 774413 3520 04 epp2 -1781,ic 000067 = 524000000020 003455 aa 6 00202 2521 00 spri2 pr6|130 003456 aa 774431 3520 04 epp2 -1767,ic 000107 = 526000000040 003457 aa 6 00204 2521 00 spri2 pr6|132 003460 aa 774406 3520 04 epp2 -1786,ic 000066 = 404000000005 003461 aa 6 00206 2521 00 spri2 pr6|134 003462 aa 774402 3520 04 epp2 -1790,ic 000064 = 524000000017 003463 aa 6 00210 2521 00 spri2 pr6|136 003464 aa 6 00170 6211 00 eax1 pr6|120 003465 aa 020000 4310 07 fld 8192,dl 003466 aa 6 00044 3701 20 epp4 pr6|36,* 003467 la 4 00054 3521 20 epp2 pr4|44,* ioa_$rsnnl 003470 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 241 if journalp ^= null then do; 003471 aa 6 00040 3735 20 epp7 pr6|32,* 003472 aa 7 00326 2371 00 ldaq pr7|214 journalp 003473 aa 774431 6770 04 eraq -1767,ic 000124 = 077777000043 000001000000 003474 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003475 aa 000076 6000 04 tze 62,ic 003573 STATEMENT 1 ON LINE 246 from_journal_name = journal.own_name; 003476 aa 7 00326 3715 20 epp5 pr7|214,* journalp 003477 aa 000 100 100 500 mlr (pr),(pr),fill(000) 003500 aa 5 00020 00 0040 desc9a pr5|16,32 journal.own_name 003501 aa 6 00100 00 0040 desc9a pr6|64,32 from_journal_name STATEMENT 1 ON LINE 247 journal.subsequent_journal_name = to_journal_name; 003502 aa 000 100 100 500 mlr (pr),(pr),fill(000) 003503 aa 6 00110 00 0040 desc9a pr6|72,32 to_journal_name 003504 aa 5 00030 00 0040 desc9a pr5|24,32 journal.subsequent_journal_name STATEMENT 1 ON LINE 248 prev_time = journal.own_last_transaction_time; 003505 aa 5 00006 2371 00 ldaq pr5|6 journal.own_last_transaction_time 003506 aa 7 00160 7571 00 staq pr7|112 prev_time STATEMENT 1 ON LINE 250 call hcs_$chname_file (journal_dir, DEFAULT_JOURNAL_NAME, DEFAULT_JOURNAL_NAME, "", code); 003507 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 003510 aa 6 00214 2521 00 spri2 pr6|140 003511 aa 774334 3520 04 epp2 -1828,ic 000045 = 162143160162 003512 aa 6 00216 2521 00 spri2 pr6|142 003513 aa 6 00220 2521 00 spri2 pr6|144 003514 aa 6 00150 3521 00 epp2 pr6|104 003515 aa 6 00222 2521 00 spri2 pr6|146 003516 aa 6 00032 3535 20 epp3 pr6|26,* 003517 aa 3 00002 3521 20 epp2 pr3|2,* code 003520 aa 6 00224 2521 00 spri2 pr6|148 003521 aa 774364 3520 04 epp2 -1804,ic 000105 = 526000000250 003522 aa 6 00226 2521 00 spri2 pr6|150 003523 aa 774340 3520 04 epp2 -1824,ic 000063 = 526000000015 003524 aa 6 00230 2521 00 spri2 pr6|152 003525 aa 6 00232 2521 00 spri2 pr6|154 003526 aa 774334 3520 04 epp2 -1828,ic 000062 = 524000000000 003527 aa 6 00234 2521 00 spri2 pr6|156 003530 aa 774353 3520 04 epp2 -1813,ic 000103 = 404000000043 003531 aa 6 00236 2521 00 spri2 pr6|158 003532 aa 6 00212 6211 00 eax1 pr6|138 003533 aa 024000 4310 07 fld 10240,dl 003534 aa 6 00044 3701 20 epp4 pr6|36,* 003535 la 4 00042 3521 20 epp2 pr4|34,* hcs_$chname_file 003536 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 252 if code ^= 0 then return; 003537 aa 6 00032 3735 20 epp7 pr6|26,* 003540 aa 7 00002 2361 20 ldq pr7|2,* code 003541 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 255 call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 003542 aa 6 00150 4501 00 stz pr6|104 003543 aa 6 00151 4501 00 stz pr6|105 003544 aa 6 00040 3715 20 epp5 pr6|32,* 003545 aa 5 00326 3521 00 epp2 pr5|214 journalp 003546 aa 6 00172 2521 00 spri2 pr6|122 003547 aa 6 00150 3521 00 epp2 pr6|104 003550 aa 6 00174 2521 00 spri2 pr6|124 003551 aa 774227 3520 04 epp2 -1897,ic 000000 = 100000000000 003552 aa 6 00176 2521 00 spri2 pr6|126 003553 aa 6 00151 3521 00 epp2 pr6|105 003554 aa 6 00200 2521 00 spri2 pr6|128 003555 aa 774337 3520 04 epp2 -1825,ic 000114 = 464000000000 003556 aa 6 00202 2521 00 spri2 pr6|130 003557 aa 774316 3520 04 epp2 -1842,ic 000075 = 404000000030 003560 aa 6 00204 2521 00 spri2 pr6|132 003561 aa 774313 3520 04 epp2 -1845,ic 000074 = 516000000003 003562 aa 6 00206 2521 00 spri2 pr6|134 003563 aa 774320 3520 04 epp2 -1840,ic 000103 = 404000000043 003564 aa 6 00210 2521 00 spri2 pr6|136 003565 aa 6 00170 6211 00 eax1 pr6|120 003566 aa 020000 4310 07 fld 8192,dl 003567 aa 6 00044 3701 20 epp4 pr6|36,* 003570 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 003571 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 256 end; 003572 aa 000055 7100 04 tra 45,ic 003647 STATEMENT 1 ON LINE 258 else do; STATEMENT 1 ON LINE 259 from_journal_name = ""; 003573 aa 040 100 100 400 mlr (),(pr),fill(040) 003574 aa 000000 00 0000 desc9a 0,0 003575 aa 6 00100 00 0040 desc9a pr6|64,32 from_journal_name STATEMENT 1 ON LINE 260 prev_time = 0; 003576 aa 774322 2370 04 ldaq -1838,ic 000120 = 000000000000 000000000000 003577 aa 7 00160 7571 00 staq pr7|112 prev_time STATEMENT 1 ON LINE 261 call admin_gate_$syserr (LOG, "RCP: Creating ^a.", pathname_ (journal_dir, DEFAULT_JOURNAL_NAME)); 003600 aa 774344 2370 04 ldaq -1820,ic 000144 = 122103120072 040103162145 003601 aa 6 00156 7571 00 staq pr6|110 003602 aa 774344 2370 04 ldaq -1820,ic 000146 = 141164151156 147040136141 003603 aa 6 00160 7571 00 staq pr6|112 003604 aa 056000 2350 03 lda 23552,du 003605 aa 6 00162 7551 00 sta pr6|114 003606 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 003607 aa 6 00172 2521 00 spri2 pr6|122 003610 aa 774235 3520 04 epp2 -1891,ic 000045 = 162143160162 003611 aa 6 00174 2521 00 spri2 pr6|124 003612 aa 6 00240 3521 00 epp2 pr6|160 003613 aa 6 00176 2521 00 spri2 pr6|126 003614 aa 774271 3520 04 epp2 -1863,ic 000105 = 526000000250 003615 aa 6 00200 2521 00 spri2 pr6|128 003616 aa 6 00204 2521 00 spri2 pr6|132 003617 aa 774244 3520 04 epp2 -1884,ic 000063 = 526000000015 003620 aa 6 00202 2521 00 spri2 pr6|130 003621 aa 6 00170 6211 00 eax1 pr6|120 003622 aa 014000 4310 07 fld 6144,dl 003623 aa 6 00044 3701 20 epp4 pr6|36,* 003624 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 003625 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 003626 aa 774254 3520 04 epp2 -1876,ic 000102 = 000000000004 003627 aa 6 00172 2521 00 spri2 pr6|122 003630 aa 6 00156 3521 00 epp2 pr6|110 003631 aa 6 00174 2521 00 spri2 pr6|124 003632 aa 6 00240 3521 00 epp2 pr6|160 003633 aa 6 00176 2521 00 spri2 pr6|126 003634 aa 774257 3520 04 epp2 -1873,ic 000113 = 404000000021 003635 aa 6 00200 2521 00 spri2 pr6|128 003636 aa 774240 3520 04 epp2 -1888,ic 000076 = 524000000021 003637 aa 6 00202 2521 00 spri2 pr6|130 003640 aa 774230 3520 04 epp2 -1896,ic 000070 = 524000000250 003641 aa 6 00204 2521 00 spri2 pr6|132 003642 aa 6 00170 6211 00 eax1 pr6|120 003643 aa 014000 4310 07 fld 6144,dl 003644 aa 6 00044 3701 20 epp4 pr6|36,* 003645 la 4 00030 3521 20 epp2 pr4|24,* admin_gate_$syserr 003646 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 262 end; STATEMENT 1 ON LINE 264 unspec (cbi) = ""b; 003647 aa 000 100 100 400 mlr (),(pr),fill(000) 003650 aa 000000 00 0000 desc9a 0,0 003651 aa 6 00120 00 0114 desc9a pr6|80,76 STATEMENT 1 ON LINE 265 cbi.version = create_branch_version_2; 003652 aa 000002 2360 07 ldq 2,dl 003653 aa 6 00120 7561 00 stq pr6|80 cbi.version STATEMENT 1 ON LINE 266 cbi.mode = RW_ACCESS; 003654 aa 500000 2350 03 lda 163840,du 003655 aa 6 00122 6751 00 era pr6|82 cbi.mode 003656 aa 0 00006 3751 00 ana pr0|6 = 700000000000 003657 aa 6 00122 6551 00 ersa pr6|82 cbi.mode STATEMENT 1 ON LINE 267 cbi.rings (*) = get_ring_ (); 003660 aa 6 00151 3521 00 epp2 pr6|105 003661 aa 6 00146 2521 00 spri2 pr6|102 003662 aa 6 00144 6211 00 eax1 pr6|100 003663 aa 004000 4310 07 fld 2048,dl 003664 aa 6 00044 3701 20 epp4 pr6|36,* 003665 la 4 00040 3521 20 epp2 pr4|32,* get_ring_ 003666 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 003667 aa 000001 2360 07 ldq 1,dl 003670 aa 6 00143 7561 00 stq pr6|99 003671 aa 000000 0110 03 nop 0,du 003672 aa 6 00151 2361 00 ldq pr6|105 003673 aa 6 00143 7271 00 lxl7 pr6|99 003674 aa 6 00122 7561 17 stq pr6|82,7 cbi.rings 003675 aa 6 00143 2361 00 ldq pr6|99 003676 aa 6 00143 0541 00 aos pr6|99 003677 aa 000003 1160 07 cmpq 3,dl 003700 aa 777772 6040 04 tmi -6,ic 003672 STATEMENT 1 ON LINE 268 cbi.userid = "*.*.*"; 003701 aa 040 100 100 404 mlr (ic),(pr),fill(040) 003702 aa 774215 00 0005 desc9a -1907,5 000116 = 052056052056 003703 aa 6 00126 00 0040 desc9a pr6|86,32 cbi.userid STATEMENT 1 ON LINE 269 cbi.access_class = get_max_authorization_ (); 003704 aa 6 00140 3521 00 epp2 pr6|96 cbi.access_class 003705 aa 6 00154 2521 00 spri2 pr6|108 003706 aa 6 00152 6211 00 eax1 pr6|106 003707 aa 004000 4310 07 fld 2048,dl 003710 aa 6 00044 3701 20 epp4 pr6|36,* 003711 la 4 00036 3521 20 epp2 pr4|30,* get_max_authorization_ 003712 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 270 cbi.priv_upgrade_sw = (cbi.rings (3) = 1); 003713 aa 6 00125 2361 00 ldq pr6|85 cbi.rings 003714 aa 000001 1160 07 cmpq 1,dl 003715 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 003716 aa 000003 7710 00 arl 3 003717 aa 6 00121 6751 00 era pr6|81 cbi.priv_upgrade_sw 003720 aa 040000 3750 03 ana 16384,du 003721 aa 6 00121 6551 00 ersa pr6|81 cbi.priv_upgrade_sw STATEMENT 1 ON LINE 271 cbi.parent_ac_sw = ^cbi.priv_upgrade_sw; 003722 aa 6 00121 2351 00 lda pr6|81 cbi.priv_upgrade_sw 003723 aa 000003 7350 00 als 3 003724 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 003725 aa 0 00002 6751 00 era pr0|2 = 400000000000 003726 aa 000004 7710 00 arl 4 003727 aa 6 00121 6751 00 era pr6|81 cbi.parent_ac_sw 003730 aa 020000 3750 03 ana 8192,du 003731 aa 6 00121 6551 00 ersa pr6|81 cbi.parent_ac_sw STATEMENT 1 ON LINE 273 call rcprm_registry_util_$turn_on_privs (privileges_string); 003732 aa 6 00040 3735 20 epp7 pr6|32,* 003733 aa 7 00162 3521 00 epp2 pr7|114 privileges_string 003734 aa 6 00146 2521 00 spri2 pr6|102 003735 aa 6 00144 6211 00 eax1 pr6|100 003736 aa 004000 4310 07 fld 2048,dl 003737 aa 6 00044 3701 20 epp4 pr6|36,* 003740 la 4 00072 3521 20 epp2 pr4|58,* rcprm_registry_util_$turn_on_privs 003741 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 274 call hcs_$create_branch_ (journal_dir, to_journal_name, addr (cbi), code); 003742 aa 6 00120 3735 00 epp7 pr6|80 cbi 003743 aa 6 00312 6535 00 spri7 pr6|202 003744 aa 6 00040 3715 20 epp5 pr6|32,* 003745 aa 5 00105 3521 00 epp2 pr5|69 journal_dir 003746 aa 6 00172 2521 00 spri2 pr6|122 003747 aa 6 00110 3521 00 epp2 pr6|72 to_journal_name 003750 aa 6 00174 2521 00 spri2 pr6|124 003751 aa 6 00312 3521 00 epp2 pr6|202 003752 aa 6 00176 2521 00 spri2 pr6|126 003753 aa 6 00032 3535 20 epp3 pr6|26,* 003754 aa 3 00002 3521 20 epp2 pr3|2,* code 003755 aa 6 00200 2521 00 spri2 pr6|128 003756 aa 774127 3520 04 epp2 -1961,ic 000105 = 526000000250 003757 aa 6 00202 2521 00 spri2 pr6|130 003760 aa 774127 3520 04 epp2 -1961,ic 000107 = 526000000040 003761 aa 6 00204 2521 00 spri2 pr6|132 003762 aa 774132 3520 04 epp2 -1958,ic 000114 = 464000000000 003763 aa 6 00206 2521 00 spri2 pr6|134 003764 aa 774117 3520 04 epp2 -1969,ic 000103 = 404000000043 003765 aa 6 00210 2521 00 spri2 pr6|136 003766 aa 6 00170 6211 00 eax1 pr6|120 003767 aa 020000 4310 07 fld 8192,dl 003770 aa 6 00044 3701 20 epp4 pr6|36,* 003771 la 4 00046 3521 20 epp2 pr4|38,* hcs_$create_branch_ 003772 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 275 call rcprm_registry_util_$turn_off_privs (privileges_string); 003773 aa 6 00040 3735 20 epp7 pr6|32,* 003774 aa 7 00162 3521 00 epp2 pr7|114 privileges_string 003775 aa 6 00154 2521 00 spri2 pr6|108 003776 aa 6 00152 6211 00 eax1 pr6|106 003777 aa 004000 4310 07 fld 2048,dl 004000 aa 6 00044 3701 20 epp4 pr6|36,* 004001 la 4 00070 3521 20 epp2 pr4|56,* rcprm_registry_util_$turn_off_privs 004002 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 276 if code ^= 0 then return; 004003 aa 6 00032 3735 20 epp7 pr6|26,* 004004 aa 7 00002 2361 20 ldq pr7|2,* code 004005 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 279 call admin_gate_$reclassify_sys_seg (journal_dir, to_journal_name, sys_info$access_class_ceiling, code); 004006 aa 6 00040 3715 20 epp5 pr6|32,* 004007 aa 5 00105 3521 00 epp2 pr5|69 journal_dir 004010 aa 6 00172 2521 00 spri2 pr6|122 004011 aa 6 00110 3521 00 epp2 pr6|72 to_journal_name 004012 aa 6 00174 2521 00 spri2 pr6|124 004013 aa 6 00044 3701 20 epp4 pr6|36,* 004014 la 4 00100 3521 20 epp2 pr4|64,* sys_info$access_class_ceiling 004015 aa 6 00176 2521 00 spri2 pr6|126 004016 aa 7 00002 3521 20 epp2 pr7|2,* code 004017 aa 6 00200 2521 00 spri2 pr6|128 004020 aa 774065 3520 04 epp2 -1995,ic 000105 = 526000000250 004021 aa 6 00202 2521 00 spri2 pr6|130 004022 aa 774065 3520 04 epp2 -1995,ic 000107 = 526000000040 004023 aa 6 00204 2521 00 spri2 pr6|132 004024 aa 774062 3520 04 epp2 -1998,ic 000106 = 514000000110 004025 aa 6 00206 2521 00 spri2 pr6|134 004026 aa 774055 3520 04 epp2 -2003,ic 000103 = 404000000043 004027 aa 6 00210 2521 00 spri2 pr6|136 004030 aa 6 00170 6211 00 eax1 pr6|120 004031 aa 020000 4310 07 fld 8192,dl 004032 la 4 00032 3521 20 epp2 pr4|26,* admin_gate_$reclassify_sys_seg 004033 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 281 if code ^= 0 & code ^= error_table_$action_not_performed then return; 004034 aa 6 00032 3735 20 epp7 pr6|26,* 004035 aa 7 00002 2361 20 ldq pr7|2,* code 004036 aa 000004 6000 04 tze 4,ic 004042 004037 aa 6 00044 3701 20 epp4 pr6|36,* 004040 la 4 00022 1161 20 cmpq pr4|18,* error_table_$action_not_performed 004041 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 284 call hcs_$chname_file (journal_dir, to_journal_name, "", DEFAULT_JOURNAL_NAME, code); 004042 aa 6 00040 3715 20 epp5 pr6|32,* 004043 aa 5 00105 3521 00 epp2 pr5|69 journal_dir 004044 aa 6 00214 2521 00 spri2 pr6|140 004045 aa 6 00110 3521 00 epp2 pr6|72 to_journal_name 004046 aa 6 00216 2521 00 spri2 pr6|142 004047 aa 6 00151 3521 00 epp2 pr6|105 004050 aa 6 00220 2521 00 spri2 pr6|144 004051 aa 773774 3520 04 epp2 -2052,ic 000045 = 162143160162 004052 aa 6 00222 2521 00 spri2 pr6|146 004053 aa 7 00002 3521 20 epp2 pr7|2,* code 004054 aa 6 00224 2521 00 spri2 pr6|148 004055 aa 774030 3520 04 epp2 -2024,ic 000105 = 526000000250 004056 aa 6 00226 2521 00 spri2 pr6|150 004057 aa 774030 3520 04 epp2 -2024,ic 000107 = 526000000040 004060 aa 6 00230 2521 00 spri2 pr6|152 004061 aa 774001 3520 04 epp2 -2047,ic 000062 = 524000000000 004062 aa 6 00232 2521 00 spri2 pr6|154 004063 aa 774000 3520 04 epp2 -2048,ic 000063 = 526000000015 004064 aa 6 00234 2521 00 spri2 pr6|156 004065 aa 774016 3520 04 epp2 -2034,ic 000103 = 404000000043 004066 aa 6 00236 2521 00 spri2 pr6|158 004067 aa 6 00212 6211 00 eax1 pr6|138 004070 aa 024000 4310 07 fld 10240,dl 004071 aa 6 00044 3701 20 epp4 pr6|36,* 004072 la 4 00042 3521 20 epp2 pr4|34,* hcs_$chname_file 004073 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 286 if code ^= 0 then return; 004074 aa 6 00032 3735 20 epp7 pr6|26,* 004075 aa 7 00002 2361 20 ldq pr7|2,* code 004076 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 289 call initiate_file_ (journal_dir, DEFAULT_JOURNAL_NAME, RW_ACCESS, journalp, (0), code); 004077 aa 6 00151 4501 00 stz pr6|105 004100 aa 6 00040 3715 20 epp5 pr6|32,* 004101 aa 5 00105 3521 00 epp2 pr5|69 journal_dir 004102 aa 6 00242 2521 00 spri2 pr6|162 004103 aa 773742 3520 04 epp2 -2078,ic 000045 = 162143160162 004104 aa 6 00244 2521 00 spri2 pr6|164 004105 aa 773674 3520 04 epp2 -2116,ic 000001 = 500000000000 004106 aa 6 00246 2521 00 spri2 pr6|166 004107 aa 5 00326 3521 00 epp2 pr5|214 journalp 004110 aa 6 00250 2521 00 spri2 pr6|168 004111 aa 6 00151 3521 00 epp2 pr6|105 004112 aa 6 00252 2521 00 spri2 pr6|170 004113 aa 7 00002 3521 20 epp2 pr7|2,* code 004114 aa 6 00254 2521 00 spri2 pr6|172 004115 aa 773770 3520 04 epp2 -2056,ic 000105 = 526000000250 004116 aa 6 00256 2521 00 spri2 pr6|174 004117 aa 773744 3520 04 epp2 -2076,ic 000063 = 526000000015 004120 aa 6 00260 2521 00 spri2 pr6|176 004121 aa 773753 3520 04 epp2 -2069,ic 000074 = 516000000003 004122 aa 6 00262 2521 00 spri2 pr6|178 004123 aa 773771 3520 04 epp2 -2055,ic 000114 = 464000000000 004124 aa 6 00264 2521 00 spri2 pr6|180 004125 aa 773750 3520 04 epp2 -2072,ic 000075 = 404000000030 004126 aa 6 00266 2521 00 spri2 pr6|182 004127 aa 773754 3520 04 epp2 -2068,ic 000103 = 404000000043 004130 aa 6 00270 2521 00 spri2 pr6|184 004131 aa 6 00240 6211 00 eax1 pr6|160 004132 aa 030000 4310 07 fld 12288,dl 004133 aa 6 00044 3701 20 epp4 pr6|36,* 004134 la 4 00052 3521 20 epp2 pr4|42,* initiate_file_ 004135 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 290 if code ^= 0 then return; 004136 aa 6 00032 3735 20 epp7 pr6|26,* 004137 aa 7 00002 2361 20 ldq pr7|2,* code 004140 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 293 journal.version = 0; 004141 aa 6 00040 3715 20 epp5 pr6|32,* 004142 aa 5 00326 4501 20 stz pr5|214,* journal.version STATEMENT 1 ON LINE 294 journal.next_free_word = currentsize (journal); 004143 aa 000100 2360 07 ldq 64,dl 004144 aa 5 00326 3535 20 epp3 pr5|214,* journalp 004145 aa 3 00001 7561 00 stq pr3|1 journal.next_free_word STATEMENT 1 ON LINE 295 journal.previous_journal_last_transaction_time = prev_time; 004146 aa 5 00160 2371 00 ldaq pr5|112 prev_time 004147 aa 3 00002 7571 00 staq pr3|2 journal.previous_journal_last_transaction_time STATEMENT 1 ON LINE 296 journal.previous_journal_name = from_journal_name; 004150 aa 000 100 100 500 mlr (pr),(pr),fill(000) 004151 aa 6 00100 00 0040 desc9a pr6|64,32 from_journal_name 004152 aa 3 00010 00 0040 desc9a pr3|8,32 journal.previous_journal_name STATEMENT 1 ON LINE 297 journal.own_name = to_journal_name; 004153 aa 000 100 100 500 mlr (pr),(pr),fill(000) 004154 aa 6 00110 00 0040 desc9a pr6|72,32 to_journal_name 004155 aa 3 00020 00 0040 desc9a pr3|16,32 journal.own_name STATEMENT 1 ON LINE 298 journal.subsequent_journal_name = ""; 004156 aa 040 100 100 400 mlr (),(pr),fill(040) 004157 aa 000000 00 0000 desc9a 0,0 004160 aa 3 00030 00 0040 desc9a pr3|24,32 journal.subsequent_journal_name STATEMENT 1 ON LINE 300 return; 004161 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 302 end make_new_journal; END PROCEDURE make_new_journal BEGIN PROCEDURE find_next_entry ENTRY TO find_next_entry STATEMENT 1 ON LINE 671 find_next_entry: proc; 004162 aa 6 00114 6501 00 spri4 pr6|76 STATEMENT 1 ON LINE 678 je_ptr = addrel (je_ptr, currentsize (journal_entry)); 004163 aa 6 00040 3735 20 epp7 pr6|32,* 004164 aa 7 00330 3715 20 epp5 pr7|216,* je_ptr 004165 aa 5 00002 2361 00 ldq pr5|2 journal_entry.n_doublewords 004166 aa 000001 7360 00 qls 1 004167 aa 000010 0760 07 adq 8,dl 004170 aa 5 00000 5075 06 awd pr5|0,ql 004171 aa 7 00330 6515 00 spri5 pr7|216 je_ptr STATEMENT 1 ON LINE 681 if binary (rel (je_ptr)) < max_seg_size then if journal_entry.clock_time > 0 then return; 004172 aa 5 00000 6351 00 eaa pr5|0 je_ptr 004173 aa 000066 7730 00 lrl 54 004174 aa 6 00326 7571 00 staq pr6|214 004175 aa 6 00044 3701 20 epp4 pr6|36,* 004176 ia 4 00010 2351 00 lda pr4|8 max_seg_size 004177 aa 000044 7330 00 lrs 36 004200 aa 6 00326 1171 00 cmpaq pr6|214 004201 aa 000004 6044 04 tmoz 4,ic 004205 004202 aa 5 00000 2371 00 ldaq pr5|0 journal_entry.clock_time 004203 aa 000002 6044 04 tmoz 2,ic 004205 004204 aa 6 00114 6101 00 rtcd pr6|76 STATEMENT 1 ON LINE 685 new_name = journal.subsequent_journal_name; 004205 aa 7 00326 3535 20 epp3 pr7|214,* journalp 004206 aa 000 100 100 500 mlr (pr),(pr),fill(000) 004207 aa 3 00030 00 0040 desc9a pr3|24,32 journal.subsequent_journal_name 004210 aa 6 00122 00 0040 desc9a pr6|82,32 new_name STATEMENT 1 ON LINE 687 call terminate_file_ (journalp, (0), TERM_FILE_TERM, code); 004211 aa 6 00325 4501 00 stz pr6|213 004212 aa 7 00326 3521 00 epp2 pr7|214 journalp 004213 aa 6 00332 2521 00 spri2 pr6|218 004214 aa 6 00325 3521 00 epp2 pr6|213 004215 aa 6 00334 2521 00 spri2 pr6|220 004216 aa 773562 3520 04 epp2 -2190,ic 000000 = 100000000000 004217 aa 6 00336 2521 00 spri2 pr6|222 004220 aa 7 00342 3521 20 epp2 pr7|226,* code 004221 aa 6 00340 2521 00 spri2 pr6|224 004222 aa 773672 3520 04 epp2 -2118,ic 000114 = 464000000000 004223 aa 6 00342 2521 00 spri2 pr6|226 004224 aa 773651 3520 04 epp2 -2135,ic 000075 = 404000000030 004225 aa 6 00344 2521 00 spri2 pr6|228 004226 aa 773646 3520 04 epp2 -2138,ic 000074 = 516000000003 004227 aa 6 00346 2521 00 spri2 pr6|230 004230 aa 773653 3520 04 epp2 -2133,ic 000103 = 404000000043 004231 aa 6 00350 2521 00 spri2 pr6|232 004232 aa 6 00330 6211 00 eax1 pr6|216 004233 aa 020000 4310 07 fld 8192,dl 004234 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 004235 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 688 if code ^= 0 then goto error_return; 004236 aa 6 00040 3735 20 epp7 pr6|32,* 004237 aa 7 00342 2361 20 ldq pr7|226,* code 004240 aa 000004 6000 04 tze 4,ic 004244 004241 aa 776445 3520 04 epp2 -731,ic 002706 = 000000235007 004242 aa 000001 7270 07 lxl7 1,dl 004243 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 691 if new_name = "" then do; 004244 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 004245 aa 6 00122 00 0040 desc9a pr6|82,32 new_name 004246 aa 000672 00 0000 desc9a 442,0 005136 = 000010000000 004247 aa 000005 6010 04 tnz 5,ic 004254 STATEMENT 1 ON LINE 692 eoj = "1"b; 004250 aa 400000 2350 03 lda 131072,du 004251 aa 6 00040 3735 20 epp7 pr6|32,* 004252 aa 7 00262 7551 00 sta pr7|178 eoj STATEMENT 1 ON LINE 693 return; 004253 aa 6 00114 6101 00 rtcd pr6|76 STATEMENT 1 ON LINE 694 end; STATEMENT 1 ON LINE 695 journal_dir = pathname_ (system_dir, "journals"); 004254 aa 773646 2370 04 ldaq -2138,ic 000122 = 152157165162 156141154163 004255 aa 6 00326 7571 00 staq pr6|214 004256 aa 6 00040 3735 20 epp7 pr6|32,* 004257 aa 7 00163 3521 00 epp2 pr7|115 system_dir 004260 aa 6 00332 2521 00 spri2 pr6|218 004261 aa 6 00326 3521 00 epp2 pr6|214 004262 aa 6 00334 2521 00 spri2 pr6|220 004263 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 004264 aa 6 00336 2521 00 spri2 pr6|222 004265 aa 773620 3520 04 epp2 -2160,ic 000105 = 526000000250 004266 aa 6 00340 2521 00 spri2 pr6|224 004267 aa 6 00344 2521 00 spri2 pr6|228 004270 aa 773601 3520 04 epp2 -2175,ic 000071 = 524000000010 004271 aa 6 00342 2521 00 spri2 pr6|226 004272 aa 6 00330 6211 00 eax1 pr6|216 004273 aa 014000 4310 07 fld 6144,dl 004274 aa 6 00044 3701 20 epp4 pr6|36,* 004275 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 004276 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 696 call initiate_file_ (journal_dir, new_name, RW_ACCESS, journalp, (0), code); 004277 aa 6 00325 4501 00 stz pr6|213 004300 aa 6 00040 3735 20 epp7 pr6|32,* 004301 aa 7 00105 3521 00 epp2 pr7|69 journal_dir 004302 aa 6 00354 2521 00 spri2 pr6|236 004303 aa 6 00122 3521 00 epp2 pr6|82 new_name 004304 aa 6 00356 2521 00 spri2 pr6|238 004305 aa 773474 3520 04 epp2 -2244,ic 000001 = 500000000000 004306 aa 6 00360 2521 00 spri2 pr6|240 004307 aa 7 00326 3521 00 epp2 pr7|214 journalp 004310 aa 6 00362 2521 00 spri2 pr6|242 004311 aa 6 00325 3521 00 epp2 pr6|213 004312 aa 6 00364 2521 00 spri2 pr6|244 004313 aa 7 00342 3521 20 epp2 pr7|226,* code 004314 aa 6 00366 2521 00 spri2 pr6|246 004315 aa 773570 3520 04 epp2 -2184,ic 000105 = 526000000250 004316 aa 6 00370 2521 00 spri2 pr6|248 004317 aa 773570 3520 04 epp2 -2184,ic 000107 = 526000000040 004320 aa 6 00372 2521 00 spri2 pr6|250 004321 aa 773553 3520 04 epp2 -2197,ic 000074 = 516000000003 004322 aa 6 00374 2521 00 spri2 pr6|252 004323 aa 773571 3520 04 epp2 -2183,ic 000114 = 464000000000 004324 aa 6 00376 2521 00 spri2 pr6|254 004325 aa 773550 3520 04 epp2 -2200,ic 000075 = 404000000030 004326 aa 6 00400 2521 00 spri2 pr6|256 004327 aa 773554 3520 04 epp2 -2196,ic 000103 = 404000000043 004330 aa 6 00402 2521 00 spri2 pr6|258 004331 aa 6 00352 6211 00 eax1 pr6|234 004332 aa 030000 4310 07 fld 12288,dl 004333 aa 6 00044 3701 20 epp4 pr6|36,* 004334 la 4 00052 3521 20 epp2 pr4|42,* initiate_file_ 004335 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 697 if code ^= 0 then do; 004336 aa 6 00040 3735 20 epp7 pr6|32,* 004337 aa 7 00342 2361 20 ldq pr7|226,* code 004340 aa 000055 6000 04 tze 45,ic 004415 STATEMENT 1 ON LINE 698 call admin_gate_$syserr_error_code (BEEP, code, "RCP: Cannot initiate journal ^a.", pathname_ (system_dir, new_name)); 004341 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004342 aa 773633 00 0040 desc9a -2149,32 000174 = 122103120072 004343 aa 6 00330 00 0040 desc9a pr6|216,32 004344 aa 7 00163 3521 00 epp2 pr7|115 system_dir 004345 aa 6 00354 2521 00 spri2 pr6|236 004346 aa 6 00122 3521 00 epp2 pr6|82 new_name 004347 aa 6 00356 2521 00 spri2 pr6|238 004350 aa 6 00404 3521 00 epp2 pr6|260 004351 aa 6 00360 2521 00 spri2 pr6|240 004352 aa 773533 3520 04 epp2 -2213,ic 000105 = 526000000250 004353 aa 6 00362 2521 00 spri2 pr6|242 004354 aa 6 00366 2521 00 spri2 pr6|246 004355 aa 773532 3520 04 epp2 -2214,ic 000107 = 526000000040 004356 aa 6 00364 2521 00 spri2 pr6|244 004357 aa 6 00352 6211 00 eax1 pr6|234 004360 aa 014000 4310 07 fld 6144,dl 004361 aa 6 00044 3701 20 epp4 pr6|36,* 004362 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 004363 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004364 aa 773525 3520 04 epp2 -2219,ic 000111 = 000000000003 004365 aa 6 00354 2521 00 spri2 pr6|236 004366 aa 6 00040 3735 20 epp7 pr6|32,* 004367 aa 7 00342 3521 20 epp2 pr7|226,* code 004370 aa 6 00356 2521 00 spri2 pr6|238 004371 aa 6 00330 3521 00 epp2 pr6|216 004372 aa 6 00360 2521 00 spri2 pr6|240 004373 aa 6 00404 3521 00 epp2 pr6|260 004374 aa 6 00362 2521 00 spri2 pr6|242 004375 aa 773516 3520 04 epp2 -2226,ic 000113 = 404000000021 004376 aa 6 00364 2521 00 spri2 pr6|244 004377 aa 773504 3520 04 epp2 -2236,ic 000103 = 404000000043 004400 aa 6 00366 2521 00 spri2 pr6|246 004401 aa 773477 3520 04 epp2 -2241,ic 000100 = 524000000040 004402 aa 6 00370 2521 00 spri2 pr6|248 004403 aa 773465 3520 04 epp2 -2251,ic 000070 = 524000000250 004404 aa 6 00372 2521 00 spri2 pr6|250 004405 aa 6 00352 6211 00 eax1 pr6|234 004406 aa 020000 4310 07 fld 8192,dl 004407 aa 6 00044 3701 20 epp4 pr6|36,* 004410 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 004411 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 700 goto error_return; 004412 aa 776274 3520 04 epp2 -836,ic 002706 = 000000235007 004413 aa 000001 7270 07 lxl7 1,dl 004414 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 701 end; STATEMENT 1 ON LINE 703 je_ptr = pointer (journalp, currentsize (journal)); 004415 aa 7 00326 3521 20 epp2 pr7|214,* journalp 004416 aa 000100 3120 00 eawp2 64 004417 aa 7 00330 2521 00 spri2 pr7|216 je_ptr STATEMENT 1 ON LINE 704 return; 004420 aa 6 00114 6101 00 rtcd pr6|76 STATEMENT 1 ON LINE 705 end find_next_entry; END PROCEDURE find_next_entry BEGIN PROCEDURE clean_up ENTRY TO clean_up STATEMENT 1 ON LINE 708 clean_up: proc (error_matters, code); 004421 da 000660200000 004422 aa 000160 6270 00 eax7 112 004423 aa 7 00034 3521 20 epp2 pr7|28,* 004424 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 004425 aa 000004000000 004426 aa 000000000000 STATEMENT 1 ON LINE 714 if resource_desc_ptr ^= null then call release_temp_segment_ ("rcprm_journalize_", resource_desc_ptr, code); 004427 aa 6 00040 3735 20 epp7 pr6|32,* 004430 aa 7 00332 2371 00 ldaq pr7|218 resource_desc_ptr 004431 aa 773473 6770 04 eraq -2245,ic 000124 = 077777000043 000001000000 004432 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004433 aa 000025 6000 04 tze 21,ic 004460 004434 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004435 aa 773515 00 0024 desc9a -2227,20 000151 = 162143160162 004436 aa 6 00100 00 0024 desc9a pr6|64,20 004437 aa 6 00100 3521 00 epp2 pr6|64 004440 aa 6 00110 2521 00 spri2 pr6|72 004441 aa 7 00332 3521 00 epp2 pr7|218 resource_desc_ptr 004442 aa 6 00112 2521 00 spri2 pr6|74 004443 aa 6 00032 3715 20 epp5 pr6|26,* 004444 aa 5 00004 3521 20 epp2 pr5|4,* code 004445 aa 6 00114 2521 00 spri2 pr6|76 004446 aa 773430 3520 04 epp2 -2280,ic 000076 = 524000000021 004447 aa 6 00116 2521 00 spri2 pr6|78 004450 aa 773444 3520 04 epp2 -2268,ic 000114 = 464000000000 004451 aa 6 00120 2521 00 spri2 pr6|80 004452 aa 773431 3520 04 epp2 -2279,ic 000103 = 404000000043 004453 aa 6 00122 2521 00 spri2 pr6|82 004454 aa 6 00106 6211 00 eax1 pr6|70 004455 aa 014000 4310 07 fld 6144,dl 004456 la 4 00116 3521 20 epp2 pr4|78,* release_temp_segment_ 004457 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 716 if error_matters then if code ^= 0 then goto error_return; 004460 aa 6 00032 3735 20 epp7 pr6|26,* 004461 aa 7 00002 2351 20 lda pr7|2,* error_matters 004462 aa 400000 3150 03 cana 131072,du 004463 aa 000006 6000 04 tze 6,ic 004471 004464 aa 7 00004 2361 20 ldq pr7|4,* code 004465 aa 000004 6000 04 tze 4,ic 004471 004466 aa 776220 3520 04 epp2 -880,ic 002706 = 000000235007 004467 aa 000001 7270 07 lxl7 1,dl 004470 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 720 if journalp ^= null then call terminate_file_ (journalp, (0), TERM_FILE_TERM, (0)); 004471 aa 6 00040 3735 20 epp7 pr6|32,* 004472 aa 7 00326 2371 00 ldaq pr7|214 journalp 004473 aa 773431 6770 04 eraq -2279,ic 000124 = 077777000043 000001000000 004474 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004475 aa 000030 6000 04 tze 24,ic 004525 004476 aa 6 00105 4501 00 stz pr6|69 004477 aa 6 00124 4501 00 stz pr6|84 004500 aa 7 00326 3521 00 epp2 pr7|214 journalp 004501 aa 6 00130 2521 00 spri2 pr6|88 004502 aa 6 00105 3521 00 epp2 pr6|69 004503 aa 6 00132 2521 00 spri2 pr6|90 004504 aa 773274 3520 04 epp2 -2372,ic 000000 = 100000000000 004505 aa 6 00134 2521 00 spri2 pr6|92 004506 aa 6 00124 3521 00 epp2 pr6|84 004507 aa 6 00136 2521 00 spri2 pr6|94 004510 aa 773404 3520 04 epp2 -2300,ic 000114 = 464000000000 004511 aa 6 00140 2521 00 spri2 pr6|96 004512 aa 773363 3520 04 epp2 -2317,ic 000075 = 404000000030 004513 aa 6 00142 2521 00 spri2 pr6|98 004514 aa 773360 3520 04 epp2 -2320,ic 000074 = 516000000003 004515 aa 6 00144 2521 00 spri2 pr6|100 004516 aa 773365 3520 04 epp2 -2315,ic 000103 = 404000000043 004517 aa 6 00146 2521 00 spri2 pr6|102 004520 aa 6 00126 6211 00 eax1 pr6|86 004521 aa 020000 4310 07 fld 8192,dl 004522 aa 6 00044 3701 20 epp4 pr6|36,* 004523 la 4 00074 3521 20 epp2 pr4|60,* terminate_file_ 004524 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 723 if rcp_priv_was_on = 0 then call system_privilege_$rcp_priv_off (0); 004525 aa 6 00040 3735 20 epp7 pr6|32,* 004526 aa 7 00271 2361 00 ldq pr7|185 rcp_priv_was_on 004527 aa 000011 6010 04 tnz 9,ic 004540 004530 aa 6 00124 4501 00 stz pr6|84 004531 aa 6 00124 3521 00 epp2 pr6|84 004532 aa 6 00102 2521 00 spri2 pr6|66 004533 aa 6 00100 6211 00 eax1 pr6|64 004534 aa 004000 4310 07 fld 2048,dl 004535 aa 6 00044 3701 20 epp4 pr6|36,* 004536 la 4 00124 3521 20 epp2 pr4|84,* system_privilege_$rcp_priv_off 004537 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 726 if switch_ptr ^= null then do; 004540 aa 6 00040 3735 20 epp7 pr6|32,* 004541 aa 7 00274 2371 00 ldaq pr7|188 switch_ptr 004542 aa 773362 6770 04 eraq -2318,ic 000124 = 077777000043 000001000000 004543 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004544 aa 000024 6000 04 tze 20,ic 004570 STATEMENT 1 ON LINE 727 call rcprm_registry_util_$release_registry (switch_ptr, code); 004545 aa 7 00274 3521 00 epp2 pr7|188 switch_ptr 004546 aa 6 00110 2521 00 spri2 pr6|72 004547 aa 6 00032 3715 20 epp5 pr6|26,* 004550 aa 5 00004 3521 20 epp2 pr5|4,* code 004551 aa 6 00112 2521 00 spri2 pr6|74 004552 aa 6 00106 6211 00 eax1 pr6|70 004553 aa 010000 4310 07 fld 4096,dl 004554 aa 6 00044 3701 20 epp4 pr6|36,* 004555 la 4 00064 3521 20 epp2 pr4|52,* rcprm_registry_util_$release_registry 004556 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 728 if error_matters then if code ^= 0 then goto error_return; 004557 aa 6 00032 3735 20 epp7 pr6|26,* 004560 aa 7 00002 2351 20 lda pr7|2,* error_matters 004561 aa 400000 3150 03 cana 131072,du 004562 aa 000006 6000 04 tze 6,ic 004570 004563 aa 7 00004 2361 20 ldq pr7|4,* code 004564 aa 000004 6000 04 tze 4,ic 004570 004565 aa 776121 3520 04 epp2 -943,ic 002706 = 000000235007 004566 aa 000001 7270 07 lxl7 1,dl 004567 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 731 end; STATEMENT 1 ON LINE 733 if tsw_attach_ptr ^= null then do; 004570 aa 6 00040 3735 20 epp7 pr6|32,* 004571 aa 7 00302 2371 00 ldaq pr7|194 tsw_attach_ptr 004572 aa 773332 6770 04 eraq -2342,ic 000124 = 077777000043 000001000000 004573 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004574 aa 000024 6000 04 tze 20,ic 004620 STATEMENT 1 ON LINE 734 call rcprm_registry_util_$release_transaction_control_file (tsw_attach_ptr, code); 004575 aa 7 00302 3521 00 epp2 pr7|194 tsw_attach_ptr 004576 aa 6 00110 2521 00 spri2 pr6|72 004577 aa 6 00032 3715 20 epp5 pr6|26,* 004600 aa 5 00004 3521 20 epp2 pr5|4,* code 004601 aa 6 00112 2521 00 spri2 pr6|74 004602 aa 6 00106 6211 00 eax1 pr6|70 004603 aa 010000 4310 07 fld 4096,dl 004604 aa 6 00044 3701 20 epp4 pr6|36,* 004605 la 4 00066 3521 20 epp2 pr4|54,* rcprm_registry_util_$release_transaction_control_file 004606 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 735 if error_matters then if code ^= 0 then goto error_return; 004607 aa 6 00032 3735 20 epp7 pr6|26,* 004610 aa 7 00002 2351 20 lda pr7|2,* error_matters 004611 aa 400000 3150 03 cana 131072,du 004612 aa 000006 6000 04 tze 6,ic 004620 004613 aa 7 00004 2361 20 ldq pr7|4,* code 004614 aa 000004 6000 04 tze 4,ic 004620 004615 aa 776071 3520 04 epp2 -967,ic 002706 = 000000235007 004616 aa 000001 7270 07 lxl7 1,dl 004617 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 738 end; STATEMENT 1 ON LINE 740 call cu_$level_set (prev_level); 004620 aa 6 00040 3735 20 epp7 pr6|32,* 004621 aa 7 00270 3521 00 epp2 pr7|184 prev_level 004622 aa 6 00102 2521 00 spri2 pr6|66 004623 aa 6 00100 6211 00 eax1 pr6|64 004624 aa 004000 4310 07 fld 2048,dl 004625 aa 6 00044 3701 20 epp4 pr6|36,* 004626 la 4 00112 3521 20 epp2 pr4|74,* cu_$level_set 004627 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 742 return; 004630 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 744 end clean_up; END PROCEDURE clean_up BEGIN PROCEDURE rename_bad_journal ENTRY TO rename_bad_journal STATEMENT 1 ON LINE 746 rename_bad_journal: procedure; 004631 aa 6 00354 6501 00 spri4 pr6|236 STATEMENT 1 ON LINE 751 p_code = code; 004632 aa 6 00342 2361 20 ldq pr6|226,* code 004633 aa 6 00362 7561 00 stq pr6|242 p_code STATEMENT 1 ON LINE 753 call hcs_$chname_seg (temp_ptr, current_journal_name, rtrim (current_journal_name) || ".bad", code); 004634 aa 000 000 165 500 tctr (pr) 004635 aa 6 00235 00 0040 desc9a pr6|157,32 current_journal_name 004636 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 004637 aa 6 00056 0001 00 arg pr6|46 004640 aa 6 00056 2361 00 ldq pr6|46 004641 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004642 aa 6 00533 7561 00 stq pr6|347 004643 aa 000040 2360 07 ldq 32,dl 004644 aa 6 00533 1761 00 sbq pr6|347 004645 aa 6 00533 7561 00 stq pr6|347 004646 aa 000004 0760 07 adq 4,dl 004647 aa 6 00534 7561 00 stq pr6|348 004650 aa 524000 2760 03 orq 174080,du 004651 aa 6 00532 7561 00 stq pr6|346 004652 aa 6 00534 2361 00 ldq pr6|348 004653 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 004654 aa 6 00533 2351 00 lda pr6|347 004655 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 004656 aa 6 00235 00 0005 desc9a pr6|157,al current_journal_name 004657 aa 2 00000 00 0005 desc9a pr2|0,al 004660 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 004661 aa 773173 00 0004 desc9a -2437,4 000053 = 056142141144 004662 aa 2 00000 00 0004 desc9a pr2|0,4 004663 aa 6 00546 2521 00 spri2 pr6|358 004664 aa 6 00254 3521 00 epp2 pr6|172 temp_ptr 004665 aa 6 00542 2521 00 spri2 pr6|354 004666 aa 6 00235 3521 00 epp2 pr6|157 current_journal_name 004667 aa 6 00544 2521 00 spri2 pr6|356 004670 aa 6 00342 3521 20 epp2 pr6|226,* code 004671 aa 6 00550 2521 00 spri2 pr6|360 004672 aa 773222 3520 04 epp2 -2414,ic 000114 = 464000000000 004673 aa 6 00552 2521 00 spri2 pr6|362 004674 aa 773213 3520 04 epp2 -2421,ic 000107 = 526000000040 004675 aa 6 00554 2521 00 spri2 pr6|364 004676 aa 6 00532 3521 00 epp2 pr6|346 004677 aa 6 00556 2521 00 spri2 pr6|366 004700 aa 773203 3520 04 epp2 -2429,ic 000103 = 404000000043 004701 aa 6 00560 2521 00 spri2 pr6|368 004702 aa 6 00540 6211 00 eax1 pr6|352 004703 aa 020000 4310 07 fld 8192,dl 004704 aa 6 00044 3701 20 epp4 pr6|36,* 004705 la 4 00044 3521 20 epp2 pr4|36,* hcs_$chname_seg 004706 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 754 if code = 0 then call admin_gate_$syserr_error_code (LOG, p_code, "RCP: Failed to delete old journal ^a. Renamed it to ^a.bad", pathname_ (journal_dir, current_journal_name), current_journal_name); 004707 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 004710 aa 6 00342 2361 20 ldq pr6|226,* code 004711 aa 000056 6010 04 tnz 46,ic 004767 004712 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004713 aa 773346 00 0074 desc9a -2330,60 000260 = 122103120072 004714 aa 6 00540 00 0074 desc9a pr6|352,60 004715 aa 6 00105 3521 00 epp2 pr6|69 journal_dir 004716 aa 6 00636 2521 00 spri2 pr6|414 004717 aa 6 00235 3521 00 epp2 pr6|157 current_journal_name 004720 aa 6 00640 2521 00 spri2 pr6|416 004721 aa 6 00562 3521 00 epp2 pr6|370 004722 aa 6 00642 2521 00 spri2 pr6|418 004723 aa 773162 3520 04 epp2 -2446,ic 000105 = 526000000250 004724 aa 6 00644 2521 00 spri2 pr6|420 004725 aa 6 00650 2521 00 spri2 pr6|424 004726 aa 773161 3520 04 epp2 -2447,ic 000107 = 526000000040 004727 aa 6 00646 2521 00 spri2 pr6|422 004730 aa 6 00634 6211 00 eax1 pr6|412 004731 aa 014000 4310 07 fld 6144,dl 004732 aa 6 00044 3701 20 epp4 pr6|36,* 004733 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 004734 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004735 aa 773145 3520 04 epp2 -2459,ic 000102 = 000000000004 004736 aa 6 00654 2521 00 spri2 pr6|428 004737 aa 6 00362 3521 00 epp2 pr6|242 p_code 004740 aa 6 00656 2521 00 spri2 pr6|430 004741 aa 6 00540 3521 00 epp2 pr6|352 004742 aa 6 00660 2521 00 spri2 pr6|432 004743 aa 6 00562 3521 00 epp2 pr6|370 004744 aa 6 00662 2521 00 spri2 pr6|434 004745 aa 6 00235 3521 00 epp2 pr6|157 current_journal_name 004746 aa 6 00664 2521 00 spri2 pr6|436 004747 aa 773144 3520 04 epp2 -2460,ic 000113 = 404000000021 004750 aa 6 00666 2521 00 spri2 pr6|438 004751 aa 773132 3520 04 epp2 -2470,ic 000103 = 404000000043 004752 aa 6 00670 2521 00 spri2 pr6|440 004753 aa 773077 3520 04 epp2 -2497,ic 000052 = 524000000072 004754 aa 6 00672 2521 00 spri2 pr6|442 004755 aa 773113 3520 04 epp2 -2485,ic 000070 = 524000000250 004756 aa 6 00674 2521 00 spri2 pr6|444 004757 aa 773130 3520 04 epp2 -2472,ic 000107 = 526000000040 004760 aa 6 00676 2521 00 spri2 pr6|446 004761 aa 6 00652 6211 00 eax1 pr6|426 004762 aa 024000 4310 07 fld 10240,dl 004763 aa 6 00044 3701 20 epp4 pr6|36,* 004764 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 004765 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004766 aa 000051 7100 04 tra 41,ic 005037 STATEMENT 1 ON LINE 758 else call admin_gate_$syserr_error_code (LOG, code, "RCP: Failed to rename or delete old journal ^a. Use hp_delete_vtoce.", pathname_ (journal_dir, current_journal_name)); 004767 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004770 aa 773310 00 0104 desc9a -2360,68 000277 = 122103120072 004771 aa 6 00540 00 0104 desc9a pr6|352,68 004772 aa 6 00105 3521 00 epp2 pr6|69 journal_dir 004773 aa 6 00636 2521 00 spri2 pr6|414 004774 aa 6 00235 3521 00 epp2 pr6|157 current_journal_name 004775 aa 6 00640 2521 00 spri2 pr6|416 004776 aa 6 00562 3521 00 epp2 pr6|370 004777 aa 6 00642 2521 00 spri2 pr6|418 005000 aa 773105 3520 04 epp2 -2491,ic 000105 = 526000000250 005001 aa 6 00644 2521 00 spri2 pr6|420 005002 aa 6 00650 2521 00 spri2 pr6|424 005003 aa 773104 3520 04 epp2 -2492,ic 000107 = 526000000040 005004 aa 6 00646 2521 00 spri2 pr6|422 005005 aa 6 00634 6211 00 eax1 pr6|412 005006 aa 014000 4310 07 fld 6144,dl 005007 aa 6 00044 3701 20 epp4 pr6|36,* 005010 la 4 00056 3521 20 epp2 pr4|46,* pathname_ 005011 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 005012 aa 773070 3520 04 epp2 -2504,ic 000102 = 000000000004 005013 aa 6 00654 2521 00 spri2 pr6|428 005014 aa 6 00342 3521 20 epp2 pr6|226,* code 005015 aa 6 00656 2521 00 spri2 pr6|430 005016 aa 6 00540 3521 00 epp2 pr6|352 005017 aa 6 00660 2521 00 spri2 pr6|432 005020 aa 6 00562 3521 00 epp2 pr6|370 005021 aa 6 00662 2521 00 spri2 pr6|434 005022 aa 773071 3520 04 epp2 -2503,ic 000113 = 404000000021 005023 aa 6 00664 2521 00 spri2 pr6|436 005024 aa 773057 3520 04 epp2 -2513,ic 000103 = 404000000043 005025 aa 6 00666 2521 00 spri2 pr6|438 005026 aa 773023 3520 04 epp2 -2541,ic 000051 = 524000000104 005027 aa 6 00670 2521 00 spri2 pr6|440 005030 aa 773040 3520 04 epp2 -2528,ic 000070 = 524000000250 005031 aa 6 00672 2521 00 spri2 pr6|442 005032 aa 6 00652 6211 00 eax1 pr6|426 005033 aa 020000 4310 07 fld 8192,dl 005034 aa 6 00044 3701 20 epp4 pr6|36,* 005035 la 4 00026 3521 20 epp2 pr4|22,* admin_gate_$syserr_error_code 005036 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 761 return; 005037 aa 6 00354 6101 00 rtcd pr6|236 STATEMENT 1 ON LINE 763 end rename_bad_journal; END PROCEDURE rename_bad_journal BEGIN PROCEDURE audit ENTRY TO audit STATEMENT 1 ON LINE 771 audit: proc (a_registry_name); 005040 aa 6 00132 6501 00 spri4 pr6|90 005041 aa 6 00134 2521 00 spri2 pr6|92 005042 aa 2 00002 3521 01 epp2 pr2|2,au 005043 aa 6 00136 2521 00 spri2 pr6|94 005044 aa 2 00000 2361 20 ldq pr2|0,* 005045 aa 000002 6040 04 tmi 2,ic 005047 005046 aa 777777 3760 07 anq 262143,dl 005047 aa 0 00250 3761 00 anq pr0|168 = 000077777777 005050 aa 6 00456 7561 00 stq pr6|302 STATEMENT 1 ON LINE 776 call rcprm_registry_mgr_$audit (who_am_i, operation, prev_level, system_dir, a_registry_name, "0"b, code); 005051 aa 000000 2350 07 lda 0,dl 005052 aa 6 00457 7551 00 sta pr6|303 005053 aa 6 00040 3735 20 epp7 pr6|32,* 005054 aa 7 00304 3521 00 epp2 pr7|196 who_am_i 005055 aa 6 00462 2521 00 spri2 pr6|306 005056 aa 7 00267 3521 00 epp2 pr7|183 operation 005057 aa 6 00464 2521 00 spri2 pr6|308 005060 aa 7 00270 3521 00 epp2 pr7|184 prev_level 005061 aa 6 00466 2521 00 spri2 pr6|310 005062 aa 7 00163 3521 00 epp2 pr7|115 system_dir 005063 aa 6 00470 2521 00 spri2 pr6|312 005064 aa 6 00134 3715 20 epp5 pr6|92,* 005065 aa 5 00002 3521 20 epp2 pr5|2,* a_registry_name 005066 aa 6 00472 2521 00 spri2 pr6|314 005067 aa 6 00457 3521 00 epp2 pr6|303 005070 aa 6 00474 2521 00 spri2 pr6|316 005071 aa 7 00342 3521 20 epp2 pr7|226,* code 005072 aa 6 00476 2521 00 spri2 pr6|318 005073 aa 772762 3520 04 epp2 -2574,ic 000055 = 526000000100 005074 aa 6 00500 2521 00 spri2 pr6|320 005075 aa 772757 3520 04 epp2 -2577,ic 000054 = 514000000044 005076 aa 6 00502 2521 00 spri2 pr6|322 005077 aa 773014 3520 04 epp2 -2548,ic 000113 = 404000000021 005100 aa 6 00504 2521 00 spri2 pr6|324 005101 aa 773004 3520 04 epp2 -2556,ic 000105 = 526000000250 005102 aa 6 00506 2521 00 spri2 pr6|326 005103 aa 6 00136 3535 20 epp3 pr6|94,* 005104 aa 3 00000 3521 20 epp2 pr3|0,* 005105 aa 6 00510 2521 00 spri2 pr6|328 005106 aa 772764 3520 04 epp2 -2572,ic 000072 = 514000000001 005107 aa 6 00512 2521 00 spri2 pr6|330 005110 aa 772773 3520 04 epp2 -2565,ic 000103 = 404000000043 005111 aa 6 00514 2521 00 spri2 pr6|332 005112 aa 6 00460 6211 00 eax1 pr6|304 005113 aa 034000 4310 07 fld 14336,dl 005114 aa 6 00044 3701 20 epp4 pr6|36,* 005115 la 4 00130 3521 20 epp2 pr4|88,* rcprm_registry_mgr_$audit 005116 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 777 goto error_return; 005117 aa 775567 3520 04 epp2 -1161,ic 002706 = 000000235007 005120 aa 000001 7270 07 lxl7 1,dl 005121 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 779 end audit; END PROCEDURE audit END PROCEDURE rcprm_journalize_ ----------------------------------------------------------- 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