COMPILATION LISTING OF SEGMENT amu_print_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/13/85 0932.3 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 amu_print_: proc; 7 return; 8 9 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend,ifthendo,ifthen,^thendo */ 10 11 /* Parameters */ 12 13 dcl P_data_ptr ptr; 14 dcl (P_number_of_words, P_offset) fixed bin (18); 15 dcl P_af_lth fixed bin(21); 16 dcl P_af_ptr ptr; 17 dcl P_amu_info_ptr ptr; 18 dcl P_aptep ptr; 19 dcl P_apte_offset fixed bin (18); 20 dcl P_apte_idx fixed bin; 21 dcl dmp ptr; 22 dcl doffset fixed bin(18); 23 dcl num_of_words fixed bin; 24 25 /* External Entries */ 26 27 dcl amu_$definition_offset entry (ptr, char (*), char (*), fixed bin (35)) returns (fixed bin (18)); 28 dcl amu_$do_translation entry (ptr, fixed bin, ptr, fixed bin (18), fixed bin, fixed bin (35)); 29 dcl amu_$fdump_mpt_temp_change_idx entry (ptr, fixed bin); 30 dcl amu_$fdump_mpt_revert_idx entry (ptr); 31 dcl amu_$get_name entry (ptr, ptr) returns (char (*)); 32 dcl amu_$print_text_offset entry (ptr, char(*) var, fixed bin(18)); 33 dcl amu_$return_val_cpu_from_idx entry (ptr, fixed bin) returns (char (1)); 34 dcl amu_$return_val_idx_from_dbr entry (ptr, fixed bin (24)) returns (fixed bin); 35 dcl convert_status_code_ entry (fixed bin(35), char(8) aligned, char(100) aligned); 36 dcl get_line_length_$switch entry (ptr, fixed bin (35)) returns (fixed bin); 37 dcl decode_clock_value_$date_time entry (fixed bin(71), fixed bin, fixed bin, fixed bin, fixed bin, 38 fixed bin, fixed bin, fixed bin(71), fixed bin, char(3), 39 fixed bin(35)); 40 dcl ( 41 ioa_, 42 ioa_$rsnnl 43 ) entry () options (variable); 44 45 /* External Static */ 46 47 dcl iox_$user_io ptr ext static; 48 49 /* Automatic */ 50 51 dcl af_sw bit(1); 52 dcl all_cpu_mask bit (8) init ("11111111"b); 53 dcl bcode fixed bin (35); 54 dcl char_sw bit (1) unal; 55 dcl chars char (64) var; 56 dcl code fixed bin (35); 57 dcl cpu_str char (8) var init (""); 58 dcl data_ptr ptr; 59 dcl dom fixed bin; 60 dcl dow fixed bin; 61 dcl good_proc bit (1); 62 dcl hour fixed bin; 63 dcl ignore fixed bin; 64 dcl i; 65 dcl iocb_name char (32) aligned; 66 dcl iocbp ptr; 67 dcl line_size fixed bin; 68 dcl line_ptr ptr; 69 dcl lines_to_dump fixed bin; 70 dcl long_output bit (1); 71 dcl longinfo char(100) aligned; 72 dcl min fixed bin; 73 dcl mod8 fixed bin; 74 dcl month fixed bin; 75 dcl msec fixed bin (71); 76 dcl nprt bit (1); 77 dcl number_of_words fixed bin; 78 dcl opl fixed bin; 79 dcl pequal bit (1); 80 dcl poffset fixed bin (18); 81 dcl pp ptr; 82 dcl real_offset fixed bin (18); 83 dcl sec fixed bin; 84 dcl shortinfo char(8) aligned; 85 dcl start_line fixed bin (18); 86 dcl t_data (8) fixed bin (35); 87 dcl t_offset fixed bin (18); 88 dcl t_idx fixed bin; 89 dcl t_ptr ptr; 90 dcl t_segno fixed bin; 91 dcl tp ptr; 92 dcl w (0:7) fixed bin based (pp); 93 dcl wait_type char (40) var; 94 dcl year fixed bin; 95 dcl yr_char char(10); 96 dcl zone char(3); 97 98 /* Based */ 99 100 dcl PTRS (0:7) ptr aligned based (pp); 101 dcl PPTRS (0:7) ptr unaligned based (pp); 102 dcl based_char char (32) based (t_ptr); 103 dcl based_event char (4) based; 104 dcl inst_word (number_of_words) bit (36) based (data_ptr); 105 dcl wab bit (8 * 36) based; 106 107 /* Internal static */ 108 109 dcl vfmt char (184) int static options (constant) 110 init ( 111 "^6o ^6o^[ ^w^;^2( ^w^)^;^3( ^w^)^;^4( ^w^)^;^4( ^w^)^[^2s^;^/^6o ^6o^] ^w^;^4( ^w^)^[^2s^;^/^6o ^6o^]^2( ^w^)^;^4( ^w^)^[^2s^;^/^6o ^6o^]^3( ^w^)^;^4( ^w^)^[^2s^;^/^6o ^6o^]^4( ^w^)^]" 112 ); 113 dcl pfmt char (208) int static options (constant) 114 init ( 115 "^6o ^6o^[ ^12p^;^2( ^12p^)^;^3( ^12p^)^;^4( ^12p^)^;^4( ^12p^)^[^2s^;^/^6o ^6o^] ^12p^;^4( ^12p^)^[^2s^;^/^6o ^6o^]^2( ^12p^)^;^4( ^12p^)^[^2s^;^/^6o ^6o^]^3( ^12p^)^;^4( ^12p^)^[^2s^;^/^6o ^6o^]^4( ^12p^)^]" 116 ); 117 118 dcl process_st (0:6) char (9) varying int static options (constant) 119 init ("empty", "running", "ready", "waiting", "blocked", "stopped", "ptlocking"); 120 121 /* Builtins */ 122 123 dcl (addr, addrel, after, convert, 124 divide, fixed, length, mod, 125 null, rtrim, substr, 126 translate, unspec) builtin; 127 128 129 /* This code direct from ol_dump_$util_dump_oct */ 130 /* amu_dump_oct - entry to display words in octal depending on line length */ 131 dump_oct: 132 entry (dmp, doffset, num_of_words); 133 134 call ioa_ (""); 135 long_output = output_mode (); /* find terminal line length */ 136 lines_to_dump = divide (num_of_words, 8, 17, 0); /* find out how many full lines to dump */ 137 mod8 = 8; 138 pp = dmp; 139 tp = null; 140 poffset = doffset; 141 opl = doffset + num_of_words; 142 nprt, pequal = "0"b; 143 144 do i = 0 by 8 while (poffset < opl); 145 if nprt then /* if last line was not printed */ pequal = "1"b; 146 if tp ^= null then /* if not first line */ 147 if tp -> wab = pp -> wab then /* and if last line iss equal to this line */ 148 nprt = "1"b; /* then don't print it */ 149 else nprt = "0"b; /* else print the line */ 150 if pequal & ^nprt then do; /* if we have skipped n lines print a string of "=" */ 151 pequal = "0"b; 152 call ioa_ ("^7x========"); 153 end; 154 if ^nprt | lines_to_dump = 0 then do; /* if we wandt to print line or if last line */ 155 if lines_to_dump = 0 then mod8 = mod (num_of_words, 8); 156 if mod8 ^= 0 then 157 call ioa_ (vfmt, poffset, i, mod8, w (0), w (1), w (2), w (3), long_output, poffset + 4, i + 4, 158 w (4), w (5), w (6), w (7)); 159 end; 160 tp = pp; /* copy current line pointer for equal line compare */ 161 pp = addrel (pp, 8); /* increment to nxt line */ 162 poffset = poffset + 8; 163 lines_to_dump = lines_to_dump - 1; 164 end; 165 return; 166 167 amu_print_$af_char_dump: 168 entry (P_data_ptr, P_offset, P_number_of_words, P_af_ptr, P_af_lth); 169 170 dcl af_str char (P_af_lth) varying based (P_af_ptr); 171 172 af_sw = "1"b; 173 goto CHAR_COMMON; 174 175 amu_print_$char_dump: 176 entry (P_data_ptr, P_offset, P_number_of_words); 177 178 af_sw = "0"b; 179 CHAR_COMMON: 180 data_ptr = P_data_ptr; 181 real_offset = P_offset; 182 number_of_words = P_number_of_words; 183 char_sw = "1"b; 184 line_size = 8; 185 do start_line = 0 by 8 while ((number_of_words - start_line) > 7); 186 line_ptr = addrel (data_ptr, start_line); 187 call translate_line_to_dump (line_size, line_ptr, chars); 188 if af_sw then call ioa_$rsnnl ("^x^a^a", af_str, ignore, (af_str), chars); 189 else call ioa_ ("^6o^x^6o^x^a", real_offset, start_line, chars); 190 real_offset = real_offset + line_size; 191 end; 192 line_size = number_of_words - start_line; 193 if line_size > 0 then do; 194 line_ptr = addrel (data_ptr, start_line); 195 call translate_line_to_dump (line_size, line_ptr, chars); 196 if af_sw then call ioa_$rsnnl ("^x^a^a", af_str, ignore, (af_str), chars); 197 else call ioa_ ("^6o^x^6o^x^a", real_offset, start_line, chars); 198 end; 199 return; /* end of char dump */ 200 201 amu_print_$inst_dump: 202 entry (P_data_ptr, P_offset, P_number_of_words); 203 204 data_ptr = P_data_ptr; 205 real_offset = P_offset; 206 number_of_words = P_number_of_words; 207 iocbp = iox_$user_io; 208 iocb_name = iocbp -> iocb.name; 209 210 211 212 do i = 1 to number_of_words; 213 call amu_$print_text_offset (addr (inst_word (i)), chars, real_offset); 214 call ioa_ ("^a", chars); 215 real_offset = real_offset + 1; 216 end; 217 return; /* end of inst_dump */ 218 219 amu_print_$apte_bf: 220 entry (P_amu_info_ptr, P_aptep, P_apte_offset); 221 amu_info_ptr = P_amu_info_ptr; 222 aptep = P_aptep; 223 good_proc = "1"b; 224 call amu_$fdump_mpt_temp_change_idx (amu_info_ptr, amu_info.process_idx); 225 /* this way revert will always work */ 226 sdwp = addr (aptep -> apte.dbr); 227 t_idx = amu_$return_val_idx_from_dbr (amu_info_ptr, fixed (substr (unspec (apte.dbr), 1, 24), 24)); 228 if t_idx = -1 then do; /* process is not in dump so this is all we can say */ 229 good_proc = "0"b; 230 end; 231 else do; 232 call amu_$fdump_mpt_temp_change_idx (amu_info_ptr, t_idx); 233 t_ptr = addr (t_data); 234 t_segno = hardcore_info.segno.pds; 235 t_offset = amu_$definition_offset (amu_info_ptr, "pds", "process_group_id", code); 236 if code ^= 0 then good_proc = "0"b; 237 call amu_$do_translation (amu_info_ptr, t_segno, t_ptr, t_offset, 8, code); 238 if code ^= 0 then good_proc = "0"b; 239 end; 240 241 wait_type = ""; 242 if fixed (apte.state, 3) = 3 then do; 243 if apte.wait_event = "400000000000"b3 then 244 call ioa_$rsnnl ("^/^16tAST lock ^12.3b", wait_type, ignore, apte.wait_event); 245 else if apte.wait_event = "200000000000"b3 then 246 call ioa_$rsnnl ("^/^16tTemp wiring lock ^12.3b", wait_type, ignore, apte.wait_event); 247 else if substr (apte.wait_event, 1, 30) = "3330000000"b3 then 248 call ioa_$rsnnl ("^/^16tVTOC buffer ^12.3b", wait_type, ignore, apte.wait_event); 249 else if apte.wait_event = "000000000071"b3 then 250 call ioa_$rsnnl ("^/^16tTTY DIM ^12.3b", wait_type, ignore, apte.wait_event); 251 else if apte.wait_event = "000000000075"b3 then 252 call ioa_$rsnnl ("^/^16tIMP DIM (arpa) ^12.3b", wait_type, ignore, apte.wait_event); 253 else if apte.wait_event = "000000000114"b3 then 254 call ioa_$rsnnl ("^/^16tNCP (arpa) ^12.3b", wait_type, ignore, apte.wait_event); 255 else if apte.wait_event = "000000000105"b3 then 256 call ioa_$rsnnl ("^/^16tSYSERR LOG EVENT ^12.3b", wait_type, ignore, apte.wait_event); 257 else if substr (apte.wait_event, 1, 18) = "000000"b3 then do; 258 if substr (apte.wait_event, 19, 18) = "707070"b3 then 259 call ioa_$rsnnl ("^/^16t-BUG- ^12.3b", wait_type, ignore, apte.wait_event); 260 else call ioa_$rsnnl ("^/^16tPAGE ^o", wait_type, ignore, substr (apte.wait_event, 19, 18)); 261 end; 262 else if addr (apte.wait_event) -> based_event = "dbm_" then 263 call ioa_$rsnnl ("^/^16tVD BIT MAP ^12.3b", wait_type, ignore, apte.wait_event); 264 else if addr (apte.wait_event) -> based_event = "free" then 265 call ioa_$rsnnl ("^/^16tSystem Free Seg ^12.3b", wait_type, ignore, apte.wait_event); 266 else if addr (apte.wait_event) -> based_event = "dskw" then 267 call ioa_$rsnnl ("^/^16tDisk Offline ^12.3b", wait_type, ignore, apte.wait_event); 268 else if apte.wait_event = "777777777777"b3 then 269 call ioa_$rsnnl ("^/^16tROOT DIR LOCK ^12.3b", wait_type, ignore, apte.wait_event); 270 else call ioa_$rsnnl ("^/^16tDir Lock UID ^12.3b", wait_type, ignore, apte.wait_event); 271 end; 272 273 if good_proc then 274 call ioa_ ("^[^3d^;^s^4t^] ^8.3b^16t^9a^24t^12.3b^[^40t^a^;^s^]^43t^a^[^a^]", 275 t_idx >= 0, t_idx, sdw.add, process_st (fixed (apte.state, 3)), apte.processid, 276 (fixed (apte.state, 3) = 1), amu_$return_val_cpu_from_idx (amu_info_ptr, t_idx), 277 based_char, wait_type ^= "", wait_type); 278 279 else call ioa_ ("^[^3d^;^s^4t^] ^8.3b^16t^9a^24t^12.3b^[^40t^a^;^s^]^43t^32x^[^a^]", 280 t_idx >= 0, t_idx, sdw.add, process_st (fixed (apte.state, 3)), apte.processid, 281 (fixed (apte.state, 3) = 1), amu_$return_val_cpu_from_idx (amu_info_ptr, t_idx), 282 wait_type ^= "", wait_type); 283 284 call amu_$fdump_mpt_revert_idx (amu_info_ptr); 285 286 return; 287 288 amu_print_$apte: 289 entry (P_amu_info_ptr, P_aptep, P_apte_offset, P_apte_idx); 290 291 dcl not_dumped bit(1); 292 293 amu_info_ptr = P_amu_info_ptr; 294 aptep = P_aptep; 295 sdwp = addr (aptep -> apte.dbr); 296 not_dumped = "0"b; 297 298 if P_apte_idx ^= -1 then call ioa_ ("^/APTE #^o at ADDR ^o:", P_apte_idx, P_apte_offset); 299 300 t_idx = amu_$return_val_idx_from_dbr (amu_info_ptr, fixed (substr (unspec (apte.dbr), 1, 24), 24)); 301 if t_idx = -1 then do; 302 not_dumped = "1"b;; /* process is not in dump so this is all we can say */ 303 end; 304 else do; 305 call amu_$fdump_mpt_temp_change_idx (amu_info_ptr, t_idx); 306 t_ptr = addr (t_data); 307 t_segno = hardcore_info.segno.pds; 308 t_offset = amu_$definition_offset (amu_info_ptr, "pds", "process_group_id", code); 309 if code ^= 0 then goto revert; 310 call amu_$do_translation (amu_info_ptr, t_segno, t_ptr, t_offset, 8, code); 311 if code ^= 0 then goto revert; 312 end; 313 314 call ioa_ ("Processid: ^12.3b (^[Not Dumped^;^a^]); ^[^s^;DBR:^- ^o^]", apte.processid, not_dumped, based_char, 315 not_dumped, fixed (sdw.add, 24)); 316 zone = ""; 317 call decode_clock_value_$date_time(apte.state_change_time, month, dom, year, hour, min, sec, msec, dow, zone, code); 318 if code ^= 0 then do; 319 call convert_status_code_(code, shortinfo, longinfo); 320 call ioa_("^a: While getting time for apte # ^o.", rtrim(longinfo),P_apte_idx); 321 end; 322 else do; 323 yr_char = convert(yr_char, year); 324 call ioa_ ("State:^- ^a at ^d/^d/^a ^d:^d:^d.^d", process_st (fixed (apte.state, 3)), 325 month,dom,after(yr_char, "19"),hour,min,sec,msec); 326 end; 327 328 revert: 329 call amu_$fdump_mpt_revert_idx (amu_info_ptr); 330 return; 331 332 333 dump_ptr: 334 entry (dmp, doffset, num_of_words); 335 336 call ioa_ (""); 337 long_output = output_mode (); /* find terminal line length */ 338 lines_to_dump = divide (num_of_words, 8, 17, 0); /* find out how many full lines to dump */ 339 pp = dmp; 340 poffset = doffset; 341 mod8 = 8; 342 opl = doffset + num_of_words; 343 344 do i = 0 by 8 while (poffset <= opl); 345 if lines_to_dump = 0 then mod8 = mod (num_of_words, 8); 346 if mod8 ^= 0 then 347 call ioa_ (pfmt, poffset, i, mod8, PTRS (0), PTRS (1), PTRS (2), PTRS (3), long_output, poffset + 8, 348 i + 8, PTRS (4), PTRS (5), PTRS (6), PTRS (7)); 349 350 pp = addrel (pp, 16); /* increment to nxt line */ 351 poffset = poffset + 16; 352 lines_to_dump = lines_to_dump - 1; 353 end; 354 return; 355 356 357 dump_ptr_exp: 358 entry (P_amu_info_ptr, dmp, doffset, num_of_words); 359 360 dcl PRINT_PTR ptr aligned based (pp); 361 dcl ptrs_printed fixed bin; 362 363 amu_info_ptr = P_amu_info_ptr; 364 call ioa_ (""); 365 pp = dmp; 366 poffset = doffset; 367 ptrs_printed = 0; 368 369 do i = 0 by 2 while (ptrs_printed < num_of_words); 370 call ioa_ ("^6o ^6o ^12p ^a", poffset, i, PRINT_PTR, amu_$get_name (amu_info_ptr, PRINT_PTR)); 371 pp = addrel (pp, 2); /* increment to nxt line */ 372 poffset = poffset + 2; 373 ptrs_printed = ptrs_printed + 1; 374 end; 375 return; 376 377 378 dump_pptr: 379 entry (dmp, doffset, num_of_words); 380 381 382 call ioa_ (""); 383 long_output = output_mode (); /* find terminal line length */ 384 lines_to_dump = divide (num_of_words, 8, 17, 0); /* find out how many full lines to dump */ 385 pp = dmp; 386 poffset = doffset; 387 mod8 = 8; 388 opl = doffset + num_of_words; 389 390 do i = 0 by 8 while (poffset <= opl); 391 if lines_to_dump = 0 then mod8 = mod (num_of_words, 8); 392 if mod8 ^= 0 then 393 call ioa_ (pfmt, poffset, i, mod8, PPTRS (0), PPTRS (1), PPTRS (2), PPTRS (3), long_output, 394 poffset + 8, i + 8, PPTRS (4), PPTRS (5), PPTRS (6), PPTRS (7)); 395 396 pp = addrel (pp, 8); /* increment to nxt line */ 397 poffset = poffset + 8; 398 lines_to_dump = lines_to_dump - 1; 399 end; 400 return; 401 402 403 dump_pptr_exp: 404 entry (P_amu_info_ptr, dmp, doffset, num_of_words); 405 406 dcl PRINT_PPTR ptr unaligned based (pp); 407 dcl pptrs_printed fixed bin; 408 dcl temp_pptr ptr; 409 410 amu_info_ptr = P_amu_info_ptr; 411 call ioa_ (""); 412 pp = dmp; 413 poffset = doffset; 414 pptrs_printed = 0; 415 416 do i = 0 by 1 while (pptrs_printed < num_of_words); 417 temp_pptr = PRINT_PPTR; 418 call ioa_ ("^6o ^6o ^12p ^a", poffset, i, PRINT_PPTR, amu_$get_name (amu_info_ptr, temp_pptr)); 419 pp = addrel (pp, i); /* increment to nxt line */ 420 poffset = poffset + 1; 421 pptrs_printed = pptrs_printed + 1; 422 end; 423 return; 424 425 426 /* output_mode - entry to determine long/short output mode based on terminal or file line length */ 427 428 output_mode: 429 proc returns (bit (1)); 430 431 dcl oml fixed bin; 432 oml = get_line_length_$switch (null, bcode); /* find terminal line length */ 433 if oml < 118 & bcode = 0 then /* if ll < 118 and not a file */ 434 return ("0"b); /* 4 words / line */ 435 else return ("1"b); /* 8 words / line */ 436 end output_mode; 437 438 translate_line_to_dump: 439 proc (wds_in_line, line_ptr, new_chars_to_print); 440 441 /* Formal Parameters */ 442 443 dcl wds_in_line fixed bin; 444 dcl line_ptr ptr; 445 dcl new_chars_to_print char (64) varying; 446 447 /* Automatic, structures for accessing the input line and subrutine return args */ 448 449 450 dcl ascii_chars char (wds_in_line * 4) based (line_ptr); 451 452 dcl i fixed bin; /* character string index */ 453 dcl temp_overlay char (64); /* used to make this a quick block */ 454 dcl temp_ascii char (length (ascii_chars)) based (addr (temp_overlay)); 455 456 /* Constants */ 457 458 dcl dots char (33) aligned internal static options (constant) init ((33)"."); 459 dcl nonprinting_chars char (33) aligned internal static init (" 460 ") options (constant); 461 462 dcl last_ascii char (1) aligned internal static options (constant) initial (""); 463 /* last ascii char code */ 464 465 new_chars_to_print = ""; 466 467 if char_sw then do; 468 temp_ascii = ascii_chars; 469 do i = 1 to length (ascii_chars) by 1; /* set illegal characters to 0 */ 470 if substr (ascii_chars, i, 1) > last_ascii then substr (temp_ascii, i, 1) = ""; 471 end; /* set illegal characters to 0 */ 472 new_chars_to_print = translate (temp_ascii, dots, nonprinting_chars); 473 end; 474 475 end translate_line_to_dump; 476 1 1 /* BEGIN INCLUDE FILE ... apte.incl.pl1 */ 1 2 1 3 /* Modified 1984-11-11 by E. Swenson for IPC event channel validation. */ 1 4 1 5 dcl aptep pointer; 1 6 1 7 dcl 1 apte based (aptep) aligned, /* APT entry declaration for an active (known) process */ 1 8 2 thread unaligned, /* List thread */ 1 9 3 fp bit (18), /* Forward pointer */ 1 10 3 bp bit (18), /* Backward pointer */ 1 11 2 flags unaligned, /* Flags and miscellaneous */ 1 12 3 mbz bit (1), /* This bit must be zero (sentinel bit) */ 1 13 3 wakeup_waiting bit (1), /* ON if process has received wakeup */ 1 14 3 stop_pending bit (1), /* ON if process has received stop connect */ 1 15 3 pre_empted bit (1), /* ON if process is being pre-empted by get_processor */ 1 16 3 hproc bit (1), /* ON if process is hardcore process */ 1 17 3 loaded bit (1), /* ON if required per-process pages are in memory and wired */ 1 18 3 eligible bit (1), /* ON if process is eligible */ 1 19 3 idle bit (1), /* ON if this is an idle process */ 1 20 3 interaction bit (1), /* ON if process has interacted recently */ 1 21 3 pre_empt_pending bit (1), /* ON if process has received pre-empt connect */ 1 22 3 default_procs_required bit (1), /* ON if apte.procs_required is system default */ 1 23 3 realtime_burst bit (1), /* ON if next eligibility is realtime */ 1 24 3 always_loaded bit (1), /* ON if process is not to be unloaded */ 1 25 3 dbr_loaded bit (1), /* ON if DBR is loaded on some CPU */ 1 26 3 being_loaded bit (1), /* ON if somebody loading this process */ 1 27 3 shared_stack_0 bit (1), /* ON if a shared stack_0 is assigned */ 1 28 3 page_wait_flag bit (1), /* flag ON if waiting for page */ 1 29 3 firstsw bit (1), /* OFF until process is intialized */ 1 30 3 state bit (18), /* execution state */ 1 31 2 page_faults fixed bin (35), /* total page faults for the process */ 1 32 2 processid bit (36), /* bit 0-17: offset of ATPE */ 1 33 /* bit 18-35: sequential number */ 1 34 2 te fixed bin (35), /* virtual time since eligibility award */ 1 35 2 ts fixed bin (35), /* virtual time since scheduling */ 1 36 2 ti fixed bin (35), /* virtual time since interaction */ 1 37 2 timax fixed bin (35), /* maximum value allowed for apte.ti */ 1 38 1 39 /* * * * * * * * */ 1 40 1 41 2 ipc_pointers unaligned, 1 42 3 event_thread bit (18), /* relative pointer to ITT list */ 1 43 3 pad3 bit (18), 1 44 2 ips_message bit (36), /* IPS signals pending */ 1 45 2 asteps unaligned, /* relative ASTE pointers */ 1 46 3 pds bit (18), /* PDS (per-process) */ 1 47 3 dseg bit (18), /* DSEG (per-process) */ 1 48 3 prds bit (18), /* PRDS (per-processor) */ 1 49 2 savex7 bit (18) unaligned, /* x7 at call to getwork (return point in pxss) */ 1 50 2 term_processid bit (36), /* process to send wakeup at temination */ 1 51 2 lock_id bit (36), /* File System unqieu ID associated with process */ 1 52 2 time_used_clock fixed bin (71), /* Total CPU time when process last lost CPU */ 1 53 1 54 /* * * * * * * * */ 1 55 1 56 2 wait_event bit (36) aligned, /* Event ID process awaiting */ 1 57 2 wct_index bit (18) unaligned, /* rel offset of WCTE */ 1 58 2 flags2 unaligned, 1 59 3 priority_scheduling bit (1), /* ON if guaranteed eligibility */ 1 60 3 special_wakeups bit (6), /* Special wakeup channels */ 1 61 3 pad7 bit (7), 1 62 3 batch bit (1), /* ON if absentee */ 1 63 3 pr_tag bit (3), /* CPU tag running or last run */ 1 64 2 state_change_time fixed bin (71), /* Time apte.state last changed */ 1 65 2 alarm_event fixed bin (71), /* wakeup event for alarm clock manager */ 1 66 2 alarm_time_thread bit (18) unaligned, /* thread of processes with pending alarms */ 1 67 2 alarm_time bit (54) unaligned, /* wakeup time for alarm */ 1 68 1 69 /* * * * * * */ 1 70 1 71 2 term_channel fixed bin (71), /* wakeup event for account overflow */ 1 72 2 ws_size fixed bin, /* working set estimate for the process */ 1 73 2 temax fixed bin (35), /* maximum eligibility slice (vcpu) */ 1 74 2 deadline fixed bin (71), /* time of next run */ 1 75 2 lock bit (18) unaligned, /* 0 => APTE locked, unlocked => return point of last unlock */ 1 76 2 unusable bit (18) unaligned, /* locking routines destroy */ 1 77 2 cpu_monitor fixed bin (35), /* if not 0, send wakeup to term_processid when virtual cpu 1 78* /* reaches this (units = 1/1024 sec) */ 1 79 2 paging_measure fixed bin (71), /* cumulative memory units */ 1 80 2 access_authorization bit (72), /* authorization of this process */ 1 81 2 dbr fixed bin (71), /* DBR value (constant since DSEG entry-held) */ 1 82 1 83 2 virtual_cpu_time fixed bin (71), /* cumulative virtual CPU time for the process */ 1 84 2 ittes_sent fixed bin (18), /* Unprocessed ITTs sent by this process */ 1 85 2 ittes_got fixed bin (18), /* Unprocessed ITTs received by this process */ 1 86 1 87 /* Cells used to drive and instrument finite-state model for response time 1 88* measurement. Maintained by meter_response_time */ 1 89 1 90 2 current_response_state fixed bin (17) unaligned, /* Process state in modle */ 1 91 2 pad18 bit (18) unaligned, 1 92 2 number_processing fixed bin (35), /* Number interactions */ 1 93 2 last_response_state_time fixed bin (71), /* Clock time at last response state change */ 1 94 2 total_processing_time fixed bin (71), /* Total interaction processing time */ 1 95 1 96 /* * * * * * */ 1 97 1 98 2 begin_interaction_vcpu fixed bin (71), /* Virtual cpu at beginning of last interaction */ 1 99 1 100 /* End of cells for finite-state model */ 1 101 1 102 2 saved_temax fixed bin (35), /* temax at eligibility award */ 1 103 2 procs_required bit (8) unaligned, /* bit mask of CPUs this process can run */ 1 104 2 pad4 bit (28) unaligned, 1 105 2 ipc_r_offset fixed bin (18) unsigned, 1 106 2 ipc_r_factor fixed bin (35) unsigned, 1 107 2 apad (10) fixed bin (35); 1 108 1 109 /* END INCLUDE FILE ... apte.incl.pl1 */ 477 478 2 1 /* BEGIN INCLUDE FILE amu_info.incl.pl1 */ 2 2 2 3 dcl 1 amu_info aligned based (amu_info_ptr), 2 4 2 version char (8) aligned, /* AMU_INFO_VERSION */ 2 5 2 flags aligned, 2 6 3 early_dump bit(1) unal, 2 7 3 pad bit(35) unal, 2 8 2 type fixed bin unal, /* One of the types below */ 2 9 2 time_created fixed bin (71) aligned, /* time created -- for debugging purposes */ 2 10 2 chain, /* a chain of all the amu_info's which exist */ 2 11 3 prev pointer unaligned, 2 12 3 next pointer unaligned, 2 13 2 14 2 area_ptr pointer, /* pointer to area used for allocating things */ 2 15 2 16 2 translation_table_ptr pointer, /* pointer to address map -- always present */ 2 17 /* SEE: amu_translation.incl.pl1 */ 2 18 2 fdump_info_ptr pointer, 2 19 /* pointer to FDUMP info, present if looking at an FDUMP */ 2 20 /* SEE: amu_fdump_info.incl.pl1 */ 2 21 /* old_uid_table pointer if looking at a SAVED PROC. */ 2 22 /* See: amu_old_uid_table */ 2 23 2 24 2 25 2 hardcore_info_ptr pointer, /* pointer to hardcore information -- always present */ 2 26 /* SEE: amu_hardcore_info.incl.pl1 */ 2 27 2 copy_chain pointer, /* pointer to info about segment copies */ 2 28 /* SEE: amu_copy_info.incl.pl1 */ 2 29 2 process_info_ptr pointer, /* pointer to process info for this translation */ 2 30 /* SEE: amu_process_info.incl.pl1 */ 2 31 2 process_idx fixed bin, /* index of process in translation-specifc process table */ 2 32 2 33 2 proc_idx_hold fixed bin, /* a place to keep the index when a changing to another proc */ 2 34 2 35 2 error_info, /* various info about how amu_error_ is to behave */ 2 36 3 error_flags aligned, 2 37 4 handler_exists bit (1) unaligned, /* set to indicate existence of an amu_error handler */ 2 38 4 in_subsystem bit (1) unaligned, /* This amu_info belongs to an ssu_ maintained subsystem */ 2 39 4 pad bit (34) unaligned, 2 40 3 sci_ptr pointer, /* sci_ptr for subsystem, if in_subsystem = "1"b */ 2 41 2 definitions_info_ptr ptr; 2 42 2 43 dcl amu_area area based (amu_info.area_ptr); 2 44 2 45 dcl amu_info_ptr pointer; 2 46 2 47 dcl (FDUMP_TYPE init (1037), /* the various legitimate types of amu_info's */ 2 48 FDUMP_PROCESS_TYPE init (1038), 2 49 ONLINE_TYPE init (1039), 2 50 ONLINE_PROCESS_TYPE init (1040), 2 51 NETWORK_FDUMP_TYPE init (1041), 2 52 NETWORK_ONLINE_TYPE init (1042), 2 53 SAVED_PROC_TYPE init (1043), 2 54 INDIRECT_TYPE init (1044)) fixed bin internal static options (constant); 2 55 2 56 dcl AMU_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_v1"); 2 57 dcl AMU_INFO_VERSION char (8) internal static options (constant) init ("amu_v1"); 2 58 dcl AMU_INFO_VERSION_2 char (8) internal static options (constant) init ("amu_v2"); 2 59 2 60 dcl PDIR_SUFFIX char(4) init("pdir") int static options(constant); 2 61 2 62 /* END INCLUDE FILE amu_info.incl.pl1 */ 479 480 3 1 /* BEGIN INCLUDE FILE ... sdw.incl.pl1 ... last modified 12 May 1976 */ 3 2 3 3 dcl sdwp ptr; 3 4 3 5 dcl 1 sdw based (sdwp) aligned, /* Segment Descriptor Word */ 3 6 3 7 (2 add bit (24), /* main memory address of page table */ 3 8 2 (r1, r2, r3) bit (3), /* ring brackets for the segment */ 3 9 2 df bit (1), /* directed fault bit (0 => fault) */ 3 10 2 df_no bit (2), /* directed fault number */ 3 11 3 12 2 pad1 bit (1), 3 13 2 bound bit (14), /* boundary field (in 16 word blocks) */ 3 14 2 access, /* access bits */ 3 15 3 read bit (1), /* read permission bit */ 3 16 3 execute bit (1), /* execute permission bit */ 3 17 3 write bit (1), /* write permission bit */ 3 18 3 privileged bit (1), /* privileged bit */ 3 19 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 3 20 2 entry_bound_sw bit (1), /* if this is 0 the entry bound is checked by hardware */ 3 21 2 cache bit (1), /* cache enable bit */ 3 22 2 entry_bound bit (14)) unaligned; /* entry bound */ 3 23 3 24 dcl 1 sdwa (0: 1) based (sdwp) aligned like sdw; /* SDW array (descriptor segment) */ 3 25 3 26 /* END INCLUDE FILE sdw.incl.pl1 */ 481 482 4 1 /* BEGIN INCLUDE FILE amu_hardcore_info.incl.pl1 */ 4 2 4 3 /* This structure contains information about the hardcore supervisor address 4 4* space for an address translation. */ 4 5 4 6 dcl 1 hardcore_info aligned based (amu_info.hardcore_info_ptr), 4 7 4 8 2 pointers, /* assorted pointers to various useful items */ 4 9 3 slt aligned, /* SLT */ 4 10 4 fptr pointer unaligned, /* address in foreign address space */ 4 11 4 lptr pointer unaligned, /* location in local address space */ 4 12 3 sltnt aligned like hardcore_info.slt, /* SLT names segment */ 4 13 3 definitions aligned like hardcore_info.slt, /* hardcore definitions_ segment */ 4 14 4 15 3 sst aligned like hardcore_info.slt, /* SST */ 4 16 3 tc_data aligned like hardcore_info.slt, /* TC_DATA */ 4 17 3 sstnt aligned like hardcore_info.slt, /* SSTNT (if any -- foreign_ptr = null if not) */ 4 18 3 upt aligned like hardcore_info.slt, /* unpaged_page_tables (if any -- foreign_ptr = null if not) */ 4 19 4 20 2 segno, /* segment numbers of various per-process/per-processor segs */ 4 21 3 prds fixed bin (15), /* segno of PRDS */ 4 22 3 dseg fixed bin (15), /* DSEG */ 4 23 3 pds fixed bin (15), /* PDS */ 4 24 3 kst fixed bin (15), /* KST */ 4 25 3 stack_0 fixed bin (15), /* segno of stack_0 -- first one in stack group */ 4 26 3 unpaged_page_tables fixed bin(15), /* segno of unpaged_page_tables if it exists */ 4 27 4 28 2 apt, /* information about the APT */ 4 29 3 foreign_ptr pointer unaligned, /* foreign and local pointers to tcm.apt */ 4 30 3 local_ptr pointer unaligned, 4 31 3 count fixed bin, /* number of APTEs */ 4 32 3 size fixed bin, /* size of a single APTE */ 4 33 4 34 2 hcs_count fixed bin, /* highest hardcore segno */ 4 35 4 36 2 pad1 fixed bin; 4 37 4 38 dcl hardcore_cur_ptr ptr; 4 39 4 40 dcl 1 hardcore_cur based (hardcore_cur_ptr), 4 41 2 sltp ptr, 4 42 2 sltntp ptr, 4 43 2 defp ptr, 4 44 2 sstp ptr, 4 45 2 tc_datap ptr, 4 46 2 sstntp ptr, 4 47 2 uptp ptr; 4 48 4 49 4 50 4 51 4 52 /* END INCLUDE FILE amu_hardcore_info.incl.pl1 */ 483 484 5 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 5 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 5 3* version number to IOX2. */ 5 4 /* format: style2 */ 5 5 5 6 dcl 1 iocb aligned based, /* I/O control block. */ 5 7 2 version character (4) aligned, /* IOX2 */ 5 8 2 name char (32), /* I/O name of this block. */ 5 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 5 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 5 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 5 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 5 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 5 14 2 reserved bit (72), /* Reserved for future use. */ 5 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 5 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 5 17 /* open(p,mode,not_used,s) */ 5 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 5 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 5 20 /* get_line(p,bufptr,buflen,actlen,s) */ 5 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 5 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 5 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 5 24 /* put_chars(p,bufptr,buflen,s) */ 5 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 5 26 /* modes(p,newmode,oldmode,s) */ 5 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 5 28 /* position(p,u1,u2,s) */ 5 29 2 control entry (ptr, char (*), ptr, fixed (35)), 5 30 /* control(p,order,infptr,s) */ 5 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 5 32 /* read_record(p,bufptr,buflen,actlen,s) */ 5 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 5 34 /* write_record(p,bufptr,buflen,s) */ 5 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 5 36 /* rewrite_record(p,bufptr,buflen,s) */ 5 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 5 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 5 39 /* seek_key(p,key,len,s) */ 5 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 5 41 /* read_key(p,key,len,s) */ 5 42 2 read_length entry (ptr, fixed (21), fixed (35)), 5 43 /* read_length(p,len,s) */ 5 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 5 45 /* open_file(p,mode,desc,not_used,s) */ 5 46 2 close_file entry (ptr, char (*), fixed bin (35)), 5 47 /* close_file(p,desc,s) */ 5 48 2 detach entry (ptr, char (*), fixed bin (35)); 5 49 /* detach(p,desc,s) */ 5 50 5 51 declare iox_$iocb_version_sentinel 5 52 character (4) aligned external static; 5 53 5 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 485 486 487 end amu_print_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/13/85 0903.6 amu_print_.pl1 >special_ldd>online>6897>amu_print_.pl1 477 1 01/06/85 1422.2 apte.incl.pl1 >ldd>include>apte.incl.pl1 479 2 11/20/84 0856.1 amu_info.incl.pl1 >ldd>include>amu_info.incl.pl1 481 3 09/14/76 0759.8 sdw.incl.pl1 >ldd>include>sdw.incl.pl1 483 4 11/20/84 0854.8 amu_hardcore_info.incl.pl1 >ldd>include>amu_hardcore_info.incl.pl1 485 5 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.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. PPTRS based pointer array unaligned dcl 101 set ref 392* 392* 392* 392* 392* 392* 392* 392* PRINT_PPTR based pointer unaligned dcl 406 set ref 417 418* PRINT_PTR based pointer dcl 360 set ref 370* 370* PTRS based pointer array dcl 100 set ref 346* 346* 346* 346* 346* 346* 346* 346* P_af_lth parameter fixed bin(21,0) dcl 15 ref 167 188 196 P_af_ptr parameter pointer dcl 16 ref 167 188 188 196 196 P_amu_info_ptr parameter pointer dcl 17 ref 219 221 288 293 357 363 403 410 P_apte_idx parameter fixed bin(17,0) dcl 20 set ref 288 298 298* 320* P_apte_offset parameter fixed bin(18,0) dcl 19 set ref 219 288 298* P_aptep parameter pointer dcl 18 ref 219 222 288 294 P_data_ptr parameter pointer dcl 13 ref 167 175 179 201 204 P_number_of_words parameter fixed bin(18,0) dcl 14 ref 167 175 182 201 206 P_offset parameter fixed bin(18,0) dcl 14 ref 167 175 181 201 205 add based bit(24) level 2 packed unaligned dcl 3-5 set ref 273* 279* 314 314 addr builtin function dcl 123 ref 213 213 226 233 262 264 266 295 306 468 470 472 addrel builtin function dcl 123 ref 161 186 194 350 371 396 419 af_str based varying char dcl 170 set ref 188* 188 196* 196 af_sw 000100 automatic bit(1) unaligned dcl 51 set ref 172* 178* 188 196 after builtin function dcl 123 ref 324 324 all_cpu_mask 000101 automatic bit(8) initial unaligned dcl 52 set ref 52* amu_$definition_offset 000010 constant entry external dcl 27 ref 235 308 amu_$do_translation 000012 constant entry external dcl 28 ref 237 310 amu_$fdump_mpt_revert_idx 000016 constant entry external dcl 30 ref 284 328 amu_$fdump_mpt_temp_change_idx 000014 constant entry external dcl 29 ref 224 232 305 amu_$get_name 000020 constant entry external dcl 31 ref 370 418 amu_$print_text_offset 000022 constant entry external dcl 32 ref 213 amu_$return_val_cpu_from_idx 000024 constant entry external dcl 33 ref 273 273 279 279 amu_$return_val_idx_from_dbr 000026 constant entry external dcl 34 ref 227 300 amu_info based structure level 1 dcl 2-3 amu_info_ptr 000306 automatic pointer dcl 2-45 set ref 221* 224* 224 227* 232* 234 235* 237* 273* 273* 279* 279* 284* 293* 300* 305* 307 308* 310* 328* 363* 370* 410* 418* apte based structure level 1 dcl 1-7 aptep 000304 automatic pointer dcl 1-5 set ref 222* 226 227 227 242 243 243 245 245 247 247 249 249 251 251 253 253 255 255 257 258 258 260 260 262 262 264 264 266 266 268 268 270 273 273 273 279 279 279 294* 295 300 300 314 317 324 ascii_chars based char unaligned dcl 450 ref 468 468 469 470 470 472 based_char based char(32) unaligned dcl 102 set ref 273* 314* based_event based char(4) unaligned dcl 103 ref 262 264 266 bcode 000102 automatic fixed bin(35,0) dcl 53 set ref 432* 433 char_sw 000103 automatic bit(1) unaligned dcl 54 set ref 183* 467 chars 000104 automatic varying char(64) dcl 55 set ref 187* 188* 189* 195* 196* 197* 213* 214* code 000125 automatic fixed bin(35,0) dcl 56 set ref 235* 236 237* 238 308* 309 310* 311 317* 318 319* convert builtin function dcl 123 ref 323 convert_status_code_ 000030 constant entry external dcl 35 ref 319 cpu_str 000126 automatic varying char(8) initial dcl 57 set ref 57* data_ptr 000132 automatic pointer dcl 58 set ref 179* 186 194 204* 213 213 dbr 44 based fixed bin(71,0) level 2 dcl 1-7 set ref 226 227 227 295 300 300 decode_clock_value_$date_time 000034 constant entry external dcl 37 ref 317 divide builtin function dcl 123 ref 136 338 384 dmp parameter pointer dcl 21 ref 131 138 333 339 357 365 378 385 403 412 doffset parameter fixed bin(18,0) dcl 22 ref 131 140 141 333 340 342 357 366 378 386 388 403 413 dom 000134 automatic fixed bin(17,0) dcl 59 set ref 317* 324* dots constant char(33) initial dcl 458 ref 472 dow 000135 automatic fixed bin(17,0) dcl 60 set ref 317* fixed builtin function dcl 123 ref 227 227 242 273 273 279 279 300 300 314 314 324 flags 1 based structure level 2 packed unaligned dcl 1-7 get_line_length_$switch 000032 constant entry external dcl 36 ref 432 good_proc 000136 automatic bit(1) unaligned dcl 61 set ref 223* 229* 236* 238* 273 hardcore_info based structure level 1 dcl 4-6 hardcore_info_ptr 16 based pointer level 2 dcl 2-3 ref 234 307 hour 000137 automatic fixed bin(17,0) dcl 62 set ref 317* 324* i 000141 automatic fixed bin(17,0) dcl 64 in procedure "amu_print_" set ref 144* 156* 156* 212* 213 213* 344* 346* 346* 369* 370* 390* 392* 392* 416* 418* 419* i 000340 automatic fixed bin(17,0) dcl 452 in procedure "translate_line_to_dump" set ref 469* 470 470* ignore 000140 automatic fixed bin(17,0) dcl 63 set ref 188* 196* 243* 245* 247* 249* 251* 253* 255* 258* 260* 262* 264* 266* 268* 270* inst_word based bit(36) array unaligned dcl 104 set ref 213 213 ioa_ 000036 constant entry external dcl 40 ref 134 152 156 189 197 214 273 279 298 314 320 324 336 346 364 370 382 392 411 418 ioa_$rsnnl 000040 constant entry external dcl 40 ref 188 196 243 245 247 249 251 253 255 258 260 262 264 266 268 270 iocb based structure level 1 dcl 5-6 iocb_name 000142 automatic char(32) dcl 65 set ref 208* iocbp 000152 automatic pointer dcl 66 set ref 207* 208 iox_$user_io 000042 external static pointer dcl 47 ref 207 last_ascii 004744 constant char(1) initial dcl 462 ref 470 length builtin function dcl 123 ref 468 469 470 472 line_ptr parameter pointer dcl 444 in procedure "translate_line_to_dump" ref 438 468 468 469 470 470 472 line_ptr 000156 automatic pointer dcl 68 in procedure "amu_print_" set ref 186* 187* 194* 195* line_size 000154 automatic fixed bin(17,0) dcl 67 set ref 184* 187* 190 192* 193 195* lines_to_dump 000160 automatic fixed bin(17,0) dcl 69 set ref 136* 154 155 163* 163 338* 345 352* 352 384* 391 398* 398 long_output 000161 automatic bit(1) unaligned dcl 70 set ref 135* 156* 337* 346* 383* 392* longinfo 000162 automatic char(100) dcl 71 set ref 319* 320 320 min 000213 automatic fixed bin(17,0) dcl 72 set ref 317* 324* mod builtin function dcl 123 ref 155 345 391 mod8 000214 automatic fixed bin(17,0) dcl 73 set ref 137* 155* 156 156* 341* 345* 346 346* 387* 391* 392 392* month 000215 automatic fixed bin(17,0) dcl 74 set ref 317* 324* msec 000216 automatic fixed bin(71,0) dcl 75 set ref 317* 324* name 1 based char(32) level 2 dcl 5-6 ref 208 new_chars_to_print parameter varying char(64) dcl 445 set ref 438 465* 472* nonprinting_chars 000000 constant char(33) initial dcl 459 ref 472 not_dumped 000276 automatic bit(1) unaligned dcl 291 set ref 296* 302* 314* 314* nprt 000220 automatic bit(1) unaligned dcl 76 set ref 142* 145 146* 149* 150 154 null builtin function dcl 123 ref 139 146 432 432 num_of_words parameter fixed bin(17,0) dcl 23 ref 131 136 141 155 333 338 342 345 357 369 378 384 388 391 403 416 number_of_words 000221 automatic fixed bin(17,0) dcl 77 set ref 182* 185 192 206* 212 oml 000330 automatic fixed bin(17,0) dcl 431 set ref 432* 433 opl 000222 automatic fixed bin(17,0) dcl 78 set ref 141* 144 342* 344 388* 390 pds 20 based fixed bin(15,0) level 3 dcl 4-6 ref 234 307 pequal 000223 automatic bit(1) unaligned dcl 79 set ref 142* 145* 150 151* pfmt 000045 constant char(208) initial unaligned dcl 113 set ref 346* 392* poffset 000224 automatic fixed bin(18,0) dcl 80 set ref 140* 144 156* 156 162* 162 340* 344 346* 346 351* 351 366* 370* 372* 372 386* 390 392* 392 397* 397 413* 418* 420* 420 pointers based structure level 2 dcl 4-6 pp 000226 automatic pointer dcl 81 set ref 138* 146 156 156 156 156 156 156 156 156 160 161* 161 339* 346 346 346 346 346 346 346 346 350* 350 365* 370 370 371* 371 385* 392 392 392 392 392 392 392 392 396* 396 412* 417 418 419* 419 pptrs_printed 000300 automatic fixed bin(17,0) dcl 407 set ref 414* 416 421* 421 process_idx 24 based fixed bin(17,0) level 2 dcl 2-3 set ref 224* process_st 000011 constant varying char(9) initial array dcl 118 set ref 273* 279* 324* processid 3 based bit(36) level 2 dcl 1-7 set ref 273* 279* 314* ptrs_printed 000277 automatic fixed bin(17,0) dcl 361 set ref 367* 369 373* 373 real_offset 000230 automatic fixed bin(18,0) dcl 82 set ref 181* 189* 190* 190 197* 205* 213* 215* 215 rtrim builtin function dcl 123 ref 320 320 sdw based structure level 1 dcl 3-5 sdwp 000310 automatic pointer dcl 3-3 set ref 226* 273 279 295* 314 314 sec 000231 automatic fixed bin(17,0) dcl 83 set ref 317* 324* segno 16 based structure level 2 dcl 4-6 shortinfo 000232 automatic char(8) dcl 84 set ref 319* slt based structure level 3 dcl 4-6 start_line 000234 automatic fixed bin(18,0) dcl 85 set ref 185* 185* 186 189* 192 194 197* state 1(18) based bit(18) level 3 packed unaligned dcl 1-7 ref 242 273 273 279 279 324 state_change_time 22 based fixed bin(71,0) level 2 dcl 1-7 set ref 317* substr builtin function dcl 123 set ref 227 227 247 257 258 260 260 300 300 470 470* t_data 000235 automatic fixed bin(35,0) array dcl 86 set ref 233 306 t_idx 000246 automatic fixed bin(17,0) dcl 88 set ref 227* 228 232* 273 273* 273* 273* 279 279* 279* 279* 300* 301 305* t_offset 000245 automatic fixed bin(18,0) dcl 87 set ref 235* 237* 308* 310* t_ptr 000250 automatic pointer dcl 89 set ref 233* 237* 273 306* 310* 314 t_segno 000252 automatic fixed bin(17,0) dcl 90 set ref 234* 237* 307* 310* temp_ascii based char unaligned dcl 454 set ref 468* 470* 472 temp_overlay 000341 automatic char(64) unaligned dcl 453 set ref 468 470 472 temp_pptr 000302 automatic pointer dcl 408 set ref 417* 418* tp 000254 automatic pointer dcl 91 set ref 139* 146 146 160* translate builtin function dcl 123 ref 472 unspec builtin function dcl 123 ref 227 227 300 300 vfmt 000131 constant char(184) initial unaligned dcl 109 set ref 156* w based fixed bin(17,0) array dcl 92 set ref 156* 156* 156* 156* 156* 156* 156* 156* wab based bit(288) unaligned dcl 105 ref 146 146 wait_event 20 based bit(36) level 2 dcl 1-7 set ref 243 243* 245 245* 247 247* 249 249* 251 251* 253 253* 255 255* 257 258 258* 260 260 262 262* 264 264* 266 266* 268 268* 270* wait_type 000256 automatic varying char(40) dcl 93 set ref 241* 243* 245* 247* 249* 251* 253* 255* 258* 260* 262* 264* 266* 268* 270* 273 273* 279 279* wds_in_line parameter fixed bin(17,0) dcl 443 ref 438 468 468 469 470 470 472 year 000271 automatic fixed bin(17,0) dcl 94 set ref 317* 323 yr_char 000272 automatic char(10) unaligned dcl 95 set ref 323* 323 324 324 zone 000275 automatic char(3) unaligned dcl 96 set ref 316* 317* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AMU_INFO_VERSION internal static char(8) initial unaligned dcl 2-57 AMU_INFO_VERSION_1 internal static char(8) initial unaligned dcl 2-56 AMU_INFO_VERSION_2 internal static char(8) initial unaligned dcl 2-58 FDUMP_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 2-47 FDUMP_TYPE internal static fixed bin(17,0) initial dcl 2-47 INDIRECT_TYPE internal static fixed bin(17,0) initial dcl 2-47 NETWORK_FDUMP_TYPE internal static fixed bin(17,0) initial dcl 2-47 NETWORK_ONLINE_TYPE internal static fixed bin(17,0) initial dcl 2-47 ONLINE_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 2-47 ONLINE_TYPE internal static fixed bin(17,0) initial dcl 2-47 PDIR_SUFFIX internal static char(4) initial unaligned dcl 2-60 SAVED_PROC_TYPE internal static fixed bin(17,0) initial dcl 2-47 amu_area based area(1024) dcl 2-43 hardcore_cur based structure level 1 unaligned dcl 4-40 hardcore_cur_ptr automatic pointer dcl 4-38 iox_$iocb_version_sentinel external static char(4) dcl 5-51 sdwa based structure array level 1 dcl 3-24 NAMES DECLARED BY EXPLICIT CONTEXT. CHAR_COMMON 001105 constant label dcl 179 ref 173 amu_print_ 000567 constant entry external dcl 6 amu_print_$af_char_dump 001061 constant entry external dcl 167 amu_print_$apte 002777 constant entry external dcl 288 amu_print_$apte_bf 001500 constant entry external dcl 219 amu_print_$char_dump 001076 constant entry external dcl 175 amu_print_$inst_dump 001370 constant entry external dcl 201 dump_oct 000602 constant entry external dcl 131 dump_pptr 004044 constant entry external dcl 378 dump_pptr_exp 004241 constant entry external dcl 403 dump_ptr 003512 constant entry external dcl 333 dump_ptr_exp 003707 constant entry external dcl 357 output_mode 004402 constant entry internal dcl 428 ref 135 337 383 revert 003500 constant label dcl 328 ref 309 311 translate_line_to_dump 004442 constant entry internal dcl 438 ref 187 195 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5326 5372 4747 5336 Length 5734 4747 44 326 356 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME amu_print_ 354 external procedure is an external procedure. output_mode internal procedure shares stack frame of external procedure amu_print_. translate_line_to_dump internal procedure shares stack frame of external procedure amu_print_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME amu_print_ 000100 af_sw amu_print_ 000101 all_cpu_mask amu_print_ 000102 bcode amu_print_ 000103 char_sw amu_print_ 000104 chars amu_print_ 000125 code amu_print_ 000126 cpu_str amu_print_ 000132 data_ptr amu_print_ 000134 dom amu_print_ 000135 dow amu_print_ 000136 good_proc amu_print_ 000137 hour amu_print_ 000140 ignore amu_print_ 000141 i amu_print_ 000142 iocb_name amu_print_ 000152 iocbp amu_print_ 000154 line_size amu_print_ 000156 line_ptr amu_print_ 000160 lines_to_dump amu_print_ 000161 long_output amu_print_ 000162 longinfo amu_print_ 000213 min amu_print_ 000214 mod8 amu_print_ 000215 month amu_print_ 000216 msec amu_print_ 000220 nprt amu_print_ 000221 number_of_words amu_print_ 000222 opl amu_print_ 000223 pequal amu_print_ 000224 poffset amu_print_ 000226 pp amu_print_ 000230 real_offset amu_print_ 000231 sec amu_print_ 000232 shortinfo amu_print_ 000234 start_line amu_print_ 000235 t_data amu_print_ 000245 t_offset amu_print_ 000246 t_idx amu_print_ 000250 t_ptr amu_print_ 000252 t_segno amu_print_ 000254 tp amu_print_ 000256 wait_type amu_print_ 000271 year amu_print_ 000272 yr_char amu_print_ 000275 zone amu_print_ 000276 not_dumped amu_print_ 000277 ptrs_printed amu_print_ 000300 pptrs_printed amu_print_ 000302 temp_pptr amu_print_ 000304 aptep amu_print_ 000306 amu_info_ptr amu_print_ 000310 sdwp amu_print_ 000330 oml output_mode 000340 i translate_line_to_dump 000341 temp_overlay translate_line_to_dump THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as r_ge_a alloc_cs call_ext_out_desc call_ext_out return mod_fx1 shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. amu_$definition_offset amu_$do_translation amu_$fdump_mpt_revert_idx amu_$fdump_mpt_temp_change_idx amu_$get_name amu_$print_text_offset amu_$return_val_cpu_from_idx amu_$return_val_idx_from_dbr convert_status_code_ decode_clock_value_$date_time get_line_length_$switch ioa_ ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 52 000561 57 000563 6 000566 7 000575 131 000576 134 000617 135 000630 136 000632 137 000635 138 000637 139 000642 140 000644 141 000646 142 000650 144 000652 145 000657 146 000663 149 000700 150 000701 151 000707 152 000710 154 000726 155 000732 156 000740 160 001040 161 001042 162 001044 163 001046 164 001050 165 001053 167 001054 172 001067 173 001071 175 001072 178 001104 179 001105 181 001111 182 001113 183 001115 184 001117 185 001121 186 001126 187 001132 188 001134 189 001210 190 001241 191 001243 192 001246 193 001251 194 001252 195 001256 196 001260 197 001334 199 001365 201 001366 204 001376 205 001402 206 001404 207 001406 208 001412 212 001416 213 001425 214 001451 215 001470 216 001471 217 001473 219 001474 221 001506 222 001512 223 001515 224 001517 226 001530 227 001533 228 001552 229 001555 230 001556 232 001557 233 001570 234 001572 235 001576 236 001635 237 001640 238 001663 241 001666 242 001667 243 001674 245 001733 247 001766 249 002026 251 002062 253 002115 255 002153 257 002206 258 002211 260 002252 261 002305 262 002306 264 002345 266 002400 268 002433 270 002467 273 002517 279 002644 284 002762 286 002771 288 002772 293 003005 294 003011 295 003014 296 003016 298 003017 300 003051 301 003070 302 003073 303 003075 305 003076 306 003107 307 003111 308 003115 309 003154 310 003156 311 003201 314 003203 316 003246 317 003250 318 003304 319 003306 320 003321 321 003366 323 003370 324 003377 326 003477 328 003500 330 003507 333 003510 336 003527 337 003540 338 003542 339 003545 340 003550 341 003552 342 003554 344 003557 345 003563 346 003571 350 003672 351 003675 352 003677 353 003701 354 003704 357 003705 363 003724 364 003730 365 003741 366 003744 367 003746 369 003747 370 003753 371 004030 372 004034 373 004036 374 004037 375 004041 378 004042 382 004061 383 004072 384 004074 385 004077 386 004102 387 004104 388 004106 390 004111 391 004115 392 004123 396 004224 397 004227 398 004231 399 004233 400 004236 403 004237 410 004256 411 004262 412 004273 413 004276 414 004300 416 004301 417 004305 418 004313 419 004370 420 004375 421 004376 422 004377 423 004401 428 004402 432 004404 433 004421 435 004434 438 004442 465 004444 467 004446 468 004450 469 004457 470 004467 471 004502 472 004504 473 004524 475 004525 ----------------------------------------------------------- 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