COMPILATION LISTING OF SEGMENT !BBBJQkCqfFCmCZ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/16/86 0855.1 mst Wed Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* HISTORY COMMENTS: 8* 1) change(85-09-24,Elhard), approve(85-09-24,MCR7198), 9* audit(86-06-30,Weaver), install(86-07-16,MR12.0-1094): 10* Changed version number to 12, added bx_$caller and bx_$temp_bsegp 11* END HISTORY COMMENTS */ 12 13 /* BX_ - Static Segment for the Multics Binder. 14* Rewritten in CDS 12/16/76 by Noel I. Morris */ 15 /* Modified 8/16/77 by Melanie Weaver to add perprocess_static switch */ 16 /* Modified Oct 78 by David Spector to delete temp pointers and count */ 17 /* Modified Dec 78 by David Spector to make repatch table extensible */ 18 /* Version 10.2: 01/15/81, W. Olin Sibert: -force_order, -force_update, bind command warnings */ 19 /* Modified 5/25/82 by Melanie Weaver to increase addname limit */ 20 /* Modified 06/16/83 by Melanie Weaver to handle list template external variable initialization */ 21 /* Modified 11/03/83 by Melanie Weaver to change version for changes made by JMAthane in 1982 */ 22 /* Modified 11/15/84 by M. Sharpe to change version number */ 23 24 /* ****************************************************** 25* * * 26* * * 27* * Copyright (c) 1972 by Massachusetts Institute of * 28* * Technology and Honeywell Information Systems, Inc. * 29* * * 30* * * 31* ****************************************************** */ 32 33 34 /* format: style3,^indnoniterdo */ 35 bx_: 36 proc; 37 38 dcl 1 cdsa like cds_args auto aligned; 39 40 41 dcl Binder_Version_Name char (167) static options (constant) 42 init ("Multics Binder, Version 12 of Tuesday, March 26, 1985"); 43 dcl Binder_Version_Number 44 fixed bin static options (constant) init (12); 45 46 47 dcl 1 bx_text aligned auto, /* pure portion of bx_ */ 48 2 vers_name, /* ASCII version name, in ACC form */ 49 3 lth fixed bin (8) unal, 50 3 chr char (167) unal, 51 2 vers_number fixed bin, /* integer part of version number */ 52 2 size fixed bin, /* size of main data base, for resetting */ 53 2 snt_limit fixed bin, /* preset limit for segname table */ 54 2 oddname_limit fixed bin, /* preset limit for oddname table */ 55 2 stringmap_limit fixed bin, /* preset limit for stringmap table */ 56 2 addname_limit fixed bin; /* preset limit for addname table */ 57 58 59 dcl 1 bx_link aligned auto, /* internal static portion of bx_ */ 60 2 area_begin bit (0) unal, /* beginning of main data base */ 61 2 ctp pointer, /* pointer to component table */ 62 2 freep pointer, /* pointer to beginning of free area */ 63 2 isp pointer, /* pointer to first insym table */ 64 2 inpp pointer, /* pointer to binder's input structure */ 65 2 bsegp pointer, /* pointer to base of new object segment */ 66 2 temp_bsegp ptr, /* pointer to temporary bound seg (in [pd]) */ 67 2 temp pointer, /* pointer to threaded temp segments */ 68 2 optp pointer, /* pointer to options table */ 69 2 odnp pointer, /* pointer to oddname table */ 70 2 first_rptp pointer, /* pointer to first chunk of repatch table */ 71 2 last_rptp pointer, /* pointer to current chunk of repatch table */ 72 2 adnp pointer, /* pointer to addname table */ 73 2 bindmap_def pointer, /* pointer to new object's "bind_map" definition */ 74 2 bdefp pointer, /* pointer to new object's definition section */ 75 2 bstatp pointer, /* pointer to new object's static section */ 76 2 blnkp pointer, /* pointer to new object's linkage section */ 77 2 bsymp pointer, /* pointer to new object's symbol section */ 78 2 sntp pointer, /* pointer to segname table */ 79 2 tdefp pointer, /* pointer to temporary new definition section */ 80 2 tintp pointer, /* pointer to temporary new internal static */ 81 2 tlinkp pointer, /* pointer to temporary new linkage section */ 82 2 strmp pointer, /* pointer to stringmap table */ 83 2 n_firstrefs fixed bin, /* ptr to comp tbl for seg with frt */ 84 2 bound_segname char (32) aligned, /* name of new bound object */ 85 2 caller char (32) aligned, /* name of calling program */ 86 2 fatal_error fixed bin, /* 1 -> fatal error was detected */ 87 2 bseg_acinfop pointer, /* new object's acinfop for "tssi_" */ 88 2 bseg_bitcount fixed bin (24), /* new object's bitcount */ 89 2 o_lng fixed bin (19), /* length of new bound object */ 90 2 t_lng fixed bin (18), /* length of new text section */ 91 2 d_lng fixed bin (18), /* length of new definition section */ 92 2 i_lng fixed bin, /* length of new static section */ 93 2 l_lng fixed bin, /* length of new linkage section */ 94 2 s_lng fixed bin (18), /* length of new symbol section */ 95 2 addname fixed bin, /* 1 -> addname option specified */ 96 2 debug fixed bin, /* 1 -> debug option was specified */ 97 2 brief fixed bin, /* 1 -> brief option was specified */ 98 2 force_order fixed bin, /* 1 -> -force_order specified on command line */ 99 2 has_sep_stat fixed bin, /* 1 -> a comp has nonzero sep static */ 100 2 has_comb_stat fixed bin, /* 1 -> a comp has nonzero compined static */ 101 2 bound_sep_stat fixed bin, /* 1 -> bound segment has separate static */ 102 2 perprocess_static 103 fixed bin, /* 1 -> bound seg has perprocess static switch on */ 104 2 standard fixed bin, /* 1 -> bound seg is in standard format */ 105 2 bproc fixed bin, /* 1 -> at least one component is a procedure */ 106 2 textlng fixed bin (18), /* length of new pure text portion */ 107 2 curdeflng fixed bin (18), /* current length of new definition section */ 108 2 tintlng fixed bin, /* current length of new internal static */ 109 2 maxlinklng fixed bin, /* maximum size linkage section may attain */ 110 2 maxdeflng fixed bin (18), /* maximum size definitions section may attain */ 111 2 tlinklng fixed bin, /* current size of linkage section */ 112 2 ncomp fixed bin, /* number of component objects to be bound */ 113 2 v_lng fixed bin, /* length of version name string */ 114 2 n_lng fixed bin, /* length of bound segment name string */ 115 2 nsymdefs fixed bin, /* count of non-null symbol definitions */ 116 2 nsegdefs fixed bin; /* count of non-null segment name definitions */ 117 118 119 dcl code fixed bin (35), 120 create_data_segment_ 121 entry (ptr, fixed bin (35)), 122 com_err_ entry options (variable); 123 124 dcl (addr, length, null, size, string, unspec) 125 builtin; 126 127 128 129 unspec (bx_text) = "0"b; /* Clear data bases. */ 130 unspec (bx_link) = "0"b; 131 132 vers_name.lth = length (Binder_Version_Name); 133 vers_name.chr = Binder_Version_Name; 134 vers_number = Binder_Version_Number; 135 bx_text.size = size (bx_link); 136 snt_limit = 900; 137 oddname_limit = 256; 138 stringmap_limit = 2048; 139 addname_limit = 250; 140 141 ctp, freep, isp, inpp, bsegp, temp_bsegp, optp, odnp, first_rptp, last_rptp, adnp, bindmap_def, bdefp, bstatp, 142 blnkp, bsymp, sntp, tdefp, tintp, tlinkp, strmp, bseg_acinfop = null (); 143 144 n_firstrefs = 0; 145 146 147 cdsa.sections (1).p = addr (bx_text); 148 cdsa.sections (1).len = size (bx_text); 149 cdsa.sections (1).struct_name = "bx_text"; 150 151 cdsa.sections (2).p = addr (bx_link); 152 cdsa.sections (2).len = size (bx_link); 153 cdsa.sections (2).struct_name = "bx_link"; 154 155 cdsa.seg_name = "bx_"; 156 157 cdsa.num_exclude_names = 0; 158 159 string (cdsa.switches) = "0"b; 160 cdsa.switches.have_text = "1"b; 161 cdsa.switches.have_static = "1"b; 162 163 call create_data_segment_ (addr (cdsa), code); 164 165 if code ^= 0 166 then call com_err_ (code, "bx_", ""); 167 168 return; 169 170 1 1 /* BEGIN INCLUDE FILE cds_args.incl.pl1 */ 1 2 1 3 dcl 1 cds_args based aligned, 1 4 2 sections (2), 1 5 3 p ptr, /* pointer to data for text/static section */ 1 6 3 len fixed bin (18), /* size of text/static section */ 1 7 3 struct_name char (32), /* name of declared structure for this section */ 1 8 2 seg_name char (32), /* name to create segment by */ 1 9 2 num_exclude_names fixed bin, /* number of names in exclude array */ 1 10 2 exclude_array_ptr ptr, /* pointer to array of exclude names */ 1 11 2 switches, /* control switches */ 1 12 3 defs_in_link bit (1) unal, /* says put defs in linkage */ 1 13 3 separate_static bit (1) unal, /* says separate static section is wanted */ 1 14 3 have_text bit (1) unal, /* ON if text section given */ 1 15 3 have_static bit (1) unal, /* ON if static section given */ 1 16 3 pad bit (32) unal; 1 17 1 18 dcl exclude_names (1) char (32) based; /* pointed to be cds_args.exclude_array_ptr */ 1 19 1 20 /* END INCLUDE FILE cds_args.incl.pl1 */ 171 172 173 end bx_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/16/86 0846.3 !BBBJQkCqfFCmCZ.pl1 >spec>install>1094>bx_.cds 171 1 04/01/76 2209.5 cds_args.incl.pl1 >ldd>include>cds_args.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. Binder_Version_Name 000000 constant char(167) initial unaligned dcl 41 ref 132 133 Binder_Version_Number 000240 constant fixed bin(17,0) initial dcl 43 ref 134 addname_limit 57 000145 automatic fixed bin(17,0) level 2 dcl 47 set ref 139* addr builtin function dcl 124 ref 147 151 163 163 adnp 26 000226 automatic pointer level 2 dcl 59 set ref 141* bdefp 32 000226 automatic pointer level 2 dcl 59 set ref 141* bindmap_def 30 000226 automatic pointer level 2 dcl 59 set ref 141* blnkp 36 000226 automatic pointer level 2 dcl 59 set ref 141* bseg_acinfop 76 000226 automatic pointer level 2 dcl 59 set ref 141* bsegp 10 000226 automatic pointer level 2 dcl 59 set ref 141* bstatp 34 000226 automatic pointer level 2 dcl 59 set ref 141* bsymp 40 000226 automatic pointer level 2 dcl 59 set ref 141* bx_link 000226 automatic structure level 1 dcl 59 set ref 130* 135 151 152 bx_text 000145 automatic structure level 1 dcl 47 set ref 129* 147 148 cds_args based structure level 1 dcl 1-3 cdsa 000100 automatic structure level 1 dcl 38 set ref 163 163 chr 0(09) 000145 automatic char(167) level 3 packed unaligned dcl 47 set ref 133* code 000362 automatic fixed bin(35,0) dcl 119 set ref 163* 165 165* com_err_ 000014 constant entry external dcl 119 ref 165 create_data_segment_ 000012 constant entry external dcl 119 ref 163 ctp 000226 automatic pointer level 2 dcl 59 set ref 141* first_rptp 22 000226 automatic pointer level 2 dcl 59 set ref 141* freep 2 000226 automatic pointer level 2 dcl 59 set ref 141* have_static 44(03) 000100 automatic bit(1) level 3 packed unaligned dcl 38 set ref 161* have_text 44(02) 000100 automatic bit(1) level 3 packed unaligned dcl 38 set ref 160* inpp 6 000226 automatic pointer level 2 dcl 59 set ref 141* isp 4 000226 automatic pointer level 2 dcl 59 set ref 141* last_rptp 24 000226 automatic pointer level 2 dcl 59 set ref 141* len 2 000100 automatic fixed bin(18,0) array level 3 dcl 38 set ref 148* 152* length builtin function dcl 124 ref 132 lth 000145 automatic fixed bin(8,0) level 3 packed unaligned dcl 47 set ref 132* n_firstrefs 54 000226 automatic fixed bin(17,0) level 2 dcl 59 set ref 144* null builtin function dcl 124 ref 141 num_exclude_names 40 000100 automatic fixed bin(17,0) level 2 dcl 38 set ref 157* oddname_limit 55 000145 automatic fixed bin(17,0) level 2 dcl 47 set ref 137* odnp 20 000226 automatic pointer level 2 dcl 59 set ref 141* optp 16 000226 automatic pointer level 2 dcl 59 set ref 141* p 000100 automatic pointer array level 3 dcl 38 set ref 147* 151* sections 000100 automatic structure array level 2 dcl 38 seg_name 30 000100 automatic char(32) level 2 dcl 38 set ref 155* size 53 000145 automatic fixed bin(17,0) level 2 in structure "bx_text" dcl 47 in procedure "bx_" set ref 135* size builtin function dcl 124 in procedure "bx_" ref 135 148 152 snt_limit 54 000145 automatic fixed bin(17,0) level 2 dcl 47 set ref 136* sntp 42 000226 automatic pointer level 2 dcl 59 set ref 141* string builtin function dcl 124 set ref 159* stringmap_limit 56 000145 automatic fixed bin(17,0) level 2 dcl 47 set ref 138* strmp 52 000226 automatic pointer level 2 dcl 59 set ref 141* struct_name 3 000100 automatic char(32) array level 3 dcl 38 set ref 149* 153* switches 44 000100 automatic structure level 2 dcl 38 set ref 159* tdefp 44 000226 automatic pointer level 2 dcl 59 set ref 141* temp_bsegp 12 000226 automatic pointer level 2 dcl 59 set ref 141* tintp 46 000226 automatic pointer level 2 dcl 59 set ref 141* tlinkp 50 000226 automatic pointer level 2 dcl 59 set ref 141* unspec builtin function dcl 124 set ref 129* 130* vers_name 000145 automatic structure level 2 dcl 47 vers_number 52 000145 automatic fixed bin(17,0) level 2 dcl 47 set ref 134* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. exclude_names based char(32) array unaligned dcl 1-18 NAME DECLARED BY EXPLICIT CONTEXT. bx_ 000065 constant entry external dcl 35 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 312 330 241 322 Length 2472 241 16 2125 50 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bx_ 268 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bx_ 000100 cdsa bx_ 000145 bx_text bx_ 000226 bx_link bx_ 000362 code bx_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ create_data_segment_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000064 129 000072 130 000075 132 000100 133 000102 134 000105 135 000107 136 000111 137 000113 138 000115 139 000117 141 000121 144 000150 147 000151 148 000153 149 000155 151 000160 152 000162 153 000164 155 000167 157 000172 159 000173 160 000174 161 000176 163 000200 165 000212 168 000237 Object Segment >spec>install>1094>bx_ Created on 07/16/86 0855.2 mst Wed by GJohnson.SysMaint.a using create_data_segment_, Version II of Thursday, May 22, 1986 Object Text Defs Link Symb Static Start 0 0 60 636 1002 646 Length 1232 60 556 144 214 134 65 Definitions: segname: bx_ link|117 addname text|57 addname_limit link|36 adnp link|10 area_begin link|42 bdefp link|40 bindmap_def link|46 blnkp link|65 bound_segname link|125 bound_sep_stat link|130 bproc link|121 brief link|106 bseg_acinfop link|110 bseg_bitcount link|20 bsegp link|44 bstatp link|50 bsymp link|75 caller link|10 ctp link|132 curdeflng link|113 d_lng link|120 debug link|105 fatal_error link|32 first_rptp link|122 force_order link|12 freep link|124 has_comb_stat link|123 has_sep_stat link|114 i_lng link|16 inpp link|14 isp link|115 l_lng link|34 last_rptp link|135 maxdeflng link|134 maxlinklng link|64 n_firstrefs link|141 n_lng link|137 ncomp link|143 nsegdefs link|142 nsymdefs link|111 o_lng text|55 oddname_limit link|30 odnp link|26 optp link|126 perprocess_static link|116 s_lng text|53 size text|54 snt_limit link|52 sntp link|127 standard text|56 stringmap_limit link|62 strmp symb|0 symbol_table link|112 t_lng link|54 tdefp link|24 temp link|22 temp_bsegp link|131 textlng link|133 tintlng link|56 tintp link|136 tlinklng link|60 tlinkp link|140 v_lng text|0 vers_name text|52 vers_number No Links. ----------------------------------------------------------- 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