COMPILATION LISTING OF SEGMENT ssu_info_mgr_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1532.5 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-03-07,GDixon), approve(86-03-07,MCR7327), 12* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 13* Use help$ssu_help_request instead of calling help command. 14* END HISTORY COMMENTS */ 15 16 17 /* Standard subsystem self-documentation facilities (except for request listing requests) */ 18 19 /* Created: 10 May 1980 by W. Olin Sibert */ 20 /* Modified: 21 May 1980 by G. Palter to fix (ugh) mail system bug #0312 -- list_help request doesn't work */ 21 /* Modified: August 1981 by Jay Pattin to fix list_help again and to not require prefix in info seg name */ 22 /* Modified: 7 November 1981 by Jay Pattin to make list_help look for break chars around topic name */ 23 /* Modified: 17 November 1981 by Jay Pattin to use sci.info_prefix instead of subsystem name */ 24 /* Modified: 17 December 1981 by G. Palter to provide more usefull information when the help request is used with no 25* arguments and to no longer recognize "*" as a special case */ 26 /* Modified: 1 February 1982 by G. Palter to make list_help case insensitive */ 27 /* Modified: 11 February 1982 by G. Palter to rename to ssu_info_mgr_ and add entrypoints which manipulate the info 28* directory list and info prefix */ 29 /* Modified: 3 March 1982 by G. Palter to make list_help of no arguments not list the names in uppercase */ 30 /* Modified: 8 June 1983 by G. C. Dixon to call help$ssu_help_request instead of calling help command. */ 31 32 /* format: style4,delnl,insnl,ifthenstmt,ifthen */ 33 34 35 ssu_info_mgr_: 36 procedure (); 37 38 return; /* not an entrypoint */ 39 40 41 /* Parameters */ 42 43 dcl P_sci_ptr pointer parameter; 44 dcl P_code fixed binary (35) parameter; 45 46 dcl P_info_prefix character (32) parameter; /* set_info_prefix: the new value of the prefix */ 47 48 dcl P_info_dirname character (*) parameter; /* add_info_dir/delete_info_dir: the dir to add/delete */ 49 dcl P_position fixed binary parameter; /* add_info_dir: where to place this dir in the list */ 50 51 dcl P_idl_ptr pointer parameter; /* list_info_dirs/set_info_dirs */ 52 dcl P_callers_area_ptr pointer parameter; /* list_info_dirs: -> area to use to list structure */ 53 dcl P_info_dirs_list_version fixed binary parameter; /* list_info_dirs: version of structure callers expects */ 54 55 dcl P_info_ptr pointer parameter; /* help/list_help requests */ 56 57 58 /* The list of directories searched by the help and list_help requests to find an info segment */ 59 60 dcl 1 info_dirs aligned based (sci.info_dirs_ptr), 61 2 n_used fixed binary, 62 2 n_allocated fixed binary, 63 2 dirs (info_dirs_n_allocated refer (info_dirs.n_allocated)) like info_dirs_list.info_dirs; 64 65 dcl info_dirs_n_allocated fixed binary; 66 dcl new_info_dirs_ptr pointer; 67 68 69 /* Local copies of parameters */ 70 71 dcl code fixed binary (35); 72 73 dcl info_dirname character (168); 74 75 dcl position fixed binary; 76 77 dcl callers_area area based (callers_area_ptr); 78 dcl callers_area_ptr pointer; 79 80 81 /* Remaining declarations */ 82 83 dcl arg character (al) based (ap); 84 dcl al fixed binary (21); 85 dcl ap pointer; 86 87 dcl uid bit (36) aligned; 88 89 dcl old_nargs fixed binary; 90 dcl (match, found_bad_dirname) bit (1) aligned; 91 dcl topic_sw bit(1); 92 dcl subsys_name character (32); 93 dcl (request_name, help_request_name, lh_request_name) character (32); 94 dcl intro_topic character (32); 95 dcl info_name char(300) varying; 96 dcl (code1, code2) fixed binary (35); 97 dcl (idx, jdx, pos) fixed binary; 98 dcl topic_array_size fixed binary; 99 dcl total_topics fixed binary; 100 101 dcl CHASE fixed binary (1) static options (constant) initial (1); 102 /* chase links when validating info directories */ 103 104 dcl DELIMITERS char (5) static options (constant) initial (" .-_$"); 105 /* break chars for list_help topics */ 106 107 dcl ( 108 UPPERCASE initial ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 109 LOWERCASE initial ("abcdefghijklmnopqrstuvwxyz") 110 ) character (26) static options (constant); 111 112 dcl ( 113 error_table_$badopt, 114 error_table_$entlong, 115 error_table_$no_dir, 116 error_table_$noalloc, 117 error_table_$noentry, 118 error_table_$notadir, 119 error_table_$nostars, 120 error_table_$unimplemented_version, 121 error_table_$zero_length_seg 122 ) fixed binary (35) external; 123 124 dcl expand_pathname_ entry (character (*), character (*), character (*), fixed binary (35)); 125 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), pointer, fixed bin (35)); 126 dcl hcs_$terminate_noname entry (pointer, fixed bin (35)); 127 dcl hcs_$star_ entry (char (*), char (*), fixed bin (3), pointer, fixed bin, pointer, pointer, fixed bin (35)); 128 dcl hcs_$status_long entry (character (*), character (*), fixed binary (1), pointer, pointer, fixed binary (35)); 129 dcl help$ssu_help_request entry (ptr, bit(1), entry); 130 dcl ioa_ entry options (variable); 131 dcl ioa_$nnl entry options (variable); 132 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 133 dcl ssu_$abort_line entry () options (variable); 134 dcl ssu_$arg_count entry (pointer, fixed binary); 135 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 136 dcl ssu_$get_subsystem_name entry (pointer) returns (character (32)); 137 dcl ssu_request_mgr_$find_request_name entry (pointer, entry, character (*), fixed binary (35)); 138 139 dcl ( 140 ssu_requests_$help, 141 ssu_requests_$list_help, 142 ssu_requests_$list_requests, 143 ssu_requests_$summarize_requests 144 ) entry (); 145 146 dcl (area, cleanup) condition; 147 148 dcl (addr, char, hbound, index, length, maxlength, null, rtrim, search, substr, translate) builtin; 149 150 /* */ 151 152 /* Set the prefix used to find info files */ 153 154 set_info_prefix: 155 entry (P_sci_ptr, P_info_prefix); 156 157 call ssu_check_sci (P_sci_ptr); 158 159 P_sci_ptr -> sci.info_prefix = P_info_prefix; 160 161 return; 162 163 164 165 /* Return the prefix used to find info files */ 166 167 get_info_prefix: 168 entry (P_sci_ptr) returns (character (32)); 169 170 call ssu_check_sci (P_sci_ptr); 171 172 return (P_sci_ptr -> sci.info_prefix); 173 174 175 176 /* Initialize the list of info directories (called by ssu_invocation_) */ 177 178 init_info_dirs: 179 entry (P_sci_ptr); 180 181 sci_ptr = P_sci_ptr; 182 183 info_dirs_n_allocated = 3; /* enough to start */ 184 allocate info_dirs in (sci_parent_area) set (sci.info_dirs_ptr); 185 186 info_dirs.n_used = 0; /* nothing in the list yet */ 187 188 return; 189 190 191 192 /* Release the info directories list (invoked from ssu_invocation_) */ 193 194 term_info_dirs: 195 entry (P_sci_ptr); 196 197 sci_ptr = P_sci_ptr; 198 199 if sci.info_dirs_ptr ^= null () then free info_dirs in (sci_parent_area); 200 201 sci.info_dirs_ptr = null (); 202 203 return; 204 205 /* */ 206 207 /* Add a directory to the list of directories searched by the help and list_help requests */ 208 209 add_info_dir: 210 entry (P_sci_ptr, P_info_dirname, P_position, P_code); 211 212 call ssu_check_sci (P_sci_ptr); 213 214 sci_ptr = P_sci_ptr; 215 P_code = 0; /* assume success */ 216 217 call validate_info_dir (P_info_dirname, info_dirname, uid, code); 218 if code ^= 0 then do; 219 P_code = code; 220 return; 221 end; 222 223 if sci.info_dirs_ptr = null () then /* no info directories list??? */ 224 call init_info_dirs (sci_ptr); 225 226 if (info_dirs.n_used >= info_dirs.n_allocated) & (info_dirs.n_allocated ^= 0) then do; 227 /* need to expand the table */ 228 info_dirs_n_allocated = 2 * info_dirs.n_allocated; 229 allocate info_dirs in (sci_parent_area) set (new_info_dirs_ptr); 230 new_info_dirs_ptr -> info_dirs.n_used = info_dirs.n_used; 231 do idx = 1 to info_dirs.n_used; 232 new_info_dirs_ptr -> info_dirs.dirs (idx) = info_dirs.dirs (idx); 233 end; 234 free info_dirs in (sci_parent_area); /* free the full one */ 235 sci.info_dirs_ptr = new_info_dirs_ptr; 236 end; 237 238 if P_position > info_dirs.n_used then position = info_dirs.n_used + 1; 239 /* add to the end of the list */ 240 else if P_position <= 0 then position = 1; /* add to the beginning */ 241 else position = P_position; /* add in an explicit place */ 242 243 info_dirs.n_used = info_dirs.n_used + 1; 244 245 do idx = info_dirs.n_used to (position + 1) by -1; 246 info_dirs.dirs (idx) = info_dirs.dirs (idx - 1); 247 end; 248 249 info_dirs.dirs (position).info_dirname = info_dirname; 250 info_dirs.dirs (position).info_dir_valid = "1"b; 251 info_dirs.dirs (position).uid = uid; 252 253 return; 254 255 /* */ 256 257 /* Delete a directory from the list of info directories for this subsystem */ 258 259 delete_info_dir: 260 entry (P_sci_ptr, P_info_dirname, P_code); 261 262 call ssu_check_sci (P_sci_ptr); 263 264 sci_ptr = P_sci_ptr; 265 266 call validate_info_dir (P_info_dirname, info_dirname, uid, code); 267 268 match = "0"b; /* find a matching directory */ 269 270 if (code = 0) then /* can search by uid */ 271 do idx = 1 to info_dirs.n_used while (^match); 272 if info_dirs.dirs (idx).uid = uid then match = "1"b; 273 end; 274 275 else do idx = 1 to info_dirs.n_used while (^match); 276 /* must search by pathname */ 277 if info_dirs.dirs (idx).info_dirname = info_dirname then match = "1"b; 278 end; 279 280 if match then do; /* found it: idx identifies next entry in list */ 281 do jdx = idx to info_dirs.n_used; 282 info_dirs.dirs (jdx - 1) = info_dirs.dirs (jdx); 283 end; 284 info_dirs.n_used = info_dirs.n_used - 1; 285 P_code = 0; /* success */ 286 end; 287 288 else P_code = error_table_$noentry; 289 290 return; 291 292 /* */ 293 294 /* Return the list of info directories used by this subsystem */ 295 296 list_info_dirs: 297 entry (P_sci_ptr, P_callers_area_ptr, P_info_dirs_list_version, P_idl_ptr, P_code); 298 299 if P_info_dirs_list_version ^= INFO_DIRS_LIST_VERSION_1 then do; 300 P_code = error_table_$unimplemented_version; 301 return; 302 end; 303 304 call ssu_check_sci (P_sci_ptr); 305 306 sci_ptr = P_sci_ptr; 307 callers_area_ptr = P_callers_area_ptr; 308 309 on condition (area) 310 begin; 311 P_code = error_table_$noalloc; 312 go to RETURN_FROM_LIST_INFO_DIRS; 313 end; 314 315 info_dirs_list_n_info_dirs = info_dirs.n_used; 316 317 allocate info_dirs_list in (callers_area) set (idl_ptr); 318 319 info_dirs_list.version = INFO_DIRS_LIST_VERSION_1; 320 321 do idx = 1 to info_dirs.n_used; 322 info_dirs_list.info_dirs (idx) = info_dirs.dirs (idx); 323 end; 324 325 P_idl_ptr = idl_ptr; 326 P_code = 0; /* success */ 327 328 RETURN_FROM_LIST_INFO_DIRS: 329 return; 330 331 /* */ 332 333 /* Replace the list of info directories with that supplied by the caller */ 334 335 set_info_dirs: 336 entry (P_sci_ptr, P_idl_ptr, P_code); 337 338 call ssu_check_sci (P_sci_ptr); 339 340 sci_ptr = P_sci_ptr; 341 idl_ptr = P_idl_ptr; 342 343 if info_dirs_list.version ^= INFO_DIRS_LIST_VERSION_1 then do; 344 P_code = error_table_$unimplemented_version; 345 return; 346 end; 347 348 349 /* Validate the caller's directory names */ 350 351 found_bad_dirname = "0"b; /* assume user's list is OK */ 352 353 do idx = 1 to info_dirs_list.n_info_dirs; 354 info_dirs_list.info_dirs (idx).info_dir_valid = "1"b; 355 call validate_info_dir (info_dirs_list.info_dirs (idx).info_dirname, 356 info_dirs_list.info_dirs (idx).info_dirname, info_dirs_list.info_dirs (idx).uid, code); 357 if code ^= 0 then do; /* a bad directory pathname */ 358 if ^found_bad_dirname then P_code = code; 359 found_bad_dirname = "1"b; /* remember reason for the first bad directory */ 360 info_dirs_list.info_dirs (idx).info_dir_valid = "0"b; 361 end; 362 end; 363 364 if found_bad_dirname then return; /* return code is already set */ 365 366 367 /* All directories are valid: create a new internal list, copies the user's data, then release the old internal list */ 368 369 info_dirs_n_allocated = info_dirs_list.n_info_dirs; 370 371 allocate info_dirs in (sci_parent_area) set (new_info_dirs_ptr); 372 373 new_info_dirs_ptr -> info_dirs.n_used = info_dirs_list.n_info_dirs; 374 375 do idx = 1 to new_info_dirs_ptr -> info_dirs.n_used; 376 new_info_dirs_ptr -> info_dirs.dirs (idx) = info_dirs_list.info_dirs (idx); 377 end; 378 379 if sci.info_dirs_ptr ^= null () then /* get rid of the old one */ 380 free sci.info_dirs_ptr -> info_dirs in (sci_parent_area); 381 382 sci.info_dirs_ptr = new_info_dirs_ptr; /* now have the new list */ 383 384 P_code = 0; /* success */ 385 386 return; 387 388 /* */ 389 390 /* Validates an info directory supplied by the caller */ 391 392 validate_info_dir: 393 procedure (p_info_dirname, p_absolute_info_dirname, p_uid, p_code); 394 395 dcl p_info_dirname character (*) parameter; 396 dcl p_absolute_info_dirname character (*) parameter; 397 dcl p_uid bit (36) aligned parameter; 398 dcl p_code fixed binary (35); 399 400 dcl 1 branch_status aligned like status_branch; 401 dcl dirname character (168); 402 dcl ename character (32); 403 404 call expand_pathname_ (p_info_dirname, dirname, ename, p_code); 405 if p_code ^= 0 then return; 406 407 call hcs_$status_long (dirname, ename, CHASE, addr (branch_status), null (), p_code); 408 if p_code ^= 0 then return; 409 410 if branch_status.type ^= Directory then do; 411 p_code = error_table_$notadir; 412 return; 413 end; 414 415 p_uid = branch_status.uid; 416 p_absolute_info_dirname = pathname_ (dirname, ename); 417 p_code = 0; 418 419 return; 420 421 end validate_info_dir; 422 423 /* */ 424 425 /* Standard subsystem help request: scans its argument list and converts any apparent topic names into the appropriate 426* pathnames by searching the subsystem' info directories; control arguments or explicit pathnames are passed directly; 427* a -brief_header control argument is added to the transformed argument list and the standard help command is invoked */ 428 429 help: 430 entry (P_sci_ptr, P_info_ptr); 431 432 sci_ptr = P_sci_ptr; 433 434 call ssu_$arg_count (sci_ptr, old_nargs); /* aborts if an active request */ 435 436 subsys_name = ssu_$get_subsystem_name (sci_ptr); 437 438 if old_nargs = 0 then do; /* explain what to do */ 439 call ssu_request_mgr_$find_request_name (sci_ptr, ssu_requests_$help, help_request_name, code2); 440 if code2 = 0 then do; /* look for introductory information */ 441 intro_topic = "general_information"; 442 call find_info_file_no_abort (intro_topic, ((168)" "), code1); 443 if code1 ^= 0 then do; 444 intro_topic = "overview"; 445 call find_info_file_no_abort (intro_topic, ((168)" "), code1); 446 end; 447 if code1 = 0 then 448 call ioa_ ("Type ""^a ^a"" for an overview of the ^a subsystem.", help_request_name, intro_topic, 449 subsys_name); 450 end; 451 call ssu_request_mgr_$find_request_name (sci_ptr, ssu_requests_$summarize_requests, request_name, code1); 452 if code1 = 0 then call ioa_ ("Type ""^a"" for a list of available requests.", request_name); 453 call ssu_request_mgr_$find_request_name (sci_ptr, ssu_requests_$list_requests, request_name, code1); 454 if code1 = 0 then call ioa_ ("Type ""^a"" for a short description of the requests.", request_name); 455 call ssu_request_mgr_$find_request_name (sci_ptr, ssu_requests_$list_help, lh_request_name, code1); 456 if (code1 = 0) & (code2 = 0) then 457 call ioa_ ("Type ""^a"" for a list of topics available to the ^a request.", lh_request_name, 458 help_request_name); 459 else if (code1 ^= 0) & (code2 = 0) then 460 call ioa_ ("Type ""^a -topics"" for a list of available topics.", help_request_name); 461 if code2 = 0 then 462 call ioa_ ("Type ""^a TOPIC"" for more information on a given topic.", help_request_name); 463 call ssu_$abort_line (sci_ptr, 0); /* punt rest of line as user might be confused */ 464 end; 465 466 call help$ssu_help_request (sci_ptr, topic_sw, find_subsystem_info_file); 467 if topic_sw then /* handle specially */ 468 goto HANDLE_HELP_LIST_TOPICS; 469 return; /* end of code for standard path through help request */ 470 471 /* */ 472 473 /* Lists all available info files for the subsystem: used by both list_help and help */ 474 475 HANDLE_HELP_LIST_TOPICS: 476 total_topics = 0; 477 478 do idx = 1 to info_dirs.n_used; 479 if info_dirs.dirs (idx).info_dir_valid then do; 480 call list_topics (info_dirs.dirs (idx).info_dirname, "0"b, ("")); 481 end; 482 end; 483 484 if total_topics = 0 then 485 call ssu_$abort_line (sci_ptr, 0, "There are no info topics available for this subsystem."); 486 487 return; 488 489 /* */ 490 491 /* Standard subsystem list_help request: lists all names in the info directories that match any of its arguments */ 492 493 list_help: 494 entry (P_sci_ptr, P_info_ptr); 495 496 sci_ptr = P_sci_ptr; 497 498 call ssu_$arg_count (sci_ptr, old_nargs); /* aborts if an active request */ 499 500 subsys_name = ssu_$get_subsystem_name (sci_ptr); 501 502 if old_nargs = 0 then /* handle it like help handles help * */ 503 goto HANDLE_HELP_LIST_TOPICS; 504 505 topic_array_size = old_nargs; 506 507 begin; /* otherwise, make a topic list and list selectively */ 508 509 dcl topic_names (topic_array_size) char (32) varying; 510 511 topic_array_size = 0; /* use them up one at a time now */ 512 513 do idx = 1 to old_nargs; 514 call ssu_$arg_ptr (sci_ptr, idx, ap, al); 515 516 if char (arg, 1) = "-" then call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", arg); 517 518 topic_array_size = topic_array_size + 1; 519 topic_names (topic_array_size) = translate (rtrim (arg), UPPERCASE, LOWERCASE); 520 end; 521 522 total_topics = 0; /* keep this up to date */ 523 524 do idx = 1 to info_dirs.n_used; /* now, list them */ 525 if info_dirs.dirs (idx).info_dir_valid then do; 526 call list_topics (info_dirs.dirs (idx).info_dirname, "1"b, topic_names); 527 end; 528 end; 529 530 if total_topics = 0 then /* found none */ 531 call ssu_$abort_line (sci_ptr, 0, "No matching info topics were found."); 532 533 end; /* begin block */ 534 535 return; /* end of code for $list_help */ 536 537 /* */ 538 539 /* Entry point passed to help$ssu_help_request. It calls this entry point to find subsystem info segs. */ 540 541 find_subsystem_info_file: 542 entry (P_sci_ptr, AP_topic) returns (char(300) varying); 543 544 dcl AP_topic character(*) parameter; 545 546 sci_ptr = P_sci_ptr; 547 call find_info_file (AP_topic, info_name); 548 return (info_name); 549 550 551 /* Search for a specific info file: abort the request line if it isn't not found */ 552 553 find_info_file: 554 procedure (P_topic, P_path); 555 556 dcl P_topic character (*) parameter; 557 dcl P_path character (*) varying parameter; 558 dcl P_code fixed binary (35) parameter; 559 560 dcl no_abort bit (1) aligned; 561 dcl ename character (32) varying; 562 dcl topic character (32) varying; 563 dcl info_dirname character (168); 564 dcl info_ename character (32); 565 dcl info_ptr pointer; 566 dcl info_bc fixed binary (24); 567 dcl code fixed binary (35); 568 dcl idx fixed binary (35); 569 570 no_abort = "0"b; 571 go to FIND_INFO_FILE_COMMON; 572 573 574 /* Search for a specific info file: do not abort the request line if it isn't not found */ 575 576 find_info_file_no_abort: 577 entry (P_topic, P_path, P_code); 578 579 P_code = 0; /* assume success */ 580 no_abort = "1"b; 581 582 583 FIND_INFO_FILE_COMMON: 584 if (search (P_topic, "*?") ^= 0) then 585 if no_abort then do; 586 P_code = error_table_$nostars; 587 return; 588 end; 589 else call ssu_$abort_line (sci_ptr, error_table_$nostars, "^a", P_topic); 590 591 if length (P_topic) > 5 then 592 if substr (P_topic, (length (P_topic) - 4), 5) = ".info" then 593 topic = substr (P_topic, 1, (length (P_topic) - 5)); 594 else topic = rtrim (P_topic); 595 else topic = rtrim (P_topic); 596 597 if (length (topic) + length ("info") + 1) > maxlength (ename) then 598 INFO_FILE_NAME_TOO_LONG: 599 if no_abort then do; 600 P_code = error_table_$entlong; 601 return; 602 end; 603 else call ssu_$abort_line (sci_ptr, error_table_$entlong, "^a", P_topic); 604 605 ename = topic || ".info"; 606 if sci.info_prefix ^= "" then do; 607 if (length (ename) + length (rtrim (sci.info_prefix)) + 1) > maxlength (ename) then 608 go to INFO_FILE_NAME_TOO_LONG; 609 ename = "." || ename; 610 ename = rtrim (sci.info_prefix) || ename; 611 end; 612 info_ename = ename; 613 614 do idx = 1 to info_dirs.n_used; 615 if info_dirs.dirs (idx).info_dir_valid then do; 616 info_dirname = info_dirs.dirs (idx).info_dirname; 617 call hcs_$initiate_count (info_dirname, info_ename, "", info_bc, 1, info_ptr, code); 618 if info_ptr ^= null () then goto FOUND_ONE; 619 if (code ^= error_table_$noentry) & (code ^= error_table_$no_dir) then 620 if no_abort then do; 621 P_code = code; 622 return; 623 end; 624 else call ssu_$abort_line (sci_ptr, code, "^a>^a", info_dirname, info_ename); 625 end; 626 end; 627 628 if no_abort then do; 629 P_code = error_table_$noentry; 630 return; 631 end; 632 else call ssu_$abort_line (sci_ptr, 0, "No info found for ^a.", P_topic); 633 634 FOUND_ONE: 635 call hcs_$terminate_noname (info_ptr, (0)); 636 if info_bc ^= 0 then do; 637 P_path = rtrim (info_dirname); 638 P_path = P_path || ">"; 639 P_path = P_path || info_ename; 640 return; /* let our caller have it */ 641 end; 642 643 else if no_abort then do; 644 P_code = error_table_$zero_length_seg; 645 return; 646 end; 647 648 else call ssu_$abort_line (sci_ptr, error_table_$zero_length_seg, "^a>^a", info_dirname, info_ename); 649 650 return; 651 652 end find_info_file; 653 654 /* */ 655 656 657 /* List the info topics for the subsystem in a particular directory which optionally match the given topics */ 658 659 list_topics: 660 procedure (P_dname, P_select_sw, P_topics); 661 662 dcl P_dname character (*) parameter; 663 dcl P_select_sw bit (1) aligned parameter; 664 dcl P_topics (*) character (*) varying parameter; 665 666 dcl 1 entries (entries_count) aligned based (entries_ptr), 667 2 type bit (2) unaligned, 668 2 n_names fixed binary (15) unaligned, 669 2 name_idx fixed binary (17) unaligned; 670 dcl entries_ptr pointer; 671 dcl entries_count fixed binary; 672 673 dcl names (1) character (32) aligned based (names_ptr); 674 dcl names_ptr pointer; 675 676 dcl n_names fixed binary; 677 dcl topic_name character (32) varying; 678 dcl topic_ename character (32); 679 dcl gi_topic_ename character (32); 680 dcl (n_topics, idx, jdx, kdx) fixed binary; 681 dcl code fixed binary (35); 682 683 684 names_ptr = null (); 685 entries_ptr = null (); 686 687 on condition (cleanup) 688 begin; 689 if names_ptr ^= null () then free names in (sci_parent_area); 690 if entries_ptr ^= null () then free entries in (sci_parent_area); 691 end; 692 693 topic_ename = "**.info"; 694 gi_topic_ename = rtrim (subsys_name) || ".gi.info"; 695 696 call hcs_$star_ (P_dname, topic_ename, 11b, addr (sci_parent_area), entries_count, entries_ptr, names_ptr, code) 697 ; 698 if code ^= 0 then /* let our caller figure out that nothing got listed */ 699 return; 700 701 n_topics = 0; /* count number of entries */ 702 703 do idx = 1 to entries_count; 704 n_names = 0; 705 706 if ^P_select_sw then do; /* skip SUBSYS.gi.info by default */ 707 do jdx = 1 to entries (idx).n_names; 708 if names (entries (idx).name_idx + jdx - 1) = gi_topic_ename then goto SKIP_THIS_TOPIC; 709 end; 710 end; 711 712 do jdx = 1 to entries (idx).n_names; 713 topic_name = get_topic_name (names (entries (idx).name_idx + jdx - 1)); 714 715 if topic_name = "" then /* punt if this is not a valid topic name */ 716 goto SKIP_TO_NEXT_NAME; 717 718 if P_select_sw then do; /* see if it matches anything */ 719 topic_name = translate (topic_name, UPPERCASE, LOWERCASE); 720 do kdx = 1 to hbound (P_topics, 1); 721 pos = index (topic_name, P_topics (kdx)); 722 match = "0"b; 723 if pos ^= 0 then 724 if pos = 1 then match = "1"b; 725 else if pos = length (topic_name) - length (P_topics (kdx)) + 1 then match = "1"b; 726 else if index (DELIMITERS, substr (topic_name, pos - 1, 1)) ^= 0 then match = "1"b; 727 else if index (DELIMITERS, substr (topic_name, pos + length (P_topics (kdx)), 1)) ^= 0 728 then match = "1"b; 729 if match then do; /* matches: print the real name */ 730 topic_name = get_topic_name (names (entries (idx).name_idx + jdx - 1)); 731 call add_topic_name (); 732 goto SKIP_TO_NEXT_NAME; 733 end; 734 end; 735 end; 736 737 else call add_topic_name (); /* just output all the names */ 738 739 SKIP_TO_NEXT_NAME: 740 end; 741 742 if n_names = 1 then /* finish the output process */ 743 call ioa_ (""); 744 else if n_names > 1 then call ioa_ (")"); 745 746 SKIP_THIS_TOPIC: 747 end; /* of first loop through names */ 748 749 total_topics = total_topics + n_topics; /* update the total count */ 750 751 if names_ptr ^= null () then free names in (sci_parent_area); 752 if entries_ptr ^= null () then free entries in (sci_parent_area); 753 754 return; 755 756 /* */ 757 758 /* Internal to list_topics: output a single, matching topic name */ 759 760 add_topic_name: 761 procedure (); 762 763 if n_names = 0 then /* increment topic count when we output first name */ 764 n_topics = n_topics + 1; 765 766 if (n_names = 0) & (n_topics = 1) & (total_topics = 0) then 767 /* print heading first time through */ 768 call ioa_ ("Topics available for ^a:^/", subsys_name); 769 770 if n_names = 0 then /* output first topic name */ 771 call ioa_$nnl ("^a", topic_name); 772 773 else if n_names = 1 then call ioa_$nnl ("^x(^a", topic_name); 774 775 else call ioa_$nnl (",^x^a", topic_name); 776 777 n_names = n_names + 1; 778 779 return; 780 781 end add_topic_name; 782 783 /* */ 784 785 get_topic_name: 786 procedure (P_ename) returns (character (32) varying); 787 788 dcl P_ename character (32) aligned; 789 dcl (idx, jdx) fixed binary; 790 791 if sci.info_prefix ^= "" then do; /* check for the prefix */ 792 idx = length (rtrim (sci.info_prefix)); /* prepare to strip off prefix and .info suffix */ 793 if substr (P_ename, 1, idx) ^= rtrim (sci.info_prefix) then return (""); 794 idx = idx + 1; /* room for the "." */ 795 if substr (P_ename, idx, 1) ^= "." then return (""); 796 end; 797 else idx = 0; 798 799 jdx = length (rtrim (P_ename)); 800 jdx = jdx - 5; /* length of ".info" */ 801 if jdx < (idx + 1) then /* no room? */ 802 return (""); 803 if substr (P_ename, jdx + 1, 5) ^= ".info" then return (""); 804 jdx = jdx - idx; 805 806 return (substr (P_ename, idx + 1, jdx)); 807 808 end get_topic_name; 809 810 end list_topics; 811 812 /* */ 813 1 1 /* BEGIN: _ssu_check_sci.incl.pl1 * * * * * */ 1 2 1 3 /* Created: 25 February 1982 by G. Palter */ 1 4 /* Modified: 6 November 1984 by G. Palter for version 3 and new sub_err_ 1 5* calling sequence */ 1 6 1 7 1 8 /****^ HISTORY COMMENTS: 1 9* 1) change(87-02-07,GDixon), approve(87-05-25,MCR7680), 1 10* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 1 11* Modified to verify that p_sci_ptr has proper its modifier by overlaying it 1 12* with the structure in its.incl.pl1, rather than assuming knowledge of 1 13* pointer format. 1 14* END HISTORY COMMENTS */ 1 15 1 16 1 17 /* format: style4,delnl,insnl,ifthenstmt,ifthen */ 1 18 1 19 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 20 /* */ 1 21 /* Validates that the caller's sci_ptr acutally references a valid */ 1 22 /* subsystem control info structure. */ 1 23 /* */ 1 24 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 25 1 26 ssu_check_sci: 1 27 procedure (p_sci_ptr); 1 28 1 29 dcl p_sci_ptr pointer parameter; 1 30 1 31 dcl SSU_ character (32) static options (constant) initial ("ssu_"); 1 32 1 33 dcl error_table_$bad_ptr fixed binary (35) external; 1 34 dcl error_table_$null_info_ptr fixed binary (35) external; 1 35 dcl error_table_$unimplemented_version fixed binary (35) external; 1 36 1 37 dcl sub_err_ entry () options (variable); 1 38 1 39 dcl (null, substr, unspec) builtin; 1 40 1 41 if addr(p_sci_ptr) -> its.its_mod ^= ITS_MODIFIER then do; 1 42 RESIGNAL_BAD_POINTER: 1 43 call sub_err_ (error_table_$bad_ptr, SSU_, ACTION_CANT_RESTART, null (), (0), "^24.3b", unspec (p_sci_ptr)); 1 44 go to RESIGNAL_BAD_POINTER; 1 45 end; 1 46 1 47 if p_sci_ptr = null () then do; 1 48 RESIGNAL_NULL_POINTER: 1 49 call sub_err_ (error_table_$null_info_ptr, SSU_, ACTION_CANT_RESTART, null (), (0), "sci_ptr"); 1 50 go to RESIGNAL_NULL_POINTER; 1 51 end; 1 52 1 53 if p_sci_ptr -> sci.version = SCI_VERSION_3 then /* all is well */ 1 54 return; 1 55 1 56 RESIGNAL_BAD_VERSION: 1 57 call sub_err_ (error_table_$unimplemented_version, SSU_, ACTION_CANT_RESTART, null (), (0), "^24.3b", 1 58 unspec (p_sci_ptr -> sci.version)); 1 59 go to RESIGNAL_BAD_VERSION; 1 60 2 1 /* BEGIN INCLUDE FILE its.incl.pl1 2 2* modified 27 July 79 by JRDavis to add its_unsigned 2 3* Internal format of ITS pointer, including ring-number field for follow-on processor */ 2 4 2 5 dcl 1 its based aligned, /* declaration for ITS type pointer */ 2 6 2 pad1 bit (3) unaligned, 2 7 2 segno bit (15) unaligned, /* segment number within the pointer */ 2 8 2 ringno bit (3) unaligned, /* ring number within the pointer */ 2 9 2 pad2 bit (9) unaligned, 2 10 2 its_mod bit (6) unaligned, /* should be 43(8) */ 2 11 2 12 2 offset bit (18) unaligned, /* word offset within the addressed segment */ 2 13 2 pad3 bit (3) unaligned, 2 14 2 bit_offset bit (6) unaligned, /* bit offset within the word */ 2 15 2 pad4 bit (3) unaligned, 2 16 2 mod bit (6) unaligned; /* further modification */ 2 17 2 18 dcl 1 itp based aligned, /* declaration for ITP type pointer */ 2 19 2 pr_no bit (3) unaligned, /* number of pointer register to use */ 2 20 2 pad1 bit (27) unaligned, 2 21 2 itp_mod bit (6) unaligned, /* should be 41(8) */ 2 22 2 23 2 offset bit (18) unaligned, /* word offset from pointer register word offset */ 2 24 2 pad2 bit (3) unaligned, 2 25 2 bit_offset bit (6) unaligned, /* bit offset relative to new word offset */ 2 26 2 pad3 bit (3) unaligned, 2 27 2 mod bit (6) unaligned; /* further modification */ 2 28 2 29 2 30 dcl 1 its_unsigned based aligned, /* just like its, but with unsigned binary */ 2 31 2 pad1 bit (3) unaligned, 2 32 2 segno fixed bin (15) unsigned unaligned, 2 33 2 ringno fixed bin (3) unsigned unaligned, 2 34 2 pad2 bit (9) unaligned, 2 35 2 its_mod bit (6) unaligned, 2 36 2 37 2 offset fixed bin (18) unsigned unaligned, 2 38 2 pad3 bit (3) unaligned, 2 39 2 bit_offset fixed bin (6) unsigned unaligned, 2 40 2 pad4 bit (3) unaligned, 2 41 2 mod bit (6) unaligned; 2 42 2 43 dcl 1 itp_unsigned based aligned, /* just like itp, but with unsigned binary where appropriate */ 2 44 2 pr_no fixed bin (3) unsigned unaligned, 2 45 2 pad1 bit (27) unaligned, 2 46 2 itp_mod bit (6) unaligned, 2 47 2 48 2 offset fixed bin (18) unsigned unaligned, 2 49 2 pad2 bit (3) unaligned, 2 50 2 bit_offset fixed bin (6) unsigned unaligned, 2 51 2 pad3 bit (3) unaligned, 2 52 2 mod bit (6) unaligned; 2 53 2 54 2 55 dcl ITS_MODIFIER bit (6) unaligned internal static options (constant) init ("43"b3); 2 56 dcl ITP_MODIFIER bit (6) unaligned internal static options (constant) init ("41"b3); 2 57 2 58 /* END INCLUDE FILE its.incl.pl1 */ 1 61 1 62 3 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 3 2 /* format: style3 */ 3 3 3 4 /* These constants are to be used for the flags argument of sub_err_ */ 3 5 /* They are just "string (condition_info_header.action_flags)" */ 3 6 3 7 declare ( 3 8 ACTION_CAN_RESTART init (""b), 3 9 ACTION_CANT_RESTART init ("1"b), 3 10 ACTION_DEFAULT_RESTART 3 11 init ("01"b), 3 12 ACTION_QUIET_RESTART 3 13 init ("001"b), 3 14 ACTION_SUPPORT_SIGNAL 3 15 init ("0001"b) 3 16 ) bit (36) aligned internal static options (constant); 3 17 3 18 /* End include file */ 1 63 1 64 1 65 end ssu_check_sci; 1 66 1 67 1 68 /* END OF: _ssu_check_sci.incl.pl1 * * * * * */ 814 815 4 1 /* BEGIN INCLUDE FILE ... _ssu_sci.incl.pl1 */ 4 2 /* Created: 31 April 1980 by W. Olin Sibert */ 4 3 /* Modified: 17 November 1981 by Jay Pattin to add info_prefix */ 4 4 /* Modified: 10 December 1981 by G. Palter to make arg_count, arg_ptr, return_arg, and arg_list_ptr replaceable */ 4 5 /* Modified: 10 February 1982 by G. Palter to reorganize and make changes required for installation */ 4 6 /* Modified: June 1982 by G. Palter for version 2 (new request processor options and replaceable procedures) */ 4 7 /* Modified: 6 November 1984 by G. Palter for version 3 (get_subsystem_and_request_name is now replaceable) */ 4 8 4 9 /* format: style4,^delnl */ 4 10 4 11 4 12 /* Structure used internally by subsystem utilities to contain control information about a single invocation */ 4 13 4 14 dcl 1 sci aligned based (sci_ptr), 4 15 2 version character (8), 4 16 2 parent_area_ptr pointer, /* -> area holding this data and referenced structures */ 4 17 4 18 2 global_info, /* global information about this subsystem ... */ 4 19 3 subsystem_name char (32) unaligned, /* ... its name (eg: read_mail) */ 4 20 3 subsystem_version char (32) unaligned, /* ... its version numer (eg: 4.3j) */ 4 21 3 info_ptr pointer, /* ... -> data maintained by the subsystem */ 4 22 3 standalone_abort_entry entry () variable, /* ... for standalone invocations: called by ssu_$abort_* */ 4 23 3 flags, 4 24 4 standalone_invocation bit (1) unaligned, /* ... ON => ssu_$standalone_invocation was used */ 4 25 4 in_listener bit (1) unaligned, /* ... ON => in subsystem listener loop */ 4 26 4 executing_request bit (1) unaligned, /* ... ON => executing a request */ 4 27 4 debug_mode bit (1) unaligned, /* ... ON => debugging the subsystem */ 4 28 4 pad bit (32) unaligned, 4 29 4 30 2 recursion_info, /* describes relationship of this invocation to other active 4 31* invocations of the same subsystem ... */ 4 32 3 invocation_data_idx fixed binary, /* ... locates the list of active invocations */ 4 33 3 level fixed binary, /* ... # of active invocations when this one created + 1 */ 4 34 3 previous_sci_ptr pointer, /* ... -> description of previous invocation */ 4 35 3 next_sci_ptr pointer, /* ... -> description of next invocation */ 4 36 4 37 2 request_processor_info, /* information related to request line processing ... */ 4 38 3 request_tables_ptr pointer, /* ... -> list of request tables in use */ 4 39 3 rp_options_ptr pointer, /* ... -> options controlling the processor */ 4 40 3 abort_line_label label variable, 4 41 3 request_data_ptr pointer, /* ... -> request_data structure for current request */ 4 42 4 43 2 prompt_and_ready_info, /* information related to prompts and ready messages ... */ 4 44 3 prompt character (64) varying, /* the prompt (if any): an ioa_ control string */ 4 45 3 prompt_mode, /* controls prompting ... */ 4 46 4 dont_prompt bit (1) unaligned, /* ... ON => never prompt */ 4 47 4 prompt_after_null_lines bit (1) unaligned, /* ... ON => prompt after a blank line if prompts enabled */ 4 48 4 dont_prompt_if_typeahead bit (1) unaligned, /* ... ON => suppress prompts if request line available */ 4 49 4 pad bit (33) unaligned, 4 50 3 ready_enabled bit (1) aligned, /* ... ON => ready procedure should be invoked */ 4 51 4 52 2 listener_info, /* information used by the listener ... */ 4 53 3 abort_subsystem_label label variable, 4 54 3 temp_seg_ptr pointer, /* ... -> temporary segment used for long request lines */ 4 55 4 56 2 temp_info_ptr pointer, /* pointer to data used by ssu_temp_mgr_ */ 4 57 4 58 2 info_info, /* information related to self-documentation ... */ 4 59 3 info_dirs_ptr pointer, /* ... -> list of info directories */ 4 60 3 info_prefix character (32), /* ... prefix used to form info segment names */ 4 61 4 62 2 ec_info, /* data for subsystem exec_com processing ... */ 4 63 3 ec_suffix char (32) unaligned, /* ... suffix of exec_com segments */ 4 64 3 ec_search_list char (32) unaligned, /* ... search list used to find exec_coms */ 4 65 3 subsystem_dir_ptr pointer, /* ... defines referencing_dir rule for above search list */ 4 66 4 67 2 entries, /* all replaceable entries ... */ 4 68 ( 4 69 3 abort_line, /* ... invoked by ssu_$abort_line */ 4 70 3 abort_subsystem, /* ... invoked by ssu_$abort_subsystem */ 4 71 3 print_message, /* ... invoked by ssu_$print_message */ 4 72 3 program_interrupt, /* ... cannot be called externally */ 4 73 3 pre_request_line, /* ... cannot be called externally */ 4 74 3 post_request_line, /* ... cannot be called externally */ 4 75 3 ready, /* ... invoked by ssu_$ready_proc */ 4 76 3 cpescape, /* ... cannot be called externally */ 4 77 3 unknown_request, /* ... invoked by ssu_$unknown_request */ 4 78 3 listen, /* ... invoked by ssu_$listen */ 4 79 3 execute_line, /* ... invoked by ssu_$execute_line */ 4 80 3 evaluate_active_string, /* ... invoked by ssu_$evaluate_active_string */ 4 81 3 invoke_request, /* ... invoked by ssu_$invoke_request */ 4 82 3 locate_request, /* ... invoked by ssu_$locate_request */ 4 83 3 arg_count, /* ... invoked by ssu_$arg_count */ 4 84 3 arg_ptr, /* ... invoked by ssu_$arg_ptr */ 4 85 3 return_arg, /* ... invoked by ssu_$return_arg */ 4 86 3 arg_list_ptr, /* ... invoked by ssu_$arg_list_ptr */ 4 87 3 get_default_rp_options, /* ... invoked by ssu_$get_default_rp_options */ 4 88 3 get_rp_options, /* ... invoked by ssu_$get_request_processor_options */ 4 89 3 set_rp_options, /* ... invoked by ssu_$set_request_processor_options */ 4 90 3 reset_rp_options, /* ... invoked by ssu_$reset_request_processor_options */ 4 91 3 get_subsys_and_request_name /* ... invoked by ssu_$get_subsystem_and_request_name */ 4 92 ) entry () variable options (variable); 4 93 4 94 dcl sci_ptr pointer; 4 95 4 96 dcl sci_parent_area area based (sci.parent_area_ptr); 4 97 4 98 dcl SCI_VERSION_3 character (8) static options (constant) init ("sci_0003"); 4 99 4 100 /* END INCLUDE FILE ... _ssu_sci.incl.pl1 */ 816 817 5 1 /* BEGIN INCLUDE FILE ... ssu_info_dirs_list.incl.pl1 */ 5 2 /* Created: 8 December 1981 by G. Palter */ 5 3 5 4 /* The list of info directories in use by a subsystem invocation */ 5 5 5 6 5 7 dcl 1 info_dirs_list aligned based (idl_ptr), 5 8 2 header, 5 9 3 version fixed binary, /* version of this structure */ 5 10 3 n_info_dirs fixed binary, /* # of info directories in the list */ 5 11 2 info_dirs (info_dirs_list_n_info_dirs refer (info_dirs_list.n_info_dirs)), 5 12 3 info_dirname character (168) unaligned, /* absolute pathname of this directory */ 5 13 3 uid bit (36), /* file system unique ID of the directory */ 5 14 3 flags, 5 15 4 info_dir_valid bit (1) unaligned, /* "1"b => this info directory is valid */ 5 16 4 pad bit (35) unaligned; 5 17 5 18 dcl idl_ptr pointer; 5 19 5 20 dcl info_dirs_list_n_info_dirs fixed binary; /* for allocating the above structure */ 5 21 5 22 dcl INFO_DIRS_LIST_VERSION_1 fixed binary static options (constant) initial (1); 5 23 5 24 /* END INCLUDE FILE ... ssu_info_dirs_list.incl.pl1 */ 818 819 6 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 6 2* 6 3* James R. Davis 1 Mar 79 */ 6 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 6 5 6 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 6 7 2 flag bit (1) unal, 6 8 2 type fixed bin (6) unsigned unal, 6 9 2 packed bit (1) unal, 6 10 2 number_dims fixed bin (4) unsigned unal, 6 11 2 size fixed bin (24) unsigned unal; 6 12 6 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 6 14 2 flag bit (1) unal, 6 15 2 type fixed bin (6) unsigned unal, 6 16 2 packed bit (1) unal, 6 17 2 number_dims fixed bin (4) unsigned unal, 6 18 2 scale fixed bin (11) unal, 6 19 2 precision fixed bin (12) unsigned unal; 6 20 6 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 6 22 2 flag bit (1) unal, /* = "1"b */ 6 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 6 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 6 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 6 26 2 size bit (24) unal, 6 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 6 28 3 low fixed bin (35), 6 29 3 high fixed bin (35), 6 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 6 31 2 real_type fixed bin (18) unsigned unal, 6 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 6 33 6 34 dcl arg_descriptor_ptr ptr; 6 35 6 36 dcl extended_arg_type fixed bin init (58); 6 37 6 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 820 821 7 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 7 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 7 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 7 8* Objects of this type are PASCAL string types. 7 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 7 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 7 11* Added the new C types. 7 12* END HISTORY COMMENTS */ 7 13 7 14 /* This include file defines mnemonic names for the Multics 7 15* standard descriptor types, using both pl1 and cobol terminology. 7 16* PG 780613 7 17* JRD 790530 7 18* JRD 791016 7 19* MBW 810731 7 20* TGO 830614 Add hex types. 7 21* Modified June 83 JMAthane to add PASCAL data types 7 22* TGO 840120 Add float dec extended and generic, float binary generic 7 23**/ 7 24 7 25 dcl (real_fix_bin_1_dtype init (1), 7 26 real_fix_bin_2_dtype init (2), 7 27 real_flt_bin_1_dtype init (3), 7 28 real_flt_bin_2_dtype init (4), 7 29 cplx_fix_bin_1_dtype init (5), 7 30 cplx_fix_bin_2_dtype init (6), 7 31 cplx_flt_bin_1_dtype init (7), 7 32 cplx_flt_bin_2_dtype init (8), 7 33 real_fix_dec_9bit_ls_dtype init (9), 7 34 real_flt_dec_9bit_dtype init (10), 7 35 cplx_fix_dec_9bit_ls_dtype init (11), 7 36 cplx_flt_dec_9bit_dtype init (12), 7 37 pointer_dtype init (13), 7 38 offset_dtype init (14), 7 39 label_dtype init (15), 7 40 entry_dtype init (16), 7 41 structure_dtype init (17), 7 42 area_dtype init (18), 7 43 bit_dtype init (19), 7 44 varying_bit_dtype init (20), 7 45 char_dtype init (21), 7 46 varying_char_dtype init (22), 7 47 file_dtype init (23), 7 48 real_fix_dec_9bit_ls_overp_dtype init (29), 7 49 real_fix_dec_9bit_ts_overp_dtype init (30), 7 50 real_fix_bin_1_uns_dtype init (33), 7 51 real_fix_bin_2_uns_dtype init (34), 7 52 real_fix_dec_9bit_uns_dtype init (35), 7 53 real_fix_dec_9bit_ts_dtype init (36), 7 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 7 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 7 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 7 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 7 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 7 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 7 60 real_flt_dec_4bit_bytealigned_dtype init (44), 7 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 7 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 7 63 real_flt_hex_1_dtype init (47), 7 64 real_flt_hex_2_dtype init (48), 7 65 cplx_flt_hex_1_dtype init (49), 7 66 cplx_flt_hex_2_dtype init (50), 7 67 c_typeref_dtype init (54), 7 68 c_enum_dtype init (55), 7 69 c_enum_const_dtype init (56), 7 70 c_union_dtype init (57), 7 71 algol68_straight_dtype init (59), 7 72 algol68_format_dtype init (60), 7 73 algol68_array_descriptor_dtype init (61), 7 74 algol68_union_dtype init (62), 7 75 7 76 cobol_comp_6_dtype init (1), 7 77 cobol_comp_7_dtype init (1), 7 78 cobol_display_ls_dtype init (9), 7 79 cobol_structure_dtype init (17), 7 80 cobol_char_string_dtype init (21), 7 81 cobol_display_ls_overp_dtype init (29), 7 82 cobol_display_ts_overp_dtype init (30), 7 83 cobol_display_uns_dtype init (35), 7 84 cobol_display_ts_dtype init (36), 7 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 7 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 7 87 cobol_comp_5_uns_dtype init (40), 7 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 7 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 7 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 7 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 7 92 cplx_flt_dec_generic_dtype init (84), 7 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 7 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 7 95 7 96 dcl (ft_integer_dtype init (1), 7 97 ft_real_dtype init (3), 7 98 ft_double_dtype init (4), 7 99 ft_complex_dtype init (7), 7 100 ft_complex_double_dtype init (8), 7 101 ft_external_dtype init (16), 7 102 ft_logical_dtype init (19), 7 103 ft_char_dtype init (21), 7 104 ft_hex_real_dtype init (47), 7 105 ft_hex_double_dtype init (48), 7 106 ft_hex_complex_dtype init (49), 7 107 ft_hex_complex_double_dtype init (50) 7 108 ) fixed bin internal static options (constant); 7 109 7 110 dcl (algol68_short_int_dtype init (1), 7 111 algol68_int_dtype init (1), 7 112 algol68_long_int_dtype init (2), 7 113 algol68_real_dtype init (3), 7 114 algol68_long_real_dtype init (4), 7 115 algol68_compl_dtype init (7), 7 116 algol68_long_compl_dtype init (8), 7 117 algol68_bits_dtype init (19), 7 118 algol68_bool_dtype init (19), 7 119 algol68_char_dtype init (21), 7 120 algol68_byte_dtype init (21), 7 121 algol68_struct_struct_char_dtype init (22), 7 122 algol68_struct_struct_bool_dtype init (20) 7 123 ) fixed bin internal static options (constant); 7 124 7 125 dcl (label_constant_runtime_dtype init (24), 7 126 int_entry_runtime_dtype init (25), 7 127 ext_entry_runtime_dtype init (26), 7 128 ext_procedure_runtime_dtype init (27), 7 129 picture_runtime_dtype init (63) 7 130 ) fixed bin internal static options (constant); 7 131 7 132 dcl (pascal_integer_dtype init (1), 7 133 pascal_real_dtype init (4), 7 134 pascal_label_dtype init (24), 7 135 pascal_internal_procedure_dtype init (25), 7 136 pascal_exportable_procedure_dtype init (26), 7 137 pascal_imported_procedure_dtype init (27), 7 138 pascal_typed_pointer_type_dtype init (64), 7 139 pascal_char_dtype init (65), 7 140 pascal_boolean_dtype init (66), 7 141 pascal_record_file_type_dtype init (67), 7 142 pascal_record_type_dtype init (68), 7 143 pascal_set_dtype init (69), 7 144 pascal_enumerated_type_dtype init (70), 7 145 pascal_enumerated_type_element_dtype init (71), 7 146 pascal_enumerated_type_instance_dtype init (72), 7 147 pascal_user_defined_type_dtype init (73), 7 148 pascal_user_defined_type_instance_dtype init (74), 7 149 pascal_text_file_dtype init (75), 7 150 pascal_procedure_type_dtype init (76), 7 151 pascal_variable_formal_parameter_dtype init (77), 7 152 pascal_value_formal_parameter_dtype init (78), 7 153 pascal_entry_formal_parameter_dtype init (79), 7 154 pascal_parameter_procedure_dtype init (80), 7 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 7 156 7 157 7 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 822 823 8 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 8 2 8 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 8 4 8 5 /* This include file contains branch and link structures returned by 8 6* hcs_$status_ and hcs_$status_long. */ 8 7 8 8 dcl 1 status_branch aligned based (status_ptr), 8 9 2 short aligned, 8 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 8 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 8 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 8 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 8 14 3 dtu bit (36) unaligned, /* date/time last used */ 8 15 3 mode bit (5) unaligned, /* caller's effective access */ 8 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 8 17 3 pad1 bit (8) unaligned, 8 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 8 19 8 20 /* Limit of information returned by hcs_$status_ */ 8 21 8 22 2 long aligned, 8 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 8 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 8 25 3 lvid bit (36) unaligned, /* logical volume ID */ 8 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 8 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 8 28 3 pad2 bit (8) unaligned, 8 29 3 copy_switch bit (1) unaligned, /* copy switch */ 8 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 8 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 8 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 8 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 8 34 3 pad3 bit (5) unaligned, 8 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 8 36 3 uid bit (36) unaligned; /* unique ID */ 8 37 8 38 dcl 1 status_link aligned based (status_ptr), 8 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 8 40 2 nnames fixed bin (16) unaligned unsigned, 8 41 2 names_relp bit (18) unaligned, 8 42 2 dtem bit (36) unaligned, 8 43 2 dtd bit (36) unaligned, 8 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 8 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 8 46 8 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 8 48 based (pointer (status_area_ptr, status_branch.names_relp)), 8 49 /* array of names returned */ 8 50 status_pathname character (status_link.pathname_length) aligned 8 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 8 52 /* link target path */ 8 53 status_area_ptr pointer, 8 54 status_ptr pointer; 8 55 8 56 dcl (Link initial (0), 8 57 Segment initial (1), 8 58 Directory initial (2)) fixed bin internal static options (constant); 8 59 /* values for type fields declared above */ 8 60 8 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 824 825 826 end ssu_info_mgr_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.0 ssu_info_mgr_.pl1 >special_ldd>install>MR12.2-1184>ssu_info_mgr_.pl1 814 1 08/06/87 0913.4 _ssu_check_sci.incl.pl1 >ldd>include>_ssu_check_sci.incl.pl1 1-61 2 11/26/79 1320.6 its.incl.pl1 >ldd>include>its.incl.pl1 1-63 3 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 816 4 01/21/85 0912.2 _ssu_sci.incl.pl1 >ldd>include>_ssu_sci.incl.pl1 818 5 04/13/82 1620.2 ssu_info_dirs_list.incl.pl1 >ldd>include>ssu_info_dirs_list.incl.pl1 820 6 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 822 7 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 824 8 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.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. ACTION_CANT_RESTART 000071 constant bit(36) initial dcl 3-7 set ref 1-42* 1-48* 1-56* AP_topic parameter char packed unaligned dcl 544 set ref 541 547* CHASE 000100 constant fixed bin(1,0) initial dcl 101 set ref 407* DELIMITERS 000030 constant char(5) initial packed unaligned dcl 104 ref 726 727 Directory constant fixed bin(17,0) initial dcl 8-56 ref 410 INFO_DIRS_LIST_VERSION_1 constant fixed bin(17,0) initial dcl 5-22 ref 299 319 343 ITS_MODIFIER constant bit(6) initial packed unaligned dcl 2-55 ref 1-41 LOWERCASE 000012 constant char(26) initial packed unaligned dcl 107 ref 519 719 P_callers_area_ptr parameter pointer dcl 52 ref 296 307 P_code parameter fixed bin(35,0) dcl 558 in procedure "find_info_file" set ref 576 579* 586* 600* 621* 629* 644* P_code parameter fixed bin(35,0) dcl 44 in procedure "ssu_info_mgr_" set ref 209 215* 219* 259 285* 288* 296 300* 311* 326* 335 344* 358* 384* P_dname parameter char packed unaligned dcl 662 set ref 659 696* P_ename parameter char(32) dcl 788 ref 785 793 795 799 803 806 P_idl_ptr parameter pointer dcl 51 set ref 296 325* 335 341 P_info_dirname parameter char packed unaligned dcl 48 set ref 209 217* 259 266* P_info_dirs_list_version parameter fixed bin(17,0) dcl 53 ref 296 299 P_info_prefix parameter char(32) packed unaligned dcl 46 ref 154 159 P_info_ptr parameter pointer dcl 55 ref 429 493 P_path parameter varying char dcl 557 set ref 553 576 637* 638* 638 639* 639 P_position parameter fixed bin(17,0) dcl 49 ref 209 238 240 241 P_sci_ptr parameter pointer dcl 43 set ref 154 157* 159 167 170* 172 178 181 194 197 209 212* 214 259 262* 264 296 304* 306 335 338* 340 429 432 493 496 541 546 P_select_sw parameter bit(1) dcl 663 ref 659 706 718 P_topic parameter char packed unaligned dcl 556 set ref 553 576 583 589* 591 591 591 591 591 594 595 603* 632* P_topics parameter varying char array dcl 664 ref 659 720 721 725 727 SCI_VERSION_3 000010 constant char(8) initial packed unaligned dcl 4-98 ref 1-53 SSU_ 000000 constant char(32) initial packed unaligned dcl 1-31 set ref 1-42* 1-48* 1-56* UPPERCASE 000021 constant char(26) initial packed unaligned dcl 107 ref 519 719 addr builtin function dcl 148 ref 407 407 696 696 1-41 al 000162 automatic fixed bin(21,0) dcl 84 set ref 514* 516 516 516 519 ap 000164 automatic pointer dcl 85 set ref 514* 516 516 519 area 000366 stack reference condition dcl 146 ref 309 arg based char packed unaligned dcl 83 set ref 516 516* 519 branch_status 000430 automatic structure level 1 dcl 400 set ref 407 407 callers_area based area(1024) dcl 77 ref 317 callers_area_ptr 000160 automatic pointer dcl 78 set ref 307* 317 char builtin function dcl 148 ref 516 cleanup 000000 stack reference condition dcl 146 ref 687 code 000104 automatic fixed bin(35,0) dcl 71 in procedure "ssu_info_mgr_" set ref 217* 218 219 266* 270 355* 357 358 code 000643 automatic fixed bin(35,0) dcl 567 in procedure "find_info_file" set ref 617* 619 619 621 624* code 000144 automatic fixed bin(35,0) dcl 681 in procedure "list_topics" set ref 696* 698 code1 000357 automatic fixed bin(35,0) dcl 96 set ref 442* 443 445* 447 451* 452 453* 454 455* 456 459 code2 000360 automatic fixed bin(35,0) dcl 96 set ref 439* 440 456 459 461 dirname 000442 automatic char(168) packed unaligned dcl 401 set ref 404* 407* 416* dirs 2 based structure array level 2 dcl 60 set ref 232* 232 246* 246 282* 282 322 376* ename 000533 automatic varying char(32) dcl 561 in procedure "find_info_file" set ref 597 605* 607 607 609* 609 610* 610 612 ename 000514 automatic char(32) packed unaligned dcl 402 in procedure "validate_info_dir" set ref 404* 407* 416* entries based structure array level 1 dcl 666 ref 690 752 entries_count 000102 automatic fixed bin(17,0) dcl 671 set ref 690 696* 703 752 entries_ptr 000100 automatic pointer dcl 670 set ref 685* 690 690 696* 707 708 712 713 730 752 752 error_table_$bad_ptr 000076 external static fixed bin(35,0) dcl 1-33 set ref 1-42* error_table_$badopt 000010 external static fixed bin(35,0) dcl 112 set ref 516* error_table_$entlong 000012 external static fixed bin(35,0) dcl 112 set ref 600 603* error_table_$no_dir 000014 external static fixed bin(35,0) dcl 112 ref 619 error_table_$noalloc 000016 external static fixed bin(35,0) dcl 112 ref 311 error_table_$noentry 000020 external static fixed bin(35,0) dcl 112 ref 288 619 629 error_table_$nostars 000024 external static fixed bin(35,0) dcl 112 set ref 586 589* error_table_$notadir 000022 external static fixed bin(35,0) dcl 112 ref 411 error_table_$null_info_ptr 000100 external static fixed bin(35,0) dcl 1-34 set ref 1-48* error_table_$unimplemented_version 000102 external static fixed bin(35,0) dcl 1-35 in procedure "ssu_check_sci" set ref 1-56* error_table_$unimplemented_version 000026 external static fixed bin(35,0) dcl 112 in procedure "ssu_info_mgr_" ref 300 344 error_table_$zero_length_seg 000030 external static fixed bin(35,0) dcl 112 set ref 644 648* expand_pathname_ 000032 constant entry external dcl 124 ref 404 extended_arg_type 000401 automatic fixed bin(17,0) initial dcl 6-36 set ref 6-36* flags 55 based structure array level 3 in structure "info_dirs_list" dcl 5-7 in procedure "ssu_info_mgr_" flags 55 based structure array level 3 in structure "info_dirs" dcl 60 in procedure "ssu_info_mgr_" found_bad_dirname 000171 automatic bit(1) dcl 90 set ref 351* 358 359* 364 gi_topic_ename 000130 automatic char(32) packed unaligned dcl 679 set ref 694* 708 hbound builtin function dcl 148 ref 720 hcs_$initiate_count 000034 constant entry external dcl 125 ref 617 hcs_$star_ 000040 constant entry external dcl 127 ref 696 hcs_$status_long 000042 constant entry external dcl 128 ref 407 hcs_$terminate_noname 000036 constant entry external dcl 126 ref 634 header based structure level 2 dcl 5-7 help$ssu_help_request 000044 constant entry external dcl 129 ref 466 help_request_name 000213 automatic char(32) packed unaligned dcl 93 set ref 439* 447* 456* 459* 461* idl_ptr 000376 automatic pointer dcl 5-18 set ref 317* 319 322 325 341* 343 353 354 355 355 355 360 369 373 376 idx 000361 automatic fixed bin(17,0) dcl 97 in procedure "ssu_info_mgr_" set ref 231* 232 232* 245* 246 246* 270* 272* 275* 277* 281 321* 322 322* 353* 354 355 355 355 360* 375* 376 376* 478* 479 480* 513* 514* 524* 525 526* idx 000232 automatic fixed bin(17,0) dcl 789 in procedure "get_topic_name" set ref 792* 793 794* 794 795 797* 801 804 806 idx 000141 automatic fixed bin(17,0) dcl 680 in procedure "list_topics" set ref 703* 707 708 712 713 730* idx 000644 automatic fixed bin(35,0) dcl 568 in procedure "find_info_file" set ref 614* 615 616* index builtin function dcl 148 ref 721 726 727 info_bc 000642 automatic fixed bin(24,0) dcl 566 set ref 617* 636 info_dir_valid 55 based bit(1) array level 4 in structure "info_dirs_list" packed packed unaligned dcl 5-7 in procedure "ssu_info_mgr_" set ref 354* 360* info_dir_valid 55 based bit(1) array level 4 in structure "info_dirs" packed packed unaligned dcl 60 in procedure "ssu_info_mgr_" set ref 250* 479 525 615 info_dirname 2 based char(168) array level 3 in structure "info_dirs" packed packed unaligned dcl 60 in procedure "ssu_info_mgr_" set ref 249* 277 480* 526* 616 info_dirname 000105 automatic char(168) packed unaligned dcl 73 in procedure "ssu_info_mgr_" set ref 217* 249 266* 277 info_dirname 2 based char(168) array level 3 in structure "info_dirs_list" packed packed unaligned dcl 5-7 in procedure "ssu_info_mgr_" set ref 355* 355* info_dirname 000555 automatic char(168) packed unaligned dcl 563 in procedure "find_info_file" set ref 616* 617* 624* 637 648* info_dirs based structure level 1 dcl 60 in procedure "ssu_info_mgr_" set ref 184 199 229 234 371 379 info_dirs 2 based structure array level 2 in structure "info_dirs_list" dcl 5-7 in procedure "ssu_info_mgr_" set ref 322* 376 info_dirs_list based structure level 1 dcl 5-7 set ref 317 info_dirs_list_n_info_dirs 000400 automatic fixed bin(17,0) dcl 5-20 set ref 315* 317 317 info_dirs_n_allocated 000100 automatic fixed bin(17,0) dcl 65 set ref 183* 184 184 228* 229 229 369* 371 371 info_dirs_ptr 110 based pointer level 3 dcl 4-14 set ref 184* 186 199 199 201* 223 226 226 226 228 230 231 232 234 235* 238 238 243 243 245 246 246 249 250 251 270 272 275 277 281 282 282 284 284 315 321 322 379 379 382* 478 479 480 524 525 526 614 615 616 info_ename 000627 automatic char(32) packed unaligned dcl 564 set ref 612* 617* 624* 639 648* info_info 110 based structure level 2 dcl 4-14 info_name 000243 automatic varying char(300) dcl 95 set ref 547* 548 info_prefix 112 based char(32) level 3 dcl 4-14 set ref 159* 172 606 607 610 791 792 793 info_ptr 000640 automatic pointer dcl 565 set ref 617* 618 634* intro_topic 000233 automatic char(32) packed unaligned dcl 94 set ref 441* 442* 444* 445* 447* ioa_ 000046 constant entry external dcl 130 ref 447 452 454 456 459 461 742 744 766 ioa_$nnl 000050 constant entry external dcl 131 ref 770 773 775 its based structure level 1 dcl 2-5 its_mod 0(30) based bit(6) level 2 packed packed unaligned dcl 2-5 ref 1-41 jdx 000362 automatic fixed bin(17,0) dcl 97 in procedure "ssu_info_mgr_" set ref 281* 282 282* jdx 000233 automatic fixed bin(17,0) dcl 789 in procedure "get_topic_name" set ref 799* 800* 800 801 803 804* 804 806 jdx 000142 automatic fixed bin(17,0) dcl 680 in procedure "list_topics" set ref 707* 708* 712* 713 730* kdx 000143 automatic fixed bin(17,0) dcl 680 set ref 720* 721 725 727* length builtin function dcl 148 ref 591 591 591 597 597 607 607 725 725 727 792 799 lh_request_name 000223 automatic char(32) packed unaligned dcl 93 set ref 455* 456* long 4 000430 automatic structure level 2 dcl 400 match 000170 automatic bit(1) dcl 90 set ref 268* 270 272* 275 277* 280 722* 723* 725* 726* 727* 729 maxlength builtin function dcl 148 ref 597 607 n_allocated 1 based fixed bin(17,0) level 2 dcl 60 set ref 184* 199 226 226 228 229* 234 371* 379 n_info_dirs 1 based fixed bin(17,0) level 3 dcl 5-7 set ref 317* 353 369 373 n_names 0(02) based fixed bin(15,0) array level 2 in structure "entries" packed packed unaligned dcl 666 in procedure "list_topics" ref 707 712 n_names 000106 automatic fixed bin(17,0) dcl 676 in procedure "list_topics" set ref 704* 742 744 763 766 770 773 777* 777 n_topics 000140 automatic fixed bin(17,0) dcl 680 set ref 701* 749 763* 763 766 n_used based fixed bin(17,0) level 2 dcl 60 set ref 186* 226 230* 230 231 238 238 243* 243 245 270 275 281 284* 284 315 321 373* 375 478 524 614 name_idx 0(18) based fixed bin(17,0) array level 2 packed packed unaligned dcl 666 ref 708 713 730 names based char(32) array dcl 673 set ref 689 708 713* 730* 751 names_ptr 000104 automatic pointer dcl 674 set ref 684* 689 689 696* 708 713 730 751 751 new_info_dirs_ptr 000102 automatic pointer dcl 66 set ref 229* 230 232 235 371* 373 375 376 382 no_abort 000532 automatic bit(1) dcl 560 set ref 570* 580* 583 597 619 628 643 null builtin function dcl 148 in procedure "ssu_info_mgr_" ref 199 201 223 379 407 407 618 684 685 689 690 751 752 null builtin function dcl 1-39 in procedure "ssu_check_sci" ref 1-42 1-42 1-47 1-48 1-48 1-56 1-56 old_nargs 000167 automatic fixed bin(17,0) dcl 89 set ref 434* 438 498* 502 505 513 p_absolute_info_dirname parameter char packed unaligned dcl 396 set ref 392 416* p_code parameter fixed bin(35,0) dcl 398 set ref 392 404* 405 407* 408 411* 417* p_info_dirname parameter char packed unaligned dcl 395 set ref 392 404* p_sci_ptr parameter pointer dcl 1-29 set ref 1-26 1-41 1-42 1-42 1-47 1-53 1-56 1-56 p_uid parameter bit(36) dcl 397 set ref 392 415* parent_area_ptr 2 based pointer level 2 dcl 4-14 ref 184 199 229 234 371 379 689 690 696 696 751 752 pathname_ 000052 constant entry external dcl 132 ref 416 pos 000363 automatic fixed bin(17,0) dcl 97 set ref 721* 723 723 725 726 727 position 000157 automatic fixed bin(17,0) dcl 75 set ref 238* 240* 241* 245 249 250 251 request_name 000203 automatic char(32) packed unaligned dcl 93 set ref 451* 452* 453* 454* rtrim builtin function dcl 148 ref 519 594 595 607 610 637 694 792 793 799 sci based structure level 1 dcl 4-14 sci_parent_area based area(1024) dcl 4-96 set ref 184 199 229 234 371 379 689 690 696 696 751 752 sci_ptr 000374 automatic pointer dcl 4-94 set ref 181* 184 184 186 197* 199 199 199 201 214* 223 223* 226 226 226 228 229 230 231 232 234 234 235 238 238 243 243 245 246 246 249 250 251 264* 270 272 275 277 281 282 282 284 284 306* 315 321 322 340* 371 379 379 379 382 432* 434* 436* 439* 451* 453* 455* 463* 466* 478 479 480 484* 496* 498* 500* 514* 516* 524 525 526 530* 546* 589* 603* 606 607 610 614 615 616 624* 632* 648* 689 690 696 696 751 752 791 792 793 search builtin function dcl 148 ref 583 short 000430 automatic structure level 2 dcl 400 ssu_$abort_line 000054 constant entry external dcl 133 ref 463 484 516 530 589 603 624 632 648 ssu_$arg_count 000056 constant entry external dcl 134 ref 434 498 ssu_$arg_ptr 000060 constant entry external dcl 135 ref 514 ssu_$get_subsystem_name 000062 constant entry external dcl 136 ref 436 500 ssu_request_mgr_$find_request_name 000064 constant entry external dcl 137 ref 439 451 453 455 ssu_requests_$help 000066 constant entry external dcl 139 ref 439 439 ssu_requests_$list_help 000070 constant entry external dcl 139 ref 455 455 ssu_requests_$list_requests 000072 constant entry external dcl 139 ref 453 453 ssu_requests_$summarize_requests 000074 constant entry external dcl 139 ref 451 451 status_branch based structure level 1 dcl 8-8 sub_err_ 000104 constant entry external dcl 1-37 ref 1-42 1-48 1-56 substr builtin function dcl 148 ref 591 591 726 727 793 795 803 806 subsys_name 000173 automatic char(32) packed unaligned dcl 92 set ref 436* 447* 500* 694 766* topic 000544 automatic varying char(32) dcl 562 set ref 591* 594* 595* 597 605 topic_array_size 000364 automatic fixed bin(17,0) dcl 98 set ref 505* 509 511* 518* 518 519 topic_ename 000120 automatic char(32) packed unaligned dcl 678 set ref 693* 696* topic_name 000107 automatic varying char(32) dcl 677 set ref 713* 715 719* 719 721 725 726 727 730* 770* 773* 775* topic_names 000100 automatic varying char(32) array dcl 509 set ref 519* 526* topic_sw 000172 automatic bit(1) packed unaligned dcl 91 set ref 466* 467 total_topics 000365 automatic fixed bin(17,0) dcl 99 set ref 475* 484 522* 530 749* 749 766 translate builtin function dcl 148 ref 519 719 type 000430 automatic fixed bin(2,0) level 3 packed packed unsigned unaligned dcl 400 set ref 410 uid 54 based bit(36) array level 3 in structure "info_dirs_list" dcl 5-7 in procedure "ssu_info_mgr_" set ref 355* uid 54 based bit(36) array level 3 in structure "info_dirs" dcl 60 in procedure "ssu_info_mgr_" set ref 251* 272 uid 11 000430 automatic bit(36) level 3 in structure "branch_status" packed packed unaligned dcl 400 in procedure "validate_info_dir" set ref 415 uid 000166 automatic bit(36) dcl 87 in procedure "ssu_info_mgr_" set ref 217* 251 266* 272 unspec builtin function dcl 1-39 ref 1-42 1-42 1-56 1-56 version based fixed bin(17,0) level 3 in structure "info_dirs_list" dcl 5-7 in procedure "ssu_info_mgr_" set ref 319* 343 version based char(8) level 2 in structure "sci" dcl 4-14 in procedure "ssu_info_mgr_" ref 1-53 1-56 1-56 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 3-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 3-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 3-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 3-7 ITP_MODIFIER internal static bit(6) initial packed unaligned dcl 2-56 Link internal static fixed bin(17,0) initial dcl 8-56 Segment internal static fixed bin(17,0) initial dcl 8-56 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 7-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 7-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 7-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 7-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 7-25 area_dtype internal static fixed bin(17,0) initial dcl 7-25 arg_descriptor based structure level 1 dcl 6-6 arg_descriptor_ptr automatic pointer dcl 6-34 bit_dtype internal static fixed bin(17,0) initial dcl 7-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 7-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 7-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 7-25 c_union_dtype internal static fixed bin(17,0) initial dcl 7-25 char_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 7-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 7-25 entry_dtype internal static fixed bin(17,0) initial dcl 7-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 7-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 7-125 extended_arg_descriptor based structure level 1 dcl 6-21 file_dtype internal static fixed bin(17,0) initial dcl 7-25 fixed_arg_descriptor based structure level 1 dcl 6-13 ft_char_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 7-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 7-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 7-125 itp based structure level 1 dcl 2-18 itp_unsigned based structure level 1 dcl 2-43 its_unsigned based structure level 1 dcl 2-30 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 7-125 label_dtype internal static fixed bin(17,0) initial dcl 7-25 offset_dtype internal static fixed bin(17,0) initial dcl 7-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 7-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 7-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 7-125 pointer_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 7-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 7-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 7-25 status_area_ptr automatic pointer dcl 8-47 status_entry_names based char(32) array dcl 8-47 status_link based structure level 1 dcl 8-38 status_pathname based char dcl 8-47 status_ptr automatic pointer dcl 8-47 structure_dtype internal static fixed bin(17,0) initial dcl 7-25 substr builtin function dcl 1-39 varying_bit_dtype internal static fixed bin(17,0) initial dcl 7-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 7-25 NAMES DECLARED BY EXPLICIT CONTEXT. FIND_INFO_FILE_COMMON 003460 constant label dcl 583 ref 571 FOUND_ONE 004211 constant label dcl 634 ref 618 HANDLE_HELP_LIST_TOPICS 002466 constant label dcl 475 ref 467 502 INFO_FILE_NAME_TOO_LONG 003624 constant label dcl 597 ref 607 RESIGNAL_BAD_POINTER 005342 constant label dcl 1-42 ref 1-44 RESIGNAL_BAD_VERSION 005474 constant label dcl 1-56 set ref 1-59 RESIGNAL_NULL_POINTER 005422 constant label dcl 1-48 ref 1-50 RETURN_FROM_LIST_INFO_DIRS 001473 constant label dcl 328 ref 312 SKIP_THIS_TOPIC 005047 constant label dcl 746 ref 708 SKIP_TO_NEXT_NAME 005014 constant label dcl 739 ref 715 732 add_info_dir 000630 constant entry external dcl 209 add_topic_name 005071 constant entry internal dcl 760 ref 731 737 delete_info_dir 001120 constant entry external dcl 259 find_info_file 003416 constant entry internal dcl 553 ref 547 find_info_file_no_abort 003436 constant entry internal dcl 576 ref 442 445 find_subsystem_info_file 003152 constant entry external dcl 541 ref 466 466 get_info_prefix 000436 constant entry external dcl 167 get_topic_name 005212 constant entry internal dcl 785 ref 713 730 help 001762 constant entry external dcl 429 init_info_dirs 000512 constant entry external dcl 178 ref 223 list_help 002613 constant entry external dcl 493 list_info_dirs 001332 constant entry external dcl 296 list_topics 004335 constant entry internal dcl 659 ref 480 526 set_info_dirs 001511 constant entry external dcl 335 set_info_prefix 000374 constant entry external dcl 154 ssu_check_sci 005334 constant entry internal dcl 1-26 ref 157 170 212 262 304 338 ssu_info_mgr_ 000346 constant entry external dcl 35 term_info_dirs 000560 constant entry external dcl 194 validate_info_dir 003237 constant entry internal dcl 392 ref 217 266 355 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6742 7050 6247 6752 Length 7526 6247 106 441 473 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ssu_info_mgr_ 690 external procedure is an external procedure. on unit on line 309 64 on unit validate_info_dir internal procedure shares stack frame of external procedure ssu_info_mgr_. begin block on line 507 105 begin block uses auto adjustable storage. find_info_file internal procedure shares stack frame of external procedure ssu_info_mgr_. list_topics 217 internal procedure enables or reverts conditions. on unit on line 687 64 on unit add_topic_name internal procedure shares stack frame of internal procedure list_topics. get_topic_name internal procedure shares stack frame of internal procedure list_topics. ssu_check_sci internal procedure shares stack frame of external procedure ssu_info_mgr_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 507 000100 topic_names begin block on line 507 list_topics 000100 entries_ptr list_topics 000102 entries_count list_topics 000104 names_ptr list_topics 000106 n_names list_topics 000107 topic_name list_topics 000120 topic_ename list_topics 000130 gi_topic_ename list_topics 000140 n_topics list_topics 000141 idx list_topics 000142 jdx list_topics 000143 kdx list_topics 000144 code list_topics 000232 idx get_topic_name 000233 jdx get_topic_name ssu_info_mgr_ 000100 info_dirs_n_allocated ssu_info_mgr_ 000102 new_info_dirs_ptr ssu_info_mgr_ 000104 code ssu_info_mgr_ 000105 info_dirname ssu_info_mgr_ 000157 position ssu_info_mgr_ 000160 callers_area_ptr ssu_info_mgr_ 000162 al ssu_info_mgr_ 000164 ap ssu_info_mgr_ 000166 uid ssu_info_mgr_ 000167 old_nargs ssu_info_mgr_ 000170 match ssu_info_mgr_ 000171 found_bad_dirname ssu_info_mgr_ 000172 topic_sw ssu_info_mgr_ 000173 subsys_name ssu_info_mgr_ 000203 request_name ssu_info_mgr_ 000213 help_request_name ssu_info_mgr_ 000223 lh_request_name ssu_info_mgr_ 000233 intro_topic ssu_info_mgr_ 000243 info_name ssu_info_mgr_ 000357 code1 ssu_info_mgr_ 000360 code2 ssu_info_mgr_ 000361 idx ssu_info_mgr_ 000362 jdx ssu_info_mgr_ 000363 pos ssu_info_mgr_ 000364 topic_array_size ssu_info_mgr_ 000365 total_topics ssu_info_mgr_ 000374 sci_ptr ssu_info_mgr_ 000376 idl_ptr ssu_info_mgr_ 000400 info_dirs_list_n_info_dirs ssu_info_mgr_ 000401 extended_arg_type ssu_info_mgr_ 000430 branch_status validate_info_dir 000442 dirname validate_info_dir 000514 ename validate_info_dir 000532 no_abort find_info_file 000533 ename find_info_file 000544 topic find_info_file 000555 info_dirname find_info_file 000627 info_ename find_info_file 000640 info_ptr find_info_file 000642 info_bc find_info_file 000643 code find_info_file 000644 idx find_info_file THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp enter_begin_block leave_begin_block call_ext_in call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return_mac tra_ext_1 alloc_auto_adj signal_op enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc set_chars_eis index_chars_eis op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. expand_pathname_ hcs_$initiate_count hcs_$star_ hcs_$status_long hcs_$terminate_noname help$ssu_help_request ioa_ ioa_$nnl pathname_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$get_subsystem_name ssu_request_mgr_$find_request_name ssu_requests_$help ssu_requests_$list_help ssu_requests_$list_requests ssu_requests_$summarize_requests sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_ptr error_table_$badopt error_table_$entlong error_table_$no_dir error_table_$noalloc error_table_$noentry error_table_$nostars error_table_$notadir error_table_$null_info_ptr error_table_$unimplemented_version error_table_$unimplemented_version error_table_$zero_length_seg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 36 000341 35 000345 38 000356 154 000370 157 000404 159 000413 161 000422 167 000434 170 000446 172 000455 178 000507 181 000522 183 000526 184 000530 186 000543 188 000544 194 000556 197 000570 199 000574 201 000606 203 000611 209 000623 212 000651 214 000660 215 000664 217 000665 218 000712 219 000714 220 000715 223 000727 226 000742 228 000751 229 000753 230 000765 231 000770 232 000777 233 001010 234 001012 235 001021 238 001024 240 001035 241 001042 243 001043 245 001044 246 001053 247 001063 249 001066 250 001076 251 001100 253 001102 259 001114 262 001141 264 001150 266 001154 268 001201 270 001202 272 001217 273 001226 275 001231 277 001243 278 001255 280 001257 281 001261 282 001271 283 001301 284 001303 285 001306 286 001307 288 001310 290 001313 296 001325 299 001347 300 001353 301 001356 304 001370 306 001376 307 001402 309 001405 311 001421 312 001424 315 001427 317 001432 319 001443 321 001445 322 001455 323 001466 325 001470 326 001472 328 001473 335 001505 338 001526 340 001535 341 001541 343 001544 344 001547 345 001552 351 001564 353 001565 354 001575 355 001601 357 001633 358 001635 359 001640 360 001642 362 001647 364 001651 369 001665 371 001670 373 001702 375 001705 376 001713 377 001723 379 001725 382 001740 384 001743 386 001744 429 001756 432 001772 434 001776 436 002007 438 002020 439 002022 440 002053 441 002055 442 002060 443 002070 444 002072 445 002075 447 002105 451 002135 452 002166 453 002210 454 002241 455 002263 456 002314 459 002346 461 002372 463 002414 466 002432 467 002451 469 002454 475 002466 478 002467 479 002477 480 002505 482 002546 484 002550 487 002577 493 002611 496 002623 498 002627 500 002640 502 002651 505 002653 507 002654 509 002657 526 002666 511 002676 513 002677 514 002710 516 002725 518 002771 519 002773 520 003027 522 003032 524 003033 525 003044 526 003052 528 003101 530 003104 533 003133 535 003134 541 003146 546 003167 547 003173 548 003210 392 003237 404 003255 405 003304 407 003310 408 003350 410 003354 411 003360 412 003363 415 003364 416 003366 417 003414 419 003415 553 003416 570 003434 571 003435 576 003436 579 003454 580 003456 583 003460 586 003477 587 003502 589 003503 591 003533 594 003555 595 003576 597 003620 600 003626 601 003632 603 003633 605 003664 606 003706 607 003714 609 003732 610 003753 611 003776 612 003777 614 004003 615 004013 616 004022 617 004026 618 004071 619 004075 621 004105 622 004107 624 004110 626 004142 628 004147 629 004151 630 004155 632 004156 634 004211 636 004223 637 004225 638 004247 639 004256 640 004270 643 004271 644 004273 645 004277 648 004300 650 004333 659 004334 684 004355 685 004357 687 004360 689 004374 690 004403 691 004412 693 004413 694 004416 696 004445 698 004520 701 004522 703 004523 704 004533 706 004534 707 004540 708 004553 709 004570 712 004572 713 004605 715 004625 718 004632 719 004636 720 004654 721 004667 722 004712 723 004713 725 004722 726 004732 727 004747 729 004764 730 004766 731 005006 732 005007 734 005010 735 005012 737 005013 739 005014 742 005016 744 005033 746 005047 749 005051 751 005054 752 005062 754 005070 760 005071 763 005072 766 005075 770 005125 773 005147 775 005171 777 005210 779 005211 785 005212 791 005214 792 005222 793 005234 794 005247 795 005250 796 005260 797 005261 799 005262 800 005276 801 005300 803 005307 804 005317 806 005321 1 26 005334 1 41 005336 1 42 005342 1 44 005415 1 47 005416 1 48 005422 1 50 005464 1 53 005465 1 56 005474 1 59 005550 ----------------------------------------------------------- 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