COMPILATION LISTING OF SEGMENT probe_print_c_attr_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1549.3 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 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 /****^ HISTORY COMMENTS: 14* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 15* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 16* Added format control comment to make the source more readable. 17* END HISTORY COMMENTS */ 18 19 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 20 21 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 22 23 probe_print_c_attr_: 24 proc (P_probe_info_ptr, P_refp, P_long_sw, P_code); 25 26 dcl P_probe_info_ptr parameter ptr; 27 dcl P_refp parameter ptr; 28 dcl P_long_sw parameter bit (1) aligned; 29 dcl P_code parameter fixed bin (35); 30 31 dcl 1 P_reference aligned like reference_node based (refp); 32 dcl refp ptr; 33 dcl sym ptr; 34 dcl sp ptr; 35 dcl next ptr; 36 dcl (addr, addrel, fixed, null, substr) 37 builtin; 38 dcl ( 39 ioa_$ioa_switch, 40 ioa_$ioa_switch_nnl, 41 ioa_$rsnnl 42 ) entry options (variable); 43 dcl probe_block_name_ entry (ptr, ptr, bit (1) aligned) 44 returns (char (256) varying); 45 dcl 01 acc_str based, 46 02 str_len fixed bin (9) unsigned unaligned, 47 02 str_name char (0 refer (acc_str.str_len)) unaligned; 48 dcl next_sym ptr; 49 dcl name_ptr ptr; 50 dcl ioa_str char (14); 51 dcl tackon_parens char (2) varying init (""); 52 dcl dummy_ptr ptr; 53 dcl temp_str_1 char (168) varying; 54 dcl temp_str_2 char (168) varying; 55 56 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 57 58 this_symbol_occupies_storage: 59 proc (ref_ptr, sym_ptr) returns (bit (1)); 60 61 dcl ref_ptr parameter ptr; 62 dcl sym_ptr parameter ptr; 63 dcl containing_block ptr; 64 dcl steps fixed bin; 65 dcl t_ptr ptr; 66 dcl t_name char (168) varying; 67 dcl stu_$find_runtime_symbol 68 entry (pointer, char (*), pointer, fixed bin) 69 returns (pointer); 70 71 if fixed (sym_ptr -> runtime_symbol.class) ^= 0 72 then return ("1"b); 73 74 name_ptr = addrel (sym, fixed (sym -> runtime_symbol.name, 1)); 75 t_name = 76 substr (name_ptr -> acc_str.str_name, 1, name_ptr -> acc_str.str_len); 77 if (t_name ^= ref_ptr -> reference_node.name) then do; 78 t_ptr = 79 stu_$find_runtime_symbol (ref_ptr 80 -> reference_node.source_info_ptr -> source_info.block_ptr, 81 (ref_ptr -> reference_node.name), containing_block, steps); 82 if t_ptr = null () 83 then return ("0"b); 84 else if fixed (t_ptr -> runtime_symbol.class) ^= 0 85 then return ("1"b); 86 end; 87 88 return ("0"b); 89 90 end this_symbol_occupies_storage; 91 92 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 93 94 dummy_ptr = null (); 95 probe_info_ptr = P_probe_info_ptr; 96 P_code = 0; 97 refp = P_refp; 98 sym = P_reference.symbol_ptr; 99 next_sym = null (); 100 101 name_ptr = addrel (sym, fixed (sym -> runtime_symbol.name, 1)); 102 103 if (fixed (sym -> runtime_symbol.level) = 0 & 104 fixed (sym -> runtime_symbol.class) = 0 & 105 fixed (sym -> runtime_symbol.location) = 0) 106 then 107 call ioa_$ioa_switch_nnl (probe_info.output_switch, "typedef"); 108 109 if P_reference.type = ext_entry_runtime_dtype then do; 110 sym = addrel (sym, fixed (sym -> runtime_symbol.son)); 111 if (fixed (sym -> runtime_symbol.type) = pointer_dtype) 112 then 113 ioa_str = "^a^a()"; 114 else ioa_str = "^a ^a()"; 115 call ioa_$ioa_switch (probe_info.output_switch, ioa_str, 116 get_c_attr_str (sym, dummy_ptr), 117 substr (name_ptr -> acc_str.str_name, 1, 118 name_ptr -> acc_str.str_len)); 119 return; 120 end; 121 122 if fixed (sym -> runtime_symbol.type) = pointer_dtype 123 then 124 ioa_str = "^a^a"; 125 else ioa_str = "^a ^a"; 126 127 temp_str_1 = get_c_attr_str (sym, dummy_ptr); 128 temp_str_2 = 129 substr (name_ptr -> acc_str.str_name, 1, name_ptr -> acc_str.str_len) 130 || get_c_dims_str (sym, 0, "0"b) || get_c_class_str (sym); 131 132 if next_sym ^= null () 133 then 134 sym = next_sym; 135 136 if ((fixed (sym -> runtime_symbol.type) = structure_dtype | 137 fixed (sym -> runtime_symbol.type) = c_enum_dtype | 138 fixed (sym -> runtime_symbol.type) = c_union_dtype) & P_long_sw) 139 then do; 140 if (^this_symbol_occupies_storage (addr (P_reference), sym)) then do; 141 temp_str_1 = temp_str_1 || temp_str_2; 142 temp_str_2 = ""; 143 end; 144 call ioa_$ioa_switch (probe_info.output_switch, "^a { ", temp_str_1); 145 do sp = addrel (sym, sym -> runtime_symbol.son) /* for son */ 146 repeat next while (sp ^= null ()); 147 call print_member (sp, fixed (sym -> runtime_symbol.ndims, 6), 1); 148 if sp -> runtime_symbol.brother ^= (18)"0"b 149 then next = addrel (sp, sp -> runtime_symbol.brother); 150 else next = null (); 151 end; 152 call ioa_$ioa_switch (probe_info.output_switch, " } ^a", temp_str_2); 153 end; 154 else 155 call ioa_$ioa_switch (probe_info.output_switch, ioa_str, temp_str_1, 156 temp_str_2); 157 158 call ioa_$ioa_switch (probe_info.output_switch, "Declared in ^a", 159 probe_block_name_ (probe_info_ptr, P_reference.source_info_ptr, "0"b)); 160 return; 161 162 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 163 164 print_member: 165 proc (s, inheritance, level_num); 166 167 dcl s ptr parameter; 168 /* to a symbol node */ 169 dcl inheritance fixed bin parameter; 170 dcl level_num fixed bin parameter; 171 dcl q ptr; /* to son and sons' siblings */ 172 dcl nextq ptr; 173 dcl temp_ptr ptr; 174 dcl ioa_str char (14); 175 dcl print_whole_struct_or_union_ptr 176 ptr; 177 dcl saved_ptr ptr; 178 dcl temp_str_1 char (168) varying; 179 dcl temp_str_2 char (168) varying; 180 181 temp_ptr = 182 addrel (s, fixed (s -> runtime_symbol.name, 1)); 183 if (substr (temp_ptr -> acc_str.str_name, 1, 1) = "!") 184 then 185 return; 186 187 print_whole_struct_or_union_ptr = null (); 188 saved_ptr = null (); 189 190 if fixed (s -> runtime_symbol.type) = pointer_dtype 191 then 192 ioa_str = "^vx ^a^a"; 193 else 194 ioa_str = "^vx ^a ^a"; 195 temp_str_1 = get_c_attr_str (s, print_whole_struct_or_union_ptr); 196 temp_str_2 = 197 substr (temp_ptr -> acc_str.str_name, 1, temp_ptr -> acc_str.str_len) 198 || get_c_dims_str (s, inheritance, "0"b); 199 200 if print_whole_struct_or_union_ptr ^= null () then do; 201 saved_ptr = s; 202 s = print_whole_struct_or_union_ptr; 203 end; 204 if ((fixed (s -> runtime_symbol.type) = structure_dtype | 205 fixed (s -> runtime_symbol.type) = c_enum_dtype | 206 fixed (s -> runtime_symbol.type) = c_union_dtype) & P_long_sw) 207 then do; 208 if (^this_symbol_occupies_storage (addr (P_reference), s)) then do; 209 temp_str_1 = temp_str_1 || temp_str_2; 210 temp_str_2 = ""; 211 end; 212 call ioa_$ioa_switch (probe_info.output_switch, "^vx ^a {", 213 level_num * 4, temp_str_1); 214 if s -> runtime_symbol.son ^= (18)"0"b 215 & fixed (s -> runtime_symbol.type) ^= pointer_dtype 216 & fixed (s -> runtime_symbol.type) ^= c_typeref_dtype 217 then 218 do q = 219 addrel (s, s -> runtime_symbol.son) /* for our son, and for */ 220 repeat nextq /* all his brothers, until */ 221 while (q ^= null ()); /* curse PL/I, becasue it lacks do-until */ 222 call print_member (q, fixed (s -> runtime_symbol.ndims, 6), 223 level_num + 1); 224 if q -> runtime_symbol.brother = (18)"0"b 225 then nextq = null (); /* have reached the end */ 226 else nextq = addrel (q, q -> runtime_symbol.brother); 227 end; /* son,sibling loop */ 228 229 if P_long_sw 230 then 231 call ioa_$ioa_switch (probe_info.output_switch, " ^vx} ^a", 232 level_num * 4, temp_str_2); 233 end; 234 else 235 call ioa_$ioa_switch (probe_info.output_switch, ioa_str, 236 level_num * 4, temp_str_1, temp_str_2); 237 if saved_ptr ^= null () 238 then 239 s = saved_ptr; 240 241 end print_member; 242 243 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 244 245 get_c_attr_str: 246 proc (sym, p_w_s_o_u_ptr) returns (char (168) varying); 247 248 dcl sym parameter ptr; 249 dcl p_w_s_o_u_ptr parameter ptr; 250 251 dcl son_of_sym ptr; 252 dcl attr char (168) varying; 253 dcl temp char (64) varying; 254 dcl d_type fixed bin; 255 256 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 257 258 handle_typeref_or_entry: 259 proc (start_ptr, attr); 260 261 dcl start_ptr parameter ptr; 262 dcl attr char (*) var; 263 dcl son_of_sym ptr; 264 dcl temp_ptr ptr; 265 266 son_of_sym = 267 addrel (start_ptr, fixed (start_ptr -> runtime_symbol.son)); 268 269 if (fixed (son_of_sym -> runtime_symbol.type) = structure_dtype | 270 fixed (son_of_sym -> runtime_symbol.type) = c_enum_dtype | 271 fixed (son_of_sym -> runtime_symbol.type) = c_union_dtype) 272 then 273 next_sym = son_of_sym; 274 temp_ptr = 275 addrel (son_of_sym, fixed (son_of_sym -> runtime_symbol.name, 1)); 276 if (substr (temp_ptr -> acc_str.str_name, 1, 1) ^= "!") 277 then do; 278 attr = " " 279 || 280 substr (temp_ptr -> acc_str.str_name, 1, 281 temp_ptr -> acc_str.str_len) || " " || attr; 282 return; 283 end; 284 else if (fixed (son_of_sym -> runtime_symbol.type) = structure_dtype) 285 then 286 attr = " struct " || attr; 287 else if (fixed (son_of_sym -> runtime_symbol.type) = c_union_dtype) 288 then 289 attr = " union " || attr; 290 else if (fixed (son_of_sym -> runtime_symbol.type) = c_enum_dtype) 291 then 292 attr = " enum " || attr; 293 294 p_w_s_o_u_ptr = son_of_sym; 295 296 end handle_typeref_or_entry; 297 298 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 299 300 get_standard_type: 301 302 proc (); 303 304 if d_type = char_dtype 305 then 306 attr = " char " || attr; 307 else if d_type = real_fix_bin_1_uns_dtype 308 then 309 attr = " unsigned int " || attr; 310 else if d_type = real_fix_bin_1_dtype 311 then 312 attr = " int " || attr; 313 else if d_type = real_fix_bin_2_dtype 314 then 315 attr = " long " || attr; 316 else if d_type = real_fix_bin_2_uns_dtype 317 then 318 attr = " unsigned long " || attr; 319 else if d_type = real_flt_bin_1_dtype 320 then 321 attr = " float " || attr; 322 else if d_type = real_flt_bin_2_dtype 323 then 324 attr = " double " || attr; 325 else if d_type = label_dtype 326 then 327 attr = " label " || attr; 328 else if d_type = structure_dtype 329 then 330 attr = " struct "; 331 else if d_type = c_union_dtype 332 then 333 attr = " union "; 334 else if d_type = c_enum_dtype 335 then 336 attr = " enum "; 337 else if d_type = c_enum_const_dtype 338 then attr = ""; 339 else attr = " unknown type " || attr; 340 341 end get_standard_type; 342 343 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 344 345 d_type = fixed (sym -> runtime_symbol.type); 346 347 attr = ""; 348 temp = ""; 349 350 if d_type = c_typeref_dtype | d_type = ext_entry_runtime_dtype 351 then 352 call handle_typeref_or_entry (sym, attr); 353 else if d_type = pointer_dtype then do; 354 attr = "*"; 355 if sym -> runtime_symbol.son ^= "0"b then do; 356 son_of_sym = 357 addrel (sym, fixed (sym -> runtime_symbol.son, 17)); 358 do while (fixed (son_of_sym -> runtime_symbol.type) = pointer_dtype) 359 ; 360 attr = attr || "*"; 361 son_of_sym = 362 addrel (son_of_sym, 363 fixed (son_of_sym -> runtime_symbol.son)); 364 end; 365 d_type = fixed (son_of_sym -> runtime_symbol.type); 366 if d_type = ext_entry_runtime_dtype 367 then 368 tackon_parens = "()"; 369 if d_type = c_typeref_dtype | d_type = ext_entry_runtime_dtype 370 then 371 call handle_typeref_or_entry (son_of_sym, attr); 372 else call get_standard_type (); 373 end; 374 end; 375 else call get_standard_type (); 376 377 return (attr); 378 379 end get_c_attr_str; 380 381 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 382 383 get_c_dims_str: 384 proc (P_sym, P_inherited, P_verbose) returns (char (168) varying); 385 386 dcl P_sym ptr parameter; 387 dcl P_inherited fixed bin parameter; 388 dcl P_verbose bit (1) aligned parameter; 389 390 dcl (add_on, n, i) fixed bin; 391 dcl dims_str char (168) varying; 392 393 n = fixed (P_sym -> runtime_symbol.ndims, 6); 394 if n <= P_inherited 395 then dims_str = ""; 396 else do; 397 if P_verbose 398 then dims_str = " dimension ["; 399 else dims_str = " ["; 400 do i = P_inherited + 1 to n; 401 add_on = 1; 402 if P_sym -> runtime_symbol.bounds (i).lower ^= 0 403 then do; 404 dims_str = 405 dims_str 406 || value (P_sym -> runtime_symbol.bounds (i).lower, P_sym); 407 dims_str = dims_str || ":"; 408 add_on = 0; 409 end; 410 dims_str = 411 dims_str 412 || 413 value (P_sym -> runtime_symbol.bounds (i).upper + add_on, P_sym); 414 /* add 1 because C starts with 0 as lower bound */ 415 if i < n /* more to come */ 416 then dims_str = dims_str || "]["; 417 end; /* dims loop */ 418 dims_str = dims_str || "]"; 419 end; 420 421 return (dims_str); 422 end get_c_dims_str; 423 424 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 425 426 get_c_class_str: 427 proc (symb) returns (char (*) var); 428 429 dcl symb ptr parameter; 430 dcl c fixed bin;/* the class */ 431 432 c = fixed (symb -> runtime_symbol.address.class); 433 if c = 4 434 then return (" internal static"); 435 else if c = 5 436 then return (" external static"); 437 else if c = 12 | c = 13 438 then return (" constant"); 439 return (""); 440 441 end get_c_class_str; 442 443 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 444 445 value: 446 procedure (ev, context) returns (character (10) varying); 447 448 dcl ev fixed bin (35) parameter; 449 /* input: an encoded value */ 450 dcl context ptr parameter; 451 /* input: to symbol node of ev */ 452 453 dcl val fixed bin (35); 454 dcl 1 an_ev aligned like encoded_value; 455 dcl refp ptr; /* to data itself, for decoding */ 456 dcl block_ptr ptr; 457 dcl stack_ptr ptr; 458 dcl linkage_ptr ptr; 459 dcl code fixed bin (35); 460 dcl (char, ltrim, rtrim, string, unspec) 461 builtin; 462 463 dcl stu_$decode_runtime_value 464 entry (fixed bin (35), ptr, ptr, ptr, ptr, ptr, 465 fixed bin (35)) returns (fixed bin (35)); 466 467 /* GLOBAL imports P_reference */ 468 469 string (an_ev) = unspec (ev); 470 if an_ev.flag = "10"b 471 then do; /* it is encoded */ 472 stack_ptr = P_reference.source_info_ptr -> source_info.stack_ptr; 473 linkage_ptr = 474 P_reference.source_info_ptr -> source_info.seg_info_ptr 475 -> seg_info.linkage_ptr; 476 block_ptr = P_reference.source_info_ptr -> source_info.block_ptr; 477 refp = P_reference.address_ptr; 478 val = stu_$decode_runtime_value (ev, block_ptr, stack_ptr, linkage_ptr, 479 block_ptr, refp, code); 480 if code ^= 0 481 then 482 return ("*"); 483 end; 484 else val = ev; 485 486 return (rtrim (ltrim (char (val)))); 487 488 end value; 489 490 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 491 492 2 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 2 2* 2 3* James R. Davis 2 July 79 */ 2 4 2 5 dcl 1 source_info based aligned, 2 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 2 7 2 instruction_ptr ptr, /* to last instruction executed */ 2 8 2 block_ptr ptr, /* to runtime_block node */ 2 9 2 stack_ptr ptr, /* to a stack frame */ 2 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 2 11 2 seg_info_ptr ptr; /* to seg_info */ 2 12 2 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 2 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 2 15 2 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 493 494 3 1 /* BEGIN INCLUDE FILE ... probe_seg_info.incl.pl1 3 2* 3 3* 25 June 79 JRDavis 3 4* 3 5* Modified 7 April 1983, TO - Add fields for character offset/line 3 6* correction per file. 3 7**/ 3 8 3 9 dcl 1 seg_info based aligned, /* place to remember information about object seg */ 3 10 2 language_type fixed bin, /* language of source program */ 3 11 2 bits aligned, 3 12 3 ignore_case bit (1) unal, 3 13 3 bound_segment bit (1) unaligned, 3 14 3 component bit (1) unaligned, 3 15 3 pad bit (33) unal, 3 16 2 names, /* where to find it */ 3 17 3 directory_name character (168) unal, /* what directory */ 3 18 3 entry_name character (32) unal, /* what segment */ 3 19 3 segname character (32) unal, /* procedure segname definition */ 3 20 2 identifier fixed bin (71), /* time of object creation */ 3 21 2 pointers, /* location of various parts of segment */ 3 22 3 symbol_header_ptr ptr unal, /* to symbol section */ 3 23 3 original_source_ptr ptr unal, /* to segment source map */ 3 24 3 statement_map_ptr ptr unal, /* to segment statement map */ 3 25 3 break_info ptr unal, /* for unbound segments, and start of chain for 3 26* bound ones, -> break_map !obsolete, I think! */ 3 27 3 chain ptr unal, /* to entry for next component if bound */ 3 28 3 linkage_ptr ptr unal, /* to linkage section */ 3 29 2 bounds aligned, /* structure of bounds information */ 3 30 3 text_bounds, 3 31 4 start fixed bin (35), 3 32 4 end fixed bin (35), 3 33 3 symbol_bounds, 3 34 4 start fixed bin (35), 3 35 4 end fixed bin (35), 3 36 2 map_size fixed bin, /* size of statement map */ 3 37 2 error_code fixed bin (35), /* errors encoutered while getting info, are recorded here */ 3 38 2 bound_create_time fixed bin (71), /* time seg containing was bound or compiled. */ 3 39 2 bound_sym_header ptr unal, /* to sym. section header for bound seg */ 3 40 2 pad (1) fixed bin (35), 3 41 3 42 2 nfiles fixed bin, 3 43 2 per_file (seg_info_nfiles refer (seg_info.nfiles)), 3 44 3 file_pointers ptr unal, 3 45 3 break_line (0:3) fixed bin (18) unsigned unaligned; 3 46 3 47 dcl seg_info_nfiles fixed bin; /* for allocation purposes */ 3 48 3 49 3 50 /* END INCLUDE FILE ... probe_seg_info.incl.pl1 */ 495 496 4 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 6* Added new field (c_symbol) for C-Probe support. 4 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 4 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 4 9* Added new field (c_sub_c_ptr) for C-Probe_support. 4 10* END HISTORY COMMENTS */ 4 11 4 12 /* Split out of probe_tokens, 04/22/79 WOS */ 4 13 /* modified for probe variables Feb 19 80 JRD */ 4 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 4 15 4 16 dcl 1 reference_node aligned based, /* information about a reference */ 4 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 4 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 4 19 2 address_ptr pointer aligned, /* to location of variable */ 4 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 4 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 4 22 4 23 2 name char (256) unaligned varying, /* symbol name */ 4 24 4 25 2 type fixed bin (35), /* data type */ 4 26 2 descriptor fixed bin (35), /* type || packed */ 4 27 2 precision fixed bin (35), /* scale and precision */ 4 28 2 flags, 4 29 3 packed bit (1) unal, /* data is in packed format */ 4 30 3 constant bit (1) unal, /* data is really a constant */ 4 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 4 32 3 function bit (1) unal, /* reference is function value */ 4 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 4 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 4 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 4 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 4 37 3 probe_variable bit (1) unal, 4 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 4 39 3 builtin bit (1) unal, /* probe builtinvalue */ 4 40 3 c_ptr_to_char bit (1) unal, 4 41 3 c_sub_c_ptr bit (1) unal, 4 42 3 pad2 bit (23) unal, 4 43 4 44 2 optional_info, /* information which may or may not be present */ 4 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 4 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 4 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 4 48 3 n_subscripts fixed bin, /* number of subscripts present */ 4 49 4 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 4 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 4 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 4 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 4 54 2 c_symbol_ptr ptr unal, 4 55 2 pad1 (9) pointer unaligned, 4 56 2 end_of_reference_node pointer aligned; 4 57 4 58 4 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 4 60 2 number fixed bin, /* number of arguments actually present */ 4 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 4 62 4 63 4 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 4 65 2 number fixed bin, /* number actually present */ 4 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 4 67 4 68 4 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 4 70 2 ptr (2, 16) pointer aligned; 4 71 4 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 497 498 5 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 5 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 5 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 5 8* Objects of this type are PASCAL string types. 5 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 5 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 5 11* Added the new C types. 5 12* END HISTORY COMMENTS */ 5 13 5 14 /* This include file defines mnemonic names for the Multics 5 15* standard descriptor types, using both pl1 and cobol terminology. 5 16* PG 780613 5 17* JRD 790530 5 18* JRD 791016 5 19* MBW 810731 5 20* TGO 830614 Add hex types. 5 21* Modified June 83 JMAthane to add PASCAL data types 5 22* TGO 840120 Add float dec extended and generic, float binary generic 5 23**/ 5 24 5 25 dcl (real_fix_bin_1_dtype init (1), 5 26 real_fix_bin_2_dtype init (2), 5 27 real_flt_bin_1_dtype init (3), 5 28 real_flt_bin_2_dtype init (4), 5 29 cplx_fix_bin_1_dtype init (5), 5 30 cplx_fix_bin_2_dtype init (6), 5 31 cplx_flt_bin_1_dtype init (7), 5 32 cplx_flt_bin_2_dtype init (8), 5 33 real_fix_dec_9bit_ls_dtype init (9), 5 34 real_flt_dec_9bit_dtype init (10), 5 35 cplx_fix_dec_9bit_ls_dtype init (11), 5 36 cplx_flt_dec_9bit_dtype init (12), 5 37 pointer_dtype init (13), 5 38 offset_dtype init (14), 5 39 label_dtype init (15), 5 40 entry_dtype init (16), 5 41 structure_dtype init (17), 5 42 area_dtype init (18), 5 43 bit_dtype init (19), 5 44 varying_bit_dtype init (20), 5 45 char_dtype init (21), 5 46 varying_char_dtype init (22), 5 47 file_dtype init (23), 5 48 real_fix_dec_9bit_ls_overp_dtype init (29), 5 49 real_fix_dec_9bit_ts_overp_dtype init (30), 5 50 real_fix_bin_1_uns_dtype init (33), 5 51 real_fix_bin_2_uns_dtype init (34), 5 52 real_fix_dec_9bit_uns_dtype init (35), 5 53 real_fix_dec_9bit_ts_dtype init (36), 5 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 5 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 5 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 5 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 5 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 5 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 5 60 real_flt_dec_4bit_bytealigned_dtype init (44), 5 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 5 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 5 63 real_flt_hex_1_dtype init (47), 5 64 real_flt_hex_2_dtype init (48), 5 65 cplx_flt_hex_1_dtype init (49), 5 66 cplx_flt_hex_2_dtype init (50), 5 67 c_typeref_dtype init (54), 5 68 c_enum_dtype init (55), 5 69 c_enum_const_dtype init (56), 5 70 c_union_dtype init (57), 5 71 algol68_straight_dtype init (59), 5 72 algol68_format_dtype init (60), 5 73 algol68_array_descriptor_dtype init (61), 5 74 algol68_union_dtype init (62), 5 75 5 76 cobol_comp_6_dtype init (1), 5 77 cobol_comp_7_dtype init (1), 5 78 cobol_display_ls_dtype init (9), 5 79 cobol_structure_dtype init (17), 5 80 cobol_char_string_dtype init (21), 5 81 cobol_display_ls_overp_dtype init (29), 5 82 cobol_display_ts_overp_dtype init (30), 5 83 cobol_display_uns_dtype init (35), 5 84 cobol_display_ts_dtype init (36), 5 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 5 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 5 87 cobol_comp_5_uns_dtype init (40), 5 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 5 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 5 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 5 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 5 92 cplx_flt_dec_generic_dtype init (84), 5 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 5 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 5 95 5 96 dcl (ft_integer_dtype init (1), 5 97 ft_real_dtype init (3), 5 98 ft_double_dtype init (4), 5 99 ft_complex_dtype init (7), 5 100 ft_complex_double_dtype init (8), 5 101 ft_external_dtype init (16), 5 102 ft_logical_dtype init (19), 5 103 ft_char_dtype init (21), 5 104 ft_hex_real_dtype init (47), 5 105 ft_hex_double_dtype init (48), 5 106 ft_hex_complex_dtype init (49), 5 107 ft_hex_complex_double_dtype init (50) 5 108 ) fixed bin internal static options (constant); 5 109 5 110 dcl (algol68_short_int_dtype init (1), 5 111 algol68_int_dtype init (1), 5 112 algol68_long_int_dtype init (2), 5 113 algol68_real_dtype init (3), 5 114 algol68_long_real_dtype init (4), 5 115 algol68_compl_dtype init (7), 5 116 algol68_long_compl_dtype init (8), 5 117 algol68_bits_dtype init (19), 5 118 algol68_bool_dtype init (19), 5 119 algol68_char_dtype init (21), 5 120 algol68_byte_dtype init (21), 5 121 algol68_struct_struct_char_dtype init (22), 5 122 algol68_struct_struct_bool_dtype init (20) 5 123 ) fixed bin internal static options (constant); 5 124 5 125 dcl (label_constant_runtime_dtype init (24), 5 126 int_entry_runtime_dtype init (25), 5 127 ext_entry_runtime_dtype init (26), 5 128 ext_procedure_runtime_dtype init (27), 5 129 picture_runtime_dtype init (63) 5 130 ) fixed bin internal static options (constant); 5 131 5 132 dcl (pascal_integer_dtype init (1), 5 133 pascal_real_dtype init (4), 5 134 pascal_label_dtype init (24), 5 135 pascal_internal_procedure_dtype init (25), 5 136 pascal_exportable_procedure_dtype init (26), 5 137 pascal_imported_procedure_dtype init (27), 5 138 pascal_typed_pointer_type_dtype init (64), 5 139 pascal_char_dtype init (65), 5 140 pascal_boolean_dtype init (66), 5 141 pascal_record_file_type_dtype init (67), 5 142 pascal_record_type_dtype init (68), 5 143 pascal_set_dtype init (69), 5 144 pascal_enumerated_type_dtype init (70), 5 145 pascal_enumerated_type_element_dtype init (71), 5 146 pascal_enumerated_type_instance_dtype init (72), 5 147 pascal_user_defined_type_dtype init (73), 5 148 pascal_user_defined_type_instance_dtype init (74), 5 149 pascal_text_file_dtype init (75), 5 150 pascal_procedure_type_dtype init (76), 5 151 pascal_variable_formal_parameter_dtype init (77), 5 152 pascal_value_formal_parameter_dtype init (78), 5 153 pascal_entry_formal_parameter_dtype init (79), 5 154 pascal_parameter_procedure_dtype init (80), 5 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 5 156 5 157 5 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 499 500 6 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 6 2 6 3 dcl 1 runtime_symbol aligned based, 6 4 2 flag unal bit(1), /* always "1"b for Version II */ 6 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 6 6 2 array_units unal bit(2), 6 7 2 units unal bit(2), /* addressing units */ 6 8 2 type unal bit(6), /* data type */ 6 9 2 level unal bit(6), /* structure level */ 6 10 2 ndims unal bit(6), /* number of dimensions */ 6 11 2 bits unal, 6 12 3 aligned bit(1), 6 13 3 packed bit(1), 6 14 3 simple bit(1), 6 15 2 skip unal bit(1), 6 16 2 scale unal bit(8), /* arithmetic scale factor */ 6 17 2 name unal bit(18), /* rel ptr to acc name */ 6 18 2 brother unal bit(18), /* rel ptr to brother entry */ 6 19 2 father unal bit(18), /* rel ptr to father entry */ 6 20 2 son unal bit(18), /* rel ptr to son entry */ 6 21 2 address unal, 6 22 3 location bit(18), /* location in storage class */ 6 23 3 class bit(4), /* storage class */ 6 24 3 next bit(14), /* rel ptr to next of same class */ 6 25 2 size fixed bin(35), /* encoded string|arith size */ 6 26 2 offset fixed bin(35), /* encoded offset from address */ 6 27 2 virtual_org fixed bin(35), 6 28 2 bounds(1), 6 29 3 lower fixed bin(35), /* encoded lower bound */ 6 30 3 upper fixed bin(35), /* encoded upper bound */ 6 31 3 multiplier fixed bin(35); /* encoded multiplier */ 6 32 6 33 dcl 1 runtime_bound based, 6 34 2 lower fixed bin(35), 6 35 2 upper fixed bin(35), 6 36 2 multiplier fixed bin(35); 6 37 6 38 dcl 1 runtime_block aligned based, 6 39 2 flag unal bit(1), /* always "1"b for Version II */ 6 40 2 quick unal bit(1), /* "1"b if quick block */ 6 41 2 fortran unal bit(1), /* "1"b if fortran program */ 6 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 6 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 6 44 2 skip unal bit(1), 6 45 2 type unal bit(6), /* = 0 for a block node */ 6 46 2 number unal bit(6), /* begin block number */ 6 47 2 start unal bit(18), /* rel ptr to start of symbols */ 6 48 2 name unal bit(18), /* rel ptr to name of proc */ 6 49 2 brother unal bit(18), /* rel ptr to brother block */ 6 50 2 father unal bit(18), /* rel ptr to father block */ 6 51 2 son unal bit(18), /* rel ptr to son block */ 6 52 2 map unal, 6 53 3 first bit(18), /* rel ptr to first word of map */ 6 54 3 last bit(18), /* rel ptr to last word of map */ 6 55 2 entry_info unal bit(18), /* info about entry of quick block */ 6 56 2 header unal bit(18), /* rel ptr to symbol header */ 6 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 6 58* on start list with length >= 2**i */ 6 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 6 60* on list with length >= 2 ** i */ 6 61 2 owner unal bit(18); /* rel ptr to owner block */ 6 62 6 63 dcl 1 runtime_token aligned based, 6 64 2 next unal bit(18), /* rel ptr to next token */ 6 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 6 66 2 name, /* ACC */ 6 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 6 68 3 string unal char(n refer(runtime_token.size)); 6 69 6 70 dcl 1 encoded_value aligned based, 6 71 2 flag bit (2) unal, 6 72 2 code bit (4) unal, 6 73 2 n1 bit (6) unal, 6 74 2 n2 bit (6) unal, 6 75 2 n3 bit (18) unal; 6 76 6 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 501 502 503 504 end probe_print_c_attr_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1545.0 probe_print_c_attr_.pl1 >spec>install>MR12.2-1210>probe_print_c_attr_.pl1 491 1 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 493 2 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 495 3 11/02/83 1845.0 probe_seg_info.incl.pl1 >ldd>include>probe_seg_info.incl.pl1 497 4 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 499 5 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 501 6 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.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. P_code parameter fixed bin(35,0) dcl 29 set ref 23 96* P_inherited parameter fixed bin(17,0) dcl 387 ref 383 394 400 P_long_sw parameter bit(1) dcl 28 ref 23 136 204 229 P_probe_info_ptr parameter pointer dcl 26 ref 23 95 P_reference based structure level 1 dcl 31 set ref 140 140 208 208 P_refp parameter pointer dcl 27 ref 23 97 P_sym parameter pointer dcl 386 set ref 383 393 402 404 404* 410 410* P_verbose parameter bit(1) dcl 388 ref 383 397 acc_str based structure level 1 packed packed unaligned dcl 45 add_on 000100 automatic fixed bin(17,0) dcl 390 set ref 401* 408* 410 addr builtin function dcl 36 ref 140 140 208 208 addrel builtin function dcl 36 ref 74 101 110 145 148 181 214 226 266 274 356 361 address 3 based structure level 2 packed packed unaligned dcl 6-3 address_ptr 4 based pointer level 2 dcl 31 set ref 477 an_ev 000167 automatic structure level 1 dcl 454 set ref 469* attr 000102 automatic varying char(168) dcl 252 in procedure "get_c_attr_str" set ref 304* 304 307* 307 310* 310 313* 313 316* 316 319* 319 322* 322 325* 325 328* 331* 334* 337* 339* 339 347* 350* 354* 360* 360 369* 377 attr parameter varying char dcl 262 in procedure "handle_typeref_or_entry" set ref 258 278* 278 284* 284 287* 287 290* 290 block_ptr 000172 automatic pointer dcl 456 in procedure "value" set ref 476* 478* 478* block_ptr 4 based pointer level 2 in structure "source_info" dcl 2-5 in procedure "probe_print_c_attr_" set ref 78* 476 bounds 7 based structure array level 2 dcl 6-3 brother 1(18) based bit(18) level 2 packed packed unaligned dcl 6-3 ref 148 148 224 226 c 000100 automatic fixed bin(17,0) dcl 430 set ref 432* 433 435 437 437 c_enum_const_dtype constant fixed bin(17,0) initial dcl 5-25 ref 337 c_enum_dtype constant fixed bin(17,0) initial dcl 5-25 ref 136 204 269 290 334 c_typeref_dtype constant fixed bin(17,0) initial dcl 5-25 ref 214 350 369 c_union_dtype constant fixed bin(17,0) initial dcl 5-25 ref 136 204 269 287 331 char builtin function dcl 460 ref 486 char_dtype constant fixed bin(17,0) initial dcl 5-25 ref 304 class 3(18) based bit(4) level 3 packed packed unaligned dcl 6-3 ref 71 84 103 432 code 000200 automatic fixed bin(35,0) dcl 459 set ref 478* 480 containing_block 000100 automatic pointer dcl 63 set ref 78* context parameter pointer dcl 450 ref 445 d_type 000176 automatic fixed bin(17,0) dcl 254 set ref 304 307 310 313 316 319 322 325 328 331 334 337 345* 350 350 353 365* 366 369 369 dims_str 000103 automatic varying char(168) dcl 391 set ref 394* 397* 399* 404* 404 407* 407 410* 410 415* 415 418* 418 421 dummy_ptr 000122 automatic pointer dcl 52 set ref 94* 115* 127* encoded_value based structure level 1 dcl 6-70 ev parameter fixed bin(35,0) dcl 448 set ref 445 469 478* 484 ext_entry_runtime_dtype constant fixed bin(17,0) initial dcl 5-125 ref 109 350 366 369 fixed builtin function dcl 36 ref 71 74 84 101 103 103 103 110 111 122 136 136 136 147 147 181 190 204 204 204 214 214 222 222 266 269 269 269 274 284 287 290 345 356 358 361 365 393 432 flag 000167 automatic bit(2) level 2 packed packed unaligned dcl 454 set ref 470 i 000102 automatic fixed bin(17,0) dcl 390 set ref 400* 402 404 410 415* inheritance parameter fixed bin(17,0) dcl 169 set ref 164 196* io_switches 66 based structure level 2 dcl 1-18 ioa_$ioa_switch 000010 constant entry external dcl 38 ref 115 144 152 154 158 212 229 234 ioa_$ioa_switch_nnl 000012 constant entry external dcl 38 ref 103 ioa_str 000106 automatic char(14) packed unaligned dcl 174 in procedure "print_member" set ref 190* 193* 234* ioa_str 000114 automatic char(14) packed unaligned dcl 50 in procedure "probe_print_c_attr_" set ref 111* 114* 115* 122* 125* 154* label_dtype constant fixed bin(17,0) initial dcl 5-25 ref 325 level 0(12) based bit(6) level 2 packed packed unaligned dcl 6-3 ref 103 level_num parameter fixed bin(17,0) dcl 170 ref 164 212 222 229 234 linkage_ptr 000176 automatic pointer dcl 458 in procedure "value" set ref 473* 478* linkage_ptr 103 based pointer level 3 in structure "seg_info" packed packed unaligned dcl 3-9 in procedure "probe_print_c_attr_" ref 473 location 3 based bit(18) level 3 packed packed unaligned dcl 6-3 ref 103 lower 7 based fixed bin(35,0) array level 3 dcl 6-3 set ref 402 404* ltrim builtin function dcl 460 ref 486 n 000101 automatic fixed bin(17,0) dcl 390 set ref 393* 394 400 415 name 1 based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 6-3 in procedure "probe_print_c_attr_" ref 74 101 181 274 name 12 based varying char(256) level 2 in structure "reference_node" dcl 4-16 in procedure "probe_print_c_attr_" ref 77 78 name_ptr 000112 automatic pointer dcl 49 set ref 74* 75 75 101* 115 115 115 115 128 128 ndims 0(18) based bit(6) level 2 packed packed unaligned dcl 6-3 ref 147 147 222 222 393 next 000106 automatic pointer dcl 35 set ref 148* 150* 151 next_sym 000110 automatic pointer dcl 48 set ref 99* 132 132 269* nextq 000102 automatic pointer dcl 172 set ref 224* 226* 227 null builtin function dcl 36 ref 82 94 99 132 145 150 187 188 200 214 224 237 output_switch 70 based pointer level 3 dcl 1-18 set ref 103* 115* 144* 152* 154* 158* 212* 229* 234* p_w_s_o_u_ptr parameter pointer dcl 249 set ref 245 294* pointer_dtype constant fixed bin(17,0) initial dcl 5-25 ref 111 122 190 214 353 358 pointers 76 based structure level 2 dcl 3-9 print_whole_struct_or_union_ptr 000112 automatic pointer dcl 175 set ref 187* 195* 200 202 probe_block_name_ 000014 constant entry external dcl 43 ref 158 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000252 automatic pointer dcl 1-86 set ref 95* 103 115 144 152 154 158 158* 212 229 234 q 000100 automatic pointer dcl 171 set ref 214* 214* 222* 224 226 226* real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 5-25 ref 310 real_fix_bin_1_uns_dtype constant fixed bin(17,0) initial dcl 5-25 ref 307 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 5-25 ref 313 real_fix_bin_2_uns_dtype constant fixed bin(17,0) initial dcl 5-25 ref 316 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 5-25 ref 319 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 5-25 ref 322 ref_ptr parameter pointer dcl 61 ref 58 77 78 78 reference_node based structure level 1 dcl 4-16 refp 000170 automatic pointer dcl 455 in procedure "value" set ref 477* 478* refp 000100 automatic pointer dcl 32 in procedure "probe_print_c_attr_" set ref 97* 98 109 140 140 158 208 208 472 473 476 477 rtrim builtin function dcl 460 ref 486 runtime_symbol based structure level 1 dcl 6-3 s parameter pointer dcl 167 set ref 164 181 181 190 195* 196* 201 202* 204 204 204 208* 214 214 214 214 214 222 222 237* saved_ptr 000114 automatic pointer dcl 177 set ref 188* 201* 237 237 seg_info based structure level 1 dcl 3-9 seg_info_ptr 12 based pointer level 2 dcl 2-5 ref 473 son 2(18) based bit(18) level 2 packed packed unaligned dcl 6-3 ref 110 145 214 214 266 355 356 361 son_of_sym 000206 automatic pointer dcl 263 in procedure "handle_typeref_or_entry" set ref 266* 269 269 269 269 274 274 284 287 290 294 son_of_sym 000100 automatic pointer dcl 251 in procedure "get_c_attr_str" set ref 356* 358 361* 361 361 365 369* source_info based structure level 1 dcl 2-5 source_info_ptr 10 based pointer level 2 in structure "P_reference" dcl 31 in procedure "probe_print_c_attr_" set ref 158* 472 473 476 source_info_ptr 10 based pointer level 2 in structure "reference_node" dcl 4-16 in procedure "probe_print_c_attr_" ref 78 sp 000104 automatic pointer dcl 34 set ref 145* 145* 147* 148 148 148* stack_ptr 000174 automatic pointer dcl 457 in procedure "value" set ref 472* 478* stack_ptr 6 based pointer level 2 in structure "source_info" dcl 2-5 in procedure "probe_print_c_attr_" ref 472 start_ptr parameter pointer dcl 261 ref 258 266 266 steps 000102 automatic fixed bin(17,0) dcl 64 set ref 78* str_len based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 45 ref 75 75 115 115 115 115 128 128 183 196 196 276 278 278 str_name 0(09) based char level 2 packed packed unaligned dcl 45 ref 75 115 115 128 183 196 276 278 string builtin function dcl 460 set ref 469* structure_dtype constant fixed bin(17,0) initial dcl 5-25 ref 136 204 269 284 328 stu_$decode_runtime_value 000020 constant entry external dcl 463 ref 478 stu_$find_runtime_symbol 000016 constant entry external dcl 67 ref 78 substr builtin function dcl 36 ref 75 115 115 128 183 196 276 278 sym parameter pointer dcl 248 in procedure "get_c_attr_str" set ref 245 345 350* 355 356 356 sym 000102 automatic pointer dcl 33 in procedure "probe_print_c_attr_" set ref 74 74 98* 101 101 103 103 103 110* 110 110 111 115* 122 127* 128* 128* 132* 136 136 136 140* 145 145 147 147 sym_ptr parameter pointer dcl 62 ref 58 71 symb parameter pointer dcl 429 ref 426 432 symbol_ptr based pointer level 2 dcl 31 set ref 98 t_name 000106 automatic varying char(168) dcl 66 set ref 75* 77 t_ptr 000104 automatic pointer dcl 65 set ref 78* 82 84 tackon_parens 000120 automatic varying char(2) initial dcl 51 set ref 51* 366* temp 000155 automatic varying char(64) dcl 253 set ref 348* temp_ptr 000104 automatic pointer dcl 173 in procedure "print_member" set ref 181* 183 196 196 temp_ptr 000210 automatic pointer dcl 264 in procedure "handle_typeref_or_entry" set ref 274* 276 278 278 temp_str_1 000116 automatic varying char(168) dcl 178 in procedure "print_member" set ref 195* 209* 209 212* 234* temp_str_1 000124 automatic varying char(168) dcl 53 in procedure "probe_print_c_attr_" set ref 127* 141* 141 144* 154* temp_str_2 000177 automatic varying char(168) dcl 54 in procedure "probe_print_c_attr_" set ref 128* 141 142* 152* 154* temp_str_2 000171 automatic varying char(168) dcl 179 in procedure "print_member" set ref 196* 209 210* 229* 234* type 0(06) based bit(6) level 2 in structure "runtime_symbol" packed packed unaligned dcl 6-3 in procedure "probe_print_c_attr_" ref 111 122 136 136 136 190 204 204 204 214 214 269 269 269 284 287 290 345 358 365 type 113 based fixed bin(35,0) level 2 in structure "P_reference" dcl 31 in procedure "probe_print_c_attr_" set ref 109 unspec builtin function dcl 460 ref 469 upper 10 based fixed bin(35,0) array level 3 dcl 6-3 ref 410 val 000166 automatic fixed bin(35,0) dcl 453 set ref 478* 484* 486 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 5-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 5-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 5-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 5-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 5-25 area_dtype internal static fixed bin(17,0) initial dcl 5-25 bit_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 5-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 5-25 current_source based structure level 1 dcl 2-13 entry_dtype internal static fixed bin(17,0) initial dcl 5-25 expression_area based area(1024) dcl 1-95 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 5-125 file_dtype internal static fixed bin(17,0) initial dcl 5-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 5-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 5-96 initial_source based structure level 1 dcl 2-14 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 5-125 ioa_$rsnnl 000000 constant entry external dcl 38 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 5-125 offset_dtype internal static fixed bin(17,0) initial dcl 5-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 5-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 5-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 5-125 probe_area based area(1024) dcl 1-93 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 5-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 5-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 5-25 reference_arg_list based structure level 1 dcl 4-59 reference_subscripts based structure level 1 dcl 4-64 runtime_block based structure level 1 dcl 6-38 runtime_bound based structure level 1 unaligned dcl 6-33 runtime_token based structure level 1 dcl 6-63 scratch_area based area(1024) dcl 1-92 seg_info_nfiles automatic fixed bin(17,0) dcl 3-47 subscript_reference_ptrs based structure level 1 dcl 4-69 varying_bit_dtype internal static fixed bin(17,0) initial dcl 5-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 5-25 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. get_c_attr_str 001620 constant entry internal dcl 245 ref 115 127 195 get_c_class_str 002756 constant entry internal dcl 426 ref 128 get_c_dims_str 002547 constant entry internal dcl 383 ref 128 196 get_standard_type 002215 constant entry internal dcl 300 ref 372 375 handle_typeref_or_entry 001756 constant entry internal dcl 258 ref 350 369 print_member 001132 constant entry internal dcl 164 ref 147 222 probe_print_c_attr_ 000137 constant entry external dcl 23 this_symbol_occupies_storage 000762 constant entry internal dcl 58 ref 140 208 value 003042 constant entry internal dcl 445 ref 404 410 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3370 3412 3220 3400 Length 3730 3220 22 302 147 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_print_c_attr_ 313 external procedure is an external procedure. this_symbol_occupies_storage 138 internal procedure is called by several nonquick procedures. print_member 234 internal procedure calls itself recursively. get_c_attr_str 163 internal procedure is called by several nonquick procedures. handle_typeref_or_entry internal procedure shares stack frame of internal procedure get_c_attr_str. get_standard_type internal procedure shares stack frame of internal procedure get_c_attr_str. get_c_dims_str 169 internal procedure is called during a stack extension. get_c_class_str 65 internal procedure uses returns(char(*)) or returns(bit(*)). value internal procedure shares stack frame of internal procedure get_c_dims_str. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME get_c_attr_str 000100 son_of_sym get_c_attr_str 000102 attr get_c_attr_str 000155 temp get_c_attr_str 000176 d_type get_c_attr_str 000206 son_of_sym handle_typeref_or_entry 000210 temp_ptr handle_typeref_or_entry get_c_class_str 000100 c get_c_class_str get_c_dims_str 000100 add_on get_c_dims_str 000101 n get_c_dims_str 000102 i get_c_dims_str 000103 dims_str get_c_dims_str 000166 val value 000167 an_ev value 000170 refp value 000172 block_ptr value 000174 stack_ptr value 000176 linkage_ptr value 000200 code value print_member 000100 q print_member 000102 nextq print_member 000104 temp_ptr print_member 000106 ioa_str print_member 000112 print_whole_struct_or_union_ptr print_member 000114 saved_ptr print_member 000116 temp_str_1 print_member 000171 temp_str_2 print_member probe_print_c_attr_ 000100 refp probe_print_c_attr_ 000102 sym probe_print_c_attr_ 000104 sp probe_print_c_attr_ 000106 next probe_print_c_attr_ 000110 next_sym probe_print_c_attr_ 000112 name_ptr probe_print_c_attr_ 000114 ioa_str probe_print_c_attr_ 000120 tackon_parens probe_print_c_attr_ 000122 dummy_ptr probe_print_c_attr_ 000124 temp_str_1 probe_print_c_attr_ 000177 temp_str_2 probe_print_c_attr_ 000252 probe_info_ptr probe_print_c_attr_ this_symbol_occupies_storage 000100 containing_block this_symbol_occupies_storage 000102 steps this_symbol_occupies_storage 000104 t_ptr this_symbol_occupies_storage 000106 t_name this_symbol_occupies_storage THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac shorten_stack ext_entry int_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$ioa_switch ioa_$ioa_switch_nnl probe_block_name_ stu_$decode_runtime_value stu_$find_runtime_symbol NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000132 51 000144 94 000145 95 000147 96 000153 97 000154 98 000157 99 000161 101 000162 103 000167 109 000220 110 000224 111 000231 114 000245 115 000250 119 000326 122 000330 125 000344 127 000347 128 000361 132 000457 136 000466 140 000512 141 000531 142 000543 144 000544 145 000570 147 000602 148 000622 150 000633 151 000635 152 000640 153 000664 154 000665 158 000712 160 000760 58 000761 71 000767 74 001003 75 001012 77 001026 78 001036 82 001075 84 001110 88 001123 164 001131 181 001137 183 001147 187 001153 188 001155 190 001156 193 001172 195 001175 196 001210 200 001257 201 001264 202 001270 204 001272 208 001321 209 001341 210 001353 212 001354 214 001411 222 001444 224 001470 226 001500 227 001503 229 001506 233 001551 234 001552 237 001607 241 001616 245 001617 345 001625 347 001633 348 001634 350 001635 353 001656 354 001660 355 001664 356 001670 358 001673 360 001704 361 001713 364 001720 365 001721 366 001723 369 001732 372 001743 374 001744 375 001745 377 001746 258 001756 266 001767 269 001776 274 002020 276 002025 278 002031 282 002101 284 002103 287 002132 290 002162 294 002211 296 002214 300 002215 304 002216 307 002243 310 002270 313 002315 316 002342 319 002367 322 002414 325 002441 328 002466 331 002477 334 002507 337 002517 339 002523 341 002544 383 002546 393 002554 394 002562 397 002566 399 002577 400 002603 401 002613 402 002615 404 002625 407 002652 408 002661 410 002662 415 002717 417 002734 418 002736 421 002745 426 002755 432 002763 433 002772 435 003004 437 003016 439 003032 445 003042 469 003044 470 003046 472 003052 473 003057 476 003062 477 003064 478 003067 480 003114 483 003125 484 003126 486 003130 ----------------------------------------------------------- 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