COMPILATION LISTING OF SEGMENT probe_info_requests_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/27/88 1240.4 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 13 14 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /****^ HISTORY COMMENTS: 17* 1) change(86-01-21,LJAdams), approve(86-01-21,MCR7327), 18* audit(86-04-17,Lippard), install(86-04-24,MR12.0-1048): 19* Added ssu_ references so subsystem calls to help_ will work properly. 20* Added include file "help_args" which is a structure that contains all 21* needed help data includeing the new version number Vhelp_args_2. 22* 2) change(87-08-20,LJAdams), approve(87-09-03,MCR7766), 23* audit(88-08-07,GDixon), install(88-09-13,MR12.2-1109): 24* Changed Vhelp_args_2 to Vhelp_args_3. 25* 3) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 26* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 27* Added format control comment to make the source more readable. 28* END HISTORY COMMENTS */ 29 30 31 probe_info_requests_: 32 proc (); 33 34 call probe_error_$malfunction (); /* dummy entry */ 35 36 /* * This procedure implements a handful of random requests, most of which were 37* * stolen more or less bodily from probe_requests_. 38* * 39* * 07/15/79 W. Olin Sibert 40* * Recoded to use the awful, but powerful help_, instead of help JRD Oct 1 79 */ 41 /* Changed to use info search paths unless nonstandard dirs listed in probe_static_info 09/28/81 S. Herbst */ 42 /* Modified April, 1985 by L. Adams - use new help_args_.incl.pl1 */ 43 44 dcl P_probe_info_ptr pointer parameter; 45 46 dcl i fixed bin; 47 dcl desired_topic char (32) aligned; 48 dcl code fixed bin (35); 49 50 dcl ioa_$ioa_switch entry options (variable); 51 dcl probe_error_ entry options (variable); 52 dcl probe_error_$warning entry options (variable); 53 dcl probe_error_$malfunction 54 entry options (variable); 55 56 dcl probe_request_mgr_$list_requests 57 entry (ptr); 58 dcl probe_request_mgr_$list_builtins 59 entry (ptr); 60 61 dcl probe_et_$too_many_args fixed bin (35) external static; 62 63 dcl null builtin; 64 65 dcl cleanup condition; 66 67 68 /* */ 69 70 print_request_summary: 71 entry (P_probe_info_ptr); 72 73 probe_info_ptr = P_probe_info_ptr; 74 call reject_argument (); 75 76 call ioa_$ioa_switch (probe_info.output_switch, 77 "^/Summary of probe requests:^/"); 78 79 call probe_request_mgr_$list_requests (probe_info_ptr); 80 81 call ioa_$ioa_switch (probe_info.output_switch, 82 "^/Type ""help"" for more information."); 83 84 return; /* end of code for $print_request_summary */ 85 86 print_builtin_summary: 87 entry (P_probe_info_ptr); 88 89 probe_info_ptr = P_probe_info_ptr; 90 call reject_argument (); 91 92 call ioa_$ioa_switch (probe_info.output_switch, 93 "^/Summary of probe builtins:^/"); 94 call probe_request_mgr_$list_builtins (probe_info_ptr); 95 return; 96 97 98 99 help_request: 100 entry (P_probe_info_ptr); 101 102 probe_info_ptr = P_probe_info_ptr; 103 104 if probe_info.ct -> token.type >= probe_info.end_token 105 then 106 desired_topic = "summary"; 107 else if probe_info.ct -> token.type = TIMES then do; 108 desired_topic = "toc"; 109 call bump_ct (); 110 end; 111 else if probe_info.ct -> token.type = NAME_TYPE then do; 112 desired_topic = current_identifier_name; 113 call bump_ct (); 114 end; 115 else call probe_error_ (probe_info_ptr, 0, "Usage: help { * TOPIC }"); 116 117 call reject_argument (); 118 119 goto help_common; 120 121 122 123 list_help_request: 124 entry (P_probe_info_ptr); 125 126 probe_info_ptr = P_probe_info_ptr; 127 128 call reject_argument; 129 desired_topic = "toc"; 130 goto help_common; 131 132 help_common: 133 Phelp_args = null; 134 135 on cleanup 136 call help_$term ("probe", Phelp_args, (0)); 137 138 call help_$init ("probe", "info", "", Vhelp_args_3, Phelp_args, code); 139 140 if code ^= 0 141 then call probe_error_ (probe_info_ptr, code); 142 143 if probe_static_info.info_directory_info.array_size > 1 144 | probe_info_directories (1) ^= ">doc>info" then do; 145 /* use info search paths unless dirs specified */ 146 help_args.Nsearch_dirs = 147 probe_static_info.info_directory_info.array_size; 148 do i = 1 to probe_static_info.info_directory_info.array_size; 149 help_args.search_dirs (i) = probe_info_directories (i); 150 end; 151 end; 152 153 help_args.Npaths = 1; 154 help_args.Ncas = 0; /* yields illegal PL/1 */ 155 help_args.Nscns = 0; /* 0-extent arrays */ 156 help_args.Nsrhs = 0; 157 158 if desired_topic = "bugs" | desired_topic = "changes" 159 then help_args.path (1).value = "probe." || desired_topic; 160 else do; 161 help_args.path (1).value = "probe"; 162 help_args.path (1).S.info_name_not_starname = "1"b; 163 help_args.path (1).info_name = desired_topic; 164 end; 165 166 call help_ ("probe", Phelp_args, "info", (0), code); 167 if code ^= 0 168 then 169 call probe_error_$warning (probe_info_ptr, 0, 170 "There is no info available for ""^a"".", desired_topic); 171 172 call help_$term ("probe", Phelp_args, (0)); 173 174 return; /* of code for help request */ 175 176 177 178 179 bump_ct: 180 proc; 181 probe_info.ct = probe_info.ct -> token.next; 182 end bump_ct; 183 184 reject_argument: 185 proc; 186 if probe_info.ct -> token.type < probe_info.end_token 187 then call probe_error_ (probe_info_ptr, probe_et_$too_many_args); 188 end reject_argument; 189 190 191 /* INCLUDE FILES */ 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 192 2 1 /* BEGIN INCLUDE FILE probe_static_info.incl.pl1 */ 2 2 2 3 /* * This include file describes per-process information about probe, such 2 4* * as various options available and the info directories and modes. 2 5* * 2 6* * Created: 06/06/79 W. Olin Sibert */ 2 7 2 8 dcl 1 probe_static_info aligned based (probe_info.static_info_ptr), /* per-process data about probe */ 2 9 2 probe_info_version fixed bin, /* same as probe_info.probe_info_version */ 2 10 2 11 2 version aligned, 2 12 3 major_version fixed bin, 2 13 3 minor_version fixed bin, 2 14 3 version_string char (32) unaligned, /* like "4.3f, patch 1" */ 2 15 2 16 2 name char (32) unaligned, /* "probe" */ 2 17 2 prompt character (40) varying, /* prompt for reading requests */ 2 18 2 switches, 2 19 3 brief_sw bit (1) unaligned, /* briefer break messages, no header (default OFF) */ 2 20 3 no_handle_faults_sw bit (1) unaligned, /* don't handle bad ptr faults (default OFF) */ 2 21 3 recursive_breaks_sw bit (1) unaligned, /* don't ignore recursive breaks in probe */ 2 22 3 prompt_on_sw bit (1) unaligned, /* prompt for request lines */ 2 23 3 switch_pad bit (32) unaligned, 2 24 2 25 2 scratch_segment_ptr pointer, /* pointer to probe_scratch_ -- always valid */ 2 26 2 break_segment_ptr pointer, /* pointer to Person.breaks -- valid only if needed */ 2 27 2 28 2 seg_info_offset_ptr pointer, /* pointer to seg_info_offset array */ 2 29 2 30 2 probe_segno bit (18), /* segment number of probe itself */ 2 31 2 last_break_segno bit (18), /* segment number of last interrupted program */ 2 32 2 33 2 stack_info aligned, /* information about the stack trace in probe_scratch_ */ 2 34 3 level_chain pointer unaligned, /* first level frame entry pointer */ 2 35 3 max_level fixed bin, /* number of stack levels */ 2 36 3 flags aligned, 2 37 (4 good_stack, 2 38 4 traced_with_all, /* whether the stack trace includes support frames */ 2 39 4 pad1 (34)) bit (1) unaligned, 2 40 2 41 2 modes_ptr pointer unaligned, /* pointer to modes -- same as probe_info.modes_ptr */ 2 42 2 43 2 request_table_info aligned, /* info for request definitions */ 2 44 3 array_ptr pointer, /* pointer to array of request table pointers */ 2 45 3 array_size fixed bin, /* number of elements in use */ 2 46 3 array_max_size fixed bin, /* max number of elements in array */ 2 47 3 using_internal_array bit (1) aligned, /* whether or not we are using the array in probe_static_info */ 2 48 2 49 2 io_switches, /* switches probe does its I/O on */ 2 50 3 input_switch pointer, 2 51 3 output_switch pointer, 2 52 3 (private_input_sw, private_output_sw) bit (1) aligned, 2 53 /* created by ids, ods and should be destroyed */ 2 54 2 55 2 info_directory_info aligned, /* info about info directories */ 2 56 3 array_ptr pointer, 2 57 3 array_size fixed bin, 2 58 3 array_max_size fixed bin, 2 59 3 using_internal_array bit (1) aligned, 2 60 2 61 2 exclude_name_info aligned, /* info for exclude array used in printing values */ 2 62 3 array_ptr pointer, 2 63 3 array_size fixed bin, 2 64 3 array_max_size fixed bin, 2 65 3 using_internal_array bit (1) aligned, 2 66 2 67 2 null_seg_info_ptr pointer unaligned, /* pointer to the "null" seg_info block */ 2 68 2 69 2 initial_arrays, /* initial versions of various arrays */ 2 70 3 request_table_ptr_array (10) pointer aligned, 2 71 3 info_directory_name_array (3) char (168) unaligned, 2 72 3 exclude_name_array (6) char (32) unaligned, 2 73 2 74 2 metering_info, /* last values for "mode meter" */ 2 75 3 last_clock fixed bin (71), 2 76 3 last_vclock fixed bin (71), 2 77 3 last_page_faults fixed bin, 2 78 2 79 2 end_of_probe_static_info fixed bin; 2 80 2 81 2 82 dcl 1 probe_seg_info_array aligned based (probe_static_info.seg_info_offset_ptr), 2 83 2 count fixed bin, /* number of entries in seg_info_offset array */ 2 84 2 seg_info_offset (0 : seg_info_offset_count refer (probe_seg_info_array.count)) bit (18) aligned; 2 85 2 86 dcl seg_info_offset_count fixed bin; /* one less than the number of info_offsets */ 2 87 2 88 dcl probe_request_tables (probe_static_info.request_table_info.array_max_size) /* array of request table pointers */ 2 89 pointer aligned based (probe_static_info.request_table_info.array_ptr); 2 90 2 91 dcl probe_info_directories (probe_static_info.info_directory_info.array_max_size) /* array of info directories */ 2 92 char (168) unaligned based (probe_static_info.info_directory_info.array_ptr); 2 93 2 94 dcl probe_exclude_names (probe_static_info.exclude_name_info.array_max_size) /* array of exclude names */ 2 95 char (168) unaligned based (probe_static_info.exclude_name_info.array_ptr); 2 96 2 97 /* END INCLUDE FILE probe_static_info.incl.pl1 */ 193 3 1 /* BEGIN INCLUDE FILE probe_tokens.incl.pl1 */ 3 2 /* Split up into probe_tokens and probe_references, 04/22/79 WOS */ 3 3 3 4 dcl 1 token_header aligned based, /* header information common to all tokens */ 3 5 2 next pointer unaligned, /* pointer to next token in chain */ 3 6 2 prev pointer unaligned, /* same for previous token */ 3 7 2 type bit (18) aligned, 3 8 2 buffer_ptr pointer unaligned, /* pointer to beginning of input buffer */ 3 9 2 location fixed bin (17) unal, /* offset in input buffer */ 3 10 2 length fixed bin (17) unal, 3 11 2 flags aligned, 3 12 (3 leading_whitespace, /* there is whitespace before thios token */ 3 13 3 trailing_whitespace) bit (1) unaligned, /* and same for after */ 3 14 3 pad1 bit (34) unaligned; 3 15 3 16 dcl 1 token aligned based, /* produced by scan_probe_input_ */ 3 17 2 header aligned like token_header; /* that's all there is */ 3 18 3 19 dcl 1 identifier aligned based, /* keyword or identifier token */ 3 20 2 header aligned like token_header, 3 21 2 length fixed bin, /* length of name */ 3 22 2 name pointer unaligned; /* to string in buffer containing name */ 3 23 3 24 dcl 1 operator aligned based, /* for punctuation */ 3 25 2 header aligned like token_header; /* nothing but a header here */ 3 26 3 27 dcl 1 constant aligned based, /* for strings pointers numbers etc */ 3 28 2 header aligned like token_header, 3 29 2 encoded_precision aligned, /* encoded precision kludge for assign_ */ 3 30 3 scale fixed bin (17) unaligned, /* arithmetic scale */ 3 31 3 precision fixed bin (17) unaligned, /* arithmetic precision or other size */ 3 32 2 scale_and_precision fixed bin (35), /* An identical copy of the two values above */ 3 33 2 data_type fixed bin, /* standard data type code + packed bit */ 3 34 2 data_ptr pointer unaligned; 3 35 3 36 3 37 dcl (OPERATOR_TYPE init ("100"b), /* types for above */ 3 38 NAME_TYPE init ("010"b), 3 39 CONSTANT_TYPE init ("001"b)) bit (18) internal static options (constant); 3 40 3 41 3 42 dcl current_identifier_name /* Overlays for looking at the current tokens */ 3 43 char (probe_info.ct -> identifier.length) based (probe_info.ct -> identifier.name); 3 44 dcl 1 current_constant aligned like constant based (probe_info.ct); 3 45 dcl 1 current_token aligned like token based (probe_info.ct); 3 46 3 47 /* END INCLUDE FILE probe_tokens.incl.pl1 */ 194 4 1 /* BEGIN INCLUDE FILE ... probe_operators.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 7* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 8* Added new C operators. 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 /* These are the operator.types for each defined operator */ 4 13 /* Modified June 83 JMAthane for PASCAL_ARROW new operator */ 4 14 /* Added PASCAL_RANGE and PASCAL_ASSIGN 07/26/83 S. Herbst */ 4 15 /* Modified April 88 Hinatsu Addition of C types */ 4 16 4 17 dcl (PLUS init ("400001"b3), MINUS init ("400002"b3), 4 18 TIMES init ("400003"b3), SLASH init ("400004"b3), 4 19 OR_BAR init ("400005"b3), NOT_SIGN init ("400006"b3), 4 20 LESS_THAN init ("400007"b3), GREATER_THAN init ("400010"b3), 4 21 EQUALS init ("400011"b3), NOT_EQUALS init ("400012"b3), 4 22 NOT_GREATER_THAN init ("400013"b3), NOT_LESS_THAN init ("400014"b3), 4 23 PERIOD init ("400015"b3), COLON init ("400016"b3), 4 24 AMPERSAND init ("400017"b3), PERCENT init ("400020"b3), 4 25 DOLLAR_SIGN init ("400021"b3), LEFT_BRACKET init ("400022"b3), 4 26 RIGHT_BRACKET init ("400023"b3), ARROW init ("400024"b3), 4 27 COMMA init ("400025"b3), QUESTION_MARK init ("400026"b3), 4 28 PASCAL_ARROW init ("400027"b3), PASCAL_RANGE init ("400030"b3), 4 29 PASCAL_ASSIGN init ("400031"b3), 4 30 4 31 /* Additons to support C types */ 4 32 C_LEFT_SHIFT init ("400032"b3), C_RIGHT_SHIFT init ("400033"b3), 4 33 4 34 /* operator 28 are left for future expansion */ 4 35 4 36 LEFT_PAREN init ("400035"b3), RIGHT_PAREN init ("400036"b3), 4 37 C_EQUAL init ("400037"b3), C_NOT_EQUAL init ("400040"b3), 4 38 SEMI_COLON init ("400041"b3), NEW_LINE init ("400042"b3), 4 39 C_INDIRECTION init ("400034"b3) 4 40 4 41 ) bit (18) aligned internal static options (constant); 4 42 4 43 dcl OPERATOR_VALUES (0:34) char (4) varying internal static options (constant) init 4 44 ("????", "+", "-", "*", "/", "|", "^", "<", 4 45 ">", "=", "^=", "<=", ">=", ".", ":", "&", 4 46 "%", "$", "[", "]", "->", ",", "?", "^", 4 47 "..", ":=", "<<", ">>", "*", "(", ")", 4 48 "==", "!=", ";"," 4 49 "); 4 50 4 51 /* END INCLUDE FILE ... probe_operators.incl.pl1 */ 195 196 5 1 /* BEGIN: help_args_.incl.pl1 * * * * * */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* Name: help_args_.incl.pl1 */ 5 6 /* */ 5 7 /* This include file declares the structure used by the help command and other subsystems */ 5 8 /* to pass info segment selection and printing control information to the help_ */ 5 9 /* subroutine. This based structure is NEVER allocated. Instead, the caller of help_ */ 5 10 /* must call help_$init to get a pointer to a temporary segment which is used for */ 5 11 /* storage for the structure. The structure contains 5 arrays with refer extents, */ 5 12 /* allowing complete freedom in the numbers of selection values given. Typically, the */ 5 13 /* caller fills in the arrays at the top of the structure first, growing the arrays */ 5 14 /* as each new element is added. After each array is filled, the caller begins filling */ 5 15 /* in the next array. Note that, on return from help_$init, all of the arrays have 0 */ 5 16 /* extents, except that the search_dirs array contains the list of directories to be */ 5 17 /* searched in to find info segments, as defined by the search facility. The caller */ 5 18 /* may of course change or replace these search directories. */ 5 19 /* */ 5 20 /* A legend describing the variable naming convention follows. */ 5 21 /* */ 5 22 /* STARTING LETTER STANDS FOR */ 5 23 /* P pointer to */ 5 24 /* L length of */ 5 25 /* D descriptor of */ 5 26 /* S switch */ 5 27 /* V version */ 5 28 /* */ 5 29 /* Status */ 5 30 /* */ 5 31 /* 0) Created: October, 1978 by Gary Dixon */ 5 32 /* 1) Modified: June 4, 1983 by Gary Dixon - add Sctl.inhibit_errors flag. */ 5 33 /* 2) Modified: April, 1985 by L.Adams - use Vhelp_args_2. */ 5 34 /* */ 5 35 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 36 5 37 /****^ HISTORY COMMENTS: 5 38* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 5 39* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 5 40* Declares structure used by the help command and other subsystems to pass 5 41* info segment selection and printing control information the help_ 5 42* subroutine. 5 43* 2) change(87-01-26,LJAdams), approve(87-09-03,MCR7766), 5 44* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 5 45* Added lep to Sctl. 5 46* Added Sctl.cs to indicate if search or section requests are to be case 5 47* sensitive or not. 5 48* Changed version to Vhelp_args_3. 5 49* 3) change(88-02-12,LJAdams), approve(88-03-07,MCR7857), 5 50* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 5 51* Added help_data_ptr to point to a second help_args structure that will be 5 52* used for list_requests. 5 53* END HISTORY COMMENTS */ 5 54 5 55 dcl 1 help_args aligned based (Phelp_args), /* help's input arguments. */ 5 56 2 version fixed bin, /* = 3, currently. Use Vhelp_args_3. */ 5 57 /* (set by help_$init, checked by caller) */ 5 58 2 Sctl, /* control argument switches. */ 5 59 /* (SET BY CALLER OF help_) */ 5 60 (3 he_only, /* print only a heading, nothing else. */ 5 61 3 he_pn, /* when heading printed, include info pathname. */ 5 62 3 he_info_name, /* when heading printed, include info_name. */ 5 63 3 he_counts, /* when heading printed, include line counts. */ 5 64 /* If none of the 3 switches above are set, */ 5 65 /* then only info header is incl. in heading. */ 5 66 3 title, /* -title */ 5 67 3 scn, /* -section */ 5 68 3 srh, /* -search */ 5 69 3 bf, /* -brief */ 5 70 3 ca, /* -control_arg */ 5 71 3 ep, /* -entry_point */ 5 72 3 all, /* -all */ 5 73 3 lep, /* -lep */ 5 74 3 cs, /* -case_sensitive */ 5 75 3 inhibit_errors) /* inhibits error diagnostics when desired */ 5 76 /* information is not found. Useful for */ 5 77 /* subsystems like ted that want to diagnose */ 5 78 /* their own errors. */ 5 79 bit(1) unal, 5 80 3 mbz1 bit(22) unal, 5 81 2 Nsearch_dirs fixed bin, /* number of info_segment (or other) search dirs. */ 5 82 /* (set by help_$init, CALLER CAN CHANGE) */ 5 83 2 Npaths fixed bin, /* number of info segment names. */ 5 84 /* (SET BY CALLER OF help_) */ 5 85 2 Ncas fixed bin, /* number of control arg names given with -ca */ 5 86 /* (SET BY CALLER OF help_) */ 5 87 2 Nscns fixed bin, /* number of section substrings. */ 5 88 /* (SET BY CALLER OF help_) */ 5 89 2 Nsrhs fixed bin, /* number of search strings. */ 5 90 /* (SET BY CALLER OF help_) */ 5 91 2 min_Lpgh fixed bin, /* minimum length of a paragraph. */ 5 92 /* (set by help_$init, CALLER CAN CHANGE) */ 5 93 2 max_Lpgh fixed bin, /* maximum lines in group of aggregated paragraphs*/ 5 94 /* or in paragraphs constructed by help_. */ 5 95 /* (set by help_$init, CALLER CAN CHANGE) */ 5 96 2 Lspace_between_infos fixed bin, /* spaces inserted between infos when several */ 5 97 /* printed by one invocation. */ 5 98 /* (set by help_$init, CALLER CAN CHANGE) */ 5 99 2 min_date_time fixed bin(71), /* do not process infos modified before this date.*/ 5 100 /* (SET BY CALLER OF help_) */ 5 101 2 sci_ptr ptr, /* sci_ptr when help_ is invoked by a subsystem. */ 5 102 /* This must be set to null when not invoked */ 5 103 /* from a subsystem. */ 5 104 2 help_data_ptr ptr, /* ptr to second help_args (used for list rqts) */ 5 105 2 pad2 (6) fixed bin, /* reserved for future expansion. */ 5 106 5 107 /* End of fixed-length part of the structure. */ 5 108 5 109 2 search_dirs (0 refer (help_args.Nsearch_dirs)) 5 110 char (168) unal, /* directories help_ will look in to find info */ 5 111 /* segments when relative paths (without < or >)*/ 5 112 /* are given. When help_$init is called, the */ 5 113 /* current search rules (from a search list of */ 5 114 /* caller's choice) will be given here. Caller */ 5 115 /* may modify this list if desired before */ 5 116 /* calling help_. */ 5 117 2 path (0 refer (help_args.Npaths)), /* names of sought info segments. */ 5 118 3 value char(425) varying, /* These are the args themselves, without */ 5 119 /* processing by expand_pathname_, etc. */ 5 120 /* Their length is length(path) + length("$") */ 5 121 /* + length(entry_point_name). */ 5 122 /* Note that entry_point_names can be 256 chars.*/ 5 123 /* (SET BY CALLER OF help_) */ 5 124 3 info_name char(32) unal, /* name of logical info to be printed. */ 5 125 /* (SET BY CALLER OF help_) */ 5 126 /* "" = help_ should set this to entry part */ 5 127 /* of path.value, minus the suffix. */ 5 128 /* other = logical info name not a name on the */ 5 129 /* physical info segment. */ 5 130 3 dir (1) char(168) unal, /* dir part of a pathname (set by help_). */ 5 131 3 ent char(32) unal, /* ent part of name (set by help_). */ 5 132 3 ep char(32) varying, /* entry point part of name. (set by help_) */ 5 133 3 code fixed bin(35), /* error code while processing this path. */ 5 134 /* (set by help_) */ 5 135 3 S, /* switches indicating path type. */ 5 136 (4 pn_ctl_arg, /* -pn ctl given before this path. */ 5 137 /* (SET BY CALLER OF help_) */ 5 138 4 info_name_not_starname, /* caller-supplied path.info_name is not a */ 5 139 /* star name, even if it has * or ? chars. */ 5 140 /* (SET BY CALLER OF help_) */ 5 141 4 less_greater, /* A < or > appears in path.value. */ 5 142 /* (set by help_) */ 5 143 4 starname_ent, /* on if ent is a starname. */ 5 144 /* (set by help_) */ 5 145 4 starname_info_name, /* on if info_name is a starname. */ 5 146 /* (set by help_) */ 5 147 4 separate_info_name) bit(1) unal, /* on if info_name given by caller. */ 5 148 /* (set by help_) */ 5 149 4 pad3 bit(30) unal, 5 150 2 ca (0 refer (help_args.Ncas)) /* the ctl_arg names, without leading - just as */ 5 151 char(32) varying, /* req'd by the -ca ctl_arg of help. */ 5 152 /* (SET BY CALLER OF help_) */ 5 153 2 scn (0 refer (help_args.Nscns)) /* substrings sought in section titles. */ 5 154 char(80) varying, /* (SET BY CALLER OF help_) */ 5 155 2 srh (0 refer (help_args.Nsrhs)) /* search strings. */ 5 156 char(80) varying, /* (SET BY CALLER OF help_) */ 5 157 Phelp_args ptr, 5 158 Vhelp_args_3 fixed bin int static options(constant) init(3); 5 159 5 160 dcl help_ entry (char(*), ptr, char(*), fixed bin, fixed bin(35)), 5 161 help_$init entry (char(*), char(*), char(*), fixed bin, ptr, fixed bin(35)), 5 162 help_$term entry (char(*), ptr, fixed bin(35)); 5 163 5 164 /* END OF: help_args_.incl.pl1 * * * * * */ 197 198 end probe_info_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/88 1224.4 probe_info_requests_.pl1 >spec>install>MR12.2-1194>probe_info_requests_.pl1 192 1 10/27/88 1223.7 probe_info.incl.pl1 >spec>install>MR12.2-1194>probe_info.incl.pl1 193 2 11/12/82 1624.3 probe_static_info.incl.pl1 >ldd>include>probe_static_info.incl.pl1 194 3 11/26/79 1320.6 probe_tokens.incl.pl1 >ldd>include>probe_tokens.incl.pl1 195 4 10/26/88 1255.5 probe_operators.incl.pl1 >ldd>include>probe_operators.incl.pl1 197 5 09/15/88 2012.3 help_args_.incl.pl1 >ldd>include>help_args_.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. NAME_TYPE constant bit(18) initial packed unaligned dcl 3-37 ref 111 Ncas 4 based fixed bin(17,0) level 2 dcl 5-55 set ref 154* Npaths 3 based fixed bin(17,0) level 2 dcl 5-55 set ref 153* Nscns 5 based fixed bin(17,0) level 2 dcl 5-55 set ref 155* Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 5-55 set ref 146* 158 161 162 163 Nsrhs 6 based fixed bin(17,0) level 2 dcl 5-55 set ref 156* P_probe_info_ptr parameter pointer dcl 44 ref 70 73 86 89 99 102 123 126 Phelp_args 000122 automatic pointer dcl 5-55 set ref 132* 135* 138* 146 149 153 154 155 156 158 161 162 163 166* 172* S based structure array level 3 dcl 5-55 TIMES constant bit(18) initial dcl 4-17 ref 107 Vhelp_args_3 000016 constant fixed bin(17,0) initial dcl 5-55 set ref 138* array_ptr 70 based pointer level 3 dcl 2-8 ref 143 149 array_size 72 based fixed bin(17,0) level 3 dcl 2-8 ref 143 146 148 cleanup 000112 stack reference condition dcl 65 ref 135 code 000111 automatic fixed bin(35,0) dcl 48 set ref 138* 140 140* 166* 167 constant based structure level 1 dcl 3-27 ct 13 based pointer level 3 packed packed unaligned dcl 1-18 set ref 104 107 111 112 112 181* 181 186 current_identifier_name based char packed unaligned dcl 3-42 ref 112 desired_topic 000101 automatic char(32) dcl 47 set ref 104* 108* 112* 129* 158 158 158 163 167* end_token 14 based bit(18) level 3 dcl 1-18 ref 104 186 header based structure level 2 dcl 3-16 help_ 000026 constant entry external dcl 5-160 ref 166 help_$init 000030 constant entry external dcl 5-160 ref 138 help_$term 000032 constant entry external dcl 5-160 ref 135 172 help_args based structure level 1 dcl 5-55 i 000100 automatic fixed bin(17,0) dcl 46 set ref 148* 149 149* identifier based structure level 1 dcl 3-19 info_directory_info 70 based structure level 2 dcl 2-8 info_name based char(32) array level 3 packed packed unaligned dcl 5-55 set ref 163* info_name_not_starname based bit(1) array level 4 packed packed unaligned dcl 5-55 set ref 162* io_switches 66 based structure level 2 dcl 1-18 ioa_$ioa_switch 000010 constant entry external dcl 50 ref 76 81 92 length 6 based fixed bin(17,0) level 2 dcl 3-19 ref 112 name 7 based pointer level 2 packed packed unaligned dcl 3-19 ref 112 next based pointer level 3 packed packed unaligned dcl 3-16 ref 181 null builtin function dcl 63 ref 132 output_switch 70 based pointer level 3 dcl 1-18 set ref 76* 81* 92* path based structure array level 2 dcl 5-55 probe_error_ 000012 constant entry external dcl 51 ref 115 140 186 probe_error_$malfunction 000016 constant entry external dcl 53 ref 34 probe_error_$warning 000014 constant entry external dcl 52 ref 167 probe_et_$too_many_args 000024 external static fixed bin(35,0) dcl 61 set ref 186* probe_info based structure level 1 dcl 1-18 probe_info_directories based char(168) array packed unaligned dcl 2-91 ref 143 149 probe_info_ptr 000120 automatic pointer dcl 1-86 set ref 73* 76 79* 81 89* 92 94* 102* 104 104 107 111 112 112 115* 126* 140* 143 143 146 148 149 167* 181 181 186 186 186* probe_request_mgr_$list_builtins 000022 constant entry external dcl 58 ref 94 probe_request_mgr_$list_requests 000020 constant entry external dcl 56 ref 79 probe_static_info based structure level 1 dcl 2-8 search_dirs 26 based char(168) array level 2 packed packed unaligned dcl 5-55 set ref 149* static_info_ptr 1 based pointer level 2 packed packed unaligned dcl 1-18 ref 143 143 146 148 149 token based structure level 1 dcl 3-16 token_header based structure level 1 dcl 3-4 token_info 12 based structure level 2 dcl 1-18 type 2 based bit(18) level 3 dcl 3-16 ref 104 107 111 186 value based varying char(425) array level 3 dcl 5-55 set ref 158* 161* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AMPERSAND internal static bit(18) initial dcl 4-17 ARROW internal static bit(18) initial dcl 4-17 COLON internal static bit(18) initial dcl 4-17 COMMA internal static bit(18) initial dcl 4-17 CONSTANT_TYPE internal static bit(18) initial packed unaligned dcl 3-37 C_EQUAL internal static bit(18) initial dcl 4-17 C_INDIRECTION internal static bit(18) initial dcl 4-17 C_LEFT_SHIFT internal static bit(18) initial dcl 4-17 C_NOT_EQUAL internal static bit(18) initial dcl 4-17 C_RIGHT_SHIFT internal static bit(18) initial dcl 4-17 DOLLAR_SIGN internal static bit(18) initial dcl 4-17 EQUALS internal static bit(18) initial dcl 4-17 GREATER_THAN internal static bit(18) initial dcl 4-17 LEFT_BRACKET internal static bit(18) initial dcl 4-17 LEFT_PAREN internal static bit(18) initial dcl 4-17 LESS_THAN internal static bit(18) initial dcl 4-17 MINUS internal static bit(18) initial dcl 4-17 NEW_LINE internal static bit(18) initial dcl 4-17 NOT_EQUALS internal static bit(18) initial dcl 4-17 NOT_GREATER_THAN internal static bit(18) initial dcl 4-17 NOT_LESS_THAN internal static bit(18) initial dcl 4-17 NOT_SIGN internal static bit(18) initial dcl 4-17 OPERATOR_TYPE internal static bit(18) initial packed unaligned dcl 3-37 OPERATOR_VALUES internal static varying char(4) initial array dcl 4-43 OR_BAR internal static bit(18) initial dcl 4-17 PASCAL_ARROW internal static bit(18) initial dcl 4-17 PASCAL_ASSIGN internal static bit(18) initial dcl 4-17 PASCAL_RANGE internal static bit(18) initial dcl 4-17 PERCENT internal static bit(18) initial dcl 4-17 PERIOD internal static bit(18) initial dcl 4-17 PLUS internal static bit(18) initial dcl 4-17 QUESTION_MARK internal static bit(18) initial dcl 4-17 RIGHT_BRACKET internal static bit(18) initial dcl 4-17 RIGHT_PAREN internal static bit(18) initial dcl 4-17 SEMI_COLON internal static bit(18) initial dcl 4-17 SLASH internal static bit(18) initial dcl 4-17 current_constant based structure level 1 dcl 3-44 current_token based structure level 1 dcl 3-45 expression_area based area(1024) dcl 1-95 operator based structure level 1 dcl 3-24 probe_area based area(1024) dcl 1-93 probe_exclude_names based char(168) array packed unaligned dcl 2-94 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 probe_request_tables based pointer array dcl 2-88 probe_seg_info_array based structure level 1 dcl 2-82 scratch_area based area(1024) dcl 1-92 seg_info_offset_count automatic fixed bin(17,0) dcl 2-86 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. bump_ct 000754 constant entry internal dcl 179 ref 109 113 help_common 000371 constant label dcl 132 ref 119 130 help_request 000260 constant entry external dcl 99 list_help_request 000353 constant entry external dcl 123 print_builtin_summary 000213 constant entry external dcl 86 print_request_summary 000125 constant entry external dcl 70 probe_info_requests_ 000110 constant entry external dcl 31 reject_argument 000763 constant entry internal dcl 184 ref 74 90 117 128 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1214 1250 1010 1224 Length 1554 1010 34 267 204 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_info_requests_ 180 external procedure is an external procedure. on unit on line 135 82 on unit bump_ct internal procedure shares stack frame of external procedure probe_info_requests_. reject_argument internal procedure shares stack frame of external procedure probe_info_requests_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_info_requests_ 000100 i probe_info_requests_ 000101 desired_topic probe_info_requests_ 000111 code probe_info_requests_ 000120 probe_info_ptr probe_info_requests_ 000122 Phelp_args probe_info_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. help_ help_$init help_$term ioa_$ioa_switch probe_error_ probe_error_$malfunction probe_error_$warning probe_request_mgr_$list_builtins probe_request_mgr_$list_requests THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. probe_et_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000107 34 000115 70 000121 73 000132 74 000136 76 000137 79 000160 81 000167 84 000210 86 000211 89 000220 90 000224 92 000225 94 000246 95 000255 99 000256 102 000265 104 000271 107 000302 108 000304 109 000307 110 000310 111 000311 112 000313 113 000320 114 000321 115 000322 117 000347 119 000350 123 000351 126 000360 128 000364 129 000365 130 000370 132 000371 135 000373 138 000434 140 000475 143 000514 146 000527 148 000531 149 000541 150 000553 153 000555 154 000560 155 000561 156 000562 158 000563 160 000614 161 000615 162 000625 163 000632 166 000636 167 000674 172 000727 174 000753 179 000754 181 000755 182 000762 184 000763 186 000764 188 001007 ----------------------------------------------------------- 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