COMPILATION LISTING OF SEGMENT salvage_pv Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1027.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* *********************************************************** */ 13 14 15 /* 16* 17* 18* 19* salvage_pv (pvtx, code); 20* 21* 22* INPUT ASSUMPTIONS. 23* 24* 1. There is a segment header for each of the following segments: 25* 26* salv_abs_seg_00 to n, where n is the no. of 256k segs required to 27* to linearly address the entire vtoc. 28* pv_salv_seg 29* 30* 2. This procedure can be executed by any process. However a given physical 31* volume can be salvaged by only one process at a time. 32* 33* 3. The physical volume being salvaged is not available for normal vtoc_man 34* operations. 35* 36* 4. The following items are supposed to have been checked prior to calling 37* this procedure and are assumed to have a correct value: 38* 39* label.vol_size 40* label.vtoc_size 41* 42* vol_map.n_rec 43* vol_map.base_add 44* vol_map.bit_map_n_words 45* 46* vtoc_header.n_vtoce 47* 48* pvte.being_salvaged = 0 49* pvte.vtoc_segno = 0 50* pvte.vtoc_size = 0 51* 52* Written by Andre Bensoussan 1976 53* Extensively modified by Andrew Kobziar, who integrated it with rest of salvager, 1976. 54* 5/13/76 by Greenberg for seg-by-seg PD flusher. 55* 6/25/76 by Greenberg for last n bits of bit map being zero. 56* 11/1/76 by Greenberg for fixing disk_rebuild-created problems, 57* pc$truncate_deposit_all, summary report. 58* 03/22/81, W. Olin Sibert, for ADP PTW formats 59* 03/07/82, J. Bongiovanni, for new PVTE, validate vtoce.trp, vtoce.trp_time, 60* convert_vtoc, VTOC map 61* 06/15/82, J. Bongiovanni, to free per-bootload VTOCEs and print summary of 62* damaged segments 63* 10/26/82, J. Bongiovanni, for fm_damaged 64* 65**/ 66 67 68 /****^ HISTORY COMMENTS: 69* 1) change(86-01-16,Fawcett), approve(86-04-11,MCR7383), 70* audit(86-06-17,Beattie), install(86-07-17,MR12.0-1097): 71* Add support for 512_WORD_IO devices, 3380 and 3390. 72* 2) change(89-08-14,Farley), approve(89-09-18,MCR8134), 73* audit(89-09-21,WAAnderson), install(89-09-29,MR12.3-1075): 74* Corrected the VTOCE.records adjustment in the RESOLVE_CONFLICT procedure. 75* It was using (vtoce.records - 1), which was causing an incorrect records 76* setting, resulting in et$invalid_vtoce errors. 77* END HISTORY COMMENTS */ 78 79 80 81 82 salvage_pv : procedure (a_pvtx, a_code); 83 84 85 dcl (a_pvtx, pvtx) fixed bin; /* Physical volume table index of vol to be salvaged */ 86 dcl (a_code, code) fixed bin (35); /* Error code */ 87 88 dcl no_free_aste_err fixed bin (35) internal static init (1); 89 dcl get_vtocep_err fixed bin (35) internal static init (3); 90 91 dcl table1p ptr; /* Pointer to table1, i.e. bit_table */ 92 dcl table2p ptr; /* Pointer to table2, i.e. vtocx_table */ 93 dcl table3p ptr; /* Pointer to table3, i.e. new_bit_map */ 94 dcl table4p ptr; /* Pointer to incremental dump table */ 95 dcl table5p ptr; /* Pointer to consolidated dump table */ 96 dcl table6p ptr; /* Pointer to VTOC map */ 97 98 dcl s_ptr ptr; 99 100 dcl r0 fixed bin; /* First record number used for paging on this volume */ 101 dcl r1 fixed bin; /* Last record number used for paging on this volume */ 102 dcl ptp pointer; /* Pointer to page table in aste */ 103 dcl vtocx fixed bin; /* Index of the vtoc entry being processed */ 104 dcl pvid bit (36) aligned; /* ID of volume being processed */ 105 dcl n_used_rec fixed bin; /* Number of records used */ 106 dcl n_free_vtoce fixed bin; /* Number of free vtoc entries */ 107 dcl max_n_vtoc_seg fixed bin internal static init (4); 108 dcl damaged_count fixed bin; /* Count damaged segments */ 109 dcl damaged_by_me fixed bin; /* Count of segments damaged by this salvage */ 110 dcl salvage_call bit (1); /* TRUE is called for salvage */ 111 dcl previous_damaged_sw bit (1); /* TRUE if vtoce.damaged on at top of loop */ 112 dcl complained bit (1); /* TRUE if set damaged and wrote message */ 113 dcl not_enabled_sw bit (1) aligned; /* dumper threading operational? */ 114 dcl free_count fixed bin; /* count of free vtoces added to consolidated list */ 115 dcl comp_time fixed bin (71); /* fb time */ 116 dcl hdr_time (2) bit (36) aligned; /* bit time in label */ 117 dcl root_pack bit (1) aligned; /* set to indicate directories ok on this pack */ 118 dcl salv_mode char (32) var; /* mode of volsalv */ 119 dcl p99 pic "99"; 120 dcl curtime bit (36); /* Current file system time */ 121 dcl trp_bad bit (1) aligned; /* Flag for trp validation */ 122 123 124 dcl 1 table1 based (table1p) aligned, 125 2 bit_table (0 : label.vol_size - 1) bit (1) unaligned; 126 127 dcl 1 table2 based (table2p) aligned, 128 2 vtocx_table (0 : label.vol_size - 1) fixed bin (17) unaligned; 129 130 dcl 1 table3 based (table3p) aligned, 131 2 new_map (1 : vol_map.map_n_words) bit (36) aligned; 132 133 dcl 1 table4 based (table4p) aligned, 134 2 incr_map (0 : vtoc_header.n_vtoce -1) bit (1) unaligned; 135 136 dcl 1 table5 based (table5p) aligned, 137 2 cons_map (0 : vtoc_header.n_vtoce -1) bit (1) unaligned; 138 139 dcl 1 salv_vtoc_map aligned based (table6p) like vtoc_map; 140 141 dcl sst$astl bit (36) aligned external; 142 dcl sst$astsize fixed bin external; 143 dcl sst$damaged_ct fixed bin external; 144 dcl 1 sst$level (0 : 3) aligned external, 145 2 ausedp bit (18) unaligned, 146 2 no_aste bit (18) unaligned; 147 dcl sst$pts (0 : 3) fixed bin external; 148 dcl sst$root_pvtx fixed bin external; 149 150 dcl pds$processid ext bit (36) aligned; 151 152 dcl dseg$ (0 : 1023) fixed bin (71) external static; 153 dcl pv_salv_seg$ ext; 154 155 dcl dir_dump$vtoce ext entry (ptr); 156 dcl get_aste entry (fixed bin) returns (ptr); 157 dcl get_ptrs_$given_astep entry (ptr) returns (fixed bin (71) aligned); 158 dcl get_ptrs_$given_segno entry (fixed bin) returns (ptr); 159 dcl get_pvtx$hold_pvtx entry (bit (36) aligned, fixed bin, fixed bin (35)); 160 dcl get_pvtx$release_pvtx entry (bit (36) aligned, fixed bin (35)); 161 dcl lock$lock_ast entry; 162 dcl lock$unlock_ast entry; 163 dcl page$cam entry; 164 dcl pc$truncate_deposit_all entry (ptr); 165 dcl pc_wired$write_wait entry (ptr, fixed bin, fixed bin); 166 dcl ptw_util_$make_null entry (pointer, bit (22) aligned); 167 dcl put_aste entry (ptr); 168 dcl salv_err_msg entry options (variable); 169 dcl salv_err_msg$code entry options (variable); 170 dcl syserr entry options (variable); 171 dcl syserr$binary ext entry options (variable); 172 dcl thread$out entry (ptr, bit (18)); 173 dcl vm_vio$clean_up entry (fixed bin); 174 dcl vm_vio$get_vtocep entry (fixed bin, fixed bin) returns (ptr); 175 dcl vm_vio$init entry (fixed bin, fixed bin (35)) returns (ptr); 176 177 dcl cleanup condition; 178 dcl (addr, addrel, baseno, bin, bit, ceil, clock, convert, divide, fixed, max, mod, null, ptr, rel, substr, unspec) builtin; 179 180 181 /* MAIN PROGRAM */ 182 183 salvage_call = "1"b; 184 salv_mode = "Volume salvage"; 185 goto COMMON; 186 187 convert_vtoc: 188 entry (a_pvtx, a_code); 189 190 salvage_call = "0"b; 191 salv_mode = "VTOC conversion"; 192 193 COMMON: 194 pvtx = a_pvtx; 195 code = 0; 196 pvt_arrayp = addr (pvt$array); 197 pvtep = addr (pvt_array (pvtx)); 198 curtime = substr (bit (bin (clock (), 71), 71), 20, 36); 199 200 on cleanup call CLEAN_UP; 201 202 s_ptr = vm_vio$init (pvtx, code); if code ^= 0 then goto RTN; 203 204 labelp = ptr (s_ptr, LABEL_ADDR * 1024); 205 vol_mapp = ptr (s_ptr, VOLMAP_ADDR * 1024); 206 vtoc_headerp = ptr (s_ptr, DUMPER_BIT_MAP_ADDR * 1024); 207 vtoc_mapp = ptr (s_ptr, VTOC_MAP_ADDR * 1024); 208 209 pvid = label.pvid; 210 211 212 call salv_err_msg (SALV_ANNOUNCE, "salvage_pv: ^a of ^a_^a, volume ^a of logical vol ^a.", 213 salv_mode, pvte.devname, (convert (p99, pvte.logical_area_number) || pvte.sv_name), 214 label.pv_name, label.lv_name); 215 216 comp_time = clock (); 217 218 if salvage_call then do; 219 call CHECK_LABEL_VOLMAP_HEADER (code); if code ^= 0 then goto CLEAN; 220 n_used_rec = 0; 221 free_count = 0; 222 223 r0 = vol_map.base_add; 224 r1 = vol_map.n_rec - 1 + r0; 225 end; 226 227 damaged_count = 0; 228 damaged_by_me = 0; 229 230 call INIT_TABLES (table1p, table2p, table3p, table4p, table5p, table6p, code); if code ^= 0 then goto CLEAN; 231 232 n_free_vtoce = 0; 233 234 if label.volmap_version = 1 235 | label.volmap_version = 2 /* VTOC Map exists */ 236 then do; 237 salv_vtoc_map.n_vtoce = vtoc_map.n_vtoce; 238 salv_vtoc_map.n_free_vtoce = vtoc_map.n_free_vtoce; 239 salv_vtoc_map.bit_map_n_words = vtoc_map.bit_map_n_words; 240 salv_vtoc_map.vtoc_last_recno = vtoc_map.vtoc_last_recno; 241 end; 242 else do; 243 salv_vtoc_map.n_vtoce = vtoc_header.n_vtoce; 244 salv_vtoc_map.n_free_vtoce = vtoc_header.n_free_vtoce; 245 salv_vtoc_map.bit_map_n_words 246 = divide (vtoc_header.n_vtoce + 31, 32, 17); 247 salv_vtoc_map.vtoc_last_recno = vtoc_header.vtoc_last_recno; 248 end; 249 250 251 do vtocx = 0 to vtoc_header.n_vtoce - 1; 252 253 vtocep = vm_vio$get_vtocep (pvtx, vtocx); 254 if vtocep = null then do; 255 code = get_vtocep_err; 256 goto CLEAN; 257 end; 258 259 260 if vtoce.uid = "0"b then do; 261 vtoce.pad_free_vtoce_chain = ""b; /* Clean out old field */ 262 if vtoce_parts (1) ^= "0"b then call salv_err_msg (SALV_DEBUG, 263 "salvage_pv: vtoce ^oo free but not zero", vtocx); 264 call FREE_VTOCE; 265 end; 266 else if salvage_call then do; 267 complained = "0"b; /* Only report damage if we didn't set it ourself */ 268 previous_damaged_sw = vtoce.damaged; 269 if ^vtoce.dirsw then do; 270 if vtoce.per_process then do; 271 if salv_data$debug then call salv_err_msg (SALV_DEBUG, 272 "salvage_pv: freeing ^w per process vtocx ^oo: ^a", 273 vtoce.uid, vtocx, vtoce.primary_name); 274 call FREE_VTOCE; 275 go to NEXT_VTOCE; 276 end; 277 else if vtoce.deciduous then do; 278 if salv_data$debug then call salv_err_msg (SALV_DEBUG, 279 "salvage_pv: freeing ^w deciduous vtocx ^oo: ^a", 280 vtoce.uid, vtocx, vtoce.primary_name); 281 call FREE_VTOCE; 282 go to NEXT_VTOCE; 283 end; 284 else if vtoce.perm_flags.per_bootload then do; 285 if salv_data$debug then call salv_err_msg (SALV_DEBUG, 286 "salvage_pv: freeing ^w per-bootload vtocx ^oo: ^a", 287 vtoce.uid, vtocx, vtoce.primary_name); 288 call FREE_VTOCE; 289 goto NEXT_VTOCE; 290 end; 291 end; 292 call CHECK_VTOCE; 293 if previous_damaged_sw & ^complained 294 then call salv_err_msg (SALV_DEBUG, "salvage_pv: damaged switch found on for ^w vtocx ^oo: ^a", 295 vtoce.uid, vtocx, vtoce.primary_name); 296 if vtoce.damaged then do; 297 damaged_count = damaged_count + 1; 298 if ^previous_damaged_sw 299 then damaged_by_me = damaged_by_me + 1; 300 if complained then do; 301 segdamage.pvid = label.pvid; 302 segdamage.lvid = label.lvid; 303 segdamage.uid = vtoce.uid; 304 segdamage.vtocx = vtocx; 305 segdamage.pno = -1; 306 segdamage.uid_path = vtoce.uid_path; 307 call syserr$binary (SALV_LOG, addr (segdamage), SB_vtoc_salv_dam, SBL_vtoc_salv_dam, 308 "salvage_pv: setting damaged switch on ^a (^oo) on pv ^a.", 309 vtoce.primary_name, vtocx, label.pv_name); 310 sst$damaged_ct = sst$damaged_ct + 1; 311 end; 312 end; 313 314 end; 315 NEXT_VTOCE: 316 end; 317 318 if salvage_call 319 then do; 320 call UPDATE_VOL_MAP; 321 pvte.vol_trouble_count = 0; 322 end; 323 324 call UPDATE_VTOC_MAP; 325 326 call FORCE_VTOC_ON_DISK; 327 328 call UPDATE_LABEL; 329 330 call FORCE_LABEL_ON_DISK; 331 332 if free_count > 0 then call salv_err_msg (SALV_DEBUG, "salvage_pv: ^d free vtoces added to free list.", free_count); 333 if damaged_count > 0 334 then call salv_err_msg (SALV_ANNOUNCE, 335 "salvage_pv: ^d damaged segments on volume ^a (^d damaged in this salvage)", 336 damaged_count, label.pv_name, damaged_by_me); 337 CLEAN: if code = 0 then call salv_err_msg (SALV_DEBUG, "salvage_pv: ^a finished.", salv_mode); 338 else call salv_err_msg$code (SALV_DEBUG, "", "salvage_pv: ^a finished with error.", code, salv_mode); 339 call CLEAN_UP; 340 341 RTN: a_code = code; 342 343 return; 344 345 CHECK_VTOCE : proc; 346 347 dcl (records, csl, msl, i, r, conflict) fixed bin; 348 349 csl, records, conflict = 0; 350 msl = 256; 351 352 do i = 0 to msl - 1; 353 354 SAME_I: if substr (vtoce.fm (i), 1, 1) = "1"b then goto NEXT_I; /* Null address */ 355 356 r = fixed (substr (vtoce.fm (i), 2, 17), 17); 357 358 if r < r0 | r > r1 then 359 do; 360 call report_out_of_range; 361 vtoce.fm (i) = pv_salv_null_addr; goto NEXT_I; 362 end; 363 364 if bit_table (r) = "1"b then 365 do; 366 conflict = 1; call RESOLVE_CONFLICT (i); goto SAME_I; 367 end; 368 369 vtocx_table (r) = vtocx; 370 bit_table (r) = "1"b; 371 records = records + 1; 372 csl = i + 1; 373 NEXT_I: 374 end; 375 376 do i = msl to 255; 377 if substr (vtoce.fm (i), 1, 1) = "0"b then vtoce.fm (i) = pv_salv_null_addr; 378 end; 379 380 if conflict ^= 0 then do; csl = RECOMPUTE_CSL (vtocep); records = RECOMPUTE_RECORDS (vtocep); end; 381 382 n_used_rec = n_used_rec + records; 383 384 if fixed (vtoce.records, 9) ^= records then 385 do; 386 call report_records; 387 vtoce.records = bit (fixed (records, 9)); 388 end; 389 390 if fixed (vtoce.csl, 9) ^= csl then 391 do; 392 call report_csl; 393 vtoce.csl = bit (fixed (csl, 9)); 394 end; 395 396 if fixed (vtoce.msl, 9) > msl | fixed (vtoce.msl, 9) < csl then 397 do; 398 call report_msl; 399 vtoce.msl = bit (fixed (msl, 9)); 400 end; 401 402 trp_bad = "0"b; 403 do i = 0 to 1; 404 if vtoce.trp (i) < 0 | fixed (vtoce.trp_time (i), 36) > fixed (curtime, 36) 405 then trp_bad = "1"b; 406 end; 407 if trp_bad then do; 408 call report_trp; 409 do i = 0 to 1; 410 vtoce.trp (i) = 0; 411 vtoce.trp_time = curtime; 412 end; 413 end; 414 415 if vtoce.dirsw then if ^root_pack then do; 416 call salv_err_msg (SALV_DEBUG, 417 "salvage_pv: dirsw turned off for vtocx ^oo: ^a", vtocx, vtoce.primary_name); 418 if salv_data$dump then call dir_dump$vtoce (vtocep); 419 vtoce.dirsw = "0"b; 420 vtoce.damaged, complained = "1"b; 421 end; 422 423 vtoce.fm_damaged = "0"b; 424 vtoce.fm_checksum_valid = "0"b; 425 vtoce.fm_checksum = ""b; 426 427 if fixed (vtoce.dtm) > fixed (hdr_time (1)) then call THREAD_FOR_DUMPER (1); 428 if fixed (vtoce.dtm) > fixed (hdr_time (2)) then call THREAD_FOR_DUMPER (2); 429 430 return; 431 432 433 434 435 report_out_of_range : proc; 436 call salv_err_msg (SALV_DEBUG, "salvage_pv: vtoce ^a at ^oo: page ^oo disk_addr ^oo bad", 437 vtoce.primary_name, vtocx, i, r); 438 vtoce.damaged, complained = "1"b; 439 return; 440 end; 441 442 report_records : proc; 443 call salv_err_msg (SALV_DEBUG, "salvage_pv: vtoce ^a at ^oo: rec used changed from ^oo to ^oo", 444 vtoce.primary_name, vtocx, fixed (vtoce.records), records); 445 vtoce.damaged, complained = "1"b; 446 return; 447 end; 448 449 report_csl : proc; 450 call salv_err_msg (SALV_DEBUG, "salvage_pv: vtoce ^a at ^oo: cur len changed from ^oo to ^oo", 451 vtoce.primary_name, vtocx, fixed (vtoce.csl), csl); 452 vtoce.damaged, complained = "1"b; 453 return; 454 end; 455 456 report_msl : proc; 457 call salv_err_msg (SALV_DEBUG, "salvage_pv: vtoce ^a at ^oo: max len changed from ^oo to ^oo", 458 vtoce.primary_name, vtocx, fixed (vtoce.msl), msl); 459 vtoce.damaged, complained = "1"b; 460 return; 461 end; 462 463 report_trp: proc; 464 call salv_err_msg (SALV_DEBUG, "salvage_pv: vtoce ^a at ^oo: time-record-product reset to zero", 465 vtoce.primary_name, vtocx); 466 return; 467 end; 468 469 end CHECK_VTOCE; 470 471 472 473 474 475 FREE_VTOCE : proc; 476 477 dcl bit_no fixed bin; 478 dcl word_no fixed bin; 479 480 if vtoce.uid ^= "0"b then free_count = free_count + 1; 481 482 unspec (vtoce) = "0"b; 483 484 n_free_vtoce = n_free_vtoce + 1; 485 486 word_no = divide (vtocx, 32, 17); 487 bit_no = mod (vtocx, 32); 488 bit_map_wordp = addr (salv_vtoc_map.bit_map (word_no)); 489 substr (bit_map_word.bits, bit_no + 1, 1) = "1"b; 490 491 call THREAD_FOR_DUMPER (2); 492 493 return; 494 495 end FREE_VTOCE; 496 497 498 THREAD_FOR_DUMPER: proc (index); 499 500 dcl index fixed bin; 501 502 if not_enabled_sw then return; 503 504 if index = 1 then 505 incr_map (vtocx) = "1"b; 506 else 507 cons_map (vtocx) = "1"b; 508 509 return; 510 511 end THREAD_FOR_DUMPER; 512 513 514 RESOLVE_CONFLICT : proc (i); 515 516 dcl (i, I, r, VTOCX, del, DEL) fixed bin; 517 518 dcl VTOCEP ptr; 519 dcl 1 VTOCE like vtoce aligned based (VTOCEP); 520 521 522 523 r = fixed (substr (vtoce.fm (i), 2, 17), 17); 524 525 VTOCX = vtocx_table (r); 526 VTOCEP = vm_vio$get_vtocep (pvtx, VTOCX); 527 528 do I = 0 to 255 while (VTOCE.fm (I) ^= vtoce.fm (i)); 529 end; 530 531 if I > 255 then go to del_eq_1;; 532 533 DEL, del = 0; 534 535 if vtoce.dirsw = VTOCE.dirsw then DEL, del = 1; 536 if vtoce.dirsw & ^VTOCE.dirsw then DEL = 1; 537 if ^vtoce.dirsw & VTOCE.dirsw then del = 1; 538 539 if del = 1 then 540 del_eq_1: do; 541 call report_page_del; 542 vtoce.fm (i) = pv_salv_null_addr; 543 end; 544 545 if DEL = 1 then 546 do; 547 call report_page_DEL; 548 vtocx_table (r) = 0; 549 bit_table (r) = "0"b; 550 551 VTOCE.fm (I) = pv_salv_null_addr; 552 553 if vtocep ^= VTOCEP then 554 do; 555 VTOCE.csl = bit (fixed (RECOMPUTE_CSL (VTOCEP), 9)); 556 VTOCE.records = bit (fixed (fixed (VTOCE.records, 9) - 1, 9), 9); 557 558 n_used_rec = n_used_rec - 1; 559 end; 560 end; 561 562 return; 563 564 report_page_del : proc; 565 call salv_err_msg (SALV_DEBUG, 566 "salvage_pv: vtoce ^a at ^oo: ref to pageno ^oo at addr ^oo deleted, dirsw is ^b", 567 vtoce.primary_name, vtocx, i, r, vtoce.dirsw); 568 vtoce.damaged, complained = "1"b; 569 return; 570 end; 571 572 report_page_DEL : proc; 573 call salv_err_msg (SALV_DEBUG, 574 "salvage_pv: vtoce ^a at ^oo: ref to pageno ^oo at addr ^oo deleted, dirsw is ^b", 575 VTOCE.primary_name, VTOCX, I, r, VTOCE.dirsw); 576 if ^VTOCE.damaged & VTOCX < vtocx then do; 577 damaged_count = damaged_count + 1; 578 damaged_by_me = damaged_by_me + 1; 579 end; 580 if VTOCE.damaged | VTOCX > vtocx then return; 581 segdamage.pvid = label.pvid; 582 segdamage.lvid = label.lvid; 583 segdamage.uid = VTOCE.uid; 584 segdamage.vtocx = VTOCX; 585 segdamage.pno = I; 586 segdamage.uid_path = VTOCE.uid_path; 587 call syserr$binary (SALV_LOG, addr (segdamage), SB_vtoc_salv_dam, SBL_vtoc_salv_dam, 588 "salvage_pv: setting damaged switch on ^a (^oo) on pv ^a.", 589 VTOCE.primary_name, VTOCX, label.pv_name); 590 sst$damaged_ct = sst$damaged_ct + 1; 591 VTOCE.damaged = "1"b; 592 return; 593 end; 594 595 end RESOLVE_CONFLICT; 596 597 598 599 600 RECOMPUTE_CSL : proc (vtoce_ptr) returns (fixed bin); 601 602 dcl vtoce_ptr ptr; 603 dcl (i, csl) fixed bin; 604 605 csl = 0; 606 do i = 0 to 255; if substr (vtoce_ptr -> vtoce.fm (i), 1, 1) = "0"b then csl = i + 1; 607 end; 608 return (csl); 609 610 end RECOMPUTE_CSL; 611 612 613 614 RECOMPUTE_RECORDS : proc (vtoce_ptr) returns (fixed bin); 615 616 dcl vtoce_ptr ptr; 617 dcl (i, records) fixed bin; 618 619 records = 0; 620 do i = 0 to 255; if substr (vtoce_ptr -> vtoce.fm (i), 1, 1) = "0"b then records = records + 1; 621 end; 622 return (records); 623 624 end RECOMPUTE_RECORDS; 625 626 CHECK_LABEL_VOLMAP_HEADER: proc (code); 627 628 dcl code fixed bin (35); 629 dcl rightsize fixed bin (24); 630 631 632 code = 0; 633 634 if label.time_last_dmp (1) = 0 then not_enabled_sw = "1"b; 635 else do; 636 if comp_time < max (label.time_mounted, label.time_map_updated, 637 label.time_unmounted, label.time_salvaged, label.time_of_boot) then do; 638 call salv_err_msg (SALV_ANNOUNCE, 639 "salvage_pv: Label times in advance of clock. The clock may be wrong."); 640 end; 641 end; 642 643 hdr_time (1) = substr(bit (fixed (label.time_last_dmp (1), 52), 52),1,36); 644 hdr_time (2) = substr(bit (fixed (label.time_last_dmp (2), 52), 52),1,36); 645 646 root_pack = (label.lv_name = "root"); 647 648 rightsize = ceil (vol_map.n_rec/32); 649 if vol_map.bit_map_n_words ^= rightsize then do; 650 call salv_err_msg (SALV_DEBUG, 651 "salvage_pv: Bit map size is ^d. (^oo) words, s/b ^d. (^oo), changing to latter.", 652 vol_map.bit_map_n_words, vol_map.bit_map_n_words, rightsize, rightsize); 653 vol_map.bit_map_n_words = rightsize; 654 end; /* COULD BE MAKING MISTAKE BY MAKING LARGER, OR n_rec MIGHT BE 655* WRONG. MORE POWERFUL HEURISTIC NEEDED. FIXES ERRORS CAUSED 656* BY 4.1 disk_rebuild. */ 657 658 659 660 return; 661 662 end CHECK_LABEL_VOLMAP_HEADER; 663 664 665 666 UPDATE_VOL_MAP : proc; 667 668 dcl 1 old_map (vol_map.bit_map_n_words) based (addr (vol_map.bit_map)) aligned, 669 2 pad1 bit (1) unaligned, 670 2 bits bit (32) unaligned, 671 2 pad2 bit (3) unaligned; 672 673 dcl 1 new_map (vol_map.bit_map_n_words) based (table3p) aligned like old_map; 674 675 dcl bit_table_map (1000) bit (32) based (addr (bit_table (r0))) unaligned; 676 677 dcl w fixed bin; 678 dcl j fixed bin; 679 dcl n_free_rec fixed bin; 680 681 682 683 unspec (new_map) = "0"b; 684 685 do w = 1 to vol_map.bit_map_n_words; 686 new_map (w).bits = ^ bit_table_map (w); 687 end; 688 689 j = mod (vol_map.n_rec, 32); 690 if j ^= 0 then substr (new_map (w - 1).bits, j + 1) = "0"b; 691 692 if unspec (old_map) ^= unspec (new_map) then 693 do; 694 call report_bit_map_changed; 695 unspec (old_map) = unspec (new_map); 696 end; 697 698 n_free_rec = vol_map.n_rec - n_used_rec; 699 700 if vol_map.n_free_rec ^= n_free_rec then 701 do; 702 call report_n_free_rec_changed; 703 vol_map.n_free_rec = n_free_rec; 704 end; 705 return; 706 707 708 report_bit_map_changed : proc; 709 call salv_err_msg (SALV_DEBUG, "salvage_pv: map of assigned addresses changed"); 710 return; 711 end; 712 713 report_n_free_rec_changed : proc; 714 call salv_err_msg (SALV_DEBUG, "salvage_pv: no. of free recs changed from ^d to ^d", 715 vol_map.n_free_rec, n_free_rec); 716 return; 717 end; 718 719 end UPDATE_VOL_MAP; 720 721 UPDATE_VTOC_MAP : proc; 722 723 if (salv_vtoc_map.n_free_vtoce ^= n_free_vtoce) & salvage_call 724 then call report_n_free_vtoce; 725 salv_vtoc_map.n_free_vtoce = n_free_vtoce; 726 727 unspec (vtoc_map) = unspec (salv_vtoc_map); 728 729 return; 730 731 732 report_n_free_vtoce : proc; 733 call salv_err_msg (SALV_DEBUG, "salvage_pv: no. of free vtoces changed from ^d to ^d", 734 salv_vtoc_map.n_free_vtoce, n_free_vtoce); 735 return; 736 end; 737 738 end UPDATE_VTOC_MAP; 739 740 741 742 743 744 745 746 FORCE_VTOC_ON_DISK : proc; 747 748 dcl i fixed bin; 749 750 751 do i = 1 to max_n_vtoc_seg - 1; 752 astep = get_ptrs_$given_segno (fixed (baseno (s_ptr)) + i); 753 if astep ^= null then call pc_wired$write_wait (astep, 0, -1); 754 end; 755 756 return; 757 758 end FORCE_VTOC_ON_DISK; 759 760 UPDATE_LABEL : proc; 761 762 label.time_map_updated = comp_time; 763 label.time_salvaged = comp_time; 764 /* copy dump maps back into label */ 765 766 label.vol_trouble_count = 0; /* Either salvage or conversion, OK in either case */ 767 768 if label.volmap_version ^= 1 then do; /* Converted VTOC */ 769 if label.volmap_version ^= 2 /* From pre-MR10 */ 770 then do; 771 old_labelp = labelp; 772 label.time_unmounted = old_label.time_unmounted; 773 end; 774 label.volmap_version = 1; /* Force salvage on pre-MR10 system */ 775 776 end; 777 778 return; 779 780 end UPDATE_LABEL; 781 782 783 784 785 786 787 788 FORCE_LABEL_ON_DISK : proc; 789 790 791 astep = get_ptrs_$given_segno (fixed (baseno (s_ptr))); 792 793 if astep ^= null then call pc_wired$write_wait (astep, LABEL_ADDR, 1); 794 795 return; 796 797 end FORCE_LABEL_ON_DISK; 798 799 CLEAN_UP : proc; 800 801 802 dcl segno fixed bin; 803 804 805 segno = fixed (baseno (addr (pv_salv_seg$)), 18); 806 807 astep = get_ptrs_$given_segno (segno); 808 809 if astep ^= null then 810 do; 811 812 dseg$ (segno) = 0; 813 call page$cam; 814 815 call pc$truncate_deposit_all (astep); 816 if aste.usedf then call get_pvtx$release_pvtx ((pvt_array.pvid (aste.pvtx)), (aste.pvtx)); 817 if sst$astl ^= pds$processid then call lock$lock_ast; 818 call put_aste (astep); 819 call lock$unlock_ast; 820 821 822 end; 823 824 call vm_vio$clean_up (pvtx); /* this releases printer and abs segs */ 825 826 return; 827 828 end CLEAN_UP; 829 830 INIT_TABLES : proc (table1p, table2p, table3p, table4p, table5p, table6p, code); 831 832 dcl table1p ptr; 833 dcl table2p ptr; 834 dcl table3p ptr; 835 dcl table4p ptr; 836 dcl table5p ptr; 837 dcl table6p ptr; 838 dcl code fixed bin (35); 839 840 dcl 1 pv_salv_seg based (addr (pv_salv_seg$)) aligned, 841 842 2 table1, 843 3 bit_table (0 : label.vol_size - 1) bit (1) unaligned, 844 845 2 table2, 846 3 vtocx_table (0 : label.vol_size - 1) fixed bin (17) unaligned, 847 848 2 table3, 849 3 new_map (1 : vol_map.bit_map_n_words) bit (36) aligned, 850 851 2 table4, 852 3 incr_map (0 : vtoc_header.n_vtoce -1) bit (1) unaligned, 853 854 2 table5, 855 3 cons_map (0 : vtoc_header.n_vtoce -1) bit (1) unaligned, 856 857 2 table6 aligned like vtoc_map, 858 859 2 end bit (36) aligned; 860 861 dcl segno fixed bin, /* segno assigned to this segment */ 862 pvtx fixed bin, /* PVT index for this segment */ 863 msl fixed bin; /* number of pages for this segment */ 864 865 dcl (i, pts, ptsi) fixed bin; 866 867 dcl tsdw fixed bin (71); 868 869 870 code = 0; 871 872 segno = fixed (baseno (addr (pv_salv_seg$)), 18); 873 pvtx = sst$root_pvtx; 874 msl = divide (fixed (rel (addr (pv_salv_seg.end)), 18), 1024, 17, 0) + 1; 875 876 877 /* ALLOCATE AN ASTE OF THE APPROPRIATE SIZE */ 878 879 call lock$lock_ast; 880 881 astep = get_aste (msl); /* Get an ASTE with the appropriate size PT */ 882 883 if astep = null then 884 do; 885 call lock$unlock_ast; 886 code = no_free_aste_err; 887 call syserr (ANNOUNCE, "salvage_pv: INIT_TABLES: aste pool ^oo too small", msl); 888 return; 889 end; 890 891 ptsi = fixed (aste.ptsi); 892 pts = sst$pts (ptsi); 893 894 895 /* ZERO THE ASTE */ 896 897 astep -> aste_part.two = "0"b; /* Zero the rest of the ASTE except ptsi and marker */ 898 899 900 /* INITIALIZE THE PAGE TABLE WITH NULL ADDRESSES AND PAGE FAULT BITS */ 901 902 ptp = addrel (astep, sst$astsize); /* get a pointer to the page table */ 903 904 do i = 0 to pts - 1; 905 call ptw_util_$make_null (addrel (ptp, i), fill_page_table_null_addr); /* Make up remaining PTWS */ 906 end; 907 908 909 /* INITIALIZE THE ASTE */ 910 911 astep -> aste.vtocx = -1; /* show there is no VTOCE for the segment */ 912 astep -> aste.dnzp = "1"b; 913 astep -> aste.nqsw = "1"b; /* turn on no quota switch */ 914 astep -> aste.strp = bit (fixed (segno, 18), 18); /* store segment number in AST */ 915 astep -> aste.msl = bit (fixed (msl, 9), 9); /* set the max length */ 916 astep -> aste.pvtx = pvtx; /* store the root physical volume table index */ 917 918 919 /* THE CLEAN_UP OPERATION WILL DEPEND ON THE ORDER IN WHICH THE NEXT ACTIONS ARE PERFORMED */ 920 921 tsdw = get_ptrs_$given_astep (astep); /* Get initial SDW. */ 922 dseg$ (segno) = tsdw; /* store temp SDW in the descriptor segment */ 923 call page$cam; 924 925 926 call get_pvtx$hold_pvtx ((pvt_array.pvid (pvtx)), pvtx, (0)); /* Hold the RPV */ 927 astep -> aste.usedf = "1"b; /* mark it as being used - as late as possible */ 928 929 call thread$out (astep, sst$level (ptsi).ausedp); /* thread the entry out of the used list */ 930 931 call lock$unlock_ast; 932 933 934 /* INITIALIZE POINTERS TO TABLES */ 935 936 table1p = addr (pv_salv_seg.table1); 937 table2p = addr (pv_salv_seg.table2); 938 table3p = addr (pv_salv_seg.table3); 939 table4p = addr (pv_salv_seg.table4); 940 table5p = addr (pv_salv_seg.table5); 941 table6p = addr (pv_salv_seg.table6); 942 943 return; 944 945 end INIT_TABLES; 946 947 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 1 2 1 3 /* Template for an AST entry. Length = 12 words. */ 1 4 1 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 1 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 1 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 1 8 1 9 dcl astep ptr; 1 10 1 11 dcl 1 aste based (astep) aligned, 1 12 1 13 (2 fp bit (18), /* forward used list rel pointer */ 1 14 2 bp bit (18), /* backward used list rel pointer */ 1 15 1 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 1 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 1 18 1 19 2 strp bit (18), /* rel pointer to process trailer */ 1 20 2 par_astep bit (18), /* rel pointer to parent aste */ 1 21 1 22 2 uid bit (36), /* segment unique id */ 1 23 1 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 1 25 2 pvtx fixed bin (8), /* physical volume table index */ 1 26 2 vtocx fixed bin (17), /* vtoc entry index */ 1 27 1 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 1 29 2 init bit (1), /* used bit - insure 1 lap */ 1 30 2 gtus bit (1), /* global transparent usage switch */ 1 31 2 gtms bit (1), /* global transparent modified switch */ 1 32 2 hc bit (1), /* hard core segment */ 1 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 1 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 1 35 2 write_access_on bit (1), /* any sdw allows write access */ 1 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 1 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 1 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 1 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 1 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 1 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 1 42 2 pad1 bit (2), /* OO */ 1 43 2 dius bit (1), /* dumper in use switch */ 1 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 1 45 2 dmpr_pad bit (1), 1 46 2 ehs bit (1), /* entry hold switch */ 1 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 1 48 2 dirsw bit (1), /* directory switch */ 1 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 1 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 1 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 1 52 2 pad_ic bit (10), /* Used to be aste.ic */ 1 53 1 54 2 dtu bit (36), /* date and time segment last used */ 1 55 1 56 2 dtm bit (36), /* date and time segment last modified */ 1 57 1 58 1 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 1 60 1 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 1 62 1 63 2 csl bit (9), /* current segment length in 1024 words units */ 1 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 1 65 2 fms bit (1), /* file modified switch */ 1 66 2 npfs bit (1), /* no page fault switch */ 1 67 2 gtpd bit (1), /* global transparent paging device switch */ 1 68 2 dnzp bit (1), /* don't null out if zero page switch */ 1 69 2 per_process bit (1), /* use master quota for this entry */ 1 70 2 ddnp bit (1), /* don't deposit nulled pages */ 1 71 2 pad2 bit (2), 1 72 2 records bit (9), /* number of records used by the seg in sec storage */ 1 73 2 np bit (9), /* number of pages in core */ 1 74 1 75 1 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 1 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 1 78 2 damaged bit (1), /* PC declared segment unusable */ 1 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 1 80 2 synchronized bit (1), /* Data Management synchronized segment */ 1 81 2 pad3 bit (6), /* OOOOOOOOO */ 1 82 2 ptsi bit (2), /* page table size index */ 1 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 1 84 1 85 1 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 1 87 1 88 1 89 dcl 1 aste_part aligned based (astep), 1 90 1 91 2 one bit (36) unaligned, /* fp and bp */ 1 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 1 93 2 three bit (8) unaligned; /* ptsi and marker */ 1 94 1 95 1 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 1 97 2 pad1 bit (8*36), 1 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 1 99 2 pad2 bit (3*36); 1 100 1 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 947 948 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */ 2 2 2 3 2 4 2 5 2 6 /****^ HISTORY COMMENTS: 2 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383), 2 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098): 2 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and 2 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin 2 11* constants indexed by device type as defined in fs_dev_types.incl.pl1. 2 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO. 2 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533), 2 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193): 2 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants. 2 16* END HISTORY COMMENTS */ 2 17 2 18 2 19 /* 2 20* All disk packs have the standard layout described below: 2 21* 2 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1. 2 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1 2 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1 2 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1 2 26* Record 7 : formerly contained bad track list; no longer used. 2 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label) 2 28* each record contains 5 192-word vtoc entries. The last 64 words are unused. 2 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label) 2 30* 2 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning 2 32* of the particular partition. 2 33* 2 34* 2 35* 2 36* A conceptual declaration for a disk pack could be: 2 37* 2 38* dcl 1 disk_pack, 2 39* 2 label_record (0 : 0) bit(36 * 1024), 2 40* 2 volume_map_record (1 : 3) bit(36 * 1024), 2 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024), 2 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024), 2 43* 2 spare_record (7 : 7) bit(36 * 1024), 2 44* 2 vtoc_array_records (8 : n-1), 2 45* 3 vtoc_entry ( 5 ) bit(36 * 192), 2 46* 3 unused bit(36 * 64), 2 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024); 2 48* 2 49* 2 50* 2 51* 2 52**/ 2 53 2 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */ 2 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */ 2 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */ 2 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */ 2 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */ 2 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */ 2 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */ 2 61 fixed bin (17) int static options (constant); 2 62 2 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */ 2 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */ 2 65 /* or the physical volume table entry (pvte) device type. */ 2 66 2 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant); 2 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant); 2 69 2 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init 2 71 (0, 3, 3, 3, 3, 3, 3, 1, 1); 2 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init 2 73 (0, 5, 5, 5, 5, 5, 5, 2, 2); 2 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init 2 75 (0, 16, 16, 16, 16, 16, 16, 2, 2); 2 76 2 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */ 948 949 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 3 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 6* Add the subvolume info. 3 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 3 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 3 9* Added inconsistent_dbm bit used to determine consistency of volume 3 10* dumper bit maps. 3 11* END HISTORY COMMENTS */ 3 12 3 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 3 14 /* Note: fsout_vol clears pad fields before writing the label */ 3 15 3 16 dcl labelp ptr; 3 17 3 18 dcl 1 label based (labelp) aligned, 3 19 3 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 3 21 3 22 2 gcos (5*64) fixed bin, 3 23 3 24 /* Now we have the Multics label */ 3 25 3 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 3 27 2 version fixed bin, /* Version 1 */ 3 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 3 29 2 pv_name char (32), /* Physical volume name. */ 3 30 2 lv_name char (32), /* Name of logical volume for pack */ 3 31 2 pvid bit (36), /* Unique ID of this pack */ 3 32 2 lvid bit (36), /* unique ID of its logical vol */ 3 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 3 34 2 time_registered fixed bin (71), /* time imported to system */ 3 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 3 36 2 vol_size fixed bin, /* total size of volume, in records */ 3 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 3 38 2 not_used bit (1) unal, /* used to be multiple_class */ 3 39 2 private bit (1) unal, /* TRUE if was registered as private */ 3 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 3 41 2 flagpad bit (33) unal, 3 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 3 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 3 44 2 password bit (72), /* not yet used */ 3 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 3 46 2 this_sv fixed bin, /* what subvolume number it is */ 3 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 3 48 2 pad1 (13) fixed bin, 3 49 2 time_mounted fixed bin (71), /* time mounted */ 3 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 3 51 3 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 3 53* forces a salvage if an MR10 pack is mounted on an earlier system. 3 54* */ 3 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 3 56 2 pad6 fixed bin, 3 57 3 58 2 time_salvaged fixed bin (71), /* time salvaged */ 3 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 3 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 3 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 3 62 2 pad1a (2) fixed bin, 3 63 2 err_hist_size fixed bin, /* size of pack error history */ 3 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 3 65 2 time_last_reloaded fixed bin (71), /* what it says */ 3 66 2 pad2 (40) fixed bin, 3 67 2 root, 3 68 3 here bit (1), /* TRUE if the root is on this pack */ 3 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 3 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 3 71 3 pad7 bit (1) aligned, 3 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 3 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 3 74 3 esd_state fixed bin, /* State of esd */ 3 75 2 volmap_record fixed bin, /* Begin record of volume map */ 3 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 3 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 3 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 3 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 3 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 3 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 3 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 3 83 2 pad3 (52) fixed bin, 3 84 2 nparts fixed bin, /* Number of special partitions on pack */ 3 85 2 parts (47), 3 86 3 part char (4), /* Name of partition */ 3 87 3 frec fixed bin, /* First record */ 3 88 3 nrec fixed bin, /* Number of records */ 3 89 3 pad5 fixed bin, 3 90 2 pad4 (5*64) fixed bin; 3 91 3 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 3 93 3 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 949 950 /* BEGIN INCLUDE FILE null_addresses.incl.pl1 */ 4 2 /* Added segmove values, Benson Margulies, 84-01 */ 4 3 4 4 dcl (pc_move_page_table_1_null_addr init ("3770070"b3), 4 5 pc_move_page_table_2_null_addr init ("3770100"b3), 4 6 get_aste_null_addr init ("3770110"b3), 4 7 make_sdw_null_addr init ("3770120"b3), 4 8 put_aste_null_addr init ("3770130"b3), 4 9 page_bad_pd_null_addr init ("3770150"b3), 4 10 list_deposit_null_addr init ("3770160"b3), 4 11 get_file_map_null_addr init ("3770170"b3), 4 12 fill_page_table_null_addr init ("3770200"b3), 4 13 init_sst_null_addr init ("3770210"b3), 4 14 get_file_map_vt_null_addr init ("3770220"b3), 4 15 unprotected_null_addr init ("3770230"b3), 4 16 page_bad_null_addr init ("3770240"b3), 4 17 page_problem_null_addr init ("3770250"b3), 4 18 page_parity_null_addr init ("3770260"b3), 4 19 page_devparity_null_addr init ("3770270"b3), 4 20 segmove_old_addr_null_addr init ("3770300"b3), 4 21 segmove_new_addr_null_addr init ("3770310"b3), 4 22 get_file_map_dumper_non_null_addr init ("3777720"b3), 4 23 append_null_addr init ("3777770"b3)) bit (22) aligned static options (constant); 4 24 dcl create_vtoce_four_null_addrs fixed bin (71) int static init (-1);/* 777777 777777 777777 777777 */ 4 25 4 26 dcl (create_vtoce_null_addr init ("777777"b3), 4 27 update_vtoce_null_addr init ("777776"b3), 4 28 truncate_vtoce_fill_null_addr init ("777775"b3), 4 29 truncate_vtoce_null_addr init ("777002"b3), 4 30 pv_salv_null_addr init ("777004"b3), 4 31 pv_scav_null_addr init ("777006"b3), 4 32 volume_reloader_null_addr init ("777774"b3), 4 33 volume_retriever_null_addr init ("777773"b3), 4 34 salv_truncate_null_addr init ("777005"b3)) bit (18) aligned static options (constant); 4 35 4 36 /* END INCLUDE FILE null_addresses.incl.pl1 */ 950 951 /* BEGIN INCLUDE FILE ... old_fs_vol_label.incl.pl1 .. March 1982 */ 5 2 5 3 /* Pre-MR10 Volume Label */ 5 4 5 5 dcl old_labelp ptr; 5 6 5 7 dcl 1 old_label based (old_labelp) aligned, 5 8 5 9 /* First comes data not used by Multics.. for compatibility with GCOS */ 5 10 5 11 2 gcos (5*64) fixed bin, 5 12 5 13 /* Now we have the Multics label */ 5 14 5 15 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 5 16 2 version fixed bin, /* Version 1 */ 5 17 2 mfg_serial char (32), /* Manufacturer's serial number */ 5 18 2 pv_name char (32), /* Physical volume name. */ 5 19 2 lv_name char (32), /* Name of logical volume for pack */ 5 20 2 pvid bit (36), /* Unique ID of this pack */ 5 21 2 lvid bit (36), /* unique ID of its logical vol */ 5 22 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 5 23 2 time_registered fixed bin (71), /* time imported to system */ 5 24 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 5 25 2 vol_size fixed bin, /* total size of volume, in records */ 5 26 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 5 27 2 not_used bit (1) unal, /* uset to be multiple_class */ 5 28 2 private bit (1) unal, /* TRUE if was registered as private */ 5 29 2 flagpad bit (34) unal, 5 30 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 5 31 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 5 32 2 password bit (72), /* not yet used */ 5 33 2 pad1 (16) fixed bin, 5 34 2 time_mounted fixed bin (71), /* time mounted */ 5 35 2 time_map_updated fixed bin (71), /* time vmap known good */ 5 36 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 5 37 2 time_salvaged fixed bin (71), /* time salvaged */ 5 38 2 time_of_boot fixed bin (71), /* time of last bootload */ 5 39 2 pd_time fixed bin (71), /* PDMAP time of last PD which saw this vol */ 5 40 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 5 41 2 pad1a fixed bin, 5 42 2 pad7 fixed bin, 5 43 2 err_hist_size fixed bin, /* size of pack error history */ 5 44 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 5 45 2 time_last_reloaded fixed bin (71), /* what it says */ 5 46 2 pad5 (2) fixed bin, 5 47 2 pad6 (3) fixed bin, 5 48 2 pad2 (35) fixed bin, 5 49 2 root, 5 50 3 here bit (1), /* TRUE if the root is on this pack */ 5 51 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 5 52 3 shutdown_state fixed bin, /* Status of hierarchy */ 5 53 3 pd_active bit (1) aligned, /* Unflushed PD exists */ 5 54 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 5 55 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 5 56 3 esd_state fixed bin, /* State of esd */ 5 57 2 pad3 (60) fixed bin, 5 58 2 nparts fixed bin, /* Number of special partitions on pack */ 5 59 2 parts (47), 5 60 3 part char (4), /* Name of partition */ 5 61 3 frec fixed bin, /* First record */ 5 62 3 nrec fixed bin, /* Number of records */ 5 63 3 pad5 fixed bin, 5 64 2 pad4 (5*64) fixed bin; 5 65 5 66 5 67 /* END INCLUDE FILE old_fs_vol_label.incl.pl1 */ 951 952 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 6 2 6 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 6 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 6 8* Add the support for subvolumes 6 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 6 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 6 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 6 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 6 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 6 14* Added inconsistent_dbm bit for determining the status of volume 6 15* dumper bit maps. 6 16* END HISTORY COMMENTS */ 6 17 6 18 dcl pvt$array aligned external; 6 19 dcl pvt$max_n_entries fixed bin external; 6 20 6 21 dcl pvt_arrayp ptr; 6 22 dcl pvtep ptr; 6 23 6 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 6 25 6 26 dcl 1 pvte based (pvtep) aligned, 6 27 6 28 2 pvid bit (36), /* physical volume ID */ 6 29 6 30 2 lvid bit (36), /* logical volume ID */ 6 31 6 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 6 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 6 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 6 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 6 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 6 37 2 pad3 bit (2) unaligned, 6 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 6 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 6 40 6 41 6 42 6 43 2 devname char (4), /* device name */ 6 44 6 45 (2 device_type fixed bin (8), /* device type */ 6 46 2 logical_area_number fixed bin (8), /* disk drive number */ 6 47 2 used bit (1), /* TRUE if this entry is used */ 6 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 6 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 6 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 6 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 6 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 6 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 6 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 6 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 6 56 2 scav_check_address 6 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 6 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 6 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 6 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 6 61 2 vacating bit (1), /* don't put new segs on this vol */ 6 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 6 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 6 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 6 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 6 66 6 67 6 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 6 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 6 70 6 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 6 72 6 73 2 nleft fixed bin (17), /* number of records left */ 6 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 6 75 6 76 2 dim_info bit (36), /* Information peculiar to DIM */ 6 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 6 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 6 79 2 records_per_cyl fixed bin, 6 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 6 81 2 sv_name char (2) aligned, 6 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 6 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 6 84 6 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 6 86 2 pad2 bit (18) unaligned, 6 87 6 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 6 89 6 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 6 91 6 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 6 93 6 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 6 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 6 96 6 97 6 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 6 99 6 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 6 101 6 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 6 103 6 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 6 105 6 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 6 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 6 108 6 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 6 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 6 111 6 112 6 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 6 114 VOLMAP_ASYNC_READ init (1), 6 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 6 116 6 117 6 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 952 953 /* BEGIN INCLUDE FILE ... salv_data.incl.pl1 ... last modified July 1982 */ 7 2 7 3 dcl salv_data$debug bit (1) aligned external; /* ON, For additional debugging messages. */ 7 4 dcl salv_data$dump bit (1) aligned external; /* ON, to dump bad directories and VTOC entries. */ 7 5 dcl salv_data$lock bit (36) external aligned; /* lock to prevent more than one process from using salv_data. */ 7 6 dcl salv_data$on_line bit (1) aligned external; /* ON, for online salvage. */ 7 7 dcl salv_data$print_path bit (1) aligned external; /* ON, if pathname of each directory should be printed. */ 7 8 dcl salv_data$printer_delay fixed bin aligned external; /* Number of minutes to wait for a not ready printer. */ 7 9 dcl salv_data$rpv bit (1) aligned external; /* ON, for root physical volume salvage. */ 7 10 dcl salv_data$vol_read_ahead fixed bin external; 7 11 7 12 7 13 /* END INCLUDE FILE ... salv_data.incl.pl1 ... */ 953 954 /* Begin include file salvager_severities.incl.pl1 BIM 831118 */ 8 2 /* format: style3 */ 8 3 8 4 declare ( 8 5 SALV_CRASH init (1), /** Something salvager-detected is life threatening. Should never happen */ 8 6 SALV_ANNOUNCE init (2), /** Worthy of the console if online */ 8 7 SALV_LOG init (4), /** worthy of the syserr log */ 8 8 SALV_DEBUG init (5), /** just like 4, but dump the dir */ 8 9 SALV_JUST_LOG init (6) /** barely worthy of the syserr log */ 8 10 ) fixed bin int static options (constant); 8 11 8 12 /* End include file salvager_severities.incl.pl1 */ 954 955 /* BEGIN INCLUDE FILE segdamage_msg.incl.pl1 Bernard Greenberg 7/15/77 */ 9 2 9 3 /* This binary syserr message should be sent when the system damages a segment. 9 4* The value of sst$damaged_ct whould be incremented at this time. */ 9 5 9 6 dcl 1 segdamage aligned, 9 7 2 pvid bit (36) aligned, /* Volume PVID */ 9 8 2 lvid bit (36) aligned, /* Volume LVID */ 9 9 2 pno fixed bin (17) unaligned, /* Page number, -1 => don't know/care */ 9 10 2 vtocx fixed bin (17) unaligned, /* VTOC index, -1 => none, -2 => don't know */ 9 11 2 uid bit (36) aligned, /* Seg UID */ 9 12 2 uid_path (0:15) bit (36) aligned; /* Parent dir uid path, zero padded on right */ 9 13 9 14 /* END INCLUDE FILE segdamage_msg.incl.pl1 */ 955 956 /* BEGIN INCLUDE FILE .. syserr_binary_def.incl.pl1 */ 10 2 10 3 /* This include file has an ALM version, keep 'em in sync. */ 10 4 10 5 /* format: off */ 10 6 10 7 /* Modified January 1984 by Paul Farley to add an array of entry values 10 8* to be examined by display_cpu_error. */ 10 9 /* Modified October 1984 by EJ Sharpe to include SB_audit_message */ 10 10 /* Modified January 1985 by EJ Sharpe for SB_char_data_classes */ 10 11 /* Modified 1985-01-25, BIM: added ring alarm audit support. */ 10 12 /* Modified 1985-02-20, EJ Sharpe: added SB_ibm3270_mde, syserr_binary_(seg vol)damage_class, 10 13* also changed some codes to "SB_unused_NN" - see line comments */ 10 14 10 15 /* In the future, these will be the only constants needed in this include 10 16*file. They are the binary data class strings for messages in the new format 10 17*syserr logs. The names are all of the form SB_ZZZZZZZ_data_class where 10 18*ZZZZZZZ is the value of the data class string. Message expanders are named 10 19*expand_ZZZZZZZ_msg_ and are referenced by the log perusal tools. */ 10 20 10 21 dcl ( /* include file name */ 10 22 SB_io_status_data_class init ("io_status"), /* io_syserr_msg */ 10 23 SB_hwfault_data_class init ("hwfault"), /* syserr_fault_msg */ 10 24 SB_mos_data_class init ("mos"), /* scr */ 10 25 SB_segdamage_data_class init ("segdamage"), /* segdamage_msg */ 10 26 SB_voldamage_data_class init ("voldamage"), /* segdamage_msg (first two words) */ 10 27 SB_mdc_del_uidpath_data_class init ("mdc_del_uidpath"), /* none - 16 word UID path */ 10 28 SB_mmdam_data_class init ("mmdam"), /* syserr_mmdam_msg */ 10 29 SB_mpc_poll_data_class init ("mpc_poll"), /* poll_mpc_data */ 10 30 SB_fnp_poll_data_class init ("fnp_poll"), /* poll_fnp_data */ 10 31 SB_config_deck_data_class init ("config_deck"), /* config_deck */ 10 32 SB_vtoce_data_class init ("vtoce"), /* vtoce */ 10 33 SB_access_audit_data_class init ("access_audit"), /* access_audit_bin_header */ 10 34 SB_ibm3270_mde_data_class init ("ibm3270_mde") /* ibm3270_mpx_data */ 10 35 ) static internal char (16) varying options (constant); 10 36 10 37 10 38 /************************ 10 39*Once the syserr$binary is replaced with something that takes real data classes 10 40*and all system modules and tools are upgraded to use the new interface, the 10 41*rest of this include file may be discarded. 10 42*************************/ 10 43 10 44 /* The limit of 36 is arbitrary- there is no reason that it can not be 10 45* extended at any time. */ 10 46 10 47 dcl ( 10 48 SB_disk_err init (1), SBL_disk_err init (5), 10 49 SB_hw_fault init (2), SBL_hw_fault init (176), 10 50 SB_io_err init (3), SBL_io_err init (5), 10 51 SB_unused_4 init (4), SBL_unused_4 init (1), /* was "mos_poll" (mos poll time) */ 10 52 SB_mos_err init (5), SBL_mos_err init (2), /* mos memory error data */ 10 53 SB_unused_6 init (6), SBL_unused_6 init (1), /* was "bulk_status" (bulk dcb status) */ 10 54 SB_unused_7 init (7), SBL_unused_7 init (1), /* was "bulk_csb" (bulk csb status) */ 10 55 SB_unused_8 init (8), SBL_unused_8 init (3), /* was "free_st_1" */ 10 56 SB_unused_9 init (9), SBL_unused_9 init (2), /* was "free_st_2" */ 10 57 SB_unused_10 init (10), SBL_unused_10 init (21), /* was "unpr_add" */ 10 58 SB_zerpag init (11), SBL_zerpag init (20), 10 59 SB_unused_12 init (12), SBL_unused_12 init (20), /* was "unpr_add" */ 10 60 SB_vtoc_salv_dam init (13), SBL_vtoc_salv_dam init (20), 10 61 SB_unused_14 init (14), SBL_unused_14 init (20), /* was "page_rw_err" */ 10 62 SB_unused_15 init (15), SBL_unused_15 init (3), /* was "ruad" */ 10 63 SB_random_segdamage init (16), SBL_random_segdamage init (20), 10 64 SB_read_nc init (17), SBL_read_nc init (2), 10 65 SB_unused_18 init (18), SBL_unused_18 init (2), /* was "vtoc_err" */ 10 66 SB_mdc_del_uidpath init (19), SBL_mdc_del_uidpath init (16), 10 67 SB_ocdcm_err init (20), SBL_ocdcm_err init (5), 10 68 SB_mmdam init (21), SBL_mmdam init (2), 10 69 SB_verify_lock init (22), SBL_verify_lock init (176), 10 70 SB_io_err_detail init (23), SBL_io_err_detail init (11), 10 71 SB_mpc_poll init (24), SBL_mpc_poll init (256) /* max */, 10 72 SB_fnp_poll init (25), SBL_fnp_poll init (256) /* max */, 10 73 SB_config_deck init (26), SBL_config_deck init (256) /* 16 cards at 16 words */, 10 74 SB_vtoce init (27), SBL_vtoce init (192), /* 1 VTOCE */ 10 75 SB_access_audit init (28), SBL_access_audit init (256), /* max */ 10 76 SB_ibm3270_mde init (35), SBL_ibm3270_mde init (256), /* max */ 10 77 SB_end_of_table init (36), SBL_end_of_table init (1) 10 78 ) internal static options (constant) fixed bin; 10 79 10 80 10 81 /* The following array is a mapping of the old syserr$binary codes into the 10 82*new data classes for MR11. It is primarily used by syserr_copy to translate 10 83*the binary data codes stored in the wired syserr log (see above) into the data 10 84*classes needed by the ring-0 paged syserr log which is a new format log. It 10 85*is also used by syserr_log_util_ to translate the data classes back into the 10 86*corresponding binary code (for tools not yet upgraded to deal with the new 10 87*format log messages). */ 10 88 10 89 dcl SB_char_data_classes (36) char (16) varying internal static options (constant) 10 90 init ( "io_status", /* 1 */ 10 91 "hwfault", /* 2 */ 10 92 "io_status", /* 3 */ 10 93 "unused_4", /* 4 */ 10 94 "mos", /* 5 */ 10 95 10 96 "unused_6", /* 6 */ 10 97 "unused_7", /* 7 */ 10 98 "unused_8", /* 8 */ 10 99 "unused_9", /* 9 */ 10 100 "unused_10", /* 10 */ 10 101 10 102 "segdamage", /* 11 */ 10 103 "unused_12", /* 12 */ 10 104 "segdamage", /* 13 */ 10 105 "unused_14", /* 14 */ 10 106 "unused_15", /* 15 */ 10 107 10 108 "segdamage", /* 16 */ 10 109 "voldamage", /* 17 */ 10 110 "unused_18", /* 18 */ 10 111 "mdc_del_uidpath", /* 19 */ 10 112 "io_status", /* 20 */ 10 113 10 114 "mmdam", /* 21 */ 10 115 "hwfault", /* 22 */ 10 116 "io_status", /* 23 */ 10 117 "mpc_poll", /* 24 */ 10 118 "fnp_poll", /* 25 */ 10 119 10 120 "config_deck", /* 26 */ 10 121 "vtoce", /* 27 */ 10 122 "access_audit", /* 28 */ 10 123 "unused_29", /* 29 */ 10 124 "unused_30", /* 30 */ 10 125 "unused_31", /* 31 */ 10 126 "unused_32", /* 32 */ 10 127 "unused_33", /* 33 */ 10 128 "unused_34", /* 34 */ 10 129 "ibm3270_mde", /* 35 */ 10 130 "unused_36" /* 36 */ 10 131 ); 10 132 10 133 10 134 /* format: on */ 10 135 10 136 /* These constants are used by various tools which analyze syserr messages and 10 137*still call the old interface "syserr_log_util_". */ 10 138 10 139 dcl syserr_binary_mos_mask init ("060000000000"b3) bit (36) static options (constant); 10 140 dcl syserr_binary_seg_damage_mask init ("000374000000"b3) bit (36) static options (constant); 10 141 dcl syserr_binary_vol_damage_mask init ("003413000000"b3) bit (36) static options (constant); 10 142 dcl syserr_binary_address_damage_mask init ("002010000000"b3) bit (36) static options (constant); 10 143 10 144 dcl display_cpu_error_binary_defs (2) init ( 10 145 2, /** SB_hw_fault */ 10 146 22 /** SB_verify_lock */ 10 147 ) internal static options (constant) fixed bin; 10 148 10 149 /* END INCLUDE FILE syserr_binary_def.incl.pl1 */ 956 957 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 11 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 11 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 11 4 11 5 /* This include file has an ALM version. Keep 'em in sync! */ 11 6 11 7 dcl ( 11 8 11 9 /* The following constants define the message action codes. This indicates 11 10*how a message is to be handled. */ 11 11 11 12 SYSERR_CRASH_SYSTEM init (1), 11 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 11 14 11 15 SYSERR_TERMINATE_PROCESS init (2), 11 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 11 17 11 18 SYSERR_PRINT_WITH_ALARM init (3), 11 19 BEEP init (3), /* Beep and print the message on the console. */ 11 20 11 21 SYSERR_PRINT_ON_CONSOLE init (0), 11 22 ANNOUNCE init (0), /* Just print the message on the console. */ 11 23 11 24 SYSERR_LOG_OR_PRINT init (4), 11 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 11 26 11 27 SYSERR_LOG_OR_DISCARD init (5), 11 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 11 29 11 30 11 31 /* The following constants are added to the normal severities to indicate 11 32*different sorting classes of messages. */ 11 33 11 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 11 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 11 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 11 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 11 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 11 39 ) fixed bin internal static options (constant); 11 40 11 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 957 958 /* BEGIN INCLUDE FILE ... vol_map.incl.pl1 */ 12 2 12 3 dcl vol_mapp ptr; 12 4 12 5 dcl 1 vol_map based (vol_mapp) aligned, 12 6 12 7 2 n_rec fixed bin(17), /* number of records represented in the map */ 12 8 2 base_add fixed bin(17), /* record number for first bit in bit map */ 12 9 2 n_free_rec fixed bin(17), /* number of free records */ 12 10 2 bit_map_n_words fixed bin(17), /* number of words of the bit map */ 12 11 2 pad (60) bit(36), /* pad to 64 words */ 12 12 2 bit_map (3*1024 - 64) bit(36) ; /* bit map - the entire vol map occupies 3 records */ 12 13 12 14 /* END INCLUDE ... vol_map */ 958 959 /* BEGIN INCLUDE FILE ... vtoc_header.incl.pl1 */ 13 2 13 3 dcl vtoc_headerp ptr; 13 4 13 5 dcl 1 vtoc_header based (vtoc_headerp) aligned, 13 6 13 7 2 version fixed bin (17), /* version number. The current version number is 1. * */ 13 8 2 n_vtoce fixed bin (17), /* number of vtoc entries */ 13 9 2 vtoc_last_recno fixed bin (17), /* record number of the last record of the vtoc */ 13 10 2 n_free_vtoce fixed bin (17), /* number of free vtoc entries */ 13 11 2 first_free_vtocx fixed bin (17), /* index of the first vtoce in the free list */ 13 12 2 pad (3) bit (36), 13 13 2 dmpr_bit_map (2048 - 8) bit (36); /* space for dmpr bit map */ 13 14 13 15 /* END INCLUDE ... vtoc_header */ 13 16 959 960 /* START OF: vtoc_map.incl.pl1 ... March 1982 ... * * * * * * * * * * * * * * * * */ 14 2 14 3 dcl vtoc_mapp ptr; 14 4 dcl bit_map_wordp ptr; 14 5 14 6 dcl 1 vtoc_map aligned based (vtoc_mapp), 14 7 2 n_vtoce fixed bin, /* Number of VTOCEs on the device */ 14 8 2 n_free_vtoce fixed bin, /* Number of free VTOCEs */ 14 9 2 bit_map_n_words fixed bin, /* Number of words in the bit map below */ 14 10 2 vtoc_last_recno fixed bin, /* Last record number in VTOC */ 14 11 2 pad (4) fixed bin, 14 12 2 bit_map (0:1024 - 9) bit (36); /* This structure consumes exactly 1 page */ 14 13 14 14 dcl 1 bit_map_word aligned based (bit_map_wordp), 14 15 2 pad1 bit (1) unal, 14 16 2 bits bit (32) unal, /* 32 VTOCES ON => free */ 14 17 2 pad2 bit (3) unal; 14 18 14 19 14 20 14 21 /* END OF: vtoc_map.incl.pl1 * * * * * * * * * * * * * * * * */ 960 961 /* 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 */ 961 962 963 /* */ 964 /* BEGIN MESSAGE DOCUMENTATION 965* 966* Message: 967* salvage_pv: INIT_TABLES: aste pool WWWo too small. 968* 969* S: $info 970* 971* T: $run 972* 973* M: The physical volume salvager was unable to 974* obtain a temporary AST entry for segment requiring 975* WWWo ptws. No salvaging was done. 976* 977* A: Shut down, 978* manually correct the SST card, 979* and reboot. 980* Then salvage all volumes, 981* since the indicator that volumes need salvaging 982* may have been lost. 983* 984* Message: 985* salvage_pv: Volume salvage of dskX_NN{s}, volume PVNAME of logical vol LVNAME. 986* 987* S: $salvout 988* 989* T: $salvt 990* 991* M: This message is printed when volume salvaging begins. 992* 993* A: $ignore 994* 995* Message: 996* salvage_pv: VTOC Conversion of dskX_NN{s}, volume PVNAME of logical vol LVNAME. 997* 998* S: $salvout 999* 1000* T: $salvt 1001* 1002* M: This message is printed when a pre-MR10 disk pack is first 1003* mounted on an MR10 or later system. The equivalent of a salvage 1004* is being done to create the VTOC Map, which did not exist prior 1005* to MR10. 1006* 1007* A: $ignore 1008* 1009* 1010* Message: 1011* salvage_pv: Bit map size is DD. (WWo) words, s/b EE. (FFo), changing to latter. 1012* 1013* S: $salvout 1014* 1015* T: $salvt 1016* 1017* M: The bit map size in the volume label was incorrect and has been corrected. 1018* 1019* A: $ignore 1020* 1021* 1022* Message: 1023* salvage_pv: Label times in advance of clock. The clock may be wrong. 1024* 1025* S: $salvout 1026* 1027* T: $salvt 1028* 1029* M: The label of the volume being salvaged 1030* contains one or more clock readings in advance of the current clock. 1031* Salvaging will proceed. 1032* The times are not corrected. 1033* If there is reason to believe that the system clock is incorrect, 1034* shut the system down as soon as possible and take steps to recover 1035* that part of the hierarchy which may have been contaminated with bad 1036* clock values. 1037* 1038* A: $ignore 1039* 1040* 1041* Message: 1042* salvage_pv: NN free vtoces added to free list. 1043* 1044* S: $salvout 1045* 1046* T: $salvt 1047* 1048* M: NN free VTOC entries 1049* were found while salvaging and added to the list of free VTOC entries. 1050* This is a normal message. 1051* 1052* A: $ignore 1053* 1054* 1055* Message: 1056* salvage_pv: damaged switch found on for UUUU vtocx XXXo: NAME 1057* 1058* S: $salvout 1059* 1060* T: $salvt 1061* 1062* M: The segment originally named NAME 1063* with unique ID UUUU at vtoc index XXXo 1064* was found to have its damaged switch on. 1065* The damaged switch can be set during the running of the system 1066* if page control encounters an I/O error. 1067* Damaged segments cannot be used until the damaged switch is reset. 1068* 1069* A: $ignore 1070* 1071* 1072* Message: 1073* salvage_pv: dirsw turned off for vtocx XXXo: NAME 1074* 1075* S: $salvout 1076* 1077* T: $salvt 1078* 1079* M: The segment originally named NAME 1080* at vtoc index XXXo 1081* has had its directory switch turned off. 1082* 1083* A: $ignore 1084* 1085* 1086* Message: 1087* salvage_pv: freeing UUUU deciduous vtocx XXXo: NAME 1088* 1089* S: $salvout 1090* 1091* T: $salvt 1092* 1093* M: The segment originally named NAME 1094* with unique ID UUUU 1095* at vtoc index XXXo 1096* was deciduous, and has been deleted from the RPV. 1097* This is debugging output 1098* printed for system programmers 1099* if a SALV DEBG card is supplied. 1100* 1101* A: $ignore 1102* 1103* 1104* Message: 1105* salvage_pv: freeing UUUU per-bootload vtocx XXXo: NAME 1106* 1107* S: $salvout 1108* 1109* T: $salvt 1110* 1111* M: The segment originally named NAME with unique ID UUU 1112* at vtoc index XXXo was per-bootload (inferior to a prior >sl1), 1113* and has been deleted. This is debugging output printed for system 1114* programmers if a SALV DEBG card is supplied. 1115* 1116* A: $ignore 1117* 1118* 1119* Message: 1120* salvage_pv: freeing UUUU per process vtocx XXXo: NAME 1121* 1122* S: $salvout 1123* 1124* T: $salvt 1125* 1126* M: The segment originally named NAME 1127* with unique ID UUUU 1128* at vtoc index XXXo 1129* was per-process 1130* and has been deleted. 1131* This is debugging output 1132* printed for system programmers 1133* if a SALV DEBG card is used. 1134* 1135* A: $ignore 1136* 1137* 1138* Message: 1139* salvage_pv: map of assigned addresses changed. 1140* 1141* S: $salvout 1142* 1143* T: $salvt 1144* 1145* M: If any corrections were made to the 1146* map on the volume 1147* which shows which addresses are free and which are in use, 1148* this message is printed. 1149* If the volume was not properly shut down, this message is to be expected. 1150* 1151* A: $ignore 1152* 1153* 1154* Message: 1155* salvage_pv: no. of free recs changed from OLD to NEW (dec). 1156* 1157* S: $salvout 1158* 1159* T: $salvt 1160* 1161* M: If the number of free records 1162* in the volume label 1163* is changed by a volume salvage, 1164* this message is printed. 1165* If the volume was not properly shut down, this message is to be expected. 1166* 1167* A: $ignore 1168* 1169* 1170* Message: 1171* salvage_pv: no. of free vtoces changed from OLD to NEW (dec). 1172* 1173* S: $salvout 1174* 1175* T: $salvt 1176* 1177* M: If the number of 1178* free VTOC entries 1179* in the volume label 1180* is changed by a volume salvage, 1181* this message is printed. 1182* 1183* A: $ignore 1184* 1185* 1186* 1187* Message: 1188* salvage_pv: vtoce NAME at XXXo: cur len changed from OLD to NEW (octal) 1189* 1190* S: $salvout 1191* 1192* T: $salvt 1193* 1194* M: The segment originally named NAME 1195* at vtoc index XXXo 1196* had a current length which did not agree 1197* with the file map. 1198* The current length was corrected 1199* and the damaged switch set on the segment. 1200* This message usually indicates that a segment was damaged before a crash 1201* by failure to write out its pages to disk before the crash. 1202* The segment may have to be recovered. 1203* 1204* A: $ignore 1205* 1206* 1207* Message: 1208* salvage_pv: vtoce NAME at XXXo: max len changed from OLD to NEW (octal). 1209* 1210* S: $salvout 1211* 1212* T: $salvt 1213* 1214* M: The segment originally named NAME 1215* at vtoc index XXXo 1216* had a maximum segment length which did not agree 1217* with the file map 1218* or was less than the current length. 1219* The maximum length was corrected 1220* and the damaged switch set. 1221* 1222* A: $ignore 1223* 1224* 1225* Message: 1226* salvage_pv: vtoce NAME at XXXo: time-record-product reset to zero. 1227* 1228* S: $salvout 1229* 1230* T: $salvt 1231* 1232* M: The segment originally named NAME at vtoc index XXXo 1233* had an invalid value for one of the time-record-product fields. 1234* All time-record-product fields have been reset to zero. 1235* 1236* A: $ignore 1237* 1238* 1239* Message: 1240* salvage_pv: vtoce NAME at XXXo: page PPPo disk_addr DDDDo bad. 1241* 1242* S: $salvout 1243* 1244* T: $salvt 1245* 1246* M: The segment originally named NAME 1247* at vtoc index XXXo 1248* had an invalid disk address DDDDo for page PPPo. 1249* The address is nulled, 1250* causing a page of zeroes, 1251* and the damaged switch set. 1252* 1253* A: $ignore 1254* 1255* 1256* Message: 1257* salvage_pv: vtoce NAME at XXXo: rec used changed from OLD to NEW (octal). 1258* 1259* S: $salvout 1260* 1261* T: $salvt 1262* 1263* M: The segment originally named NAME 1264* at vtoc index XXXo 1265* had a records used which 1266* did not agree with the file map. 1267* The records used field was corrected 1268* and the damaged switch set. 1269* This message usually indicates that a segment was damaged before a 1270* crash by failure to write out its pages to disk before the crash. 1271* The segment may have to be recovered. 1272* 1273* A: $ignore 1274* 1275* 1276* Message: 1277* salvage_pv: vtoce NAME at XXXo: ref to pageno PPo at addr DDDDo deleted, dirsw is X. 1278* 1279* S: $salvout 1280* 1281* T: $salvt 1282* 1283* M: The segment originally named NAME 1284* at vtoc index XXXo 1285* had a reused address conflict with another segment. 1286* The page reference 1287* was determined to be incorrect, 1288* and a null address placed in the segment's file map, 1289* causing a page of zeroes, 1290* and the damaged switch set. 1291* This message may be symptomatic of disk or other hardware problems. 1292* 1293* A: $ignore 1294* 1295* 1296* Message: 1297* salvage_pv: vtoce XXXo free but not zero. 1298* 1299* S: $salvout 1300* 1301* T: $salvt 1302* 1303* M: The VTOC entry with index XXXo 1304* was marked free but was not all zero. 1305* It was zeroed and made free. 1306* 1307* A: $ignore 1308* 1309* Message: 1310* salvage_pv: setting damaged switch on PRIMARYNAME (VTOCXo) on pv PVNAME. 1311* 1312* S: $log 1313* 1314* T: $salvt 1315* 1316* M: The volume salvager has discovered possible damage to a segment and has 1317* turned on the damaged switch. 1318* 1319* A: $ignore 1320* This message is logged in order to trigger automatic processing of damaged 1321* segments. 1322* 1323* 1324* Message: 1325* salvage_pv: VTOC conversion finished. 1326* 1327* S: $salvout 1328* 1329* T: $salvt 1330* 1331* M: VTOC conversion finished. 1332* 1333* A: $ignore 1334* 1335* 1336* Message: 1337* salvage_pv: VTOC conversion finished with errors. 1338* 1339* S: $salvout 1340* 1341* T: $salvt 1342* 1343* M: VTOC conversion finished with errors. 1344* 1345* A: $inform 1346* 1347* 1348* Message: 1349* salvage_pv: Volume salvage finished. 1350* 1351* S: $salvout 1352* 1353* T: $salvt 1354* 1355* M: Volume salvage finished. 1356* 1357* A: $ignore 1358* 1359* 1360* Message: 1361* salvage_pv: Volume salvage finished with errors. 1362* 1363* S: $salvout 1364* 1365* T: $salvt 1366* 1367* M: Volume salvage finished with errors. 1368* 1369* A: $inform 1370* 1371* 1372* Message: 1373* salvage_pv: DDD damaged segments on volume PVNAME (NNN damaged in this salvage). 1374* 1375* S: $info 1376* 1377* T: $salvt 1378* 1379* M: DDD damaged segments were found on the volume PVNAME, which has 1380* just been volume-salvaged. The damaged switch was set for NNN of these 1381* segments during this volume salvage. The damaged switch for the 1382* other segments had been set prior to the salvage. 1383* 1384* A: Inspect the syserr and Answering Service log to identify 1385* damaged segments. Prepare to recover them if necessary. 1386* 1387* 1388* 1389* END MESSAGE DOCUMENTATION */ 1390 1391 1392 end salvage_pv; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0806.0 salvage_pv.pl1 >spec>install>1112>salvage_pv.pl1 947 1 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 948 2 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1 949 3 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 950 4 07/11/84 0937.3 null_addresses.incl.pl1 >ldd>include>null_addresses.incl.pl1 951 5 05/27/82 1525.8 old_fs_vol_label.incl.pl1 >ldd>include>old_fs_vol_label.incl.pl1 952 6 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 953 7 10/25/82 1015.6 salv_data.incl.pl1 >ldd>include>salv_data.incl.pl1 954 8 11/29/83 0929.9 salvager_severities.incl.pl1 >ldd>include>salvager_severities.incl.pl1 955 9 08/18/77 0954.0 segdamage_msg.incl.pl1 >ldd>include>segdamage_msg.incl.pl1 956 10 03/15/85 0953.1 syserr_binary_def.incl.pl1 >ldd>include>syserr_binary_def.incl.pl1 957 11 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 958 12 04/29/76 1050.5 vol_map.incl.pl1 >ldd>include>vol_map.incl.pl1 959 13 05/23/77 0919.3 vtoc_header.incl.pl1 >ldd>include>vtoc_header.incl.pl1 960 14 05/27/82 1525.9 vtoc_map.incl.pl1 >ldd>include>vtoc_map.incl.pl1 961 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. ANNOUNCE 000036 constant fixed bin(17,0) initial dcl 11-7 set ref 887* DEL 000344 automatic fixed bin(17,0) dcl 516 set ref 533* 535* 536* 545 DUMPER_BIT_MAP_ADDR constant fixed bin(17,0) initial dcl 2-54 ref 206 I 000340 automatic fixed bin(17,0) dcl 516 set ref 528* 528* 531 551 573* 585 LABEL_ADDR 000036 constant fixed bin(17,0) initial dcl 2-54 set ref 204 793* SALV_ANNOUNCE 000043 constant fixed bin(17,0) initial dcl 8-4 set ref 212* 333* 638* SALV_DEBUG 000037 constant fixed bin(17,0) initial dcl 8-4 set ref 262* 271* 278* 285* 293* 332* 337* 338* 416* 436* 443* 450* 457* 464* 565* 573* 650* 709* 714* 733* SALV_LOG 000040 constant fixed bin(17,0) initial dcl 8-4 set ref 307* 587* SBL_vtoc_salv_dam 000035 constant fixed bin(17,0) initial dcl 10-47 set ref 307* 587* SB_vtoc_salv_dam 000000 constant fixed bin(17,0) initial dcl 10-47 set ref 307* 587* VOLMAP_ADDR constant fixed bin(17,0) initial dcl 2-54 ref 205 VTOCE based structure level 1 dcl 519 VTOCEP 000346 automatic pointer dcl 518 set ref 526* 528 535 536 537 551 553 555 555* 556 556 573 573 576 580 583 586 587 591 VTOCX 000342 automatic fixed bin(17,0) dcl 516 set ref 525* 526* 573* 576 580 584 587* VTOC_MAP_ADDR constant fixed bin(17,0) initial dcl 2-54 ref 207 a_code parameter fixed bin(35,0) dcl 86 set ref 82 187 341* a_pvtx parameter fixed bin(17,0) dcl 85 ref 82 187 193 addr builtin function dcl 178 ref 196 197 307 307 488 587 587 686 692 695 805 872 874 874 936 936 937 937 938 938 939 939 940 940 941 941 addrel builtin function dcl 178 ref 902 905 905 aste based structure level 1 dcl 1-11 aste_part based structure level 1 dcl 1-89 astep 000166 automatic pointer dcl 1-9 set ref 752* 753 753* 791* 793 793* 807* 809 815* 816 816 816 818* 881* 883 891 897 902 911 912 913 914 915 916 921* 927 929* ausedp 000016 external static bit(18) array level 2 packed packed unaligned dcl 144 set ref 929* base_add 1 based fixed bin(17,0) level 2 dcl 12-5 ref 223 baseno builtin function dcl 178 ref 752 791 791 805 872 bin builtin function dcl 178 ref 198 bit builtin function dcl 178 ref 198 387 393 399 555 556 643 644 914 915 bit_map 100 based bit(36) array level 2 in structure "vol_map" dcl 12-5 in procedure "salvage_pv" set ref 692 695 bit_map 10 based bit(36) array level 2 in structure "salv_vtoc_map" dcl 139 in procedure "salvage_pv" set ref 488 bit_map_n_words 2 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 14-6 in procedure "salvage_pv" set ref 239 bit_map_n_words 2 based fixed bin(17,0) level 2 in structure "salv_vtoc_map" dcl 139 in procedure "salvage_pv" set ref 239* 245* bit_map_n_words 3 based fixed bin(17,0) level 2 in structure "vol_map" dcl 12-5 in procedure "salvage_pv" set ref 649 650* 650* 653* 683 685 692 692 695 695 874 939 940 941 bit_map_word based structure level 1 dcl 14-14 bit_map_wordp 000232 automatic pointer dcl 14-4 set ref 488* 489 bit_no 000322 automatic fixed bin(17,0) dcl 477 set ref 487* 489 bit_table based bit(1) array level 2 packed packed unaligned dcl 124 set ref 364 370* 549* 686 bit_table_map based bit(32) array packed unaligned dcl 675 ref 686 bits 0(01) based bit(32) level 2 in structure "bit_map_word" packed packed unaligned dcl 14-14 in procedure "salvage_pv" set ref 489* bits 0(01) based bit(32) array level 2 in structure "new_map" packed packed unaligned dcl 673 in procedure "UPDATE_VOL_MAP" set ref 686* 690* ceil builtin function dcl 178 ref 648 cleanup 000160 stack reference condition dcl 177 ref 200 clock builtin function dcl 178 ref 198 216 code parameter fixed bin(35,0) dcl 838 in procedure "INIT_TABLES" set ref 830 870* 886* code 000101 automatic fixed bin(35,0) dcl 86 in procedure "salvage_pv" set ref 195* 202* 202 219* 219 230* 230 255* 337 338* 341 code parameter fixed bin(35,0) dcl 628 in procedure "CHECK_LABEL_VOLMAP_HEADER" set ref 626 632* comp_time 000140 automatic fixed bin(71,0) dcl 115 set ref 216* 636 762 763 complained 000134 automatic bit(1) packed unaligned dcl 112 set ref 267* 293 300 420* 438* 445* 452* 459* 568* conflict 000253 automatic fixed bin(17,0) dcl 347 set ref 349* 366* 380 cons_map based bit(1) array level 2 packed packed unaligned dcl 136 set ref 506* convert builtin function dcl 178 ref 212 csl 2(09) based bit(9) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 555* csl 000247 automatic fixed bin(17,0) dcl 347 in procedure "CHECK_VTOCE" set ref 349* 372* 380* 390 393 396 450* csl 000375 automatic fixed bin(17,0) dcl 603 in procedure "RECOMPUTE_CSL" set ref 605* 606* 608 csl 2(09) based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 390 393* 450 450 curtime 000156 automatic bit(36) packed unaligned dcl 120 set ref 198* 404 411 damaged 5(06) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 268 296 420* 438* 445* 452* 459* 568* damaged 5(06) based bit(1) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 576 580 591* damaged_by_me 000131 automatic fixed bin(17,0) dcl 109 set ref 228* 298* 298 333* 578* 578 damaged_count 000130 automatic fixed bin(17,0) dcl 108 set ref 227* 297* 297 333 333* 577* 577 deciduous 5(01) based bit(1) level 2 packed packed unaligned dcl 15-7 set ref 277 del 000343 automatic fixed bin(17,0) dcl 516 set ref 533* 535* 537* 539 devname 3 based char(4) level 2 dcl 6-26 set ref 212* dir_dump$vtoce 000032 constant entry external dcl 155 ref 418 dirsw 5(18) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 269 415 419* 535 536 537 565* dirsw 5(18) based bit(1) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 535 536 537 573* divide builtin function dcl 178 ref 245 486 874 dnzp 12(13) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 912* dseg$ 000026 external static fixed bin(71,0) array dcl 152 set ref 812* 922* dtm 4 based bit(36) level 2 packed packed unaligned dcl 15-7 set ref 427 428 end based bit(36) level 2 dcl 840 set ref 874 fill_page_table_null_addr 000001 constant bit(22) initial dcl 4-4 set ref 905* fixed builtin function dcl 178 ref 356 384 387 390 393 396 396 399 404 404 427 427 428 428 443 443 450 450 457 457 523 555 556 556 643 644 752 791 791 805 872 874 891 914 915 fm 20 based bit(18) array level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 354 356 361* 377 377* 523 528 542* 606 620 fm 20 based bit(18) array level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 528 551* fm_checksum 6 based bit(36) level 2 dcl 15-7 set ref 425* fm_checksum_valid 5(08) based bit(1) level 2 packed packed unaligned dcl 15-7 set ref 424* fm_damaged 5(07) based bit(1) level 2 packed packed unaligned dcl 15-7 set ref 423* free_count 000136 automatic fixed bin(17,0) dcl 114 set ref 221* 332 332* 480* 480 get_aste 000034 constant entry external dcl 156 ref 881 get_ptrs_$given_astep 000036 constant entry external dcl 157 ref 921 get_ptrs_$given_segno 000040 constant entry external dcl 158 ref 752 791 807 get_pvtx$hold_pvtx 000042 constant entry external dcl 159 ref 926 get_pvtx$release_pvtx 000044 constant entry external dcl 160 ref 816 get_vtocep_err constant fixed bin(35,0) initial dcl 89 ref 255 hdr_time 000142 automatic bit(36) array dcl 116 set ref 427 428 643* 644* i 000515 automatic fixed bin(17,0) dcl 865 in procedure "INIT_TABLES" set ref 904* 905 905* i 000251 automatic fixed bin(17,0) dcl 347 in procedure "CHECK_VTOCE" set ref 352* 354 356 361 366* 372* 376* 377 377* 403* 404 404* 409* 410* 436* i 000404 automatic fixed bin(17,0) dcl 617 in procedure "RECOMPUTE_RECORDS" set ref 620* 620* i 000374 automatic fixed bin(17,0) dcl 603 in procedure "RECOMPUTE_CSL" set ref 606* 606 606* i 000466 automatic fixed bin(17,0) dcl 748 in procedure "FORCE_VTOC_ON_DISK" set ref 751* 752* i parameter fixed bin(17,0) dcl 516 in procedure "RESOLVE_CONFLICT" set ref 514 523 528 542 565* incr_map based bit(1) array level 2 packed packed unaligned dcl 133 set ref 504* index parameter fixed bin(17,0) dcl 500 ref 498 504 j 000425 automatic fixed bin(17,0) dcl 678 set ref 689* 690 690 label based structure level 1 dcl 3-18 labelp 000170 automatic pointer dcl 3-16 set ref 204* 209 212 212 234 234 301 302 307 333 581 582 587 634 636 636 636 636 636 643 644 646 762 763 766 768 769 771 772 774 874 874 937 938 938 939 939 940 940 941 941 lock$lock_ast 000046 constant entry external dcl 161 ref 817 879 lock$unlock_ast 000050 constant entry external dcl 162 ref 819 885 931 logical_area_number 4(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 6-26 ref 212 lv_name 531 based char(32) level 2 dcl 3-18 set ref 212* 646 lvid 542 based bit(36) level 2 in structure "label" dcl 3-18 in procedure "salvage_pv" ref 302 582 lvid 1 000200 automatic bit(36) level 2 in structure "segdamage" dcl 9-6 in procedure "salvage_pv" set ref 302* 582* max builtin function dcl 178 ref 636 max_n_vtoc_seg constant fixed bin(17,0) initial dcl 107 ref 751 mod builtin function dcl 178 ref 487 689 msl 2 based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 396 396 399* 457 457 msl 4 based bit(9) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "salvage_pv" set ref 915* msl 000250 automatic fixed bin(17,0) dcl 347 in procedure "CHECK_VTOCE" set ref 350* 352 376 396 399 457* msl 000514 automatic fixed bin(17,0) dcl 861 in procedure "INIT_TABLES" set ref 874* 881* 887* 915 n_free_rec 000426 automatic fixed bin(17,0) dcl 679 in procedure "UPDATE_VOL_MAP" set ref 698* 700 703 714* n_free_rec 2 based fixed bin(17,0) level 2 in structure "vol_map" dcl 12-5 in procedure "salvage_pv" set ref 700 703* 714* n_free_vtoce 000127 automatic fixed bin(17,0) dcl 106 in procedure "salvage_pv" set ref 232* 484* 484 723 725 733* n_free_vtoce 1 based fixed bin(17,0) level 2 in structure "salv_vtoc_map" dcl 139 in procedure "salvage_pv" set ref 238* 244* 723 725* 733* n_free_vtoce 3 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 13-5 in procedure "salvage_pv" ref 244 n_free_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 14-6 in procedure "salvage_pv" set ref 238 n_rec based fixed bin(17,0) level 2 dcl 12-5 ref 224 648 689 698 n_used_rec 000126 automatic fixed bin(17,0) dcl 105 set ref 220* 382* 382 558* 558 698 n_vtoce 1 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 13-5 in procedure "salvage_pv" ref 243 245 251 874 874 940 941 941 n_vtoce based fixed bin(17,0) level 2 in structure "salv_vtoc_map" dcl 139 in procedure "salvage_pv" set ref 237* 243* n_vtoce based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 14-6 in procedure "salvage_pv" set ref 237 new_map based structure array level 1 dcl 673 set ref 683* 692 695 no_free_aste_err constant fixed bin(35,0) initial dcl 88 ref 886 not_enabled_sw 000135 automatic bit(1) dcl 113 set ref 502 634* nqsw 5(20) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 913* null builtin function dcl 178 ref 254 753 793 809 883 old_label based structure level 1 dcl 5-7 old_labelp 000172 automatic pointer dcl 5-5 set ref 771* 772 old_map based structure array level 1 dcl 668 set ref 692 695* p99 automatic picture(2) packed unaligned dcl 119 ref 212 pad_free_vtoce_chain based bit(36) level 2 packed packed unaligned dcl 15-7 set ref 261* page$cam 000052 constant entry external dcl 163 ref 813 923 pc$truncate_deposit_all 000054 constant entry external dcl 164 ref 815 pc_wired$write_wait 000056 constant entry external dcl 165 ref 753 793 pds$processid 000024 external static bit(36) dcl 150 ref 817 per_bootload 276 based bit(1) level 3 packed packed unaligned dcl 15-7 set ref 284 per_process 5(05) based bit(1) level 2 packed packed unaligned dcl 15-7 set ref 270 perm_flags 276 based structure level 2 dcl 15-7 pno 2 000200 automatic fixed bin(17,0) level 2 packed packed unaligned dcl 9-6 set ref 305* 585* previous_damaged_sw 000133 automatic bit(1) packed unaligned dcl 111 set ref 268* 293 298 primary_name 260 based char(32) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 271* 278* 285* 293* 307* 416* 436* 443* 450* 457* 464* 565* primary_name 260 based char(32) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 573* 587* ptp 000122 automatic pointer dcl 102 set ref 902* 905 905 ptr builtin function dcl 178 ref 204 205 206 207 pts 000516 automatic fixed bin(17,0) dcl 865 set ref 892* 904 ptsi 13(28) based bit(2) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "salvage_pv" ref 891 ptsi 000517 automatic fixed bin(17,0) dcl 865 in procedure "INIT_TABLES" set ref 891* 892 929 ptw_util_$make_null 000060 constant entry external dcl 166 ref 905 put_aste 000062 constant entry external dcl 167 ref 818 pv_name 521 based char(32) level 2 dcl 3-18 set ref 212* 307* 333* 587* pv_salv_null_addr 005011 constant bit(18) initial dcl 4-26 ref 361 377 542 551 pv_salv_seg based structure level 1 dcl 840 pv_salv_seg$ 000030 external static fixed bin(17,0) dcl 153 set ref 805 872 874 936 937 938 939 940 941 pvid 541 based bit(36) level 2 in structure "label" dcl 3-18 in procedure "salvage_pv" ref 209 301 581 pvid 000200 automatic bit(36) level 2 in structure "segdamage" dcl 9-6 in procedure "salvage_pv" set ref 301* 581* pvid based bit(36) array level 2 in structure "pvt_array" dcl 6-24 in procedure "salvage_pv" set ref 816 926 pvid 000125 automatic bit(36) dcl 104 in procedure "salvage_pv" set ref 209* pvt$array 000104 external static fixed bin(17,0) dcl 6-18 set ref 196 pvt_array based structure array level 1 dcl 6-24 set ref 197 pvt_arrayp 000174 automatic pointer dcl 6-21 set ref 196* 197 816 926 pvte based structure level 1 dcl 6-26 pvtep 000176 automatic pointer dcl 6-22 set ref 197* 212 212 212 321 pvtx 4(09) based fixed bin(8,0) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "salvage_pv" set ref 816 816 916* pvtx 000513 automatic fixed bin(17,0) dcl 861 in procedure "INIT_TABLES" set ref 873* 916 926 926* pvtx 000100 automatic fixed bin(17,0) dcl 85 in procedure "salvage_pv" set ref 193* 197 202* 253* 526* 824* r 000252 automatic fixed bin(17,0) dcl 347 in procedure "CHECK_VTOCE" set ref 356* 358 358 364 369 370 436* r 000341 automatic fixed bin(17,0) dcl 516 in procedure "RESOLVE_CONFLICT" set ref 523* 525 548 549 565* 573* r0 000120 automatic fixed bin(17,0) dcl 100 set ref 223* 224 358 686 r1 000121 automatic fixed bin(17,0) dcl 101 set ref 224* 358 records 2(18) based bit(9) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" set ref 556* 556 records 000246 automatic fixed bin(17,0) dcl 347 in procedure "CHECK_VTOCE" set ref 349* 371* 371 380* 382 384 387 443* records 2(18) based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 384 387* 443 443 records 000405 automatic fixed bin(17,0) dcl 617 in procedure "RECOMPUTE_RECORDS" set ref 619* 620* 620 622 rel builtin function dcl 178 ref 874 rightsize 000414 automatic fixed bin(24,0) dcl 629 set ref 648* 649 650* 650* 653 root_pack 000144 automatic bit(1) dcl 117 set ref 415 646* s_ptr 000116 automatic pointer dcl 98 set ref 202* 204 205 206 207 752 791 791 salv_data$debug 000106 external static bit(1) dcl 7-3 ref 271 278 285 salv_data$dump 000110 external static bit(1) dcl 7-4 ref 418 salv_err_msg 000064 constant entry external dcl 168 ref 212 262 271 278 285 293 332 333 337 416 436 443 450 457 464 565 573 638 650 709 714 733 salv_err_msg$code 000066 constant entry external dcl 169 ref 338 salv_mode 000145 automatic varying char(32) dcl 118 set ref 184* 191* 212* 337* 338* salv_vtoc_map based structure level 1 dcl 139 set ref 727 salvage_call 000132 automatic bit(1) packed unaligned dcl 110 set ref 183* 190* 218 266 318 723 segdamage 000200 automatic structure level 1 dcl 9-6 set ref 307 307 587 587 segno 000512 automatic fixed bin(17,0) dcl 861 in procedure "INIT_TABLES" set ref 872* 914 922 segno 000100 automatic fixed bin(17,0) dcl 802 in procedure "CLEAN_UP" set ref 805* 807* 812 sst$astl 000010 external static bit(36) dcl 141 ref 817 sst$astsize 000012 external static fixed bin(17,0) dcl 142 ref 902 sst$damaged_ct 000014 external static fixed bin(17,0) dcl 143 set ref 310* 310 590* 590 sst$level 000016 external static structure array level 1 dcl 144 sst$pts 000020 external static fixed bin(17,0) array dcl 147 ref 892 sst$root_pvtx 000022 external static fixed bin(17,0) dcl 148 ref 873 strp 2 based bit(18) level 2 packed packed unaligned dcl 1-11 set ref 914* substr builtin function dcl 178 set ref 198 354 356 377 489* 523 606 620 643 644 690* sv_name 15 based char(2) level 2 dcl 6-26 ref 212 syserr 000070 constant entry external dcl 170 ref 887 syserr$binary 000072 constant entry external dcl 171 ref 307 587 table1 based structure level 1 dcl 124 in procedure "salvage_pv" table1 based structure level 2 in structure "pv_salv_seg" dcl 840 in procedure "INIT_TABLES" set ref 936 table1p parameter pointer dcl 832 in procedure "INIT_TABLES" set ref 830 936* table1p 000102 automatic pointer dcl 91 in procedure "salvage_pv" set ref 230* 364 370 549 686 table2 based structure level 2 in structure "pv_salv_seg" dcl 840 in procedure "INIT_TABLES" set ref 937 table2 based structure level 1 dcl 127 in procedure "salvage_pv" table2p parameter pointer dcl 833 in procedure "INIT_TABLES" set ref 830 937* table2p 000104 automatic pointer dcl 92 in procedure "salvage_pv" set ref 230* 369 525 548 table3 based structure level 2 dcl 840 set ref 938 table3p 000106 automatic pointer dcl 93 in procedure "salvage_pv" set ref 230* 683 686 690 692 695 table3p parameter pointer dcl 834 in procedure "INIT_TABLES" set ref 830 938* table4 based structure level 2 in structure "pv_salv_seg" dcl 840 in procedure "INIT_TABLES" set ref 939 table4 based structure level 1 dcl 133 in procedure "salvage_pv" table4p parameter pointer dcl 835 in procedure "INIT_TABLES" set ref 830 939* table4p 000110 automatic pointer dcl 94 in procedure "salvage_pv" set ref 230* 504 table5 based structure level 2 in structure "pv_salv_seg" dcl 840 in procedure "INIT_TABLES" set ref 940 table5 based structure level 1 dcl 136 in procedure "salvage_pv" table5p parameter pointer dcl 836 in procedure "INIT_TABLES" set ref 830 940* table5p 000112 automatic pointer dcl 95 in procedure "salvage_pv" set ref 230* 506 table6 based structure level 2 dcl 840 set ref 941 table6p parameter pointer dcl 837 in procedure "INIT_TABLES" set ref 830 941* table6p 000114 automatic pointer dcl 96 in procedure "salvage_pv" set ref 230* 237 238 239 240 243 244 245 247 488 723 725 727 733 thread$out 000074 constant entry external dcl 172 ref 929 time_last_dmp 620 based fixed bin(71,0) array level 2 dcl 3-18 ref 634 643 644 time_map_updated 602 based fixed bin(71,0) level 2 dcl 3-18 set ref 636 762* time_mounted 600 based fixed bin(71,0) level 2 dcl 3-18 ref 636 time_of_boot 610 based fixed bin(71,0) level 2 dcl 3-18 ref 636 time_salvaged 606 based fixed bin(71,0) level 2 dcl 3-18 set ref 636 763* time_unmounted 604 based fixed bin(71,0) level 2 in structure "old_label" dcl 5-7 in procedure "salvage_pv" ref 772 time_unmounted 612 based fixed bin(71,0) level 2 in structure "label" dcl 3-18 in procedure "salvage_pv" set ref 636 772* trp 12 based fixed bin(71,0) array level 2 packed packed unaligned dcl 15-7 set ref 404 410* trp_bad 000157 automatic bit(1) dcl 121 set ref 402* 404* 407 trp_time 16 based bit(36) array level 2 packed packed unaligned dcl 15-7 set ref 404 411* tsdw 000520 automatic fixed bin(71,0) dcl 867 set ref 921* 922 two 1 based bit(388) level 2 packed packed unaligned dcl 1-89 set ref 897* uid 1 based bit(36) level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" ref 583 uid 3 000200 automatic bit(36) level 2 in structure "segdamage" dcl 9-6 in procedure "salvage_pv" set ref 303* 583* uid 1 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 260 271* 278* 285* 293* 303 480 uid_path 4 000200 automatic bit(36) array level 2 in structure "segdamage" dcl 9-6 in procedure "salvage_pv" set ref 306* 586* uid_path 240 based bit(36) array level 2 in structure "vtoce" packed packed unaligned dcl 15-7 in procedure "salvage_pv" set ref 306 uid_path 240 based bit(36) array level 2 in structure "VTOCE" packed packed unaligned dcl 519 in procedure "RESOLVE_CONFLICT" ref 586 unspec builtin function dcl 178 set ref 482* 683* 692 692 695* 695 727* 727 usedf 5 based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 816 927* vm_vio$clean_up 000076 constant entry external dcl 173 ref 824 vm_vio$get_vtocep 000100 constant entry external dcl 174 ref 253 526 vm_vio$init 000102 constant entry external dcl 175 ref 202 vol_map based structure level 1 dcl 12-5 vol_mapp 000224 automatic pointer dcl 12-3 set ref 205* 223 224 648 649 650 650 653 683 685 689 692 692 692 695 695 695 698 700 703 714 874 939 940 941 vol_size 547 based fixed bin(17,0) level 2 dcl 3-18 ref 874 874 937 938 938 939 939 940 940 941 941 vol_trouble_count 716 based fixed bin(17,0) level 2 in structure "label" dcl 3-18 in procedure "salvage_pv" set ref 766* vol_trouble_count 33 based fixed bin(17,0) level 2 in structure "pvte" packed packed unaligned dcl 6-26 in procedure "salvage_pv" set ref 321* volmap_version 604 based fixed bin(17,0) level 2 dcl 3-18 set ref 234 234 768 769 774* vtoc_header based structure level 1 dcl 13-5 vtoc_headerp 000226 automatic pointer dcl 13-3 set ref 206* 243 244 245 247 251 874 874 940 941 941 vtoc_last_recno 2 based fixed bin(17,0) level 2 in structure "vtoc_header" dcl 13-5 in procedure "salvage_pv" ref 247 vtoc_last_recno 3 based fixed bin(17,0) level 2 in structure "vtoc_map" dcl 14-6 in procedure "salvage_pv" set ref 240 vtoc_last_recno 3 based fixed bin(17,0) level 2 in structure "salv_vtoc_map" dcl 139 in procedure "salvage_pv" set ref 240* 247* vtoc_map based structure level 1 dcl 14-6 set ref 727* vtoc_mapp 000230 automatic pointer dcl 14-3 set ref 207* 237 238 239 240 727 vtoce based structure level 1 dcl 15-7 set ref 482* vtoce_parts based bit(2304) array dcl 15-90 ref 262 vtoce_ptr parameter pointer dcl 602 in procedure "RECOMPUTE_CSL" ref 600 606 vtoce_ptr parameter pointer dcl 616 in procedure "RECOMPUTE_RECORDS" ref 614 620 vtocep 000234 automatic pointer dcl 15-5 set ref 253* 254 260 261 262 268 269 270 271 271 277 278 278 284 285 285 293 293 296 303 306 307 354 356 361 377 377 380* 380* 384 387 390 393 396 396 399 404 404 410 411 415 416 418* 419 420 423 424 425 427 428 436 438 443 443 443 445 450 450 450 452 457 457 457 459 464 480 482 523 528 535 536 537 542 553 565 565 568 vtocx 000124 automatic fixed bin(17,0) dcl 103 in procedure "salvage_pv" set ref 251* 253* 262* 271* 278* 285* 293* 304 307* 369 416* 436* 443* 450* 457* 464* 486 487 504 506 565* 576 580 vtocx 4(18) based fixed bin(17,0) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "salvage_pv" set ref 911* vtocx 2(18) 000200 automatic fixed bin(17,0) level 2 in structure "segdamage" packed packed unaligned dcl 9-6 in procedure "salvage_pv" set ref 304* 584* vtocx_table based fixed bin(17,0) array level 2 packed packed unaligned dcl 127 set ref 369* 525 548* w 000424 automatic fixed bin(17,0) dcl 677 set ref 685* 686 686* 690 word_no 000323 automatic fixed bin(17,0) dcl 478 set ref 486* 488 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEEP internal static fixed bin(17,0) initial dcl 11-7 CRASH internal static fixed bin(17,0) initial dcl 11-7 DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 2-54 JUST_LOG internal static fixed bin(17,0) initial dcl 11-7 LOG internal static fixed bin(17,0) initial dcl 11-7 MAX_VTOCE_PER_PACK internal static fixed bin(17,0) initial dcl 2-54 Multics_ID_String internal static char(32) initial packed unaligned dcl 3-92 PAGE_SIZE internal static fixed bin(17,0) initial dcl 2-67 SALV_CRASH internal static fixed bin(17,0) initial dcl 8-4 SALV_JUST_LOG internal static fixed bin(17,0) initial dcl 8-4 SBL_access_audit internal static fixed bin(17,0) initial dcl 10-47 SBL_config_deck internal static fixed bin(17,0) initial dcl 10-47 SBL_disk_err internal static fixed bin(17,0) initial dcl 10-47 SBL_end_of_table internal static fixed bin(17,0) initial dcl 10-47 SBL_fnp_poll internal static fixed bin(17,0) initial dcl 10-47 SBL_hw_fault internal static fixed bin(17,0) initial dcl 10-47 SBL_ibm3270_mde internal static fixed bin(17,0) initial dcl 10-47 SBL_io_err internal static fixed bin(17,0) initial dcl 10-47 SBL_io_err_detail internal static fixed bin(17,0) initial dcl 10-47 SBL_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 10-47 SBL_mmdam internal static fixed bin(17,0) initial dcl 10-47 SBL_mos_err internal static fixed bin(17,0) initial dcl 10-47 SBL_mpc_poll internal static fixed bin(17,0) initial dcl 10-47 SBL_ocdcm_err internal static fixed bin(17,0) initial dcl 10-47 SBL_random_segdamage internal static fixed bin(17,0) initial dcl 10-47 SBL_read_nc internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_10 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_12 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_14 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_15 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_18 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_4 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_6 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_7 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_8 internal static fixed bin(17,0) initial dcl 10-47 SBL_unused_9 internal static fixed bin(17,0) initial dcl 10-47 SBL_verify_lock internal static fixed bin(17,0) initial dcl 10-47 SBL_vtoce internal static fixed bin(17,0) initial dcl 10-47 SBL_zerpag internal static fixed bin(17,0) initial dcl 10-47 SB_access_audit internal static fixed bin(17,0) initial dcl 10-47 SB_access_audit_data_class internal static varying char(16) initial dcl 10-21 SB_char_data_classes internal static varying char(16) initial array dcl 10-89 SB_config_deck internal static fixed bin(17,0) initial dcl 10-47 SB_config_deck_data_class internal static varying char(16) initial dcl 10-21 SB_disk_err internal static fixed bin(17,0) initial dcl 10-47 SB_end_of_table internal static fixed bin(17,0) initial dcl 10-47 SB_fnp_poll internal static fixed bin(17,0) initial dcl 10-47 SB_fnp_poll_data_class internal static varying char(16) initial dcl 10-21 SB_hw_fault internal static fixed bin(17,0) initial dcl 10-47 SB_hwfault_data_class internal static varying char(16) initial dcl 10-21 SB_ibm3270_mde internal static fixed bin(17,0) initial dcl 10-47 SB_ibm3270_mde_data_class internal static varying char(16) initial dcl 10-21 SB_io_err internal static fixed bin(17,0) initial dcl 10-47 SB_io_err_detail internal static fixed bin(17,0) initial dcl 10-47 SB_io_status_data_class internal static varying char(16) initial dcl 10-21 SB_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 10-47 SB_mdc_del_uidpath_data_class internal static varying char(16) initial dcl 10-21 SB_mmdam internal static fixed bin(17,0) initial dcl 10-47 SB_mmdam_data_class internal static varying char(16) initial dcl 10-21 SB_mos_data_class internal static varying char(16) initial dcl 10-21 SB_mos_err internal static fixed bin(17,0) initial dcl 10-47 SB_mpc_poll internal static fixed bin(17,0) initial dcl 10-47 SB_mpc_poll_data_class internal static varying char(16) initial dcl 10-21 SB_ocdcm_err internal static fixed bin(17,0) initial dcl 10-47 SB_random_segdamage internal static fixed bin(17,0) initial dcl 10-47 SB_read_nc internal static fixed bin(17,0) initial dcl 10-47 SB_segdamage_data_class internal static varying char(16) initial dcl 10-21 SB_unused_10 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_12 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_14 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_15 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_18 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_4 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_6 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_7 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_8 internal static fixed bin(17,0) initial dcl 10-47 SB_unused_9 internal static fixed bin(17,0) initial dcl 10-47 SB_verify_lock internal static fixed bin(17,0) initial dcl 10-47 SB_voldamage_data_class internal static varying char(16) initial dcl 10-21 SB_vtoce internal static fixed bin(17,0) initial dcl 10-47 SB_vtoce_data_class internal static varying char(16) initial dcl 10-21 SB_zerpag internal static fixed bin(17,0) initial dcl 10-47 SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 2-74 SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 2-70 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 11-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 11-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 11-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 11-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 11-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 11-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 11-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 11-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 11-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 11-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 11-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 11-7 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 6-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 6-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 6-113 VTOCES_PER_RECORD internal static fixed bin(17,0) initial array dcl 2-72 VTOCE_SIZE internal static fixed bin(17,0) initial dcl 2-68 VTOC_ORIGIN internal static fixed bin(17,0) initial dcl 2-54 append_null_addr internal static bit(22) initial dcl 4-4 asta based bit(432) array dcl 1-86 create_vtoce_four_null_addrs internal static fixed bin(71,0) initial dcl 4-24 create_vtoce_null_addr internal static bit(18) initial dcl 4-26 display_cpu_error_binary_defs internal static fixed bin(17,0) initial array dcl 10-144 get_aste_null_addr internal static bit(22) initial dcl 4-4 get_file_map_dumper_non_null_addr internal static bit(22) initial dcl 4-4 get_file_map_null_addr internal static bit(22) initial dcl 4-4 get_file_map_vt_null_addr internal static bit(22) initial dcl 4-4 init_sst_null_addr internal static bit(22) initial dcl 4-4 list_deposit_null_addr internal static bit(22) initial dcl 4-4 make_sdw_null_addr internal static bit(22) initial dcl 4-4 page_bad_null_addr internal static bit(22) initial dcl 4-4 page_bad_pd_null_addr internal static bit(22) initial dcl 4-4 page_devparity_null_addr internal static bit(22) initial dcl 4-4 page_parity_null_addr internal static bit(22) initial dcl 4-4 page_problem_null_addr internal static bit(22) initial dcl 4-4 pc_move_page_table_1_null_addr internal static bit(22) initial dcl 4-4 pc_move_page_table_2_null_addr internal static bit(22) initial dcl 4-4 put_aste_null_addr internal static bit(22) initial dcl 4-4 pv_scav_null_addr internal static bit(18) initial dcl 4-26 pvt$max_n_entries external static fixed bin(17,0) dcl 6-19 salv_data$lock external static bit(36) dcl 7-5 salv_data$on_line external static bit(1) dcl 7-6 salv_data$print_path external static bit(1) dcl 7-7 salv_data$printer_delay external static fixed bin(17,0) dcl 7-8 salv_data$rpv external static bit(1) dcl 7-9 salv_data$vol_read_ahead external static fixed bin(17,0) dcl 7-10 salv_truncate_null_addr internal static bit(18) initial dcl 4-26 seg_aste based structure level 1 dcl 1-96 seg_vtoce based structure level 1 dcl 15-92 segmove_new_addr_null_addr internal static bit(22) initial dcl 4-4 segmove_old_addr_null_addr internal static bit(22) initial dcl 4-4 syserr_binary_address_damage_mask internal static bit(36) initial packed unaligned dcl 10-142 syserr_binary_mos_mask internal static bit(36) initial packed unaligned dcl 10-139 syserr_binary_seg_damage_mask internal static bit(36) initial packed unaligned dcl 10-140 syserr_binary_vol_damage_mask internal static bit(36) initial packed unaligned dcl 10-141 table3 based structure level 1 dcl 130 truncate_vtoce_fill_null_addr internal static bit(18) initial dcl 4-26 truncate_vtoce_null_addr internal static bit(18) initial dcl 4-26 unprotected_null_addr internal static bit(22) initial dcl 4-4 update_vtoce_null_addr internal static bit(18) initial dcl 4-26 volume_reloader_null_addr internal static bit(18) initial dcl 4-26 volume_retriever_null_addr internal static bit(18) initial dcl 4-26 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_LABEL_VOLMAP_HEADER 003447 constant entry internal dcl 626 ref 219 CHECK_VTOCE 001724 constant entry internal dcl 345 ref 292 CLEAN 001626 constant label dcl 337 ref 219 230 256 CLEAN_UP 004213 constant entry internal dcl 799 ref 200 339 COMMON 000634 constant label dcl 193 ref 185 FORCE_LABEL_ON_DISK 004152 constant entry internal dcl 788 ref 330 FORCE_VTOC_ON_DISK 004055 constant entry internal dcl 746 ref 326 FREE_VTOCE 002626 constant entry internal dcl 475 ref 264 274 281 288 INIT_TABLES 004354 constant entry internal dcl 830 ref 230 NEXT_I 002027 constant label dcl 373 ref 354 361 NEXT_VTOCE 001530 constant label dcl 315 ref 275 282 289 RECOMPUTE_CSL 003366 constant entry internal dcl 600 ref 380 555 RECOMPUTE_RECORDS 003417 constant entry internal dcl 614 ref 380 RESOLVE_CONFLICT 002706 constant entry internal dcl 514 ref 366 RTN 001720 constant label dcl 341 ref 202 SAME_I 001741 constant label dcl 354 ref 366 THREAD_FOR_DUMPER 002662 constant entry internal dcl 498 ref 427 428 491 UPDATE_LABEL 004130 constant entry internal dcl 760 ref 328 UPDATE_VOL_MAP 003614 constant entry internal dcl 666 ref 320 UPDATE_VTOC_MAP 004003 constant entry internal dcl 721 ref 324 convert_vtoc 000621 constant entry external dcl 187 del_eq_1 003031 constant label dcl 539 ref 531 report_bit_map_changed 003730 constant entry internal dcl 708 ref 694 report_csl 002451 constant entry internal dcl 449 ref 392 report_msl 002523 constant entry internal dcl 456 ref 398 report_n_free_rec_changed 003752 constant entry internal dcl 713 ref 702 report_n_free_vtoce 004024 constant entry internal dcl 732 ref 723 report_out_of_range 002332 constant entry internal dcl 435 ref 360 report_page_DEL 003174 constant entry internal dcl 572 ref 547 report_page_del 003120 constant entry internal dcl 564 ref 541 report_records 002377 constant entry internal dcl 442 ref 386 report_trp 002574 constant entry internal dcl 463 ref 408 salvage_pv 000602 constant entry external dcl 82 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5412 5524 5014 5422 Length 6274 5014 112 534 376 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME salvage_pv 1058 external procedure is an external procedure. on unit on line 200 64 on unit CHECK_VTOCE internal procedure shares stack frame of external procedure salvage_pv. report_out_of_range internal procedure shares stack frame of external procedure salvage_pv. report_records internal procedure shares stack frame of external procedure salvage_pv. report_csl internal procedure shares stack frame of external procedure salvage_pv. report_msl internal procedure shares stack frame of external procedure salvage_pv. report_trp internal procedure shares stack frame of external procedure salvage_pv. FREE_VTOCE internal procedure shares stack frame of external procedure salvage_pv. THREAD_FOR_DUMPER internal procedure shares stack frame of external procedure salvage_pv. RESOLVE_CONFLICT internal procedure shares stack frame of external procedure salvage_pv. report_page_del internal procedure shares stack frame of external procedure salvage_pv. report_page_DEL internal procedure shares stack frame of external procedure salvage_pv. RECOMPUTE_CSL internal procedure shares stack frame of external procedure salvage_pv. RECOMPUTE_RECORDS internal procedure shares stack frame of external procedure salvage_pv. CHECK_LABEL_VOLMAP_HEADER internal procedure shares stack frame of external procedure salvage_pv. UPDATE_VOL_MAP internal procedure shares stack frame of external procedure salvage_pv. report_bit_map_changed internal procedure shares stack frame of external procedure salvage_pv. report_n_free_rec_changed internal procedure shares stack frame of external procedure salvage_pv. UPDATE_VTOC_MAP internal procedure shares stack frame of external procedure salvage_pv. report_n_free_vtoce internal procedure shares stack frame of external procedure salvage_pv. FORCE_VTOC_ON_DISK internal procedure shares stack frame of external procedure salvage_pv. UPDATE_LABEL internal procedure shares stack frame of external procedure salvage_pv. FORCE_LABEL_ON_DISK internal procedure shares stack frame of external procedure salvage_pv. CLEAN_UP 76 internal procedure is called by several nonquick procedures. INIT_TABLES internal procedure shares stack frame of external procedure salvage_pv. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEAN_UP 000100 segno CLEAN_UP salvage_pv 000100 pvtx salvage_pv 000101 code salvage_pv 000102 table1p salvage_pv 000104 table2p salvage_pv 000106 table3p salvage_pv 000110 table4p salvage_pv 000112 table5p salvage_pv 000114 table6p salvage_pv 000116 s_ptr salvage_pv 000120 r0 salvage_pv 000121 r1 salvage_pv 000122 ptp salvage_pv 000124 vtocx salvage_pv 000125 pvid salvage_pv 000126 n_used_rec salvage_pv 000127 n_free_vtoce salvage_pv 000130 damaged_count salvage_pv 000131 damaged_by_me salvage_pv 000132 salvage_call salvage_pv 000133 previous_damaged_sw salvage_pv 000134 complained salvage_pv 000135 not_enabled_sw salvage_pv 000136 free_count salvage_pv 000140 comp_time salvage_pv 000142 hdr_time salvage_pv 000144 root_pack salvage_pv 000145 salv_mode salvage_pv 000156 curtime salvage_pv 000157 trp_bad salvage_pv 000166 astep salvage_pv 000170 labelp salvage_pv 000172 old_labelp salvage_pv 000174 pvt_arrayp salvage_pv 000176 pvtep salvage_pv 000200 segdamage salvage_pv 000224 vol_mapp salvage_pv 000226 vtoc_headerp salvage_pv 000230 vtoc_mapp salvage_pv 000232 bit_map_wordp salvage_pv 000234 vtocep salvage_pv 000246 records CHECK_VTOCE 000247 csl CHECK_VTOCE 000250 msl CHECK_VTOCE 000251 i CHECK_VTOCE 000252 r CHECK_VTOCE 000253 conflict CHECK_VTOCE 000322 bit_no FREE_VTOCE 000323 word_no FREE_VTOCE 000340 I RESOLVE_CONFLICT 000341 r RESOLVE_CONFLICT 000342 VTOCX RESOLVE_CONFLICT 000343 del RESOLVE_CONFLICT 000344 DEL RESOLVE_CONFLICT 000346 VTOCEP RESOLVE_CONFLICT 000374 i RECOMPUTE_CSL 000375 csl RECOMPUTE_CSL 000404 i RECOMPUTE_RECORDS 000405 records RECOMPUTE_RECORDS 000414 rightsize CHECK_LABEL_VOLMAP_HEADER 000424 w UPDATE_VOL_MAP 000425 j UPDATE_VOL_MAP 000426 n_free_rec UPDATE_VOL_MAP 000466 i FORCE_VTOC_ON_DISK 000512 segno INIT_TABLES 000513 pvtx INIT_TABLES 000514 msl INIT_TABLES 000515 i INIT_TABLES 000516 pts INIT_TABLES 000517 ptsi INIT_TABLES 000520 tsdw INIT_TABLES THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mdfx1 enable_op ext_entry int_entry ceil_fx2 divide_fx1 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dir_dump$vtoce get_aste get_ptrs_$given_astep get_ptrs_$given_segno get_pvtx$hold_pvtx get_pvtx$release_pvtx lock$lock_ast lock$unlock_ast page$cam pc$truncate_deposit_all pc_wired$write_wait ptw_util_$make_null put_aste salv_err_msg salv_err_msg$code syserr syserr$binary thread$out vm_vio$clean_up vm_vio$get_vtocep vm_vio$init THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dseg$ pds$processid pv_salv_seg$ pvt$array salv_data$debug salv_data$dump sst$astl sst$astsize sst$damaged_ct sst$level sst$pts sst$root_pvtx LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 82 000576 183 000607 184 000611 185 000616 187 000617 190 000626 191 000627 193 000634 195 000637 196 000640 197 000643 198 000646 200 000655 202 000677 202 000712 204 000714 205 000720 206 000724 207 000730 209 000734 212 000736 216 001022 218 001024 219 001026 219 001030 220 001032 221 001033 223 001034 224 001037 227 001043 228 001044 230 001045 230 001047 232 001051 234 001052 237 001060 238 001062 239 001066 240 001070 241 001072 243 001073 244 001076 245 001101 247 001105 251 001107 253 001117 254 001132 255 001136 256 001140 260 001141 261 001144 262 001145 264 001174 265 001175 266 001176 267 001200 268 001201 269 001205 270 001210 271 001213 274 001250 275 001251 277 001252 278 001255 281 001312 282 001313 284 001314 285 001317 288 001354 289 001355 292 001356 293 001357 296 001417 297 001423 298 001424 300 001427 301 001431 302 001434 303 001436 304 001440 305 001442 306 001444 307 001456 310 001526 315 001530 318 001532 320 001534 321 001535 324 001540 326 001541 328 001542 330 001543 332 001544 333 001571 337 001626 338 001660 339 001714 341 001720 343 001723 345 001724 349 001725 350 001730 352 001732 354 001741 356 001750 358 001757 360 001763 361 001764 361 001772 364 001773 366 002000 366 002002 366 002004 369 002005 370 002017 371 002023 372 002024 373 002027 376 002031 377 002037 378 002051 380 002053 380 002055 380 002057 382 002061 384 002063 386 002071 387 002072 390 002101 392 002106 393 002107 396 002116 398 002125 399 002126 402 002134 403 002135 404 002141 406 002162 407 002164 408 002166 409 002167 410 002173 411 002201 412 002216 415 002220 416 002226 418 002255 419 002266 420 002271 423 002275 424 002277 425 002301 427 002302 428 002315 430 002331 435 002332 436 002333 438 002371 439 002376 442 002377 443 002400 445 002443 446 002450 449 002451 450 002452 452 002515 453 002522 456 002523 457 002524 459 002566 460 002573 463 002574 464 002575 466 002625 475 002626 480 002627 482 002633 484 002636 486 002637 487 002642 488 002646 489 002652 491 002655 493 002661 498 002662 502 002664 504 002667 506 002700 509 002705 514 002706 523 002710 525 002722 526 002732 528 002745 529 002764 531 002766 533 002771 535 002773 536 003012 537 003020 539 003026 541 003031 542 003032 545 003041 547 003044 548 003045 549 003053 551 003060 553 003066 555 003072 556 003103 558 003115 562 003117 564 003120 565 003121 568 003166 569 003173 572 003174 573 003175 576 003241 577 003252 578 003253 580 003254 581 003262 582 003265 583 003267 584 003271 585 003272 586 003275 587 003310 590 003360 591 003362 592 003365 600 003366 605 003370 606 003371 606 003375 607 003411 608 003413 614 003417 619 003421 620 003422 620 003427 621 003441 622 003443 626 003447 632 003451 634 003452 636 003460 638 003477 643 003517 644 003526 646 003534 648 003541 649 003551 650 003554 653 003610 660 003613 666 003614 683 003615 685 003626 686 003635 687 003654 689 003656 690 003662 692 003676 694 003706 695 003707 698 003716 700 003721 702 003723 703 003724 705 003727 708 003730 709 003731 710 003751 713 003752 714 003753 716 004002 721 004003 723 004004 725 004013 727 004016 729 004023 732 004024 733 004025 735 004054 746 004055 751 004056 752 004065 753 004103 754 004125 756 004127 760 004130 762 004131 763 004134 766 004135 768 004136 769 004141 771 004143 772 004144 774 004147 778 004151 788 004152 791 004153 793 004170 795 004211 799 004212 805 004220 807 004225 809 004237 812 004244 813 004252 815 004256 816 004266 817 004316 818 004326 819 004336 824 004343 826 004353 830 004354 870 004356 872 004357 873 004365 874 004367 879 004421 881 004426 883 004437 885 004443 886 004450 887 004453 888 004476 891 004477 892 004504 897 004507 902 004512 904 004516 905 004525 906 004541 911 004543 912 004546 913 004550 914 004552 915 004557 916 004564 921 004567 922 004600 923 004606 926 004612 927 004633 929 004636 931 004650 936 004655 937 004661 938 004670 939 004700 940 004704 941 004715 943 004720 ----------------------------------------------------------- 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