COMPILATION LISTING OF SEGMENT dmpr_log_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/18/89 1036.9 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1989 * 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 /****^ HISTORY COMMENTS: 15* 1) change(86-07-10,GWMay), approve(86-07-10,MCR7445), audit(86-11-20,GDixon), 16* install(86-12-09,MR12.0-1238): 17* modified the code which allocates the storage for the entrynames in a 18* directory to check the number of names. If the names are <0 or greater 19* than the calculated limit, the program will report the directory as having 20* a problem. Before this fix the dumper would try to allocate very large 21* amounts of storage and blow up. 22* 23* Changed to use actual file storage for contents names vs allocated 24* storage and then assignment. 25* 26* Changed to use pathname_ and expand_pathname_$add_suffix instead of 27* an internal routine. 28* 29* Changed to check for available space in the .contents_names segment 30* instead of using an out_of_bounds condition. 31* 32* Changed error messages to be more descriptive and fit within 80 chars. 33* 2) change(86-12-01,GWMay), approve(86-12-01,PBF7445), audit(86-12-01,GDixon), 34* install(86-12-09,MR12.0-1238): 35* moved call to msf_manager_$adjust after the call to msf_manager_$get_ptr. 36* removed calls to terminate_file_ which msf_manager_$adjust was intended 37* to replace. 38* 3) change(89-01-06,GWMay), approve(89-01-06,MCR8039), audit(89-01-09,Farley), 39* install(89-01-17,MR12.3-1002): 40* Changed to call msf_mgr_$adjust to correctly set the size of the 41* .contents_names segments. 42* 4) change(89-08-31,GWMay), approve(89-10-03,MCR8135), 43* audit(89-10-04,Beattie), install(89-10-12,MR12.3-1092): 44* Added support for version 3 backup_volume_log.incl.pl1 structures. 45* Initialized new structure values backup_volume_log.Nsaved_(cons 46* incr)_sets. 47* 5) change(89-10-18,GWMay), approve(89-10-18,PBF1089), 48* audit(89-10-18,Beattie), install(89-10-18,MR12.3-1094): 49* Fix bug where the values of the new variables were not copied to the 50* new log. 51* END HISTORY COMMENTS */ 52 53 /* format: style1,ind2,^inddcls,ifthenstmt,dclind2,declareind2,ifthendo,ifthen*/ 54 55 dmpr_log_: proc; 56 57 /* This routine provides all the record keeping functions that the volume dumper subsystem requires. It creates 58* in use, and the prev output log. In addition this routine creates and updates the contents segment one of 59* which exists for each dump volume and the account segment, one of which exists for each dump volume. The volume log 60* contains a record of all dump volumes that contain information taken from that physical volume, the times during 61* which the dump volume was written, and some statistics about what was written. The output volume log contains 62* a record of each physical volume written on this dump volume and a count of how many times it was done. 63* The prev volume log contains a record of the last/previous dump volumes that have been written. The contents segment 64* contains a uid of every object that was written on a dump volume. The volume log is used by the 65* volume reloader and retriever to determine which dump volumes should be read to recover the data. The 66* output log is used by the dumper to protect dump volumes from destruction while they still have useful 67* information on them. The contents segment is used by the volume retriever to save time by searching the online 68* contents segment rather then having to search the dump volume. */ 69 /* Modified: 11/16/81 by GA Texada to not lock the volume log in open_volume_log 70* if the previous volume log wasn't closed before returning. 71* Modified: 11/24/81 by GAT to not make a "names" seg unless -names was 72* specified. 73* Modified: 04/05/83 by GA Texada to add a trace capability. 74* Modified: 04/84 by GA Texada for version 2 volume logs. 75* 76**/ 77 dcl Lall_entry_names fixed bin (21); 78 dcl Pall_entry_names ptr; 79 dcl all_entry_names char (Lall_entry_names) based (Pall_entry_names); 80 dcl accountp ptr; 81 dcl bit_count fixed bin (24); 82 dcl code fixed bin (35); 83 dcl counted_number_of_entries 84 fixed bin; 85 dcl counted_number_of_entry_names 86 fixed bin; 87 dcl dname char (168); 88 dcl ename char (32); 89 dcl found bit (1); 90 dcl i fixed bin; 91 dcl pname char (168); 92 dcl stored_number_of_entry_names 93 fixed bin; 94 dcl uid_path (0:16) bit (36); 95 96 dcl account_dir char (168) static init (">system_control_1>volume_backup_accounts") options (constant); 97 dcl dump_idx fixed bin int static init (-1); 98 dcl lock_wait_time fixed bin static init (60) options (constant); 99 dcl max_entry_names fixed bin internal static; 100 dcl max_dir_entries fixed bin internal static; 101 dcl myname char (32) static init ("dmpr_log_") options (constant); 102 dcl set_bc_n_truncate bit (3) int static init ("110"b) options (constant); 103 dcl truncate_only bit (3) int static init ("010"b) options (constant); 104 105 dcl out_of_bounds condition; 106 107 dcl (addr, bin, clock, divide, fixed, hbound, lbound, length, 108 null, ptr, unspec, rel, rtrim, size, substr) 109 builtin; 110 111 dcl 1 add_key aligned, 112 2 flags, 113 ( 3 input_key bit (1), 114 3 input_desc bit (1), 115 3 mbz bit (34)) unal, 116 2 desc, 117 ( 3 type fixed bin (2), 118 3 records fixed bin (9), 119 3 mbz1 bit (23)) unal, 120 2 key_len fixed bin, 121 2 key char (68); 122 123 dcl error_table_$action_not_performed ext fixed bin (35); 124 dcl error_table_$bad_dir fixed bin (35) ext static; 125 dcl error_table_$bad_index fixed bin (35) ext static; 126 dcl error_table_$bad_segment fixed bin (35) ext; 127 dcl error_table_$bad_volid ext fixed bin (35); 128 dcl error_table_$invalid_lock_reset ext fixed bin (35); 129 dcl error_table_$namedup fixed bin (35) external; 130 dcl error_table_$noentry ext fixed bin (35); 131 132 dcl sys_info$default_dir_max_length fixed bin (17) ext static; 133 134 dcl adjust_bit_count_ entry (char (*), char (*), bit (1), fixed bin, fixed bin (35)); 135 dcl dmpr_report_$online_output entry options (variable); 136 dcl dmpr_report_$error_output entry options (variable); 137 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 138 dcl expand_pathname_$add_suffix entry (char (*), char (*), char (*), char (*), fixed bin (35)); 139 dcl hcs_$chname entry (char (*), char (*), char (*), char (*), fixed bin (35)); 140 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 141 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 142 dcl hcs_$truncate_seg entry (ptr, fixed bin, fixed bin (35)); 143 dcl ioa_$rsnnl entry options (variable); 144 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 145 dcl iox_$close entry (ptr, fixed bin (35)); 146 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 147 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 148 dcl iox_$open entry (ptr, fixed bin, bit (36), fixed bin (35)); 149 dcl msf_manager_$adjust entry (ptr, fixed bin, fixed bin (24), bit (3), fixed bin (35)); 150 dcl msf_manager_$close entry (ptr); 151 dcl msf_manager_$get_ptr entry (ptr, fixed bin, bit (1), ptr, fixed bin, fixed bin (35)); 152 dcl msf_manager_$open entry (char (*), char (*), ptr, fixed bin (35)); 153 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 154 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); 155 dcl set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 156 157 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 158 159 160 create_pvolog: entry (a_volname, code); 161 162 dcl a_volname char (*); 163 164 /* This entry creates the output log , and if successful initializes it */ 165 166 code = 0; 167 dmpr_data_.pvlp = null; 168 dname = ""; 169 ename = ""; 170 pname = ""; 171 172 pname = rtrim (dmpr_data_.sys_dir) || ">pvolog"; 173 pname = pathname_ (pname, a_volname); 174 call expand_pathname_$add_suffix (pname, "pvolog", dname, ename, code); 175 if code ^= 0 then goto log_err; 176 177 pname = pathname_ (dname, ename); 178 call hcs_$make_seg (dname, ename, "", 01010b, pvlp, code); 179 if code ^= 0 then do; 180 log_err: call dmpr_report_$error_output (code, myname, 181 "Error creating: ^/^a^/reason", 182 pname); 183 code = error_table_$bad_volid; 184 return; 185 end; 186 187 pvolog.version = pvolog_version_1; 188 pvolog.dump_type = dmpr_data_.dump_type; 189 pvolog.volid = dmpr_data_.volid; 190 pvolog.mount_time = clock; 191 192 dmpr_data_.pvlp = pvlp; 193 return; 194 195 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 196 197 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 198 199 200 update_pvolog: entry (code); 201 202 /* This entry adds a physical volume name to an output log, if not there already, and increases the usage count 203* associated with that physical volume name by one */ 204 205 code = 0; 206 pvlp = dmpr_data_.pvlp; 207 208 call lock_pvolog; 209 if code ^= 0 then return; 210 211 found = "0"b; 212 do i = 1 to pvolog.next while (^found); 213 pvlep = addr (pvolog.array (i)); 214 if pvle.pvname = dmpr_data_.pvname then do; 215 found = "1"b; 216 pvle.invocation_count = pvle.invocation_count + 1; 217 end; 218 end; 219 if ^found then do; 220 pvolog.next = pvolog.next + 1; 221 pvolog.in_use = pvolog.in_use + 1; 222 pvlep = addr (pvolog.array (pvolog.next)); 223 pvle.invocation_count = 1; 224 pvle.pvname = dmpr_data_.pvname; 225 end; 226 call unlock_pvolog; 227 return; 228 229 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 230 231 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 232 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 233 234 235 log_object: entry (code); 236 237 /* This entry adds the uid of the object to the contents segment and 238* the uid pathname of the object to the account segment. */ 239 240 code = 0; 241 if dmpr_data_.contentsp = null then do; 242 code = error_table_$noentry; 243 return; 244 end; 245 246 contentsp = dmpr_data_.contentsp; 247 recordp = dmpr_data_.recordp; 248 249 backup_volume_contents.next = backup_volume_contents.next + 1; 250 backup_volume_contents.uid (backup_volume_contents.next) = 251 backup_volume_record.uid; 252 backup_volume_contents.tape_loc (backup_volume_contents.next) = 0; 253 backup_volume_contents.pad1 (backup_volume_contents.next) = "0"b; 254 backup_volume_contents.offset (backup_volume_contents.next) = 0; 255 backup_volume_contents.component (backup_volume_contents.next) = 0; 256 257 if dmpr_data_.names & backup_volume_record.dirsw then do; 258 259 dp = dmpr_data_.dirp; 260 261 if able_to_count_entry_names () then 262 if entry_names_are_ok () then 263 if entry_names_fit_in_contents_seg (Pall_entry_names) then 264 call put_entry_names_in_contents_seg (); 265 end; 266 267 if dmpr_data_.accounting then 268 call update_accounting_info (); 269 270 if dmpr_data_.trace then 271 call dmpr_report_$online_output (0, myname, 272 "Dumping ^12.3b: ^a.", 273 backup_volume_record.uid, convert_puid_ ()); 274 275 return; 276 277 /* ************************************************************************* */ 278 279 able_to_count_entry_names: proc () returns (bit (1) aligned); 280 281 /* ************************************************************************* */ 282 283 on out_of_bounds begin; 284 call dmpr_report_$error_output (error_table_$bad_index, myname, 285 "Due to an out_of_bounds condition, 286 the names of the entries in the following directory cannot be logged or added 287 to the contents names segment. 288 directory uid: ^o 289 primary name: ^a 290 pvname: ^a 291 vtocx: ^o 292 reason", 293 dir.uid, backup_volume_record.primary_name, 294 dmpr_data_.pvname, backup_volume_record.vtocx); 295 296 goto exit_count; 297 end; 298 299 Lall_entry_names = 0; 300 counted_number_of_entry_names = 0; 301 counted_number_of_entries = 0; 302 stored_number_of_entry_names = 0; 303 304 do ep = ptr (dp, dir.entryfrp) repeat ptr (ep, entry.efrp) while 305 (rel (ep) ^= "0"b & counted_number_of_entries <= max_dir_entries); 306 307 stored_number_of_entry_names = stored_number_of_entry_names 308 + entry.nnames; 309 counted_number_of_entries = counted_number_of_entries + 1; 310 311 do np = ptr (ep, entry.name_frp) repeat ptr (ep, np -> names.fp) 312 while (rel (np) ^= "0"b & counted_number_of_entry_names <= max_entry_names); 313 314 counted_number_of_entry_names = counted_number_of_entry_names + 1; 315 Lall_entry_names = Lall_entry_names 316 + length (rtrim (np -> names.name)) + length (">"); 317 318 end; 319 end; 320 321 Lall_entry_names = Lall_entry_names + length (">"); 322 return ("1"b); 323 324 exit_count: 325 return ("0"b); 326 327 end able_to_count_entry_names; 328 329 /* ************************************************************************* */ 330 331 entry_names_are_ok: proc () returns (bit (1) aligned); 332 333 /* ************************************************************************* */ 334 335 dcl Serror bit (1) aligned; 336 337 Serror = "1"b; 338 339 if stored_number_of_entry_names ^= counted_number_of_entry_names 340 then do; 341 call dmpr_report_$error_output (error_table_$bad_dir, myname, 342 "The actual number of entry names in the directory does not match 343 the number of entry names stored in the directory entries. 344 counted: ^d stored: ^d 345 directory uid: ^o 346 primary name: ^a 347 pvname: ^a 348 vtocx: ^o 349 reason", 350 counted_number_of_entry_names, stored_number_of_entry_names, 351 dir.uid, backup_volume_record.primary_name, 352 dmpr_data_.pvname, backup_volume_record.vtocx); 353 Serror = "0"b; 354 end; 355 356 if stored_number_of_entry_names < 0 357 | stored_number_of_entry_names > max_entry_names then do; 358 359 call dmpr_report_$error_output (error_table_$bad_dir, myname, 360 "The total number of names referenced by directory entries is 361 negative or exceeds the maximum number of names a directory will hold. 362 value: ^d 363 directory uid: ^o 364 primary name: ^a 365 pvname: ^a 366 vtocx: ^o 367 reason", 368 stored_number_of_entry_names, dir.uid, 369 backup_volume_record.primary_name, dmpr_data_.pvname, 370 backup_volume_record.vtocx); 371 Serror = "0"b; 372 end; 373 return (Serror); 374 end entry_names_are_ok; 375 376 /* ************************************************************************* */ 377 378 entry_names_fit_in_contents_seg: proc (Pentry_name_storage) 379 returns (bit (1) aligned); 380 381 /* ************************************************************************* */ 382 383 dcl Pentry_name_storage ptr, 384 return_bit bit (1) aligned; 385 386 dcl next_word_offset fixed bin (19); 387 388 dcl sys_info$max_seg_size fixed bin (35) ext static; 389 390 Pentry_name_storage = null; 391 return_bit = "0"b; 392 next_word_offset = 0; 393 contents_namesp = dmpr_data_.contents_namesp; 394 395 next_word_offset = backup_volume_contents_names.offset 396 + divide (Lall_entry_names + (CHARS_PER_WORD - 1), 397 CHARS_PER_WORD, 18, 0); 398 399 if next_word_offset > sys_info$max_seg_size then do; 400 bit_count = backup_volume_contents_names.offset * BITS_PER_WORD; 401 call msf_manager_$adjust (dmpr_data_.fcbp, dmpr_data_.component, 402 bit_count, set_bc_n_truncate, code); 403 404 if code ^= 0 then do; 405 dmpr_data_.names = "0"b; 406 call dmpr_report_$online_output (code, dmpr_data_.myname, 407 "Unable to truncate component in multisegment file: 408 ^a>contents>^a.contents, 409 Attempting to truncate and set bit count for component ^d. 410 Names collection turned OFF.^/reason", 411 dmpr_data_.sys_dir, dmpr_data_.volname, 412 dmpr_data_.component); 413 return ("0"b); 414 end; 415 416 dmpr_data_.component = dmpr_data_.component + 1; 417 call msf_manager_$get_ptr (dmpr_data_.fcbp, dmpr_data_.component, 418 "1"b, contents_namesp, 0, code); 419 420 if code ^= 0 then do; 421 dmpr_data_.names = "0"b; 422 call dmpr_report_$online_output (code, dmpr_data_.myname, 423 "Unable to get next component in multisegment file: 424 ^a>contents>^a.contents, 425 Attempting to get component ^d. Names collection turned OFF.^/reason", 426 dmpr_data_.sys_dir, dmpr_data_.volname, 427 dmpr_data_.component); 428 return ("0"b); 429 end; 430 431 else do; 432 dmpr_data_.contents_namesp = contents_namesp; 433 backup_volume_contents_names.version = 434 backup_volume_contents_version_3; 435 backup_volume_contents_names.offset = 436 bin (rel (addr (backup_volume_contents_names.begin))); 437 backup_volume_contents_names.pad (*) = "0"b; 438 439 next_word_offset = backup_volume_contents_names.offset 440 + divide (Lall_entry_names + (CHARS_PER_WORD - 1), 441 CHARS_PER_WORD, 18, 0); 442 end; 443 end; 444 445 Pentry_name_storage = 446 ptr (contents_namesp, backup_volume_contents_names.offset); 447 448 backup_volume_contents.offset (backup_volume_contents.next) = 449 backup_volume_contents_names.offset; 450 451 backup_volume_contents.component (backup_volume_contents.next) = 452 dmpr_data_.component; 453 454 backup_volume_contents_names.offset = next_word_offset; 455 456 return ("1"b); 457 end entry_names_fit_in_contents_seg; 458 459 /* ************************************************************************* */ 460 461 put_entry_names_in_contents_seg: proc (); 462 463 /* ************************************************************************* */ 464 465 dcl Lcurrent_name fixed bin, 466 current_position fixed bin; 467 468 Lcurrent_name = 0; 469 all_entry_names = ""; 470 current_position = 1; 471 472 do ep = ptr (dp, dir.entryfrp) repeat ptr (ep, entry.efrp) 473 while (rel (ep) ^= "0"b); 474 475 do np = ptr (ep, entry.name_frp) 476 repeat ptr (ep, np -> names.fp) while (rel (np) ^= "0"b); 477 478 Lcurrent_name = length (rtrim (np -> names.name)); 479 substr (all_entry_names, current_position, Lcurrent_name) 480 = substr (np -> names.name, 1, Lcurrent_name); 481 482 current_position = current_position + Lcurrent_name; 483 Lcurrent_name = length (">"); 484 substr (all_entry_names, current_position, Lcurrent_name) = ">"; 485 486 current_position = current_position + Lcurrent_name; 487 end; 488 end; 489 490 Lcurrent_name = length (">"); 491 substr (all_entry_names, current_position, Lcurrent_name) = ">"; 492 return; 493 494 end put_entry_names_in_contents_seg; 495 496 /* ************************************************************************* */ 497 498 update_accounting_info: proc (); 499 500 /* ************************************************************************* */ 501 502 do i = lbound (backup_volume_record.uid_path, 1) to 503 hbound (backup_volume_record.uid_path, 1) 504 while (backup_volume_record.uid_path (i) ^= "0"b); 505 506 uid_path (i) = backup_volume_record.uid_path (i); 507 end; 508 i = i + 1; 509 uid_path (i) = backup_volume_record.uid; 510 add_key.input_key = "1"b; 511 add_key.input_desc = "1"b; 512 add_key.key_len = i * 4; 513 unspec (add_key.key) = unspec (uid_path); 514 add_key.records = fixed (backup_volume_record.records, 9); 515 add_key.type = dmpr_data_.dump_type; 516 call iox_$control (dmpr_data_.account_iocbp, "add_key", addr (add_key), 517 code); 518 if code ^= 0 then 519 call dmpr_report_$error_output (code, myname, 520 "Error adding key to account file:^/^a>^a.account^/reason", 521 account_dir, dmpr_data_.volname); 522 523 return; 524 end update_accounting_info; 525 526 /* end dmpr_log_$log_object */ 527 528 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 529 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 530 531 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 532 533 534 close_account_file: entry (code); 535 536 /* This entry closes down an account file */ 537 538 if dmpr_data_.account_iocbp = null then return; 539 call iox_$close (dmpr_data_.account_iocbp, code); 540 if code ^= 0 then do; 541 call dmpr_report_$error_output (code, myname, 542 "Unable to close account file:^/^a>^a^/reason", 543 account_dir, dmpr_data_.volname); 544 return; 545 end; 546 call iox_$detach_iocb (dmpr_data_.account_iocbp, code); 547 if code ^= 0 then 548 call dmpr_report_$error_output (code, myname, 549 "Unable to detach account file:^/^a>^a^/reason", 550 account_dir, dmpr_data_.volname); 551 dmpr_data_.account_iocbp = null; 552 return; 553 554 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 555 556 557 init_account_file: entry (code); 558 559 /* This entry creates the account segment in a specified directory and if successful initializes it and 560* sets a pointer to in static. */ 561 562 code = 0; 563 dname = ""; 564 ename = ""; 565 pname = ""; 566 567 pname = pathname_ (account_dir, (dmpr_data_.volname)); 568 call expand_pathname_$add_suffix (pname, "account", dname, ename, code); 569 if code ^= 0 then goto acct_err; 570 571 pname = pathname_ (dname, ename); 572 retry_acc: call hcs_$make_seg (dname, ename, "", 01010b, accountp, code); 573 if code ^= 0 then do; 574 if code = error_table_$namedup then do; 575 call rename_account_file (dname, ename, ename, 1, code); 576 if code = 0 then goto retry_acc; 577 end; 578 acct_err: call dmpr_report_$error_output (code, myname, 579 "Error creating:^/^a^/reason", 580 pname); 581 return; 582 end; 583 584 call iox_$attach_ioname ("account_file", dmpr_data_.account_iocbp, 585 "vfile_ " || rtrim (pname) || " -dup_ok", code); 586 if code ^= 0 then do; 587 call dmpr_report_$error_output (code, myname, 588 "Error attaching account file:^/^a^/reason", 589 pname); 590 return; 591 end; 592 call iox_$open (dmpr_data_.account_iocbp, Direct_update, "0"b, code); 593 if code ^= 0 then do; 594 call dmpr_report_$error_output (code, myname, 595 "Error opening account file:^/^a^/reason", 596 pname); 597 return; 598 end; 599 return; 600 601 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 602 603 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 604 605 606 open_volume_log: entry (code); 607 608 /* This entry creates a volume log entry. It also takes care to close off any old entries 609* which this entries superceeds. This must be done as the volume retriever will not use an entry that 610* is not closed. If it were to do so the first entry it would use would be the volume presently mounted. This, 611* of course restricts the volume dumper such that now two dumper processes should dump the same physical volume 612* in the same mode of operation */ 613 614 code = 0; 615 if dump_idx ^= -1 then return; /* two updates without a close */ 616 bvlp = dmpr_data_.bvlp; 617 618 call lock_volume_log; /* protect against two updates */ 619 if code ^= 0 then return; 620 621 622 do i = backup_volume_log.next to 1 by -1; 623 bvlep = addr (backup_volume_log.array (i)); 624 if bvle.close_time = 0 & bvle.dump_type = dmpr_data_.dump_type then do; 625 bvle.close_time = clock; 626 if dmpr_data_.restart_pvname ^= "" then 627 dmpr_data_.cycle_uid = bvle.cycle_uid; 628 end; 629 end; 630 631 backup_volume_log.next = backup_volume_log.next + 1; 632 backup_volume_log.rpv_pvid = dmpr_data_.rpv_pvid; 633 dump_idx = backup_volume_log.next; 634 bvlep = addr (backup_volume_log.array (dump_idx)); 635 636 bvle.dump_type = dmpr_data_.dump_type; /* update new record */ 637 bvle.volid = dmpr_data_.volid; 638 bvle.volname = dmpr_data_.volname; 639 bvle.open_time = clock; 640 bvle.cycle_uid = dmpr_data_.cycle_uid; 641 bvle.close_time = 0; 642 bvle.io_module = dmpr_data_.io_module; 643 bvle.dir_num, bvle.dir_rec = -1; 644 bvle.seg_num, bvle.seg_rec = -1; 645 dmpr_data_.vol_log_dir_num = 0; 646 dmpr_data_.vol_log_dir_rec = 0; 647 dmpr_data_.vol_log_seg_num = 0; 648 dmpr_data_.vol_log_seg_rec = 0; 649 open_ret: 650 call unlock_volume_log; 651 return; 652 653 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 654 655 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 656 657 658 close_volume_log: entry (code); 659 660 /* This entry closes a volume log entry. The internal static variable dump_indx is used in attemp to remenber 661* what entry was in use, but it must be checked as a purge of the volume log can shift entries. If things have moved 662* a linear search is made for the previous entry. In either case the entry is closed. */ 663 664 code = 0; 665 if dump_idx = -1 then return; /* its closed already */ 666 667 bvlp = dmpr_data_.bvlp; 668 669 call lock_volume_log; 670 if code ^= 0 then return; 671 672 bvlep = addr (backup_volume_log.array (dump_idx)); 673 674 if (bvle.volname = dmpr_data_.volname 675 & bvle.dump_type = dmpr_data_.dump_type 676 & bvle.cycle_uid = dmpr_data_.cycle_uid 677 & bvle.close_time = 0) then ; 678 else do; 679 do dump_idx = 1 to backup_volume_log.next; /* it may have moved */ 680 bvlep = addr (backup_volume_log.array (dump_idx)); 681 if (bvle.volname = dmpr_data_.volname 682 & bvle.dump_type = dmpr_data_.dump_type 683 & bvle.cycle_uid = dmpr_data_.cycle_uid 684 & bvle.close_time = 0) then goto close_log_entry; 685 end; 686 code = error_table_$action_not_performed; 687 call dmpr_report_$error_output (code, myname, 688 "Unable to close:^/^a.volog^/reason", 689 dmpr_data_.pvname); 690 goto reset_log_data; 691 end; 692 close_log_entry: 693 bvle.close_time = clock; 694 bvle.dir_num = dmpr_data_.vol_log_dir_num; 695 bvle.dir_rec = dmpr_data_.vol_log_dir_rec; 696 bvle.seg_num = dmpr_data_.vol_log_seg_num; 697 bvle.seg_rec = dmpr_data_.vol_log_seg_rec; 698 reset_log_data: 699 dmpr_data_.vol_log_dir_num = 0; 700 dmpr_data_.vol_log_dir_rec = 0; 701 dmpr_data_.vol_log_seg_num = 0; 702 dmpr_data_.vol_log_seg_rec = 0; 703 call set_bc (bvlp); 704 call unlock_volume_log; 705 dump_idx = -1; 706 return; 707 708 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 709 710 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 711 712 713 init_contents_seg: entry (code); 714 715 /* This entry create a contents segment and, if successful, initializes it. Note that since contents are written 716* out they must contain a logical record header. */ 717 718 code = 0; 719 720 dname = ""; 721 ename = ""; 722 pname = ""; 723 724 pname = rtrim (dmpr_data_.sys_dir) || ">contents"; 725 pname = pathname_ (pname, (dmpr_data_.volname)); 726 call expand_pathname_$add_suffix (pname, "contents", dname, ename, code); 727 if code ^= 0 then goto cont_err; 728 729 pname = pathname_ (dname, ename); 730 call hcs_$make_seg (dname, ename, "", 01010b, contentsp, code); 731 if contentsp ^= null then do; 732 call hcs_$truncate_seg (contentsp, 0, code); 733 if code ^= 0 then do; 734 call dmpr_report_$error_output (code, myname, 735 "Unable to truncate:^/^a^/reason", 736 pname); 737 code = 0; 738 return; 739 end; 740 end; 741 else do; 742 cont_err: call dmpr_report_$error_output (code, myname, 743 "Error creating:^/^a^/reason", 744 pname); 745 return; 746 end; 747 call init_header (contentsp, contents_type); 748 dmpr_data_.contentsp = contentsp; 749 backup_volume_contents.version = backup_volume_contents_version_3; 750 backup_volume_contents.volname = dmpr_data_.volname; 751 backup_volume_contents.volid = dmpr_data_.volid; 752 backup_volume_contents.next = 0; 753 backup_volume_contents.pad (*) = "0"b; 754 755 if dmpr_data_.names then do; 756 if dmpr_data_.contents_namesp ^= null then do; 757 bit_count = backup_volume_contents_names.offset * BITS_PER_WORD; 758 call msf_manager_$adjust (dmpr_data_.fcbp, dmpr_data_.component, 759 bit_count, set_bc_n_truncate, code); 760 call msf_manager_$close (dmpr_data_.fcbp); 761 end; 762 763 dmpr_data_.fcbp = null; 764 dmpr_data_.contents_namesp = null; 765 pname = rtrim (dmpr_data_.sys_dir) || ">contents>" || 766 rtrim (dmpr_data_.volname) || ".contents_names"; 767 768 call expand_pathname_ (pname, dname, ename, code); 769 770 if code ^= 0 then do; 771 name_err: dmpr_data_.names = "0"b; 772 call dmpr_report_$error_output (code, myname, 773 "Error creating:^/^a^/- names collection aborted.^/reason", 774 pname); 775 return; 776 end; 777 dmpr_data_.component = 0; 778 call msf_manager_$open (dname, ename, dmpr_data_.fcbp, code); 779 if code ^= 0 & code ^= error_table_$noentry then do; 780 call dmpr_report_$error_output (code, myname, 781 "Unable to open:^/^a^/- names collection aborted.^/reason", 782 pname); 783 dmpr_data_.names = "0"b; 784 code = 0; 785 return; 786 end; 787 call msf_manager_$get_ptr (dmpr_data_.fcbp, dmpr_data_.component, "1"b, contents_namesp, 0, code); 788 if code ^= 0 then go to name_err; 789 790 call msf_manager_$adjust (dmpr_data_.fcbp, dmpr_data_.component, 0, truncate_only, code); 791 792 dmpr_data_.contents_namesp = contents_namesp; 793 backup_volume_contents_names.version = backup_volume_contents_version_3; 794 backup_volume_contents_names.offset = 795 bin (rel (addr (backup_volume_contents_names.begin))); 796 backup_volume_contents_names.pad (*) = "0"b; 797 798 max_entry_names = divide (sys_info$default_dir_max_length - size (dir) 799 - size (entry), size (names), 17); 800 801 max_dir_entries = divide (sys_info$default_dir_max_length - size (dir), 802 size (entry), 17); 803 end; 804 return; 805 806 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 807 808 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 809 810 811 init_volume_log: entry (code); 812 813 /* This entry locates the volume log. If one does not exist it is created and initialized. Note that since volume 814* logs are written out they must have a logical record header. */ 815 816 code = 0; 817 dmpr_data_.bvlp = null; 818 dname = ""; 819 ename = ""; 820 pname = ""; 821 pname = pathname_ ((dmpr_data_.sys_dir), (dmpr_data_.pvname)); 822 call expand_pathname_$add_suffix (pname, "volog", dname, ename, code); 823 if code ^= 0 then goto vol_err; 824 825 pname = pathname_ (dname, ename); 826 call hcs_$make_seg (dname, ename, "", 01010b, bvlp, code); 827 if code = 0 then do; 828 call dmpr_report_$online_output (0, myname, 829 "new volume log created:^/^a", 830 pname); 831 backup_volume_log.pvname = dmpr_data_.pvname; 832 backup_volume_log.pvid = dmpr_data_.pvid; 833 backup_volume_log.reload_groups = 2; /* default value */ 834 backup_volume_log.version = backup_volume_log_version_3; 835 backup_volume_log.disk_type = dmpr_data_.disk_type; 836 backup_volume_log.rpv_pvid = dmpr_data_.rpv_pvid; 837 backup_volume_log.Nsaved_cons_sets = -1; 838 backup_volume_log.Nsaved_incr_sets = -1; 839 end; 840 else if bvlp ^= null then do; 841 code = 0; 842 if (backup_volume_log.pvname = dmpr_data_.pvname 843 & backup_volume_log.pvid = dmpr_data_.pvid) then do; 844 if backup_volume_log.version = backup_volume_log_version_1 | 845 backup_volume_log.version = backup_volume_log_version_2 | 846 backup_volume_log.version = backup_volume_log_version_3 then do; 847 backup_volume_log.version = backup_volume_log_version_3; 848 backup_volume_log.disk_type = dmpr_data_.disk_type; 849 backup_volume_log.rpv_pvid = dmpr_data_.rpv_pvid; 850 end; 851 else goto invalid_volog; 852 end; 853 else do; 854 invalid_volog: code = error_table_$bad_segment; 855 call dmpr_report_$error_output (code, myname, 856 "Invalid ^a.volog^/reason", 857 dmpr_data_.pvname); 858 return; 859 end; 860 end; 861 else do; 862 vol_err: call dmpr_report_$error_output (code, myname, 863 "Error getting ptr to:^/^a^/reason", 864 pname); 865 return; 866 end; 867 868 if backup_volume_log.pattern1 ^= pattern1 869 | backup_volume_log.pattern2 ^= pattern2 870 | backup_volume_log.pattern3 ^= pattern3 then 871 call init_header (bvlp, volume_log_type); 872 dmpr_data_.bvlp = bvlp; 873 return; 874 875 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 876 877 878 /* The following six internal proc lock and unlock the various logs. They are all very similar except 879* that they deal with different logs. They all assume that the local pointer has been set from its static 880* value. */ 881 882 lock_pvolog: proc; 883 call set_lock_$lock (pvolog.lock, lock_wait_time, code); 884 if code ^= 0 then do; 885 if code = error_table_$invalid_lock_reset then code = 0; 886 else call dmpr_report_$error_output (code, myname, 887 "Unable to lock ^a.pvolog^/reason", 888 dmpr_data_.volname); 889 end; 890 return; 891 892 end lock_pvolog; 893 894 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 895 896 897 unlock_pvolog: proc; 898 call set_lock_$unlock (pvolog.lock, code); 899 if code ^= 0 then 900 call dmpr_report_$error_output (code, myname, 901 "Error unlocking ^a.pvolog^/reason", 902 dmpr_data_.volname); 903 return; 904 905 end unlock_pvolog; 906 907 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 908 909 910 lock_volume_log: proc; 911 call set_lock_$lock (backup_volume_log.lock, lock_wait_time, code); 912 if code ^= 0 then do; 913 if code = error_table_$invalid_lock_reset then code = 0; 914 else call dmpr_report_$error_output (code, myname, 915 "Unable to lock ^a.volog^/reason", 916 dmpr_data_.pvname); 917 end; 918 return; 919 920 end lock_volume_log; 921 922 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 923 924 925 unlock_volume_log: proc; 926 call set_lock_$unlock (backup_volume_log.lock, code); 927 if code ^= 0 then 928 call dmpr_report_$error_output (code, myname, 929 "Error unlocking ^a.volog^/reason", 930 dmpr_data_.pvname); 931 return; 932 933 end unlock_volume_log; 934 935 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 936 937 938 init_header: proc (tp, type); 939 940 /* This proc initializes the logical volume header that is a part of all objects, except segments 941* and directories, which it preceeds, which are written out. */ 942 943 dcl tp ptr; 944 dcl type fixed bin; 945 946 tp -> backup_volume_log.pattern1 = pattern1; 947 tp -> backup_volume_log.pattern2 = pattern2; 948 tp -> backup_volume_log.pattern3 = pattern3; 949 950 tp -> backup_volume_log.rec1_type = type; 951 tp -> backup_volume_log.rec2_len = 0; 952 tp -> backup_volume_log.rec2_type = null_type; 953 return; 954 955 end init_header; 956 957 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 958 959 960 set_bc: proc (p); 961 dcl p ptr; 962 dcl dn char (168); 963 dcl en char (32); 964 dcl ldn fixed bin; 965 call hcs_$fs_get_path_name (p, dn, ldn, en, code); 966 if code ^= 0 then do; 967 call dmpr_report_$error_output (code, myname, 968 "Unable to convert ptr to pathname for bit count setting^/reason"); 969 code = 0; 970 return; 971 end; 972 call adjust_bit_count_ (dn, en, "0"b, (0), code); 973 if code ^= 0 then 974 call dmpr_report_$error_output (code, myname, 975 "Unable to set bit count of ^a>^a^/reason", 976 dn, en); 977 code = 0; 978 end set_bc; 979 980 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 981 982 983 rename_account_file: proc (dn, prefix, en, a_suffix, ec); 984 985 /* This proc recursively renames account segs with a numeric suffix utile a namedup is not encountered. This 986* preserves the account segs in reverse numeric order for later processing. */ 987 988 dcl dn char (*); 989 dcl prefix char (*); 990 dcl en char (*); 991 dcl new_en char (32); 992 dcl suffix fixed bin; 993 dcl a_suffix fixed bin; 994 dcl ec fixed bin (35); 995 suffix = a_suffix; 996 call ioa_$rsnnl ("^a.^d", new_en, (0), prefix, suffix); 997 retry_rn: call hcs_$chname (dn, en, en, new_en, ec); 998 if ec = error_table_$namedup then do; 999 call rename_account_file (dn, prefix, new_en, suffix + 1, ec); 1000 if ec = 0 then goto retry_rn; 1001 end; 1002 1003 end rename_account_file; 1004 1005 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1006 1007 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1008 1009 /* This proc is used to convert a unique id pathname to an ascii pathname */ 1010 1011 convert_puid_: proc returns (char (168)); 1012 1013 dcl (dn, ret_dn) char (168); 1014 dcl en char (32); 1015 dcl ec fixed bin (35); 1016 dcl seg_fault_error condition; 1017 dcl error_table_$root ext fixed bin (35); 1018 dcl hc_backup_$decode_uidpath entry options (variable); 1019 on seg_fault_error goto ret_unk; 1020 1021 call hc_backup_$decode_uidpath (backup_volume_record.uid_path, dn, en, ec); 1022 if ec = error_table_$root then ; 1023 else if ec ^= 0 then 1024 ret_unk: return ("UNKNOWN_PATH>" || rtrim (backup_volume_record.primary_name, " ")); 1025 call ioa_$rsnnl ("^a^[>^]^[^a>^;^s^]^a", ret_dn, (0), dn, dn ^= ">", en ^= "", en, backup_volume_record.primary_name); 1026 return (ret_dn); 1027 end convert_puid_; 1028 1 1 /* BEGIN INCLUDE FILE ... backup_static_variables.incl.pl1 ... March 1976 */ 1 2 1 3 1 4 dcl incr fixed bin init (1) internal static options (constant); /* incremental dump mode */ 1 5 dcl cons fixed bin init (2) internal static options (constant); /* consolidated dump mode */ 1 6 dcl comp fixed bin init (3) internal static options (constant); /* complete dump mode */ 1 7 dcl backup_version_1 fixed bin init (1) static internal options (constant); /* backup_version_1 of input/output structures */ 1 8 1 9 1 10 1 11 /* END INCLUDE FILE ... backup_static_variables.incl.pl1 */ 1029 1030 2 1 /* BEGIN INCLUDE FILE backup_volume_contents.incl.pl1 ... May 1976 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-11-10,GWMay), approve(86-11-10,MCR7445), audit(86-11-19,GDixon), 2 7* install(86-11-21,MR12.0-1223): 2 8* increased the size of the offset field to fixed bin (18). 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 dcl contentsp ptr; /* ptr to structure */ 2 13 2 14 dcl backup_volume_contents_version_3 fixed bin static init (3) options (constant); 2 15 2 16 2 17 dcl 1 v1_backup_volume_contents based (contentsp) aligned, 2 18 2 header like backup_volume_header aligned, 2 19 2 version fixed bin, /* version number of structure */ 2 20 2 volname char (32), /* volume name */ 2 21 2 volid bit (36), /* volume id */ 2 22 2 next fixed bin, /* index of next available slot in uid array */ 2 23 2 array (1: 1 refer (backup_volume_contents.next)), /* array of arrays of data objects on this output volume */ 2 24 3 uid bit (36); /* uid */ 2 25 2 26 dcl 1 v2_backup_volume_contents based (contentsp) aligned, 2 27 2 header like backup_volume_header aligned, 2 28 2 version fixed bin, /* version number of structure */ 2 29 2 volname char (32), /* volume name */ 2 30 2 volid bit (36), /* volume id */ 2 31 2 next fixed bin, /* index of next available slot in uid array */ 2 32 2 pad (10) bit (36), 2 33 2 array (1: 1 refer (backup_volume_contents.next)), /* array of arrays of data objects on this output volume */ 2 34 3 uid bit (36), /* uid */ 2 35 3 location, /* offset of name string */ 2 36 4 component fixed bin (17) unal, 2 37 4 offset fixed bin (17) unal ; 2 38 2 39 dcl 1 backup_volume_contents based (contentsp) aligned, 2 40 2 header like backup_volume_header aligned, 2 41 2 version fixed bin, /* version number of structure */ 2 42 2 volname char (32), /* volume name */ 2 43 2 volid bit (36), /* volume id */ 2 44 2 next fixed bin, /* index of next available slot in uid array */ 2 45 2 pad (10) bit (36), 2 46 2 array (1: 1 refer (backup_volume_contents.next)), /* array of arrays of data objects on this output volume */ 2 47 3 uid bit (36), /* uid */ 2 48 3 tape_loc fixed bin (35), 2 49 3 pad1 bit (36), 2 50 3 location, /* offset of name string */ 2 51 4 component fixed bin (18) unsigned unal, 2 52 4 offset fixed bin (18) unsigned unal ; 2 53 2 54 dcl contents_namesp ptr; /* ptr to optional name seg */ 2 55 2 56 dcl 1 backup_volume_contents_names based (contents_namesp) aligned, 2 57 2 version fixed bin, 2 58 2 offset fixed bin (18), /* next free location */ 2 59 2 pad (6) bit (36), 2 60 2 begin bit (36); 2 61 2 62 2 63 /* END INCLUDE FILE backup_volume_contents.incl.pl1 */ 1031 1032 3 1 /* BEGIN INCLUDE FILE ... backup_volume_header ... Feb 1976 */ 3 2 3 3 dcl hdp ptr; /* ptr to header */ 3 4 3 5 dcl 1 backup_volume_header based (hdp) aligned, 3 6 2 pattern1 bit (36), /* unique word 1 */ 3 7 2 rec1_type fixed bin, /* record 1 type */ 3 8 2 rec1_len fixed bin, /* length in chars */ 3 9 2 pattern2 bit (36), /* unique word 2 */ 3 10 2 rec2_type fixed bin, /* record 2 type */ 3 11 2 rec2_len fixed bin, /* length in chars */ 3 12 2 pattern3 bit (36), /* unique word 3 */ 3 13 2 time_dumped bit (36); /* dump time of this record */ 3 14 3 15 dcl vtoce_type fixed bin static init (1) options (constant); /* type code for vtoce */ 3 16 dcl dir_type fixed bin static init (2) options (constant); /* type code for directory */ 3 17 dcl seg_type fixed bin static init (3) options (constant); /* type code for segment */ 3 18 dcl null_type fixed bin static init (4) options (constant); /* type code for null record */ 3 19 dcl volume_log_type fixed bin static init (5) options (constant); /* type code for volume log */ 3 20 dcl prev_output_log_type fixed bin static init (6) options (constant); /* type code for prev output log */ 3 21 dcl contents_type fixed bin static init (7) options (constant); /* type code for contents segment of previous volume */ 3 22 dcl info_type fixed bin static init (8) options (constant); /* type code for info structure */ 3 23 3 24 dcl pattern1 bit (36) int static init ("110111000011001100011101101010100101"b) options (constant); 3 25 dcl pattern2 bit (36) int static init ("101001010101101110001100110000111011"b) options (constant); 3 26 dcl pattern3 bit (36) int static init ("001000111100110011100010010101011010"b) options (constant); 3 27 3 28 /* END INCLUDE FILE ... backup_volume_header */ 1033 1034 4 1 /* BEGIN INCLUDE FILE ... backup_volume_record.incl.pl1 ... March 1976 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-10-05,GWMay), approve(88-10-05,MCR8005), audit(88-10-12,Farley), 4 7* install(88-10-17,MR12.2-1173): 4 8* Added a version 2 constant 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 dcl recordp ptr; 4 13 4 14 dcl backup_volume_record_version_1 fixed bin static init (1) options (constant); 4 15 dcl backup_volume_record_version_2 fixed bin static init (2) options (constant); 4 16 4 17 dcl 1 backup_volume_record based (recordp) aligned, 4 18 2 header like backup_volume_header aligned, 4 19 2 version fixed bin, /* version number of structure */ 4 20 2 pvid bit (36), /* physical volume id */ 4 21 2 vtocx fixed bin, /* vtoc index of returned vtoc entry */ 4 22 2 vtoce like vtoce aligned; /* vtoc entry */ 4 23 4 24 /* END INCLUDE FILE ... backup_volume_record.incl.pl1 */ 1035 1036 5 1 /* BEGIN INCLUDE FILE ... backup_volume_log.incl.pl1 ... Feb 1976 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(88-03-03,GWMay), approve(89-10-03,MCR8135), 5 6* audit(89-10-04,Beattie), install(89-10-10,MR12.3-1089): 5 7* Added values for storing the number of incremental and consolidated dump 5 8* sets to retain in the volume log. Incremented version number to 3. 5 9* END HISTORY COMMENTS */ 5 10 5 11 5 12 /* Modified: 3/7/84 by GA Texada to change to version 2 */ 5 13 dcl bvlp ptr; 5 14 dcl bvlep ptr; 5 15 5 16 dcl backup_volume_log_version_1 fixed bin static init (1) options (constant); 5 17 dcl backup_volume_log_version_2 fixed bin init(2) int static options(constant); 5 18 dcl backup_volume_log_version_3 fixed bin init(3) int static options(constant); 5 19 5 20 dcl 1 backup_volume_log based (bvlp) aligned, 5 21 2 header like backup_volume_header aligned, 5 22 2 info like backup_pvol_info aligned, 5 23 2 version fixed bin, /* version number */ 5 24 2 lock bit (36), /* shared data base */ 5 25 2 pvname char (32), /* physical volume name */ 5 26 2 pvid bit (36), /* physical volume id */ 5 27 2 next fixed bin, /* next available dump record */ 5 28 2 reload_groups fixed bin, /* number of reload groups in log */ 5 29 2 purge_control (3), /* control selective purging by dump type */ 5 30 3 group (36) bit (1) unaligned, /* up to 36 reload groups */ 5 31 2 disk_type fixed bin unal, /* type of disk drive */ 5 32 2 half_word_pad bit(18) unal, /* MBZ */ 5 33 2 rpv_pvid bit(36), /* pvid of this volumes RPV */ 5 34 2 Nsaved_incr_sets fixed bin, /* number of incr cycles to retain */ 5 35 2 Nsaved_cons_sets fixed bin, /* number of incr cycles to retain */ 5 36 2 pad (31) bit (36), /* for future expansion (MBZ) */ 5 37 2 array (1:1 refer (backup_volume_log.next)) like bvle aligned; 5 38 5 39 dcl 1 bvle based (bvlep) aligned, 5 40 2 cycle_uid bit (36), /* uid of this dump cycle */ 5 41 2 dump_type fixed bin, /* type of dump */ 5 42 2 volname char (32), /* name of output volume */ 5 43 2 open_time fixed bin (71), /* opening time of dump pass on this physical volume */ 5 44 2 close_time fixed bin (71), /* ending time of dump pass */ 5 45 2 volid bit (36), /* uid of output volume */ 5 46 2 io_module char (32), /* outer module name that wrote this volume */ 5 47 2 flags, /* flags */ 5 48 3 purge_scan_logged bit (1) unaligned, /* if on object looged during purge scan */ 5 49 3 pad1 bit (35) unaligned, 5 50 2 pad (7) bit (36), /* for future expansion */ 5 51 (2 dir_num fixed bin, /* number of dirs dumped on this pass */ 5 52 2 dir_rec fixed bin, /* number of records of dirs */ 5 53 2 seg_num fixed bin, /* number of segs dumped on this pass */ 5 54 2 seg_rec fixed bin) unaligned; /* number of records of segs */ 5 55 5 56 /* END INCLUDE FILE ... backup_volume_log */ 1037 1038 6 1 /* BEGIN INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 6 2 6 3 dcl bpvip ptr; 6 4 6 5 dcl 1 backup_pvol_info based (bpvip) aligned, 6 6 2 label like label aligned, 6 7 2 n_vtoce fixed bin, 6 8 2 n_free_vtoce fixed bin, 6 9 2 n_rec fixed bin, 6 10 2 baseadd fixed bin, 6 11 2 n_free_rec fixed bin; 6 12 6 13 /* END INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 1039 1040 7 1 /* BEGIN INCLUDE FILE ... dir_header.incl.pl1 */ 7 2 /* Modified 8/74 for NSS */ 7 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */ 7 4 /* Modified 3/82 BIM for change pclock */ 7 5 /* format: style3 */ 7 6 7 7 /* Template for the directory header. Length = 64 words. */ 7 8 7 9 dcl dp ptr; 7 10 7 11 dcl 1 dir based (dp) aligned, 7 12 7 13 2 modify bit (36), /* Process ID of last modifier */ 7 14 2 type bit (18) unaligned, /* type of object = dir header */ 7 15 2 size fixed bin (17) unaligned, /* size of header in words */ 7 16 2 dtc (3), /* date-time checked by salvager array */ 7 17 3 date bit (36), /* the date */ 7 18 3 error bit (36), /* what errors were discovered */ 7 19 7 20 2 uid bit (36), /* uid of the directory - copied from branch */ 7 21 7 22 2 pvid bit (36), /* phys vol id of the dir - copied from branch */ 7 23 7 24 2 sons_lvid bit (36), /* log vol id for inf non dir seg - copied from branch */ 7 25 7 26 2 access_class bit (72), /* security attributes of dir - copied from branch */ 7 27 7 28 (2 vtocx fixed bin (17), /* vtoc entry index of the dir - copied from branch */ 7 29 2 version_number fixed bin (17), /* version number of header */ 7 30 7 31 2 entryfrp bit (18), /* rel ptr to beginning of entry list */ 7 32 2 pad2 bit (18), 7 33 7 34 2 entrybrp bit (18), /* rel ptr to end of entry list */ 7 35 2 pad3 bit (18), 7 36 7 37 2 pers_frp bit (18), /* rel ptr to start of person name list */ 7 38 2 proj_frp bit (18), /* rel ptr to start of project name list */ 7 39 7 40 2 pers_brp bit (18), /* rel ptr to end of person name list */ 7 41 2 proj_brp bit (18), /* rel ptr to end of project name list */ 7 42 7 43 2 seg_count fixed bin (17), /* number of non-directory branches */ 7 44 2 dir_count fixed bin (17), /* number of directory branches */ 7 45 7 46 2 lcount fixed bin (17), /* number of links */ 7 47 2 acle_total fixed bin (17), /* total number of ACL entries in directory */ 7 48 7 49 2 arearp bit (18), /* relative pointer to beginning of allocation area */ 7 50 2 per_process_sw bit (1), /* indicates dir contains per process segments */ 7 51 2 master_dir bit (1), /* TRUE if this is a master dir */ 7 52 2 force_rpv bit (1), /* TRUE if segs must be on RPV */ 7 53 2 rehashing bit (1), /* TRUE if hash table is being constructed */ 7 54 2 pad4 bit (14), 7 55 7 56 2 iacl_count (0:7), 7 57 3 seg fixed bin (17), /* number of initial acl entries for segs */ 7 58 3 dir fixed bin (17), /* number of initial acl entries for dir */ 7 59 7 60 2 iacl (0:7), /* pointer to initial ACLs for each ring */ 7 61 3 seg_frp bit (18), /* rel ptr to start of initial ACL for segs */ 7 62 3 seg_brp bit (18), /* rel ptr to end of initial ACL for segs */ 7 63 7 64 3 dir_frp bit (18), /* rel ptr to start of initial for dirs */ 7 65 3 dir_brp bit (18), /* rel ptr to end of initial ACL for dirs */ 7 66 7 67 2 htsize fixed bin (17), /* size of hash table */ 7 68 2 hash_table_rp bit (18), /* rel ptr to start of hash table */ 7 69 7 70 2 htused fixed bin (17), /* no. of used places in hash table */ 7 71 2 pad6 fixed bin (17), 7 72 7 73 2 tree_depth fixed bin (17), /* number of levels from root of this dir */ 7 74 2 pad7 bit (18)) unaligned, 7 75 7 76 2 dts bit (36), /* date-time directory last salvaged */ 7 77 7 78 2 master_dir_uid bit (36), /* uid of superior master dir */ 7 79 2 change_pclock fixed bin (35), /* up one each call to sum$dirmod */ 7 80 2 pad8 (11) bit (36), /* pad to make it a 64 word header */ 7 81 2 checksum bit (36), /* checksummed from uid on */ 7 82 2 owner bit (36); /* uid of parent dir */ 7 83 7 84 dcl version_number_2 fixed bin int static options (constant) init (2); 7 85 7 86 /* END INCLUDE FILE ... dir_header.incl.pl1 */ 1041 1042 8 1 /* BEGIN INCLUDE FILE ... dir_name.incl.pl1 ... last modified Nov 1975 for nss */ 8 2 8 3 /* Template for names of branches or links. Length = 14 words. */ 8 4 8 5 dcl np ptr; 8 6 8 7 dcl 1 names based aligned, /* based on ptr(dp,ep->entry.name_frp) */ 8 8 2 fp bit(18) unaligned, /* rel ptr to next name */ 8 9 2 bp bit(18) unaligned, /* rel ptr to prev name */ 8 10 8 11 2 type bit (18) unaligned, /* type = dir name */ 8 12 2 size fixed bin (17) unaligned, /* size of dir name */ 8 13 8 14 2 entry_rp bit(18) unaligned, /* rel ptr to entry */ 8 15 2 ht_index fixed bin(17) unaligned, /* index of hash table entry */ 8 16 8 17 2 hash_thread bit (18) unal, /* relative ptr to next hash entry */ 8 18 2 pad3 bit (18) unal, 8 19 8 20 2 name char(32) aligned, 8 21 8 22 2 checksum bit (36), /* checksum from entry_rp */ 8 23 8 24 2 owner bit (36); /* uid of entry */ 8 25 8 26 8 27 /* END INCLUDE FILE ... dir_name.incl.pl1 */ 1043 1044 9 1 /* BEGIN INCLUDE FILE ... dir_entry.incl.pl1 ...last modified August 1974 for nss */ 9 2 9 3 9 4 /* Template for an entry. Length = 38 words */ 9 5 9 6 dcl ep ptr; 9 7 9 8 dcl 1 entry based (ep) aligned, 9 9 9 10 (2 efrp bit (18), /* forward rel ptr to next entry */ 9 11 2 ebrp bit (18)) unaligned, /* backward rel ptr to previous entry */ 9 12 9 13 2 type bit (18) unaligned, /* type of object = dir entry */ 9 14 2 size fixed bin (17) unaligned, /* size of dir entry */ 9 15 9 16 2 uid bit (36), /* unique id of entry */ 9 17 9 18 2 dtem bit (36), /* date-time entry modified */ 9 19 9 20 (2 bs bit (1), /* branch switch = 1 if branch */ 9 21 2 pad0 bit (17), 9 22 2 nnames fixed bin (17), /* number of names for this entry */ 9 23 9 24 2 name_frp bit (18), /* rel pointer to start of name list */ 9 25 2 name_brp bit (18), /* rel pointer to end of name list */ 9 26 9 27 2 author, /* user who created branch */ 9 28 3 pers_rp bit (18), /* name of user who created branch */ 9 29 3 proj_rp bit (18), /* project of user who created branch */ 9 30 9 31 3 tag char (1), /* tag of user who created branch */ 9 32 3 pad1 char (3), 9 33 9 34 2 primary_name bit (504), /* first name on name list */ 9 35 9 36 2 dtd bit (36), /* date time dumped */ 9 37 9 38 2 pad2 bit (36), 9 39 9 40 9 41 /* the declarations below are for branch only */ 9 42 9 43 9 44 2 pvid bit (36), /* physical volume id */ 9 45 9 46 2 vtocx fixed bin (17), /* vtoc entry index */ 9 47 2 pad3 bit (18), 9 48 9 49 2 dirsw bit (1), /* = 1 if this is a directory branch */ 9 50 2 oosw bit (1), /* out of service switch on = 1 */ 9 51 2 per_process_sw bit (1), /* indicates segment is per process */ 9 52 2 copysw bit (1), /* = 1 make copy of segment whenever initiated */ 9 53 2 safety_sw bit (1), /* if 1 then entry cannot be deleted */ 9 54 2 multiple_class bit (1), /* segment has multiple security classes */ 9 55 2 audit_flag bit (1), /* segment must be audited for security */ 9 56 2 security_oosw bit (1), /* security out of service switch */ 9 57 2 entrypt_sw bit (1), /* 1 if call limiter is to be enabled */ 9 58 2 master_dir bit (1), /* TRUE for master directory */ 9 59 2 tpd bit (1), /* TRUE if this segment is never to go on the PD */ 9 60 2 pad4 bit (11), 9 61 2 entrypt_bound bit (14)) unaligned, /* call limiter */ 9 62 9 63 2 access_class bit (72) aligned, /* security attributes : level and category */ 9 64 9 65 (2 ring_brackets (3) bit (3), /* ring brackets on segment */ 9 66 2 ex_ring_brackets (3) bit (3), /* extended ring brackets */ 9 67 2 acle_count fixed bin (17), /* number of entries on ACL */ 9 68 9 69 2 acl_frp bit (18), /* rel ptr to start of ACL */ 9 70 2 acl_brp bit (18), /* rel ptr to end of ACL */ 9 71 9 72 2 bc_author, /* user who last set the bit count */ 9 73 3 pers_rp bit (18), /* name of user who set the bit count */ 9 74 3 proj_rp bit (18), /* project of user who set the bit count */ 9 75 9 76 3 tag char (1), /* tag of user who set the bit count */ 9 77 3 pad5 bit (2), 9 78 2 bc fixed bin (24)) unaligned, /* bit count for segs, msf indicator for dirs */ 9 79 9 80 2 sons_lvid bit (36), /* logical volume id for immediat inf non dir seg */ 9 81 9 82 2 pad6 bit (36), 9 83 9 84 2 checksum bit (36), /* checksum from dtd */ 9 85 9 86 2 owner bit (36); /* uid of containing directory */ 9 87 9 88 /* END INCLUDE FILE ... dir_entry.incl.pl1 ... */ 1045 1046 10 1 /* BEGIN INCLUDE FILE ... dmpr_data_.incl.pl1 Feb 1976 */ 10 2 /* format: style1,ind2,^inddcls,ifthenstmt,dclind2,declareind2,ifthendo,ifthen*/ 10 3 /* Modified 7/79 by D. Vinograd to add new variables and change to based structure */ 10 4 /* Modified: 1/26/83 by GA Texada to add cur_vol_open and change version to 2. */ 10 5 /* Modified: 04/05/83 by GA Texada to add trace switch to support tracing. */ 10 6 /* Modified 04/84 by GA Texada to change to version 3 (disk_type). This begins the adding of new items */ 10 7 /* to the END of the structure to facilite easy additions. */ 10 8 dcl dmprp ptr ext static init (null); 10 9 dcl dmpr_data_version_2 fixed bin int static init (2) options (constant); 10 10 dcl dmpr_data_version_3 fixed bin int static init (3) options (constant); 10 11 /* Version 3 is current */ 10 12 10 13 dcl 1 dmpr_data_ aligned based (dmprp), 10 14 2 version fixed bin, /* version */ 10 15 2 lock bit (36), /* inter-lock */ 10 16 2 ptrs, 10 17 3 pre_attach_pvlp (50) ptr, /* array of pvolog ptrs */ 10 18 3 contents_namesp ptr, /* ptr to contents name seg */ 10 19 3 pre_attach_iocbp (50) ptr, /* array of output iocbp */ 10 20 3 pvlp ptr, /* ptr to dump volume log */ 10 21 3 account_iocbp ptr, /* iocbp for account seg */ 10 22 3 infop ptr, /* ptr to info seg */ 10 23 3 inputp ptr, /* ptr to input storage for sup interface */ 10 24 3 recordp ptr, /* ditto for output */ 10 25 3 control_iocbp ptr, /* iocbp for dump control segment */ 10 26 3 error_iocbp ptr, /* iocbp for error output file */ 10 27 3 outputvol_iocbp ptr, /* iocbp for dump volume */ 10 28 3 contentsp ptr, /* ptr to dump volume table of contents */ 10 29 3 bvlp ptr, /* ptr to volume log */ 10 30 3 dirp ptr, /* ptr to directory buffer seg */ 10 31 3 segp ptr, /* ptr to segment to be dumped */ 10 32 3 fcbp ptr, /* ptr to file control block for contents_name msf */ 10 33 3 vpp ptr, /* ptr to volume pool */ 10 34 2 fixed_bin, 10 35 3 retrys fixed bin, /* number of time segment disappeared while being dumped */ 10 36 3 physical_volume_dir_num fixed bin, /* number of dirs dumped from this physical volume */ 10 37 3 physical_volume_dir_rec fixed bin, /* number of dir records on this physical volume */ 10 38 3 physical_volume_seg_num fixed bin, /* number of segs dumped from this physical volume */ 10 39 3 physical_volume_seg_rec fixed bin, /* number of seg records dumped from this physical volume */ 10 40 3 vol_log_dir_num fixed bin, /* dirs dumped from pvol to dump vol */ 10 41 3 vol_log_dir_rec fixed bin, /* dir rec on this pvol to dump vol */ 10 42 3 vol_log_seg_num fixed bin, /* segs dumped from pvol to dump vol */ 10 43 3 vol_log_seg_rec fixed bin, /* seg rec dumped from pvol to dump vol */ 10 44 3 dump_volume_dir_num fixed bin, /* number of dirs dumped on this dump volume */ 10 45 3 dump_volume_dir_rec fixed bin, /* number of dir records on this dump volume */ 10 46 3 dump_volume_seg_num fixed bin, /* number of segs dumped on this dump volume */ 10 47 3 dump_volume_seg_rec fixed bin, /* number of seg records dumped on this dump volume */ 10 48 3 num_null_vtoce fixed bin, /* number of null vtoce dumped from this physical volume */ 10 49 3 num_vtoce_only fixed bin, /* number of vtoce only */ 10 50 3 mod_after_time fixed bin (71), /* dump all modified since this date */ 10 51 3 dump_type fixed bin, /* type of dump */ 10 52 3 save_time fixed bin (71), /* date, time of start of dump */ 10 53 3 start_time fixed bin (71), /* start time of physical volume pass */ 10 54 3 wakeup_interval fixed bin (71), /* interval between wakeups of dumper in micro secs. */ 10 55 3 incr_ev_chn fixed bin (71), /* event chn used to wakeup incremental dumper */ 10 56 3 incr_skip_count fixed bin, /* number of incr cycles skiped befor purging */ 10 57 3 pre_attach_vol fixed bin, /* if greater then 1 then pre attach output streams */ 10 58 3 vol_idx fixed bin, /* index of multi volume attachment sequence */ 10 59 3 component fixed bin, /* msf component of contents_name seg */ 10 60 2 bits, 10 61 3 volid bit (36), /* uid of dump volume */ 10 62 3 pre_attach_volid (50) bit (36), /* array of volid */ 10 63 3 cycle_uid bit (36), /* uid of this dump cycle */ 10 64 3 pvid bit (36), /* uid of physical volume being dumped */ 10 65 3 flags, 10 66 ( 4 purge bit (1), /* if on purge volume logs */ 10 67 4 auto_vol bit (1), /* if on use automatic dump volume selection */ 10 68 4 disable_error_report bit (1), /* if on disables error reporting */ 10 69 4 arg_init bit (1), /* if on indicates args have been processed */ 10 70 4 manual_free bit (1), /* on if manual free will be done */ 10 71 4 err_online bit (1), /* Flag error output to be online, default to a file */ 10 72 4 detach bit (1), /* if on control detachment of dump volume */ 10 73 4 no_object bit (1), /* if on not copy object from ring 0 */ 10 74 4 no_update bit (1), /* if on prevent vtoce update */ 10 75 4 data_init bit (1), /* if on indicates that data structure has been initialized */ 10 76 4 reset bit (1), /* if on put items back on list */ 10 77 4 accounting bit (1), /* if on enables accounting */ 10 78 4 dmpr_asleep bit (1), /* dumper is asleep - interlock to prevent restart of last volume */ 10 79 4 dump_in_progress bit (1), /* recursive entry interlock */ 10 80 4 not_reported bit (1), /* on if output counts not reported */ 10 81 4 names bit (1), /* collect all names from dirs that are dumped */ 10 82 4 cur_vol_open bit (1), /* if a successful open on this volname */ 10 83 4 trace bit (1), /* ON => trace */ 10 84 4 pad bit (18)) unal, /* fill out the word properly */ 10 85 3 old_256K_switch bit(2) aligned, /* 256K segs enabled prior to this dumper invocation?*/ 10 86 3 rpv_pvid bit (36), /* because the label really doesn't have it */ 10 87 2 chars, 10 88 3 sys_dir char (168), /* system directory where all volume dumper data lives */ 10 89 3 prev_volname char (32), 10 90 3 pre_attach_volname (50) char (32), /* array of volnames */ 10 91 3 io_module char (32), /* name of attached outer module for output io */ 10 92 3 pvname char (32), /* name of physical volume being dumped */ 10 93 3 att_desc char (256), /* attach description for output */ 10 94 3 volname char (32), /* name of dump volume */ 10 95 3 control_name char (32), /* dump control file name */ 10 96 3 myname char (32), /* name of entry called */ 10 97 3 operator char (32), /* operator name */ 10 98 3 restart_pvname char (32), /* where to restart complete or consolidated dump */ 10 99 3 lvname char (32), /* name of logical volume being dumped */ 10 100 2 disk_type fixed bin; /* disk type for recording in the volog */ 10 101 10 102 10 103 /* END OF INCLUDE FILE ... dmpr_data_.incl.pl1 */ 1047 1048 11 1 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 11 2 11 3 /****^ HISTORY COMMENTS: 11 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 11 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 11 6* Add the subvolume info. 11 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 11 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 11 9* Added inconsistent_dbm bit used to determine consistency of volume 11 10* dumper bit maps. 11 11* END HISTORY COMMENTS */ 11 12 11 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 11 14 /* Note: fsout_vol clears pad fields before writing the label */ 11 15 11 16 dcl labelp ptr; 11 17 11 18 dcl 1 label based (labelp) aligned, 11 19 11 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 11 21 11 22 2 gcos (5*64) fixed bin, 11 23 11 24 /* Now we have the Multics label */ 11 25 11 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 11 27 2 version fixed bin, /* Version 1 */ 11 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 11 29 2 pv_name char (32), /* Physical volume name. */ 11 30 2 lv_name char (32), /* Name of logical volume for pack */ 11 31 2 pvid bit (36), /* Unique ID of this pack */ 11 32 2 lvid bit (36), /* unique ID of its logical vol */ 11 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 11 34 2 time_registered fixed bin (71), /* time imported to system */ 11 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 11 36 2 vol_size fixed bin, /* total size of volume, in records */ 11 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 11 38 2 not_used bit (1) unal, /* used to be multiple_class */ 11 39 2 private bit (1) unal, /* TRUE if was registered as private */ 11 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 11 41 2 flagpad bit (33) unal, 11 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 11 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 11 44 2 password bit (72), /* not yet used */ 11 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 11 46 2 this_sv fixed bin, /* what subvolume number it is */ 11 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 11 48 2 pad1 (13) fixed bin, 11 49 2 time_mounted fixed bin (71), /* time mounted */ 11 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 11 51 11 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 11 53* forces a salvage if an MR10 pack is mounted on an earlier system. 11 54* */ 11 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 11 56 2 pad6 fixed bin, 11 57 11 58 2 time_salvaged fixed bin (71), /* time salvaged */ 11 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 11 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 11 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 11 62 2 pad1a (2) fixed bin, 11 63 2 err_hist_size fixed bin, /* size of pack error history */ 11 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 11 65 2 time_last_reloaded fixed bin (71), /* what it says */ 11 66 2 pad2 (40) fixed bin, 11 67 2 root, 11 68 3 here bit (1), /* TRUE if the root is on this pack */ 11 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 11 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 11 71 3 pad7 bit (1) aligned, 11 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 11 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 11 74 3 esd_state fixed bin, /* State of esd */ 11 75 2 volmap_record fixed bin, /* Begin record of volume map */ 11 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 11 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 11 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 11 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 11 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 11 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 11 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 11 83 2 pad3 (52) fixed bin, 11 84 2 nparts fixed bin, /* Number of special partitions on pack */ 11 85 2 parts (47), 11 86 3 part char (4), /* Name of partition */ 11 87 3 frec fixed bin, /* First record */ 11 88 3 nrec fixed bin, /* Number of records */ 11 89 3 pad5 fixed bin, 11 90 2 pad4 (5*64) fixed bin; 11 91 11 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 11 93 11 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 1049 1050 12 1 /* Begin include file ..... iox_modes.incl.pl1 */ 12 2 12 3 /* Written by C. D. Tavares, 03/17/75 */ 12 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 12 5 12 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 12 7 ("stream_input", "stream_output", "stream_input_output", 12 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 12 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 12 10 "direct_input", "direct_output", "direct_update"); 12 11 12 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 12 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 12 14 12 15 dcl (Stream_input initial (1), 12 16 Stream_output initial (2), 12 17 Stream_input_output initial (3), 12 18 Sequential_input initial (4), 12 19 Sequential_output initial (5), 12 20 Sequential_input_output initial (6), 12 21 Sequential_update initial (7), 12 22 Keyed_sequential_input initial (8), 12 23 Keyed_sequential_output initial (9), 12 24 Keyed_sequential_update initial (10), 12 25 Direct_input initial (11), 12 26 Direct_output initial (12), 12 27 Direct_update initial (13)) fixed bin int static options (constant); 12 28 12 29 /* End include file ..... iox_modes.incl.pl1 */ 1051 1052 13 1 /* BEGIN INCLUDE FILE ... pvolog.incl.pl1 9/76 */ 13 2 13 3 dcl pvlp ptr; 13 4 dcl pvlep ptr; 13 5 13 6 dcl pvolog_version_1 fixed bin int static init (1) options (constant); 13 7 13 8 dcl 1 pvolog aligned based (pvlp), 13 9 2 lock bit (36), 13 10 2 version fixed bin, 13 11 2 dump_type fixed bin, 13 12 2 mount_time fixed bin (71), 13 13 2 volid bit (36), 13 14 2 next fixed bin, 13 15 2 in_use fixed bin, 13 16 2 array (1:1 refer (pvolog.next)) like pvle aligned; 13 17 13 18 dcl 1 pvle based (pvlep) aligned, 13 19 2 pvname char (32), 13 20 2 invocation_count fixed bin; 13 21 13 22 /* END INCLUDE FILE ... pvolog.incl.pl1 */ 1053 1054 14 1 /* BEGIN INCLUDE FILE ... system_constants.incl.pl1 */ 14 2 14 3 /****^ HISTORY COMMENTS: 14 4* 1) change(86-11-12,GWMay), approve(86-11-12,MCR7445), audit(86-11-19,GDixon), 14 5* install(86-11-21,MR12.0-1223): 14 6* created. 14 7* END HISTORY COMMENTS */ 14 8 14 9 /* format: off */ 14 10 14 11 /* ************************************************************************ */ 14 12 /* */ 14 13 /* Function: Provides constants for commonly used Multics system values. */ 14 14 /* */ 14 15 /* Usage: These values are available for use in place of "magic" numbers */ 14 16 /* (unexplained numbers) in programming applications. */ 14 17 /* */ 14 18 /* Definitions: */ 14 19 /* */ 14 20 /* PER bit character/byte word page segment */ 14 21 /* */ 14 22 /* bits 1 9 36 36864 9400320 */ 14 23 /* characters/bytes 1 4 4096 1044480 */ 14 24 /* words 1 1024 261120 */ 14 25 /* pages 1 255 */ 14 26 /* segments 1 */ 14 27 /* */ 14 28 /* The base values for a bit, char, word and page are determined by the */ 14 29 /* Multics hardware implementation. The other values are calculated from */ 14 30 /* their relation to one another as shown in the matrix above. */ 14 31 /* */ 14 32 /* BITS_PER_CHAR = 9 (defined by the hardware) */ 14 33 /* BITS_PER_WORD = BITS_PER_CHAR * CHARS_PER_WORD */ 14 34 /* = 9 * 4 */ 14 35 /* = 36 */ 14 36 /* BITS_PER_PAGE = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE */ 14 37 /* = 9 * 4 * 1024 */ 14 38 /* = 36864 */ 14 39 /* BITS_PER_SEGMENT = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE * */ 14 40 /* PAGES_PER_SEGMENT */ 14 41 /* = 9 * 4 * 1024 * 255 */ 14 42 /* = 9400320 */ 14 43 /* */ 14 44 /* CHARS_PER_WORD = 4 (defined by the hardware) */ 14 45 /* CHARS_PER_PAGE = CHARS_PER_WORD * WORDS_PER_PAGE */ 14 46 /* = 4 * 1024 */ 14 47 /* = 4096 */ 14 48 /* CHARS_PER_SEGMENT = CHARS_PER_WORD * WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 14 49 /* = 4 * 1024 * 255 */ 14 50 /* = 1044480 */ 14 51 /* */ 14 52 /* WORDS_PER_PAGE = 1024 (defined by the hardware) */ 14 53 /* WORDS_PER_SEGMENT = WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 14 54 /* = 1024 * 255 */ 14 55 /* = 261120 */ 14 56 /* */ 14 57 /* PAGES_PER_SEGMENT = 255 (defined by system standard) */ 14 58 /* */ 14 59 /* ************************************************************************ */ 14 60 14 61 declare BITS_PER_CHAR fixed bin (4) internal static 14 62 options (constant) initial (9); 14 63 14 64 declare BITS_PER_WORD fixed bin (6) internal static 14 65 options (constant) initial (36); 14 66 14 67 declare BITS_PER_PAGE fixed bin (16) internal static 14 68 options (constant) initial (36864); 14 69 14 70 declare BITS_PER_SEGMENT fixed bin (24) internal static 14 71 options (constant) initial (9400320); 14 72 14 73 declare CHARS_PER_WORD fixed bin (3) internal static 14 74 options (constant) initial (4); 14 75 14 76 declare CHARS_PER_PAGE fixed bin (13) internal static 14 77 options (constant) initial (4096); 14 78 14 79 declare CHARS_PER_SEGMENT fixed bin (21) internal static 14 80 options (constant) initial (1044480); 14 81 14 82 /* Note: WORDS_PER_PAGE should be equal to sys_info$max_page_size */ 14 83 14 84 declare WORDS_PER_PAGE fixed bin (11) internal static 14 85 options (constant) initial (1024); 14 86 14 87 /* Note: WORDS_PER_SEGMENT should be equal to sys_info$max_seg_size */ 14 88 14 89 declare WORDS_PER_SEGMENT fixed bin (21) internal static 14 90 options (constant) initial (261120); 14 91 14 92 declare PAGES_PER_SEGMENT fixed bin (8) internal static 14 93 options (constant) initial (255); 14 94 14 95 /* END INCLUDE FILE ... system_constants.incl.pl1 */ 14 96 1055 1056 15 1 /* BEGIN INCLUDE FILE ...vtoce.incl.pl1 ... last modified September 1982 */ 15 2 /* Template for a VTOC entry. Length = 192 words. (3 * 64). */ 15 3 /* NOTE: vtoc_man clears pad fields before writing a vtoce. */ 15 4 15 5 dcl vtocep ptr; 15 6 15 7 dcl 1 vtoce based (vtocep) aligned, 15 8 15 9 15 10 (2 pad_free_vtoce_chain bit (36), /* Used to be pointer to next free VTOCE */ 15 11 15 12 2 uid bit (36), /* segment's uid - zero if vtoce is free */ 15 13 15 14 2 msl bit (9), /* maximum segment length in 1024 word units */ 15 15 2 csl bit (9), /* current segment length - in 1024 word units */ 15 16 2 records bit (9), /* number of records used by the seg in second storage */ 15 17 2 pad2 bit (9), 15 18 15 19 2 dtu bit (36), /* date and time segment was last used */ 15 20 15 21 2 dtm bit (36), /* date and time segment was last modified */ 15 22 15 23 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 15 24 2 deciduous bit (1), /* true if hc_sdw */ 15 25 2 nid bit (1), /* no incremental dump switch */ 15 26 2 dnzp bit (1), /* Dont null zero pages */ 15 27 2 gtpd bit (1), /* Global transparent paging device */ 15 28 2 per_process bit (1), /* Per process segment (deleted every bootload) */ 15 29 2 damaged bit (1), /* TRUE if contents damaged */ 15 30 2 fm_damaged bit (1), /* TRUE if filemap checksum bad */ 15 31 2 fm_checksum_valid bit (1), /* TRUE if the checksum has been computed */ 15 32 2 synchronized bit (1), /* TRUE if this is a data management synchronized segment */ 15 33 2 pad3 bit (8), 15 34 2 dirsw bit (1), /* directory switch */ 15 35 2 master_dir bit (1), /* master directory - a root for the logical volume */ 15 36 2 pad4 bit (16)) unaligned, /* not used */ 15 37 15 38 2 fm_checksum bit (36) aligned, /* Checksum of used portion of file map */ 15 39 15 40 (2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 15 41 15 42 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 15 43 15 44 2 received (0:1) fixed bin (18) unsigned, /* total amount of storage this dir has received */ 15 45 15 46 2 trp (0:1) fixed bin (71), /* time record product - (0) for non dir pages */ 15 47 15 48 2 trp_time (0:1) bit (36), /* time time_record_product was last calculated */ 15 49 15 50 15 51 15 52 15 53 15 54 2 fm (0:255) bit (18), /* file map - 256 entries - 18 bits per entry */ 15 55 15 56 2 pad6 (10) bit (36), /* not used */ 15 57 15 58 2 ncd bit (1), /* no complete dump switch */ 15 59 2 pad7 bit (17), 15 60 2 pad8 bit (18), 15 61 15 62 2 dtd bit (36), /* date-time-dumped */ 15 63 15 64 2 volid (3) bit (36), /* volume ids of last incremental, consolidated, and complete dumps */ 15 65 15 66 2 master_dir_uid bit (36), /* superior master directory uid */ 15 67 15 68 15 69 15 70 15 71 2 uid_path (0:15) bit (36), /* uid pathname of all parents starting after the root */ 15 72 15 73 2 primary_name char (32), /* primary name of the segment */ 15 74 15 75 2 time_created bit (36), /* time the segment was created */ 15 76 15 77 2 par_pvid bit (36), /* physical volume id of the parent */ 15 78 15 79 2 par_vtocx fixed bin (17), /* vtoc entry index of the parent */ 15 80 2 branch_rp bit (18)) unaligned, /* rel pointer of the branch of this segment */ 15 81 15 82 2 cn_salv_time bit (36), /* time branch - vtoce connection checked */ 15 83 15 84 2 access_class bit (72), /* access class in branch */ 15 85 2 perm_flags aligned, 15 86 3 per_bootload bit (1) unal, /* ON => deleted each bootload */ 15 87 3 pad9 bit (35) unal, 15 88 2 owner bit (36); /* pvid of this volume */ 15 89 15 90 dcl vtoce_parts (3) bit (36 * 64) aligned based (vtocep); 15 91 15 92 dcl 1 seg_vtoce based (vtocep) aligned, /* Overlay for vtoce of segments, which don't have quota */ 15 93 2 pad1 bit (7*36), 15 94 2 usage fixed bin (35), /* page fault count: overlays quota */ 15 95 2 pad2 bit (184*36); 15 96 15 97 /* END INCLUDE FILE vtoce.incl.pl1 */ 1057 1058 end dmpr_log_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/18/89 1034.4 dmpr_log_.pl1 >spec>install>1095>dmpr_log_.pl1 1029 1 09/05/80 1136.5 backup_static_variables.incl.pl1 >ldd>include>backup_static_variables.incl.pl1 1031 2 11/24/86 1243.9 backup_volume_contents.incl.pl1 >ldd>include>backup_volume_contents.incl.pl1 1033 3 09/05/80 1136.5 backup_volume_header.incl.pl1 >ldd>include>backup_volume_header.incl.pl1 1035 4 10/18/88 1215.0 backup_volume_record.incl.pl1 >ldd>include>backup_volume_record.incl.pl1 1037 5 10/12/89 2013.4 backup_volume_log.incl.pl1 >ldd>include>backup_volume_log.incl.pl1 1039 6 06/07/77 1233.6 backup_pvol_info.incl.pl1 >ldd>include>backup_pvol_info.incl.pl1 1041 7 05/24/82 1005.0 dir_header.incl.pl1 >ldd>include>dir_header.incl.pl1 1043 8 11/02/76 1414.7 dir_name.incl.pl1 >ldd>include>dir_name.incl.pl1 1045 9 04/29/76 1100.6 dir_entry.incl.pl1 >ldd>include>dir_entry.incl.pl1 1047 10 10/24/84 0933.1 dmpr_data_.incl.pl1 >ldd>include>dmpr_data_.incl.pl1 1049 11 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 1051 12 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 1053 13 03/26/81 1320.5 pvolog.incl.pl1 >ldd>include>pvolog.incl.pl1 1055 14 11/24/86 1243.9 system_constants.incl.pl1 >ldd>include>system_constants.incl.pl1 1057 15 10/04/83 1105.1 vtoce.incl.pl1 >ldd>include>vtoce.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. BITS_PER_WORD constant fixed bin(6,0) initial dcl 14-64 ref 400 757 CHARS_PER_WORD constant fixed bin(3,0) initial dcl 14-73 ref 395 395 439 439 Direct_update 000071 constant fixed bin(17,0) initial dcl 12-15 set ref 592* Lall_entry_names 000100 automatic fixed bin(21,0) dcl 77 set ref 299* 315* 315 321* 321 395 439 469 479 484 491 Lcurrent_name 000400 automatic fixed bin(17,0) dcl 465 set ref 468* 478* 479 479 482 483* 484 486 490* 491 Nsaved_cons_sets 2040 based fixed bin(17,0) level 2 dcl 5-20 set ref 837* Nsaved_incr_sets 2037 based fixed bin(17,0) level 2 dcl 5-20 set ref 838* Pall_entry_names 000102 automatic pointer dcl 78 set ref 261* 469 479 484 491 Pentry_name_storage parameter pointer dcl 383 set ref 378 390* 445* Serror 000356 automatic bit(1) dcl 335 set ref 337* 353* 371* 373 a_suffix parameter fixed bin(17,0) dcl 993 ref 983 995 a_volname parameter char packed unaligned dcl 162 set ref 160 173* account_dir 000016 constant char(168) initial packed unaligned dcl 96 set ref 518* 541* 547* 567* account_iocbp 316 based pointer level 3 dcl 10-13 set ref 516* 538 539* 546* 551* 584* 592* accounting 475(11) based bit(1) level 4 packed packed unaligned dcl 10-13 ref 267 accountp 000104 automatic pointer dcl 80 set ref 572* add_key 000271 automatic structure level 1 dcl 111 set ref 516 516 addr builtin function dcl 107 ref 213 222 435 516 516 623 634 672 680 794 adjust_bit_count_ 000036 constant entry external dcl 134 ref 972 all_entry_names based char packed unaligned dcl 79 set ref 469* 479* 484* 491* array 2100 based structure array level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 623 634 672 680 array 35 based structure array level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" array 11 based structure array level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 213 222 backup_pvol_info based structure level 1 dcl 6-5 backup_volume_contents based structure level 1 dcl 2-39 backup_volume_contents_names based structure level 1 dcl 2-56 backup_volume_contents_version_3 constant fixed bin(17,0) initial dcl 2-14 ref 433 749 793 backup_volume_header based structure level 1 dcl 3-5 backup_volume_log based structure level 1 dcl 5-20 backup_volume_log_version_1 constant fixed bin(17,0) initial dcl 5-16 ref 844 backup_volume_log_version_2 constant fixed bin(17,0) initial dcl 5-17 ref 844 backup_volume_log_version_3 constant fixed bin(17,0) initial dcl 5-18 ref 834 844 847 backup_volume_record based structure level 1 dcl 4-17 begin 10 based bit(36) level 2 dcl 2-56 set ref 435 794 bin builtin function dcl 107 ref 435 794 bit_count 000106 automatic fixed bin(24,0) dcl 81 set ref 400* 401* 757* 758* bits 410 based structure level 2 dcl 10-13 bvle based structure level 1 dcl 5-39 bvlep 000326 automatic pointer dcl 5-14 set ref 623* 624 624 625 626 634* 636 637 638 639 640 641 642 643 643 644 644 672* 674 674 674 674 680* 681 681 681 681 692 694 695 696 697 bvlp 000324 automatic pointer dcl 5-13 in procedure "dmpr_log_" set ref 616* 622 623 631 631 632 633 634 667* 672 679 680 703* 826* 831 832 833 834 835 836 837 838 840 842 842 844 844 844 847 848 849 868 868 868 868* 872 911 926 bvlp 336 based pointer level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 616 667 817* 872* chars 500 based structure level 2 dcl 10-13 clock builtin function dcl 107 ref 190 625 639 692 close_time 14 based fixed bin(71,0) level 2 dcl 5-39 set ref 624 625* 641* 674 681 692* code parameter fixed bin(35,0) dcl 82 set ref 160 166* 174* 175 178* 179 180* 183* 200 205* 209 235 240* 242* 401* 404 406* 417* 420 422* 516* 518 518* 534 539* 540 541* 546* 547 547* 557 562* 568* 569 572* 573 574 575* 576 578* 584* 586 587* 592* 593 594* 606 614* 619 658 664* 670 686* 687* 713 718* 726* 727 730* 732* 733 734* 737* 742* 758* 768* 770 772* 778* 779 779 780* 784* 787* 788 790* 811 816* 822* 823 826* 827 841* 854* 855* 862* 883* 884 885 885* 886* 898* 899 899* 911* 912 913 913* 914* 926* 927 927* 965* 966 967* 969* 972* 973 973* 977* component 407 based fixed bin(17,0) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 401* 406* 416* 416 417* 422* 451 758* 777* 787* 790* component 40 based fixed bin(18,0) array level 4 in structure "backup_volume_contents" packed packed unsigned unaligned dcl 2-39 in procedure "dmpr_log_" set ref 255* 451* contents_namesp 146 based pointer level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 393 432* 756 764* 792* contents_namesp 000320 automatic pointer dcl 2-54 in procedure "dmpr_log_" set ref 393* 395 400 417* 432 433 435 435 437 439 445 445 448 454 757 787* 792 793 794 794 796 contents_type constant fixed bin(17,0) initial dcl 3-21 set ref 747* contentsp 334 based pointer level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 241 246 748* contentsp 000316 automatic pointer dcl 2-12 in procedure "dmpr_log_" set ref 246* 249 249 250 250 252 252 253 253 254 254 255 255 448 448 451 451 730* 731 732* 747* 748 749 750 751 752 753 counted_number_of_entries 000107 automatic fixed bin(17,0) dcl 83 set ref 301* 304 309* 309 counted_number_of_entry_names 000110 automatic fixed bin(17,0) dcl 85 set ref 300* 311 314* 314 339 341* current_position 000401 automatic fixed bin(17,0) dcl 465 set ref 470* 479 482* 482 484 486* 486 491 cycle_uid 473 based bit(36) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 626* 640 674 681 cycle_uid based bit(36) level 2 in structure "bvle" dcl 5-39 in procedure "dmpr_log_" set ref 626 640* 674 681 desc 1 000271 automatic structure level 2 dcl 111 dir based structure level 1 dcl 7-11 set ref 798 801 dir_num 37 based fixed bin(17,0) level 2 packed packed unaligned dcl 5-39 set ref 643* 694* dir_rec 37(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 5-39 set ref 643* 695* dirp 340 based pointer level 3 dcl 10-13 ref 259 dirsw 20(18) based bit(1) level 3 packed packed unaligned dcl 4-17 ref 257 disk_type 2035 based fixed bin(17,0) level 2 in structure "backup_volume_log" packed packed unaligned dcl 5-20 in procedure "dmpr_log_" set ref 835* 848* disk_type 1602 based fixed bin(17,0) level 2 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 835 848 divide builtin function dcl 107 ref 395 439 798 801 dmpr_data_ based structure level 1 dcl 10-13 dmpr_report_$error_output 000042 constant entry external dcl 136 ref 180 284 341 359 518 541 547 578 587 594 687 734 742 772 780 855 862 886 899 914 927 967 973 dmpr_report_$online_output 000040 constant entry external dcl 135 ref 270 406 422 828 dmprp 000112 external static pointer initial dcl 10-8 ref 167 172 188 189 192 206 214 224 241 246 247 257 259 267 270 284 341 359 393 401 401 405 406 406 406 406 416 416 417 417 421 422 422 422 422 432 451 515 516 518 538 539 541 546 547 551 567 584 592 616 624 626 626 632 636 637 638 640 642 645 646 647 648 667 674 674 674 681 681 681 687 694 695 696 697 698 700 701 702 724 725 748 750 751 755 756 758 758 760 763 764 765 765 771 777 778 783 787 787 790 790 792 817 821 821 831 832 835 836 842 842 848 849 855 872 886 899 914 927 dn parameter char packed unaligned dcl 988 in procedure "rename_account_file" set ref 983 997* 999* dn 000100 automatic char(168) packed unaligned dcl 1013 in procedure "convert_puid_" set ref 1021* 1025* 1025 dn 000454 automatic char(168) packed unaligned dcl 962 in procedure "set_bc" set ref 965* 972* 973* dname 000111 automatic char(168) packed unaligned dcl 87 set ref 168* 174* 177* 178* 563* 568* 571* 572* 575* 720* 726* 729* 730* 768* 778* 818* 822* 825* 826* dp 000330 automatic pointer dcl 7-9 set ref 259* 284 304 304 341 359 472 472 798 801 dump_idx 000010 internal static fixed bin(17,0) initial dcl 97 set ref 615 633* 634 665 672 679* 680* 705* dump_type 372 based fixed bin(17,0) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 188 515 624 636 674 681 dump_type 1 based fixed bin(17,0) level 2 in structure "bvle" dcl 5-39 in procedure "dmpr_log_" set ref 624 636* 674 681 dump_type 2 based fixed bin(17,0) level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 188* ec 000234 automatic fixed bin(35,0) dcl 1015 in procedure "convert_puid_" set ref 1021* 1022 1023 ec parameter fixed bin(35,0) dcl 994 in procedure "rename_account_file" set ref 983 997* 998 999* 1000 efrp based bit(18) level 2 packed packed unaligned dcl 9-8 ref 319 488 en 000224 automatic char(32) packed unaligned dcl 1014 in procedure "convert_puid_" set ref 1021* 1025 1025* en parameter char packed unaligned dcl 990 in procedure "rename_account_file" set ref 983 997* 997* en 000526 automatic char(32) packed unaligned dcl 963 in procedure "set_bc" set ref 965* 972* 973* ename 000163 automatic char(32) packed unaligned dcl 88 set ref 169* 174* 177* 178* 564* 568* 571* 572* 575* 575* 721* 726* 729* 730* 768* 778* 819* 822* 825* 826* entry based structure level 1 dcl 9-8 ref 798 801 entryfrp 16 based bit(18) level 2 packed packed unaligned dcl 7-11 ref 304 472 ep 000334 automatic pointer dcl 9-6 set ref 304* 304* 307 311 311 318* 319 319 472* 472* 475 475 487* 488 488 798 801 error_table_$action_not_performed 000014 external static fixed bin(35,0) dcl 123 ref 686 error_table_$bad_dir 000016 external static fixed bin(35,0) dcl 124 set ref 341* 359* error_table_$bad_index 000020 external static fixed bin(35,0) dcl 125 set ref 284* error_table_$bad_segment 000022 external static fixed bin(35,0) dcl 126 ref 854 error_table_$bad_volid 000024 external static fixed bin(35,0) dcl 127 ref 183 error_table_$invalid_lock_reset 000026 external static fixed bin(35,0) dcl 128 ref 885 913 error_table_$namedup 000030 external static fixed bin(35,0) dcl 129 ref 574 998 error_table_$noentry 000032 external static fixed bin(35,0) dcl 130 ref 242 779 error_table_$root 000116 external static fixed bin(35,0) dcl 1017 ref 1022 expand_pathname_ 000044 constant entry external dcl 137 ref 768 expand_pathname_$add_suffix 000046 constant entry external dcl 138 ref 174 568 726 822 fcbp 344 based pointer level 3 dcl 10-13 set ref 401* 417* 758* 760* 763* 778* 787* 790* fixed builtin function dcl 107 ref 514 fixed_bin 350 based structure level 2 dcl 10-13 flags 000271 automatic structure level 2 in structure "add_key" dcl 111 in procedure "dmpr_log_" flags 475 based structure level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" found 000173 automatic bit(1) packed unaligned dcl 89 set ref 211* 212 215* 219 fp based bit(18) level 2 packed packed unaligned dcl 8-7 ref 318 487 hbound builtin function dcl 107 ref 502 hc_backup_$decode_uidpath 000120 constant entry external dcl 1018 ref 1021 hcs_$chname 000050 constant entry external dcl 139 ref 997 hcs_$fs_get_path_name 000052 constant entry external dcl 140 ref 965 hcs_$make_seg 000054 constant entry external dcl 141 ref 178 572 730 826 hcs_$truncate_seg 000056 constant entry external dcl 142 ref 732 header based structure level 2 dcl 5-20 i 000174 automatic fixed bin(17,0) dcl 90 set ref 212* 213* 502* 502* 506 506* 508* 508 509 512 622* 623* in_use 10 based fixed bin(17,0) level 2 dcl 13-8 set ref 221* 221 input_desc 0(01) 000271 automatic bit(1) level 3 packed packed unaligned dcl 111 set ref 511* input_key 000271 automatic bit(1) level 3 packed packed unaligned dcl 111 set ref 510* invocation_count 10 based fixed bin(17,0) level 2 dcl 13-18 set ref 216* 216 223* io_module 17 based char(32) level 2 in structure "bvle" dcl 5-39 in procedure "dmpr_log_" set ref 642* io_module 1402 based char(32) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 642 ioa_$rsnnl 000060 constant entry external dcl 143 ref 996 1025 iox_$attach_ioname 000062 constant entry external dcl 144 ref 584 iox_$close 000064 constant entry external dcl 145 ref 539 iox_$control 000066 constant entry external dcl 146 ref 516 iox_$detach_iocb 000070 constant entry external dcl 147 ref 546 iox_$open 000072 constant entry external dcl 148 ref 592 key 3 000271 automatic char(68) level 2 dcl 111 set ref 513* key_len 2 000271 automatic fixed bin(17,0) level 2 dcl 111 set ref 512* label based structure level 1 dcl 11-18 lbound builtin function dcl 107 ref 502 ldn 000536 automatic fixed bin(17,0) dcl 964 set ref 965* length builtin function dcl 107 ref 315 315 321 478 483 490 location 40 based structure array level 3 dcl 2-39 lock 2016 based bit(36) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 911* 926* lock based bit(36) level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 883* 898* lock_wait_time 000015 constant fixed bin(17,0) initial dcl 98 set ref 883* 911* max_dir_entries 000012 internal static fixed bin(17,0) dcl 100 set ref 304 801* max_entry_names 000011 internal static fixed bin(17,0) dcl 99 set ref 311 356 798* mount_time 4 based fixed bin(71,0) level 2 dcl 13-8 set ref 190* msf_manager_$adjust 000074 constant entry external dcl 149 ref 401 758 790 msf_manager_$close 000076 constant entry external dcl 150 ref 760 msf_manager_$get_ptr 000100 constant entry external dcl 151 ref 417 787 msf_manager_$open 000102 constant entry external dcl 152 ref 778 myname 1542 based char(32) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 406* 422* myname 000005 constant char(32) initial packed unaligned dcl 101 in procedure "dmpr_log_" set ref 180* 270* 284* 341* 359* 518* 541* 547* 578* 587* 594* 687* 734* 742* 772* 780* 828* 855* 862* 886* 899* 914* 927* 967* 973* name 4 based char(32) level 2 dcl 8-7 ref 315 478 479 name_frp 5 based bit(18) level 2 packed packed unaligned dcl 9-8 ref 311 475 names 475(15) based bit(1) level 4 in structure "dmpr_data_" packed packed unaligned dcl 10-13 in procedure "dmpr_log_" set ref 257 405* 421* 755 771* 783* names based structure level 1 dcl 8-7 in procedure "dmpr_log_" ref 798 new_en 000100 automatic char(32) packed unaligned dcl 991 set ref 996* 997* 999* next 7 based fixed bin(17,0) level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 212 220* 220 222 next 2030 based fixed bin(17,0) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 622 631* 631 633 679 next 22 based fixed bin(17,0) level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 249* 249 250 252 253 254 255 448 451 752* next_word_offset 000367 automatic fixed bin(19,0) dcl 386 set ref 392* 395* 399 439* 454 nnames 4(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 9-8 ref 307 np 000332 automatic pointer dcl 8-5 set ref 311* 311* 315* 318 475* 475* 478 479* 487 null builtin function dcl 107 ref 167 241 390 538 551 731 756 763 764 817 840 null_type constant fixed bin(17,0) initial dcl 3-18 ref 952 offset 1 based fixed bin(18,0) level 2 in structure "backup_volume_contents_names" dcl 2-56 in procedure "dmpr_log_" set ref 395 400 435* 439 445 448 454* 757 794* offset 40(18) based fixed bin(18,0) array level 4 in structure "backup_volume_contents" packed packed unsigned unaligned dcl 2-39 in procedure "dmpr_log_" set ref 254* 448* open_time 12 based fixed bin(71,0) level 2 dcl 5-39 set ref 639* out_of_bounds 000000 stack reference condition dcl 105 ref 283 p parameter pointer dcl 961 set ref 960 965* pad 23 based bit(36) array level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 753* pad 2 based bit(36) array level 2 in structure "backup_volume_contents_names" dcl 2-56 in procedure "dmpr_log_" set ref 437* 796* pad1 37 based bit(36) array level 3 dcl 2-39 set ref 253* pathname_ 000104 constant entry external dcl 153 ref 173 177 567 571 725 729 821 825 pattern1 based bit(36) level 3 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 868 946* pattern1 000002 constant bit(36) initial packed unaligned dcl 3-24 in procedure "dmpr_log_" ref 868 946 pattern2 000001 constant bit(36) initial packed unaligned dcl 3-25 in procedure "dmpr_log_" ref 868 947 pattern2 3 based bit(36) level 3 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 868 947* pattern3 6 based bit(36) level 3 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 868 948* pattern3 000000 constant bit(36) initial packed unaligned dcl 3-26 in procedure "dmpr_log_" ref 868 948 pname 000175 automatic char(168) packed unaligned dcl 91 set ref 170* 172* 173* 173* 174* 177* 180* 565* 567* 568* 571* 578* 584 587* 594* 722* 724* 725* 725* 726* 729* 734* 742* 765* 768* 772* 780* 820* 821* 822* 825* 828* 862* prefix parameter char packed unaligned dcl 989 set ref 983 996* 999* primary_name 273 based char(32) level 3 packed packed unaligned dcl 4-17 set ref 284* 341* 359* 1023 1025* ptr builtin function dcl 107 ref 304 311 318 319 445 472 475 487 488 ptrs 2 based structure level 2 dcl 10-13 pvid 474 based bit(36) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 832 842 pvid 2027 based bit(36) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 832* 842 pvle based structure level 1 dcl 13-18 pvlep 000340 automatic pointer dcl 13-4 set ref 213* 214 216 216 222* 223 224 pvlp 000336 automatic pointer dcl 13-3 in procedure "dmpr_log_" set ref 178* 187 188 189 190 192 206* 212 213 220 220 221 221 222 222 883 898 pvlp 314 based pointer level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 167* 192* 206 pvname 1412 based char(32) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 214 224 284* 341* 359* 687* 821 831 842 855* 914* 927* pvname based char(32) level 2 in structure "pvle" dcl 13-18 in procedure "dmpr_log_" set ref 214 224* pvname 2017 based char(32) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 831* 842 pvolog based structure level 1 dcl 13-8 pvolog_version_1 constant fixed bin(17,0) initial dcl 13-6 ref 187 rec1_type 1 based fixed bin(17,0) level 3 dcl 5-20 set ref 950* rec2_len 5 based fixed bin(17,0) level 3 dcl 5-20 set ref 951* rec2_type 4 based fixed bin(17,0) level 3 dcl 5-20 set ref 952* recordp 000322 automatic pointer dcl 4-12 in procedure "dmpr_log_" set ref 247* 250 257 270 284 284 341 341 359 359 502 502 502 506 509 514 1021 1023 1025 recordp 324 based pointer level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 247 records 15(18) based bit(9) level 3 in structure "backup_volume_record" packed packed unaligned dcl 4-17 in procedure "dmpr_log_" ref 514 records 1(03) 000271 automatic fixed bin(9,0) level 3 in structure "add_key" packed packed unaligned dcl 111 in procedure "dmpr_log_" set ref 514* rel builtin function dcl 107 ref 304 311 435 472 475 794 reload_groups 2031 based fixed bin(17,0) level 2 dcl 5-20 set ref 833* restart_pvname 1562 based char(32) level 3 dcl 10-13 ref 626 ret_dn 000152 automatic char(168) packed unaligned dcl 1013 set ref 1025* 1026 return_bit 000366 automatic bit(1) dcl 383 set ref 391* rpv_pvid 2036 based bit(36) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 632* 836* 849* rpv_pvid 477 based bit(36) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 632 836 849 rtrim builtin function dcl 107 ref 172 315 478 584 724 765 765 1023 seg_fault_error 000236 stack reference condition dcl 1016 ref 1019 seg_num 40 based fixed bin(17,0) level 2 packed packed unaligned dcl 5-39 set ref 644* 696* seg_rec 40(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 5-39 set ref 644* 697* set_bc_n_truncate 000004 constant bit(3) initial packed unaligned dcl 102 set ref 401* 758* set_lock_$lock 000106 constant entry external dcl 154 ref 883 911 set_lock_$unlock 000110 constant entry external dcl 155 ref 898 926 size builtin function dcl 107 ref 798 798 798 801 801 stored_number_of_entry_names 000247 automatic fixed bin(17,0) dcl 92 set ref 302* 307* 307 339 341* 356 356 359* substr builtin function dcl 107 set ref 479* 479 484* 491* suffix 000110 automatic fixed bin(17,0) dcl 992 set ref 995* 996* 999 sys_dir 500 based char(168) level 3 dcl 10-13 set ref 172 406* 422* 724 765 821 sys_info$default_dir_max_length 000034 external static fixed bin(17,0) dcl 132 ref 798 801 sys_info$max_seg_size 000114 external static fixed bin(35,0) dcl 388 ref 399 tape_loc 36 based fixed bin(35,0) array level 3 dcl 2-39 set ref 252* tp parameter pointer dcl 943 ref 938 946 947 948 950 951 952 trace 475(17) based bit(1) level 4 packed packed unaligned dcl 10-13 ref 270 truncate_only 000003 constant bit(3) initial packed unaligned dcl 103 set ref 790* type parameter fixed bin(17,0) dcl 944 in procedure "init_header" ref 938 950 type 1 000271 automatic fixed bin(2,0) level 3 in structure "add_key" packed packed unaligned dcl 111 in procedure "dmpr_log_" set ref 515* uid 10 based bit(36) level 2 in structure "dir" dcl 7-11 in procedure "dmpr_log_" set ref 284* 341* 359* uid 35 based bit(36) array level 3 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 250* uid 14 based bit(36) level 3 in structure "backup_volume_record" packed packed unaligned dcl 4-17 in procedure "dmpr_log_" set ref 250 270* 509 uid_path 253 based bit(36) array level 3 in structure "backup_volume_record" packed packed unaligned dcl 4-17 in procedure "dmpr_log_" set ref 502 502 502 506 1021* uid_path 000250 automatic bit(36) array packed unaligned dcl 94 in procedure "dmpr_log_" set ref 506* 509* 513 unspec builtin function dcl 107 set ref 513* 513 version 10 based fixed bin(17,0) level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 749* version 1 based fixed bin(17,0) level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 187* version based fixed bin(17,0) level 2 in structure "backup_volume_contents_names" dcl 2-56 in procedure "dmpr_log_" set ref 433* 793* version 2015 based fixed bin(17,0) level 2 in structure "backup_volume_log" dcl 5-20 in procedure "dmpr_log_" set ref 834* 844 844 844 847* vol_log_dir_num 355 based fixed bin(17,0) level 3 dcl 10-13 set ref 645* 694 698* vol_log_dir_rec 356 based fixed bin(17,0) level 3 dcl 10-13 set ref 646* 695 700* vol_log_seg_num 357 based fixed bin(17,0) level 3 dcl 10-13 set ref 647* 696 701* vol_log_seg_rec 360 based fixed bin(17,0) level 3 dcl 10-13 set ref 648* 697 702* volid 16 based bit(36) level 2 in structure "bvle" dcl 5-39 in procedure "dmpr_log_" set ref 637* volid 6 based bit(36) level 2 in structure "pvolog" dcl 13-8 in procedure "dmpr_log_" set ref 189* volid 21 based bit(36) level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 751* volid 410 based bit(36) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" ref 189 637 751 volname 1522 based char(32) level 3 in structure "dmpr_data_" dcl 10-13 in procedure "dmpr_log_" set ref 406* 422* 518* 541* 547* 567 638 674 681 725 750 765 886* 899* volname 11 based char(32) level 2 in structure "backup_volume_contents" dcl 2-39 in procedure "dmpr_log_" set ref 750* volname 2 based char(32) level 2 in structure "bvle" dcl 5-39 in procedure "dmpr_log_" set ref 638* 674 681 volume_log_type constant fixed bin(17,0) initial dcl 3-19 set ref 868* vtoce based structure level 1 dcl 15-7 in procedure "dmpr_log_" vtoce 13 based structure level 2 in structure "backup_volume_record" dcl 4-17 in procedure "dmpr_log_" vtocx 12 based fixed bin(17,0) level 2 dcl 4-17 set ref 284* 341* 359* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BITS_PER_CHAR internal static fixed bin(4,0) initial dcl 14-61 BITS_PER_PAGE internal static fixed bin(16,0) initial dcl 14-67 BITS_PER_SEGMENT internal static fixed bin(24,0) initial dcl 14-70 CHARS_PER_PAGE internal static fixed bin(13,0) initial dcl 14-76 CHARS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 14-79 Direct_input internal static fixed bin(17,0) initial dcl 12-15 Direct_output internal static fixed bin(17,0) initial dcl 12-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 12-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 12-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 12-15 Multics_ID_String internal static char(32) initial packed unaligned dcl 11-92 PAGES_PER_SEGMENT internal static fixed bin(8,0) initial dcl 14-92 Sequential_input internal static fixed bin(17,0) initial dcl 12-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 12-15 Sequential_output internal static fixed bin(17,0) initial dcl 12-15 Sequential_update internal static fixed bin(17,0) initial dcl 12-15 Stream_input internal static fixed bin(17,0) initial dcl 12-15 Stream_input_output internal static fixed bin(17,0) initial dcl 12-15 Stream_output internal static fixed bin(17,0) initial dcl 12-15 WORDS_PER_PAGE internal static fixed bin(11,0) initial dcl 14-84 WORDS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 14-89 backup_version_1 internal static fixed bin(17,0) initial dcl 1-7 backup_volume_record_version_1 internal static fixed bin(17,0) initial dcl 4-14 backup_volume_record_version_2 internal static fixed bin(17,0) initial dcl 4-15 bpvip automatic pointer dcl 6-3 comp internal static fixed bin(17,0) initial dcl 1-6 cons internal static fixed bin(17,0) initial dcl 1-5 dir_type internal static fixed bin(17,0) initial dcl 3-16 dmpr_data_version_2 internal static fixed bin(17,0) initial dcl 10-9 dmpr_data_version_3 internal static fixed bin(17,0) initial dcl 10-10 hdp automatic pointer dcl 3-3 incr internal static fixed bin(17,0) initial dcl 1-4 info_type internal static fixed bin(17,0) initial dcl 3-22 iox_modes internal static char(24) initial array dcl 12-6 labelp automatic pointer dcl 11-16 prev_output_log_type internal static fixed bin(17,0) initial dcl 3-20 seg_type internal static fixed bin(17,0) initial dcl 3-17 seg_vtoce based structure level 1 dcl 15-92 short_iox_modes internal static char(4) initial array dcl 12-12 v1_backup_volume_contents based structure level 1 dcl 2-17 v2_backup_volume_contents based structure level 1 dcl 2-26 version_number_2 internal static fixed bin(17,0) initial dcl 7-84 vtoce_parts based bit(2304) array dcl 15-90 vtoce_type internal static fixed bin(17,0) initial dcl 3-15 vtocep automatic pointer dcl 15-5 NAMES DECLARED BY EXPLICIT CONTEXT. able_to_count_entry_names 004567 constant entry internal dcl 279 ref 261 acct_err 002346 constant label dcl 578 ref 569 close_account_file 001752 constant entry external dcl 534 close_log_entry 003104 constant label dcl 692 ref 681 close_volume_log 002741 constant entry external dcl 658 cont_err 003427 constant label dcl 742 ref 727 convert_puid_ 006547 constant entry internal dcl 1011 ref 270 270 create_pvolog 001161 constant entry external dcl 160 dmpr_log_ 001147 constant entry external dcl 55 entry_names_are_ok 004771 constant entry internal dcl 331 ref 261 entry_names_fit_in_contents_seg 005142 constant entry internal dcl 378 ref 261 exit_count 004766 constant label dcl 324 ref 296 init_account_file 002125 constant entry external dcl 557 init_contents_seg 003141 constant entry external dcl 713 init_header 006163 constant entry internal dcl 938 ref 747 868 init_volume_log 004146 constant entry external dcl 811 invalid_volog 004460 constant label dcl 854 ref 844 lock_pvolog 005713 constant entry internal dcl 882 ref 208 lock_volume_log 006036 constant entry internal dcl 910 ref 618 669 log_err 001404 constant label dcl 180 ref 175 log_object 001563 constant entry external dcl 235 name_err 003702 constant label dcl 771 set ref 788 open_ret 002735 constant label dcl 649 open_volume_log 002603 constant entry external dcl 606 put_entry_names_in_contents_seg 005444 constant entry internal dcl 461 ref 261 rename_account_file 006362 constant entry internal dcl 983 ref 575 999 reset_log_data 003121 constant label dcl 698 ref 690 ret_unk 006631 constant label dcl 1023 ref 1019 retry_acc 002250 constant label dcl 572 ref 576 retry_rn 006445 constant label dcl 997 ref 1000 set_bc 006203 constant entry internal dcl 960 ref 703 unlock_pvolog 005767 constant entry internal dcl 897 ref 226 unlock_volume_log 006114 constant entry internal dcl 925 ref 649 704 update_accounting_info 005552 constant entry internal dcl 498 ref 267 update_pvolog 001462 constant entry external dcl 200 vol_err 004513 constant label dcl 862 ref 823 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7772 10114 7212 10002 Length 10774 7212 122 643 557 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dmpr_log_ 910 external procedure is an external procedure. able_to_count_entry_names 71 internal procedure enables or reverts conditions. on unit on line 283 152 on unit entry_names_are_ok internal procedure shares stack frame of external procedure dmpr_log_. entry_names_fit_in_contents_seg internal procedure shares stack frame of external procedure dmpr_log_. put_entry_names_in_contents_seg internal procedure shares stack frame of external procedure dmpr_log_. update_accounting_info internal procedure shares stack frame of external procedure dmpr_log_. lock_pvolog internal procedure shares stack frame of external procedure dmpr_log_. unlock_pvolog internal procedure shares stack frame of external procedure dmpr_log_. lock_volume_log internal procedure shares stack frame of external procedure dmpr_log_. unlock_volume_log internal procedure shares stack frame of external procedure dmpr_log_. init_header internal procedure shares stack frame of external procedure dmpr_log_. set_bc internal procedure shares stack frame of external procedure dmpr_log_. rename_account_file 126 internal procedure calls itself recursively. convert_puid_ 220 internal procedure enables or reverts conditions. on unit on line 1019 64 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dump_idx dmpr_log_ 000011 max_entry_names dmpr_log_ 000012 max_dir_entries dmpr_log_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME convert_puid_ 000100 dn convert_puid_ 000152 ret_dn convert_puid_ 000224 en convert_puid_ 000234 ec convert_puid_ dmpr_log_ 000100 Lall_entry_names dmpr_log_ 000102 Pall_entry_names dmpr_log_ 000104 accountp dmpr_log_ 000106 bit_count dmpr_log_ 000107 counted_number_of_entries dmpr_log_ 000110 counted_number_of_entry_names dmpr_log_ 000111 dname dmpr_log_ 000163 ename dmpr_log_ 000173 found dmpr_log_ 000174 i dmpr_log_ 000175 pname dmpr_log_ 000247 stored_number_of_entry_names dmpr_log_ 000250 uid_path dmpr_log_ 000271 add_key dmpr_log_ 000316 contentsp dmpr_log_ 000320 contents_namesp dmpr_log_ 000322 recordp dmpr_log_ 000324 bvlp dmpr_log_ 000326 bvlep dmpr_log_ 000330 dp dmpr_log_ 000332 np dmpr_log_ 000334 ep dmpr_log_ 000336 pvlp dmpr_log_ 000340 pvlep dmpr_log_ 000356 Serror entry_names_are_ok 000366 return_bit entry_names_fit_in_contents_seg 000367 next_word_offset entry_names_fit_in_contents_seg 000400 Lcurrent_name put_entry_names_in_contents_seg 000401 current_position put_entry_names_in_contents_seg 000454 dn set_bc 000526 en set_bc 000536 ldn set_bc rename_account_file 000100 new_en rename_account_file 000110 suffix rename_account_file THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc return_mac tra_ext_1 enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ dmpr_report_$error_output dmpr_report_$online_output expand_pathname_ expand_pathname_$add_suffix hc_backup_$decode_uidpath hcs_$chname hcs_$fs_get_path_name hcs_$make_seg hcs_$truncate_seg ioa_$rsnnl iox_$attach_ioname iox_$close iox_$control iox_$detach_iocb iox_$open msf_manager_$adjust msf_manager_$close msf_manager_$get_ptr msf_manager_$open pathname_ set_lock_$lock set_lock_$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dmprp error_table_$action_not_performed error_table_$bad_dir error_table_$bad_index error_table_$bad_segment error_table_$bad_volid error_table_$invalid_lock_reset error_table_$namedup error_table_$noentry error_table_$root sys_info$default_dir_max_length sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 55 001146 160 001154 166 001177 167 001200 168 001204 169 001207 170 001212 172 001215 173 001245 174 001267 175 001321 177 001323 178 001343 179 001402 180 001404 183 001434 184 001437 187 001440 188 001443 189 001450 190 001452 192 001455 193 001456 200 001457 205 001472 206 001473 208 001500 209 001501 211 001503 212 001504 213 001517 214 001522 215 001531 216 001533 218 001534 219 001536 220 001540 221 001542 222 001543 223 001547 224 001551 226 001557 227 001560 235 001561 240 001573 241 001574 242 001603 243 001605 246 001606 247 001610 249 001612 250 001613 252 001617 253 001620 254 001621 255 001624 257 001627 259 001635 261 001637 267 001663 270 001672 275 001747 534 001750 538 001762 539 001771 540 002001 541 002003 544 002041 546 002042 547 002055 551 002115 552 002122 557 002123 562 002135 563 002136 564 002141 565 002144 567 002147 568 002174 569 002226 571 002230 572 002250 573 002307 574 002311 575 002314 576 002344 578 002346 581 002376 584 002377 586 002470 587 002473 590 002523 592 002524 593 002545 594 002547 597 002577 599 002600 606 002601 614 002613 615 002614 616 002620 618 002624 619 002625 622 002627 623 002635 624 002641 625 002651 626 002654 629 002662 631 002665 632 002667 633 002674 634 002676 636 002701 637 002703 638 002705 639 002710 640 002712 641 002714 642 002716 643 002721 644 002725 645 002731 646 002732 647 002733 648 002734 649 002735 651 002736 658 002737 664 002751 665 002752 667 002756 669 002762 670 002763 672 002765 674 002773 679 003012 680 003024 681 003030 685 003046 686 003050 687 003052 690 003103 692 003104 694 003107 695 003112 696 003114 697 003117 698 003121 700 003125 701 003126 702 003127 703 003130 704 003132 705 003133 706 003136 713 003137 718 003151 720 003152 721 003155 722 003160 724 003163 725 003214 726 003237 727 003271 729 003273 730 003313 731 003352 732 003356 733 003372 734 003374 737 003424 738 003425 740 003426 742 003427 745 003457 747 003460 748 003462 749 003467 750 003471 751 003476 752 003500 753 003501 755 003513 756 003521 757 003525 758 003531 760 003547 763 003560 764 003565 765 003570 768 003654 770 003700 771 003702 772 003707 775 003736 777 003737 778 003743 779 003767 780 003774 783 004023 784 004030 785 004031 787 004032 788 004060 790 004062 792 004104 793 004111 794 004113 796 004117 798 004131 801 004140 804 004143 811 004144 816 004156 817 004157 818 004164 819 004167 820 004172 821 004175 822 004225 823 004257 825 004261 826 004301 827 004340 828 004342 831 004373 832 004402 833 004404 834 004406 835 004410 836 004413 837 004415 838 004417 839 004420 840 004421 841 004425 842 004426 844 004441 847 004450 848 004452 849 004455 852 004457 854 004460 855 004462 858 004511 860 004512 862 004513 865 004543 868 004544 872 004560 873 004565 279 004566 283 004574 284 004610 296 004660 299 004663 300 004665 301 004666 302 004667 304 004670 307 004705 309 004712 311 004713 314 004727 315 004730 318 004745 319 004753 321 004761 322 004762 324 004766 331 004771 337 004773 339 004775 341 005000 353 005055 356 005056 359 005063 371 005135 373 005136 378 005142 390 005144 391 005146 392 005147 393 005150 395 005155 399 005162 400 005164 401 005167 404 005207 405 005211 406 005216 413 005254 416 005257 417 005263 420 005306 421 005310 422 005315 428 005353 432 005356 433 005363 435 005365 437 005373 439 005405 445 005412 448 005417 451 005427 454 005436 456 005441 461 005444 468 005445 469 005446 470 005453 472 005455 475 005466 478 005476 479 005511 482 005516 483 005517 484 005521 486 005525 487 005526 488 005534 490 005542 491 005544 492 005551 498 005552 502 005553 506 005562 507 005563 508 005565 509 005566 510 005572 511 005574 512 005576 513 005601 514 005604 515 005613 516 005623 518 005652 523 005712 882 005713 883 005714 884 005727 885 005731 886 005736 890 005766 897 005767 898 005770 899 006001 903 006035 910 006036 911 006037 912 006053 913 006055 914 006062 918 006113 925 006114 926 006115 927 006127 931 006162 938 006163 946 006165 947 006170 948 006173 950 006175 951 006177 952 006200 953 006202 960 006203 965 006205 966 006236 967 006240 969 006264 970 006265 972 006266 973 006322 977 006357 978 006360 983 006361 995 006407 996 006412 997 006445 998 006500 999 006505 1000 006542 1003 006545 1011 006546 1019 006554 1021 006573 1022 006622 1023 006627 1025 006664 1026 006745 ----------------------------------------------------------- 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