COMPILATION LISTING OF SEGMENT display_ioi_data Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/19/86 2035.7 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(85-09-11,Farley), approve(85-09-11,MCR6979), 14* audit(85-11-26,CLJones), install(86-03-21,MR12.0-1033): 15* IPC and FIPS 16* END HISTORY COMMENTS */ 17 18 19 /* DISPLAY_IOI_DATA - Command to dump ioi data bases */ 20 /* Written November 1979 by Larry Johnson */ 21 /* Modified 13 June 1983 by Chris Jones for IOI rewrite. */ 22 /* Modified 1984-08-10 BIM for dte.direct */ 23 /* Modified Jan 1985 by Paul Farley for IPC and FIPS flags. */ 24 /* Modified Sept 1985 by Paul Farley for dte.controller. */ 25 26 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 27 display_ioi_data: 28 procedure options (variable); 29 30 /* Automatic */ 31 32 dcl argl fixed bin; 33 dcl arg_list_ptr ptr; 34 dcl arg_no fixed bin; 35 dcl argp ptr; 36 dcl code fixed bin (35); 37 dcl i fixed bin; 38 dcl more_args bit (1); 39 dcl n_args fixed bin; 40 dcl dir char (168); 41 dcl ename char (32); 42 dcl ( 43 source_given, /* Various flags for scanning args */ 44 path_sw, 45 erf_sw, 46 block_given, 47 gte_sw, 48 cte_sw, 49 dte_sw, 50 group_sw, 51 channel_sw, 52 device_sw, 53 user_sw, 54 header_sw, 55 no_header_sw, 56 force_sw, 57 all_sw, 58 brief_sw 59 ) bit (1) init ("0"b); 60 dcl erf_name char (16); 61 dcl (gte_offset, cte_offset, dte_offset) 62 fixed bin; 63 dcl group_name char (4); 64 dcl device_no fixed bin; 65 dcl device_name char (7) var; 66 dcl channel_id char (8) aligned; 67 dcl found bit (1); 68 dcl (person, person_req) char (22); 69 dcl (project, project_req) char (9); 70 71 /* Based */ 72 73 dcl arg char (argl) based (argp); 74 75 /* Constants */ 76 77 dcl name char (16) int static options (constant) init ("display_ioi_data"); 78 79 /* External */ 80 81 dcl analyze_device_stat_$rsnnl 82 entry (char (*) var, ptr, bit (72), bit (18)); 83 dcl com_err_ entry options (variable); 84 dcl cu_$af_arg_count_rel entry (fixed bin, fixed bin (35), ptr); 85 dcl cu_$arg_list_ptr entry (ptr); 86 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 87 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 88 dcl date_time_ entry (fixed bin (71), char (*)); 89 dcl delete_$ptr entry (ptr, bit (6), char (*), fixed bin (35)); 90 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 91 dcl extract entry options (variable); 92 dcl get_temp_segment_ entry (char (*), pointer, fixed bin (35)); 93 dcl get_userid_ entry (bit (36), char (*), char (*), fixed bin, fixed bin, fixed bin (35)); 94 dcl get_wdir_ entry () returns (char (168)); 95 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 96 dcl ( 97 ioa_, 98 ioa_$nnl, 99 ioa_$rsnnl 100 ) entry options (variable); 101 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 102 dcl release_temp_segment_ entry (char (*), pointer, fixed bin (35)); 103 dcl ring0_get_$segptr entry (char (*), char (*), ptr, fixed bin (35)); 104 dcl ring_zero_peek_ entry (ptr, ptr, fixed bin (19), fixed bin (35)); 105 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 106 dcl user_info_ entry (char (*)); 107 108 dcl error_table_$active_function 109 fixed bin (35) ext static; 110 dcl error_table_$badopt fixed bin (35) ext static; 111 dcl error_table_$noarg fixed bin (35) ext static; 112 dcl error_table_$not_act_fnc 113 fixed bin (35) ext static; 114 115 dcl cpz_status_table_$cpz_status_table_ 116 ext; 117 dcl crz_status_table_$crz_status_table_ 118 ext; 119 dcl disk_status_table_$disk_status_table_ 120 ext; 121 dcl imp_status_table_$imp_status_table_ 122 ext; 123 dcl prt_status_table_$prt_status_table_ 124 ext; 125 dcl tape_status_table_$tape_status_table_ 126 ext; 127 128 dcl cleanup condition; 129 130 dcl (abs, addr, addrel, before, bin, clock, currentsize, divide, index, length, low, null, rel, rtrim, substr, 131 unspec, verify) builtin; 132 133 idp = null (); 134 on cleanup call clean_up; 135 136 /* Check arguments */ 137 138 call cu_$arg_list_ptr (arg_list_ptr); 139 call scan_args; 140 141 /* Get ioi_data from wherever appropriate */ 142 143 if path_sw then 144 call initiate_ioi_data; 145 else if erf_sw then 146 call extract_ioi_data; 147 else call fetch_ioi_data; 148 149 /* Print results */ 150 151 if user_sw then do; 152 if header_sw then 153 call dump_header; 154 found = "0"b; 155 do i = 1 to ioi_data.ndt; 156 dtep = addr (ioi_data.dt (i)); 157 if dte.in_use & (dte.process_id ^= "0"b) then do; 158 call get_userid_ ((dte.process_id), person, project, (0), (0), code); 159 if code = 0 then do; 160 if (person_req = "*" | person_req = person) & (project_req = "*" | project_req = project) 161 then do; 162 call dump_dte; 163 found = "1"b; 164 end; 165 end; 166 end; 167 end; 168 if ^found then 169 call com_err_ (0, name, "No devices found for user ^a.^a.", person_req, project_req); 170 end; 171 else if block_given then do; 172 if header_sw then 173 call dump_header; 174 call dump_block; 175 end; 176 else call dump_header; 177 call ioa_ (""); 178 179 done: 180 call clean_up; 181 return; 182 183 /* Process the argument list */ 184 185 scan_args: 186 proc; 187 188 dcl i fixed bin; 189 190 call cu_$af_arg_count_rel (n_args, code, arg_list_ptr); 191 if code = 0 then 192 code = error_table_$active_function; 193 else if code = error_table_$not_act_fnc then 194 code = 0; 195 if code ^= 0 then do; 196 call com_err_ (code, name); 197 goto done; 198 end; 199 200 arg_no = 1; 201 more_args = (arg_no <= n_args); 202 do while (more_args); 203 call get_arg; 204 if arg = "-segment" | arg = "-sm" then do; 205 if source_given then do; 206 conflict: 207 call com_err_ (0, name, "^a conflicts with an earlier argument", arg); 208 go to done; 209 end; 210 source_given = "1"b; 211 path_sw = "1"b; 212 if ^more_args then do; 213 use_wdir: 214 dir = get_wdir_ (); 215 ename = "ioi_data"; 216 end; 217 else do; 218 call get_arg; 219 if substr (arg, 1, 1) = "-" then do; 220 /* No path, just another arg */ 221 call put_arg; 222 go to use_wdir; 223 end; 224 call expand_pathname_ (arg, dir, ename, code); 225 if code ^= 0 then do; 226 call com_err_ (code, name, "^a", arg); 227 go to done; 228 end; 229 end; 230 end; 231 else if arg = "-erf" then do; 232 if source_given then 233 go to conflict; 234 if ^more_args then do; 235 missing: 236 call com_err_ (error_table_$noarg, name, "After ^a", arg); 237 go to done; 238 end; 239 erf_sw = "1"b; 240 call get_arg; 241 erf_name = arg; 242 end; 243 else if arg = "-gte" then do; 244 if block_given then 245 go to conflict; 246 block_given, gte_sw = "1"b; 247 gte_offset = get_offset_arg (); 248 end; 249 else if arg = "-cte" then do; 250 if block_given then 251 go to conflict; 252 block_given, cte_sw = "1"b; 253 cte_offset = get_offset_arg (); 254 end; 255 else if arg = "-dte" then do; 256 if block_given then 257 go to conflict; 258 block_given, dte_sw = "1"b; 259 dte_offset = get_offset_arg (); 260 end; 261 else if arg = "-group" | arg = "-gp" then do; 262 if block_given then 263 go to conflict; 264 block_given, group_sw = "1"b; 265 if ^more_args then do; 266 all_groups: 267 group_sw = "0"b; 268 gte_sw = "1"b; 269 gte_offset = -1; 270 end; 271 else do; 272 call get_arg; 273 if substr (arg, 1, 1) = "-" then do; 274 call put_arg; 275 go to all_groups; 276 end; 277 group_name = arg; 278 end; 279 end; 280 else if arg = "-channel" | arg = "-ch" | arg = "-chn" | arg = "-chan" then do; 281 if block_given then 282 go to conflict; 283 block_given, channel_sw = "1"b; 284 if ^more_args then do; 285 all_channels: 286 channel_sw = "0"b; 287 cte_sw = "1"b; 288 cte_offset = -1; 289 end; 290 else do; 291 call get_arg; 292 if substr (arg, 1, 1) = "-" then do; 293 call put_arg; 294 go to all_channels; 295 end; 296 channel_id = arg; 297 end; 298 end; 299 else if arg = "-device" | arg = "-dv" then do; 300 if block_given then 301 go to conflict; 302 block_given, device_sw = "1"b; 303 if ^more_args then do; 304 all_devices: 305 device_sw = "0"b; 306 dte_sw = "1"b; 307 dte_offset = -1; 308 end; 309 else do; 310 call get_arg; 311 if substr (arg, 1, 1) = "-" then do; 312 call put_arg; 313 go to all_devices; 314 end; 315 if length (arg) = 4 then 316 device_name = arg; 317 else if length (arg) = 7 then do; 318 if substr (arg, 5, 1) ^= "_" then do; 319 bad_device: 320 call com_err_ (0, name, "Invalid device name: ^a", arg); 321 go to done; 322 end; 323 if verify (substr (arg, 6, 2), "0123456789") ^= 0 then 324 go to bad_device; 325 device_name = arg; 326 device_no = bin (substr (arg, 6, 2)); 327 end; 328 else go to bad_device; 329 end; 330 end; 331 else if arg = "-user" then do; 332 if block_given then 333 go to conflict; 334 block_given, user_sw = "1"b; 335 if ^more_args then do; 336 user_is_me: 337 call user_info_ (person_req); 338 project_req = "*"; 339 end; 340 else do; 341 call get_arg; 342 if substr (arg, 1, 1) = "-" then do; 343 call put_arg; 344 go to user_is_me; 345 end; 346 i = index (arg, "."); 347 if i = 0 then do; 348 person_req = arg; 349 project_req = "*"; 350 end; 351 else if i = 1 then do; 352 person_req = "*"; 353 if length (arg) > 1 then 354 project_req = before (substr (arg, 2), "."); 355 else project_req = "*"; 356 end; 357 else do; 358 person_req = substr (arg, 1, i - 1); 359 if length (arg) = i then 360 project_req = "*"; 361 else project_req = substr (arg, i + 1); 362 i = index (project_req, "."); /* In case tag */ 363 if i > 0 then 364 substr (project_req, i) = ""; 365 end; 366 end; 367 end; 368 else if arg = "-header" | arg = "-he" then do; 369 header_sw = "1"b; 370 no_header_sw = "0"b; 371 end; 372 else if arg = "-no_header" | arg = "-nhe" then do; 373 header_sw = "0"b; 374 no_header_sw = "1"b; 375 end; 376 else if arg = "-force" | arg = "-fc" then 377 force_sw = "1"b; 378 else if arg = "-all" | arg = "-a" then 379 all_sw = "1"b; 380 else if arg = "-brief" | arg = "-bf" then 381 brief_sw = "1"b; 382 else if arg = "-long" | arg = "-lg" then 383 brief_sw = "0"b; 384 else do; 385 call com_err_ (error_table_$badopt, name, "^a", arg); 386 go to done; 387 end; 388 end; 389 390 if ^block_given & ^header_sw then do; /* Setup defaults if no arguments */ 391 block_given = "1"b; 392 gte_sw = "1"b; /* Default is -gte -a */ 393 gte_offset = -1; 394 all_sw = "1"b; 395 header_sw = ^no_header_sw; 396 end; 397 398 if user_sw & erf_sw then do; 399 call com_err_ (0, name, "-user and -erf are incompatable."); 400 go to done; 401 end; 402 403 return; 404 405 end scan_args; 406 407 get_arg: 408 proc; 409 410 call cu_$arg_ptr_rel (arg_no, argp, argl, code, arg_list_ptr); 411 if code ^= 0 then do; 412 call com_err_ (code, name, "Can't happen."); 413 go to done; 414 end; 415 arg_no = arg_no + 1; 416 more_args = (arg_no <= n_args); 417 return; 418 419 put_arg: 420 entry; 421 422 arg_no = arg_no - 1; 423 more_args = (arg_no <= n_args); 424 return; 425 426 end get_arg; 427 428 429 get_offset_arg: 430 proc returns (fixed bin); 431 432 dcl temp fixed bin; 433 434 if ^more_args then 435 return (-1); 436 call get_arg; 437 if substr (arg, 1, 1) = "-" then do; 438 call put_arg; 439 return (-1); 440 end; 441 temp = cv_oct_check_ (arg, code); 442 if code = 0 then 443 return (temp); 444 call com_err_ (0, name, "Invalid octal number: ^a", arg); 445 go to done; 446 447 end get_offset_arg; 448 449 /* Fetch ioi_data segment from ring-0 */ 450 451 fetch_ioi_data: 452 proc; 453 454 dcl r0p ptr; 455 dcl i fixed bin (19); 456 dcl based_words (i) bit (36) aligned based; 457 458 call get_temp_segment_ (name, idp, code); 459 if code ^= 0 then do; 460 call com_err_ (code, name, "Unable to get temp segment."); 461 go to done; 462 end; 463 464 call ring0_get_$segptr ("", "ioi_data", r0p, code); 465 if code ^= 0 then do; 466 call com_err_ (code, name, "Unable to get pointer to ioi_data"); 467 go to done; 468 end; 469 470 i = bin (rel (addr (ioi_data.gt))); /* Length of header */ 471 call ring_zero_peek_ ((r0p), idp, i, code); 472 if code ^= 0 then do; 473 call com_err_ (code, name, "Unable to read first ^a words of ioi_data.", edit_dec ((i))); 474 go to done; 475 end; 476 i = currentsize (ioi_data); /* Now can calculate the entire length */ 477 unspec (idp -> based_words) = "0"b; /* Touch all pages to minimize chance 478* of page fault during copy of data. This 479* should reduce chance of inconsistent data */ 480 call ring_zero_peek_ ((r0p), idp, i, code); 481 if code ^= 0 then do; 482 call com_err_ (code, name, "Unable to read the ^a words of ioi_data.", edit_dec ((i))); 483 go to done; 484 end; 485 return; 486 487 end fetch_ioi_data; 488 489 initiate_ioi_data: 490 proc; 491 492 call initiate_file_ (dir, ename, R_ACCESS, idp, (0), code); 493 if code ^= 0 then do; 494 call com_err_ (code, name, "^a", pathname_ (dir, ename)); 495 go to done; 496 end; 497 return; 498 499 end initiate_ioi_data; 500 501 extract_ioi_data: 502 proc; 503 504 call extract (rtrim (erf_name), "ioi_data"); 505 dir = get_wdir_ (); 506 ename = "ioi_data." || erf_name; 507 call initiate_ioi_data; 508 return; 509 510 end extract_ioi_data; 511 512 513 clean_up: 514 proc; 515 516 if idp ^= null () then do; 517 if path_sw then 518 call terminate_file_ (idp, 0, TERM_FILE_TERM, code); 519 else if erf_sw then 520 call delete_$ptr (idp, "010100"b, name, code); 521 else call release_temp_segment_ (name, idp, code); 522 end; 523 return; 524 525 end clean_up; 526 527 dump_block: 528 proc; 529 530 dcl i fixed bin; 531 dcl sw bit (1); 532 dcl found bit (1); 533 dcl temp_gtep ptr; 534 535 if gte_sw | group_sw then do; /* Asked for group */ 536 found = "0"b; 537 do i = 1 to ioi_data.ngt; 538 gtep = addr (ioi_data.gt (i)); 539 if gte_sw then 540 if gte_offset = -1 then 541 sw = "1"b; 542 else sw = bin (rel (gtep)) = gte_offset; 543 else sw = (gte.name = group_name); 544 if sw then do; 545 call dump_gte; 546 found = "1"b; 547 end; 548 end; 549 if found then 550 return; 551 if gte_sw then 552 if gte_offset = -1 then 553 call com_err_ (0, name, "No allocated group entries."); 554 else call com_err_ (0, name, "^o is not a valid gte offset.", gte_offset); 555 else call com_err_ (0, name, "No group entry found for ^a", group_name); 556 go to done; 557 end; 558 559 if cte_sw | channel_sw then do; 560 found = "0"b; 561 do i = 1 to ioi_data.nct; 562 ctep = addr (ioi_data.ct (i)); 563 if cte_sw then 564 if cte_offset = -1 then 565 sw = force_sw; 566 else sw = (bin (rel (ctep)) = cte_offset); 567 else sw = (cte.chanid = channel_id); 568 if sw then do; 569 call dump_cte; 570 found = "1"b; 571 end; 572 end; 573 if found then 574 return; 575 if cte_sw then 576 if cte_offset = -1 then 577 call com_err_ (0, name, "No allocated channel entries."); 578 else call com_err_ (0, name, "^o is not a valid cte offset.", cte_offset); 579 else call com_err_ (0, name, "No channel entry found for channel ^a.", channel_id); 580 go to done; 581 end; 582 583 if dte_sw | device_sw then do; 584 found = "0"b; 585 do i = 1 to ioi_data.ndt; 586 dtep = addr (ioi_data.dt (i)); 587 if dte_sw then 588 if dte_offset = -1 then 589 sw = force_sw; 590 else sw = (bin (rel (dtep)) = dte_offset); 591 else if dte.gtep = "0"b then 592 sw = "0"b; 593 else do; 594 temp_gtep = addrel (idp, dte.gtep); 595 sw = (temp_gtep -> gte.name = substr (device_name, 1, 4)); 596 if length (device_name) = 7 then 597 sw = sw & (bin (dte.device) = device_no); 598 end; 599 if sw then do; 600 call dump_dte; 601 found = "1"b; 602 end; 603 end; 604 if found then 605 return; 606 if dte_sw then 607 if dte_offset = -1 then 608 call com_err_ (0, name, "No allocated device entries."); 609 else call com_err_ (0, name, "^o is not a valid dte offset.", dte_offset); 610 else call com_err_ (0, name, "No device entry found for device ^a.", device_name); 611 go to done; 612 end; 613 614 return; 615 616 end dump_block; 617 618 /* Dump an individual group table entry */ 619 620 dump_gte: 621 proc; 622 623 dcl i fixed bin; 624 dcl temp_name char (4); 625 626 temp_name = gte.name; 627 if temp_name = low (4) then 628 temp_name = ""; 629 if temp_name = "" then 630 temp_name = "?"; 631 call ioa_ ("^/Group entry at ^o for ^a.", bin (rel (gtep)), temp_name); 632 if brief_sw then 633 go to process_all; 634 if gte.lock ^= ""b then 635 call ioa_ (" Locked by process ^w.", gte.lock); 636 call ioa_ (" Flags:^[ mplex^]^[ psia^]^[ suspend_devices^]^[ dual_controller^]^[ ascii_dtst^]^[ fips^]^[ ipc^]", 637 gte.mplex, gte.psia, gte.suspend_devices, gte.dual_controller, gte.ascii_dtst, gte.fips, gte.ipc); 638 if substr (temp_name, 1, 3) = "dsk" then 639 call ioa_ (" Disk subsystem index: ^a", edit_dec ((gte.disk_data_subsystem_idx))); 640 call ioa_ (" ^a device^[s^], ^a with connect pending.", edit_dec ((gte.n_devices)), (gte.n_devices ^= 1), 641 edit_dec ((gte.pending_connects))); 642 call ioa_ (" Last device entry at ^o, first channel at ^o", bin (gte.dtep), bin (gte.ctep)); 643 call ioa_ (" Detailed status command: ^.3b, log_info index ^a", gte.detailed_status_cmd, 644 edit_dec ((gte.io_log_info_index))); 645 646 process_all: 647 if all_sw then do; 648 do i = 1 to ioi_data.nct; /* Get all channels */ 649 ctep = addr (ioi_data.ct (i)); 650 if cte.gtep = rel (gtep) then 651 call dump_cte; 652 end; 653 do i = 1 to ioi_data.ndt; 654 dtep = addr (ioi_data.dt (i)); 655 if dte.gtep = rel (gtep) then 656 call dump_dte; 657 end; 658 end; 659 660 return; 661 662 end dump_gte; 663 664 /* Procedure to dump a channel table entry */ 665 666 dump_cte: 667 proc; 668 669 dcl temp_gtep ptr; 670 dcl group_name char (4); 671 672 group_name = ""; 673 if cte.gtep ^= "0"b then do; 674 temp_gtep = addrel (idp, cte.gtep); 675 group_name = temp_gtep -> gte.name; 676 end; 677 call ioa_ ("^/Channel entry at ^o for channel ^a^[ (^a)^;^s^].", bin (rel (ctep)), cte.chanid, 678 (group_name ^= ""), group_name); 679 if brief_sw then 680 return; 681 call ioa_ (" Flags:^[ ioi_use^]^[ connected^]^[ deleting^]^[ deleted^]^[ toss_status^]^[ quiescing^]", 682 cte.ioi_use, cte.connected, cte.deleting, cte.deleted, cte.toss_status, cte.quiescing); 683 call ioa_ (" Current device ^o, iom channel index ^o^[, disk channel index ^o^;^s^], iocd idx ^d", 684 bin (cte.cur_dtep), cte.chx, (cte.disktab_ctx ^= 0), cte.disktab_ctx, cte.channel_table_idx); 685 if cte.time_limit ^= 0 then do; 686 call ioa_ (" Time limit^[ was^] at ^a", (clock () > cte.time_limit), time_string (cte.time_limit)); 687 end; 688 if unspec (cte.saved_status) ^= "0"b then do; 689 call ioa_ (" Saved status during detailed status read:"); 690 call ioa_ (" cmd ^.3b, offset ^o, lpw ^w", cte.saved_status.command, cte.saved_status.next_lpw_offset, 691 cte.saved_status.word2); 692 call ioa_ (" iom_status ^.3b.", cte.saved_status.word1 || cte.saved_status.word4); 693 end; 694 695 return; 696 697 end dump_cte; 698 699 /* Procedure to dump a device entry */ 700 701 dump_dte: 702 proc; 703 704 dcl temp_gtep ptr; 705 dcl device_name char (7); 706 dcl device_type char (3); 707 dcl dev_pic picture "99"; 708 dcl person char (22); 709 dcl project char (9); 710 dcl status_msg char (72) var; 711 dcl status_tablep ptr; 712 dcl pack_sw bit (1); /* "1"b = detailed status in ascii, not binary */ 713 714 pack_sw = "0"b; 715 if dte.gtep = "0"b then 716 temp_gtep = null (); 717 else temp_gtep = addrel (idp, dte.gtep); 718 if temp_gtep = null () then 719 device_name, device_type = "?"; 720 else do; 721 device_name = temp_gtep -> gte.name; 722 device_type = substr (device_name, 1, 3); 723 if temp_gtep -> gte.mplex then do; 724 dev_pic = bin (dte.device); 725 device_name = rtrim (device_name) || "_" || dev_pic; 726 end; 727 if temp_gtep -> gte.ipc & (device_type = "prt" | device_type = "rdr" | device_type = "pun") then 728 pack_sw = "1"b; 729 end; 730 call ioa_ ("^/Device entry at ^o for ^a", bin (rel (dtep)), device_name); 731 if brief_sw then 732 return; 733 call ioa_ ( 734 " Flags:^[ priv^]^[ in_use^]^[ suspended^]^[ active^]^[ connected^]^[ workspace_wired^]^[ special_interrupt^]^[ log_status_cnt^]^[ deleting^]^[ deleted^]^[ reading_detailed_status^]^[ detailed_status_valid^]^[ direct^]^[ controller^]", 735 dte.priv, dte.in_use, dte.suspended, dte.active, dte.connected, dte.workspace_wired, dte.special_interrupt, 736 dte.log_status_cnt, dte.deleting, dte.deleted, dte.reading_detailed_status, dte.detailed_status_valid, 737 dte.direct, dte.controller); 738 if dte.cur_ctep ^= ""b then 739 call ioa_ (" Current channel ^o", dte.cur_ctep); 740 person, project = ""; 741 if dte.process_id ^= "0"b & ^erf_sw then do; 742 call get_userid_ ((dte.process_id), person, project, (0), (0), code); 743 if code ^= 0 then 744 person, project = ""; 745 end; 746 call ioa_ (" Process ^.3b^[ (^a.^a)^;^2s^], event ^.3b, ring ^o", dte.process_id, (person ^= ""), person, 747 project, unspec (dte.ev_chn), dte.ring); 748 call ioa_ (" Workspace bound ^o, max bound ^o", dte.bound, dte.max_bound); 749 call ioa_ (" Workspace ptr ^p, astep ^p, sdw ^.3b, iopt idx ^o", dte.workspace_ptr, dte.workspace_astep, 750 unspec (dte.workspace_sdw), dte.ptx); 751 if dte.channel_required ^= "" then 752 call ioa_ (" Channel required: ^a.", dte.channel_required); 753 call ioa_ (" listx ^o, pcw ^.3b, idcw ^.3b, tdcw ^.3b, iocd idx ^d", bin (dte.listx), dte.pcw, dte.idcw, 754 dte.tdcw, dte.device_table_idx); 755 call ioa_ (" Time limit: ^a second^[s^], max limit ^a second^[s^].", 756 edit_dec (divide (dte.timeout, 1000000, 17)), (dte.timeout ^= 1000000), 757 edit_dec (divide (dte.max_timeout, 1000000, 17)), (dte.max_timeout ^= 1000000)); 758 759 if dte.unwire_time ^= 0 then 760 call ioa_ (" Workspace ^[scheduled for unwiring^;unwired^] at ^a.", dte.workspace_wired, 761 time_string (dte.unwire_time)); 762 if dte.last_log_time ^= 0 then 763 call ioa_ (" Status last logged at ^a.", time_string (dte.last_log_time)); 764 if dte.special_status ^= "0"b then 765 call ioa_ (" Special status: ^.3b", dte.special_status); 766 if unspec (dte.log_status) ^= ""b then do; 767 if device_type = "tap" then 768 status_tablep = addr (tape_status_table_$tape_status_table_); 769 else if device_type = "dsk" then 770 status_tablep = addr (disk_status_table_$disk_status_table_); 771 else if device_type = "prt" then 772 status_tablep = addr (prt_status_table_$prt_status_table_); 773 else if device_type = "pun" then 774 status_tablep = addr (cpz_status_table_$cpz_status_table_); 775 else if device_type = "rdr" then 776 status_tablep = addr (crz_status_table_$crz_status_table_); 777 else if device_type = "imp" then 778 status_tablep = addr (imp_status_table_$imp_status_table_); 779 else status_tablep = null (); 780 call analyze_device_stat_$rsnnl (status_msg, status_tablep, (dte.log_status.status), ("0"b)); 781 call ioa_ (" Last logged status: level-^d status-^.3b^[ ^;^/^21x^]""^a""", dte.log_status.level, 782 dte.log_status.status, (length (status_msg) < 28), status_msg); 783 end; 784 if unspec (dte.detailed_status) ^= "0"b then do; 785 call ioa_$nnl (" Detailed status:"); 786 call dump_detail (addr (dte.detailed_status), pack_sw); 787 end; 788 if unspec (dte.status_control) ^= ""b then do; 789 call ioa_ (" Status queue at ^o, length ^o, tally ^o", dte.status_offset, dte.status_entries, 790 dte.status_entry_idx); 791 end; 792 793 return; 794 795 end dump_dte; 796 797 dump_detail: 798 proc (p, pack); 799 800 dcl p ptr; 801 dcl pack bit (1); 802 803 dcl dtstat (27) bit (8) unal based (p); 804 dcl 1 ascii_dtstat (24) unal based (p), 805 2 pad bit (1), 806 2 data bit (8); 807 dcl packed_dtstat (24) bit (8) unal; 808 dcl i fixed bin; 809 810 if pack then do; 811 do i = 1 to 24; 812 packed_dtstat (i) = ascii_dtstat (i).data; 813 end; 814 do i = 24 to 1 by -1 while (packed_dtstat (i) = "0"b); 815 end; 816 call ioa_ ("^v( ^.4b^)", i, packed_dtstat); 817 return; 818 end; 819 do i = 27 to 1 by -1 while (dtstat (i) = "0"b); 820 end; 821 call ioa_ ("^v( ^.4b^)", i, dtstat); 822 return; 823 824 end dump_detail; 825 826 827 /* Dump ioi_data header info */ 828 829 dump_header: 830 proc; 831 832 call ioa_ ("^/Segment ioi_data: ^o words long.", currentsize (ioi_data)); 833 if brief_sw then 834 return; 835 call ioa_ (" ^a group entries, ^a channel entries, ^a device entries", edit_dec ((ioi_data.ngt)), 836 edit_dec ((ioi_data.nct)), edit_dec ((ioi_data.ndt))); 837 return; 838 end dump_header; 839 840 time_string: 841 proc (time) returns (char (24)); 842 843 dcl time fixed bin (71); 844 845 dcl time_temp char (24); 846 dcl cur_date_time char (24); 847 848 call date_time_ (time, time_temp); 849 substr (time_temp, 17) = ""; 850 call date_time_ (clock (), cur_date_time); 851 if substr (time_temp, 1, 8) = substr (cur_date_time, 1, 8) then 852 time_temp = substr (time_temp, 11); 853 return (time_temp); 854 855 end time_string; 856 857 edit_dec: 858 proc (n) returns (char (32) var); 859 860 dcl n fixed bin (71); 861 dcl dec_sw bit (1); 862 dcl result char (32); 863 864 dec_sw = (abs (n) > 7); 865 call ioa_$rsnnl ("^d^[d^]", result, (0), n, dec_sw); 866 return (rtrim (result)); 867 868 end edit_dec; 869 1 1 /* Begin include file ...... ioi_data.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 1 6* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 1 7* Support for FIPS and 1 8* IMU. 1 9* 2) change(86-05-16,Kissel), approve(86-07-30,MCR7461), audit(86-07-31,Coren), 1 10* install(86-08-19,MR12.0-1120): 1 11* Changed the value of IOI_DEFAULT_MAX_BOUND from 4096 to 1024. This 1 12* corrects a problem when RCP tries to set the maximum workspace size if it 1 13* is less than 4096. Since ioi_ (actually grab_aste) touched all the pages 1 14* at assignment time, the current length is 4, and trying to set the max 1 15* length to less than 4 (e.g. because the max unprivileged workspace size in 1 16* RCP for a special device is 1) returns an error. 1 17* END HISTORY COMMENTS */ 1 18 1 19 /* Rewritten May 1982 by C. Hornig for new ioi_ */ 1 20 /* Rewrite finished March 1983 by Chris Jones */ 1 21 /* Extended for reconfiguration April 1983 by Chris Jones. */ 1 22 /* Modified November 1983 by Chris Jones to separate items in the dte protected by different locks. */ 1 23 /* Modified January 1984 by Chris Jones to add ite's. */ 1 24 /* Modified Feb 1984 by Rich Fawcett to add ipc and fips */ 1 25 /* Modified Sept 1985 by Paul Farley to add controller flag to dte. */ 1 26 1 27 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 28 1 29 dcl idp ptr; /* pointer to IOI data structure */ 1 30 dcl gtep ptr; /* pointer to channel/device group entry */ 1 31 dcl ctep ptr; /* pointer to channel table entry */ 1 32 dcl dtep ptr; /* pointer to wired device table entry */ 1 33 dcl itep ptr; /* pointer to I/O multiplexer entry */ 1 34 1 35 dcl (ioi_subsystems, ioi_devices, ioi_channels, ioi_multiplexers) 1 36 fixed bin; 1 37 dcl ioi_data$ external; /* IOI data segment */ 1 38 1 39 1 40 dcl 1 ioi_data based (idp) aligned, /* I/O Interfacer data structure */ 1 41 2 ngt fixed bin, /* number of groups */ 1 42 2 nct fixed bin, /* number of channels */ 1 43 2 ndt fixed bin, /* number of devices */ 1 44 2 nit fixed bin, /* number of IOMs */ 1 45 2 spurious_interrupts 1 46 fixed bin (35), /* interrupts with no status */ 1 47 2 reconfig_lock like lock, /* lock for reconfiguring devices, channels, etc. */ 1 48 2 flags, 1 49 3 setup bit (1) unal, /* "1"b => ioi_init has run */ 1 50 3 pad1 bit (35) unal, 1 51 2 rss_idcw bit (36), /* reset status IDCW */ 1 52 2 pad2 (6) fixed bin (35), /* pad to 16 words */ 1 53 2 dt (ioi_devices refer (ioi_data.ndt)) like dte aligned, 1 54 /* device table */ 1 55 2 gt (ioi_subsystems refer (ioi_data.ngt)) like gte aligned, 1 56 /* channel/device group table */ 1 57 2 ct (ioi_channels refer (ioi_data.nct)) like cte aligned, 1 58 /* channel table */ 1 59 2 it (ioi_multiplexers refer (ioi_data.nit)) like ite aligned; 1 60 /* multiplexer table */ 2 1 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 2 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 2 3* encourages name conflicts. 2 4* USE HC_FAST_LOCK INSTEAD! 2 5**/ 2 6 2 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 8 2 9 /* format: style3 */ 2 10 2 11 declare lock_ptr pointer; 2 12 declare 1 lock aligned based (lock_ptr), 2 13 2 pid bit (36) aligned, /* holder of lock */ 2 14 2 event bit (36) aligned, /* event associated with lock */ 2 15 2 flags aligned, 2 16 3 notify_sw bit (1) unaligned, 2 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 18 2 19 /* End include file hc_lock.incl.pl1 */ 1 61 1 62 1 63 dcl 1 ite based (itep) aligned, /* I/O multiplexer table entry */ 1 64 2 model char (4), /* which flavor we are */ 1 65 2 flags, 1 66 ( 3 deleting bit (1), 1 67 3 deleted bit (1) 1 68 ) unaligned, 1 69 2 pad1 bit (16) unaligned, 1 70 2 iom_table_idx fixed bin (17) unaligned, 1 71 2 tag fixed bin (3), 1 72 2 pad2 (5) bit (36); 1 73 1 74 dcl 1 gte based (gtep) aligned, /* channel/device group table entry */ 1 75 2 lock bit (36), /* (0) loop lock */ 1 76 2 name char (4), /* (1) subsystem name */ 1 77 2 dtep bit (18) unaligned, /* (2) rel ptr to device just serviced */ 1 78 2 ctep bit (18) unaligned, /* (2) rel ptr to thread of channel table entries */ 1 79 2 detailed_status_cmd 1 80 bit (6) unal, /* (3) idcw command to read detailed status */ 1 81 2 flags unaligned, /* (3) */ 1 82 3 psia bit (1), /* "1"b if channel is PSIA */ 1 83 3 suspend_devices bit (1), /* "1"b if device I/O suspended */ 1 84 3 dual_controller bit (1), /* "1"b if dual controller subsystem (disk only) */ 1 85 3 ascii_dtst bit (1), /* "1"b if detailed status sent in ASCII mode */ 1 86 3 mplex bit (1), /* "1"b if channels are multiplexed among devices */ 1 87 3 ipc bit (1), /* "1"b if devices are on an IMU */ 1 88 3 fips bit (1), /* "1"b if devices start at zero */ 1 89 3 pad bit (23), 1 90 2 n_devices fixed bin, /* (4) number of devices in device table thread */ 1 91 2 pending_connects fixed bin, /* (5) count of pending connect requests */ 1 92 2 io_log_info_index fixed bin, /* (6) index into io_log_status_info table */ 1 93 2 disk_data_subsystem_idx 1 94 fixed bin; /* (7) index into disk_data.array for disks */ 1 95 1 96 dcl 1 cte based (ctep) aligned, /* channel table entry */ 1 97 2 next_ctep bit (18) unaligned, /* (0) rel ptr to next channel table entry */ 1 98 2 gtep bit (18) unaligned, /* (0) rel ptr to channel/device group table entry */ 1 99 2 flags1 unaligned, /* (1) */ 1 100 3 ioi_use bit (1), /* "1"b if channel currently being used */ 1 101 3 connected bit (1), /* "1"b if channel is connected */ 1 102 3 toss_status bit (1), /* "1"b if status is to be ignored */ 1 103 3 quiescing bit (1), /* "1"b if the channel is just finishing what it's doing */ 1 104 3 direct bit (1), /* "1"b if this is a direct channel */ 1 105 3 pad1 bit (4), 1 106 2 disktab_ctx fixed bin (9) uns unal, /* (1) index into disktab.chantab for this channel */ 1 107 2 cur_dtep bit (18) unaligned, /* (1) current device table entry */ 1 108 2 chanid char (8), /* (2) io_manager's name for channel */ 1 109 2 statusp ptr unal, /* (4) pointer to first word of status */ 1 110 2 chx fixed bin (35), /* (5) channel index for io_manager */ 1 111 2 time_limit fixed bin (71), /* (6) connect time limit */ 1 112 2 saved_status unaligned, /* (8) status repository while reading detailed status */ 1 113 3 word1 bit (36), 1 114 3 word2 bit (36), 1 115 3 word4 bit (36), 1 116 3 next_lpw_offset bit (18), 1 117 3 command bit (6), 1 118 2 pad3 bit (12) unaligned, /* (11) */ 1 119 2 base_ctep bit (18) unaligned, /* (12) rel ptr to base logical chan. of physical chan. */ 1 120 2 itep bit (18) unaligned, /* (12) rel ptr to itep */ 1 121 2 flags2 unaligned, /* (13) */ 1 122 3 deleting bit (1), /* "1"b if attempting to delete this channel */ 1 123 3 deleted bit (1), /* "1"b if channel deleted */ 1 124 2 pad4 bit (16) unaligned, /* (13) */ 1 125 2 channel_table_idx fixed bin (17) unaligned, 1 126 2 pad5 (2) bit (36); /* (14) pad to 8 word boundary */ 1 127 1 128 dcl 1 dte based (dtep) aligned, /* wired device table entry */ 1 129 2 next_dtep bit (18) unaligned, /* (0) rel ptr to next entry in thread */ 1 130 2 gtep bit (18) unaligned, /* (0) rel ptr to channel/device group table entry */ 1 131 2 cur_ctep bit (18) unaligned, /* (1) rel ptr to channel in use */ 1 132 2 flags1 unaligned, /* (1) flags protected by gte lock */ 1 133 3 connected bit (1), /* "1"b if device has a channel */ 1 134 3 log_status_cnt bit (1), /* "1"b if count in log_status is valid */ 1 135 3 reading_detailed_status 1 136 bit (1), /* "1"b if read of detailed device status in progress */ 1 137 3 pad1 bit (15), 1 138 2 channel_required char (8), /* (2) channel name of required channel */ 1 139 2 ev_chn fixed bin (71), /* (4) event ID for status wakeups */ 1 140 2 workspace_ptr ptr, /* (6) workspace pointer */ 1 141 2 workspace_astep ptr, /* (8) workspace ASTE ptr */ 1 142 2 workspace_sdw fixed bin (71), /* (10) SDW of workspace segment */ 1 143 2 ptp ptr, /* (12) device page table */ 1 144 2 max_bound fixed bin (19), /* (14) largest allowable bound of workspace segment */ 1 145 2 bound fixed bin (19), /* (15) bound of workspace */ 1 146 2 process_id bit (36), /* (16) ID of process owning device */ 1 147 2 ring fixed bin (3), /* (17) highest ring allowed to access device */ 1 148 2 device bit (6) unal, /* (18) device code */ 1 149 2 flags2 unal, /* (18) constant or protected by dte lock */ 1 150 3 priv bit (1), /* "1"b if privileged user */ 1 151 3 in_use bit (1), /* "1"b if device is to be used */ 1 152 3 deleting bit (1), /* "1"b if trying to delete this device */ 1 153 3 deleted bit (1), /* "1"b if this device is deleted */ 1 154 3 suspended bit (1), /* "1"b if device isn't to be used temporarily */ 1 155 3 workspace_wired bit (1), /* "1"b if workspace is wired */ 1 156 3 direct bit (1), /* "1"b if device is connected to a direct channel */ 1 157 3 controller bit (1), /* "1"b if dte for the devices controller */ 1 158 3 pad2 bit (4), 1 159 2 device_table_idx fixed bin (17) unaligned, 1 160 2 listx uns fixed bin (18) unal, /* (19) DCW list index for connect */ 1 161 2 idcw_listx uns fixed bin (18) unal, /* (19) DCW list index of IDCW */ 1 162 2 timeout fixed bin (35), /* (20) time limit for I/O completion (usec) */ 1 163 2 max_timeout fixed bin (35), /* (21) maximum allowable timeout grace time (usec) */ 1 164 2 unwire_time fixed bin (71), /* (22) when to unwire the workspace */ 1 165 2 pcw bit (36), /* (24) peripheral control word (PCW) */ 1 166 2 status_control, /* (25) */ 1 167 3 status_offset fixed bin (18) unsigned unaligned, 1 168 /* offset of status queue in user workspace */ 1 169 3 status_entries fixed bin (9) unsigned unaligned, 1 170 /* number of entries in status queue */ 1 171 3 status_entry_idx fixed bin (9) unsigned unaligned, 1 172 /* next entry to be used */ 1 173 2 idcw bit (36), /* (26) instruction DCW (KEEP ON EVEN WORD BOUNDARY) */ 1 174 2 tdcw bit (36), /* (27) transfer DCW to remainder of list */ 1 175 2 special_status bit (36), /* (28) special interrupt status */ 1 176 2 lock like lock, /* (29) wait lock */ 1 177 2 log_status, /* (32) */ 1 178 ( 3 level fixed bin (3) unsigned, 1 179 3 time_out bit (1), 1 180 3 type bit (2), 1 181 3 command bit (6), 1 182 3 count fixed bin (6) unsigned, 1 183 3 channel bit (18), 1 184 3 status bit (36) 1 185 ) unaligned, 1 186 2 ptx fixed bin, /* (34) index of page table */ 1 187 2 active bit (1), /* (35) "1"b if device running or to run */ 1 188 2 special_interrupt bit (1), /* (36) "1"b if special interrupt received */ 1 189 2 detailed_status_valid 1 190 bit (1), /* (37) "1"b if detailed status read sucessfully */ 1 191 2 last_log_time fixed bin (71), /* (38) when status was last logged */ 1 192 2 detailed_status (8) bit (36), /* (40) (buffer for reading most recent detailed status */ 1 193 2 log_detailed_status 1 194 (8) bit (36); /* (48) copy of last detailed status logged */ 1 195 1 196 /**** Defaults for various I/O parameters */ 1 197 1 198 dcl IOI_DEFAULT_MAX_BOUND fixed bin (19) static options (constant) init (1024); 1 199 dcl IOI_DEFAULT_MAX_TIMEOUT 1 200 fixed bin (35) static options (constant) init (30000000); 1 201 dcl IOI_DEFAULT_TIMEOUT fixed bin (35) static options (constant) init (30000000); 1 202 1 203 dcl IO_STATUS_ERROR_MASK bit (36) static options (constant) init ("370000770000"b3); 1 204 1 205 dcl IO_CHANNEL_LOCK_TEMPLATE 1 206 char (2) int static options (constant) init ("ch"); 1 207 dcl IOI_DEVICE_LOCK_EVENT_TEMPLATE 1 208 char (2) static options (constant) init ("dv"); 1 209 1 210 /* End of include file ...... ioi_data.incl.pl1 */ 870 871 3 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 3 2 /* format: style2,^inddcls,idind32 */ 3 3 3 4 declare 1 terminate_file_switches based, 3 5 2 truncate bit (1) unaligned, 3 6 2 set_bc bit (1) unaligned, 3 7 2 terminate bit (1) unaligned, 3 8 2 force_write bit (1) unaligned, 3 9 2 delete bit (1) unaligned; 3 10 3 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 3 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 3 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 3 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 3 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 3 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 3 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 3 18 3 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 872 873 4 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 4 2* 4 3* Values for the "access mode" argument so often used in hardcore 4 4* James R. Davis 26 Jan 81 MCR 4844 4 5* Added constants for SM access 4/28/82 Jay Pattin 4 6* Added text strings 03/19/85 Chris Jones 4 7**/ 4 8 4 9 4 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 4 11 dcl ( 4 12 N_ACCESS init ("000"b), 4 13 R_ACCESS init ("100"b), 4 14 E_ACCESS init ("010"b), 4 15 W_ACCESS init ("001"b), 4 16 RE_ACCESS init ("110"b), 4 17 REW_ACCESS init ("111"b), 4 18 RW_ACCESS init ("101"b), 4 19 S_ACCESS init ("100"b), 4 20 M_ACCESS init ("010"b), 4 21 A_ACCESS init ("001"b), 4 22 SA_ACCESS init ("101"b), 4 23 SM_ACCESS init ("110"b), 4 24 SMA_ACCESS init ("111"b) 4 25 ) bit (3) internal static options (constant); 4 26 4 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 4 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 4 29 4 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 4 31 static options (constant); 4 32 4 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 4 34 static options (constant); 4 35 4 36 dcl ( 4 37 N_ACCESS_BIN init (00000b), 4 38 R_ACCESS_BIN init (01000b), 4 39 E_ACCESS_BIN init (00100b), 4 40 W_ACCESS_BIN init (00010b), 4 41 RW_ACCESS_BIN init (01010b), 4 42 RE_ACCESS_BIN init (01100b), 4 43 REW_ACCESS_BIN init (01110b), 4 44 S_ACCESS_BIN init (01000b), 4 45 M_ACCESS_BIN init (00010b), 4 46 A_ACCESS_BIN init (00001b), 4 47 SA_ACCESS_BIN init (01001b), 4 48 SM_ACCESS_BIN init (01010b), 4 49 SMA_ACCESS_BIN init (01011b) 4 50 ) fixed bin (5) internal static options (constant); 4 51 4 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 874 875 876 end display_ioi_data; 877 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/19/86 2035.7 display_ioi_data.pl1 >special_ldd>install>MR12.0-1120>display_ioi_data.pl1 870 1 08/19/86 1808.9 ioi_data.incl.pl1 >special_ldd>install>MR12.0-1120>ioi_data.incl.pl1 1-61 2 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 872 3 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 874 4 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. R_ACCESS 000141 constant bit(3) initial unaligned dcl 4-11 set ref 492* TERM_FILE_TERM 000000 constant bit(3) initial unaligned dcl 3-14 set ref 517* abs builtin function dcl 130 ref 864 active 43 based bit(1) level 2 dcl 1-128 set ref 733* addr builtin function dcl 130 ref 156 470 538 562 586 649 654 767 769 771 773 775 777 786 786 addrel builtin function dcl 130 ref 594 674 717 all_sw 000214 automatic bit(1) initial unaligned dcl 42 set ref 42* 378* 394* 646 analyze_device_stat_$rsnnl 000010 constant entry external dcl 81 ref 780 arg based char unaligned dcl 73 set ref 204 204 206* 219 224* 226* 231 235* 241 243 249 255 261 261 273 277 280 280 280 280 292 296 299 299 311 315 315 317 318 319* 323 325 326 331 342 346 348 353 353 358 359 361 368 368 372 372 376 376 378 378 380 380 382 382 385* 437 441* 444* arg_list_ptr 000102 automatic pointer dcl 33 set ref 138* 190* 410* arg_no 000104 automatic fixed bin(17,0) dcl 34 set ref 200* 201 410* 415* 415 416 422* 422 423 argl 000100 automatic fixed bin(17,0) dcl 32 set ref 204 204 206 206 219 224 224 226 226 231 235 235 241 243 249 255 261 261 273 277 280 280 280 280 292 296 299 299 311 315 315 317 318 319 319 323 325 326 331 342 346 348 353 353 358 359 361 368 368 372 372 376 376 378 378 380 380 382 382 385 385 410* 437 441 441 444 444 argp 000106 automatic pointer dcl 35 set ref 204 204 206 219 224 226 231 235 241 243 249 255 261 261 273 277 280 280 280 280 292 296 299 299 311 315 315 317 318 319 323 325 326 331 342 346 348 353 353 358 359 361 368 368 372 372 376 376 378 378 380 380 382 382 385 410* 437 441 444 ascii_dtst 3(09) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* ascii_dtstat based structure array level 1 packed unaligned dcl 804 based_words based bit(36) array dcl 456 set ref 477* before builtin function dcl 130 ref 353 bin builtin function dcl 130 ref 326 470 542 566 590 596 631 631 642 642 642 642 677 677 683 683 724 730 730 753 753 block_given 000201 automatic bit(1) initial unaligned dcl 42 set ref 42* 171 244 246* 250 252* 256 258* 262 264* 281 283* 300 302* 332 334* 390 391* bound 17 based fixed bin(19,0) level 2 dcl 1-128 set ref 748* brief_sw 000215 automatic bit(1) initial unaligned dcl 42 set ref 42* 380* 382* 632 679 731 833 chanid 2 based char(8) level 2 dcl 1-96 set ref 567 677* channel_id 000232 automatic char(8) dcl 66 set ref 296* 567 579* channel_required 2 based char(8) level 2 dcl 1-128 set ref 751 751* channel_sw 000206 automatic bit(1) initial unaligned dcl 42 set ref 42* 283* 285* 559 channel_table_idx 15(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-96 set ref 683* chx 5 based fixed bin(35,0) level 2 dcl 1-96 set ref 683* cleanup 000260 stack reference condition dcl 128 ref 134 clock builtin function dcl 130 ref 686 850 850 code 000110 automatic fixed bin(35,0) dcl 36 set ref 158* 159 190* 191 191* 193 193* 195 196* 224* 225 226* 410* 411 412* 441* 442 458* 459 460* 464* 465 466* 471* 472 473* 480* 481 482* 492* 493 494* 517* 519* 521* 742* 743 com_err_ 000012 constant entry external dcl 83 ref 168 196 206 226 235 319 385 399 412 444 460 466 473 482 494 551 554 555 575 578 579 606 609 610 command 13(18) based bit(6) level 3 packed unaligned dcl 1-96 set ref 690* connected 1(18) based bit(1) level 3 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" set ref 733* connected 1(01) based bit(1) level 3 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" set ref 681* controller 22(13) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* cpz_status_table_$cpz_status_table_ 000076 external static fixed bin(17,0) dcl 115 set ref 773 crz_status_table_$crz_status_table_ 000100 external static fixed bin(17,0) dcl 117 set ref 775 ct based structure array level 2 dcl 1-40 set ref 562 649 cte based structure level 1 dcl 1-96 cte_offset 000223 automatic fixed bin(17,0) dcl 61 set ref 253* 288* 563 566 575 578* cte_sw 000203 automatic bit(1) initial unaligned dcl 42 set ref 42* 252* 287* 559 563 575 ctep 2(18) based bit(18) level 2 in structure "gte" packed unaligned dcl 1-74 in procedure "display_ioi_data" ref 642 642 ctep 000272 automatic pointer dcl 1-31 in procedure "display_ioi_data" set ref 562* 566 567 649* 650 673 674 677 677 677 681 681 681 681 681 681 683 683 683 683 683 683 685 686 686 686 688 690 690 690 692 692 cu_$af_arg_count_rel 000014 constant entry external dcl 84 ref 190 cu_$arg_list_ptr 000016 constant entry external dcl 85 ref 138 cu_$arg_ptr_rel 000020 constant entry external dcl 86 ref 410 cur_ctep 1 based bit(18) level 2 packed unaligned dcl 1-128 set ref 738 738* cur_date_time 000534 automatic char(24) unaligned dcl 846 set ref 850* 851 cur_dtep 1(18) based bit(18) level 2 packed unaligned dcl 1-96 ref 683 683 currentsize builtin function dcl 130 ref 476 832 832 cv_oct_check_ 000022 constant entry external dcl 87 ref 441 data 0(01) based bit(8) array level 2 packed unaligned dcl 804 ref 812 date_time_ 000024 constant entry external dcl 88 ref 848 850 dec_sw 000550 automatic bit(1) unaligned dcl 861 set ref 864* 865* delete_$ptr 000026 constant entry external dcl 89 ref 519 deleted 15(01) based bit(1) level 3 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" set ref 681* deleted 22(09) based bit(1) level 3 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" set ref 733* deleting 22(08) based bit(1) level 3 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" set ref 733* deleting 15 based bit(1) level 3 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" set ref 681* detailed_status 50 based bit(36) array level 2 dcl 1-128 set ref 784 786 786 detailed_status_cmd 3 based bit(6) level 2 packed unaligned dcl 1-74 set ref 643* detailed_status_valid 45 based bit(1) level 2 dcl 1-128 set ref 733* dev_pic 000433 automatic picture(2) unaligned dcl 707 set ref 724* 725 device 22 based bit(6) level 2 packed unaligned dcl 1-128 ref 596 724 device_name 000430 automatic char(7) unaligned dcl 705 in procedure "dump_dte" set ref 718* 721* 722 725* 725 730* device_name 000227 automatic varying char(7) dcl 65 in procedure "display_ioi_data" set ref 315* 325* 595 596 610* device_no 000226 automatic fixed bin(17,0) dcl 64 set ref 326* 596 device_sw 000207 automatic bit(1) initial unaligned dcl 42 set ref 42* 302* 304* 583 device_table_idx 22(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-128 set ref 753* device_type 000432 automatic char(3) unaligned dcl 706 set ref 718* 722* 727 727 727 767 769 771 773 775 777 dir 000114 automatic char(168) unaligned dcl 40 set ref 213* 224* 492* 494* 494* 505* direct 22(12) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* disk_data_subsystem_idx 7 based fixed bin(17,0) level 2 dcl 1-74 ref 638 disk_status_table_$disk_status_table_ 000102 external static fixed bin(17,0) dcl 119 set ref 769 disktab_ctx 1(09) based fixed bin(9,0) level 2 packed unsigned unaligned dcl 1-96 set ref 683 683* divide builtin function dcl 130 ref 755 755 755 755 dt 20 based structure array level 2 dcl 1-40 set ref 156 586 654 dte based structure level 1 dcl 1-128 dte_offset 000224 automatic fixed bin(17,0) dcl 61 set ref 259* 307* 587 590 606 609* dte_sw 000204 automatic bit(1) initial unaligned dcl 42 set ref 42* 258* 306* 583 587 606 dtep 2 based bit(18) level 2 in structure "gte" packed unaligned dcl 1-74 in procedure "display_ioi_data" ref 642 642 dtep 000274 automatic pointer dcl 1-32 in procedure "display_ioi_data" set ref 156* 157 157 158 586* 590 591 594 596 654* 655 715 717 724 730 730 733 733 733 733 733 733 733 733 733 733 733 733 733 733 738 738 741 742 746 746 746 746 748 748 749 749 749 749 749 751 751 753 753 753 753 753 753 755 755 755 755 755 755 759 759 759 759 762 762 762 764 764 766 780 781 781 784 786 786 788 789 789 789 dtstat based bit(8) array unaligned dcl 803 set ref 819 821* dual_controller 3(08) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* ename 000166 automatic char(32) unaligned dcl 41 set ref 215* 224* 492* 494* 494* 506* erf_name 000216 automatic char(16) unaligned dcl 60 set ref 241* 504 504 506 erf_sw 000200 automatic bit(1) initial unaligned dcl 42 set ref 42* 145 239* 398 519 741 error_table_$active_function 000066 external static fixed bin(35,0) dcl 108 ref 191 error_table_$badopt 000070 external static fixed bin(35,0) dcl 110 set ref 385* error_table_$noarg 000072 external static fixed bin(35,0) dcl 111 set ref 235* error_table_$not_act_fnc 000074 external static fixed bin(35,0) dcl 112 ref 193 ev_chn 4 based fixed bin(71,0) level 2 dcl 1-128 ref 746 746 expand_pathname_ 000030 constant entry external dcl 90 ref 224 extract 000032 constant entry external dcl 91 ref 504 fips 3(12) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* flags 3(06) based structure level 2 packed unaligned dcl 1-74 flags1 1(18) based structure level 2 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" flags1 1 based structure level 2 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" flags2 22(06) based structure level 2 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" flags2 15 based structure level 2 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" force_sw 000213 automatic bit(1) initial unaligned dcl 42 set ref 42* 376* 563 587 found 000364 automatic bit(1) unaligned dcl 532 in procedure "dump_block" set ref 536* 546* 549 560* 570* 573 584* 601* 604 found 000234 automatic bit(1) unaligned dcl 67 in procedure "display_ioi_data" set ref 154* 163* 168 get_temp_segment_ 000034 constant entry external dcl 92 ref 458 get_userid_ 000036 constant entry external dcl 93 ref 158 742 get_wdir_ 000040 constant entry external dcl 94 ref 213 505 group_name 000225 automatic char(4) unaligned dcl 63 in procedure "display_ioi_data" set ref 277* 543 555* group_name 000416 automatic char(4) unaligned dcl 670 in procedure "dump_cte" set ref 672* 675* 677 677* group_sw 000205 automatic bit(1) initial unaligned dcl 42 set ref 42* 264* 266* 535 gt based structure array level 2 dcl 1-40 set ref 470 538 gte based structure level 1 dcl 1-74 gte_offset 000222 automatic fixed bin(17,0) dcl 61 set ref 247* 269* 393* 539 542 551 554* gte_sw 000202 automatic bit(1) initial unaligned dcl 42 set ref 42* 246* 268* 392* 535 539 551 gtep 000270 automatic pointer dcl 1-30 in procedure "display_ioi_data" set ref 538* 542 543 626 631 631 634 634 636 636 636 636 636 636 636 638 640 640 640 642 642 642 642 643 643 650 655 gtep 0(18) based bit(18) level 2 in structure "dte" packed unaligned dcl 1-128 in procedure "display_ioi_data" ref 591 594 655 715 717 gtep 0(18) based bit(18) level 2 in structure "cte" packed unaligned dcl 1-96 in procedure "display_ioi_data" ref 650 673 674 header_sw 000211 automatic bit(1) initial unaligned dcl 42 set ref 42* 152 172 369* 373* 390 395* i 000510 automatic fixed bin(17,0) dcl 808 in procedure "dump_detail" set ref 811* 812 812* 814* 814* 816* 819* 819* 821* i 000362 automatic fixed bin(17,0) dcl 530 in procedure "dump_block" set ref 537* 538* 561* 562* 585* 586* i 000336 automatic fixed bin(19,0) dcl 455 in procedure "fetch_ioi_data" set ref 470* 471* 473 476* 477 480* 482 i 000402 automatic fixed bin(17,0) dcl 623 in procedure "dump_gte" set ref 648* 649* 653* 654* i 000111 automatic fixed bin(17,0) dcl 37 in procedure "display_ioi_data" set ref 155* 156* i 000306 automatic fixed bin(17,0) dcl 188 in procedure "scan_args" set ref 346* 347 351 358 359 361 362* 363 363 idcw 32 based bit(36) level 2 dcl 1-128 set ref 753* idp 000266 automatic pointer dcl 1-29 set ref 133* 155 156 458* 470 471* 476 477 480* 492* 516 517* 519* 521* 537 538 561 562 585 586 594 648 649 653 654 674 717 832 832 835 835 835 imp_status_table_$imp_status_table_ 000104 external static fixed bin(17,0) dcl 121 set ref 777 in_use 22(07) based bit(1) level 3 packed unaligned dcl 1-128 set ref 157 733* index builtin function dcl 130 ref 346 362 initiate_file_ 000042 constant entry external dcl 95 ref 492 io_log_info_index 6 based fixed bin(17,0) level 2 dcl 1-74 ref 643 ioa_ 000044 constant entry external dcl 96 ref 177 631 634 636 638 640 642 643 677 681 683 686 689 690 692 730 733 738 746 748 749 751 753 755 759 762 764 781 789 816 821 832 835 ioa_$nnl 000046 constant entry external dcl 96 ref 785 ioa_$rsnnl 000050 constant entry external dcl 96 ref 865 ioi_data based structure level 1 dcl 1-40 set ref 476 832 832 ioi_use 1 based bit(1) level 3 packed unaligned dcl 1-96 set ref 681* ipc 3(11) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* 727 ite based structure level 1 dcl 1-63 last_log_time 46 based fixed bin(71,0) level 2 dcl 1-128 set ref 762 762* 762* length builtin function dcl 130 ref 315 317 353 359 596 781 level 40 based fixed bin(3,0) level 3 packed unsigned unaligned dcl 1-128 set ref 781* listx 23 based fixed bin(18,0) level 2 packed unsigned unaligned dcl 1-128 ref 753 753 lock based bit(36) level 2 in structure "gte" dcl 1-74 in procedure "display_ioi_data" set ref 634 634* lock based structure level 1 dcl 2-12 in procedure "display_ioi_data" log_status 40 based structure level 2 dcl 1-128 set ref 766 log_status_cnt 1(19) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* low builtin function dcl 130 ref 627 max_bound 16 based fixed bin(19,0) level 2 dcl 1-128 set ref 748* max_timeout 25 based fixed bin(35,0) level 2 dcl 1-128 ref 755 755 755 more_args 000112 automatic bit(1) unaligned dcl 38 set ref 201* 202 212 234 265 284 303 335 416* 423* 434 mplex 3(10) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* 723 n parameter fixed bin(71,0) dcl 860 set ref 857 864 865* n_args 000113 automatic fixed bin(17,0) dcl 39 set ref 190* 201 416 423 n_devices 4 based fixed bin(17,0) level 2 dcl 1-74 ref 640 640 name 1 based char(4) level 2 in structure "gte" dcl 1-74 in procedure "display_ioi_data" ref 543 595 626 675 721 name 000001 constant char(16) initial unaligned dcl 77 in procedure "display_ioi_data" set ref 168* 196* 206* 226* 235* 319* 385* 399* 412* 444* 458* 460* 466* 473* 482* 494* 519* 521* 551* 554* 555* 575* 578* 579* 606* 609* 610* nct 1 based fixed bin(17,0) level 2 dcl 1-40 ref 476 561 648 832 832 835 ndt 2 based fixed bin(17,0) level 2 dcl 1-40 ref 155 470 476 538 562 585 649 653 832 832 835 next_lpw_offset 13 based bit(18) level 3 packed unaligned dcl 1-96 set ref 690* ngt based fixed bin(17,0) level 2 dcl 1-40 ref 476 537 562 649 832 832 835 nit 3 based fixed bin(17,0) level 2 dcl 1-40 ref 476 832 832 no_header_sw 000212 automatic bit(1) initial unaligned dcl 42 set ref 42* 370* 374* 395 null builtin function dcl 130 ref 133 516 715 718 779 p parameter pointer dcl 800 ref 797 812 819 821 pack parameter bit(1) unaligned dcl 801 ref 797 810 pack_sw 000472 automatic bit(1) unaligned dcl 712 set ref 714* 727* 786* packed_dtstat 000502 automatic bit(8) array unaligned dcl 807 set ref 812* 814 816* path_sw 000177 automatic bit(1) initial unaligned dcl 42 set ref 42* 143 211* 517 pathname_ 000052 constant entry external dcl 101 ref 494 494 pcw 30 based bit(36) level 2 dcl 1-128 set ref 753* pending_connects 5 based fixed bin(17,0) level 2 dcl 1-74 ref 640 person 000434 automatic char(22) unaligned dcl 708 in procedure "dump_dte" set ref 740* 742* 743* 746 746* person 000235 automatic char(22) unaligned dcl 68 in procedure "display_ioi_data" set ref 158* 160 person_req 000243 automatic char(22) unaligned dcl 68 set ref 160 160 168* 336* 348* 352* 358* priv 22(06) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* process_id 20 based bit(36) level 2 dcl 1-128 set ref 157 158 741 742 746* project 000251 automatic char(9) unaligned dcl 69 in procedure "display_ioi_data" set ref 158* 160 project 000442 automatic char(9) unaligned dcl 709 in procedure "dump_dte" set ref 740* 742* 743* 746* project_req 000254 automatic char(9) unaligned dcl 69 set ref 160 160 168* 338* 349* 353* 355* 359* 361* 362 363* prt_status_table_$prt_status_table_ 000106 external static fixed bin(17,0) dcl 123 set ref 771 psia 3(06) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* ptx 42 based fixed bin(17,0) level 2 dcl 1-128 set ref 749* quiescing 1(03) based bit(1) level 3 packed unaligned dcl 1-96 set ref 681* r0p 000334 automatic pointer dcl 454 set ref 464* 471 480 reading_detailed_status 1(20) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* rel builtin function dcl 130 ref 470 542 566 590 631 631 650 655 677 677 730 730 release_temp_segment_ 000054 constant entry external dcl 102 ref 521 result 000551 automatic char(32) unaligned dcl 862 set ref 865* 866 ring 21 based fixed bin(3,0) level 2 dcl 1-128 set ref 746* ring0_get_$segptr 000056 constant entry external dcl 103 ref 464 ring_zero_peek_ 000060 constant entry external dcl 104 ref 471 480 rtrim builtin function dcl 130 ref 504 504 725 866 saved_status 10 based structure level 2 packed unaligned dcl 1-96 set ref 688 source_given 000176 automatic bit(1) initial unaligned dcl 42 set ref 42* 205 210* 232 special_interrupt 44 based bit(1) level 2 dcl 1-128 set ref 733* special_status 34 based bit(36) level 2 dcl 1-128 set ref 764 764* status 41 based bit(36) level 3 packed unaligned dcl 1-128 set ref 780 781* status_control 31 based structure level 2 dcl 1-128 set ref 788 status_entries 31(18) based fixed bin(9,0) level 3 packed unsigned unaligned dcl 1-128 set ref 789* status_entry_idx 31(27) based fixed bin(9,0) level 3 packed unsigned unaligned dcl 1-128 set ref 789* status_msg 000445 automatic varying char(72) dcl 710 set ref 780* 781 781* status_offset 31 based fixed bin(18,0) level 3 packed unsigned unaligned dcl 1-128 set ref 789* status_tablep 000470 automatic pointer dcl 711 set ref 767* 769* 771* 773* 775* 777* 779* 780* substr builtin function dcl 130 set ref 219 273 292 311 318 323 326 342 353 358 361 363* 437 595 638 722 849* 851 851 851 suspend_devices 3(07) based bit(1) level 3 packed unaligned dcl 1-74 set ref 636* suspended 22(10) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* sw 000363 automatic bit(1) unaligned dcl 531 set ref 539* 542* 543* 544 563* 566* 567* 568 587* 590* 591* 595* 596* 596 599 tape_status_table_$tape_status_table_ 000110 external static fixed bin(17,0) dcl 125 set ref 767 tdcw 33 based bit(36) level 2 dcl 1-128 set ref 753* temp 000324 automatic fixed bin(17,0) dcl 432 set ref 441* 442 temp_gtep 000366 automatic pointer dcl 533 in procedure "dump_block" set ref 594* 595 temp_gtep 000426 automatic pointer dcl 704 in procedure "dump_dte" set ref 715* 717* 718 721 723 727 temp_gtep 000414 automatic pointer dcl 669 in procedure "dump_cte" set ref 674* 675 temp_name 000403 automatic char(4) unaligned dcl 624 set ref 626* 627 627* 629 629* 631* 638 terminate_file_ 000062 constant entry external dcl 105 ref 517 time parameter fixed bin(71,0) dcl 843 set ref 840 848* time_limit 6 based fixed bin(71,0) level 2 dcl 1-96 set ref 685 686 686* 686* time_temp 000526 automatic char(24) unaligned dcl 845 set ref 848* 849* 851 851* 851 853 timeout 24 based fixed bin(35,0) level 2 dcl 1-128 ref 755 755 755 toss_status 1(02) based bit(1) level 3 packed unaligned dcl 1-96 set ref 681* unspec builtin function dcl 130 set ref 477* 688 746 746 749 749 766 784 788 unwire_time 26 based fixed bin(71,0) level 2 dcl 1-128 set ref 759 759* 759* user_info_ 000064 constant entry external dcl 106 ref 336 user_sw 000210 automatic bit(1) initial unaligned dcl 42 set ref 42* 151 334* 398 verify builtin function dcl 130 ref 323 word1 10 based bit(36) level 3 packed unaligned dcl 1-96 ref 692 word2 11 based bit(36) level 3 packed unaligned dcl 1-96 set ref 690* word4 12 based bit(36) level 3 packed unaligned dcl 1-96 ref 692 workspace_astep 10 based pointer level 2 dcl 1-128 set ref 749* workspace_ptr 6 based pointer level 2 dcl 1-128 set ref 749* workspace_sdw 12 based fixed bin(71,0) level 2 dcl 1-128 ref 749 749 workspace_wired 22(11) based bit(1) level 3 packed unaligned dcl 1-128 set ref 733* 759* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 4-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 4-33 E_ACCESS internal static bit(3) initial unaligned dcl 4-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 IOI_DEFAULT_MAX_BOUND internal static fixed bin(19,0) initial dcl 1-198 IOI_DEFAULT_MAX_TIMEOUT internal static fixed bin(35,0) initial dcl 1-199 IOI_DEFAULT_TIMEOUT internal static fixed bin(35,0) initial dcl 1-201 IOI_DEVICE_LOCK_EVENT_TEMPLATE internal static char(2) initial unaligned dcl 1-207 IO_CHANNEL_LOCK_TEMPLATE internal static char(2) initial unaligned dcl 1-205 IO_STATUS_ERROR_MASK internal static bit(36) initial unaligned dcl 1-203 M_ACCESS internal static bit(3) initial unaligned dcl 4-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 N_ACCESS internal static bit(3) initial unaligned dcl 4-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 REW_ACCESS internal static bit(3) initial unaligned dcl 4-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 RE_ACCESS internal static bit(3) initial unaligned dcl 4-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 RW_ACCESS internal static bit(3) initial unaligned dcl 4-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SA_ACCESS internal static bit(3) initial unaligned dcl 4-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 4-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 4-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 SM_ACCESS internal static bit(3) initial unaligned dcl 4-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 S_ACCESS internal static bit(3) initial unaligned dcl 4-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 3-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 3-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 3-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 3-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 3-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 3-15 W_ACCESS internal static bit(3) initial unaligned dcl 4-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 4-36 ioi_channels automatic fixed bin(17,0) dcl 1-35 ioi_data$ external static fixed bin(17,0) dcl 1-37 ioi_devices automatic fixed bin(17,0) dcl 1-35 ioi_multiplexers automatic fixed bin(17,0) dcl 1-35 ioi_subsystems automatic fixed bin(17,0) dcl 1-35 itep automatic pointer dcl 1-33 lock_ptr automatic pointer dcl 2-11 terminate_file_switches based structure level 1 packed unaligned dcl 3-4 NAMES DECLARED BY EXPLICIT CONTEXT. all_channels 002245 constant label dcl 285 ref 294 all_devices 002307 constant label dcl 304 ref 313 all_groups 002173 constant label dcl 266 ref 275 bad_device 002346 constant label dcl 319 ref 317 323 clean_up 003754 constant entry internal dcl 513 ref 134 179 conflict 001661 constant label dcl 206 ref 232 244 250 256 262 281 300 332 display_ioi_data 001273 constant entry external dcl 27 done 001563 constant label dcl 179 ref 197 208 227 237 321 386 400 413 445 461 467 474 483 495 556 580 611 dump_block 004070 constant entry internal dcl 527 ref 174 dump_cte 005367 constant entry internal dcl 666 ref 569 650 dump_detail 007256 constant entry internal dcl 797 ref 786 dump_dte 005750 constant entry internal dcl 701 ref 162 600 655 dump_gte 004732 constant entry internal dcl 620 ref 545 dump_header 007424 constant entry internal dcl 829 ref 152 172 176 edit_dec 007617 constant entry internal dcl 857 ref 473 482 638 640 640 643 755 755 835 835 835 extract_ioi_data 003665 constant entry internal dcl 501 ref 145 fetch_ioi_data 003224 constant entry internal dcl 451 ref 147 get_arg 003024 constant entry internal dcl 407 ref 203 218 240 272 291 310 341 436 get_offset_arg 003112 constant entry internal dcl 429 ref 247 253 259 initiate_ioi_data 003553 constant entry internal dcl 489 ref 143 507 missing 002044 constant label dcl 235 process_all 005277 constant label dcl 646 ref 632 put_arg 003102 constant entry internal dcl 419 ref 221 274 293 312 343 438 scan_args 001570 constant entry internal dcl 185 ref 139 time_string 007543 constant entry internal dcl 840 ref 686 686 759 759 762 762 use_wdir 001723 constant label dcl 213 ref 222 user_is_me 002455 constant label dcl 336 ref 344 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10654 10766 10245 10664 Length 11354 10245 112 351 406 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME display_ioi_data 1334 external procedure is an external procedure. on unit on line 134 64 on unit scan_args internal procedure shares stack frame of external procedure display_ioi_data. get_arg internal procedure shares stack frame of external procedure display_ioi_data. get_offset_arg internal procedure shares stack frame of external procedure display_ioi_data. fetch_ioi_data internal procedure shares stack frame of external procedure display_ioi_data. initiate_ioi_data internal procedure shares stack frame of external procedure display_ioi_data. extract_ioi_data internal procedure shares stack frame of external procedure display_ioi_data. clean_up 84 internal procedure is called by several nonquick procedures. dump_block internal procedure shares stack frame of external procedure display_ioi_data. dump_gte internal procedure shares stack frame of external procedure display_ioi_data. dump_cte internal procedure shares stack frame of external procedure display_ioi_data. dump_dte internal procedure shares stack frame of external procedure display_ioi_data. dump_detail internal procedure shares stack frame of external procedure display_ioi_data. dump_header internal procedure shares stack frame of external procedure display_ioi_data. time_string internal procedure shares stack frame of external procedure display_ioi_data. edit_dec internal procedure shares stack frame of external procedure display_ioi_data. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME display_ioi_data 000100 argl display_ioi_data 000102 arg_list_ptr display_ioi_data 000104 arg_no display_ioi_data 000106 argp display_ioi_data 000110 code display_ioi_data 000111 i display_ioi_data 000112 more_args display_ioi_data 000113 n_args display_ioi_data 000114 dir display_ioi_data 000166 ename display_ioi_data 000176 source_given display_ioi_data 000177 path_sw display_ioi_data 000200 erf_sw display_ioi_data 000201 block_given display_ioi_data 000202 gte_sw display_ioi_data 000203 cte_sw display_ioi_data 000204 dte_sw display_ioi_data 000205 group_sw display_ioi_data 000206 channel_sw display_ioi_data 000207 device_sw display_ioi_data 000210 user_sw display_ioi_data 000211 header_sw display_ioi_data 000212 no_header_sw display_ioi_data 000213 force_sw display_ioi_data 000214 all_sw display_ioi_data 000215 brief_sw display_ioi_data 000216 erf_name display_ioi_data 000222 gte_offset display_ioi_data 000223 cte_offset display_ioi_data 000224 dte_offset display_ioi_data 000225 group_name display_ioi_data 000226 device_no display_ioi_data 000227 device_name display_ioi_data 000232 channel_id display_ioi_data 000234 found display_ioi_data 000235 person display_ioi_data 000243 person_req display_ioi_data 000251 project display_ioi_data 000254 project_req display_ioi_data 000266 idp display_ioi_data 000270 gtep display_ioi_data 000272 ctep display_ioi_data 000274 dtep display_ioi_data 000306 i scan_args 000324 temp get_offset_arg 000334 r0p fetch_ioi_data 000336 i fetch_ioi_data 000362 i dump_block 000363 sw dump_block 000364 found dump_block 000366 temp_gtep dump_block 000402 i dump_gte 000403 temp_name dump_gte 000414 temp_gtep dump_cte 000416 group_name dump_cte 000426 temp_gtep dump_dte 000430 device_name dump_dte 000432 device_type dump_dte 000433 dev_pic dump_dte 000434 person dump_dte 000442 project dump_dte 000445 status_msg dump_dte 000470 status_tablep dump_dte 000472 pack_sw dump_dte 000502 packed_dtstat dump_detail 000510 i dump_detail 000526 time_temp time_string 000534 cur_date_time time_string 000550 dec_sw edit_dec 000551 result edit_dec THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_e_as r_ne_as r_le_a alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry any_to_any_truncate_clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. analyze_device_stat_$rsnnl com_err_ cu_$af_arg_count_rel cu_$arg_list_ptr cu_$arg_ptr_rel cv_oct_check_ date_time_ delete_$ptr expand_pathname_ extract get_temp_segment_ get_userid_ get_wdir_ initiate_file_ ioa_ ioa_$nnl ioa_$rsnnl pathname_ release_temp_segment_ ring0_get_$segptr ring_zero_peek_ terminate_file_ user_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cpz_status_table_$cpz_status_table_ crz_status_table_$crz_status_table_ disk_status_table_$disk_status_table_ error_table_$active_function error_table_$badopt error_table_$noarg error_table_$not_act_fnc imp_status_table_$imp_status_table_ prt_status_table_$prt_status_table_ tape_status_table_$tape_status_table_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 27 001272 42 001300 133 001320 134 001322 138 001344 139 001353 143 001354 145 001360 147 001364 151 001365 152 001367 154 001372 155 001373 156 001403 157 001407 158 001414 159 001453 160 001455 162 001475 163 001476 167 001500 168 001502 170 001541 171 001542 172 001544 174 001547 175 001550 176 001551 177 001552 179 001563 181 001567 185 001570 190 001571 191 001604 193 001612 195 001616 196 001620 197 001634 200 001635 201 001637 202 001642 203 001644 204 001645 205 001657 206 001661 208 001715 210 001716 211 001720 212 001721 213 001723 215 001732 216 001735 218 001736 219 001737 221 001744 222 001745 224 001746 225 001776 226 002000 227 002032 230 002033 231 002034 232 002040 234 002042 235 002044 237 002076 239 002077 240 002101 241 002102 242 002107 243 002110 244 002114 246 002116 247 002121 248 002123 249 002124 250 002130 252 002132 253 002135 254 002137 255 002140 256 002144 258 002146 259 002151 260 002153 261 002154 262 002164 264 002166 265 002171 266 002173 268 002174 269 002176 270 002200 272 002201 273 002202 274 002207 275 002210 277 002211 279 002215 280 002216 281 002236 283 002240 284 002243 285 002245 287 002246 288 002250 289 002252 291 002253 292 002254 293 002261 294 002262 296 002263 298 002267 299 002270 300 002300 302 002302 303 002305 304 002307 306 002310 307 002312 308 002314 310 002315 311 002316 312 002323 313 002324 315 002325 317 002340 318 002342 319 002346 321 002402 323 002403 325 002415 326 002425 330 002441 331 002442 332 002446 334 002450 335 002453 336 002455 338 002466 339 002471 341 002472 342 002473 343 002500 344 002501 346 002502 347 002514 348 002515 349 002520 350 002523 351 002524 352 002526 353 002531 355 002546 356 002551 358 002552 359 002556 361 002565 362 002572 363 002603 367 002614 368 002615 369 002625 370 002627 371 002630 372 002631 373 002641 374 002642 375 002644 376 002645 378 002660 380 002673 382 002706 385 002720 386 002752 388 002753 390 002754 391 002760 392 002762 393 002763 394 002765 395 002766 398 002771 399 002775 400 003022 403 003023 407 003024 410 003025 411 003044 412 003046 413 003073 415 003074 416 003075 417 003101 419 003102 422 003103 423 003105 424 003111 429 003112 434 003114 436 003121 437 003122 438 003127 439 003130 441 003134 442 003161 444 003167 445 003223 451 003224 458 003225 459 003246 460 003250 461 003274 464 003275 465 003324 466 003326 467 003352 470 003353 471 003362 472 003402 473 003404 474 003441 476 003442 477 003465 480 003473 481 003512 482 003514 483 003551 485 003552 489 003553 492 003554 493 003612 494 003614 495 003663 497 003664 501 003665 504 003666 505 003725 506 003735 507 003750 508 003752 513 003753 516 003761 517 003766 519 004016 521 004047 523 004067 527 004070 535 004071 536 004075 537 004076 538 004105 539 004116 542 004126 543 004137 544 004143 545 004144 546 004145 548 004147 549 004151 551 004154 554 004207 555 004241 556 004272 559 004273 560 004277 561 004300 562 004311 563 004330 566 004340 567 004351 568 004356 569 004357 570 004360 572 004362 573 004364 575 004367 578 004422 579 004454 580 004505 583 004506 584 004512 585 004513 586 004523 587 004527 590 004537 591 004550 594 004556 595 004561 596 004565 599 004600 600 004602 601 004603 603 004605 604 004607 606 004612 609 004645 610 004677 611 004730 614 004731 620 004732 626 004733 627 004736 629 004746 631 004755 632 005004 634 005006 636 005030 638 005111 640 005143 642 005212 643 005244 646 005277 648 005301 649 005311 650 005330 652 005337 653 005341 654 005351 655 005355 657 005364 660 005366 666 005367 672 005370 673 005372 674 005376 675 005401 677 005403 679 005451 681 005454 683 005523 685 005600 686 005603 688 005644 689 005651 690 005665 692 005720 695 005747 701 005750 714 005751 715 005752 717 005761 718 005764 721 005775 722 006003 723 006006 724 006011 725 006025 726 006064 727 006065 730 006101 731 006130 733 006133 738 006252 740 006276 741 006304 742 006311 743 006351 746 006361 748 006436 749 006462 751 006521 753 006550 755 006614 759 006677 762 006741 764 006774 766 007017 767 007024 769 007033 771 007041 773 007047 775 007055 777 007063 779 007071 780 007073 781 007125 784 007166 785 007173 786 007212 788 007217 789 007222 793 007255 797 007256 810 007260 811 007265 812 007273 813 007305 814 007307 815 007322 816 007325 817 007352 819 007353 820 007371 821 007374 822 007423 829 007424 832 007425 833 007470 835 007473 837 007542 840 007543 848 007545 849 007562 850 007564 851 007603 853 007611 857 007617 864 007621 865 007632 866 007667 ----------------------------------------------------------- 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