COMPILATION LISTING OF SEGMENT print_relocation_info Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1544.1 mst Mon 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 print_relocation_info: procedure; 12 pri: entry; 13 14 /* originally coded before 1971 */ 15 /* modified 1972 by M. Weaver for standard object segments */ 16 /* last modified 10/75 by M. Weaver general cleaning up */ 17 18 19 dcl (i, last_word, half, bits_behind_runner, code(2), section, section_lng, 20 abs_block_to_go, cacnt, format, 21 comp_length, comp_bits, code_printed(2), 22 length_path, length_arg) fixed bin; 23 dcl error_code fixed bin(35); 24 dcl (relbitcnt based, total_bits) fixed bin(24) aligned; 25 dcl (first_word, nwords) fixed bin(18); 26 27 dcl (section_ptr, seg_ptr, pathname_ptr, arg_ptr, oip) ptr; 28 29 dcl code_name(0:17) int static aligned char(16) initial("text", "neg text", "link ptr 18", 30 "neg link ptr 18", "link ptr 15", "def ptr", "symbol", 31 "neg symbol", "int static 18", "int static 15", "self relative", 32 "(11011)", "(11100)", "(11101)", "expanded abs", "escape", 33 "absolute", "off the end"); 34 35 dcl section_name(4) char(10) char(10) aligned init("text", "definition", "linkage", "symbol"); 36 1 1 /* BEGIN INCLUDE FILE ... relocation_header.incl.pl1 */ 1 2 /* created 10/30/75 by M. Weaver */ 1 3 1 4 dcl 1 relinfo aligned based, /* template for a relocation section */ 1 5 2 dcl_vers fixed bin, /* currently = 2 */ 1 6 2 n_bits fixed bin, /* number of relocation bits */ 1 7 2 relbits bit(0 refer (relinfo.n_bits)) aligned; 1 8 1 9 /* END INCLUDE FILE ...relocation_header.incl.pl1 */ 37 38 39 dcl 1 old_relinfo aligned based, /* header for old format object segs */ 40 2 n_bits fixed bin, 41 2 relbits bit (0 refer(old_relinfo.n_bits)) aligned; 42 43 dcl 1 rel_section aligned based(section_ptr), 44 2 (bits_behind bit(bits_behind_runner), 45 lead bit(1), 46 four_bits bit(4), 47 abs_block bit(10)) unaligned; 48 49 dcl (error_table_$badopt, error_table_$noarg, error_table_$wrong_no_of_args, 50 error_table_$segknown) external fixed bin(35); 51 52 53 dcl null builtin; 54 55 dcl dir_name char(168); 56 57 dcl ent_name char(32); 58 59 dcl me char(21) aligned int static init("print_relocation_info"); 60 61 dcl bit_count fixed bin(24); 62 63 dcl no_copy int static fixed bin(2) initial(1); 64 65 dcl arg_xx aligned char(2); 66 67 dcl pathname char(length_path) based(pathname_ptr); 68 69 dcl arg char(length_arg) based(arg_ptr); 70 71 dcl (need_path, need_first_word, first_repeat, fatal_error, endsw) aligned bit(1); 72 73 dcl (com_err_, ioa_) ext entry options(variable); 74 75 dcl cu_$arg_ptr ext entry(fixed bin, ptr, fixed bin, fixed bin(35)); 76 77 dcl cu_$arg_count ext entry() returns(fixed bin); 78 79 dcl cv_oct_check_ ext entry(char(*), fixed bin(35)) returns(fixed bin(18)); 80 81 dcl object_info_$long ext entry(ptr, fixed bin(24), ptr, fixed bin(35)); 82 83 dcl expand_path_ ext entry(ptr, fixed bin, ptr, ptr, fixed bin(35)); 84 85 dcl hcs_$initiate_count ext entry(char(*), char(*), char(*), fixed bin(24), fixed bin(2), ptr, fixed bin(35)); 86 87 88 89 /* */ 90 dcl 1 oi aligned like object_info; 91 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 */ 92 93 94 /* */ 95 96 need_path, need_first_word = "1"b /* Neither of these seen yet */; 97 first_repeat, fatal_error = "0"b; /* Niether of these seen yet */ 98 99 section = 1; /* default = text */ 100 nwords = 260000 /* Default */; 101 first_word = 0 /* Default */; 102 cacnt = 0; 103 104 i = cu_$arg_count(); 105 if (i > 4) | (i = 0) then do; 106 call com_err_(error_table_$wrong_no_of_args, me, "need: path -section- -offset- -length-"); 107 return; 108 end; 109 110 do i = 1 to 4 /* collect arguments */; 111 call cu_$arg_ptr(i, arg_ptr, length_arg, error_code); 112 if error_code ^= 0 then /* Assume args exhausted. maybe OK */ 113 go to no_more_args; 114 115 if substr(arg, 1, 1) = "-" then /* option */ 116 if arg = "-text" then do; 117 section = 1; 118 cacnt = cacnt + 1; 119 end; 120 121 else if (arg = "-definition" | arg = "-def") then do; 122 section = 2; 123 cacnt = cacnt + 1; 124 end; 125 126 else if (arg = "-link" | arg = "-lk") then do; 127 section = 3; 128 cacnt = cacnt + 1; 129 end; 130 131 else if (arg = "-symbol" | arg = "-sb") then do; 132 section = 4; 133 cacnt = cacnt + 1; 134 end; 135 136 else do; 137 call com_err_(error_table_$badopt, me, arg); 138 fatal_error = "1"b; 139 end; 140 141 else if need_path then do; 142 need_path = "0"b; 143 length_path = length_arg; 144 pathname_ptr = arg_ptr; 145 end; 146 147 else if need_first_word then do; 148 need_first_word = "0"b; 149 first_word = cv_oct_check_(arg, error_code); 150 if error_code ^= 0 then do; 151 call com_err_(0, me, "offset ^a is not an octal number", arg); 152 fatal_error = "1"b; 153 end; 154 end; 155 156 else do; 157 nwords = cv_oct_check_(arg, error_code); 158 if error_code ^= 0 then do; 159 call com_err_(0, me, "length ^a is not an octal number",arg); 160 fatal_error = "1"b; 161 end; 162 end; 163 164 end /* Fall through after 4 args or after attempt to read arg after the last one given */; 165 166 no_more_args: 167 if need_path then do; 168 call com_err_(error_table_$wrong_no_of_args, me, "pathname missing"); 169 return; 170 end; 171 172 if fatal_error then return; /* message already printed */ 173 174 if cacnt > 1 then 175 call ioa_("^a: More than one section was specified; only last one will be used.", me); 176 177 call expand_path_(pathname_ptr, length_path, addr(dir_name), addr(ent_name), error_code); 178 if error_code ^= 0 then do; 179 call com_err_(error_code, me, pathname); 180 return; 181 end; 182 183 call hcs_$initiate_count(dir_name, ent_name, "", bit_count, no_copy, seg_ptr, error_code); 184 if seg_ptr = null then do; 185 call com_err_(error_code, me, pathname); 186 return; 187 end; 188 189 oip = addr(oi); 190 oi.version_number = object_info_version_2; 191 call object_info_$long(seg_ptr, bit_count, oip, error_code); 192 if error_code ^= 0 then do; 193 call com_err_(error_code, me, "^a>^a", dir_name, ent_name); 194 return; 195 end; 196 197 if section = 1 then do; 198 section_ptr = oi.rel_text; 199 section_lng = oi.tlng - 1; 200 end; 201 else if section = 2 then do; 202 section_ptr = oi.rel_def; 203 section_lng = oi.dlng - 1; 204 end; 205 else if section = 3 then do; 206 section_ptr = oi.rel_link; 207 section_lng = oi.llng - 1; 208 end; 209 else if section = 4 then do; 210 section_ptr = oi.rel_symbol; 211 section_lng = oi.slng - 1; 212 end; 213 214 if section_ptr = null then do; /* no point in going on */ 215 call com_err_(0, me, "Specified section has no relocation bits."); 216 return; 217 end; 218 219 220 /* be sure specified range is within section */ 221 222 if first_word > section_lng then do; 223 call ioa_("^a section is only ^o(8) words long", section_name(section), section_lng); 224 return; 225 end; 226 last_word = first_word + nwords - 1; /* this is what was asked for */ 227 if last_word > section_lng then do; /* set up to print more meaningful message */ 228 last_word = section_lng; /* last word we're interested in */ 229 endsw = "1"b; /* so won't imply that section is longer */ 230 end; 231 else endsw = "0"b; 232 233 if oi.format.standard then do; 234 total_bits = section_ptr -> relinfo.n_bits; 235 section_ptr = addr(section_ptr -> relinfo.relbits); 236 end; 237 else do; 238 total_bits = section_ptr -> old_relinfo.n_bits; 239 section_ptr = addr(section_ptr -> old_relinfo.relbits); 240 end; 241 abs_block_to_go, bits_behind_runner = 0; 242 code_printed(1), code_printed(2) = 999 /* That is, the first line is NOT like the imaginary pre-first one */; 243 244 do i = 0 to last_word; 245 do half = 1 to 2; 246 GET_BITS: if abs_block_to_go > 0 then do; 247 code(half) = 16 /* absolute */; 248 abs_block_to_go = abs_block_to_go-1; 249 end; 250 251 else if bits_behind_runner >= total_bits then 252 code(half) = 17 /* off the end */; 253 254 else if lead = "0"b then do; 255 code(half) = 16 /* absolute */; 256 bits_behind_runner = bits_behind_runner+1; 257 end; 258 259 else if four_bits = "1110"b then do; /* expanded absolute */ 260 abs_block_to_go = bin(abs_block,10); 261 bits_behind_runner = bits_behind_runner+15; 262 go to GET_BITS; 263 end; 264 265 else do; 266 code(half) = bin(four_bits, 4); 267 bits_behind_runner = bits_behind_runner+5; 268 end; 269 end; 270 271 if i >= first_word then /* user is interested in this word */ 272 if code(1) ^= code_printed(1) | code(2) ^= code_printed(2) /* but only if ^= prev word */ 273 then do; 274 call ioa_("^6o ^16a ^16a", i, code_name(code(1)), 275 code_name(code(2))); 276 code_printed(1) = code(1); 277 code_printed(2) = code(2); 278 first_repeat = "1"b; 279 end; 280 281 else if first_repeat /* If not first repeat, nothing gets printed at all */ 282 then do; 283 first_repeat = "0"b; 284 call ioa_("(repeats)"); 285 end; 286 287 if code(1) = 17 then do; /* no sense continuing */ 288 call ioa_("Relocation bits are not provided for words after ^o", i-1); 289 return; 290 end; 291 end; 292 293 if endsw then call ioa_("end of ^a section", section_name(section)); 294 295 return; 296 297 end print_relocation_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1455.9 print_relocation_info.pl1 >dumps>old>recomp>print_relocation_info.pl1 37 1 12/08/75 1715.0 relocation_header.incl.pl1 >ldd>include>relocation_header.incl.pl1 92 2 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_info.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. abs_block based bit(10) level 2 packed unaligned dcl 43 ref 260 abs_block_to_go 000110 automatic fixed bin(17,0) dcl 19 set ref 241* 246 248* 248 260* arg based char unaligned dcl 69 set ref 115 115 121 121 126 126 131 131 137* 149* 151* 157* 159* arg_ptr 000130 automatic pointer dcl 27 set ref 111* 115 115 121 121 126 126 131 131 137 144 149 151 157 159 bit_count 000232 automatic fixed bin(24,0) dcl 61 set ref 183* 191* bits_behind_runner 000103 automatic fixed bin(17,0) dcl 19 set ref 241* 251 254 256* 256 259 260 261* 261 266 267* 267 cacnt 000111 automatic fixed bin(17,0) dcl 19 set ref 102* 118* 118 123* 123 128* 128 133* 133 174 code 000104 automatic fixed bin(17,0) array dcl 19 set ref 247* 251* 255* 266* 271 271 274 274 276 277 287 code_name 000010 internal static char(16) initial array dcl 29 set ref 274* 274* code_printed 000112 automatic fixed bin(17,0) array dcl 19 set ref 242* 242* 271 271 276* 277* com_err_ 000134 constant entry external dcl 73 ref 106 137 151 159 168 179 185 193 215 cu_$arg_count 000142 constant entry external dcl 77 ref 104 cu_$arg_ptr 000140 constant entry external dcl 75 ref 111 cv_oct_check_ 000144 constant entry external dcl 79 ref 149 157 dir_name 000150 automatic char(168) unaligned dcl 55 set ref 177 177 183* 193* dlng 17 000240 automatic fixed bin(17,0) level 2 dcl 90 set ref 203 endsw 000237 automatic bit(1) dcl 71 set ref 229* 231* 293 ent_name 000222 automatic char(32) unaligned dcl 57 set ref 177 177 183* 193* error_code 000116 automatic fixed bin(35,0) dcl 23 set ref 111* 112 149* 150 157* 158 177* 178 179* 183* 185* 191* 192 193* error_table_$badopt 000130 external static fixed bin(35,0) dcl 49 set ref 137* error_table_$wrong_no_of_args 000132 external static fixed bin(35,0) dcl 49 set ref 106* 168* expand_path_ 000150 constant entry external dcl 83 ref 177 fatal_error 000236 automatic bit(1) dcl 71 set ref 97* 138* 152* 160* 172 first_repeat 000235 automatic bit(1) dcl 71 set ref 97* 278* 281 283* first_word 000120 automatic fixed bin(18,0) dcl 25 set ref 101* 149* 222 226 271 format 24 000240 automatic structure level 2 dcl 90 four_bits based bit(4) level 2 packed unaligned dcl 43 ref 259 266 half 000102 automatic fixed bin(17,0) dcl 19 set ref 245* 247 251 255 266* hcs_$initiate_count 000152 constant entry external dcl 85 ref 183 i 000100 automatic fixed bin(17,0) dcl 19 set ref 104* 105 105 110* 111* 244* 271 274* 288* ioa_ 000136 constant entry external dcl 73 ref 174 223 274 284 288 293 last_word 000101 automatic fixed bin(17,0) dcl 19 set ref 226* 227 228* 244 lead based bit(1) level 2 packed unaligned dcl 43 ref 254 length_arg 000115 automatic fixed bin(17,0) dcl 19 set ref 111* 115 115 121 121 126 126 131 131 137 137 143 149 149 151 151 157 157 159 159 length_path 000114 automatic fixed bin(17,0) dcl 19 set ref 143* 177* 179 179 185 185 llng 20 000240 automatic fixed bin(17,0) level 2 dcl 90 set ref 207 me 000120 internal static char(21) initial dcl 59 set ref 106* 137* 151* 159* 168* 174* 179* 185* 193* 215* n_bits based fixed bin(17,0) level 2 in structure "old_relinfo" dcl 39 in procedure "print_relocation_info" ref 238 239 n_bits 1 based fixed bin(17,0) level 2 in structure "relinfo" dcl 1-4 in procedure "print_relocation_info" ref 234 235 need_first_word 000234 automatic bit(1) dcl 71 set ref 96* 147 148* need_path 000233 automatic bit(1) dcl 71 set ref 96* 141 142* 166 no_copy 000126 internal static fixed bin(2,0) initial dcl 63 set ref 183* null builtin function dcl 53 ref 184 214 nwords 000121 automatic fixed bin(18,0) dcl 25 set ref 100* 157* 226 object_info based structure level 1 dcl 2-6 object_info_$long 000146 constant entry external dcl 81 ref 191 object_info_version_2 constant fixed bin(17,0) initial dcl 2-60 ref 190 oi 000240 automatic structure level 1 dcl 90 set ref 189 oip 000132 automatic pointer dcl 27 set ref 189* 191* old_relinfo based structure level 1 dcl 39 pathname based char unaligned dcl 67 set ref 179* 185* pathname_ptr 000126 automatic pointer dcl 27 set ref 144* 177* 179 185 rel_def 52 000240 automatic pointer level 2 dcl 90 set ref 202 rel_link 54 000240 automatic pointer level 2 dcl 90 set ref 206 rel_section based structure level 1 dcl 43 rel_symbol 60 000240 automatic pointer level 2 dcl 90 set ref 210 rel_text 50 000240 automatic pointer level 2 dcl 90 set ref 198 relbits 1 based bit level 2 in structure "old_relinfo" dcl 39 in procedure "print_relocation_info" set ref 239 relbits 2 based bit level 2 in structure "relinfo" dcl 1-4 in procedure "print_relocation_info" set ref 235 relinfo based structure level 1 dcl 1-4 section 000106 automatic fixed bin(17,0) dcl 19 set ref 99* 117* 122* 127* 132* 197 201 205 209 223 293 section_lng 000107 automatic fixed bin(17,0) dcl 19 set ref 199* 203* 207* 211* 222 223* 227 228 section_name 000134 automatic char(10) initial array dcl 35 set ref 35* 35* 35* 35* 223* 293* section_ptr 000122 automatic pointer dcl 27 set ref 198* 202* 206* 210* 214 234 235* 235 238 239* 239 254 259 260 266 seg_ptr 000124 automatic pointer dcl 27 set ref 183* 184 191* slng 22 000240 automatic fixed bin(17,0) level 2 dcl 90 set ref 211 standard 24(04) 000240 automatic bit(1) level 3 packed unaligned dcl 90 set ref 233 tlng 16 000240 automatic fixed bin(17,0) level 2 dcl 90 set ref 199 total_bits 000117 automatic fixed bin(24,0) dcl 24 set ref 234* 238* 251 version_number 000240 automatic fixed bin(17,0) level 2 dcl 90 set ref 190* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. arg_xx automatic char(2) dcl 65 comp_bits automatic fixed bin(17,0) dcl 19 comp_length automatic fixed bin(17,0) dcl 19 error_table_$noarg external static fixed bin(35,0) dcl 49 error_table_$segknown external static fixed bin(35,0) dcl 49 format automatic fixed bin(17,0) dcl 19 relbitcnt based fixed bin(24,0) dcl 24 NAMES DECLARED BY EXPLICIT CONTEXT. GET_BITS 001370 constant label dcl 246 ref 262 no_more_args 000671 constant label dcl 166 ref 112 pri 000265 constant entry external dcl 12 print_relocation_info 000255 constant entry external dcl 11 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 177 177 177 177 189 235 239 bin builtin function ref 260 266 substr builtin function ref 115 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1774 2150 1631 2004 Length 2410 1631 154 223 143 120 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME print_relocation_info 300 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 code_name print_relocation_info 000120 me print_relocation_info 000126 no_copy print_relocation_info STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME print_relocation_info 000100 i print_relocation_info 000101 last_word print_relocation_info 000102 half print_relocation_info 000103 bits_behind_runner print_relocation_info 000104 code print_relocation_info 000106 section print_relocation_info 000107 section_lng print_relocation_info 000110 abs_block_to_go print_relocation_info 000111 cacnt print_relocation_info 000112 code_printed print_relocation_info 000114 length_path print_relocation_info 000115 length_arg print_relocation_info 000116 error_code print_relocation_info 000117 total_bits print_relocation_info 000120 first_word print_relocation_info 000121 nwords print_relocation_info 000122 section_ptr print_relocation_info 000124 seg_ptr print_relocation_info 000126 pathname_ptr print_relocation_info 000130 arg_ptr print_relocation_info 000132 oip print_relocation_info 000134 section_name print_relocation_info 000150 dir_name print_relocation_info 000222 ent_name print_relocation_info 000232 bit_count print_relocation_info 000233 need_path print_relocation_info 000234 need_first_word print_relocation_info 000235 first_repeat print_relocation_info 000236 fatal_error print_relocation_info 000237 endsw print_relocation_info 000240 oi print_relocation_info 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_ cu_$arg_count cu_$arg_ptr cv_oct_check_ expand_path_ hcs_$initiate_count ioa_ object_info_$long THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000213 11 000254 12 000263 96 000273 97 000276 99 000300 100 000302 101 000304 102 000305 104 000306 105 000315 106 000322 107 000346 110 000347 111 000354 112 000371 115 000373 117 000405 118 000407 119 000410 121 000411 122 000421 123 000423 124 000424 126 000425 127 000435 128 000437 129 000440 131 000441 132 000451 133 000453 134 000454 137 000455 138 000501 139 000503 141 000504 142 000506 143 000507 144 000511 145 000512 147 000513 148 000515 149 000516 150 000542 151 000544 152 000600 154 000602 157 000603 158 000627 159 000631 160 000665 164 000667 166 000671 168 000673 169 000722 172 000723 174 000725 177 000750 178 000773 179 000775 180 001021 183 001022 184 001063 185 001067 186 001113 189 001114 190 001116 191 001120 192 001135 193 001137 194 001172 197 001173 198 001176 199 001200 200 001203 201 001204 202 001206 203 001210 204 001213 205 001214 206 001216 207 001220 208 001223 209 001224 210 001226 211 001230 214 001233 215 001237 216 001264 222 001265 223 001270 224 001316 226 001317 227 001322 228 001324 229 001326 230 001330 231 001331 233 001332 234 001335 235 001340 236 001342 238 001343 239 001345 241 001350 242 001352 244 001355 245 001363 246 001370 247 001372 248 001375 249 001377 251 001400 254 001407 255 001414 256 001417 257 001420 259 001421 260 001430 261 001440 262 001442 266 001443 267 001446 269 001450 271 001452 274 001463 276 001522 277 001524 278 001526 279 001530 281 001531 283 001533 284 001534 287 001552 288 001555 289 001600 291 001601 293 001603 295 001627 ----------------------------------------------------------- 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