COMPILATION LISTING OF SEGMENT vtoc_attributes 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 1004.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /* format: style3 */ 15 vtoc_attributes$set_dates: 16 proc (Uid, Pvid, Vtocx, Dtu, Dtm, Code); 17 18 /* VTOC_ATTRIBUTES - segment control interface for directory control. 19* When DC wishes to set or get items from the VTOC it calls here. 20* 21* Entry points are: 22* 23* set_dates 24* set_max_lth 25* get_info 26* get_quota 27* set_quota 28* reloading 29* set_pc_switches 30* set_dump_switches 31* set_dump_info 32* correct_qused 33* salv_update 34* get_dump_info 35* 36* 37* THVV 4/75 38* 39* $reloading added by RE Mullen Autumn 1975 40* Modified by D. Vinograd 7/76 to update volume dumper bit map so that modified vtoces are dumped. 41* unlock AST before vtoc read for $get_info: RE Mullen, Winter 1976 42* Modified by D. Vinograd 8/76 to add entry to set the volume dumper control switches 43* $correct_qused - BSG 2/18/77 44* Modified 7/77 by S.E. Barr to add salv_update entry. 45* Modified 10/79 by Mike Grady to fix dormat seg time update bug 46* Modified 11/80 by E. N. Kittlitz to fix race in set_dates (active). Use clock builtin. 47* Modified 11/80 by E.N. Kittlitz for dtu/dtm change. 48* Modified 3/82 BIM for expanded sc_info. 49* Modified 3/82 by J. Bongiovanni to remove vtoce.infqcnt 50* Modified 8/82 by J. Bongiovanni for new vtoc_man 51* Modified 9/82 by J. Bongiovanni to do less work under AST lock, fix races 52* Modified 8/83 by E. N. Kittlitz for search_ast$check 53* Modified 83-12-01 BIM to not setfault on set_max_length unless necessary. 54**/ 55 56 /* Parameter */ 57 58 dcl Code fixed bin (35) parameter; /* Return Code */ 59 dcl Dtd bit (36) aligned parameter; /* File System Date-Time-Dumped */ 60 dcl Dtm bit (36) aligned parameter; /* File System Date-Time Modified */ 61 dcl Dtu bit (36) aligned parameter; /* File System Date-Time Used */ 62 dcl Dudelta fixed bin (34); /* Change in directory quota used */ 63 dcl Msk bit (36) aligned; /* Mask of which PC switches to diddle */ 64 dcl Mxl fixed bin (9) parameter; /* Maximum Length */ 65 dcl Ncd fixed bin parameter; /* No-Complete-Dump switch */ 66 dcl Nid fixed bin parameter; /* No-Incremental-Dump switch */ 67 dcl Priv_Sw bit (1) aligned parameter; /* ON => privileged call */ 68 dcl Pvid bit (36) aligned parameter; /* Physical Volume Unique ID */ 69 dcl Qcp ptr parameter; /* -> quota info structure */ 70 dcl Qtype fixed bin parameter; /* Type of Quota */ 71 dcl Salv_Updatep ptr parameter; /* -> salvager info structure */ 72 dcl Scip ptr parameter; /* -> status info structure */ 73 dcl Sudelta fixed bin (34); /* Change in segment quota used */ 74 dcl Sws bit (36) aligned; /* PC switch values */ 75 dcl Uid bit (36) aligned parameter; /* Segment Unique ID */ 76 dcl Volid (3) bit (36) aligned parameter; 77 /* Dump Volume IDs */ 78 dcl Vtocx fixed bin parameter; /* VTOCE index on volume */ 79 80 /* Automatic */ 81 82 dcl active bit (1) aligned; /* ON => target segment is active */ 83 dcl add_to_dumper bit (1) aligned; /* ON => add to dumper bit map when done */ 84 dcl ast_is_locked bit (1) aligned; /* ON => AST lock held */ 85 dcl code fixed bin (35); /* Error Code */ 86 dcl code1 fixed bin (35); /* Another Error Code */ 87 dcl curtime fixed bin (71); /* Used for dtu, dtm computations */ 88 dcl dtd bit (36) aligned; /* File System Date-Time-Dumped */ 89 dcl dtm bit (36) aligned; /* File System Date-Time-Modified */ 90 dcl dtu bit (36) aligned; /* File System Date-Time-Used */ 91 dcl dudelta fixed bin (34); /* Change in directory quota used */ 92 dcl 1 local_aste aligned like aste; /* Pseudo-ASTE */ 93 dcl 1 local_quota_cell aligned like quota_cell; /* Copy of quota structure */ 94 dcl 1 local_salv_update_info 95 aligned like salv_update_info;/* Copy of salvager infor structure */ 96 dcl 1 local_sc_info aligned like sc_info; /* Copy of status info structure */ 97 dcl 1 local_vtoce aligned like vtoce; /* Copy of VTOCE */ 98 dcl 1 msk aligned like vtoce_pc_sws; /* Mask of PC switches to diddle */ 99 dcl mxl fixed bin (9); /* Maximum length */ 100 dcl mxl_bits bit (9); /* Maximum length */ 101 dcl ncd fixed bin; /* No-complete-dump switch */ 102 dcl need_vtoce bit (1) aligned; /* ON => VTOCE must be read, even if segment active */ 103 dcl nid fixed bin; /* No-incremental-dump switch */ 104 dcl priv_sw bit (1) aligned; /* ON => privileged call */ 105 dcl pvid bit (36) aligned; /* Physical Volume Unique ID */ 106 dcl pvtx fixed bin; /* PVT Index of Volume */ 107 dcl qt fixed bin; /* Quota type index */ 108 dcl qtype fixed bin; /* Quota type */ 109 dcl sudelta fixed bin (34); /* Change in segment quota used */ 110 dcl 1 sws aligned like vtoce_pc_sws; /* PC switch values */ 111 dcl uid bit (36) aligned; /* Segment Unique ID */ 112 dcl update bit (1) aligned; /* ON => ASTE or VTOCE is being updated */ 113 dcl volid (3) bit (36) aligned; /* Dump volume IDs */ 114 dcl vtocx fixed bin; /* VTOCE index on volume */ 115 116 /* Static */ 117 118 dcl ALL_PARTS bit (3) int static options (constant) init ("111"b); 119 120 /* Based */ 121 122 dcl 1 Quota_Cell aligned like quota_cell based (Qcp); 123 dcl 1 Salv_Update_Info aligned like salv_update_info based (Salv_Updatep); 124 dcl 1 Sc_Info aligned like sc_info based (Scip); 125 126 /* External */ 127 128 dcl error_table_$dm_not_enabled 129 fixed bin (35) external; 130 dcl error_table_$invalid_max_length 131 fixed bin (35) external; 132 dcl error_table_$vtoce_connection_fail 133 fixed bin (35) external; 134 dcl sst$dm_enabled bit (1) aligned external; 135 136 /* Entry */ 137 138 dcl dbm_man$set_incr entry (fixed bin, fixed bin, fixed bin (35)); 139 dcl deactivate entry (ptr, fixed bin (35)); 140 dcl get_pvtx entry (bit (36) aligned, fixed bin (35)) returns (fixed bin); 141 dcl lock$lock_ast entry; 142 dcl lock$unlock_ast entry; 143 dcl quotaw$cu entry (ptr, fixed bin (34), bit (1) aligned, fixed bin (2), fixed bin (35)); 144 dcl pc$update_incore_fms 145 entry (ptr); 146 dcl search_ast$check entry (bit (36) aligned, bit (36) aligned, fixed bin, fixed bin (35)) returns (ptr); 147 dcl setfaults entry (ptr, bit (1) aligned); 148 dcl vtoc_man$get_vtoce entry (bit (36) aligned, fixed bin, fixed bin, bit (3), ptr, fixed bin (35)); 149 dcl vtoc_man$put_vtoce entry (bit (36) aligned, fixed bin, fixed bin, bit (3), ptr, fixed bin (35)); 150 151 /* Builtin */ 152 153 dcl addr builtin; 154 dcl bit builtin; 155 dcl clock builtin; 156 dcl fixed builtin; 157 dcl null builtin; 158 dcl string builtin; 159 dcl unspec builtin; 160 161 /* vtoc_attributes$set_dates - called by set$dates, etc., to set the dtu and 162* dtm of a segment. */ 163 164 dtu = Dtu; 165 dtm = Dtm; 166 167 call SETUP (Code); 168 if Code ^= 0 169 then return; 170 171 update = "1"b; 172 add_to_dumper = "1"b; 173 174 call GET_ASTE_VTOCE (code); 175 if code = 0 176 then do; 177 call UPDATE_ACTIVE_DT; 178 if dtu ^= ""b 179 then aste.dtu = dtu; 180 if dtm ^= ""b 181 then aste.dtm = dtm; 182 end; 183 184 call FINISH (code); 185 186 Code = code; 187 188 return; 189 190 /* vtoc_attributes$set_max_lth - called by set$max_length to set the maximum 191* length of a segment. Unless Priv_Sw is set, the max length cannot be 192* set to less than the current length. */ 193 194 set_max_lth: 195 entry (Uid, Pvid, Vtocx, Mxl, Priv_Sw, Code); 196 197 mxl = Mxl; 198 mxl_bits = bit (mxl, 9); 199 priv_sw = Priv_Sw; 200 201 call SETUP (Code); 202 if Code ^= 0 203 then return; 204 205 call GET_ASTE_VTOCE (code); 206 if code = 0 207 then do; 208 if ^priv_sw 209 then if mxl_bits < aste.csl 210 then code = error_table_$invalid_max_length; 211 end; 212 if code = 0 213 then if aste.msl ^= mxl_bits 214 then do; 215 update = "1"b; 216 add_to_dumper = "1"b; 217 if active & (mxl_bits < aste.msl) 218 then call setfaults (astep, "0"b); 219 aste.msl = mxl_bits; 220 end; 221 222 call FINISH (code); 223 224 Code = code; 225 226 return; 227 228 /* vtoc_attributes$get_info - called by status_ to get the dates and lengths 229* from the VTOCE */ 230 231 get_info: 232 entry (Uid, Pvid, Vtocx, Scip, Code); 233 234 call SETUP (Code); 235 if Code ^= 0 236 then return; 237 238 unspec (local_sc_info) = ""b; 239 240 call GET_ASTE_VTOCE (code); 241 if code = 0 242 then do; 243 call UPDATE_ACTIVE_DT; 244 local_sc_info.dtu = aste.dtu; 245 local_sc_info.dtm = aste.dtm; 246 local_sc_info.records = fixed (aste.records, 9); 247 local_sc_info.msl = fixed (aste.msl, 9) * 1024; 248 local_sc_info.csl = fixed (aste.csl, 9) * 1024; 249 local_sc_info.dnzp = aste.dnzp; 250 local_sc_info.damaged = aste.damaged; 251 local_sc_info.synchronized = aste.synchronized; 252 if aste.dirsw 253 then local_sc_info.pf_count = 0; 254 else local_sc_info.pf_count = seg_aste.usage; 255 256 local_sc_info.nid = "0"b; 257 local_sc_info.ncd = "0"b; 258 local_sc_info.vol_dtd = ""b; 259 local_sc_info.volid (*) = ""b; 260 261 if aste.dirsw 262 then do qt = 0, 1; 263 local_sc_info.qcell (qt).quota = aste.quota (qt); 264 local_sc_info.qcell (qt).used = aste.used (qt); 265 local_sc_info.qcell (qt).terminal_quota_sw = aste.tqsw (qt); 266 local_sc_info.qcell (qt).received = 0; 267 local_sc_info.qcell (qt).tup = ""b; 268 local_sc_info.qcell (qt).trp = 0; 269 end; 270 end; 271 272 call FINISH (code); 273 274 if code = 0 275 then Sc_Info = local_sc_info; 276 else unspec (Sc_Info) = ""b; 277 278 Code = code; 279 280 return; 281 282 /* vtoc_attributes$get_quota - called by quota to get the quota account. */ 283 284 get_quota: 285 entry (Uid, Pvid, Vtocx, Qcp, Qtype, Code); 286 287 qtype = Qtype; 288 289 call SETUP (Code); 290 if Code ^= 0 291 then return; 292 293 need_vtoce = "1"b; 294 unspec (local_quota_cell) = ""b; 295 296 call GET_ASTE_VTOCE (code); 297 if code = 0 298 then do; 299 local_quota_cell.quota = aste.quota (qtype); 300 local_quota_cell.used = aste.used (qtype); 301 local_quota_cell.terminal_quota_sw = aste.tqsw (qtype); 302 local_quota_cell.received = vtoce.received (qtype); 303 local_quota_cell.tup = vtoce.trp_time (qtype); 304 local_quota_cell.trp = vtoce.trp (qtype); 305 end; 306 307 call FINISH (code); 308 309 if code = 0 310 then Quota_Cell = local_quota_cell; 311 else unspec (Quota_Cell) = ""b; 312 313 Code = code; 314 315 return; 316 317 /* vtoc_attributes$set_quota - called by quota to meddle with the quota account. 318* This is a moderate crock, as it must know whether the segment is active. 319* The reason for this is that the quota cells are protected by the PTL 320* and are updated by quota earlier. This just updates the VTOCE. 321**/ 322 323 set_quota: 324 entry (Uid, Pvid, Vtocx, Qcp, Qtype, Code); 325 326 qtype = Qtype; 327 local_quota_cell = Quota_Cell; 328 329 call SETUP (Code); 330 if Code ^= 0 331 then return; 332 333 need_vtoce = "1"b; 334 update = "1"b; 335 add_to_dumper = "1"b; 336 337 call GET_ASTE_VTOCE (code); 338 if code = 0 339 then do; 340 if ^active 341 then do; 342 aste.quota (qtype) = local_quota_cell.quota; 343 aste.used (qtype) = local_quota_cell.used; 344 end; 345 vtoce.received (qtype) = local_quota_cell.received; 346 vtoce.trp_time (qtype) = local_quota_cell.tup; 347 vtoce.trp (qtype) = local_quota_cell.trp; 348 end; 349 350 call FINISH (code); 351 352 Code = code; 353 354 return; 355 356 /* vtoc_attributes$reloading - called by set$set_for_reloader */ 357 358 reloading: 359 entry (Uid, Pvid, Vtocx, Dtu, Dtm, Mxl, Code); 360 361 dtu = Dtu; 362 dtm = Dtm; 363 mxl = Mxl; 364 mxl_bits = bit (mxl, 9); 365 366 call SETUP (Code); 367 if Code ^= 0 368 then return; 369 370 update = "1"b; 371 add_to_dumper = "1"b; 372 373 call GET_ASTE_VTOCE (code); 374 if code = 0 375 then do; 376 if dtu ^= ""b 377 then aste.dtu = dtu; 378 if dtm ^= ""b 379 then aste.dtm = dtm; 380 if (mxl >= 0) & (mxl_bits ^= aste.msl) /* use FB to preserve the sign bit! */ 381 then do; 382 if active & (mxl_bits < aste.msl) 383 then call setfaults (astep, "0"b); 384 aste.msl = mxl_bits; 385 end; 386 end; 387 388 call FINISH (code); 389 390 Code = code; 391 392 return; 393 394 /* vtoc_attributes$set_pc_switches */ 395 396 set_pc_switches: 397 entry (Uid, Pvid, Vtocx, Sws, Msk, Code); 398 399 string (sws) = Sws; 400 string (msk) = Msk; 401 402 if msk.synchronized & sws.synchronized 403 then if ^sst$dm_enabled 404 then do; 405 Code = error_table_$dm_not_enabled; 406 return; 407 end; 408 409 call SETUP (Code); 410 if Code ^= 0 411 then return; 412 413 update = "1"b; 414 add_to_dumper = "1"b; 415 416 RETRY_SET: 417 call GET_ASTE_VTOCE (code); 418 if (code = 0) & active 419 then if (msk.synchronized & ^aste.synchronized) 420 then do; 421 call deactivate (astep, code); 422 if code = 0 423 then do; 424 call lock$unlock_ast; 425 ast_is_locked = "0"b; 426 active = "0"b; 427 goto RETRY_SET; 428 end; 429 end; 430 if code = 0 431 then do; 432 if msk.dnzp 433 then aste.dnzp = sws.dnzp; 434 if msk.damaged 435 then aste.damaged = sws.damaged; 436 if msk.synchronized 437 then aste.synchronized = sws.synchronized; 438 end; 439 440 call FINISH (code); 441 442 Code = code; 443 444 return; 445 446 /* vtoc_attributes$set_dump_switches 447* switch values - negative => reset, zero => don't change, positive => set */ 448 449 set_dump_switches: 450 entry (Uid, Pvid, Vtocx, Nid, Ncd, Code); 451 452 nid = Nid; 453 ncd = Ncd; 454 455 call SETUP (Code); 456 if Code ^= 0 457 then return; 458 459 update = "1"b; 460 need_vtoce = "1"b; 461 add_to_dumper = "1"b; 462 463 call GET_ASTE_VTOCE (code); 464 if code = 0 465 then do; 466 aste.nid = (aste.nid & (nid = 0)) | (nid > 0); 467 vtoce.ncd = (vtoce.ncd & (ncd = 0)) | (ncd > 0); 468 end; 469 470 call FINISH (code); 471 472 return; 473 474 /* vtoc_attributes$set_dump_info */ 475 476 set_dump_info: 477 entry (Uid, Pvid, Vtocx, Dtd, Volid, Code); 478 479 dtd = Dtd; 480 volid (*) = Volid (*); 481 482 call SETUP (Code); 483 if Code ^= 0 484 then return; 485 486 update = "1"b; 487 need_vtoce = "1"b; 488 add_to_dumper = "1"b; 489 490 call GET_ASTE_VTOCE (code); 491 if code = 0 492 then do; 493 vtoce.dtd = dtd; 494 vtoce.volid (*) = volid (*); 495 end; 496 497 call FINISH (code); 498 499 Code = code; 500 501 return; 502 503 /* vtoc_attributes$get_dump_info */ 504 505 get_dump_info: 506 entry (Uid, Pvid, Vtocx, Dtd, Volid, Code); 507 508 call SETUP (Code); 509 if Code ^= 0 510 then return; 511 512 need_vtoce = "1"b; 513 514 call GET_ASTE_VTOCE (code); 515 if code = 0 516 then do; 517 dtd = vtoce.dtd; 518 volid (*) = vtoce.volid (*); 519 end; 520 521 call FINISH (code); 522 523 if code = 0 524 then do; 525 Dtd = dtd; 526 Volid (*) = volid (*); 527 end; 528 529 Code = code; 530 531 return; 532 533 /* vtoc_attributes$correct_qused - called by adjust_qused to make final correction */ 534 535 correct_qused: 536 entry (Uid, Pvid, Vtocx, Sudelta, Dudelta, Code); 537 538 sudelta = Sudelta; 539 dudelta = Dudelta; 540 code1 = 0; 541 542 call SETUP (Code); 543 if Code ^= 0 544 then return; 545 546 update = "1"b; 547 add_to_dumper = "1"b; 548 549 call GET_ASTE_VTOCE (code); 550 if code = 0 551 then do; 552 if active 553 then do; 554 if sudelta ^= 0 555 then call quotaw$cu (astep, sudelta, "0"b, 2, code1); 556 if dudelta ^= 0 557 then call quotaw$cu (astep, dudelta, "1"b, 2, code1); 558 end; 559 else do; 560 aste.used (0) = aste.used (0) + sudelta; 561 aste.used (1) = aste.used (1) + dudelta; 562 end; 563 end; 564 565 if code = 0 566 then code = code1; 567 568 call FINISH (code); 569 570 Code = code; 571 572 return; 573 574 /* vtoc_attributes$salv_update - called by the directory salvager to update 575* the VTOCE when VTOCE checking. */ 576 577 salv_update: 578 entry (Uid, Pvid, Vtocx, Salv_Updatep, Code); 579 580 local_salv_update_info = Salv_Update_Info; 581 582 call SETUP (Code); 583 if Code ^= 0 584 then return; 585 586 need_vtoce = local_salv_update_info.set_uid_path | local_salv_update_info.set_primary_name; 587 update = "1"b; 588 589 call GET_ASTE_VTOCE (code); 590 if code = 0 591 then do; 592 if local_salv_update_info.set_master_dir 593 then aste.master_dir = local_salv_update_info.master_dir; 594 if local_salv_update_info.set_primary_name 595 then vtoce.primary_name = local_salv_update_info.primary_name; 596 if local_salv_update_info.set_uid_path 597 then vtoce.uid_path = local_salv_update_info.uid_path; 598 end; 599 600 call FINISH (code); 601 602 Code = code; 603 604 return; 605 606 /* vtoc_attributes$get_dump_switches */ 607 608 get_dump_switches: 609 entry (Uid, Pvid, Vtocx, Nid, Ncd, Code); 610 611 nid, ncd = 0; 612 613 call SETUP (Code); 614 if Code ^= 0 615 then return; 616 617 need_vtoce = "1"b; 618 619 call GET_ASTE_VTOCE (code); 620 if code = 0 621 then do; 622 if aste.nid 623 then nid = 1; 624 else nid = -1; 625 if vtoce.ncd 626 then ncd = 1; 627 else ncd = -1; 628 end; 629 630 call FINISH (code); 631 632 if code = 0 633 then do; 634 Nid = nid; 635 Ncd = ncd; 636 end; 637 638 Code = code; 639 640 return; 641 642 643 644 /* Internal Procedure to set automatic variables, translate Physical Volume 645* Unique ID to PVT Index. 646**/ 647 648 SETUP: 649 proc (Code); 650 651 dcl Code fixed bin (35) parameter; 652 653 Code = 0; 654 ast_is_locked = "0"b; 655 active = "0"b; 656 need_vtoce = "0"b; 657 update = "0"b; 658 add_to_dumper = "0"b; 659 uid = Uid; 660 pvid = Pvid; 661 vtocx = Vtocx; 662 vtocep = addr (local_vtoce); 663 pvtx = get_pvtx (pvid, Code); 664 665 end SETUP; 666 667 /* Internal Procedure to get a pointer to the ASTE and to read the VTOCE 668* if necessary. 669* 670* On return, astep points to the ASTE (if the segment is active), or to 671* a pseudo-ASTE in automatic storage. In the latter case, relevant 672* VTOCE fields have been updated into the pseudo-ASTE so that caller 673* can work with it, and not be concerned about whether the segment 674* is active. Any modifications to the pseudo-ASTE will be reflected into 675* the VTOCE in FINISH. 676* 677* The AST lock protects against activation or deactivation, and ensures 678* that the copy of the VTOCE is the latest one. To avoid doing I/O 679* under the AST lock, the following strategy is used: 680* 681* call vtoc_man$get_vtoce with the AST unlocked 682* 683* lock the AST 684* 685* call vtoc_man$get_vtoce again (this will probably not cause 686* an I/O, due to the way vtoc_man works) 687* 688* This routine uses/sets the following global flags: 689* 690* need_vtoce - will read VTOCE even if segment is active (used) 691* 692* ast_is_locked - what it says (set) 693* 694* active - ON if segment is active (set) 695* 696**/ 697 698 GET_ASTE_VTOCE: 699 proc (Code); 700 701 dcl Code fixed bin (35) parameter; 702 703 dcl vtoce_read bit (1) aligned; /* ON => we have read the VTOCE */ 704 705 706 Code = 0; 707 vtoce_read = "0"b; 708 unspec (vtoce) = ""b; 709 710 if need_vtoce 711 then do; 712 call vtoc_man$get_vtoce (""b, pvtx, vtocx, ALL_PARTS, vtocep, Code); 713 if Code ^= 0 714 then return; 715 vtoce_read = "1"b; 716 end; 717 718 call lock$lock_ast; 719 ast_is_locked = "1"b; 720 astep = search_ast$check (uid, pvid, vtocx, Code); 721 if Code ^= 0 722 then do; 723 call lock$unlock_ast; 724 ast_is_locked = "0"b; /* well, it's true, isn't it? */ 725 return; 726 end; 727 728 729 if astep = null () & ^vtoce_read 730 then do; 731 call lock$unlock_ast; 732 ast_is_locked = "0"b; 733 call vtoc_man$get_vtoce (""b, pvtx, vtocx, ALL_PARTS, vtocep, Code); 734 if Code ^= 0 735 then return; 736 vtoce_read = "1"b; 737 call lock$lock_ast; 738 ast_is_locked = "1"b; 739 astep = search_ast$check (uid, pvid, vtocx, Code); 740 if Code ^= 0 741 then do; 742 call lock$unlock_ast; 743 ast_is_locked = "0"b; 744 return; 745 end; 746 end; 747 748 if (astep = null ()) | need_vtoce 749 then do; 750 call vtoc_man$get_vtoce (""b, pvtx, vtocx, ALL_PARTS, vtocep, Code); 751 if Code ^= 0 752 then do; 753 VTOCE_ERROR: 754 call lock$unlock_ast; 755 ast_is_locked = "0"b; 756 return; 757 end; 758 if vtoce.uid ^= uid 759 then do; 760 Code = error_table_$vtoce_connection_fail; 761 goto VTOCE_ERROR; 762 end; 763 end; 764 765 if astep ^= null () 766 then active = "1"b; 767 else do; 768 astep = addr (local_aste); 769 call VTOCE_TO_ASTE; 770 end; 771 772 773 end GET_ASTE_VTOCE; 774 775 /* Internal Procedure to clean up by unlocking and updating whatever 776* is necessary. 777* 778* This routine uses the following global flags: 779* 780* ast_is_locked 781* 782* active 783* 784* update 785* 786* need_vtoce 787* 788**/ 789 790 FINISH: 791 proc (Code); 792 793 dcl Code fixed bin (35) parameter; 794 795 796 dcl code fixed bin (35); 797 dcl code1 fixed bin (35); 798 799 800 code, code1 = 0; 801 802 if ^active & update & (astep ^= null ()) 803 then call ASTE_TO_VTOCE; 804 805 if add_to_dumper & (Code = 0) 806 then if ^vtoce.nid & ^vtoce.per_process & ^vtoce.deciduous & ^vtoce.per_bootload 807 then call dbm_man$set_incr (pvtx, vtocx, code); 808 809 if update & (Code = 0) 810 then if ^active | need_vtoce 811 then call vtoc_man$put_vtoce (""b, pvtx, vtocx, ALL_PARTS, vtocep, code1); 812 813 if ast_is_locked 814 then call lock$unlock_ast; 815 ast_is_locked = "0"b; 816 817 if Code = 0 818 then if code ^= 0 819 then Code = code; 820 else Code = code1; 821 822 end FINISH; 823 824 /* Internal Procedure to update a pseudo-ASTE into a VTOCE */ 825 826 ASTE_TO_VTOCE: 827 proc; 828 829 dcl i fixed bin; 830 831 832 vtoce.msl = aste.msl; 833 vtoce.csl = aste.csl; 834 vtoce.dtu = aste.dtu; 835 vtoce.dtm = aste.dtm; 836 vtoce.nqsw = aste.nqsw; 837 vtoce.deciduous = aste.hc_sdw; 838 vtoce.damaged = aste.damaged; 839 vtoce.synchronized = aste.synchronized; 840 vtoce.dnzp = aste.dnzp; 841 vtoce.nid = aste.nid; 842 vtoce.dirsw = aste.dirsw; 843 844 if aste.dirsw 845 then do; 846 vtoce.master_dir = aste.master_dir; 847 do i = 0, 1; 848 vtoce.used (i) = aste.used (i); 849 vtoce.quota (i) = aste.quota (i); 850 end; 851 end; 852 853 end ASTE_TO_VTOCE; 854 855 /* Internal Procedure to fill in the fields of a pseudo-ASTE from a VTOCE */ 856 857 VTOCE_TO_ASTE: 858 proc; 859 860 dcl i fixed bin; 861 862 863 unspec (aste) = ""b; 864 865 aste.uid = vtoce.uid; 866 aste.msl = vtoce.msl; 867 aste.csl = vtoce.csl; 868 aste.records = vtoce.records; 869 aste.dtu = vtoce.dtu; 870 aste.dtm = vtoce.dtm; 871 aste.nqsw = vtoce.nqsw; 872 aste.hc_sdw = vtoce.deciduous; 873 aste.per_process = vtoce.per_process; 874 aste.damaged = vtoce.damaged; 875 aste.synchronized = vtoce.synchronized; 876 aste.dnzp = vtoce.dnzp; 877 aste.nid = vtoce.nid; 878 aste.dirsw = vtoce.dirsw; 879 aste.pvtx = pvtx; 880 aste.vtocx = vtocx; 881 882 if aste.dirsw 883 then do; 884 aste.master_dir = vtoce.master_dir; 885 do i = 0, 1; 886 aste.quota (i) = vtoce.quota (i); 887 aste.used (i) = vtoce.used (i); 888 end; 889 aste.tqsw (0) = (vtoce.received (0) ^= 0) | aste.master_dir; 890 aste.tqsw (1) = (vtoce.received (1) ^= 0); 891 end; 892 else seg_aste.usage = seg_vtoce.usage; 893 894 end VTOCE_TO_ASTE; 895 896 /* Internal Procedure to Update date-time-used and date-time modified. */ 897 898 UPDATE_ACTIVE_DT: 899 proc; 900 901 curtime = clock (); 902 903 if (aste.np ^= ""b) 904 then call pc$update_incore_fms (astep); /* Update modification if noted */ 905 if aste.fms 906 then do; 907 add_to_dumper = "1"b; 908 aste.fms = "0"b; 909 end; 910 if ^aste.gtus 911 then if ((aste.np ^= ""b) | (aste.infp ^= ""b)) /* pages in, or inferior ASTEs */ 912 then aste.dtu = bit (fixed (curtime, 52), 52); 913 /* it's in-use */ 914 915 end UPDATE_ACTIVE_DT; 916 917 918 /* format: off */ 919 /* 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 */ 919 920 /* BEGIN INCLUDE FILE ... quota_cell.incl.pl1 ... February 1982 */ 2 2 2 3 dcl 1 quota_cell based (qcp) aligned, /* Argument used by vtoc_attributes$(get set)_quota */ 2 4 2 quota fixed bin (35), /* Record quota */ 2 5 2 used fixed bin (35), /* Current use */ 2 6 2 received fixed bin (35), /* Quota moved down */ 2 7 2 tup bit (36), /* Clock time of update */ 2 8 2 trp fixed bin (71), /* Time-page-product, in page-seconds */ 2 9 2 pad fixed bin, 2 10 2 terminal_quota_sw bit (1); /* TRUE if terminal quota */ 2 11 2 12 dcl qcp ptr; 2 13 2 14 /* END INCLUDE FILE ... quota_cell */ 920 921 3 2 /* Begin include file ... sc_info.incl.pl1 */ 3 3 /* format: style3 */ 3 4 /* quota_cell.incl.pl1 MUST be included with this file. */ 3 5 3 6 /* This file defines a structure used for communicating vtoc-resident 3 7* information between status accessing and setting primitives in 3 8* segment control */ 3 9 3 10 dcl scip ptr; 3 11 3 12 dcl 1 based_sc_info aligned based (scip), 3 13 2 dtu bit (36), /* Date-time used */ 3 14 2 dtm bit (36), /* Date-time modified */ 3 15 2 records fixed bin, /* # records of storage used */ 3 16 2 msl fixed bin, /* Maximum segment length, words */ 3 17 2 csl fixed bin, /* Current segment length, words */ 3 18 2 flags, 3 19 3 dnzp bit (1) unal, 3 20 3 pad_gtpd bit (1) unal, /* obsolete PML */ 3 21 3 damaged bit (1) unal, 3 22 3 nid bit (1) unal, /* no incremental volume dump switch */ 3 23 3 ncd bit (1) unal, /* no complete dump switch */ 3 24 3 synchronized bit (1) unal, 3 25 3 pad bit (30) unal, 3 26 2 pf_count fixed bin (35), /* page fault counter. may wrap */ 3 27 2 qcell (0:1) aligned like quota_cell, 3 28 2 vol_dtd bit (36), /* volume date-time-dumped */ 3 29 2 volid (3) bit (36) aligned; /* these belong to the dumper */ 3 30 3 31 3 32 dcl 1 sc_info like based_sc_info aligned; 3 33 3 34 /* End include file ... sc_info.incl.pl1 */ 921 922 /* BEGIN INCLUDE FILE ...vtoce.incl.pl1 ... last modified September 1982 */ 4 2 /* Template for a VTOC entry. Length = 192 words. (3 * 64). */ 4 3 /* NOTE: vtoc_man clears pad fields before writing a vtoce. */ 4 4 4 5 dcl vtocep ptr; 4 6 4 7 dcl 1 vtoce based (vtocep) aligned, 4 8 4 9 4 10 (2 pad_free_vtoce_chain bit (36), /* Used to be pointer to next free VTOCE */ 4 11 4 12 2 uid bit (36), /* segment's uid - zero if vtoce is free */ 4 13 4 14 2 msl bit (9), /* maximum segment length in 1024 word units */ 4 15 2 csl bit (9), /* current segment length - in 1024 word units */ 4 16 2 records bit (9), /* number of records used by the seg in second storage */ 4 17 2 pad2 bit (9), 4 18 4 19 2 dtu bit (36), /* date and time segment was last used */ 4 20 4 21 2 dtm bit (36), /* date and time segment was last modified */ 4 22 4 23 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 4 24 2 deciduous bit (1), /* true if hc_sdw */ 4 25 2 nid bit (1), /* no incremental dump switch */ 4 26 2 dnzp bit (1), /* Dont null zero pages */ 4 27 2 gtpd bit (1), /* Global transparent paging device */ 4 28 2 per_process bit (1), /* Per process segment (deleted every bootload) */ 4 29 2 damaged bit (1), /* TRUE if contents damaged */ 4 30 2 fm_damaged bit (1), /* TRUE if filemap checksum bad */ 4 31 2 fm_checksum_valid bit (1), /* TRUE if the checksum has been computed */ 4 32 2 synchronized bit (1), /* TRUE if this is a data management synchronized segment */ 4 33 2 pad3 bit (8), 4 34 2 dirsw bit (1), /* directory switch */ 4 35 2 master_dir bit (1), /* master directory - a root for the logical volume */ 4 36 2 pad4 bit (16)) unaligned, /* not used */ 4 37 4 38 2 fm_checksum bit (36) aligned, /* Checksum of used portion of file map */ 4 39 4 40 (2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 4 41 4 42 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 4 43 4 44 2 received (0:1) fixed bin (18) unsigned, /* total amount of storage this dir has received */ 4 45 4 46 2 trp (0:1) fixed bin (71), /* time record product - (0) for non dir pages */ 4 47 4 48 2 trp_time (0:1) bit (36), /* time time_record_product was last calculated */ 4 49 4 50 4 51 4 52 4 53 4 54 2 fm (0:255) bit (18), /* file map - 256 entries - 18 bits per entry */ 4 55 4 56 2 pad6 (10) bit (36), /* not used */ 4 57 4 58 2 ncd bit (1), /* no complete dump switch */ 4 59 2 pad7 bit (17), 4 60 2 pad8 bit (18), 4 61 4 62 2 dtd bit (36), /* date-time-dumped */ 4 63 4 64 2 volid (3) bit (36), /* volume ids of last incremental, consolidated, and complete dumps */ 4 65 4 66 2 master_dir_uid bit (36), /* superior master directory uid */ 4 67 4 68 4 69 4 70 4 71 2 uid_path (0:15) bit (36), /* uid pathname of all parents starting after the root */ 4 72 4 73 2 primary_name char (32), /* primary name of the segment */ 4 74 4 75 2 time_created bit (36), /* time the segment was created */ 4 76 4 77 2 par_pvid bit (36), /* physical volume id of the parent */ 4 78 4 79 2 par_vtocx fixed bin (17), /* vtoc entry index of the parent */ 4 80 2 branch_rp bit (18)) unaligned, /* rel pointer of the branch of this segment */ 4 81 4 82 2 cn_salv_time bit (36), /* time branch - vtoce connection checked */ 4 83 4 84 2 access_class bit (72), /* access class in branch */ 4 85 2 perm_flags aligned, 4 86 3 per_bootload bit (1) unal, /* ON => deleted each bootload */ 4 87 3 pad9 bit (35) unal, 4 88 2 owner bit (36); /* pvid of this volume */ 4 89 4 90 dcl vtoce_parts (3) bit (36 * 64) aligned based (vtocep); 4 91 4 92 dcl 1 seg_vtoce based (vtocep) aligned, /* Overlay for vtoce of segments, which don't have quota */ 4 93 2 pad1 bit (7*36), 4 94 2 usage fixed bin (35), /* page fault count: overlays quota */ 4 95 2 pad2 bit (184*36); 4 96 4 97 /* END INCLUDE FILE vtoce.incl.pl1 */ 922 923 /* BEGIN INCLUDE FILE ... vtoce_pc_sws.incl.pl1 */ 5 2 5 3 dcl vpsp ptr; 5 4 dcl 1 vtoce_pc_sws based (vpsp) aligned, 5 5 (2 dnzp bit (1), 5 6 2 gtpd bit (1), 5 7 2 damaged bit (1), 5 8 2 synchronized bit (1), 5 9 2 pad bit (32)) unal; 5 10 5 11 /* END INCLUDE FILE ... vtoce_pc_sws.incl.pl1 */ 923 924 /* BEGIN INCLUDE vtoce_salv_update */ 6 2 6 3 dcl 1 salv_update_info aligned based, 6 4 2 flags, 6 5 3 set_uid_path bit (1) unal, 6 6 3 set_primary_name bit (1) unal, 6 7 3 set_master_dir bit (1) unal, 6 8 3 pad1 bit (33) unal, 6 9 2 uid_path (0:15) bit (36) aligned, 6 10 2 primary_name char (32), 6 11 2 master_dir bit (1) unal, 6 12 2 pad2 bit (17) unal; 6 13 6 14 /* END INCLUDE vtoce_salv_update */ 924 925 926 end vtoc_attributes$set_dates; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0830.0 vtoc_attributes.pl1 >special_ldd>install>MR12.3-1114>vtoc_attributes.pl1 919 1 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 920 2 05/27/82 1525.9 quota_cell.incl.pl1 >ldd>include>quota_cell.incl.pl1 921 3 11/22/82 0955.7 sc_info.incl.pl1 >ldd>include>sc_info.incl.pl1 922 4 10/04/83 1105.1 vtoce.incl.pl1 >ldd>include>vtoce.incl.pl1 923 5 11/22/82 0955.7 vtoce_pc_sws.incl.pl1 >ldd>include>vtoce_pc_sws.incl.pl1 924 6 09/29/77 1502.7 vtoce_salv_update.incl.pl1 >ldd>include>vtoce_salv_update.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. ALL_PARTS 000000 constant bit(3) initial packed unaligned dcl 118 set ref 712* 733* 750* 809* Code parameter fixed bin(35,0) dcl 58 in procedure "vtoc_attributes$set_dates" set ref 15 167* 168 186* 194 201* 202 224* 231 234* 235 278* 284 289* 290 313* 323 329* 330 352* 358 366* 367 390* 396 405* 409* 410 442* 449 455* 456 476 482* 483 499* 505 508* 509 529* 535 542* 543 570* 577 582* 583 602* 608 613* 614 638* Code parameter fixed bin(35,0) dcl 793 in procedure "FINISH" set ref 790 805 809 817 817* 820* Code parameter fixed bin(35,0) dcl 651 in procedure "SETUP" set ref 648 653* 663* Code parameter fixed bin(35,0) dcl 701 in procedure "GET_ASTE_VTOCE" set ref 698 706* 712* 713 720* 721 733* 734 739* 740 750* 751 760* Dtd parameter bit(36) dcl 59 set ref 476 479 505 525* Dtm parameter bit(36) dcl 60 ref 15 165 358 362 Dtu parameter bit(36) dcl 61 ref 15 164 358 361 Dudelta parameter fixed bin(34,0) dcl 62 ref 535 539 Msk parameter bit(36) dcl 63 ref 396 400 Mxl parameter fixed bin(9,0) dcl 64 ref 194 197 358 363 Ncd parameter fixed bin(17,0) dcl 65 set ref 449 453 608 635* Nid parameter fixed bin(17,0) dcl 66 set ref 449 452 608 634* Priv_Sw parameter bit(1) dcl 67 ref 194 199 Pvid parameter bit(36) dcl 68 ref 15 194 231 284 323 358 396 449 476 505 535 577 608 660 Qcp parameter pointer dcl 69 ref 284 309 311 323 327 Qtype parameter fixed bin(17,0) dcl 70 ref 284 287 323 326 Quota_Cell based structure level 1 dcl 122 set ref 309* 311* 327 Salv_Update_Info based structure level 1 dcl 123 ref 580 Salv_Updatep parameter pointer dcl 71 ref 577 580 Sc_Info based structure level 1 dcl 124 set ref 274* 276* Scip parameter pointer dcl 72 ref 231 274 276 Sudelta parameter fixed bin(34,0) dcl 73 ref 535 538 Sws parameter bit(36) dcl 74 ref 396 399 Uid parameter bit(36) dcl 75 ref 15 194 231 284 323 358 396 449 476 505 535 577 608 659 Volid parameter bit(36) array dcl 76 set ref 476 480 505 526* Vtocx parameter fixed bin(17,0) dcl 78 ref 15 194 231 284 323 358 396 449 476 505 535 577 608 661 active 000100 automatic bit(1) dcl 82 set ref 217 340 382 418 426* 552 655* 765* 802 809 add_to_dumper 000101 automatic bit(1) dcl 83 set ref 172* 216* 335* 371* 414* 461* 488* 547* 658* 805 907* addr builtin function dcl 153 ref 662 768 ast_is_locked 000102 automatic bit(1) dcl 84 set ref 425* 654* 719* 724* 732* 738* 743* 755* 813 815* aste based structure level 1 dcl 1-11 set ref 863* astep 000552 automatic pointer dcl 1-9 set ref 178 180 208 212 217 217* 219 244 245 246 247 248 249 250 251 252 254 261 263 264 265 299 300 301 342 343 376 378 380 382 382* 384 418 421* 432 434 436 466 466 554* 556* 560 560 561 561 592 622 720* 729 739* 748 765 768* 802 832 833 834 835 836 837 838 839 840 841 842 844 846 848 849 863 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 882 884 886 887 889 889 890 892 903 903* 905 908 910 910 910 910 based_sc_info based structure level 1 dcl 3-12 bit builtin function dcl 154 ref 198 364 910 clock builtin function dcl 155 ref 901 code 000103 automatic fixed bin(35,0) dcl 85 in procedure "vtoc_attributes$set_dates" set ref 174* 175 184* 186 205* 206 208* 212 222* 224 240* 241 272* 274 278 296* 297 307* 309 313 337* 338 350* 352 373* 374 388* 390 416* 418 421* 422 430 440* 442 463* 464 470* 490* 491 497* 499 514* 515 521* 523 529 549* 550 565 565* 568* 570 589* 590 600* 602 619* 620 630* 632 638 code 000646 automatic fixed bin(35,0) dcl 796 in procedure "FINISH" set ref 800* 805* 817 817 code1 000647 automatic fixed bin(35,0) dcl 797 in procedure "FINISH" set ref 800* 809* 820 code1 000104 automatic fixed bin(35,0) dcl 86 in procedure "vtoc_attributes$set_dates" set ref 540* 554* 556* 565 csl 2(09) based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 833* 867 csl 12 based bit(9) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 208 248 833 867* csl 4 000172 automatic fixed bin(17,0) level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 248* curtime 000106 automatic fixed bin(71,0) dcl 87 set ref 901* 910 damaged 5(06) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 838* 874 damaged 13(19) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 250 434* 838 874* damaged 0(02) 000542 automatic bit(1) level 2 in structure "sws" packed packed unaligned dcl 110 in procedure "vtoc_attributes$set_dates" set ref 434 damaged 0(02) 000526 automatic bit(1) level 2 in structure "msk" packed packed unaligned dcl 98 in procedure "vtoc_attributes$set_dates" set ref 434 damaged 5(02) 000172 automatic bit(1) level 3 in structure "local_sc_info" packed packed unaligned dcl 96 in procedure "vtoc_attributes$set_dates" set ref 250* dbm_man$set_incr 000020 constant entry external dcl 138 ref 805 deactivate 000022 constant entry external dcl 139 ref 421 deciduous 5(01) based bit(1) level 2 packed packed unaligned dcl 4-7 set ref 805 837* 872 dirsw 5(18) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 842* 878 dirsw 5(21) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 252 261 842 844 878* 882 dnzp 000526 automatic bit(1) level 2 in structure "msk" packed packed unaligned dcl 98 in procedure "vtoc_attributes$set_dates" set ref 432 dnzp 5(03) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 840* 876 dnzp 12(13) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 249 432* 840 876* dnzp 5 000172 automatic bit(1) level 3 in structure "local_sc_info" packed packed unaligned dcl 96 in procedure "vtoc_attributes$set_dates" set ref 249* dnzp 000542 automatic bit(1) level 2 in structure "sws" packed packed unaligned dcl 110 in procedure "vtoc_attributes$set_dates" set ref 432 dtd 233 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 493* 517 dtd 000110 automatic bit(36) dcl 88 in procedure "vtoc_attributes$set_dates" set ref 479* 493 517* 525 dtm 4 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 835* 870 dtm 000111 automatic bit(36) dcl 89 in procedure "vtoc_attributes$set_dates" set ref 165* 180 180 362* 378 378 dtm 1 000172 automatic bit(36) level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 245* dtm 7 based bit(36) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 180* 245 378* 835 870* dtu 000112 automatic bit(36) dcl 90 in procedure "vtoc_attributes$set_dates" set ref 164* 178 178 361* 376 376 dtu 6 based bit(36) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 178* 244 376* 834 869* 910* dtu 000172 automatic bit(36) level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 244* dtu 3 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 834* 869 dudelta 000113 automatic fixed bin(34,0) dcl 91 set ref 539* 556 556* 561 error_table_$dm_not_enabled 000010 external static fixed bin(35,0) dcl 128 ref 405 error_table_$invalid_max_length 000012 external static fixed bin(35,0) dcl 130 ref 208 error_table_$vtoce_connection_fail 000014 external static fixed bin(35,0) dcl 132 ref 760 fixed builtin function dcl 156 ref 246 247 248 910 flags 000140 automatic structure level 2 in structure "local_salv_update_info" dcl 94 in procedure "vtoc_attributes$set_dates" flags 5 000172 automatic structure level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" fms 12(10) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 905 908* get_pvtx 000024 constant entry external dcl 140 ref 663 gtus 5(02) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 910 hc_sdw 5(05) based bit(1) level 2 packed packed unaligned dcl 1-11 set ref 837 872* i 000656 automatic fixed bin(17,0) dcl 829 in procedure "ASTE_TO_VTOCE" set ref 847* 848 848 849 849* i 000670 automatic fixed bin(17,0) dcl 860 in procedure "VTOCE_TO_ASTE" set ref 885* 886 886 887 887* infp 1(18) based bit(18) level 2 packed packed unaligned dcl 1-11 set ref 910 local_aste 000114 automatic structure level 1 dcl 92 set ref 768 local_quota_cell 000130 automatic structure level 1 dcl 93 set ref 294* 309 327* local_salv_update_info 000140 automatic structure level 1 dcl 94 set ref 580* local_sc_info 000172 automatic structure level 1 dcl 96 set ref 238* 274 local_vtoce 000226 automatic structure level 1 dcl 97 set ref 662 lock$lock_ast 000026 constant entry external dcl 141 ref 718 737 lock$unlock_ast 000030 constant entry external dcl 142 ref 424 723 731 742 753 813 master_dir 5(22) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 592* 846 884* 889 master_dir 5(19) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 846* 884 master_dir 31 000140 automatic bit(1) level 2 in structure "local_salv_update_info" packed packed unaligned dcl 94 in procedure "vtoc_attributes$set_dates" set ref 592 msk 000526 automatic structure level 1 dcl 98 set ref 400* msl 4 based bit(9) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 212 217 219* 247 380 382 384* 832 866* msl 2 based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 832* 866 msl 3 000172 automatic fixed bin(17,0) level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 247* mxl 000527 automatic fixed bin(9,0) dcl 99 set ref 197* 198 363* 364 380 mxl_bits 000530 automatic bit(9) packed unaligned dcl 100 set ref 198* 208 212 217 219 364* 380 382 384 ncd 000531 automatic fixed bin(17,0) dcl 101 in procedure "vtoc_attributes$set_dates" set ref 453* 467 467 611* 625* 627* 635 ncd 5(04) 000172 automatic bit(1) level 3 in structure "local_sc_info" packed packed unaligned dcl 96 in procedure "vtoc_attributes$set_dates" set ref 257* ncd 232 based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 467* 467 625 need_vtoce 000532 automatic bit(1) dcl 102 set ref 293* 333* 460* 487* 512* 586* 617* 656* 710 748 809 nid 5(17) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 466* 466 622 841 877* nid 5(03) 000172 automatic bit(1) level 3 in structure "local_sc_info" packed packed unaligned dcl 96 in procedure "vtoc_attributes$set_dates" set ref 256* nid 5(02) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 805 841* 877 nid 000533 automatic fixed bin(17,0) dcl 103 in procedure "vtoc_attributes$set_dates" set ref 452* 466 466 611* 622* 624* 634 np 12(27) based bit(9) level 2 packed packed unaligned dcl 1-11 set ref 903 910 nqsw 5 based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 836* 871 nqsw 5(20) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 836 871* null builtin function dcl 157 ref 729 748 765 802 pc$update_incore_fms 000034 constant entry external dcl 144 ref 903 per_bootload 276 based bit(1) level 3 packed packed unaligned dcl 4-7 set ref 805 per_process 5(05) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 805 873 per_process 12(14) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 873* perm_flags 276 based structure level 2 dcl 4-7 pf_count 6 000172 automatic fixed bin(35,0) level 2 dcl 96 set ref 252* 254* primary_name 260 based char(32) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 594* primary_name 21 000140 automatic char(32) level 2 in structure "local_salv_update_info" dcl 94 in procedure "vtoc_attributes$set_dates" set ref 594 priv_sw 000534 automatic bit(1) dcl 104 set ref 199* 208 pvid 000535 automatic bit(36) dcl 105 set ref 660* 663* 720* 739* pvtx 4(09) based fixed bin(8,0) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 879* pvtx 000536 automatic fixed bin(17,0) dcl 106 in procedure "vtoc_attributes$set_dates" set ref 663* 712* 733* 750* 805* 809* 879 qcell 10 000172 automatic structure array level 2 dcl 96 qt 000537 automatic fixed bin(17,0) dcl 107 set ref 261* 263 263 264 264 265 265 266 267 268* qtype 000540 automatic fixed bin(17,0) dcl 108 set ref 287* 299 300 301 302 303 304 326* 342 343 345 346 347 quota 7 based fixed bin(18,0) array level 2 in structure "vtoce" packed packed unsigned unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 849* 886 quota 10 000172 automatic fixed bin(35,0) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 263* quota 000130 automatic fixed bin(35,0) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 299* 342 quota 10 based fixed bin(18,0) array level 2 in structure "aste" packed packed unsigned unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 263 299 342* 849 886* quota_cell based structure level 1 dcl 2-3 quotaw$cu 000032 constant entry external dcl 143 ref 554 556 received 12 000172 automatic fixed bin(35,0) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 266* received 11 based fixed bin(18,0) array level 2 in structure "vtoce" packed packed unsigned unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 302 345* 889 890 received 2 000130 automatic fixed bin(35,0) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 302* 345 records 2 000172 automatic fixed bin(17,0) level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 246* records 12(18) based bit(9) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 246 868* records 2(18) based bit(9) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 868 salv_update_info based structure level 1 dcl 6-3 sc_info 000554 automatic structure level 1 dcl 3-32 search_ast$check 000036 constant entry external dcl 146 ref 720 739 seg_aste based structure level 1 dcl 1-96 seg_vtoce based structure level 1 dcl 4-92 set_master_dir 0(02) 000140 automatic bit(1) level 3 packed packed unaligned dcl 94 set ref 592 set_primary_name 0(01) 000140 automatic bit(1) level 3 packed packed unaligned dcl 94 set ref 586 594 set_uid_path 000140 automatic bit(1) level 3 packed packed unaligned dcl 94 set ref 586 596 setfaults 000040 constant entry external dcl 147 ref 217 382 sst$dm_enabled 000016 external static bit(1) dcl 134 ref 402 string builtin function dcl 158 set ref 399* 400* sudelta 000541 automatic fixed bin(34,0) dcl 109 set ref 538* 554 554* 560 sws 000542 automatic structure level 1 dcl 110 set ref 399* synchronized 5(09) based bit(1) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 839* 875 synchronized 0(03) 000526 automatic bit(1) level 2 in structure "msk" packed packed unaligned dcl 98 in procedure "vtoc_attributes$set_dates" set ref 402 418 436 synchronized 5(05) 000172 automatic bit(1) level 3 in structure "local_sc_info" packed packed unaligned dcl 96 in procedure "vtoc_attributes$set_dates" set ref 251* synchronized 13(21) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 251 418 436* 839 875* synchronized 0(03) 000542 automatic bit(1) level 2 in structure "sws" packed packed unaligned dcl 110 in procedure "vtoc_attributes$set_dates" set ref 402 436 terminal_quota_sw 7 000130 automatic bit(1) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 301* terminal_quota_sw 17 000172 automatic bit(1) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 265* tqsw 5(24) based bit(1) array level 2 packed packed unaligned dcl 1-11 set ref 265 301 889* 890* trp 12 based fixed bin(71,0) array level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 304 347* trp 4 000130 automatic fixed bin(71,0) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 304* 347 trp 14 000172 automatic fixed bin(71,0) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 268* trp_time 16 based bit(36) array level 2 packed packed unaligned dcl 4-7 set ref 303 346* tup 13 000172 automatic bit(36) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 267* tup 3 000130 automatic bit(36) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 303* 346 uid 3 based bit(36) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 865* uid 000543 automatic bit(36) dcl 111 in procedure "vtoc_attributes$set_dates" set ref 659* 720* 739* 758 uid 1 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 758 865 uid_path 240 based bit(36) array level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 596* uid_path 1 000140 automatic bit(36) array level 2 in structure "local_salv_update_info" dcl 94 in procedure "vtoc_attributes$set_dates" set ref 596 unspec builtin function dcl 159 set ref 238* 276* 294* 311* 708* 863* update 000544 automatic bit(1) dcl 112 set ref 171* 215* 334* 370* 413* 459* 486* 546* 587* 657* 802 809 usage 7 based fixed bin(35,0) level 2 in structure "seg_vtoce" dcl 4-92 in procedure "vtoc_attributes$set_dates" ref 892 usage 10 based fixed bin(35,0) level 2 in structure "seg_aste" dcl 1-96 in procedure "vtoc_attributes$set_dates" set ref 254 892* used 11 based fixed bin(18,0) array level 2 in structure "aste" packed packed unsigned unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 264 300 343* 560* 560 561* 561 848 887* used 1 000130 automatic fixed bin(35,0) level 2 in structure "local_quota_cell" dcl 93 in procedure "vtoc_attributes$set_dates" set ref 300* 343 used 10 based fixed bin(18,0) array level 2 in structure "vtoce" packed packed unsigned unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 848* 887 used 11 000172 automatic fixed bin(35,0) array level 3 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 264* vol_dtd 30 000172 automatic bit(36) level 2 dcl 96 set ref 258* volid 31 000172 automatic bit(36) array level 2 in structure "local_sc_info" dcl 96 in procedure "vtoc_attributes$set_dates" set ref 259* volid 234 based bit(36) array level 2 in structure "vtoce" packed packed unaligned dcl 4-7 in procedure "vtoc_attributes$set_dates" set ref 494* 518 volid 000545 automatic bit(36) array dcl 113 in procedure "vtoc_attributes$set_dates" set ref 480* 494 518* 526 vtoc_man$get_vtoce 000042 constant entry external dcl 148 ref 712 733 750 vtoc_man$put_vtoce 000044 constant entry external dcl 149 ref 809 vtoce based structure level 1 dcl 4-7 set ref 708* vtoce_pc_sws based structure level 1 dcl 5-4 vtoce_read 000636 automatic bit(1) dcl 703 set ref 707* 715* 729 736* vtocep 000610 automatic pointer dcl 4-5 set ref 302 303 304 345 346 347 467 467 493 494 517 518 594 596 625 662* 708 712* 733* 750* 758 805 805 805 805 809* 832 833 834 835 836 837 838 839 840 841 842 846 848 849 865 866 867 868 869 870 871 872 873 874 875 876 877 878 884 886 887 889 890 892 vtocx 4(18) based fixed bin(17,0) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "vtoc_attributes$set_dates" set ref 880* vtocx 000550 automatic fixed bin(17,0) dcl 114 in procedure "vtoc_attributes$set_dates" set ref 661* 712* 720* 733* 739* 750* 805* 809* 880 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. asta based bit(432) array dcl 1-86 aste_part based structure level 1 dcl 1-89 qcp automatic pointer dcl 2-12 scip automatic pointer dcl 3-10 vpsp automatic pointer dcl 5-3 vtoce_parts based bit(2304) array dcl 4-90 NAMES DECLARED BY EXPLICIT CONTEXT. ASTE_TO_VTOCE 002515 constant entry internal dcl 826 ref 802 FINISH 002373 constant entry internal dcl 790 ref 184 222 272 307 350 388 440 470 497 521 568 600 630 GET_ASTE_VTOCE 002071 constant entry internal dcl 698 ref 174 205 240 296 337 373 416 463 490 514 549 589 619 RETRY_SET 001101 constant label dcl 416 ref 427 SETUP 002033 constant entry internal dcl 648 ref 167 201 234 289 329 366 409 455 482 508 542 582 613 UPDATE_ACTIVE_DT 003014 constant entry internal dcl 898 ref 177 243 VTOCE_ERROR 002341 constant label dcl 753 ref 761 VTOCE_TO_ASTE 002630 constant entry internal dcl 857 ref 769 correct_qused 001475 constant entry external dcl 535 get_dump_info 001403 constant entry external dcl 505 get_dump_switches 001745 constant entry external dcl 608 get_info 000231 constant entry external dcl 231 get_quota 000451 constant entry external dcl 284 reloading 000716 constant entry external dcl 358 salv_update 001634 constant entry external dcl 577 set_dump_info 001315 constant entry external dcl 476 set_dump_switches 001211 constant entry external dcl 449 set_max_lth 000105 constant entry external dcl 194 set_pc_switches 001035 constant entry external dcl 396 set_quota 000576 constant entry external dcl 323 vtoc_attributes$set_dates 000026 constant entry external dcl 15 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3434 3502 3070 3444 Length 4052 3070 46 333 343 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vtoc_attributes$set_dates 524 external procedure is an external procedure. SETUP internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. GET_ASTE_VTOCE internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. FINISH internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. ASTE_TO_VTOCE internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. VTOCE_TO_ASTE internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. UPDATE_ACTIVE_DT internal procedure shares stack frame of external procedure vtoc_attributes$set_dates. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vtoc_attributes$set_dates 000100 active vtoc_attributes$set_dates 000101 add_to_dumper vtoc_attributes$set_dates 000102 ast_is_locked vtoc_attributes$set_dates 000103 code vtoc_attributes$set_dates 000104 code1 vtoc_attributes$set_dates 000106 curtime vtoc_attributes$set_dates 000110 dtd vtoc_attributes$set_dates 000111 dtm vtoc_attributes$set_dates 000112 dtu vtoc_attributes$set_dates 000113 dudelta vtoc_attributes$set_dates 000114 local_aste vtoc_attributes$set_dates 000130 local_quota_cell vtoc_attributes$set_dates 000140 local_salv_update_info vtoc_attributes$set_dates 000172 local_sc_info vtoc_attributes$set_dates 000226 local_vtoce vtoc_attributes$set_dates 000526 msk vtoc_attributes$set_dates 000527 mxl vtoc_attributes$set_dates 000530 mxl_bits vtoc_attributes$set_dates 000531 ncd vtoc_attributes$set_dates 000532 need_vtoce vtoc_attributes$set_dates 000533 nid vtoc_attributes$set_dates 000534 priv_sw vtoc_attributes$set_dates 000535 pvid vtoc_attributes$set_dates 000536 pvtx vtoc_attributes$set_dates 000537 qt vtoc_attributes$set_dates 000540 qtype vtoc_attributes$set_dates 000541 sudelta vtoc_attributes$set_dates 000542 sws vtoc_attributes$set_dates 000543 uid vtoc_attributes$set_dates 000544 update vtoc_attributes$set_dates 000545 volid vtoc_attributes$set_dates 000550 vtocx vtoc_attributes$set_dates 000552 astep vtoc_attributes$set_dates 000554 sc_info vtoc_attributes$set_dates 000610 vtocep vtoc_attributes$set_dates 000636 vtoce_read GET_ASTE_VTOCE 000646 code FINISH 000647 code1 FINISH 000656 i ASTE_TO_VTOCE 000670 i VTOCE_TO_ASTE THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as call_ext_out return_mac ext_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dbm_man$set_incr deactivate get_pvtx lock$lock_ast lock$unlock_ast pc$update_incore_fms quotaw$cu search_ast$check setfaults vtoc_man$get_vtoce vtoc_man$put_vtoce THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dm_not_enabled error_table_$invalid_max_length error_table_$vtoce_connection_fail sst$dm_enabled LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 15 000020 164 000036 165 000040 167 000042 168 000050 171 000052 172 000054 174 000055 175 000057 177 000061 178 000062 180 000066 184 000072 186 000074 188 000076 194 000077 197 000117 198 000121 199 000126 201 000132 202 000140 205 000142 206 000144 208 000146 212 000161 215 000170 216 000173 217 000174 219 000214 222 000217 224 000221 226 000223 231 000224 234 000241 235 000247 238 000251 240 000254 241 000256 243 000260 244 000261 245 000264 246 000266 247 000272 248 000276 249 000302 250 000307 251 000314 252 000321 254 000330 256 000332 257 000334 258 000336 259 000337 261 000350 263 000355 264 000372 265 000400 266 000406 267 000407 268 000410 269 000412 272 000420 274 000422 276 000433 278 000441 280 000442 284 000443 287 000461 289 000464 290 000472 293 000474 294 000476 296 000501 297 000503 299 000505 300 000517 301 000525 302 000532 303 000541 304 000543 307 000551 309 000553 311 000564 313 000572 315 000573 323 000574 326 000606 327 000611 329 000616 330 000624 333 000626 334 000630 335 000631 337 000632 338 000634 340 000636 342 000640 343 000652 345 000660 346 000672 347 000675 350 000703 352 000705 354 000707 358 000710 361 000730 362 000733 363 000735 364 000737 366 000744 367 000752 370 000754 371 000756 373 000757 374 000761 376 000763 378 000767 380 000773 382 001002 384 001023 388 001026 390 001030 392 001032 396 001033 399 001045 400 001050 402 001052 405 001063 406 001065 409 001066 410 001074 413 001076 414 001100 416 001101 418 001103 421 001116 422 001127 424 001131 425 001136 426 001137 427 001140 430 001141 432 001143 434 001154 436 001165 440 001176 442 001200 444 001202 449 001203 452 001221 453 001224 455 001226 456 001234 459 001236 460 001240 461 001241 463 001242 464 001244 466 001246 467 001266 470 001304 472 001306 476 001307 479 001325 480 001330 482 001337 483 001345 486 001347 487 001351 488 001352 490 001353 491 001355 493 001357 494 001362 497 001374 499 001376 501 001400 505 001401 508 001413 509 001421 512 001423 514 001425 515 001427 517 001431 518 001434 521 001446 523 001450 525 001452 526 001455 529 001464 531 001466 535 001467 538 001505 539 001510 540 001512 542 001513 543 001521 546 001523 547 001525 549 001526 550 001530 552 001532 554 001534 556 001561 558 001606 560 001607 561 001615 565 001621 568 001625 570 001627 572 001631 577 001632 580 001644 582 001652 583 001660 586 001662 587 001672 589 001674 590 001676 592 001700 594 001711 596 001720 600 001736 602 001740 604 001742 608 001743 611 001755 613 001757 614 001765 617 001767 619 001771 620 001773 622 001775 624 002004 625 002006 627 002015 630 002017 632 002021 634 002023 635 002026 638 002030 640 002032 648 002033 653 002035 654 002036 655 002037 656 002040 657 002041 658 002042 659 002043 660 002046 661 002050 662 002052 663 002054 665 002070 698 002071 706 002073 707 002074 708 002075 710 002101 712 002103 713 002127 715 002133 718 002135 719 002142 720 002144 721 002164 723 002167 724 002174 725 002175 729 002176 731 002204 732 002211 733 002212 734 002236 736 002242 737 002244 738 002251 739 002253 740 002273 742 002276 743 002303 744 002304 748 002305 750 002313 751 002336 753 002341 755 002346 756 002347 758 002350 760 002354 761 002357 765 002360 768 002367 769 002371 773 002372 790 002373 800 002375 802 002377 805 002410 809 002437 813 002473 815 002502 817 002503 820 002512 822 002514 826 002515 832 002516 833 002522 834 002525 835 002527 836 002531 837 002536 838 002543 839 002550 840 002555 841 002562 842 002567 844 002574 846 002577 847 002604 848 002607 849 002616 850 002621 853 002627 857 002630 863 002631 865 002635 866 002640 867 002642 868 002645 869 002647 870 002651 871 002653 872 002660 873 002665 874 002672 875 002677 876 002704 877 002711 878 002716 879 002723 880 002726 882 002730 884 002733 885 002740 886 002743 887 002752 888 002755 889 002763 890 003001 891 003010 892 003011 894 003013 898 003014 901 003015 903 003017 905 003032 907 003036 908 003040 910 003042 915 003060 ----------------------------------------------------------- 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