THIS FILE IS DAMAGED COMPILATION LISTING OF SEGMENT regenerate_all_links_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/16/86 0854.0 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(85-09-24,Elhard), approve(85-09-24,MCR7198), 14* audit(86-06-30,Weaver), install(86-07-16,MR12.0-1094): 15* Rewritten to regenerate any *system links remaining unresolved in the 16* link_regeneration_table rather than all links in the linkage section. 17* END HISTORY COMMENTS */ 18 19 20 /* format: style3,^indnoniterdo */ 21 22 regenerate_all_links_: 23 proc (ctep); 24 25 /**********************************************************************/ 26 /* */ 27 /* Name: regenerate_all_links_ */ 28 /* Input: ctep (component table entry pointer) */ 29 /* Function: scans the link_regeneration_table for the given */ 30 /* component and regenerates any link that has not */ 31 /* already been regenerated. This is primarily used */ 32 /* to pick up unreferenced *system links for fortran */ 33 /* block_data subprograms. */ 34 /* Output: none */ 35 /* */ 36 /**********************************************************************/ 37 38 dcl i fixed bin; 39 dcl extp ptr; 40 dcl addr builtin; 41 dcl fixed builtin; 42 dcl decode_link_ entry (ptr) returns (bit (1) aligned); 43 dcl ext_link_ entry (ptr); 44 45 dcl 1 ext aligned like external_ref; /* */ 1 1 1 2 /* the following is include file extref.incl.pl1 */ 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(85-09-24,Elhard), approve(85-09-24,MCR7198), 1 7* audit(86-06-30,Weaver), install(86-07-16,MR12.0-1094): 1 8* changed to be a complete structure rather than a starting with a level 2 1 9* variable. 1 10* END HISTORY COMMENTS */ 1 11 1 12 declare 1 external_ref aligned based, 1 13 2 compent_ptr pointer, /* pointer to referencing component's entry */ 1 14 2 ref_ptr pointer, /* pointer to referencing textword */ 1 15 2 offset fixed bin(18), /* offset of referencing instruction in text */ 1 16 2 side char(3) aligned, /* 'rhe' or 'lhe' for referencing halfword */ 1 17 2 relinfo char(8) aligned, /* symbolic relocation information */ 1 18 2 section char(4) aligned, /* referencing section of object */ 1 19 2 loffset fixed bin, /* link's offset in linkage section */ 1 20 2 segname char(33) aligned, /* segname part of external name */ 1 21 2 slng fixed bin, /* length of preceeding ACC string (incl count) */ 1 22 2 entryname char(257) aligned, /* entry part of external name */ 1 23 2 elng fixed bin, /* length of preceeding ACC string (incl count) */ 1 24 2 type bit(18) unaligned, /* type of link */ 1 25 2 trap bit(18) unaligned, /* trap before link if non-zero */ 1 26 2 expr bit(18) unaligned, /* the expression value */ 1 27 2 code15 bit(18) unaligned, /* if type of link is 1 or 5, this is th@Šñˆ\Û Íàý°¡&rTž¶ @=LÿÿÿÿSñ¹Ý´™ÿ&H‚ &ÚzŠñˆ\Ò&Šñˆ_Lgízz¶Äar,Attendees Šñˆ_RyÒ¿Ûî2®ÿ’Ž¬¶ÄaŠñˆ\¬6Ä*@Šñˆ_ЖMQuintin Šñˆ\¤>*@€Šñˆ_ÐSmith Šñˆ\¬6Multics Šñˆ\r&ŠñˆHE€Ë;ÚÚ¶ÄaÒTransactions ŠñˆHEº‡ÂŸzŒP’øø¶ÄaŠñˆ\*@ŠñˆHL®T*@€Šñˆ_Ò&ŠñˆGE€Ë;¶Äa.Proceedings.1 ŠñˆGEº„Û Í’..¶ÄaŠñˆ\*@ŠñˆG˜ž*@Šñˆ_–îElliott Šñˆ\–¶*@ÀŠñˆ_îANeal Šñˆ\x–j*@Šñˆ_€üEngAdmin Šñˆ\Žb€*@Šñˆ_ LSTDSPPT Šñˆ\Èx¬*@Šñˆ_ >Hussein Šñˆ\®æÐ*@€Šñˆ_LÄNMLPROD Šñˆ\üžDEVM Šñˆ\ÞŽº*@Šñˆ_¶ Samanani Šñˆ\pÈb*@Šñˆ_¤x *@€Šñˆ_>TDickson Šñˆ\jºDPS-E Šñˆ\bTolts Šñˆ\6.ü*@Šñˆ_b€SiteSA Šñˆ\D *@Šñˆ_Ä€MSGD Šñˆ\.Z *@Šñˆ_€¬PLASTICS Šñˆ\Dp6*@Šñˆ_  TOBSWE Šñˆ\ZÞL*@Šñˆ_掖*@€Šñˆ_6jGuest Šñˆ\xî*@Šñˆ_bL€*@Šñˆ_ºCDC Šñˆ\˜*@Šñˆ_ALWAYS BE LAST IN STRUCTURE ***/ 2 61 2 62 2 63 49 50 51 /* */ 3 1 /* BEGIN INCLUDE FILE linkdcl.incl.pl1 --- last modified 15 Nov 1971 by C Garman */ 3 2 3 3 /* Last Modified (Date and Reason): 3 4* 6/75 by M.Weaver to add virgin_linkage_header declaration 3 5* 6/75 by S.Webber to comment existing structures better 3 6* 9/77 by M. Weaver to add run_depth to link 3 7* 2/83 by M. Weaver to add linkage header flags and change run_depth precision 3 8**/ 3 9 3 10 /* format: style3 */ 3 11 dcl 1 link based aligned, /* link pair in linkage section */ 3 12 2 head_ptr bit (18) unal, /* rel pointer to beginning of linkage section */ 3 13 2 ringno bit (3) unal, 3 14 2 mbz bit (6) unal, 3 15 2 run_depth fixed bin (2) unal, /* run unit depth, filled when link is snapped */ 3 16 2 ft2 bit (6) unal, /* fault tag. 46(8) if not snapped, 43(8) if snapped */ 3 17 2 exp_ptr bit (18) unal, /* pointer (rel to defs) of expression word */ 3 18 2 mbz2 bit (12) unal, 3 19 2 modifier bit (6) unal; /* modifier to be left in snapped link */ 3 20 3 21 dcl 1 exp_word based aligned, /* expression word in link definition */ 3 22 2 type_ptr bit (18) unal, /* pointer (rel to defs) of type pair structure */ 3 23 2 exp bit (18) unal; /* constant expression to be added in when snapping link */ 3 24 3 25 dcl 1 type_pair based aligned, /* type pair in link definition */ 3 26 2 type bit (18) unal, /* type of link. may be 1,2,3,4,5, or 6 */ 3 27 2 trap_ptr bit (18) unal, /* pointer (rel to defs) to the trap word */ 3 28 2 seg_ptr bit (18) unal, /* pointer to ACC reference name for segment referenced */ 3 29 2 ext_ptr bit (18) unal; /* pointer (rel to defs) of ACC segdef name */ 3 30 3 31 dcl 1 header based aligned, /* linkage block header */ 3 32 2 def_ptr ptr, /* pointer to definition section */ 3 33 2 symbol_ptr ptr unal, /* pointer to symbol section in object segment */ 3 34 2 original_linkage_ptr 3 35 ptr unal, /* pointer to linkage section in object segment */ 3 36 2 unused bit (72), 3 37 2 stats, 3 38 3 begin_links bit (18) unal, /* offset (rel to this section) of first link */ 3 39 3 block_length bit (18) unal, /* number of words in this linkage section */ 3 40 3 segment_number 3 41 bit (18) unal, /* text segment number associated with this section */ 3 42 3 static_length bit (18) unal; /* number of words of static for this segment */ 3 43 3 44 dcl 1 linkage_header_flags 3 45 aligned based, /* overlay of def_ptr for flags */ 3 46 2 pad1 bit (28) unaligned, /* flags are in first word */ 3 47 2 static_vlas bit (1) unaligned, /* static section "owns" some LA/VLA segments */ 3 48 2 perprocess_static 3 49 bit (1) unaligned, /* 1 copy of static section is used by all tasks/run units */ 3 50 2 pad2 bit (6) unaligned; 3 51 3 52 dcl 1 virgin_linkage_header 3 53 aligned based, /* template for linkage header in object segment */ 3 54 2 pad bit (30) unaligned, /* is filled in by linker */ 3 55 2 defs_in_link bit (6) unaligned, /* =o20 if defs in linkage (nonstandard) */ 3 56 2 def_offset bit (18) unaligned, /* offset of definition section */ 3 57 2 first_ref_relp bit (18) unaligned, /* offset of trap-at-first-reference offset array */ 3 58 2 filled_in_later bit (144), 3 59 2 link_begin bit (18) unaligned, /* offset of first link */ 3 60 2 linkage_section_lng 3 61 bit (18) unaligned, /* length of linkage section */ 3 62 2 segno_pad bit (18) unaligned, /* will be segment number of copied linkage */ 3 63 2 static_length bit (18) unaligned; /* length of static section */ 3 64 3 65 3 66 dcl 1 trap_word based aligned, /* trap word in link definition */ 3 67 2 call_ptr bit (18) unal, /* pointer (rel to link) of link to trap procedure */ 3 68 2 arg_ptr bit (18) unal; /* pointer (rel to link) of link to arg info for trap proc */ 3 69 3 70 dcl 1 name based aligned, /* storage of ASCII names in definitions */ 3 71 2 nchars bit (9) unaligned, /* number of characters in name */ 3 72 2 char_string char (31) unaligned; /* 31-character name */ 3 73 3 74 /* END INCLUDE FILE linkdcl.incl.pl1 */ 52 53 54 /* */ 4 1 /* Include file bndtbl.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(85-09-24,Elhard), approve(85-09-24,MCR7198), 4 6* audit(86-06-30,Weaver), install(86-07-16,MR12.0-1094): 4 7* Added link_regeneration_table and eliminated the use of "p" as a pointer 4 8* to base structures on.. 4 9* END HISTORY COMMENTS */ 4 10 4 11 /* DIVERSE BINDER TABLES */ 4 12 4 13 /* Modified Oct 1978 by David Spector for hash coding snt and strm */ 4 14 /* Modified Dec 1978 by David Spector for making repatch table 4 15* automatically extensible */ 4 16 4 17 declare (sntp, adnp, odnp, rptp, rptep, strmp, lrtp) pointer; 4 18 4 19 /* The SEGNAME table - segnames and synonyms of all components */ 4 20 4 21 declare 1 snt aligned based(sntp), 4 22 2 hash_table (0:210) unaligned ptr, /* prime length */ 4 23 2 max_size fixed bin, /* size limit of allocated segname table */ 4 24 2 n_names fixed bin, /* number of segname-table entries used */ 4 25 2 entry(1000) like seg; 4 26 4 27 /* declaration of a SEGNAME entry */ 4 28 4 29 declare 1 seg aligned based, /* redeclaration of a single segname */ 4 30 2 name char(33) aligned, /* segname in ACC string format */ 4 31 2 lng fixed bin, /* length of segname, incl ACC count */ 4 32 2 addname fixed bin, /* 1-> add name to bound segment */ 4 33 2 defrel bit(18), /* offset in defs of new definition */ 4 34 2 comp pointer, /* pointer to associated component table */ 4 35 2 hash_thread ptr; /* thread to next "seg" in bucket */ 4 36 4 37 4 38 /* the ADDNAME table - list of names specified by "Addname" statement */ 4 39 4 40 declare 1 an aligned based(adnp), 4 41 2 max_size fixed bin, /* size limit of addname table */ 4 42 2 n_an fixed bin, /* number of names to add */ 4 43 2 syn(1000) char(32) aligned; /* contains the names to be added */ 4 44 4 45 4 46 /* The ODDNAME table - scratchpad memory to suppress redundant error messages */ 4 47 4 48 declare 1 od aligned based(odnp), 4 49 2 max_size fixed bin, /* max size of table */ 4 50 2 n_odds fixed bin, /* current size of table */ 4 51 2 entry(1000), 4 52 3 name char(289) aligned; 4 53 4 54 4 55 /* The REPATCH table - of halfwords to be relocated at a later time */ 4 56 4 57 declare 1 rpt aligned based(rptp), 4 58 2 thread unaligned ptr, /* To next rpt (null at end) */ 4 59 2 npt fixed bin, 4 60 2 entry(1000) like rpte aligned; 4 61 4 62 4 63 declare 1 rpte aligned based(rptep), /* declaration of single repatch table entry */ 4 64 2 poffset bit(18) unaligned, /* offset into text of word to be patched */ 4 65 2 pexpr bit(18) unaligned, /* value to add to patched halfword */ 4 66 2 halfword char(3) aligned, /* designates wordhalf to be patched */ 4 67 2 pbase char(1) unaligned, /* section designator of word to be patched */ 4 68 2 code char(1) unaligned; /* code of section base to be used as patch value */ 4 69 4 70 4 71 /* The STRINGMAP table - to avoid redundant strings in definition section */ 4 72 4 73 declare 1 strm aligned based(strmp), 4 74 2 hash_table (0:862) fixed bin(17), /* prime length */ 4 75 2 max_size fixed bin, 4 76 2 nstr fixed bin, 4 77 2 entry(2048) unaligned, 4 78 3 map bit(18), /* rel pointer to string in def section */ 4 79 3 hash_thread fixed bin(17); /* index of next strm.entry in hash bucket */ 4 80 4 81 /* The LINK_REGENERATION table - to flag links which have and */ 4 82 /* have not been regenerated to insure generation of all links */ 4 83 4 84 declare 1 lrt aligned based (lrtp), 4 85 2 count fixed bin, 4 86 2 start_offset fixed bin (18) unsigned, 4 87 2 regenerated (0 refer (lrt.count)) 4 88 bit (18) unaligned; 4 89 4 90 declare UNRESOLVED bit (18) static options (constant) init ("000000"b3); 4 91 declare INTERNALLY_RESOLVED bit (18) static options (constant) init ("777777"b3); 55 56 57 /* */ 58 extp = addr (ext); 59 lrtp = comp.clrtp; 60 ext.compent_ptr = ctep; 61 ext.section = "none"; 62 ext.offset = 0; 63 ext.dont_relocate = "1"b; 64 ext.ref_ptr = comp.clnkp; /* initialize so ext_link_ won't blow up */ 65 66 do i = 1 to lrt.count; 67 if lrt.regenerated (i) = UNRESOLVED 68 then do; 69 ext.loffset = lrt.start_offset + ((i - 1) * 2); 70 if ^decode_link_ (extp) 71 then if (fixed (ext.type, 18) = 5) & (fixed (ext.code15, 18) = 5) 72 then call ext_link_ (extp); 73 end; 74 end; 75 76 end regenerate_all_links_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/16/86 0846.6 regenerate_all_links_.pl1 >spec>install>1094>regenerate_all_links_.pl1 46 1 07/16/86 0845.6 extref.incl.pl1 >spec>install>1094>extref.incl.pl1 49 2 07/16/86 0845.6 comptbl.incl.pl1 >spec>install>1094>comptbl.incl.pl1 52 3 07/27/83 0910.0 linkdcl.incl.pl1 >ldd>include>linkdcl.incl.pl1 55 4 07/16/86 0845.5 bndtbl.incl.pl1 >spec>install>1094>bndtbl.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. UNRESOLVED constant bit(18) initial unaligned dcl 4-90 ref 67 addr builtin function dcl 40 ref 58 clnkp 22 based pointer level 2 dcl 2-16 ref 64 clrtp 40 based pointer level 2 dcl 2-16 ref 59 code15 127(18) 000104 automatic bit(18) level 2 packed unaligned dcl 45 set ref 70 comp based structure level 1 dcl 2-16 compent_ptr 000104 automatic pointer level 2 dcl 45 set ref 60* count based fixed bin(17,0) level 2 dcl 4-84 ref 66 ctep parameter pointer dcl 2-10 ref 22 59 60 64 decode_link_ 000010 constant entry external dcl 42 ref 70 dont_relocate 130(07) 000104 automatic bit(1) level 2 packed unaligned dcl 45 set ref 63* ext 000104 automatic structure level 1 dcl 45 set ref 58 ext_link_ 000012 constant entry external dcl 43 ref 70 external_ref based structure level 1 dcl 1-12 extp 000102 automatic pointer dcl 39 set ref 58* 70* 70* fixed builtin function dcl 41 ref 70 70 i 000100 automatic fixed bin(17,0) dcl 38 set ref 66* 67 69* loffset 11 000104 automatic fixed bin(17,0) level 2 dcl 45 set ref 69* lrt based structure level 1 dcl 4-84 lrtp 000240 automatic pointer dcl 4-17 set ref 59* 66 67 69 offset 4 000104 automatic fixed bin(18,0) level 2 dcl 45 set ref 62* ref_ptr 2 000104 automatic pointer level 2 dcl 45 set ref 64* regenerated 2 based bit(18) array level 2 packed unaligned dcl 4-84 ref 67 rpte based structure level 1 dcl 4-63 section 10 000104 automatic char(4) level 2 dcl 45 set ref 61* seg based structure level 1 dcl 4-29 start_offset 1 based fixed bin(18,0) level 2 unsigned dcl 4-84 ref 69 type 126 000104 automatic bit(18) level 2 packed unaligned dcl 45 set ref 70 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. INTERNALLY_RESOLVED internal static bit(18) initial unaligned dcl 4-91 adnp automatic pointer dcl 4-17 an based structure level 1 dcl 4-40 comp_tbl based pointer array dcl 2-12 ctp automatic pointer dcl 2-10 exp_word based structure level 1 dcl 3-21 header based structure level 1 dcl 3-31 link based structure level 1 dcl 3-11 linkage_header_flags based structure level 1 dcl 3-44 name based structure level 1 dcl 3-70 od based structure level 1 dcl 4-48 odnp automatic pointer dcl 4-17 rpt based structure level 1 dcl 4-57 rptep automatic pointer dcl 4-17 rptp automatic pointer dcl 4-17 snt based structure level 1 dcl 4-21 sntp automatic pointer dcl 4-17 strm based structure level 1 dcl 4-73 strmp automatic pointer dcl 4-17 trap_word based structure level 1 dcl 3-66 type_pair based structure level 1 dcl 3-25 virgin_linkage_header based structure level 1 dcl 3-52 NAME DECLARED BY EXPLICIT CONTEXT. regenerate_all_links_ 000006 constant entry external dcl 22 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 160 174 114 170 Length 426 114 14 216 44 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME regenerate_all_links_ 170 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME regenerate_all_links_ 000100 i regenerate_all_links_ 000102 extp regenerate_all_links_ 000104 ext regenerate_all_links_ 000240 lrtp regenerate_all_links_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. decode_link_ ext_link_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000003 58 000013 59 000015 60 000022 61 000023 62 000025 63 000026 64 000030 66 000034 67 000043 69 000051 70 000056 74 000111 76 000113 ----------------------------------------------------------- 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