COMPILATION LISTING OF SEGMENT component_info_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1803.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* ****************************************************** 8* * * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* * * 14* ****************************************************** */ 15 16 /* The procedure component_info_ finds and returns object information about a component of a bound segment. */ 17 /* coded 4/26/72 by M. Weaver */ 18 19 name: proc(segptr, compname, argptr, code); 20 /* this entry locates the component by its name */ 21 22 23 declare (segptr, argptr, bmp, sblkp, p, objp) pointer; 24 25 declare (j, k, offset) fixed bin(18); 26 declare code fixed bin(35); 27 declare (type, i, namsw) fixed bin; 28 declare error_table_$name_not_found ext fixed bin(35); 29 declare bitcount fixed bin(24); 30 31 declare (addr, addrel, bin, bit, divide, fixed, ptr, rel, substr) builtin; 32 33 declare var_string char(j) based(p); 34 declare string char(100000) based(sblkp); 35 declare compname char(32) aligned; 36 37 declare hcs_$status_mins ext entry(ptr, fixed bin, fixed bin(24), fixed bin(35)); 38 declare get_bound_seg_info_ ext entry( ptr, fixed bin(24), ptr, ptr, ptr, fixed bin(35)); 39 40 /* */ 41 1 1 /* BEGIN INCLUDE SEGMENT ... bind_map.incl.pl1 Michael J. Spier, 4/29/71 */ 1 2 /* last modified April, 1972 by M. Weaver */ 1 3 1 4 declare 1 bindmap aligned based(bmp), 1 5 1 6 2 dcl_version fixed bin, /* version number of this structure = 1 */ 1 7 2 n_components fixed bin, /* number of entries in this array */ 1 8 2 component(0 refer(bindmap.n_components)) aligned, 1 9 3 name, /* objectname of component object */ 1 10 4 name_ptr bit(18) unaligned, /* pointer to name string */ 1 11 4 name_lng bit(18) unaligned, /* length of name string */ 1 12 3 comp_name char(8) aligned, /* name of component's compiler */ 1 13 3 text_start bit(18) unaligned, /* text section relocation counter */ 1 14 3 text_lng bit(18) unaligned, /* length of text section */ 1 15 3 stat_start bit(18) unaligned, /* internal static relocation counter */ 1 16 3 stat_lng bit(18) unaligned, /* length of internal static */ 1 17 3 symb_start bit(18) unaligned, /* symbol section relocation counter */ 1 18 3 symb_lng bit(18) unaligned, /* length of symbol section */ 1 19 3 defblock_ptr bit(18) unaligned, /* pointer to components definition block */ 1 20 3 n_blocks bit(18) unaligned, /* number of symbol blocks the component has */ 1 21 2 bf_name aligned, /* name of bindfile */ 1 22 3 bf_name_ptr bit(18) unaligned, /* pointer to name string */ 1 23 3 bf_name_lng bit(18) unaligned, /* length of name string */ 1 24 2 bf_date_up char(24), /* date updated in archive */ 1 25 2 bf_date_mod char(24); /* date last modified */ 1 26 1 27 /* END INCLUDE SEGMENT ... bind_map.incl.pl1 */ 42 43 44 /* */ 45 46 declare 1 oi aligned like object_info; 47 2 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 2 2*coded February 8, 1972 by Michael J. Spier */ 2 3 /* modified May 26, 1972 by M. Weaver */ 2 4 /* modified 15 April, 1975 by M. Weaver */ 2 5 2 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 2 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 2 8 2 textp pointer, /* pointer to beginning of text section */ 2 9 2 defp pointer, /* pointer to beginning of definition section */ 2 10 2 linkp pointer, /* pointer to beginning of linkage section */ 2 11 2 statp pointer, /* pointer to beginning of static section */ 2 12 2 symbp pointer, /* pointer to beginning of symbol section */ 2 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 2 14 2 tlng fixed bin, /* length in words of text section */ 2 15 2 dlng fixed bin, /* length in words of definition section */ 2 16 2 llng fixed bin, /* length in words of linkage section */ 2 17 2 ilng fixed bin, /* length in words of static section */ 2 18 2 slng fixed bin, /* length in words of symbol section */ 2 19 2 blng fixed bin, /* length in words of break map */ 2 20 2 format, /* word containing bit flags about object type */ 2 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 2 22 3 bound bit(1) unaligned, /* on if segment is bound */ 2 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 2 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 2 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 2 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 2 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 2 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 2 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 2 30 3 pad bit(27) unaligned, 2 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 2 32 2 textlinkp pointer, /* ptr to first link in text */ 2 33 2 34 /* LIMIT OF BRIEF STRUCTURE */ 2 35 2 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 2 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 2 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 2 39 2 cvers aligned, /* generator version name in printable char string form */ 2 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 2 41 3 length bit(18) unaligned, /* length of name in characters */ 2 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 2 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 2 44 3 length bit(18) unaligned, /* length of comment in characters */ 2 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 2 46 2 47 /* LIMIT OF DISPLAY STRUCTURE */ 2 48 2 49 2 rel_text pointer, /* pointer to text section relocation info */ 2 50 2 rel_def pointer, /* pointer to definition section relocation info */ 2 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 2 52 2 rel_static pointer, /* pointer to static section relocation info */ 2 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 2 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 2 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 2 56 /* currently not used by system */ 2 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 2 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 2 59 2 60 declare object_info_version_2 fixed bin int static init(2); 2 61 2 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 48 49 50 /* */ 51 3 1 /* BEGIN INCLUDE SEGMENT ... symbol_block.incl.pl1 3 2*coded February 8, 1972 by Michael J. Spier */ 3 3 3 4 /* last modified may 3, 1972 by M. Weaver */ 3 5 3 6 declare 1 sb aligned based(sblkp), /* structure describing a standard symbol block */ 3 7 2 decl_vers fixed bin, /* version number of current structure format */ 3 8 2 identifier char(8) aligned, /* symbolic code to define purpose of this symb block */ 3 9 2 gen_version_number fixed bin, /* positive integer designating version of object generator */ 3 10 2 gen_creation_time fixed bin(71), /* clock reading of date/time generator was created */ 3 11 2 obj_creation_time fixed bin(71), /* clock reading of date/time object was generated */ 3 12 2 generator char(8) aligned, /* name of processor which generated segment */ 3 13 2 gen_name_offset bit(18) unaligned, /* offset of generator name in words rel to base of symbol block */ 3 14 2 gen_name_length bit(18) unaligned, /* length of printable generator version name in characters */ 3 15 2 uid_offset bit(18) unaligned, /* offset of creator id in words rel to base of symbol block */ 3 16 2 uid_length bit(18) unaligned, /* length of standard Multics id of object creator in characters */ 3 17 2 comment_offset bit(18) unaligned, /* offset of comment in words relative to base of symbol block */ 3 18 2 comment_length bit(18) unaligned, /* length of printable generator comment in characters */ 3 19 2 tbound bit(18) unaligned, /* specifies mod of text section base boundary */ 3 20 2 stat_bound bit(18) unaligned, /* specifies mod of internal static base boundary */ 3 21 2 source_map bit(18) unaligned, /* offset relative to base of symbol block of source map structure */ 3 22 2 area_ptr bit(18) unaligned, /* offset of block info in words relative to base of symbol block */ 3 23 2 symb_base bit(18) unaligned, /* back pointer (rel to base of symb block) to base of symb section */ 3 24 2 block_size bit(18) unaligned, /* size in words of entire symbol block */ 3 25 2 next_block bit(18) unaligned, /* if ^= "0"b, is thread (rel to base of symb section) to next symb block */ 3 26 2 rel_text bit(18) unaligned, /* offset rel to base of symbol block of text sect relocation info */ 3 27 2 rel_def bit(18) unaligned, /* offset rel to base of symb block of def section relocation info */ 3 28 2 rel_link bit(18) unaligned, /* offset rel to base of symb block of link sect relocation info */ 3 29 2 rel_symb bit(18) unaligned, /* offset rel to base of symb block of symb sect relocation info */ 3 30 2 default_truncate bit(18) unaligned, /* offset RTBOSB for binder to automatically trunc. symb sect. */ 3 31 2 optional_truncate bit(18) unaligned; /* offset RTBOSB for binder to optionally truncate symb section */ 3 32 3 33 /* END INCLUDE SEGMENT ... symbol_block.incl.pl1 */ 52 53 54 55 declare 1 osb aligned based(sblkp), 56 2 gen_name_boff fixed bin, 57 2 dum1 bit(18) unaligned, 58 2 gen_name_blength bit(18) unaligned, 59 2 gen_vers_boff fixed bin, 60 2 dum2 bit(18) unaligned, 61 2 gen_vers_blength bit(18) unaligned, 62 2 gen_creation_time fixed bin(71), 63 2 obj_creation_time fixed bin(71), 64 2 symb_tree bit(18) unaligned, 65 2 extension bit(18) unaligned, 66 2 hmap bit(18) unaligned, 67 2 n bit(18) unaligned, 68 2 next_header bit(18) unaligned, 69 2 bind_flag bit(18) unaligned, 70 2 text_lng bit(18) unaligned, 71 2 link_lng bit(18) unaligned, 72 2 obj_name_boff fixed bin, 73 2 dum3 bit(18) unaligned, 74 2 obj_name_blength bit(18) unaligned; 75 76 /* */ 77 78 79 /* the following structure is copied from component_info.incl.pl1 */ 80 81 declare 1 ci aligned based(argptr), /* structure to be filled in */ 82 2 dcl_version fixed bin, /* version number of this structure */ 83 2 name char(32) aligned, /* objectname of component segment */ 84 2 text_start pointer, /* ptr to component's section of text */ 85 2 stat_start pointer, /* pointer to component's section of internal static */ 86 2 symb_start pointer, /* pointer to component's first symbol block */ 87 2 defblock_ptr pointer, /* ptr to component's definition block */ 88 2 text_lng fixed bin, /* length of text section */ 89 2 stat_lng fixed bin, /* length of internal static */ 90 2 symb_lng fixed bin, /* length of symbol section */ 91 2 n_blocks fixed bin, /* number of symbol blocks in component's symbol section */ 92 2 standard bit(1) aligned, /* indicates whether component is in standard (new) format */ 93 2 compiler char(8) aligned, /* name of component's compiler */ 94 2 compile_time fixed bin(71), /* time component was compiled */ 95 2 userid char(32) aligned, /* id of creator of component */ 96 2 cvers aligned, /* version of component's compiler */ 97 3 offset bit(18) unaligned, /* offset in words relative to symb_start */ 98 3 length bit(18) unaligned, /* length of version name in characters */ 99 2 comment aligned, /* component's comment */ 100 3 offset bit(18) unaligned, /* offset in words relative to symb_start */ 101 3 length bit(18) unaligned, /* length of comment in characters */ 102 2 source_map fixed bin; /* offset, rel to beg of symbol block, of component's source map */ 103 104 105 /* */ 106 namsw = 1; /* indicate that name was given */ 107 go to start; 108 109 offset: entry(segptr, offset, argptr, code); 110 111 namsw = 0; /* indicate that name was not given */ 112 113 start: objp = ptr(segptr, 0); /* be sure we have ptr to beg of bound seg */ 114 call hcs_$status_mins(objp, type, bitcount, code); /* get bit count */ 115 if code ^= 0 then return; /* too bad */ 116 117 oi.version_number = object_info_version_2; 118 call get_bound_seg_info_(objp, bitcount, addr(oi), bmp, sblkp, code); 119 /* get ptrs to bindmap indo */ 120 if code ^= 0 then return; /* evidently not a bound segment */ 121 122 go to looplab(namsw); /* bindmap is searched differently for offset or name */ 123 124 looplab(0): 125 find_offset: 126 do i = 1 to bmp -> bindmap.n_components; /* look at each component */ 127 j = fixed(component(i).text_start, 18); 128 k = fixed(component(i).text_lng, 18); 129 if offset >= j then if offset < j+k /* offset is within this component's text section */ 130 then go to fill_in; 131 j = fixed(component(i).stat_start, 18) + fixed(rel(oi.statp), 18); 132 /* get offset of this conponent's internal static */ 133 k = fixed(component(i).stat_lng, 18); 134 if offset >= j then if offset < j+k /* offset is within component's internal static */ 135 then go to fill_in; 136 j = fixed(component(i).symb_start, 18) + fixed(rel(oi.symbp), 18); 137 /* get offset of this component's symbol section */ 138 k = fixed(component(i).symb_lng, 18); 139 if offset >= j then if offset < j+k /* offset is within component's symbol section */ 140 then go to fill_in; 141 end; 142 143 code = error_table_$name_not_found; /* offset can't be associated with a component */ 144 return; 145 146 looplab(1): 147 find_name: 148 do i = 1 to n_components; /* look at each component */ 149 p = addrel(sblkp, component(i).name_ptr); /* get ptr to component's name in bindmap symb block */ 150 j = fixed(component(i).name_lng, 18); 151 if compname = var_string then go to fill_in; /* name matches component name */ 152 end; 153 154 code = error_table_$name_not_found; /* component name not in bound segment */ 155 return; 156 157 fill_in: /* fill in argument structure */ 158 ci.dcl_version = 1; 159 if namsw > 0 then ci.name = compname; 160 else do; 161 p = addrel(sblkp, component(i).name_ptr); /* get addr of component name in bindmap */ 162 j = fixed(component(i).name_lng, 18); 163 ci.name = var_string; 164 end; 165 166 ci.compiler = component(i).comp_name; 167 168 169 ci.text_start = addrel(oi.textp, component(i).text_start); 170 ci.stat_start = addrel(oi.statp, component(i).stat_start); 171 ci.symb_start = addrel(oi.symbp, component(i).symb_start); 172 ci.defblock_ptr = addrel(oi.defp, component(i).defblock_ptr); 173 174 175 ci.text_lng = fixed(component(i).text_lng,17); 176 ci.stat_lng = fixed(component(i).stat_lng,17); 177 ci.symb_lng = fixed(component(i).symb_lng,17); 178 179 j = fixed(component(i).n_blocks,17); 180 if j = 0 then ci.n_blocks = 1; /* assume 1 if not filled in */ 181 else ci.n_blocks = j; 182 183 /* we have finished copying items found in the bind map; 184* now we must go to the component's symbol section for the rest */ 185 186 sblkp = ci.symb_start; /* get ptr to component's symbol section */ 187 if substr(osb.dum1, 1, 9) = "010100000"b then go to old_format; /* look for old block flag */ 188 189 new_format: 190 ci.standard = "1"b; /* get_bound_seg_info_ would have returned bad code if new and non-standard */ 191 ci.compile_time = sb.obj_creation_time; 192 193 j = fixed(sb.uid_offset, 18) * 4 + 1; 194 k = fixed(sb.uid_length, 18); 195 ci.userid = substr(string, j, k); /* fill in userid string */ 196 197 ci.cvers.offset = sb.gen_name_offset; 198 ci.cvers.length = sb.gen_name_length; 199 200 ci.comment.offset = sb.comment_offset; 201 ci.comment.length = sb.comment_length; 202 203 ci.source_map = fixed(sb.source_map, 18); 204 205 return; 206 207 old_format: 208 ci.standard = "0"b; 209 210 ci.compile_time = osb.obj_creation_time; 211 ci.userid = " "; 212 213 ci.cvers.offset = bit(bin(divide(osb.gen_vers_boff, 36, 18, 0), 18), 18); 214 ci.cvers.length = bit(bin(divide(fixed(osb.gen_vers_blength, 18), 9, 18, 0), 18), 18); 215 216 ci.comment.offset, ci.comment.length = "0"b; 217 ci.source_map = 0; 218 219 return; 220 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1625.3 component_info_.pl1 >dumps>old>recomp>component_info_.pl1 42 1 09/18/74 1700.9 bind_map.incl.pl1 >ldd>include>bind_map.incl.pl1 48 2 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 52 3 05/06/74 1752.6 symbol_block.incl.pl1 >ldd>include>symbol_block.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. addr builtin function dcl 31 ref 118 118 addrel builtin function dcl 31 ref 149 161 169 170 171 172 argptr parameter pointer dcl 23 ref 19 109 157 159 163 166 169 170 171 172 175 176 177 180 181 186 189 191 195 197 198 200 201 203 207 210 211 213 214 216 216 217 bin builtin function dcl 31 ref 213 214 bindmap based structure level 1 dcl 1-4 bit builtin function dcl 31 ref 213 214 bitcount 000115 automatic fixed bin(24,0) dcl 29 set ref 114* 118* bmp 000100 automatic pointer dcl 23 set ref 118* 124 127 128 131 133 136 138 146 149 150 161 162 166 169 170 171 172 175 176 177 179 ci based structure level 1 dcl 81 code parameter fixed bin(35,0) dcl 26 set ref 19 109 114* 115 118* 120 143* 154* comment 45 based structure level 2 dcl 81 comment_length 14(18) based bit(18) level 2 packed unaligned dcl 3-6 ref 201 comment_offset 14 based bit(18) level 2 packed unaligned dcl 3-6 ref 200 comp_name 3 based char(8) array level 3 dcl 1-4 ref 166 compile_time 32 based fixed bin(71,0) level 2 dcl 81 set ref 191* 210* compiler 27 based char(8) level 2 dcl 81 set ref 166* compname parameter char(32) dcl 35 ref 19 151 159 component 2 based structure array level 2 dcl 1-4 cvers 44 based structure level 2 dcl 81 dcl_version based fixed bin(17,0) level 2 dcl 81 set ref 157* defblock_ptr 20 based pointer level 2 in structure "ci" dcl 81 in procedure "name" set ref 172* defblock_ptr 10 based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 172 defp 4 000116 automatic pointer level 2 dcl 46 set ref 172 divide builtin function dcl 31 ref 213 214 dum1 1 based bit(18) level 2 packed unaligned dcl 55 ref 187 error_table_$name_not_found 000010 external static fixed bin(35,0) dcl 28 ref 143 154 fixed builtin function dcl 31 ref 127 128 131 131 133 136 136 138 150 162 175 176 177 179 193 194 203 214 gen_name_length 12(18) based bit(18) level 2 packed unaligned dcl 3-6 ref 198 gen_name_offset 12 based bit(18) level 2 packed unaligned dcl 3-6 ref 197 gen_vers_blength 3(18) based bit(18) level 2 packed unaligned dcl 55 ref 214 gen_vers_boff 2 based fixed bin(17,0) level 2 dcl 55 ref 213 get_bound_seg_info_ 000014 constant entry external dcl 38 ref 118 hcs_$status_mins 000012 constant entry external dcl 37 ref 114 i 000113 automatic fixed bin(17,0) dcl 27 set ref 124* 127 128 131 133 136 138* 146* 149 150* 161 162 166 169 170 171 172 175 176 177 179 j 000110 automatic fixed bin(18,0) dcl 25 set ref 127* 129 129 131* 134 134 136* 139 139 150* 151 162* 163 179* 180 181 193* 195 k 000111 automatic fixed bin(18,0) dcl 25 set ref 128* 129 133* 134 138* 139 194* 195 length 45(18) based bit(18) level 3 in structure "ci" packed unaligned dcl 81 in procedure "name" set ref 201* 216* length 44(18) based bit(18) level 3 in structure "ci" packed unaligned dcl 81 in procedure "name" set ref 198* 214* n_blocks 25 based fixed bin(17,0) level 2 in structure "ci" dcl 81 in procedure "name" set ref 180* 181* n_blocks 10(18) based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 179 n_components 1 based fixed bin(17,0) level 2 dcl 1-4 ref 124 146 name 1 based char(32) level 2 in structure "ci" dcl 81 in procedure "name" set ref 159* 163* name 2 based structure array level 3 in structure "bindmap" dcl 1-4 in procedure "name" name_lng 2(18) based bit(18) array level 4 packed unaligned dcl 1-4 ref 150 162 name_ptr 2 based bit(18) array level 4 packed unaligned dcl 1-4 ref 149 161 namsw 000114 automatic fixed bin(17,0) dcl 27 set ref 106* 111* 122 159 obj_creation_time 6 based fixed bin(71,0) level 2 in structure "sb" dcl 3-6 in procedure "name" ref 191 obj_creation_time 6 based fixed bin(71,0) level 2 in structure "osb" dcl 55 in procedure "name" ref 210 object_info based structure level 1 dcl 2-6 object_info_version_2 constant fixed bin(17,0) initial dcl 2-60 ref 117 objp 000106 automatic pointer dcl 23 set ref 113* 114* 118* offset parameter fixed bin(18,0) dcl 25 in procedure "name" ref 109 129 129 134 134 139 139 offset 45 based bit(18) level 3 in structure "ci" packed unaligned dcl 81 in procedure "name" set ref 200* 216* offset 44 based bit(18) level 3 in structure "ci" packed unaligned dcl 81 in procedure "name" set ref 197* 213* oi 000116 automatic structure level 1 dcl 46 set ref 118 118 osb based structure level 1 dcl 55 p 000104 automatic pointer dcl 23 set ref 149* 151 161* 163 ptr builtin function dcl 31 ref 113 rel builtin function dcl 31 ref 131 136 sb based structure level 1 dcl 3-6 sblkp 000102 automatic pointer dcl 23 set ref 118* 149 161 186* 187 191 193 194 195 197 198 200 201 203 210 213 214 segptr parameter pointer dcl 23 ref 19 109 113 source_map 16 based bit(18) level 2 in structure "sb" packed unaligned dcl 3-6 in procedure "name" ref 203 source_map 46 based fixed bin(17,0) level 2 in structure "ci" dcl 81 in procedure "name" set ref 203* 217* standard 26 based bit(1) level 2 dcl 81 set ref 189* 207* stat_lng 23 based fixed bin(17,0) level 2 in structure "ci" dcl 81 in procedure "name" set ref 176* stat_lng 6(18) based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 133 176 stat_start 6 based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 131 170 stat_start 14 based pointer level 2 in structure "ci" dcl 81 in procedure "name" set ref 170* statp 10 000116 automatic pointer level 2 dcl 46 set ref 131 170 string based char(100000) unaligned dcl 34 ref 195 substr builtin function dcl 31 ref 187 195 symb_lng 24 based fixed bin(17,0) level 2 in structure "ci" dcl 81 in procedure "name" set ref 177* symb_lng 7(18) based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 138 177 symb_start 7 based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 136 171 symb_start 16 based pointer level 2 in structure "ci" dcl 81 in procedure "name" set ref 171* 186 symbp 12 000116 automatic pointer level 2 dcl 46 set ref 136 171 text_lng 22 based fixed bin(17,0) level 2 in structure "ci" dcl 81 in procedure "name" set ref 175* text_lng 5(18) based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 128 175 text_start 5 based bit(18) array level 3 in structure "bindmap" packed unaligned dcl 1-4 in procedure "name" ref 127 169 text_start 12 based pointer level 2 in structure "ci" dcl 81 in procedure "name" set ref 169* textp 2 000116 automatic pointer level 2 dcl 46 set ref 169 type 000112 automatic fixed bin(17,0) dcl 27 set ref 114* uid_length 13(18) based bit(18) level 2 packed unaligned dcl 3-6 ref 194 uid_offset 13 based bit(18) level 2 packed unaligned dcl 3-6 ref 193 userid 34 based char(32) level 2 dcl 81 set ref 195* 211* var_string based char unaligned dcl 33 ref 151 163 version_number 000116 automatic fixed bin(17,0) level 2 dcl 46 set ref 117* NAMES DECLARED BY EXPLICIT CONTEXT. fill_in 000261 constant label dcl 157 ref 129 134 139 151 find_name 000221 constant label dcl 146 find_offset 000114 constant label dcl 124 looplab 000000 constant label array(0:1) dcl 124 ref 122 name 000013 constant entry external dcl 19 new_format 000407 constant label dcl 189 offset 000030 constant entry external dcl 109 old_format 000443 constant label dcl 207 set ref 187 start 000036 constant label dcl 113 ref 107 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 566 604 477 576 Length 1024 477 16 204 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME name 162 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME name 000100 bmp name 000102 sblkp name 000104 p name 000106 objp name 000110 j name 000111 k name 000112 type name 000113 i name 000114 namsw name 000115 bitcount name 000116 oi name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_bound_seg_info_ hcs_$status_mins THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$name_not_found LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000006 106 000020 107 000022 109 000023 111 000035 113 000036 114 000042 115 000057 117 000062 118 000064 120 000107 122 000112 124 000114 127 000124 128 000132 129 000135 131 000146 133 000156 134 000161 136 000170 138 000200 139 000203 141 000212 143 000214 144 000220 146 000221 149 000231 150 000241 151 000244 152 000252 154 000254 155 000260 157 000261 159 000264 161 000274 162 000304 163 000307 166 000313 169 000323 170 000330 171 000337 172 000346 175 000355 176 000362 177 000365 179 000370 180 000373 181 000400 186 000401 187 000403 189 000407 191 000411 193 000413 194 000420 195 000423 197 000427 198 000431 200 000433 201 000435 203 000437 205 000442 207 000443 210 000444 211 000446 213 000451 214 000460 216 000471 217 000475 219 000476 ----------------------------------------------------------- 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