COMPILATION LISTING OF SEGMENT probe_request_mgr_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/27/88 1236.6 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 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 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added format control comment to make the source more readable. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 22 23 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 probe_request_mgr_: 26 proc (); 27 28 return; /* dummy entry */ 29 30 /* * This procedure implements the finding of requests and builtins for the 31* * new probe. It also contains entries for printing portions of the, 32* * for the "?" request. */ 33 34 /* Created: 04/09/79 W. Olin Sibert, stolen bodily from subsystem_request_mgr_ 35* Modified JRD 11 Aug 79 to not include builtins in the request list 36**/ 37 38 dcl ( 39 P_probe_info_ptr pointer, 40 P_request_name char (*), /* name of request to find */ 41 P_request_entry entry variable options (variable), 42 /* (Output) entry variable for request */ 43 P_request_info_ptr pointer, /* (Output) pointer to information about the request */ 44 P_code fixed binary (35) 45 ) parameter; 46 47 dcl request_name character (32); 48 49 dcl request_table_array_ptr pointer; 50 dcl request_table_array_size 51 fixed bin; 52 dcl request_table_ptrs (request_table_array_size) pointer 53 based (request_table_array_ptr); 54 55 dcl request_idx fixed bin;/* this and request_table_ptr are output from locate_reqest */ 56 57 dcl entry_variable entry variable options (variable); 58 /* for building up return value */ 59 60 dcl 1 entry_variable_overlay 61 aligned based (addr (entry_variable)), 62 2 codeptr pointer, 63 2 environmentptr pointer; 64 65 dcl (idx, jdx, kdx) fixed bin; 66 dcl name_size fixed bin; 67 dcl type_wanted fixed bin; 68 69 dcl ioa_ entry options (variable); 70 dcl ioa_$nnl entry options (variable); 71 72 dcl probe_error_$record entry options (variable); 73 74 dcl ( 75 probe_et_$invalid_request, 76 probe_et_$unknown_request, 77 probe_et_$unimplemented_request, 78 probe_et_$recorded_message 79 ) fixed bin (35) external static; 80 81 dcl WHITESPACE char (2) internal static options (constant) 82 init (" "); 83 /* SP HT */ 84 dcl ( 85 WANT_ANYTHING init (1), 86 WANT_REQUEST init (2), 87 WANT_BUILTIN init (3) 88 ) fixed bin internal static options (constant); 89 90 dcl (addr, length, ltrim, max, null, pointer, rtrim, verify) 91 builtin; 92 /* */ 93 94 /* * This entry searches a request table for the named request and returns 95* * the entry variable which is that request's processor. */ 96 97 find_request: 98 entry (P_probe_info_ptr, P_request_name, P_request_entry, 99 P_request_info_ptr, P_code); 100 101 102 type_wanted = WANT_REQUEST; 103 goto FIND_COMMON; 104 105 106 find_builtin: 107 entry (P_probe_info_ptr, P_request_name, P_request_entry, 108 P_request_info_ptr, P_code); 109 110 type_wanted = WANT_BUILTIN; 111 goto FIND_COMMON; 112 113 114 FIND_COMMON: 115 probe_info_ptr = P_probe_info_ptr; 116 117 request_table_array_ptr = probe_static_info.request_table_info.array_ptr; 118 request_table_array_size = probe_static_info.request_table_info.array_size; 119 120 entry_variable_overlay.codeptr = null (); 121 entry_variable_overlay.environmentptr = null (); 122 123 P_request_entry = entry_variable; /* null to start with */ 124 125 if length (ltrim (rtrim (P_request_name, WHITESPACE), WHITESPACE)) <= 32 126 then 127 request_name = 128 ltrim (rtrim (P_request_name, WHITESPACE), WHITESPACE); 129 130 else do; 131 call probe_error_$record (probe_info_ptr, probe_et_$invalid_request, 132 """^a""", P_request_name); 133 goto RECORDED_MESSAGE; 134 end; 135 136 if verify (request_name, WHITESPACE) = 0 then do; 137 call probe_error_$record (probe_info_ptr, probe_et_$invalid_request); 138 goto RECORDED_MESSAGE; 139 end; 140 141 call locate_request (); 142 143 if request_idx = -1 then do; /* we lost */ 144 call probe_error_$record (probe_info_ptr, probe_et_$unknown_request, 145 """^a""", P_request_name); 146 goto RECORDED_MESSAGE; 147 end; 148 149 /* otherwise, fall through to here if successful */ 150 entry_variable_overlay.codeptr = pointer (probe_request_table_ptr, 151 probe_request_table.requests (request_idx).code_loc); 152 153 P_request_entry = entry_variable; 154 P_request_info_ptr = addr (probe_request_table.requests (request_idx)); 155 156 if probe_request_table.requests (request_idx).unimplemented then do; 157 call probe_error_$record (probe_info_ptr, 158 probe_et_$unimplemented_request, """^a""", P_request_name); 159 goto RECORDED_MESSAGE; 160 end; 161 162 else P_code = 0; 163 164 MAIN_RETURN: 165 return; /* end of code for $find_request and $find_builtin */ 166 167 168 RECORDED_MESSAGE: 169 P_code = probe_et_$recorded_message; 170 goto MAIN_RETURN; 171 172 /* */ 173 174 /* * This entry prints a summary of the requests defined in a given request 175* * table. The summary includes each reques's name, abbreviation(s), and 176* * brief description as found in the table. */ 177 178 probe_request_mgr_$list_requests: 179 entry (P_probe_info_ptr); 180 181 /* * This entrypoint lists all the requests currently known by probe. */ 182 183 call list_common (WANT_REQUEST); 184 return; 185 186 187 probe_request_mgr_$list_builtins: 188 entry (P_probe_info_ptr); 189 190 /* This entrypoint lists all the builtins currently implemented */ 191 call list_common (WANT_BUILTIN); 192 return; 193 194 195 list_common: 196 proc (typew); 197 198 dcl typew fixed bin parameter; 199 200 probe_info_ptr = P_probe_info_ptr; 201 202 request_table_array_ptr = probe_static_info.request_table_info.array_ptr; 203 request_table_array_size = probe_static_info.request_table_info.array_size; 204 205 /* Make an initial loop through the tables to determine the size of longest name 206* for sake of pretty printout and conservation of horizontal space (and thus time) */ 207 208 name_size = 0; 209 210 do idx = 1 to request_table_array_size; 211 /* for each request table */ 212 probe_request_table_ptr = request_table_ptrs (idx); 213 214 do jdx = 1 to probe_request_table.n_requests; 215 /* for each request/builtin therein */ 216 217 if interesting (probe_request_table.requests (jdx)) then do; 218 request_namelist_ptr = pointer (probe_request_table_ptr, 219 probe_request_table.requests (jdx).namelist_loc); 220 221 if request_namelist.n_names = 2 222 then 223 name_size = max (name_size, 224 length (rtrim (request_namelist.names (1))) 225 + length (rtrim (request_namelist.names (2))) + 2); 226 227 else name_size = 228 max (name_size, 229 length (rtrim (request_namelist.names (1)))); 230 end; 231 end; 232 end; 233 234 /* Print the summary */ 235 236 do idx = 1 to request_table_array_size; 237 probe_request_table_ptr = request_table_ptrs (idx); 238 239 do jdx = 1 to probe_request_table.n_requests; 240 241 if interesting (probe_request_table.requests (jdx)) then do; 242 request_namelist_ptr = pointer (probe_request_table_ptr, 243 probe_request_table.requests (jdx).namelist_loc); 244 245 if request_namelist.n_names = 2 246 then 247 call ioa_$nnl ("^va^2x", name_size, 248 rtrim (request_namelist.names (1)) || ", " 249 || request_namelist.names (2)); 250 251 else call ioa_$nnl ("^va^2x", name_size, 252 request_namelist.names (1)); 253 254 request_info_string_ptr = pointer (probe_request_table_ptr, 255 probe_request_table.requests (jdx).info_string.loc); 256 request_info_string_lth = 257 probe_request_table.requests (jdx).info_string.lth; 258 259 call ioa_ (request_info_string); 260 261 if request_namelist.n_names > 2 then do; 262 /* print additional abbreviations */ 263 call ioa_$nnl ("^3x("); 264 do kdx = 2 to request_namelist.n_names; 265 call ioa_$nnl ("^a^[, ^;)^/^]", 266 request_namelist.names (kdx), 267 (kdx ^= request_namelist.n_names)); 268 end; 269 end; 270 end; 271 end; 272 end; 273 return; 274 275 interesting: 276 proc (rinfo) returns (bit (1) aligned); 277 dcl 1 rinfo aligned like probe_request_info parameter; 278 279 return ( 280 (typew = WANT_REQUEST & rinfo.flags.is_request) 281 | (typew = WANT_BUILTIN & rinfo.flags.is_builtin) & 282 (rinfo.info_string.lth ^= 0) & 283 ^rinfo.unimplemented & 284 ^rinfo.secret); 285 end interesting; 286 287 end list_common; 288 289 /* */ 290 291 locate_request: 292 proc (); 293 294 /* * This procedure sets request_idx to the index of the desired request in the table, 295* * or to -1 if no satisfactory match is found */ 296 297 do idx = 1 to request_table_array_size; 298 probe_request_table_ptr = request_table_ptrs (idx); 299 300 do jdx = 1 to probe_request_table.n_requests; 301 302 if (probe_request_table.is_request (jdx) & type_wanted = WANT_REQUEST) 303 | (probe_request_table.is_builtin (jdx) 304 & type_wanted = WANT_BUILTIN) 305 | (type_wanted = WANT_ANYTHING) then do; 306 307 request_namelist_ptr = 308 pointer (probe_request_table_ptr, 309 probe_request_table.requests (jdx).namelist_loc); 310 do kdx = 1 to request_namelist.n_names; 311 if request_name = request_namelist.names (kdx) then do; 312 request_idx = jdx; 313 return; /* successful */ 314 end; 315 end; 316 end; 317 end; /* of loop through request table */ 318 end; 319 320 request_idx = -1; /* failed to find it */ 321 probe_request_table_ptr = null (); 322 return; /* return, anyway */ 323 end; /* locate_request internal procedure */ 324 325 /* */ 326 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 */ 327 328 329 /* ;;;;;;; */ 330 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 */ 331 332 333 /* ;;;;;;; */ 334 3 1 /* BEGIN INCLUDE FILE probe_request_table.incl.pl1 */ 3 2 /* Created (from subsystem_request_table) 04/08/79 W. Olin Sibert */ 3 3 3 4 /* Structures defining the request table used by probe */ 3 5 3 6 dcl 1 probe_request_table aligned based (probe_request_table_ptr), 3 7 2 version fixed binary, 3 8 2 name character (32), /* name of this table */ 3 9 2 flags, /* none yet, just room for expansion */ 3 10 3 pad1 (6) bit (36) unaligned, 3 11 2 n_requests fixed binary, 3 12 2 requests (0 refer (probe_request_table.n_requests)) like probe_request_info aligned; 3 13 3 14 3 15 dcl 1 probe_request_info aligned based (probe_request_info_ptr), /* info about one request */ 3 16 2 code_loc bit (18) unaligned, /* -> (RTBOS) code sequence to invoke request */ 3 17 2 namelist_loc bit (18) unaligned, /* -> (RTBOS) list of names for this request */ 3 18 2 info_string, 3 19 3 loc bit (18) unaligned, /* -> (RTBOS) short description of request */ 3 20 3 lth fixed binary (17) unaligned, /* length of description (0 if none) */ 3 21 2 usage_string, /* Longer message, giving request usage info */ 3 22 3 loc bit (18) unaligned, 3 23 3 lth bit (18) unaligned, 3 24 2 flags, 3 25 (3 unimplemented, /* ON => request is ot yet implemented */ 3 26 3 secret, /* ON => request is not listed by "?" */ 3 27 3 pad2, 3 28 3 is_request, /* ON => this entry is a probe request */ 3 29 3 is_builtin, /* ON => this entry is a probe builtin */ 3 30 3 pad (31)) bit (1) unaligned; 3 31 3 32 3 33 dcl probe_request_table_ptr pointer; 3 34 dcl probe_request_info_ptr pointer; 3 35 3 36 dcl probe_request_table_version fixed bin internal static options (constant) init (1); 3 37 3 38 dcl probe_request_table_version_1 fixed bin internal static options (constant) init (1); 3 39 3 40 3 41 dcl 1 request_namelist aligned based (request_namelist_ptr), 3 42 2 n_names fixed binary, 3 43 2 names (0 refer (request_namelist.n_names)) character (32); 3 44 3 45 dcl request_namelist_ptr pointer; 3 46 3 47 3 48 dcl request_info_string char (request_info_string_lth) aligned based (request_info_string_ptr); 3 49 dcl request_info_string_ptr pointer; 3 50 dcl request_info_string_lth fixed bin (21); 3 51 3 52 3 53 dcl request_usage_string char (request_usage_string_lth) aligned based (request_usage_string_ptr); 3 54 dcl request_usage_string_ptr pointer; 3 55 dcl request_usage_string_lth fixed bin (21); 3 56 3 57 /* END INCLUDE FILE probe_request_table.incl.pl1 */ 335 336 end; /* probe_request_mgr_ external procedure */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/88 1224.6 probe_request_mgr_.pl1 >spec>install>MR12.2-1194>probe_request_mgr_.pl1 327 1 10/27/88 1223.7 probe_info.incl.pl1 >spec>install>MR12.2-1194>probe_info.incl.pl1 331 2 11/12/82 1624.3 probe_static_info.incl.pl1 >ldd>include>probe_static_info.incl.pl1 335 3 11/26/79 1320.7 probe_request_table.incl.pl1 >ldd>include>probe_request_table.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. P_code parameter fixed bin(35,0) dcl 38 set ref 97 106 162* 168* P_probe_info_ptr parameter pointer dcl 38 ref 97 106 114 178 187 200 P_request_entry parameter entry variable dcl 38 set ref 97 106 123* 153* P_request_info_ptr parameter pointer dcl 38 set ref 97 106 154* P_request_name parameter char packed unaligned dcl 38 set ref 97 106 125 125 131* 144* 157* WANT_ANYTHING constant fixed bin(17,0) initial dcl 84 ref 302 WANT_BUILTIN constant fixed bin(17,0) initial dcl 84 set ref 110 191* 279 302 WANT_REQUEST constant fixed bin(17,0) initial dcl 84 set ref 102 183* 279 302 WHITESPACE constant char(2) initial packed unaligned dcl 81 ref 125 125 125 125 136 addr builtin function dcl 90 ref 120 121 150 154 array_ptr 54 based pointer level 3 dcl 2-8 ref 117 202 array_size 56 based fixed bin(17,0) level 3 dcl 2-8 ref 118 203 code_loc 20 based bit(18) array level 3 packed packed unaligned dcl 3-6 set ref 150 codeptr based pointer level 2 dcl 60 set ref 120* 150* entry_variable 000114 automatic entry variable dcl 57 set ref 120 121 123 150 153 entry_variable_overlay based structure level 1 dcl 60 environmentptr 2 based pointer level 2 dcl 60 set ref 121* flags 23 based structure array level 3 in structure "probe_request_table" dcl 3-6 in procedure "probe_request_mgr_" flags 3 parameter structure level 2 in structure "rinfo" dcl 277 in procedure "interesting" idx 000120 automatic fixed bin(17,0) dcl 65 set ref 210* 212* 236* 237* 297* 298* info_string 1 parameter structure level 2 in structure "rinfo" dcl 277 in procedure "interesting" info_string 21 based structure array level 3 in structure "probe_request_table" dcl 3-6 in procedure "probe_request_mgr_" ioa_ 000010 constant entry external dcl 69 ref 259 ioa_$nnl 000012 constant entry external dcl 70 ref 245 251 263 265 is_builtin 23(04) based bit(1) array level 4 in structure "probe_request_table" packed packed unaligned dcl 3-6 in procedure "probe_request_mgr_" set ref 302 is_builtin 3(04) parameter bit(1) level 3 in structure "rinfo" packed packed unaligned dcl 277 in procedure "interesting" ref 279 is_request 3(03) parameter bit(1) level 3 in structure "rinfo" packed packed unaligned dcl 277 in procedure "interesting" ref 279 is_request 23(03) based bit(1) array level 4 in structure "probe_request_table" packed packed unaligned dcl 3-6 in procedure "probe_request_mgr_" set ref 302 jdx 000121 automatic fixed bin(17,0) dcl 65 set ref 214* 217 218* 239* 241 242 254 256* 300* 302 302 307 312* kdx 000122 automatic fixed bin(17,0) dcl 65 set ref 264* 265 265* 310* 311* length builtin function dcl 90 ref 125 221 221 227 loc 21 based bit(18) array level 4 packed packed unaligned dcl 3-6 set ref 254 lth 1(18) parameter fixed bin(17,0) level 3 in structure "rinfo" packed packed unaligned dcl 277 in procedure "interesting" ref 279 lth 21(18) based fixed bin(17,0) array level 4 in structure "probe_request_table" packed packed unaligned dcl 3-6 in procedure "probe_request_mgr_" set ref 256 ltrim builtin function dcl 90 ref 125 125 max builtin function dcl 90 ref 221 227 n_names based fixed bin(17,0) level 2 dcl 3-41 ref 221 245 261 264 265 310 n_requests 17 based fixed bin(17,0) level 2 dcl 3-6 ref 214 239 300 name_size 000123 automatic fixed bin(17,0) dcl 66 set ref 208* 221* 221 227* 227 245* 251* namelist_loc 20(18) based bit(18) array level 3 packed packed unaligned dcl 3-6 set ref 218 242 307 names 1 based char(32) array level 2 dcl 3-41 set ref 221 221 227 245 245 251* 265* 311 null builtin function dcl 90 ref 120 121 321 pointer builtin function dcl 90 ref 150 218 242 254 307 probe_error_$record 000014 constant entry external dcl 72 ref 131 137 144 157 probe_et_$invalid_request 000016 external static fixed bin(35,0) dcl 74 set ref 131* 137* probe_et_$recorded_message 000024 external static fixed bin(35,0) dcl 74 ref 168 probe_et_$unimplemented_request 000022 external static fixed bin(35,0) dcl 74 set ref 157* probe_et_$unknown_request 000020 external static fixed bin(35,0) dcl 74 set ref 144* probe_info based structure level 1 dcl 1-18 probe_info_ptr 000126 automatic pointer dcl 1-86 set ref 114* 117 118 131* 137* 144* 157* 200* 202 203 probe_request_info based structure level 1 dcl 3-15 probe_request_table based structure level 1 dcl 3-6 probe_request_table_ptr 000130 automatic pointer dcl 3-33 set ref 150 150 154 156 212* 214 217 218 218 237* 239 241 242 242 254 254 256 298* 300 302 302 307 307 321* probe_static_info based structure level 1 dcl 2-8 request_idx 000113 automatic fixed bin(17,0) dcl 55 set ref 143 150 154 156 312* 320* request_info_string based char dcl 3-48 set ref 259* request_info_string_lth 000136 automatic fixed bin(21,0) dcl 3-50 set ref 256* 259 259 request_info_string_ptr 000134 automatic pointer dcl 3-49 set ref 254* 259 request_name 000100 automatic char(32) packed unaligned dcl 47 set ref 125* 136 311 request_namelist based structure level 1 dcl 3-41 request_namelist_ptr 000132 automatic pointer dcl 3-45 set ref 218* 221 221 221 227 242* 245 245 245 251 261 264 265 265 307* 310 311 request_table_array_ptr 000110 automatic pointer dcl 49 set ref 117* 202* 212 237 298 request_table_array_size 000112 automatic fixed bin(17,0) dcl 50 set ref 118* 203* 210 236 297 request_table_info 54 based structure level 2 dcl 2-8 request_table_ptrs based pointer array dcl 52 ref 212 237 298 requests 20 based structure array level 2 dcl 3-6 set ref 154 217* 241* rinfo parameter structure level 1 dcl 277 ref 275 rtrim builtin function dcl 90 ref 125 125 221 221 227 245 secret 3(01) parameter bit(1) level 3 packed packed unaligned dcl 277 ref 279 static_info_ptr 1 based pointer level 2 packed packed unaligned dcl 1-18 ref 117 118 202 203 type_wanted 000124 automatic fixed bin(17,0) dcl 67 set ref 102* 110* 302 302 302 typew parameter fixed bin(17,0) dcl 198 ref 195 279 279 unimplemented 3 parameter bit(1) level 3 in structure "rinfo" packed packed unaligned dcl 277 in procedure "interesting" ref 279 unimplemented 23 based bit(1) array level 4 in structure "probe_request_table" packed packed unaligned dcl 3-6 in procedure "probe_request_mgr_" set ref 156 verify builtin function dcl 90 ref 136 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. expression_area based area(1024) dcl 1-95 probe_area based area(1024) dcl 1-93 probe_exclude_names based char(168) array packed unaligned dcl 2-94 probe_info_directories based char(168) array packed unaligned dcl 2-91 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_info_ptr automatic pointer dcl 3-34 probe_request_table_version internal static fixed bin(17,0) initial dcl 3-36 probe_request_table_version_1 internal static fixed bin(17,0) initial dcl 3-38 probe_request_tables based pointer array dcl 2-88 probe_seg_info_array based structure level 1 dcl 2-82 request_usage_string based char dcl 3-53 request_usage_string_lth automatic fixed bin(21,0) dcl 3-55 request_usage_string_ptr automatic pointer dcl 3-54 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. FIND_COMMON 000125 constant label dcl 114 set ref 103 111 MAIN_RETURN 000377 constant label dcl 164 set ref 170 RECORDED_MESSAGE 000400 constant label dcl 168 ref 133 138 146 159 find_builtin 000107 constant entry external dcl 106 find_request 000067 constant entry external dcl 97 interesting 001103 constant entry internal dcl 275 ref 217 241 list_common 000432 constant entry internal dcl 195 ref 183 191 locate_request 001154 constant entry internal dcl 291 ref 141 probe_request_mgr_ 000054 constant entry external dcl 25 probe_request_mgr_$list_builtins 000422 constant entry external dcl 187 probe_request_mgr_$list_requests 000410 constant entry external dcl 178 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1676 1724 1500 1706 Length 2200 1500 26 237 176 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_request_mgr_ 181 external procedure is an external procedure. list_common internal procedure shares stack frame of external procedure probe_request_mgr_. interesting internal procedure shares stack frame of external procedure probe_request_mgr_. locate_request internal procedure shares stack frame of external procedure probe_request_mgr_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_request_mgr_ 000100 request_name probe_request_mgr_ 000110 request_table_array_ptr probe_request_mgr_ 000112 request_table_array_size probe_request_mgr_ 000113 request_idx probe_request_mgr_ 000114 entry_variable probe_request_mgr_ 000120 idx probe_request_mgr_ 000121 jdx probe_request_mgr_ 000122 kdx probe_request_mgr_ 000123 name_size probe_request_mgr_ 000124 type_wanted probe_request_mgr_ 000126 probe_info_ptr probe_request_mgr_ 000130 probe_request_table_ptr probe_request_mgr_ 000132 request_namelist_ptr probe_request_mgr_ 000134 request_info_string_ptr probe_request_mgr_ 000136 request_info_string_lth probe_request_mgr_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc return_mac shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ ioa_$nnl probe_error_$record THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. probe_et_$invalid_request probe_et_$recorded_message probe_et_$unimplemented_request probe_et_$unknown_request LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 25 000053 28 000061 97 000062 102 000102 103 000104 106 000105 110 000122 111 000124 114 000125 117 000131 118 000134 120 000136 121 000140 123 000141 125 000146 131 000203 133 000233 136 000234 137 000246 138 000263 141 000264 143 000265 144 000270 146 000321 150 000322 153 000332 154 000340 156 000342 157 000345 159 000375 162 000376 164 000377 168 000400 170 000404 178 000405 183 000415 184 000417 187 000420 191 000427 192 000431 195 000432 200 000434 202 000440 203 000443 208 000445 210 000446 212 000455 214 000461 217 000471 218 000506 221 000516 227 000553 231 000570 232 000572 236 000574 237 000603 239 000607 241 000617 242 000634 245 000644 251 000733 254 000762 256 000771 259 000775 261 001007 263 001012 264 001025 265 001035 268 001074 271 001076 272 001100 273 001102 275 001103 279 001105 291 001154 297 001155 298 001165 300 001171 302 001201 307 001224 310 001232 311 001241 312 001250 313 001252 315 001253 317 001255 318 001257 320 001261 321 001263 322 001265 ----------------------------------------------------------- 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