COMPILATION LISTING OF SEGMENT ssu_ec_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1533.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /* Subsystem exec_com processing including the exec_com request */ 9 10 /* Created: by Spencer Love & Jay Pattin */ 11 /* Modified: 14 February 1982 by G. Palter for new calling sequence of exec_com_info.eval_string */ 12 /* Modified: 8 July 1982 by Jay Pattin to add execute_start_up */ 13 14 /* format: style4,delnl,insnl,ifthenstmt,ifthen */ 15 16 17 ssu_ec_: 18 procedure (); 19 20 return; /* not an entrypoint */ 21 22 23 /* Parameters */ 24 25 dcl P_sci_ptr pointer parameter; 26 27 dcl P_info_ptr pointer parameter; /* exec_com: -> subsystem's internal data (not used) */ 28 29 dcl P_ec_suffix character (32) parameter; /* set_suffix: the new suffix used to find exec_com's */ 30 31 dcl P_ec_search_list character (32) parameter; /* set_search_list: the new search list used to find 32* exec_com's; a null string => no search list will be used */ 33 34 dcl P_subsystem_dir_ptr pointer parameter; /* set_subsystem_ptr: new value to implement referencing dir 35* search rule in the subsystem's exec_com search path */ 36 37 38 /* Remaining declarations */ 39 40 dcl based_code fixed binary (35) based (code_ptr); 41 dcl code_ptr pointer; 42 43 dcl based_pointer pointer based; 44 45 dcl arg_count fixed binary; 46 47 dcl arg character (arg_len) based (arg_ptr); 48 dcl arg_len fixed binary (21); 49 dcl (arg_list_ptr, arg_ptr) pointer; 50 dcl (arg_type, arg_ndims, arg_size, arg_scale) fixed binary; 51 dcl arg_packed bit (1) aligned; 52 dcl exec_com_request bit (1) aligned; 53 54 dcl 1 ec_info aligned like exec_com_info; 55 56 dcl ec_path character (256); 57 dcl ready_enabled bit (1) aligned; 58 dcl status fixed binary (35); 59 60 dcl start_up_dirname character (168); 61 dcl (start_up_ename, project_id) character (32); 62 63 dcl SSU_EC_ character (32) static options (constant) initial ("ssu_ec_"); 64 65 dcl CHASE fixed binary (1) static options (constant) initial (1); 66 67 /* format: off */ 68 dcl (error_table_$bad_arg, error_table_$noentry, ssu_et_$null_request_line, ssu_et_$subsystem_aborted) 69 fixed binary (35) external; 70 /* format: on */ 71 72 dcl cu_$arg_count entry (fixed binary); 73 dcl cu_$arg_list_ptr entry (pointer); 74 dcl cu_$arg_ptr entry (fixed binary, pointer, fixed binary (21), fixed binary (35)); 75 dcl cu_$generate_call entry (entry, pointer); 76 dcl decode_descriptor_ 77 entry (pointer, fixed binary, fixed binary, bit (1) aligned, fixed binary, fixed binary, fixed binary); 78 dcl exec_com_ entry (character (*), character (*), character (*), pointer, fixed binary (35)); 79 dcl exec_com_$find_ec entry (character (*), character (*), character (*), pointer, character (*), fixed binary (35)); 80 dcl hcs_$status_minf 81 entry (character (*), character (*), fixed binary (1), fixed binary (2), fixed binary (24), fixed binary (35)); 82 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 83 dcl ssu_$abort_line entry () options (variable); 84 dcl ssu_$abort_subsystem entry () options (variable); 85 dcl ssu_$arg_list_ptr entry (pointer) returns (pointer); 86 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 87 dcl ssu_$get_request_name entry (pointer) returns (character (32)); 88 dcl ssu_$get_subsystem_and_request_name entry (pointer) returns (character (72) varying); 89 dcl ssu_$evaluate_active_string 90 entry (pointer, pointer, character (*), fixed binary, character (*) varying, fixed binary (35)); 91 dcl ssu_$execute_line entry (pointer, pointer, fixed binary (21), fixed binary (35)); 92 dcl ssu_$return_arg entry (pointer, fixed binary, bit (1) aligned, pointer, fixed binary (21)); 93 dcl sub_err_ entry () options (variable); 94 dcl user_info_ entry (character (*), character (*), character (*)); 95 dcl user_info_$homedir entry (character (*)); 96 97 dcl (addr, null, substr) builtin; 98 99 /* */ 100 101 /* Standard subsystem exec_com request */ 102 103 exec_com: 104 entry (P_sci_ptr, P_info_ptr); 105 106 sci_ptr = P_sci_ptr; 107 exec_com_request = "1"b; 108 109 call ssu_$return_arg (sci_ptr, arg_count, ("0"b), (null ()), (0)); 110 if arg_count < 1 then 111 call ssu_$abort_line (sci_ptr, 0, "Usage is: ^a filename {optional_args}", 112 ssu_$get_request_name (sci_ptr)); 113 114 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_len); 115 116 call exec_com_$find_ec (arg, sci.ec_suffix, sci.ec_search_list, sci.subsystem_dir_ptr, ec_path, status); 117 if status ^= 0 then call ssu_$abort_line (sci_ptr, status, "^a", arg); 118 119 ready_enabled = "0"b; 120 121 ec_info.version = exec_com_info_version_1; 122 ec_info.arg_list_ptr = ssu_$arg_list_ptr (sci_ptr); 123 ec_info.first_arg = 2; 124 ec_info.execute_line = cp_entry; 125 ec_info.eval_string = af_entry; 126 ec_info.ready = rdy_entry; 127 ec_info.set_ready_mode = rdy_mode_entry; 128 ec_info.error = error_entry; 129 130 call exec_com_ (ec_path, " ", ssu_$get_subsystem_and_request_name (sci_ptr), addr (ec_info), status); 131 if status ^= 0 then call ssu_$abort_line (sci_ptr, status, "^a", ec_path); 132 133 return; 134 135 /* */ 136 137 /* format: off */ 138 /* Execute a subsystem's start_up exec_com: searches for the exec_com in the user's home directory, the project directory, 139* and finally >site. Calling sequence is: 140* call ssu_$execute_start__up (sci_ptr, code, {start_up_arg_1 ... start_up_arg_N}); */ 141 /* format: on */ 142 143 execute_start_up: 144 entry () options (variable); 145 146 exec_com_request = "0"b; 147 148 call cu_$arg_count (arg_count); 149 if arg_count = 0 then call ssu_check_sci (null ()); 150 151 call cu_$arg_list_ptr (arg_list_ptr); 152 153 154 /* Pick up the sci_ptr (1st argument): must be an unpacked pointer */ 155 156 call cu_$arg_ptr (1, arg_ptr, (0), (0)); 157 158 call decode_descriptor_ (arg_list_ptr, 1, arg_type, arg_packed, arg_ndims, arg_size, arg_scale); 159 if arg_type ^= pointer_dtype | arg_packed ^= "0"b | arg_ndims ^= 0 then call ssu_check_sci (null ()); 160 161 sci_ptr = arg_ptr -> based_pointer; /* got one */ 162 call ssu_check_sci (sci_ptr); 163 164 165 /* Find the error code (2nd argument): must be fixed binary (35) aligned */ 166 167 call cu_$arg_ptr (2, code_ptr, (0), (0)); 168 169 call decode_descriptor_ (arg_list_ptr, 2, arg_type, arg_packed, arg_ndims, arg_size, arg_scale); 170 if arg_type ^= real_fix_bin_1_dtype | arg_packed then do; 171 RESIGNAL_BAD_CODE: 172 call sub_err_ (error_table_$bad_arg, SSU_EC_, ACTION_CANT_RESTART, null (), (0), 173 "The second argument must be declared fixed binary (35) aligned."); 174 go to RESIGNAL_BAD_CODE; 175 end; 176 177 178 /* Try to locate the start_up exec_com */ 179 180 start_up_ename = "start_up." || sci.ec_info.ec_suffix; 181 182 call user_info_$homedir (start_up_dirname); 183 184 if ^exists (start_up_dirname, start_up_ename) then do; 185 call user_info_ (((32)" "), project_id, ((32)" ")); 186 start_up_dirname = ">udd>" || project_id; 187 188 if ^exists (start_up_dirname, start_up_ename) then do; 189 start_up_dirname = ">site"; 190 191 if ^exists (start_up_dirname, start_up_ename) then do; 192 status = error_table_$noentry; 193 go to RETURN_FROM_EXECUTE_START_UP; 194 end; 195 end; 196 end; 197 198 199 /* Control arrives here iff we found a start_up: execute it */ 200 201 ready_enabled = "0"b; 202 203 ec_info.version = exec_com_info_version_1; 204 ec_info.arg_list_ptr = arg_list_ptr; 205 ec_info.first_arg = 3; 206 ec_info.execute_line = cp_entry; 207 ec_info.eval_string = af_entry; 208 ec_info.ready = rdy_entry; 209 ec_info.set_ready_mode = rdy_mode_entry; 210 ec_info.error = error_entry; 211 212 call exec_com_ (pathname_ (start_up_dirname, start_up_ename), " ", 213 ssu_$get_subsystem_and_request_name (sci_ptr), addr (ec_info), status); 214 215 RETURN_FROM_EXECUTE_START_UP: 216 based_code = status; 217 218 return; 219 220 221 222 /* Determines if a given branch exists */ 223 224 exists: 225 procedure (p_dirname, p_ename) returns (bit (1) aligned); 226 227 dcl (p_dirname, p_ename) character (*) parameter; 228 dcl type fixed binary (2); 229 230 call hcs_$status_minf (p_dirname, p_ename, CHASE, type, (0), status); 231 232 if (status = 0) & (type > 0) then 233 return ("1"b); 234 else return ("0"b); 235 236 end exists; 237 238 /* */ 239 240 /* Converts exec_com_'s call to cu_$cp into a call to ssu_$execute_line */ 241 242 cp_entry: 243 procedure (p_com_line_ptr, p_com_line_len, p_status); 244 245 dcl p_com_line_ptr pointer parameter; 246 dcl p_com_line_len fixed binary (21) parameter; 247 dcl p_status fixed binary (35) parameter; 248 249 call ssu_$execute_line (sci_ptr, p_com_line_ptr, p_com_line_len, p_status); 250 251 if p_status = ssu_et_$subsystem_aborted then 252 if exec_com_request then 253 call ssu_$abort_subsystem (sci_ptr); 254 else do; 255 status = p_status; 256 go to RETURN_FROM_EXECUTE_START_UP; 257 end; 258 259 if p_status = ssu_et_$null_request_line then p_status = 100; 260 /* it thinks it's calling the command_processor_ */ 261 262 return; 263 264 end cp_entry; 265 266 267 268 /* Converts exec_com_'s call to cu_$evaluate_active_string into a call to ssu_$evaluate_active_string */ 269 270 af_entry: 271 procedure (p_info_ptr, p_active_string, p_active_string_type, p_return_value, p_status); 272 273 dcl p_info_ptr pointer parameter; 274 dcl p_active_string character (*) parameter; 275 dcl p_active_string_type fixed binary parameter; 276 dcl p_return_value character (*) varying parameter; 277 dcl p_status fixed binary (35) parameter; 278 279 call ssu_$evaluate_active_string (sci_ptr, p_info_ptr, p_active_string, p_active_string_type, p_return_value, 280 p_status); 281 282 if p_status = ssu_et_$subsystem_aborted then 283 if exec_com_request then 284 call ssu_$abort_subsystem (sci_ptr); 285 else do; 286 status = p_status; 287 go to RETURN_FROM_EXECUTE_START_UP; 288 end; 289 290 return; 291 292 end af_entry; 293 294 /* */ 295 296 /* Converts exec_com_'s call to cu_$ready_proc into a call to the subsystems ready procedure when ready messages are 297* enabled from within the exec_com by "&ready on" (initially no ready messages are printed within exec_com's) */ 298 299 rdy_entry: 300 procedure (); 301 302 if ready_enabled then call sci.entries.ready (sci_ptr); 303 304 return; 305 306 end rdy_entry; 307 308 309 310 /* Handles exec_com_'s call to cu_$set_ready_mode */ 311 312 rdy_mode_entry: 313 procedure (p_ready_mode); 314 315 dcl p_ready_mode bit (36) aligned parameter; 316 317 if substr (p_ready_mode, 1, 1) then 318 ready_enabled = "1"b; 319 else ready_enabled = "0"b; 320 321 return; 322 323 end rdy_mode_entry; 324 325 /* */ 326 327 /* Translates exec_com_'s call to com_err_ or active_fnc_err_ into a call to ssu_$abort_line */ 328 329 error_entry: 330 procedure () options (variable); 331 332 dcl arg_list_ptr pointer; 333 dcl display_present fixed binary; 334 335 dcl ptr_desc bit (36) aligned static options (constant) initial ("464000000000"b3); 336 337 dcl 1 arg_list aligned based (arg_list_ptr), 338 2 arg_count fixed binary (16) unaligned, 339 2 code fixed binary (18) unaligned, 340 2 desc_count fixed binary (16) unaligned, 341 2 pad fixed binary (18) unaligned, 342 2 arg_ptrs (arg_list.arg_count) pointer, 343 2 display_ptr (display_present) pointer, 344 2 desc_ptrs (arg_list.desc_count) pointer; 345 346 call cu_$arg_list_ptr (arg_list_ptr); 347 if arg_list.arg_count < 2 then call ssu_$abort_line (sci_ptr, 0, "Error entry called with too few arguments."); 348 if arg_list.arg_count ^= arg_list.desc_count then 349 call ssu_$abort_line (sci_ptr, 0, "Error entry called with no descriptors."); 350 351 if arg_list.code = 8 then 352 display_present = 1; 353 else display_present = 0; 354 355 begin; 356 357 dcl 1 auto_arg_list aligned like arg_list; 358 359 auto_arg_list = arg_list; 360 auto_arg_list.arg_ptrs (2) = auto_arg_list.arg_ptrs (1); 361 auto_arg_list.desc_ptrs (2) = auto_arg_list.desc_ptrs (1); 362 auto_arg_list.arg_ptrs (1) = addr (sci_ptr); 363 auto_arg_list.desc_ptrs (1) = addr (ptr_desc); 364 365 call cu_$generate_call (ssu_$abort_line, addr (auto_arg_list)); 366 end; 367 368 return; /* never executed */ 369 370 end error_entry; 371 372 /* */ 373 374 /* Sets the suffix for subsystem exec_com segments: the default set at invocation creation time is the subsystem name */ 375 376 set_ec_suffix: 377 entry (P_sci_ptr, P_ec_suffix); 378 379 call ssu_check_sci (P_sci_ptr); 380 381 P_sci_ptr -> sci.ec_suffix = P_ec_suffix; 382 383 return; 384 385 386 387 /* Returns the current subsystem exec_com suffix */ 388 389 get_ec_suffix: 390 entry (P_sci_ptr) returns (character (32)); 391 392 call ssu_check_sci (P_sci_ptr); 393 394 return (P_sci_ptr -> sci.ec_suffix); 395 396 397 398 /* Sets the name of the search list used to locate exec_com's for this subsystem: the default set at invocation creation 399* time is to not use a search list */ 400 401 set_ec_search_list: 402 entry (P_sci_ptr, P_ec_search_list); 403 404 call ssu_check_sci (P_sci_ptr); 405 406 P_sci_ptr -> sci.ec_search_list = P_ec_search_list; 407 408 return; 409 410 411 412 /* Returns the current exec_com search list */ 413 414 get_ec_search_list: 415 entry (P_sci_ptr) returns (character (32)); 416 417 call ssu_check_sci (P_sci_ptr); 418 419 return (P_sci_ptr -> sci.ec_search_list); 420 421 422 423 /* Sets the pointer used to implement the referencing_dir search path of the subsystem's exec_com search list: the pointer 424* should locate any segment in the desired directory. Eventually, this pointer will be used to implement the 425* subsystem_dir search path (when subsystem_dir is implemented) */ 426 427 set_ec_subsystem_ptr: 428 entry (P_sci_ptr, P_subsystem_dir_ptr); 429 430 call ssu_check_sci (P_sci_ptr); 431 432 P_sci_ptr -> sci.ec_info.subsystem_dir_ptr = P_subsystem_dir_ptr; 433 434 return; 435 436 437 438 /* Returns the current pointer used to implement the referencing_dir search path */ 439 440 get_ec_subsystem_ptr: 441 entry (P_sci_ptr) returns (pointer); 442 443 call ssu_check_sci (P_sci_ptr); 444 445 return (P_sci_ptr -> sci.subsystem_dir_ptr); 446 447 /* */ 448 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 * * * * * */ 449 450 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 */ 451 452 5 1 /* BEGIN INCLUDE FILE ... exec_com_info.incl.pl1 */ 5 2 5 3 /* Information needed by exec_com_ */ 5 4 5 5 declare exec_com_info_ptr ptr; 5 6 5 7 declare 1 exec_com_info aligned based (exec_com_info_ptr), 5 8 2 version fixed bin, 5 9 2 arg_list_ptr ptr, 5 10 2 first_arg fixed bin, 5 11 2 execute_line entry (ptr, fixed bin (21), fixed bin (35)), 5 12 2 eval_string entry (ptr, char (*), fixed bin, char (*) var, fixed bin (35)), 5 13 2 ready entry (), 5 14 2 set_ready_mode entry (1 aligned, 2 bit (1) unal, 2 bit (35) unal), 5 15 2 error entry options (variable); 5 16 5 17 declare exec_com_info_version_1 fixed bin internal static init (1); 5 18 5 19 /* END INCLUDE FILE ... exec_com_info.incl.pl1 */ 453 454 6 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 6 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 6 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 6 8* Objects of this type are PASCAL string types. 6 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 6 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 6 11* Added the new C types. 6 12* END HISTORY COMMENTS */ 6 13 6 14 /* This include file defines mnemonic names for the Multics 6 15* standard descriptor types, using both pl1 and cobol terminology. 6 16* PG 780613 6 17* JRD 790530 6 18* JRD 791016 6 19* MBW 810731 6 20* TGO 830614 Add hex types. 6 21* Modified June 83 JMAthane to add PASCAL data types 6 22* TGO 840120 Add float dec extended and generic, float binary generic 6 23**/ 6 24 6 25 dcl (real_fix_bin_1_dtype init (1), 6 26 real_fix_bin_2_dtype init (2), 6 27 real_flt_bin_1_dtype init (3), 6 28 real_flt_bin_2_dtype init (4), 6 29 cplx_fix_bin_1_dtype init (5), 6 30 cplx_fix_bin_2_dtype init (6), 6 31 cplx_flt_bin_1_dtype init (7), 6 32 cplx_flt_bin_2_dtype init (8), 6 33 real_fix_dec_9bit_ls_dtype init (9), 6 34 real_flt_dec_9bit_dtype init (10), 6 35 cplx_fix_dec_9bit_ls_dtype init (11), 6 36 cplx_flt_dec_9bit_dtype init (12), 6 37 pointer_dtype init (13), 6 38 offset_dtype init (14), 6 39 label_dtype init (15), 6 40 entry_dtype init (16), 6 41 structure_dtype init (17), 6 42 area_dtype init (18), 6 43 bit_dtype init (19), 6 44 varying_bit_dtype init (20), 6 45 char_dtype init (21), 6 46 varying_char_dtype init (22), 6 47 file_dtype init (23), 6 48 real_fix_dec_9bit_ls_overp_dtype init (29), 6 49 real_fix_dec_9bit_ts_overp_dtype init (30), 6 50 real_fix_bin_1_uns_dtype init (33), 6 51 real_fix_bin_2_uns_dtype init (34), 6 52 real_fix_dec_9bit_uns_dtype init (35), 6 53 real_fix_dec_9bit_ts_dtype init (36), 6 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 6 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 6 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 6 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 6 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 6 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 6 60 real_flt_dec_4bit_bytealigned_dtype init (44), 6 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 6 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 6 63 real_flt_hex_1_dtype init (47), 6 64 real_flt_hex_2_dtype init (48), 6 65 cplx_flt_hex_1_dtype init (49), 6 66 cplx_flt_hex_2_dtype init (50), 6 67 c_typeref_dtype init (54), 6 68 c_enum_dtype init (55), 6 69 c_enum_const_dtype init (56), 6 70 c_union_dtype init (57), 6 71 algol68_straight_dtype init (59), 6 72 algol68_format_dtype init (60), 6 73 algol68_array_descriptor_dtype init (61), 6 74 algol68_union_dtype init (62), 6 75 6 76 cobol_comp_6_dtype init (1), 6 77 cobol_comp_7_dtype init (1), 6 78 cobol_display_ls_dtype init (9), 6 79 cobol_structure_dtype init (17), 6 80 cobol_char_string_dtype init (21), 6 81 cobol_display_ls_overp_dtype init (29), 6 82 cobol_display_ts_overp_dtype init (30), 6 83 cobol_display_uns_dtype init (35), 6 84 cobol_display_ts_dtype init (36), 6 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 6 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 6 87 cobol_comp_5_uns_dtype init (40), 6 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 6 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 6 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 6 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 6 92 cplx_flt_dec_generic_dtype init (84), 6 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 6 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 6 95 6 96 dcl (ft_integer_dtype init (1), 6 97 ft_real_dtype init (3), 6 98 ft_double_dtype init (4), 6 99 ft_complex_dtype init (7), 6 100 ft_complex_double_dtype init (8), 6 101 ft_external_dtype init (16), 6 102 ft_logical_dtype init (19), 6 103 ft_char_dtype init (21), 6 104 ft_hex_real_dtype init (47), 6 105 ft_hex_double_dtype init (48), 6 106 ft_hex_complex_dtype init (49), 6 107 ft_hex_complex_double_dtype init (50) 6 108 ) fixed bin internal static options (constant); 6 109 6 110 dcl (algol68_short_int_dtype init (1), 6 111 algol68_int_dtype init (1), 6 112 algol68_long_int_dtype init (2), 6 113 algol68_real_dtype init (3), 6 114 algol68_long_real_dtype init (4), 6 115 algol68_compl_dtype init (7), 6 116 algol68_long_compl_dtype init (8), 6 117 algol68_bits_dtype init (19), 6 118 algol68_bool_dtype init (19), 6 119 algol68_char_dtype init (21), 6 120 algol68_byte_dtype init (21), 6 121 algol68_struct_struct_char_dtype init (22), 6 122 algol68_struct_struct_bool_dtype init (20) 6 123 ) fixed bin internal static options (constant); 6 124 6 125 dcl (label_constant_runtime_dtype init (24), 6 126 int_entry_runtime_dtype init (25), 6 127 ext_entry_runtime_dtype init (26), 6 128 ext_procedure_runtime_dtype init (27), 6 129 picture_runtime_dtype init (63) 6 130 ) fixed bin internal static options (constant); 6 131 6 132 dcl (pascal_integer_dtype init (1), 6 133 pascal_real_dtype init (4), 6 134 pascal_label_dtype init (24), 6 135 pascal_internal_procedure_dtype init (25), 6 136 pascal_exportable_procedure_dtype init (26), 6 137 pascal_imported_procedure_dtype init (27), 6 138 pascal_typed_pointer_type_dtype init (64), 6 139 pascal_char_dtype init (65), 6 140 pascal_boolean_dtype init (66), 6 141 pascal_record_file_type_dtype init (67), 6 142 pascal_record_type_dtype init (68), 6 143 pascal_set_dtype init (69), 6 144 pascal_enumerated_type_dtype init (70), 6 145 pascal_enumerated_type_element_dtype init (71), 6 146 pascal_enumerated_type_instance_dtype init (72), 6 147 pascal_user_defined_type_dtype init (73), 6 148 pascal_user_defined_type_instance_dtype init (74), 6 149 pascal_text_file_dtype init (75), 6 150 pascal_procedure_type_dtype init (76), 6 151 pascal_variable_formal_parameter_dtype init (77), 6 152 pascal_value_formal_parameter_dtype init (78), 6 153 pascal_entry_formal_parameter_dtype init (79), 6 154 pascal_parameter_procedure_dtype init (80), 6 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 6 156 6 157 6 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 455 456 7 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 7 2 /* format: style3 */ 7 3 7 4 /* These constants are to be used for the flags argument of sub_err_ */ 7 5 /* They are just "string (condition_info_header.action_flags)" */ 7 6 7 7 declare ( 7 8 ACTION_CAN_RESTART init (""b), 7 9 ACTION_CANT_RESTART init ("1"b), 7 10 ACTION_DEFAULT_RESTART 7 11 init ("01"b), 7 12 ACTION_QUIET_RESTART 7 13 init ("001"b), 7 14 ACTION_SUPPORT_SIGNAL 7 15 init ("0001"b) 7 16 ) bit (36) aligned internal static options (constant); 7 17 7 18 /* End include file */ 457 458 459 end ssu_ec_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.0 ssu_ec_.pl1 >special_ldd>install>MR12.2-1184>ssu_ec_.pl1 449 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 451 4 01/21/85 0912.2 _ssu_sci.incl.pl1 >ldd>include>_ssu_sci.incl.pl1 453 5 04/13/82 1620.2 exec_com_info.incl.pl1 >ldd>include>exec_com_info.incl.pl1 455 6 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 457 7 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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 000052 constant bit(36) initial dcl 7-7 in procedure "ssu_ec_" set ref 171* ACTION_CANT_RESTART 000052 constant bit(36) initial dcl 3-7 in procedure "ssu_check_sci" set ref 1-42* 1-48* 1-56* CHASE 000056 constant fixed bin(1,0) initial dcl 65 set ref 230* ITS_MODIFIER constant bit(6) initial packed unaligned dcl 2-55 ref 1-41 P_ec_search_list parameter char(32) packed unaligned dcl 31 ref 401 406 P_ec_suffix parameter char(32) packed unaligned dcl 29 ref 376 381 P_info_ptr parameter pointer dcl 27 ref 103 P_sci_ptr parameter pointer dcl 25 set ref 103 106 376 379* 381 389 392* 394 401 404* 406 414 417* 419 427 430* 432 440 443* 445 P_subsystem_dir_ptr parameter pointer dcl 34 ref 427 432 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* SSU_EC_ 000012 constant char(32) initial packed unaligned dcl 63 set ref 171* addr builtin function dcl 97 ref 130 130 212 212 362 363 365 365 1-41 arg based char packed unaligned dcl 47 set ref 116* 117* arg_count 000102 automatic fixed bin(17,0) dcl 45 in procedure "ssu_ec_" set ref 109* 110 148* 149 arg_count based fixed bin(16,0) level 2 in structure "arg_list" packed packed unaligned dcl 337 in procedure "error_entry" ref 347 348 357 359 361 361 363 arg_len 000103 automatic fixed bin(21,0) dcl 48 set ref 114* 116 116 117 117 arg_list based structure level 1 dcl 337 ref 359 arg_list_ptr 000104 automatic pointer dcl 49 in procedure "ssu_ec_" set ref 151* 158* 169* 204 arg_list_ptr 000100 automatic pointer dcl 332 in procedure "error_entry" set ref 346* 347 348 348 351 357 357 359 359 359 361 361 363 arg_list_ptr 2 000116 automatic pointer level 2 in structure "ec_info" dcl 54 in procedure "ssu_ec_" set ref 122* 204* arg_ndims 000111 automatic fixed bin(17,0) dcl 50 set ref 158* 159 169* arg_packed 000114 automatic bit(1) dcl 51 set ref 158* 159 169* 170 arg_ptr 000106 automatic pointer dcl 49 set ref 114* 116 117 156* 161 arg_scale 000113 automatic fixed bin(17,0) dcl 50 set ref 158* 169* arg_size 000112 automatic fixed bin(17,0) dcl 50 set ref 158* 169* arg_type 000110 automatic fixed bin(17,0) dcl 50 set ref 158* 159 169* 170 auto_arg_list 000100 automatic structure level 1 dcl 357 set ref 359* 365 365 based_code based fixed bin(35,0) dcl 40 set ref 215* based_pointer based pointer dcl 43 ref 161 code 0(17) based fixed bin(18,0) level 2 packed packed unaligned dcl 337 ref 351 code_ptr 000100 automatic pointer dcl 41 set ref 167* 215 cu_$arg_count 000020 constant entry external dcl 72 ref 148 cu_$arg_list_ptr 000022 constant entry external dcl 73 ref 151 346 cu_$arg_ptr 000024 constant entry external dcl 74 ref 156 167 cu_$generate_call 000026 constant entry external dcl 75 ref 365 decode_descriptor_ 000030 constant entry external dcl 76 ref 158 169 desc_count 1 based fixed bin(16,0) level 2 packed packed unaligned dcl 337 ref 348 357 359 display_present 000102 automatic fixed bin(17,0) dcl 333 set ref 351* 353* 357 359 361 361 363 ec_info 000116 automatic structure level 1 dcl 54 in procedure "ssu_ec_" set ref 130 130 212 212 ec_info 122 based structure level 2 in structure "sci" dcl 4-14 in procedure "ssu_ec_" ec_path 000150 automatic char(256) packed unaligned dcl 56 set ref 116* 130* 131* ec_search_list 132 based char(32) level 3 packed packed unaligned dcl 4-14 set ref 116* 406* 419 ec_suffix 122 based char(32) level 3 packed packed unaligned dcl 4-14 set ref 116* 180 381* 394 entries 144 based structure level 2 dcl 4-14 error 26 000116 automatic entry variable level 2 dcl 54 set ref 128* 210* error_table_$bad_arg 000010 external static fixed bin(35,0) dcl 68 set ref 171* error_table_$bad_ptr 000072 external static fixed bin(35,0) dcl 1-33 set ref 1-42* error_table_$noentry 000012 external static fixed bin(35,0) dcl 68 ref 192 error_table_$null_info_ptr 000074 external static fixed bin(35,0) dcl 1-34 set ref 1-48* error_table_$unimplemented_version 000076 external static fixed bin(35,0) dcl 1-35 set ref 1-56* eval_string 12 000116 automatic entry variable level 2 dcl 54 set ref 125* 207* exec_com_ 000032 constant entry external dcl 78 ref 130 212 exec_com_$find_ec 000034 constant entry external dcl 79 ref 116 exec_com_info based structure level 1 dcl 5-7 exec_com_info_version_1 constant fixed bin(17,0) initial dcl 5-17 ref 121 203 exec_com_request 000115 automatic bit(1) dcl 52 set ref 107* 146* 251 282 execute_line 6 000116 automatic entry variable level 2 dcl 54 set ref 124* 206* first_arg 4 000116 automatic fixed bin(17,0) level 2 dcl 54 set ref 123* 205* hcs_$status_minf 000036 constant entry external dcl 80 ref 230 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 null builtin function dcl 97 in procedure "ssu_ec_" ref 109 149 149 159 159 171 171 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 p_active_string parameter char packed unaligned dcl 274 set ref 270 279* p_active_string_type parameter fixed bin(17,0) dcl 275 set ref 270 279* p_com_line_len parameter fixed bin(21,0) dcl 246 set ref 242 249* p_com_line_ptr parameter pointer dcl 245 set ref 242 249* p_dirname parameter char packed unaligned dcl 227 set ref 224 230* p_ename parameter char packed unaligned dcl 227 set ref 224 230* p_info_ptr parameter pointer dcl 273 set ref 270 279* p_ready_mode parameter bit(36) dcl 315 ref 312 317 p_return_value parameter varying char dcl 276 set ref 270 279* 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_status parameter fixed bin(35,0) dcl 247 in procedure "cp_entry" set ref 242 249* 251 255 259 259* p_status parameter fixed bin(35,0) dcl 277 in procedure "af_entry" set ref 270 279* 282 286 pathname_ 000040 constant entry external dcl 82 ref 212 212 pointer_dtype constant fixed bin(17,0) initial dcl 6-25 ref 159 project_id 000334 automatic char(32) packed unaligned dcl 61 set ref 185* 186 ptr_desc 000057 constant bit(36) initial dcl 335 set ref 363 ready 16 000116 automatic entry variable level 2 in structure "ec_info" dcl 54 in procedure "ssu_ec_" set ref 126* 208* ready 174 based entry variable level 3 in structure "sci" dcl 4-14 in procedure "ssu_ec_" ref 302 ready_enabled 000250 automatic bit(1) dcl 57 set ref 119* 201* 302 317* 319* real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 6-25 ref 170 sci based structure level 1 dcl 4-14 sci_ptr 000344 automatic pointer dcl 4-94 set ref 106* 109* 110* 110* 110* 114* 116 116 116 117* 122* 130* 131* 161* 162* 180 212* 249* 251* 279* 282* 302 302* 347* 348* 362 set_ready_mode 22 000116 automatic entry variable level 2 dcl 54 set ref 127* 209* ssu_$abort_line 000042 constant entry external dcl 83 ref 110 117 131 347 348 365 365 ssu_$abort_subsystem 000044 constant entry external dcl 84 ref 251 282 ssu_$arg_list_ptr 000046 constant entry external dcl 85 ref 122 ssu_$arg_ptr 000050 constant entry external dcl 86 ref 114 ssu_$evaluate_active_string 000056 constant entry external dcl 89 ref 279 ssu_$execute_line 000060 constant entry external dcl 91 ref 249 ssu_$get_request_name 000052 constant entry external dcl 87 ref 110 110 ssu_$get_subsystem_and_request_name 000054 constant entry external dcl 88 ref 130 212 ssu_$return_arg 000062 constant entry external dcl 92 ref 109 ssu_et_$null_request_line 000014 external static fixed bin(35,0) dcl 68 ref 259 ssu_et_$subsystem_aborted 000016 external static fixed bin(35,0) dcl 68 ref 251 282 start_up_dirname 000252 automatic char(168) packed unaligned dcl 60 set ref 182* 184* 186* 188* 189* 191* 212* 212* start_up_ename 000324 automatic char(32) packed unaligned dcl 61 set ref 180* 184* 188* 191* 212* 212* status 000251 automatic fixed bin(35,0) dcl 58 set ref 116* 117 117* 130* 131 131* 192* 212* 215 230* 232 255* 286* sub_err_ 000100 constant entry external dcl 1-37 in procedure "ssu_check_sci" ref 1-42 1-48 1-56 sub_err_ 000064 constant entry external dcl 93 in procedure "ssu_ec_" ref 171 substr builtin function dcl 97 ref 317 subsystem_dir_ptr 142 based pointer level 3 dcl 4-14 set ref 116* 432* 445 type 000356 automatic fixed bin(2,0) dcl 228 set ref 230* 232 unspec builtin function dcl 1-39 ref 1-42 1-42 1-56 1-56 user_info_ 000066 constant entry external dcl 94 ref 185 user_info_$homedir 000070 constant entry external dcl 95 ref 182 version based char(8) level 2 in structure "sci" dcl 4-14 in procedure "ssu_ec_" ref 1-53 1-56 1-56 version 000116 automatic fixed bin(17,0) level 2 in structure "ec_info" dcl 54 in procedure "ssu_ec_" set ref 121* 203* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 7-7 in procedure "ssu_ec_" ACTION_CAN_RESTART internal static bit(36) initial dcl 3-7 in procedure "ssu_check_sci" ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 7-7 in procedure "ssu_ec_" ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 3-7 in procedure "ssu_check_sci" ACTION_QUIET_RESTART internal static bit(36) initial dcl 3-7 in procedure "ssu_check_sci" ACTION_QUIET_RESTART internal static bit(36) initial dcl 7-7 in procedure "ssu_ec_" ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 3-7 in procedure "ssu_check_sci" ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 7-7 in procedure "ssu_ec_" ITP_MODIFIER internal static bit(6) initial packed unaligned dcl 2-56 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 6-25 area_dtype internal static fixed bin(17,0) initial dcl 6-25 bit_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 6-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 6-25 c_union_dtype internal static fixed bin(17,0) initial dcl 6-25 char_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 entry_dtype internal static fixed bin(17,0) initial dcl 6-25 exec_com_info_ptr automatic pointer dcl 5-5 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 file_dtype internal static fixed bin(17,0) initial dcl 6-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 6-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-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 6-125 label_dtype internal static fixed bin(17,0) initial dcl 6-25 offset_dtype internal static fixed bin(17,0) initial dcl 6-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 sci_parent_area based area(1024) dcl 4-96 structure_dtype internal static fixed bin(17,0) initial dcl 6-25 substr builtin function dcl 1-39 varying_bit_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 6-25 NAMES DECLARED BY EXPLICIT CONTEXT. RESIGNAL_BAD_CODE 001011 constant label dcl 171 ref 174 RESIGNAL_BAD_POINTER 002411 constant label dcl 1-42 ref 1-44 RESIGNAL_BAD_VERSION 002543 constant label dcl 1-56 set ref 1-59 RESIGNAL_NULL_POINTER 002471 constant label dcl 1-48 ref 1-50 RETURN_FROM_EXECUTE_START_UP 001322 constant label dcl 215 ref 193 256 287 af_entry 002016 constant entry internal dcl 270 ref 125 207 cp_entry 001735 constant entry internal dcl 242 ref 124 206 error_entry 002166 constant entry internal dcl 329 ref 128 210 exec_com 000211 constant entry external dcl 103 execute_start_up 000612 constant entry external dcl 143 exists 001643 constant entry internal dcl 224 ref 184 188 191 get_ec_search_list 001506 constant entry external dcl 414 get_ec_subsystem_ptr 001607 constant entry external dcl 440 get_ec_suffix 001404 constant entry external dcl 389 rdy_entry 002122 constant entry internal dcl 299 ref 126 208 rdy_mode_entry 002145 constant entry internal dcl 312 ref 127 209 set_ec_search_list 001445 constant entry external dcl 401 set_ec_subsystem_ptr 001547 constant entry external dcl 427 set_ec_suffix 001343 constant entry external dcl 376 ssu_check_sci 002403 constant entry internal dcl 1-26 ref 149 159 162 379 392 404 417 430 443 ssu_ec_ 000165 constant entry external dcl 17 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3332 3434 2650 3342 Length 4050 2650 102 377 462 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ssu_ec_ 456 external procedure is an external procedure. exists internal procedure shares stack frame of external procedure ssu_ec_. cp_entry 74 internal procedure is assigned to an entry variable. af_entry 92 internal procedure is assigned to an entry variable. rdy_entry 72 internal procedure is assigned to an entry variable. rdy_mode_entry 64 internal procedure is assigned to an entry variable. error_entry 98 internal procedure is assigned to an entry variable, and is declared options(variable). begin block on line 355 80 begin block uses auto adjustable storage. ssu_check_sci internal procedure shares stack frame of external procedure ssu_ec_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 355 000100 auto_arg_list begin block on line 355 error_entry 000100 arg_list_ptr error_entry 000102 display_present error_entry ssu_ec_ 000100 code_ptr ssu_ec_ 000102 arg_count ssu_ec_ 000103 arg_len ssu_ec_ 000104 arg_list_ptr ssu_ec_ 000106 arg_ptr ssu_ec_ 000110 arg_type ssu_ec_ 000111 arg_ndims ssu_ec_ 000112 arg_size ssu_ec_ 000113 arg_scale ssu_ec_ 000114 arg_packed ssu_ec_ 000115 exec_com_request ssu_ec_ 000116 ec_info ssu_ec_ 000150 ec_path ssu_ec_ 000250 ready_enabled ssu_ec_ 000251 status ssu_ec_ 000252 start_up_dirname ssu_ec_ 000324 start_up_ename ssu_ec_ 000334 project_id ssu_ec_ 000344 sci_ptr ssu_ec_ 000356 type exists THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp enter_begin_block leave_begin_block call_ent_var_desc call_ext_out_desc call_ext_out return_mac tra_ext_1 alloc_auto_adj signal_op shorten_stack ext_entry int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr cu_$generate_call decode_descriptor_ exec_com_ exec_com_$find_ec hcs_$status_minf pathname_ ssu_$abort_line ssu_$abort_subsystem ssu_$arg_list_ptr ssu_$arg_ptr ssu_$evaluate_active_string ssu_$execute_line ssu_$get_request_name ssu_$get_subsystem_and_request_name ssu_$return_arg sub_err_ sub_err_ user_info_ user_info_$homedir THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bad_ptr error_table_$noentry error_table_$null_info_ptr error_table_$unimplemented_version ssu_et_$null_request_line ssu_et_$subsystem_aborted LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000164 20 000174 103 000205 106 000220 107 000224 109 000226 110 000252 114 000317 116 000336 117 000376 119 000432 121 000433 122 000435 123 000446 124 000450 125 000453 126 000456 127 000461 128 000464 130 000467 131 000545 133 000577 143 000611 146 000621 148 000622 149 000631 151 000637 156 000646 158 000667 159 000714 161 000730 162 000733 167 000735 169 000756 170 001003 171 001011 174 001054 180 001055 182 001071 184 001103 185 001111 186 001137 188 001152 189 001161 191 001164 192 001172 193 001175 201 001176 203 001177 204 001201 205 001203 206 001205 207 001210 208 001213 209 001216 210 001221 212 001224 215 001322 218 001325 376 001337 379 001352 381 001361 383 001370 389 001402 392 001413 394 001422 401 001442 404 001454 406 001463 408 001472 414 001504 417 001515 419 001524 427 001544 430 001556 432 001565 434 001573 440 001605 443 001615 445 001624 459 001642 224 001643 230 001661 232 001721 234 001731 242 001734 249 001742 251 001760 255 002001 256 002002 259 002005 262 002014 270 002015 279 002036 282 002073 286 002114 287 002115 290 002120 299 002121 302 002127 304 002143 312 002144 317 002152 319 002162 321 002164 329 002165 346 002173 347 002201 348 002233 351 002271 353 002301 355 002302 357 002305 359 002327 360 002334 361 002336 362 002350 363 002353 365 002362 366 002401 368 002402 1 26 002403 1 41 002405 1 42 002411 1 44 002464 1 47 002465 1 48 002471 1 50 002533 1 53 002534 1 56 002543 1 59 002617 ----------------------------------------------------------- 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