COMPILATION LISTING OF SEGMENT azm_address_space_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 07/28/87 0936.0 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(87-01-14,Parisek), approve(87-07-09,MCR7746), 12* audit(87-07-20,Fawcett), install(87-07-28,MR12.1-1049): 13* Call amu_$terminate_translation to free oldest allocated fdump temp 14* segments when user's process_dir is found to be at least 75% full. 15* (phx19335) 16* END HISTORY COMMENTS */ 17 18 19 azm_address_space_: proc (); 20 21 return; /* not an entrypoint */ 22 23 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend,ifthendo,ifthen,^thendo */ 24 25 26 /* Assorted requests for analyze_multics. */ 27 28 29 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 30 /* */ 31 /* 0) Created: 06/25/83 by B. Braun from the division of azm_misc_requests_ into smaller */ 32 /* modules. This includes azm requests dealing with address spaces: select_dump, */ 33 /* deadproc_mode (not a request yet), delete_dump, list_dumps, fdump_components */ 34 /* */ 35 /* 1) Modified: 08/10/84 by B. Braun to add $deadproc entry. */ 36 /* 2) Modified: 09/26/84 by R. A. Fawcett to call azm_why$who when a fdump is found. */ 37 /* 3) Modified: 01/11/85 by BLB to abort with no code after a call to amu_$deadproc_init. */ 38 /* */ 39 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 40 41 42 dcl ( 43 P_sci_ptr pointer, 44 P_azm_info_ptr pointer 45 ) parameter; 46 47 /* Automatic */ 48 49 dcl WHAT_ERF fixed bin; 50 51 dcl af_sw bit (1) aligned; 52 dcl already_translated bit(1); 53 dcl alloted_quota fixed bin(18); 54 dcl axp ptr init (null); 55 dcl argl fixed bin (21); 56 dcl argno fixed bin; 57 dcl argp pointer; 58 dcl axstring char (7) init (""); 59 dcl brief_sw bit (1) init ("0"b); 60 dcl code fixed bin (35); 61 dcl configp ptr init (null); 62 dcl cur_erf bit (1) init ("0"b); 63 dcl del_cur_erf bit (1) init ("0"b); 64 dcl del_erf bit (1) init ("0"b); 65 dcl destroy_amu_ptr ptr; 66 dcl dir_name char (168); 67 dcl dir_sw bit (1) init ("0"b); 68 dcl dp_path char(168); 69 dcl dsegp ptr init (null); 70 dcl dump_path char(168); 71 dcl erf_name char (168); 72 dcl erf_path char (168); 73 dcl erfs_found bit (1) init ("0"b); 74 dcl expand_ptr_sw bit (1) init ("0"b); 75 dcl expand_sw bit (1) init ("0"b); /* "1"b = expand syserr binary data */ 76 dcl first_erf bit (1) init ("0"b); 77 dcl first_value_set bit (1) init ("0"b); 78 dcl forward_search bit (1) init ("0"b); 79 dcl frame_entry bit (1) init ("0"b); 80 dcl hdr_printed bit (1) init ("0"b); 81 dcl last fixed bin init (0); 82 dcl last_erf bit (1) init ("0"b); 83 dcl list_erfs bit (1) init ("0"b); 84 dcl ll fixed bin init (0); 85 dcl ln fixed bin init (0); 86 dcl match_str char (256) var init (""); /* the syserr string to match on */ 87 dcl nargs fixed bin; 88 dcl next_erf bit (1) init ("0"b); 89 dcl prev_erf bit (1) init ("0"b); 90 dcl print_all_trans bit (1) init ("0"b); 91 dcl print_erf_sw bit (1); 92 dcl print_sw bit(1); 93 dcl process_dir char(168); /* users process dir */ 94 dcl quota_percent_flt float bin(18); /* alloted quota divided by quota_used */ 95 dcl quota_percent_fix fixed bin(18); 96 dcl quota_used fixed bin(18); /* used quota in pd */ 97 dcl range_value_set bit (1) init ("0"b); 98 dcl raw_syserr_data bit (1) init ("0"b); /* "1"b = print it in octal */ 99 dcl ret_str char (168) var init (""); 100 dcl rv_lth fixed bin (21); 101 dcl rv_ptr ptr; 102 dcl sci_ptr pointer; /* assorted info pointers */ 103 dcl segln fixed bin (35) init (0); 104 dcl slog_code fixed bin init (3); /* the syserr_code, default to =< 3 */ 105 dcl sons_lvid bit(36); 106 dcl start_configp ptr init (null); 107 dcl struct_sw bit (1) init ("0"b); 108 dcl tacc_sw fixed bin(1); 109 dcl trp fixed bin(71); 110 dcl tup bit(36) aligned; 111 dcl why_erf bit (1) init ("0"b); 112 113 /* Based */ 114 115 dcl arg char (argl) based (argp); 116 dcl rv_str char (rv_lth) varying based (rv_ptr); 117 118 /* Constants */ 119 120 /* Builtins */ 121 122 dcl (addr, char, null, search, string, 123 index) builtin; 124 125 /* Conditions */ 126 127 dcl cleanup condition; 128 129 /* External Entries */ 130 131 dcl amu_$deadproc_init entry (char(*), char (168), ptr, fixed bin (35)); 132 dcl amu_$current_deadproc entry (ptr); 133 dcl amu_$deadproc_name_af entry (ptr, ptr, fixed bin(21)); 134 dcl amu_$fdump_mgr_cur_erf entry(ptr); 135 dcl amu_$fdump_mgr_name_erf entry(ptr); 136 dcl amu_$fdump_mgr_find_fdump entry (char(*), ptr, char(*), fixed bin, ptr, fixed bin(35)); 137 dcl amu_$fdump_mgr_init_fdump entry (char (*), ptr, ptr, fixed bin (35)); 138 dcl amu_$find_system_fdump entry (character (*), pointer, fixed binary (35)); 139 dcl amu_$find_system_pdir entry (character (*), pointer, fixed binary (35)); 140 dcl amu_$list_system_dumps entry (character (*), character (8) aligned, fixed bin, pointer, pointer, 141 fixed binary (35)); 142 dcl amu_$terminate_translation entry (ptr); 143 dcl azm_why_$who entry (ptr, ptr, fixed bin(35)); 144 dcl check_star_name_$path entry (char(*), fixed bin(35)); 145 dcl expand_pathname_$add_suffix entry (char(*), char(*), char(*), char(*), fixed bin(35)); 146 dcl get_pdir_ entry returns (char(168)); 147 dcl hcs_$quota_read entry (char(*), fixed bin(18), fixed bin(71), 148 bit(36) aligned, bit(36), fixed bin(1), fixed bin(18), fixed bin(35)); 149 dcl ioa_ entry options (variable); 150 dcl pathname_ entry (char(*), char(*)) returns(char(168)); 151 dcl ssu_$abort_line entry options (variable); 152 dcl ssu_$add_request_table entry (ptr, ptr, fixed bin, fixed bin(35)); 153 dcl ssu_$arg_count entry (pointer, fixed bin, bit (1) aligned); 154 dcl ssu_$arg_ptr entry (pointer, fixed bin, pointer, fixed bin (21)); 155 dcl ssu_$delete_request_table entry (ptr, ptr, fixed bin(35)); 156 dcl ssu_$get_subsystem_and_request_name entry (pointer) returns (char (72) varying); 157 dcl ssu_$print_message entry() options(variable); 158 dcl ssu_$return_arg entry (ptr, fixed bin, bit (1) aligned, ptr, fixed bin (21)); 159 160 /* External Static */ 161 162 dcl error_table_$badopt fixed bin (35) external static; 163 dcl error_table_$noentry fixed bin (35) external static; 164 dcl error_table_$nostars fixed bin (35) external static; 165 dcl error_table_$too_many_args fixed bin (35) external static; 166 dcl ssu_et_$request_table_not_found fixed bin (35) external static; 167 168 dcl azm_request_table_$azm_request_table_ fixed bin external static; 169 dcl azm_pdir_rq_table_$azm_pdir_rq_table_ fixed bin external static; 170 171 /*****************************************************************************/ 172 173 azm_address_space_$list_dumps: 174 entry (P_sci_ptr, P_azm_info_ptr); 175 176 dcl dx fixed bin; 177 dcl (fdump_sw, deadproc_sw) bit(1); 178 dcl list_name char(168); 179 dcl list_what fixed bin; 180 181 call setup(); 182 183 if nargs > 3 then do; 184 code = error_table_$too_many_args; 185 call ssu_$abort_line (sci_ptr, code, "^/Usage: lsd {PATH} {-ctl_args"); 186 end; 187 188 /* set defaults */ 189 190 deadproc_sw = "0"b; 191 fdump_sw = "0"b; 192 list_what = LIST_FDUMPS; 193 list_name = "*"; 194 195 do argno = 1 to nargs; 196 call ssu_$arg_ptr (sci_ptr, argno, argp, argl); 197 if char (arg, 1) = "-" then do; 198 if arg = "-fdump" | arg = "-fd" then fdump_sw = "1"b; 199 else if arg = "-dp" | arg = "-deadproc" then deadproc_sw = "1"b; 200 else call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a"".", arg); 201 end; 202 else list_name = arg; 203 end; 204 205 if ^(fdump_sw | deadproc_sw) then fdump_sw = "1"b; 206 if fdump_sw & deadproc_sw then list_what = LIST_ALL; 207 else if deadproc_sw then list_what = LIST_PDIRS; 208 else if fdump_sw then list_what = LIST_FDUMPS; 209 210 system_dump_list_ptr = null(); 211 on cleanup begin; 212 if system_dump_list_ptr ^= null() then free system_dump_list; 213 end; 214 call amu_$list_system_dumps (list_name, SYSTEM_DUMP_LIST_VERSION_1, list_what, azm_info.area_ptr, 215 system_dump_list_ptr, code); 216 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, 217 "Listing ^[fdumps^;pdirs^] ^[matching ^a^;^sfound by ""dumps"" search paths^].", 218 fdump_sw, (search(list_name, "<>") ^= 0), list_name); 219 220 do dx = 1 to system_dump_list.n_dumps; 221 if system_dump_list.new_directory (dx) then call ioa_ ("Dumps in ^a:", system_dump_list.dir_name (dx)); 222 call ioa_ ("^5x^a", system_dump_list.full_entryname (dx)); 223 end; 224 225 free system_dump_list; /* all done */ 226 return; 227 228 /*****************************************************************************/ 229 230 azm_address_space_$fdump_components: 231 entry (P_sci_ptr, P_azm_info_ptr); 232 233 sci_ptr = P_sci_ptr; 234 call ssu_$abort_line (sci_ptr, 0, "This request has not been implemented yet."); 235 236 return; 237 238 /*****************************************************************************/ 239 240 azm_address_space_$delete_dump: 241 entry (P_sci_ptr, P_azm_info_ptr); 242 243 sci_ptr = P_sci_ptr; 244 call ssu_$abort_line (sci_ptr, 0, "This request has not been implemented yet."); 245 246 return; 247 248 /*****************************************************************************/ 249 250 azm_address_space_$erf: 251 entry (P_sci_ptr, P_azm_info_ptr); 252 253 /* Select a new or previously translated ERF to peruse or delete. */ 254 255 call setup; 256 257 if nargs = 0 then do; 258 if ^azm_info.flags.in_erf then call ssu_$abort_line (sci_ptr, 0, "No dump has been selected yet."); 259 call amu_$fdump_mgr_cur_erf (amu_info_ptr); 260 return; 261 end; 262 263 if nargs > 1 then do; 264 code = error_table_$too_many_args; 265 call ssu_$abort_line (sci_ptr, code, "^/Usage: sld NAME | -next | -prev | -last | -first"); 266 return; 267 end; 268 269 first_erf, last_erf, prev_erf, next_erf, cur_erf, why_erf = "0"b; 270 erf_name, dir_name, erf_path, dump_path = ""; 271 WHAT_ERF = -1; 272 do argno = 1 to nargs; 273 call ssu_$arg_ptr (sci_ptr, argno, argp, argl); 274 if index (arg, "-") = 1 then do; 275 if arg = "-previous" | arg = "-prev" then do; 276 WHAT_ERF = 2; 277 prev_erf = "1"b; 278 end; 279 else if arg = "-nx" | arg = "-next" then do; 280 WHAT_ERF = 3; 281 next_erf = "1"b; 282 end; 283 else if arg = "-lt" | arg = "-last" then do; 284 WHAT_ERF = 1; /* looking for newest */ 285 last_erf = "1"b; 286 end; 287 else if arg = "-ft" | arg = "-first" then do; 288 WHAT_ERF = 0; /* looking for oldest */ 289 first_erf = "1"b; 290 end; 291 else do; 292 call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a"".", arg); 293 end; 294 end; 295 else do; 296 dump_path = arg; 297 end; 298 end; 299 300 301 SDI_ptr = addr(SDI); 302 SDI.version = SYSTEM_DUMP_INFO_VERSION_1; 303 SDI.dump_dir_name, SDI.dump_seg_prefix, SDI.dump_name, SDI.dump_entry_format = ""; 304 code = 0; 305 if dump_path ^= "" then do; 306 call check_star_name_$path (dump_path, code); 307 if code > 0 then 308 call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", dump_path); 309 call amu_$find_system_fdump (dump_path, SDI_ptr, code); 310 if code ^= 0 then do; 311 if code = error_table_$noentry then call ssu_$abort_line (sci_ptr, code, "Looking for fdump ^a.", dump_path); 312 else call ssu_$abort_line (sci_ptr, code, "^a", dump_path); 313 end; 314 315 /* got the erf, check if it's already translated */ 316 already_translated = "0"b; 317 if amu_info_ptr ^= null() then /* ensure ERF is not already translated */ 318 call walk_chain((SDI.dump_name), amu_info_ptr, already_translated); 319 if already_translated then do; 320 print_erf_sw = "1"b; 321 goto FOUND_ERF; 322 end; 323 else do; 324 /* here we init the fdump */ 325 goto INIT_FDUMP; 326 end; 327 end; 328 329 /* Here we have to get a list of all fdumps and then determine the one wanted from the current one */ 330 331 if WHAT_ERF >= 0 then do; 332 if (next_erf | prev_erf) then do; 333 if amu_info_ptr = null() then call ssu_$abort_line (sci_ptr, 0, "No fdump currently selected."); 334 if amu_info.type ^= FDUMP_PROCESS_TYPE then call ssu_$abort_line (sci_ptr, 0, "No current fdump selected."); 335 end; 336 if amu_info_ptr = null() then erf_path = ""; 337 else erf_path = pathname_((fdump_info.dump_dname), (fdump_info.dump_ename)); 338 call amu_$fdump_mgr_find_fdump ((ssu_$get_subsystem_and_request_name (sci_ptr)), amu_info_ptr, erf_path, 339 WHAT_ERF, SDI_ptr, code); 340 if code ^= 0 then return; /* msg already printed */ 341 end; 342 343 already_translated = "0"b; 344 if amu_info_ptr ^= null() then /* ensure ERF is not already translated */ 345 call walk_chain((SDI.dump_name), amu_info_ptr, already_translated); 346 if already_translated then do; 347 print_erf_sw = "1"b; 348 goto FOUND_ERF; 349 end; 350 351 INIT_FDUMP: 352 353 /* Get the amount of used quota in user's process directory before attempting 354* a dump translation. If at least 75% full then at least query user as to 355* whether he/she still wants to continue. */ 356 357 process_dir = get_pdir_ (); 358 call hcs_$quota_read (process_dir, alloted_quota, trp, tup, sons_lvid, tacc_sw, quota_used, code); 359 if code ^= 0 then call ssu_$print_message (sci_ptr, code, "Will continue..."); 360 else do; 361 quota_percent_flt = quota_used / alloted_quota; 362 quota_percent_fix = quota_percent_flt*100; 363 if quota_percent_fix >= 75 then do; 364 destroy_amu_ptr = amu_info_ptr; 365 do while (destroy_amu_ptr->amu_info.chain.prev ^= null); 366 destroy_amu_ptr = destroy_amu_ptr->amu_info.chain.prev; 367 end; 368 call amu_$terminate_translation (destroy_amu_ptr); 369 end; 370 end; 371 372 /* Ok will look for it */ 373 374 call amu_$fdump_mgr_init_fdump ((ssu_$get_subsystem_and_request_name (sci_ptr)), SDI_ptr, amu_info_ptr, code); 375 376 if code ^= 0 then return; /* message already printed */ 377 print_erf_sw = "1"b; 378 string (azm_info.flags) = ""b; 379 380 /* chain this in at the end */ 381 382 call add_to_chain(azm_info.aip, amu_info_ptr); 383 384 /* find the process that is indicated by scs$trouble_pid */ 385 /* azm_why_$who will return a 0 code if it could find and set to */ 386 /* the trouble_pid if not able the default will not change and */ 387 /* the error_table_$action_not_preformed will be returned but we */ 388 /* don't care and the code will be set to zero. */ 389 390 call azm_why_$who (sci_ptr,amu_info_ptr,code); 391 code = 0; 392 393 FOUND_ERF: 394 395 call set_azm_info (print_erf_sw, "0"b); 396 397 /* change request tables */ 398 call ssu_$delete_request_table (sci_ptr, addr(azm_pdir_rq_table_$azm_pdir_rq_table_), code); 399 if code = ssu_et_$request_table_not_found then; 400 /* If this code is returned, we must not add the table "azm_request_table_". 401* If we do, all future calls to add the request table "pdir_rq_table_" will fail, although code returned is 0. */ 402 else do; 403 call ssu_$add_request_table (sci_ptr, addr(azm_request_table_$azm_request_table_), 1, code); 404 if code ^= 0 then call ssu_$print_message(sci_ptr, code, "Adding azm_request_table_."); 405 end; 406 407 return; 408 409 /*****************************************************************************/ 410 411 azm_address_space_$deadproc: 412 entry (P_sci_ptr, P_azm_info_ptr); 413 414 /* Select a new or previously translated SAVED PROC (deadproc) to peruse or delete. */ 415 416 dcl dp_name char(168); 417 418 call setup(); 419 print_sw = "0"b; 420 if nargs = 0 then do; 421 if ^azm_info.flags.saved_proc then call ssu_$abort_line (sci_ptr, 0, "No dead process selected."); 422 call amu_$current_deadproc (amu_info_ptr); 423 return; 424 end; 425 426 else if nargs > 1 then do; 427 code = error_table_$too_many_args; 428 call ssu_$abort_line (sci_ptr, code, "^/Usage: sldp NAME"); 429 return; 430 end; 431 432 dp_name, dp_path, dir_name = ""; 433 code = 0; 434 already_translated = "0"b; 435 call ssu_$arg_ptr (sci_ptr, 1, argp, argl); 436 dp_path = arg; 437 438 code = 0; 439 call check_star_name_$path (dp_path, code); 440 if code > 0 then 441 call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", dp_path); 442 443 if amu_info_ptr ^= null() then do; /* check to see if already translated */ 444 /* call parse_dump_path (dp_path, dp_name, dir_name);*/ 445 code = 0; 446 call expand_pathname_$add_suffix (dp_path, PDIR_SUFFIX, dir_name, dp_name, code); 447 if code ^= 0 then goto FIND_NAME; 448 call walk_chain(dp_name, amu_info_ptr, already_translated); 449 if already_translated then goto FOUND_DP; 450 end; 451 452 FIND_NAME: 453 SDI.version = SYSTEM_DUMP_INFO_VERSION_1; 454 SDI.dump_dir_name, SDI.dump_seg_prefix, SDI.dump_name, SDI.dump_entry_format = ""; 455 call amu_$find_system_pdir (dp_path, addr (SDI), code); 456 if code ^= 0 then call ssu_$abort_line (sci_ptr, code, "^a", dp_path); 457 458 call walk_chain((SDI.dump_name), amu_info_ptr, already_translated); 459 if already_translated then goto FOUND_DP; 460 call amu_$deadproc_init ((ssu_$get_subsystem_and_request_name (sci_ptr)), 461 pathname_(SDI.dump_dir_name, (SDI.dump_name)), amu_info_ptr, code); 462 if code ^= 0 then call ssu_$abort_line (sci_ptr, 0); /* message already printed */ 463 464 call add_to_chain(azm_info.aip, amu_info_ptr); 465 string (azm_info.flags) = ""b; 466 467 FOUND_DP: 468 469 call set_azm_info ("1"b, af_sw); 470 471 /* change request tables */ 472 call ssu_$delete_request_table (sci_ptr, addr(azm_request_table_$azm_request_table_), (0)); 473 call ssu_$add_request_table (sci_ptr, addr(azm_pdir_rq_table_$azm_pdir_rq_table_), 1, code); 474 if code ^= 0 then call ssu_$print_message(sci_ptr, code, "Adding azm_pdir_rq_table_."); 475 476 return; /* end "deadproc" request */ 477 478 /*****************************************************************************/ 479 480 add_to_chain: proc(start_ptr, new_ptr); 481 482 dcl new_ptr ptr; 483 dcl start_ptr ptr; 484 dcl temp_ptr ptr; 485 486 temp_ptr = start_ptr; 487 if temp_ptr ^= null then do; 488 /* first walk chain to last amu_info in chain */ 489 do while (temp_ptr -> amu_info.chain.next ^= null); 490 temp_ptr = temp_ptr -> amu_info.chain.next; 491 end; 492 end; 493 494 /* Now chain new one on */ 495 496 new_ptr -> amu_info.chain.prev = temp_ptr; 497 new_ptr -> amu_info.chain.next = null (); 498 if temp_ptr ^= null () then temp_ptr -> amu_info.chain.next = new_ptr; 499 500 end add_to_chain; 501 502 /*****************************************************************************/ 503 504 set_azm_info: 505 proc (print_it, af_sw); 506 507 dcl print_it bit (1); 508 dcl af_sw bit(1) aligned; 509 510 azm_info.aip = amu_info_ptr; 511 if trans_selected () then do; 512 if amu_info.type = FDUMP_TYPE | amu_info.type = FDUMP_PROCESS_TYPE then do; 513 azm_info.erf_name = fdump_info.erf_name; 514 azm_info.flags.in_erf = "1"b; 515 if print_it then call amu_$fdump_mgr_name_erf (amu_info_ptr); 516 end; 517 else if (amu_info.type = SAVED_PROC_TYPE) then do; 518 azm_info.erf_name = amu_info.fdump_info_ptr -> old_uid_table.dp_name; 519 azm_info.flags.saved_proc = "1"b; 520 if af_sw then call amu_$deadproc_name_af (amu_info_ptr, rv_ptr, rv_lth); 521 else call amu_$current_deadproc (amu_info_ptr); 522 end; 523 end; 524 else azm_info.erf_name = ""; 525 end set_azm_info; 526 527 /*****************************************************************************/ 528 529 setup: 530 proc; 531 532 sci_ptr = P_sci_ptr; 533 azm_info_ptr = P_azm_info_ptr; 534 amu_info_ptr = azm_info.aip; 535 call ssu_$return_arg (sci_ptr, nargs, af_sw, rv_ptr, rv_lth); 536 if af_sw then rv_str = ""; 537 else call ssu_$arg_count (sci_ptr, nargs, af_sw); 538 allocate_uid_hash = 0; /* To avoid the compiler warning */ 539 end setup; 540 541 /*****************************************************************************/ 542 543 trans_selected: 544 proc () returns (bit (1)); 545 546 if amu_info_ptr = null () then return ("0"b); 547 return ("1"b); 548 end trans_selected; 549 550 /*****************************************************************************/ 551 552 walk_chain: proc(dump_name, a_chain_ptr, found); 553 554 dcl dump_name char(*); 555 dcl a_chain_ptr ptr; 556 dcl found bit(1); 557 558 /* This routine walks the amu_info chain to determine if the dump is already translated. 559* If so, found is true, else found is false. 560* 561* dump_name name of dump to look for (input) 562* a_chain_ptr chain_ptr, if found the ptr of the found translation is returned. (input/output) 563* found true if already translated (output) 564**/ 565 566 dcl temp_ptr ptr; 567 dcl chain_ptr ptr; 568 569 chain_ptr = a_chain_ptr; 570 found = "0"b; 571 if chain_ptr = null then return; /* no chain to walk exists */ 572 573 /* find first trans */ 574 do while (chain_ptr -> amu_info.chain.prev ^= null); 575 chain_ptr = chain_ptr -> amu_info.chain.prev; 576 end; 577 578 do while (chain_ptr ^= null & ^found); /* now walk chain */ 579 temp_ptr = chain_ptr -> amu_info.fdump_info_ptr; 580 if chain_ptr -> amu_info.type = FDUMP_TYPE | chain_ptr -> amu_info.type = FDUMP_PROCESS_TYPE then do; 581 if temp_ptr -> fdump_info.erf_name = dump_name then do; 582 /* Ok I found it */ 583 a_chain_ptr = chain_ptr; 584 found = "1"b; 585 end; 586 end; 587 else if chain_ptr -> amu_info.type = SAVED_PROC_TYPE then do; 588 if temp_ptr -> old_uid_table.dp_name = dump_name then do; 589 /* Ok I found it */ 590 a_chain_ptr = chain_ptr; 591 found = "1"b; 592 end; 593 end; 594 chain_ptr = chain_ptr -> amu_info.chain.next; 595 end; /* end loop */ 596 597 end walk_chain; 598 1 1 /* BEGIN INCLUDE FILE amu_info.incl.pl1 */ 1 2 1 3 dcl 1 amu_info aligned based (amu_info_ptr), 1 4 2 version char (8) aligned, /* AMU_INFO_VERSION */ 1 5 2 flags aligned, 1 6 3 early_dump bit(1) unal, 1 7 3 pad bit(35) unal, 1 8 2 type fixed bin unal, /* One of the types below */ 1 9 2 time_created fixed bin (71) aligned, /* time created -- for debugging purposes */ 1 10 2 chain, /* a chain of all the amu_info's which exist */ 1 11 3 prev pointer unaligned, 1 12 3 next pointer unaligned, 1 13 1 14 2 area_ptr pointer, /* pointer to area used for allocating things */ 1 15 1 16 2 translation_table_ptr pointer, /* pointer to address map -- always present */ 1 17 /* SEE: amu_translation.incl.pl1 */ 1 18 2 fdump_info_ptr pointer, 1 19 /* pointer to FDUMP info, present if looking at an FDUMP */ 1 20 /* SEE: amu_fdump_info.incl.pl1 */ 1 21 /* old_uid_table pointer if looking at a SAVED PROC. */ 1 22 /* See: amu_old_uid_table */ 1 23 1 24 1 25 2 hardcore_info_ptr pointer, /* pointer to hardcore information -- always present */ 1 26 /* SEE: amu_hardcore_info.incl.pl1 */ 1 27 2 copy_chain pointer, /* pointer to info about segment copies */ 1 28 /* SEE: amu_copy_info.incl.pl1 */ 1 29 2 process_info_ptr pointer, /* pointer to process info for this translation */ 1 30 /* SEE: amu_process_info.incl.pl1 */ 1 31 2 process_idx fixed bin, /* index of process in translation-specifc process table */ 1 32 1 33 2 proc_idx_hold fixed bin, /* a place to keep the index when a changing to another proc */ 1 34 1 35 2 error_info, /* various info about how amu_error_ is to behave */ 1 36 3 error_flags aligned, 1 37 4 handler_exists bit (1) unaligned, /* set to indicate existence of an amu_error handler */ 1 38 4 in_subsystem bit (1) unaligned, /* This amu_info belongs to an ssu_ maintained subsystem */ 1 39 4 pad bit (34) unaligned, 1 40 3 sci_ptr pointer, /* sci_ptr for subsystem, if in_subsystem = "1"b */ 1 41 2 definitions_info_ptr ptr; 1 42 1 43 dcl amu_area area based (amu_info.area_ptr); 1 44 1 45 dcl amu_info_ptr pointer; 1 46 1 47 dcl (FDUMP_TYPE init (1037), /* the various legitimate types of amu_info's */ 1 48 FDUMP_PROCESS_TYPE init (1038), 1 49 ONLINE_TYPE init (1039), 1 50 ONLINE_PROCESS_TYPE init (1040), 1 51 NETWORK_FDUMP_TYPE init (1041), 1 52 NETWORK_ONLINE_TYPE init (1042), 1 53 SAVED_PROC_TYPE init (1043), 1 54 INDIRECT_TYPE init (1044)) fixed bin internal static options (constant); 1 55 1 56 dcl AMU_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_v1"); 1 57 dcl AMU_INFO_VERSION char (8) internal static options (constant) init ("amu_v1"); 1 58 dcl AMU_INFO_VERSION_2 char (8) internal static options (constant) init ("amu_v2"); 1 59 1 60 dcl PDIR_SUFFIX char(4) init("pdir") int static options(constant); 1 61 1 62 /* END INCLUDE FILE amu_info.incl.pl1 */ 599 600 2 1 /* BEGIN INCLUDE FILE amu_fdump_info.incl.pl1 */ 2 2 2 3 dcl 1 fdump_info aligned based (amu_info.fdump_info_ptr), 2 4 2 version char (8), 2 5 2 ref_count fixed bin, /* number of initiations */ 2 6 2 7 2 erf_name char (32), /* ERF name for this dump */ 2 8 2 dump_dname char (168), /* location of the dump */ 2 9 2 dump_ename char (32), /* ename of component zero */ 2 10 2 system_id char (8), /* the system_id of this erf */ 2 11 2 version_id char (8), /* the version id of this erf */ 2 12 2 dump_seg_0_uid bit (36) aligned, /* for determining EQ-ness and gullibility checking */ 2 13 2 14 2 n_dump_segs fixed bin, /* number of real segs in the dump */ 2 15 2 copy_block_ptr pointer, /* pointer to chain of temp segment blocks */ 2 16 2 17 2 dump_seg_ptr (0:31) pointer, /* pointer and length arrays */ 2 18 2 dump_seg_lth (0:31) fixed bin (18), 2 19 2 20 2 fdump_process_table_ptr pointer; /* pointer to array describing processes */ 2 21 2 22 2 23 dcl 1 fdump_process_table aligned based (fdump_info.fdump_process_table_ptr), 2 24 2 size fixed bin, /* number of entries */ 2 25 2 26 2 array (0:alloc_fdump_process_table_size - 1 refer (fdump_process_table.size)) like fp_table; 2 27 2 28 dcl 1 fp_table based (fp_table_ptr), 2 29 2 first_seg fixed bin, 2 30 2 last_seg fixed bin, 2 31 2 process_info_ptr pointer unaligned, /* pointer to process_info structure, if filled in */ 2 32 2 dmp_seg_indx fixed bin, /* dump seg index where process can be found */ 2 33 2 dmp_seg_offset fixed bin (24), /* offset in the segment refered to by dmp_seg_indx where process starts */ 2 34 2 cpu_name char (1), 2 35 2 dbr fixed bin (24), /* address portion of DBR */ 2 36 2 apte_offset fixed bin (18); 2 37 2 38 dcl fp_table_ptr ptr; 2 39 2 40 dcl alloc_fdump_process_table_size fixed bin; 2 41 2 42 dcl AMU_FDUMP_INFO_VERSION_1 char (8) internal static options (constant) init ("amu_erf1"); 2 43 dcl AMU_FDUMP_INFO_VERSION char (8) internal static options (constant) init ("amu_erf1"); 2 44 2 45 /* END INCLUDE FILE amu_fdump_info.incl.pl1 */ 601 602 3 1 /* Begin amu_old_uid_table.incl.pl1 */ 3 2 3 3 dcl old_uid_table_ptr ptr; 3 4 3 5 3 6 dcl 1 old_uid_table based (old_uid_table_ptr), 3 7 2 dp_dir char (168), 3 8 2 dp_name char (32), 3 9 2 sys_release char (8), 3 10 2 max_uid_ind fixed bin, 3 11 2 hash_factor fixed bin, 3 12 2 uid_array (0 :allocate_uid_hash) like old_uide; 3 13 3 14 dcl old_uidep ptr; 3 15 3 16 dcl 1 old_uide based (old_uidep), 3 17 2 uid bit (36), 3 18 2 seg_name char (168); 3 19 3 20 dcl allocate_uid_hash fixed bin; 3 21 603 604 4 1 /* BEGIN INCLUDE FILE amu_translation.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(87-01-16,Parisek), approve(87-07-16,MCR7746), 4 7* audit(87-07-16,Fawcett), install(87-07-28,MR12.1-1049): 4 8* Added the "replaced" field to record whether a segment was replaced by 4 9* another segment via the "replace" request. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 dcl 1 translation_table aligned based (amu_info.translation_table_ptr), 4 14 2 n_entries fixed bin, 4 15 2 max_entries fixed bin, 4 16 4 17 2 valid_array aligned, /* one bit for each valid segno */ 4 18 3 valid (0 : 4095) bit (1) unaligned, 4 19 2 used_array aligned, /* one bit for each existing translation */ 4 20 3 used (0 : 4095) bit (1) unaligned, 4 21 4 22 2 array (alloc_translation_table_max_entries refer (translation_table.max_entries)) like translation; 4 23 4 24 dcl 1 translation aligned based (translation_ptr), /* a single translation */ 4 25 2 segno fixed bin (18) unsigned unaligned, /* foreign segno for this translation */ 4 26 2 flags unaligned, 4 27 3 two_part bit (1) unaligned, /* segment is in two pieces -- from an FDUMP */ 4 28 3 in_dump bit (1) unaligned, /* segment is part of an FDUMP image */ 4 29 3 in_temp_seg bit (1) unaligned, /* segment is a copy at the base of a temp segment */ 4 30 3 in_perm_seg bit (1) unaligned, /* segment is in the file system */ 4 31 3 in_dp_dir bit (1) unaligned, 4 32 3 replaced bit (1) unaligned, 4 33 3 pad bit (12) unaligned, 4 34 2 part1, /* pointer to first (possibly only) part of segment */ 4 35 3 ptr pointer unaligned, 4 36 3 lth fixed bin (19), 4 37 2 part2 like translation.part1; 4 38 4 39 dcl alloc_translation_table_max_entries fixed bin; 4 40 dcl translation_ptr pointer; 4 41 4 42 /* END INCLUDE FILE amu_translation.incl.pl1 */ 605 606 5 1 /* BEGIN INCLUDE FILE azm_info.incl.pl1 */ 5 2 5 3 dcl 1 azm_info aligned based (azm_info_ptr), 5 4 2 version char(8), 5 5 2 area_ptr ptr, /* area pointer for azm to use when needed */ 5 6 2 aip pointer, /* pointer for all amu_ calls */ 5 7 2 flags aligned, 5 8 3 in_erf bit (1) unaligned, /* examining an FDUMP */ 5 9 3 in_process bit (1) unaligned, /* some specific process selected in FDUMP */ 5 10 3 online bit (1) unaligned, /* examining online system, my process */ 5 11 3 saved_proc bit (1) unaligned, /* examining "deadproc" */ 5 12 3 pad bit (33) unaligned, 5 13 5 14 2 erf_name char (168), /* name of ERF or deadproc path */ 5 15 2 pad fixed bin; 5 16 5 17 dcl azm_info_ptr pointer; 5 18 5 19 dcl AZM_INFO_VERSION_1 char (8) internal static options (constant) init ("azm_v1"); 5 20 dcl AZM_INFO_VERSION_2 char (8) internal static options (constant) init ("azm_v2"); 5 21 5 22 /* END INCLUDE FILE azm_info.incl.pl1 */ 607 608 6 1 /* Begin include file system_dump_info.incl.pl1 */ 6 2 /* format: style3,idind30 */ 6 3 6 4 /* Information needed to get set up on an fdump */ 6 5 6 6 declare system_dump_info_ptr pointer; 6 7 declare 1 system_dump_info aligned based (system_dump_info_ptr), 6 8 2 version char (8) aligned, 6 9 2 dump_dir_name char (168) unaligned, 6 10 2 dump_seg_prefix char (32) varying, /* includes last ., not component number */ 6 11 2 dump_name char (32) varying, /* Usually ERF number */ 6 12 2 dump_entry_format char (40) unaligned;/* ioa_ string that you feed the component number into */ 6 13 6 14 declare SYSTEM_DUMP_INFO_VERSION_1 char (8) init ("sysd0001") int static options (constant); 6 15 6 16 declare system_dump_list_ptr pointer; 6 17 declare 1 system_dump_list aligned based (system_dump_list_ptr), 6 18 2 version char (8) aligned, 6 19 2 n_dumps fixed bin, 6 20 2 per_dump (system_dump_list_n_dumps refer (system_dump_list.n_dumps)) aligned, 6 21 3 dir_name char (168) unaligned, 6 22 3 minimal_entryname char (32) unaligned,/* for non-dup's, just number */ 6 23 3 full_entryname char (32) unaligned,/* component 0 entryname */ 6 24 3 new_directory bit (1) aligned, /* first of its dir */ 6 25 3 duplicate bit (1) aligned; /* on if more than one ERF N in same directory */ 6 26 6 27 declare system_dump_list_n_dumps fixed bin; 6 28 declare SYSTEM_DUMP_LIST_VERSION_1 char (8) aligned init ("sysdl001") int static options (constant); 6 29 6 30 declare (LIST_ALL fixed bin init (1), 6 31 LIST_FDUMPS fixed bin init (2), 6 32 LIST_PDIRS fixed bin init (3)) 6 33 int static options (constant); 6 34 6 35 /* End include file system_dump_info.incl.pl1 */ 609 610 611 dcl 1 SDI aligned like system_dump_info; 612 dcl SDI_ptr ptr; 613 614 615 end azm_address_space_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/28/87 0924.3 azm_address_space_.pl1 >spec>install>MR12.1-1049>azm_address_space_.pl1 599 1 11/20/84 0856.1 amu_info.incl.pl1 >ldd>include>amu_info.incl.pl1 601 2 09/22/83 1102.5 amu_fdump_info.incl.pl1 >ldd>include>amu_fdump_info.incl.pl1 603 3 09/22/83 1102.5 amu_old_uid_table.incl.pl1 >ldd>include>amu_old_uid_table.incl.pl1 605 4 07/28/87 0927.3 amu_translation.incl.pl1 >spec>install>MR12.1-1049>amu_translation.incl.pl1 607 5 11/20/84 0854.8 azm_info.incl.pl1 >ldd>include>azm_info.incl.pl1 609 6 11/20/84 0854.8 system_dump_info.incl.pl1 >ldd>include>system_dump_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. FDUMP_PROCESS_TYPE constant fixed bin(17,0) initial dcl 1-47 ref 334 512 580 FDUMP_TYPE constant fixed bin(17,0) initial dcl 1-47 ref 512 580 LIST_ALL constant fixed bin(17,0) initial dcl 6-30 ref 206 LIST_FDUMPS constant fixed bin(17,0) initial dcl 6-30 ref 192 208 LIST_PDIRS constant fixed bin(17,0) initial dcl 6-30 ref 207 PDIR_SUFFIX 000004 constant char(4) initial unaligned dcl 1-60 set ref 446* P_azm_info_ptr parameter pointer dcl 42 ref 173 230 240 250 411 533 P_sci_ptr parameter pointer dcl 42 ref 173 230 233 240 243 250 411 532 SAVED_PROC_TYPE constant fixed bin(17,0) initial dcl 1-47 ref 517 587 SDI 001122 automatic structure level 1 dcl 611 set ref 301 455 455 SDI_ptr 001232 automatic pointer dcl 612 set ref 301* 309* 338* 374* SYSTEM_DUMP_INFO_VERSION_1 000002 constant char(8) initial unaligned dcl 6-14 ref 302 452 SYSTEM_DUMP_LIST_VERSION_1 000000 constant char(8) initial dcl 6-28 set ref 214* WHAT_ERF 000100 automatic fixed bin(17,0) dcl 49 set ref 271* 276* 280* 284* 288* 331 338* a_chain_ptr parameter pointer dcl 555 set ref 552 569 583* 590* addr builtin function dcl 122 ref 301 398 398 403 403 455 455 472 472 473 473 af_sw 000101 automatic bit(1) dcl 51 in procedure "azm_address_space_" set ref 467* 535* 536 537* af_sw parameter bit(1) dcl 508 in procedure "set_azm_info" ref 504 520 aip 4 based pointer level 2 dcl 5-3 set ref 382* 464* 510* 534 allocate_uid_hash 001114 automatic fixed bin(17,0) dcl 3-20 set ref 538* alloted_quota 000103 automatic fixed bin(18,0) dcl 53 set ref 358* 361 already_translated 000102 automatic bit(1) unaligned dcl 52 set ref 316* 317* 319 343* 344* 346 434* 448* 449 458* 459 amu_$current_deadproc 000012 constant entry external dcl 132 ref 422 521 amu_$deadproc_init 000010 constant entry external dcl 131 ref 460 amu_$deadproc_name_af 000014 constant entry external dcl 133 ref 520 amu_$fdump_mgr_cur_erf 000016 constant entry external dcl 134 ref 259 amu_$fdump_mgr_find_fdump 000022 constant entry external dcl 136 ref 338 amu_$fdump_mgr_init_fdump 000024 constant entry external dcl 137 ref 374 amu_$fdump_mgr_name_erf 000020 constant entry external dcl 135 ref 515 amu_$find_system_fdump 000026 constant entry external dcl 138 ref 309 amu_$find_system_pdir 000030 constant entry external dcl 139 ref 455 amu_$list_system_dumps 000032 constant entry external dcl 140 ref 214 amu_$terminate_translation 000034 constant entry external dcl 142 ref 368 amu_info based structure level 1 dcl 1-3 amu_info_ptr 001112 automatic pointer dcl 1-45 set ref 259* 317 317* 333 334 336 337 337 338* 344 344* 364 374* 382* 390* 422* 443 448* 458* 460* 464* 510 512 512 513 515* 517 518 520* 521* 534* 546 area_ptr 2 based pointer level 2 dcl 5-3 set ref 214* arg based char unaligned dcl 115 set ref 197 198 198 199 199 200* 202 274 275 275 279 279 283 283 287 287 292* 296 436 argl 000106 automatic fixed bin(21,0) dcl 55 set ref 196* 197 198 198 199 199 200 200 202 273* 274 275 275 279 279 283 283 287 287 292 292 296 435* 436 argno 000107 automatic fixed bin(17,0) dcl 56 set ref 195* 196* 272* 273* argp 000110 automatic pointer dcl 57 set ref 196* 197 198 198 199 199 200 202 273* 274 275 275 279 279 283 283 287 287 292 296 435* 436 axp 000104 automatic pointer initial dcl 54 set ref 54* axstring 000112 automatic char(7) initial unaligned dcl 58 set ref 58* azm_info based structure level 1 dcl 5-3 azm_info_ptr 001116 automatic pointer dcl 5-17 set ref 214 258 378 382 421 464 465 510 513 514 518 519 524 533* 534 azm_pdir_rq_table_$azm_pdir_rq_table_ 000110 external static fixed bin(17,0) dcl 169 set ref 398 398 473 473 azm_request_table_$azm_request_table_ 000106 external static fixed bin(17,0) dcl 168 set ref 403 403 472 472 azm_why_$who 000036 constant entry external dcl 143 ref 390 brief_sw 000114 automatic bit(1) initial unaligned dcl 59 set ref 59* chain 6 based structure level 2 dcl 1-3 chain_ptr 000102 automatic pointer dcl 567 set ref 569* 571 574 575* 575 578 579 580 580 583 587 590 594* 594 char builtin function dcl 122 ref 197 check_star_name_$path 000040 constant entry external dcl 144 ref 306 439 cleanup 000754 stack reference condition dcl 127 ref 211 code 000115 automatic fixed bin(35,0) dcl 60 set ref 184* 185* 214* 216 216* 264* 265* 304* 306* 307 309* 310 311 311* 312* 338* 340 358* 359 359* 374* 376 390* 391* 398* 399 403* 404 404* 427* 428* 433* 438* 439* 440 445* 446* 447 455* 456 456* 460* 462 473* 474 474* configp 000116 automatic pointer initial dcl 61 set ref 61* cur_erf 000120 automatic bit(1) initial unaligned dcl 62 set ref 62* 269* deadproc_sw 000764 automatic bit(1) unaligned dcl 177 set ref 190* 199* 205 206 207 del_cur_erf 000121 automatic bit(1) initial unaligned dcl 63 set ref 63* del_erf 000122 automatic bit(1) initial unaligned dcl 64 set ref 64* destroy_amu_ptr 000124 automatic pointer dcl 65 set ref 364* 365 366* 366 368* dir_name 3 based char(168) array level 3 in structure "system_dump_list" packed unaligned dcl 6-17 in procedure "azm_address_space_" set ref 221* dir_name 000126 automatic char(168) unaligned dcl 66 in procedure "azm_address_space_" set ref 270* 432* 446* dir_sw 000200 automatic bit(1) initial unaligned dcl 67 set ref 67* dp_name 001040 automatic char(168) unaligned dcl 416 in procedure "azm_address_space_" set ref 432* 446* 448* dp_name 52 based char(32) level 2 in structure "old_uid_table" packed unaligned dcl 3-6 in procedure "azm_address_space_" ref 518 588 dp_path 000201 automatic char(168) unaligned dcl 68 set ref 432* 436* 439* 440* 446* 455* 456* dsegp 000254 automatic pointer initial dcl 69 set ref 69* dump_dir_name 2 001122 automatic char(168) level 2 packed unaligned dcl 611 set ref 303* 454* 460* 460* dump_dname 13 based char(168) level 2 dcl 2-3 ref 337 dump_ename 65 based char(32) level 2 dcl 2-3 ref 337 dump_entry_format 76 001122 automatic char(40) level 2 packed unaligned dcl 611 set ref 303* 454* dump_name parameter char unaligned dcl 554 in procedure "walk_chain" ref 552 581 588 dump_name 65 001122 automatic varying char(32) level 2 in structure "SDI" dcl 611 in procedure "azm_address_space_" set ref 303* 317 344 454* 458 460 460 dump_path 000256 automatic char(168) unaligned dcl 70 set ref 270* 296* 305 306* 307* 309* 311* 312* dump_seg_prefix 54 001122 automatic varying char(32) level 2 dcl 611 set ref 303* 454* dx 000762 automatic fixed bin(17,0) dcl 176 set ref 220* 221 221 222* erf_name 000330 automatic char(168) unaligned dcl 71 in procedure "azm_address_space_" set ref 270* erf_name 10 based char(168) level 2 in structure "azm_info" dcl 5-3 in procedure "azm_address_space_" set ref 513* 518* 524* erf_name 3 based char(32) level 2 in structure "fdump_info" dcl 2-3 in procedure "azm_address_space_" ref 513 581 erf_path 000402 automatic char(168) unaligned dcl 72 set ref 270* 336* 337* 338* erfs_found 000454 automatic bit(1) initial unaligned dcl 73 set ref 73* error_table_$badopt 000074 external static fixed bin(35,0) dcl 162 set ref 200* 292* error_table_$noentry 000076 external static fixed bin(35,0) dcl 163 ref 311 error_table_$nostars 000100 external static fixed bin(35,0) dcl 164 set ref 307* 440* error_table_$too_many_args 000102 external static fixed bin(35,0) dcl 165 ref 184 264 427 expand_pathname_$add_suffix 000042 constant entry external dcl 145 ref 446 expand_ptr_sw 000455 automatic bit(1) initial unaligned dcl 74 set ref 74* expand_sw 000456 automatic bit(1) initial unaligned dcl 75 set ref 75* fdump_info based structure level 1 dcl 2-3 fdump_info_ptr 14 based pointer level 2 dcl 1-3 ref 337 337 513 518 579 fdump_sw 000763 automatic bit(1) unaligned dcl 177 set ref 191* 198* 205 205* 206 208 216* first_erf 000457 automatic bit(1) initial unaligned dcl 76 set ref 76* 269* 289* first_value_set 000460 automatic bit(1) initial unaligned dcl 77 set ref 77* flags 6 based structure level 2 dcl 5-3 set ref 378* 465* forward_search 000461 automatic bit(1) initial unaligned dcl 78 set ref 78* found parameter bit(1) unaligned dcl 556 set ref 552 570* 578 584* 591* fp_table based structure level 1 unaligned dcl 2-28 frame_entry 000462 automatic bit(1) initial unaligned dcl 79 set ref 79* full_entryname 65 based char(32) array level 3 packed unaligned dcl 6-17 set ref 222* get_pdir_ 000044 constant entry external dcl 146 ref 351 hcs_$quota_read 000046 constant entry external dcl 147 ref 358 hdr_printed 000463 automatic bit(1) initial unaligned dcl 80 set ref 80* in_erf 6 based bit(1) level 3 packed unaligned dcl 5-3 set ref 258 514* index builtin function dcl 122 ref 274 ioa_ 000050 constant entry external dcl 149 ref 221 222 last 000464 automatic fixed bin(17,0) initial dcl 81 set ref 81* last_erf 000465 automatic bit(1) initial unaligned dcl 82 set ref 82* 269* 285* list_erfs 000466 automatic bit(1) initial unaligned dcl 83 set ref 83* list_name 000765 automatic char(168) unaligned dcl 178 set ref 193* 202* 214* 216 216* list_what 001037 automatic fixed bin(17,0) dcl 179 set ref 192* 206* 207* 208* 214* ll 000467 automatic fixed bin(17,0) initial dcl 84 set ref 84* ln 000470 automatic fixed bin(17,0) initial dcl 85 set ref 85* match_str 000471 automatic varying char(256) initial dcl 86 set ref 86* n_dumps 2 based fixed bin(17,0) level 2 dcl 6-17 ref 212 220 225 nargs 000572 automatic fixed bin(17,0) dcl 87 set ref 183 195 257 263 272 420 426 535* 537* new_directory 75 based bit(1) array level 3 dcl 6-17 ref 221 new_ptr parameter pointer dcl 482 ref 480 496 497 498 next 7 based pointer level 3 packed unaligned dcl 1-3 set ref 489 490 497* 498* 594 next_erf 000573 automatic bit(1) initial unaligned dcl 88 set ref 88* 269* 281* 332 null builtin function dcl 122 ref 54 61 69 106 210 212 317 333 336 344 365 443 487 489 497 498 546 571 574 578 old_uid_table based structure level 1 unaligned dcl 3-6 old_uide based structure level 1 packed unaligned dcl 3-16 part1 347 based structure array level 3 in structure "translation_table" dcl 4-13 in procedure "azm_address_space_" part1 1 based structure level 2 in structure "translation" dcl 4-24 in procedure "azm_address_space_" pathname_ 000052 constant entry external dcl 150 ref 337 460 460 per_dump 3 based structure array level 2 dcl 6-17 prev 6 based pointer level 3 packed unaligned dcl 1-3 set ref 365 366 496* 574 575 prev_erf 000574 automatic bit(1) initial unaligned dcl 89 set ref 89* 269* 277* 332 print_all_trans 000575 automatic bit(1) initial unaligned dcl 90 set ref 90* print_erf_sw 000576 automatic bit(1) unaligned dcl 91 set ref 320* 347* 377* 393* print_it parameter bit(1) unaligned dcl 507 ref 504 515 print_sw 000577 automatic bit(1) unaligned dcl 92 set ref 419* process_dir 000600 automatic char(168) unaligned dcl 93 set ref 351* 358* quota_percent_fix 000653 automatic fixed bin(18,0) dcl 95 set ref 362* 363 quota_percent_flt 000652 automatic float bin(18) dcl 94 set ref 361* 362 quota_used 000654 automatic fixed bin(18,0) dcl 96 set ref 358* 361 range_value_set 000655 automatic bit(1) initial unaligned dcl 97 set ref 97* raw_syserr_data 000656 automatic bit(1) initial unaligned dcl 98 set ref 98* ret_str 000657 automatic varying char(168) initial dcl 99 set ref 99* rv_lth 000732 automatic fixed bin(21,0) dcl 100 set ref 520* 535* 536 rv_ptr 000734 automatic pointer dcl 101 set ref 520* 535* 536 rv_str based varying char dcl 116 set ref 536* saved_proc 6(03) based bit(1) level 3 packed unaligned dcl 5-3 set ref 421 519* sci_ptr 000736 automatic pointer dcl 102 set ref 185* 196* 200* 216* 233* 234* 243* 244* 258* 265* 273* 292* 307* 311* 312* 333* 334* 338* 359* 374* 390* 398* 403* 404* 421* 428* 435* 440* 456* 460* 462* 472* 473* 474* 532* 535* 537* search builtin function dcl 122 ref 216 segln 000740 automatic fixed bin(35,0) initial dcl 103 set ref 103* slog_code 000741 automatic fixed bin(17,0) initial dcl 104 set ref 104* sons_lvid 000742 automatic bit(36) unaligned dcl 105 set ref 358* ssu_$abort_line 000054 constant entry external dcl 151 ref 185 200 216 234 244 258 265 292 307 311 312 333 334 421 428 440 456 462 ssu_$add_request_table 000056 constant entry external dcl 152 ref 403 473 ssu_$arg_count 000060 constant entry external dcl 153 ref 537 ssu_$arg_ptr 000062 constant entry external dcl 154 ref 196 273 435 ssu_$delete_request_table 000064 constant entry external dcl 155 ref 398 472 ssu_$get_subsystem_and_request_name 000066 constant entry external dcl 156 ref 338 374 460 ssu_$print_message 000070 constant entry external dcl 157 ref 359 404 474 ssu_$return_arg 000072 constant entry external dcl 158 ref 535 ssu_et_$request_table_not_found 000104 external static fixed bin(35,0) dcl 166 ref 399 start_configp 000744 automatic pointer initial dcl 106 set ref 106* start_ptr parameter pointer dcl 483 ref 480 486 string builtin function dcl 122 set ref 378* 465* struct_sw 000746 automatic bit(1) initial unaligned dcl 107 set ref 107* system_dump_info based structure level 1 dcl 6-7 system_dump_list based structure level 1 dcl 6-17 set ref 212 225 system_dump_list_ptr 001120 automatic pointer dcl 6-16 set ref 210* 212 212 214* 220 221 221 222 225 tacc_sw 000747 automatic fixed bin(1,0) dcl 108 set ref 358* temp_ptr 001246 automatic pointer dcl 484 in procedure "add_to_chain" set ref 486* 487 489 490* 490 496 498 498 temp_ptr 000100 automatic pointer dcl 566 in procedure "walk_chain" set ref 579* 581 588 translation based structure level 1 dcl 4-24 trp 000750 automatic fixed bin(71,0) dcl 109 set ref 358* tup 000752 automatic bit(36) dcl 110 set ref 358* type 3 based fixed bin(17,0) level 2 packed unaligned dcl 1-3 ref 334 512 512 517 580 580 587 version 001122 automatic char(8) level 2 dcl 611 set ref 302* 452* why_erf 000753 automatic bit(1) initial unaligned dcl 111 set ref 111* 269* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AMU_FDUMP_INFO_VERSION internal static char(8) initial unaligned dcl 2-43 AMU_FDUMP_INFO_VERSION_1 internal static char(8) initial unaligned dcl 2-42 AMU_INFO_VERSION internal static char(8) initial unaligned dcl 1-57 AMU_INFO_VERSION_1 internal static char(8) initial unaligned dcl 1-56 AMU_INFO_VERSION_2 internal static char(8) initial unaligned dcl 1-58 AZM_INFO_VERSION_1 internal static char(8) initial unaligned dcl 5-19 AZM_INFO_VERSION_2 internal static char(8) initial unaligned dcl 5-20 INDIRECT_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_FDUMP_TYPE internal static fixed bin(17,0) initial dcl 1-47 NETWORK_ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_PROCESS_TYPE internal static fixed bin(17,0) initial dcl 1-47 ONLINE_TYPE internal static fixed bin(17,0) initial dcl 1-47 alloc_fdump_process_table_size automatic fixed bin(17,0) dcl 2-40 alloc_translation_table_max_entries automatic fixed bin(17,0) dcl 4-39 amu_area based area(1024) dcl 1-43 fdump_process_table based structure level 1 dcl 2-23 fp_table_ptr automatic pointer dcl 2-38 old_uid_table_ptr automatic pointer dcl 3-3 old_uidep automatic pointer dcl 3-14 system_dump_info_ptr automatic pointer dcl 6-6 system_dump_list_n_dumps automatic fixed bin(17,0) dcl 6-27 translation_ptr automatic pointer dcl 4-40 translation_table based structure level 1 dcl 4-13 NAMES DECLARED BY EXPLICIT CONTEXT. FIND_NAME 003045 constant label dcl 452 ref 447 FOUND_DP 003325 constant label dcl 467 set ref 449 459 FOUND_ERF 002452 constant label dcl 393 ref 321 348 INIT_FDUMP 002207 constant label dcl 351 ref 325 add_to_chain 003417 constant entry internal dcl 480 ref 382 464 azm_address_space_ 000343 constant entry external dcl 19 azm_address_space_$deadproc 002551 constant entry external dcl 411 azm_address_space_$delete_dump 001111 constant entry external dcl 240 azm_address_space_$erf 001153 constant entry external dcl 250 azm_address_space_$fdump_components 001047 constant entry external dcl 230 azm_address_space_$list_dumps 000356 constant entry external dcl 173 set_azm_info 003453 constant entry internal dcl 504 ref 393 467 setup 003570 constant entry internal dcl 529 ref 181 255 418 trans_selected 003643 constant entry internal dcl 543 ref 511 walk_chain 003664 constant entry internal dcl 552 ref 317 344 448 458 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5020 5132 4231 5030 Length 5550 4231 112 402 567 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME azm_address_space_ 866 external procedure is an external procedure. on unit on line 211 64 on unit add_to_chain internal procedure shares stack frame of external procedure azm_address_space_. set_azm_info internal procedure shares stack frame of external procedure azm_address_space_. setup internal procedure shares stack frame of external procedure azm_address_space_. trans_selected internal procedure shares stack frame of external procedure azm_address_space_. walk_chain 70 internal procedure is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME azm_address_space_ 000100 WHAT_ERF azm_address_space_ 000101 af_sw azm_address_space_ 000102 already_translated azm_address_space_ 000103 alloted_quota azm_address_space_ 000104 axp azm_address_space_ 000106 argl azm_address_space_ 000107 argno azm_address_space_ 000110 argp azm_address_space_ 000112 axstring azm_address_space_ 000114 brief_sw azm_address_space_ 000115 code azm_address_space_ 000116 configp azm_address_space_ 000120 cur_erf azm_address_space_ 000121 del_cur_erf azm_address_space_ 000122 del_erf azm_address_space_ 000124 destroy_amu_ptr azm_address_space_ 000126 dir_name azm_address_space_ 000200 dir_sw azm_address_space_ 000201 dp_path azm_address_space_ 000254 dsegp azm_address_space_ 000256 dump_path azm_address_space_ 000330 erf_name azm_address_space_ 000402 erf_path azm_address_space_ 000454 erfs_found azm_address_space_ 000455 expand_ptr_sw azm_address_space_ 000456 expand_sw azm_address_space_ 000457 first_erf azm_address_space_ 000460 first_value_set azm_address_space_ 000461 forward_search azm_address_space_ 000462 frame_entry azm_address_space_ 000463 hdr_printed azm_address_space_ 000464 last azm_address_space_ 000465 last_erf azm_address_space_ 000466 list_erfs azm_address_space_ 000467 ll azm_address_space_ 000470 ln azm_address_space_ 000471 match_str azm_address_space_ 000572 nargs azm_address_space_ 000573 next_erf azm_address_space_ 000574 prev_erf azm_address_space_ 000575 print_all_trans azm_address_space_ 000576 print_erf_sw azm_address_space_ 000577 print_sw azm_address_space_ 000600 process_dir azm_address_space_ 000652 quota_percent_flt azm_address_space_ 000653 quota_percent_fix azm_address_space_ 000654 quota_used azm_address_space_ 000655 range_value_set azm_address_space_ 000656 raw_syserr_data azm_address_space_ 000657 ret_str azm_address_space_ 000732 rv_lth azm_address_space_ 000734 rv_ptr azm_address_space_ 000736 sci_ptr azm_address_space_ 000740 segln azm_address_space_ 000741 slog_code azm_address_space_ 000742 sons_lvid azm_address_space_ 000744 start_configp azm_address_space_ 000746 struct_sw azm_address_space_ 000747 tacc_sw azm_address_space_ 000750 trp azm_address_space_ 000752 tup azm_address_space_ 000753 why_erf azm_address_space_ 000762 dx azm_address_space_ 000763 fdump_sw azm_address_space_ 000764 deadproc_sw azm_address_space_ 000765 list_name azm_address_space_ 001037 list_what azm_address_space_ 001040 dp_name azm_address_space_ 001112 amu_info_ptr azm_address_space_ 001114 allocate_uid_hash azm_address_space_ 001116 azm_info_ptr azm_address_space_ 001120 system_dump_list_ptr azm_address_space_ 001122 SDI azm_address_space_ 001232 SDI_ptr azm_address_space_ 001246 temp_ptr add_to_chain walk_chain 000100 temp_ptr walk_chain 000102 chain_ptr walk_chain THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc return_mac fl2_to_fx1 enable_op shorten_stack ext_entry int_entry int_entry_desc divide_fx1 op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. amu_$current_deadproc amu_$deadproc_init amu_$deadproc_name_af amu_$fdump_mgr_cur_erf amu_$fdump_mgr_find_fdump amu_$fdump_mgr_init_fdump amu_$fdump_mgr_name_erf amu_$find_system_fdump amu_$find_system_pdir amu_$list_system_dumps amu_$terminate_translation azm_why_$who check_star_name_$path expand_pathname_$add_suffix get_pdir_ hcs_$quota_read ioa_ pathname_ ssu_$abort_line ssu_$add_request_table ssu_$arg_count ssu_$arg_ptr ssu_$delete_request_table ssu_$get_subsystem_and_request_name ssu_$print_message ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. azm_pdir_rq_table_$azm_pdir_rq_table_ azm_request_table_$azm_request_table_ error_table_$badopt error_table_$noentry error_table_$nostars error_table_$too_many_args ssu_et_$request_table_not_found LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 54 000271 58 000273 59 000275 61 000276 62 000300 63 000301 64 000302 67 000303 69 000304 73 000305 74 000306 75 000307 76 000310 77 000311 78 000312 79 000313 80 000314 81 000315 82 000316 83 000317 84 000320 85 000321 86 000322 88 000323 89 000324 90 000325 97 000326 98 000327 99 000330 103 000331 104 000332 106 000334 107 000336 111 000337 19 000342 21 000351 173 000352 181 000364 183 000365 184 000370 185 000373 190 000416 191 000417 192 000420 193 000422 195 000425 196 000435 197 000452 198 000463 199 000477 200 000512 201 000543 202 000544 203 000550 205 000552 206 000561 207 000571 208 000576 210 000603 211 000605 212 000621 213 000634 214 000635 216 000672 220 000747 221 000757 222 001010 223 001034 225 001036 226 001044 230 001045 233 001055 234 001061 236 001106 240 001107 243 001117 244 001123 246 001150 250 001151 255 001161 257 001162 258 001164 259 001215 260 001224 263 001225 264 001227 265 001232 266 001255 269 001256 270 001264 271 001300 272 001302 273 001311 274 001326 275 001342 276 001352 277 001354 278 001356 279 001357 280 001367 281 001371 282 001373 283 001374 284 001404 285 001406 286 001410 287 001411 288 001421 289 001422 290 001424 292 001425 294 001457 296 001460 298 001463 301 001465 302 001467 303 001471 304 001501 305 001502 306 001506 307 001523 309 001554 310 001575 311 001577 312 001635 316 001663 317 001664 319 001720 320 001724 321 001726 325 001727 331 001730 332 001732 333 001736 334 001767 336 002021 337 002031 338 002062 340 002137 343 002142 344 002144 346 002200 347 002204 348 002206 351 002207 358 002216 359 002262 361 002314 362 002323 363 002326 364 002330 365 002332 366 002336 367 002340 368 002341 374 002350 376 002415 377 002420 378 002422 382 002426 390 002436 391 002451 393 002452 398 002456 399 002473 403 002500 404 002520 407 002546 411 002547 418 002557 419 002560 420 002561 421 002563 422 002614 423 002623 426 002624 427 002626 428 002631 429 002654 432 002655 433 002666 434 002667 435 002671 436 002710 438 002715 439 002716 440 002733 443 002764 445 002770 446 002771 447 003020 448 003022 449 003042 452 003045 454 003047 455 003057 456 003102 458 003133 459 003163 460 003167 462 003267 464 003310 465 003321 467 003325 472 003331 473 003347 474 003370 476 003416 480 003417 486 003421 487 003424 489 003430 490 003434 491 003436 496 003437 497 003443 498 003445 500 003452 504 003453 510 003455 511 003460 512 003465 513 003475 514 003502 515 003504 516 003521 517 003522 518 003524 519 003531 520 003533 521 003553 523 003562 524 003563 525 003567 529 003570 532 003571 533 003575 534 003600 535 003602 536 003621 537 003626 538 003641 539 003642 543 003643 546 003645 547 003656 552 003663 569 003677 570 003703 571 003707 574 003713 575 003720 576 003722 578 003723 579 003736 580 003741 581 003751 583 003757 584 003760 586 003764 587 003765 588 003767 590 003775 591 003776 594 004002 595 004004 597 004005 ----------------------------------------------------------- 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