COMPILATION LISTING OF SEGMENT ls_request_server Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1313.4 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(87-03-10,GDixon), approve(87-07-02,MCR7737), 11* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 12* Initially written. (Resolves dsa 186.) 13* 2) change(87-07-02,GDixon), approve(87-07-02,MCR7737), 14* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 15* Avoid signalling active_function_error condition when invoked as an active 16* function and an error occurs. The charter of this routine is to print the 17* error and return false in this situation. The error should NOT be printed 18* via active_fnc_err_. 19* END HISTORY COMMENTS */ 20 21 ls_request_server: 22 proc; 23 24 dcl code fixed bin(35), 25 operation char(5); 26 27 dcl null builtin; 28 29 dcl cleanup condition; 30 31 dcl get_process_id_ entry() returns(bit(36)), 32 ls_request_server_$init entry (fixed bin(35)), 33 ls_request_server_$shutdown entry (fixed bin(35)), 34 ls_request_server_$start entry (fixed bin(35)); 35 36 dcl ME char(17) int static options(constant) init("ls_request_server"), 37 (error_table_$action_not_performed, 38 error_table_$bad_arg, 39 error_table_$noarg) fixed bin(35) ext static; 40 41 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 42 43 call DATA_init(); 44 on cleanup call CLEANUP(); 45 call ARGS_check (ME, "1.0", ALLOW_COMMAND_AF, exit_proc); 46 call ARGS_process (operation); 47 call USER_check (operation); 48 if operation = "start" then do; 49 call ls_request_server_$init (code); 50 call ERR_fatal (sciP, code, 51 "Initializating login server request server."); 52 call ls_request_server_$start (code); 53 call ERR_fatal (sciP, code, 54 "Starting login server request server."); 55 end; 56 else if operation = "stop" then do; 57 call ls_request_server_$shutdown (code); 58 call ERR_fatal (sciP, code, 59 "Stopping login server request server."); 60 end; 61 call ARG_set_return_value ("true"); 62 call CLEANUP(); 63 return; 64 65 66 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 67 /* */ 68 /* EXIT PROCEDURE: */ 69 /* 1) This procedure is called by ssu_$abort_subsystem when ERR_fatal is */ 70 /* called to report a fatal error. */ 71 /* 2) It does a non-local goto to the EXIT label to stop execution of the */ 72 /* command. */ 73 /* */ 74 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 75 76 exit_proc: 77 proc; 78 go to EXIT; 79 end exit_proc; 80 81 EXIT: call ARG_set_return_value ("false"); 82 call CLEANUP(); 83 return; 84 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 85 86 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 87 /* */ 88 /* ARGUMENT PROCESSING: */ 89 /* Declare variables and subroutines needed for argument processing. */ 90 /* */ 91 /* SEE ARGUMENT PROCESSING PROGRAMS: */ 92 /* ARGS_check, ARG_get */ 93 /* */ 94 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 95 96 dcl af_sw bit(1) aligned, /* on: active fnc*/ 97 arg char(argl) based(argp), 98 argl fixed bin(21), /* current arg */ 99 argp ptr, 100 argn fixed bin, /* arg count */ 101 argx fixed bin, /* arg index */ 102 ret char(retl) varying based(retp), 103 retl fixed bin(21), /* af return val */ 104 retp ptr, 105 sciP ptr; /* ssu_ info ptr */ 106 107 dcl ssu_$abort_subsystem entry() options(variable), 108 ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)), 109 ssu_$destroy_invocation entry (ptr), 110 ssu_$print_message entry() options(variable), 111 ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)), 112 ssu_$standalone_invocation entry (ptr, char(*), char(*), ptr, 113 entry, fixed bin(35)); 114 115 dcl (ALLOW_COMMAND init(1), 116 ALLOW_AF init(2), 117 ALLOW_COMMAND_AF init(3)) fixed bin int static options(constant); 118 119 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 120 /* */ 121 /* CHECK INVOCATION TYPE: */ 122 /* 1) Initialize error handling subroutines. */ 123 /* 2) Determine whether invoked as command or af. */ 124 /* 3) Is this type of invocation allowed? */ 125 /* 4) Initialize af return argument, and index of current argument. */ 126 /* */ 127 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 128 129 130 ARGS_check: 131 proc (caller, version, allowed, exit_procedure); 132 133 dcl caller char(*), 134 version char(*), 135 allowed fixed bin, 136 exit_procedure entry parameter; 137 138 dcl code fixed bin(35); 139 140 dcl com_err_ entry() options(variable), 141 cu_$arg_list_ptr entry returns(ptr); 142 143 dcl (error_table_$active_function, 144 error_table_$not_act_fnc) fixed bin(35) ext static; 145 146 call ssu_$standalone_invocation (sciP, caller, version, 147 cu_$arg_list_ptr(), exit_procedure, code); 148 if code ^= 0 then do; 149 call com_err_ (code, caller, 150 "Error creating standalone ssu_ invocation."); 151 call exit_procedure(); 152 end; 153 154 call ERR_init(); 155 call ssu_$return_arg (sciP, argn, af_sw, retp, retl); 156 if allowed = ALLOW_COMMAND & af_sw then 157 call ERR_fatal (sciP, error_table_$active_function); 158 else if allowed = ALLOW_AF & ^af_sw then 159 call ERR_fatal (sciP, error_table_$not_act_fnc); 160 else if allowed = ALLOW_COMMAND_AF then; 161 if af_sw then 162 ret = "false"; /* Assume failure*/ 163 argx = 0; 164 end ARGS_check; 165 166 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 167 168 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 169 /* */ 170 /* PROCESS INCOMING ARGUMENTS: */ 171 /* */ 172 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 173 174 175 ARGS_process: 176 proc (operation); 177 178 dcl operation char(5); 179 180 operation = ""; 181 do while (ARG_get()); 182 if arg = "start" then 183 operation = arg; 184 else if arg = "stop" then 185 operation = arg; 186 else call ERR (sciP, error_table_$bad_arg, arg); 187 end; 188 if ERR_occurred() then go to EXIT; 189 if operation = "" then 190 call ERR_fatal (sciP, error_table_$noarg, 191 "^/An operation must be given. It can be start or stop."); 192 end ARGS_process; 193 194 195 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 196 /* */ 197 /* ARGUMENT GETTING FUNCTIONS: */ 198 /* ARG_get: Get next argument. */ 199 /* */ 200 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 201 202 ARG_get: proc returns (bit(1)); 203 204 dcl (FALSE init("0"b), 205 TRUE init("1"b)) bit(1) int static options(constant); 206 207 if argx < argn then do; 208 argx = argx + 1; 209 call ssu_$arg_ptr (sciP, argx, argp, argl); 210 return (TRUE); 211 end; 212 else 213 return (FALSE); 214 end ARG_get; 215 216 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 217 218 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 219 /* */ 220 /* ARG_set_return_value: */ 221 /* 1) Set value of AF return string. Do nothing if invoked as a command. */ 222 /* */ 223 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 224 225 ARG_set_return_value: 226 proc (value); 227 228 dcl value char(*); 229 230 if af_sw then 231 ret = value; 232 233 end ARG_set_return_value; 234 235 236 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 237 /* */ 238 /* CLEANUP: */ 239 /* 1) Destroy the ssu_ invocation (releasing temp segs obtained thru ssu_). */ 240 /* */ 241 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 242 243 CLEANUP: proc (); 244 245 if sciP ^= null then 246 call ssu_$destroy_invocation (sciP); 247 248 end CLEANUP; 249 250 251 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 252 /* */ 253 /* DATA INITIALIZATION: */ 254 /* 1) Init vars needed by cleanup handler. */ 255 /* 2) Init vars used by argument processor. */ 256 /* */ 257 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 258 259 DATA_init: 260 proc; 261 262 sciP = null; 263 operation = ""; 264 265 end DATA_init; 266 267 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 268 269 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 270 /* */ 271 /* ERROR REPORTING ROUTINES: */ 272 /* 1) Nonfatal errors set a switch, which can be tested via error_occurred */ 273 /* function. */ 274 /* 2) Fatal errors abort the subsystem by calling ssu_$abort_subsystem, */ 275 /* which calls the main procedure's exit procedure, which branches to the */ 276 /* EXIT label to exit the command. */ 277 /* */ 278 /* Both types of errors suppress (catch and do nothing with) the */ 279 /* active_function_error condition signalled by ssu_$print_message and */ 280 /* ssu_$abort_subsystem when invoked as an active function. Our program */ 281 /* only prints error messages and returns false value; it should never allow */ 282 /* active_function_error condition to reach the outside environment. */ 283 /* */ 284 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 285 286 dcl error_occurred_sw bit(1); 287 288 ERR: proc options (variable); 289 290 dcl code fixed bin(35) based (codep), 291 codep ptr; 292 293 dcl cu_$arg_list_ptr entry returns(ptr), 294 cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), 295 fixed bin(35)), 296 cu_$generate_call entry (entry, ptr), 297 ioa_ entry() options(variable); 298 299 dcl CODE_ARG fixed bin int static options(constant) init(2), 300 (FALSE init("0"b), 301 TRUE init("1"b)) bit(1) int static options(constant); 302 303 dcl active_function_error condition; 304 305 call cu_$arg_ptr (CODE_ARG, codep, 0, 0); 306 if code = 0 then return; 307 if code = -1 then code = 0; 308 error_occurred_sw = TRUE; 309 on active_function_error; /* do nothing */ 310 call cu_$generate_call (ssu_$print_message, cu_$arg_list_ptr()); 311 return; 312 313 ERR_init: 314 entry; 315 316 error_occurred_sw = FALSE; 317 return; 318 319 ERR_occurred: 320 entry returns (bit(1)); 321 322 return (error_occurred_sw); 323 324 ERR_fatal: 325 entry options(variable); 326 327 call cu_$arg_ptr (CODE_ARG, codep, 0, 0); 328 if code = 0 then return; 329 if code = -1 then code = 0; 330 error_occurred_sw = TRUE; 331 call ioa_ (""); 332 on active_function_error; /* do nothing */ 333 call cu_$generate_call (ssu_$abort_subsystem, cu_$arg_list_ptr()); 334 end ERR; 335 336 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 337 338 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 339 /* */ 340 /* USER_check: */ 341 /* 1) Make sure user of this program is running in Initializer process. */ 342 /* */ 343 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 344 345 346 USER_check: 347 proc (operation); 348 349 dcl operation char(5); 350 351 ansp = as_data_$ansp; 352 if ansp = null then 353 BAD_USER: call ERR_fatal (sciP, error_table_$action_not_performed, 354 "^/^[Starting^;Stopping^] the ls_request_server_. 355 This command can only be used in the Initializer process.", 356 operation = "start"); 357 if get_process_id_() ^= anstbl.as_procid then 358 go to BAD_USER; 359 360 end USER_check; 361 362 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 363 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The answer table has one entry per "login instance" whether completed or */ 1 6 /* not. It is connected to the Channel Definition Table by the pointer */ 1 7 /* "channel". The header is used mostly by dialup_. */ 1 8 /* */ 1 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 1 10 /* */ 1 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 12 1 13 /****^ HISTORY COMMENTS: 1 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 15* Replace anstbl.incl.pl1. 1 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 1 17* Add anstbl.session_uid_counter. 1 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 1 19* Add anstbl.message_update_time and named constants for values of 1 20* anstbl.session, and to make all padding explicit. 1 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 1 22* Change "entry" to a placeholder so as not to require 1 23* user_table_entry.incl.pl1. 1 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 1 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 1 26* Added the flag login_server_present which indicates whether a login 1 27* server request has been received. This is used to determine whether 1 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 1 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 1 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 1 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 32* A) Moved constants for ute.pw_flags.mask_ctl into 1 33* user_table_entry.incl.pl1. 1 34* B) Added common table header to all user tables. 1 35* END HISTORY COMMENTS */ 1 36 1 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 38 /* */ 1 39 /* The anstbl structure below is divided into sections. Each section begins */ 1 40 /* with a comment describing the elements in the section. Elements are */ 1 41 /* placed within a section, based upon their function or the programs that */ 1 42 /* use them. Each section begins on a double word and is an even number of */ 1 43 /* words long. */ 1 44 /* */ 1 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 46 1 47 1 48 1 49 /* format: style4 */ 1 50 1 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 1 52 1 53 dcl ansp ptr automatic init (null); 1 54 1 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 1 56 2 header like ut_header, /* Header common to all user tables. */ 1 57 1 58 /* Counter elements. */ 1 59 2 nlin fixed bin, /* number of active lines */ 1 60 2 mxlin fixed bin, /* maximum number of active lines */ 1 61 2 n_users fixed bin, /* number of logged-in users */ 1 62 2 max_users fixed bin, /* maximum number of users allowed */ 1 63 2 n_units fixed bin, /* number of logged in units */ 1 64 2 max_units fixed bin, /* maximum number of units */ 1 65 2 n_sessions fixed bin, /* number of Multics sessions */ 1 66 2 n_pad fixed bin, 1 67 1 68 /* Name elements. */ 1 69 2 sysdir char (64) unal, /* name of main system control directory */ 1 70 2 as_tty char (8) unal, /* name of main answering service device. */ 1 71 1 72 /* Login elements. */ 1 73 2 login_word char (8) unal, /* login word if special_session=1 */ 1 74 2 session char (8) unal, /* session indicator */ 1 75 2 special_message char (128) unal, /* message to be printed for special session */ 1 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 1 77 2 message_lng fixed bin, /* length of special message */ 1 78 2 login_pad fixed bin, 1 79 1 80 /* Table update elements. */ 1 81 2 lock_count fixed bin, /* global lock for all system control tables */ 1 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 1 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 1 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 1 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 1 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 1 87 2 update_pad fixed bin, 1 88 1 89 /* dialup_ data values. */ 1 90 2 current_time fixed bin (71), /* Time of last transaction */ 1 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 1 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 1 93 1 94 /* load_ctl_ elements. */ 1 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 1 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 1 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 1 98 /* load_ctl_ load leveling desired response range: */ 1 99 2 response_high fixed bin, /* bad if user response time slower than this */ 1 100 2 response_low fixed bin, /* bad if user response time faster than this */ 1 101 2 load_ctl_pad fixed bin, 1 102 1 103 /* Login server request server data. */ 1 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 1 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 1 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 1 107 1 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 1 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 1 110 3 contents (UTE_SIZE) fixed bin; 1 111 1 112 /* constants */ 1 113 1 114 /* values for anstbl.session */ 1 115 1 116 dcl (AT_NORMAL init ("normal "), 1 117 AT_SPECIAL init ("special "), 1 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 1 119 1 120 dcl UTE_SIZE fixed bin internal static initial (300); 1 121 1 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 363 364 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 2 2 2 3 /* format: style4 */ 2 4 2 5 /* This file must be kept in sync with as_data_.alm */ 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 2 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 2 10* Remove references to the 963 and 029 preaccess commands and remove support 2 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 2 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 2 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 14* Add references to as_data_ entrypoints added for Login Server. 2 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 2 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 17* Added new user signal field of inacrcvd (14) to handle inactivity response 2 18* from user. 2 19* END HISTORY COMMENTS */ 2 20 2 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 2 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 2 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 2 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 2 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 2 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 2 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 2 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 2 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 2 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 2 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 2 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 2 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 2 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 2 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 2 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 2 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 2 38 dcl as_data_$g115_dim char (32) ext static; 2 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 2 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 2 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 2 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 2 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 2 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 2 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 2 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 2 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 2 48 dcl as_data_$request_priority fixed bin ext static; 2 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 2 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 2 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 2 52 dcl as_data_$satp ptr ext static; /* SAT */ 2 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 2 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 2 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 2 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 2 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 2 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 2 59 dcl as_data_$version char (8) ext static; /* AS version */ 2 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 2 61 2 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 2 63 2 n_login_args fixed bin, 2 64 2 pad fixed bin, 2 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 2 66 2 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 2 68 2 n_signals fixed bin, 2 69 2 pad fixed bin, 2 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 2 71 2 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 2 73 2 n_system_signals fixed bin, 2 74 2 pad fixed bin, 2 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 2 76 2 77 dcl as_data_$login_words fixed bin ext static aligned, 2 78 /* interactive login words */ 2 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 2 80 2 n_words fixed bin, 2 81 2 pad fixed bin, 2 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 2 83 2 84 dcl as_data_$debug_flag bit (1) aligned external static; 2 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 2 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 2 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 2 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 2 89 2 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 364 365 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* This include file declares the header shared by the answer_table, */ 3 6 /* absentee_user_table and daemon_user_table include files. */ 3 7 /* */ 3 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 9 3 10 /****^ HISTORY COMMENTS: 3 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 3 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 13* Initial coding. 3 14* END HISTORY COMMENTS */ 3 15 3 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 3 17 2 header_version fixed bin, /* version of the header (3) */ 3 18 2 entry_version fixed bin, /* version of user table entries */ 3 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 3 20 2 header_length fixed bin, /* length of the header */ 3 21 2 max_size fixed bin, /* max number of entries in this table */ 3 22 2 current_size fixed bin, /* actual size of table (in entries) */ 3 23 2 number_free fixed bin, /* number of free entries in the table. */ 3 24 2 first_free fixed bin, /* index of first entry in the free list. */ 3 25 2 as_procid bit (36), /* process ID of user table manager process */ 3 26 2 ut_header_pad fixed bin; 3 27 3 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 365 366 367 end ls_request_server; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.9 ls_request_server.pl1 >special_ldd>install>MR12.1-1054>ls_request_server.pl1 363 1 08/04/87 1210.2 answer_table.incl.pl1 >spec>install>1056>answer_table.incl.pl1 364 2 08/04/87 1154.5 as_data_.incl.pl1 >spec>install>1056>as_data_.incl.pl1 365 3 08/04/87 1138.0 user_table_header.incl.pl1 >spec>install>1056>user_table_header.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. ALLOW_AF constant fixed bin(17,0) initial dcl 115 ref 158 ALLOW_COMMAND constant fixed bin(17,0) initial dcl 115 ref 156 ALLOW_COMMAND_AF constant fixed bin(17,0) initial dcl 115 set ref 45* 160 CODE_ARG 000033 constant fixed bin(17,0) initial dcl 299 set ref 305* 327* FALSE constant bit(1) initial unaligned dcl 204 in procedure "ARG_get" ref 212 FALSE constant bit(1) initial unaligned dcl 299 in procedure "ERR" ref 316 ME 000000 constant char(17) initial unaligned dcl 36 set ref 45* TRUE constant bit(1) initial unaligned dcl 299 in procedure "ERR" ref 308 330 TRUE constant bit(1) initial unaligned dcl 204 in procedure "ARG_get" ref 210 active_function_error 000102 stack reference condition dcl 303 ref 309 332 af_sw 000112 automatic bit(1) dcl 96 set ref 155* 156 158 161 230 allowed parameter fixed bin(17,0) dcl 133 ref 130 156 158 160 ansp 000130 automatic pointer initial dcl 1-53 set ref 1-53* 351* 352 357 anstbl based structure level 1 dcl 1-55 arg based char unaligned dcl 96 set ref 182 182 184 184 186* argl 000113 automatic fixed bin(21,0) dcl 96 set ref 182 182 184 184 186 186 209* argn 000116 automatic fixed bin(17,0) dcl 96 set ref 155* 207 argp 000114 automatic pointer dcl 96 set ref 182 182 184 184 186 209* argx 000117 automatic fixed bin(17,0) dcl 96 set ref 163* 207 208* 208 209* as_data_$ansp 000042 external static pointer dcl 2-26 ref 351 as_procid 10 based bit(36) level 3 dcl 1-55 ref 357 caller parameter char unaligned dcl 133 set ref 130 146* 149* cleanup 000104 stack reference condition dcl 29 ref 44 code 000100 automatic fixed bin(35,0) dcl 24 in procedure "ls_request_server" set ref 49* 50* 52* 53* 57* 58* code 000140 automatic fixed bin(35,0) dcl 138 in procedure "ARGS_check" set ref 146* 148 149* code based fixed bin(35,0) dcl 290 in procedure "ERR" set ref 306 307 307* 328 329 329* codep 000100 automatic pointer dcl 290 set ref 305* 306 307 307 327* 328 329 329 com_err_ 000044 constant entry external dcl 140 ref 149 cu_$arg_list_ptr 000054 constant entry external dcl 293 in procedure "ERR" ref 310 310 333 333 cu_$arg_list_ptr 000046 constant entry external dcl 140 in procedure "ARGS_check" ref 146 146 cu_$arg_ptr 000056 constant entry external dcl 293 ref 305 327 cu_$generate_call 000060 constant entry external dcl 293 ref 310 333 error_occurred_sw 000126 automatic bit(1) unaligned dcl 286 set ref 308* 316* 322 330* error_table_$action_not_performed 000020 external static fixed bin(35,0) dcl 36 set ref 352* error_table_$active_function 000050 external static fixed bin(35,0) dcl 143 set ref 156* error_table_$bad_arg 000022 external static fixed bin(35,0) dcl 36 set ref 186* error_table_$noarg 000024 external static fixed bin(35,0) dcl 36 set ref 189* error_table_$not_act_fnc 000052 external static fixed bin(35,0) dcl 143 set ref 158* exit_procedure parameter entry variable dcl 133 set ref 130 146* 151 get_process_id_ 000010 constant entry external dcl 31 ref 357 header based structure level 2 dcl 1-55 ioa_ 000062 constant entry external dcl 293 ref 331 ls_request_server_$init 000012 constant entry external dcl 31 ref 49 ls_request_server_$shutdown 000014 constant entry external dcl 31 ref 57 ls_request_server_$start 000016 constant entry external dcl 31 ref 52 null builtin function dcl 27 ref 1-53 245 262 352 operation 000102 automatic char(5) unaligned dcl 24 in procedure "ls_request_server" set ref 46* 47* 48 56 263* operation parameter char(5) unaligned dcl 178 in procedure "ARGS_process" set ref 175 180* 182* 184* 189 operation parameter char(5) unaligned dcl 349 in procedure "USER_check" ref 346 352 ret based varying char dcl 96 set ref 161* 230* retl 000120 automatic fixed bin(21,0) dcl 96 set ref 155* 161 230 retp 000122 automatic pointer dcl 96 set ref 155* 161 230 sciP 000124 automatic pointer dcl 96 set ref 50* 53* 58* 146* 155* 156* 158* 186* 189* 209* 245 245* 262* 352* ssu_$abort_subsystem 000026 constant entry external dcl 107 ref 333 333 ssu_$arg_ptr 000030 constant entry external dcl 107 ref 209 ssu_$destroy_invocation 000032 constant entry external dcl 107 ref 245 ssu_$print_message 000034 constant entry external dcl 107 ref 310 310 ssu_$return_arg 000036 constant entry external dcl 107 ref 155 ssu_$standalone_invocation 000040 constant entry external dcl 107 ref 146 ut_header based structure level 1 dcl 3-16 value parameter char unaligned dcl 228 ref 225 230 version parameter char unaligned dcl 133 set ref 130 146* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 1-51 AT_NORMAL internal static char(8) initial unaligned dcl 1-116 AT_SHUTDOWN internal static char(8) initial unaligned dcl 1-116 AT_SPECIAL internal static char(8) initial unaligned dcl 1-116 UTE_SIZE internal static fixed bin(17,0) initial dcl 1-120 as_data_$BS external static char(1) dcl 2-21 as_data_$CR external static char(1) dcl 2-22 as_data_$abs_dim external static char(32) unaligned dcl 2-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 2-24 as_data_$acsdir external static char(168) unaligned dcl 2-25 as_data_$as_procid external static bit(36) dcl 2-27 as_data_$as_ring external static fixed bin(3,0) dcl 2-28 as_data_$as_tty automatic char(6) unaligned dcl 2-29 as_data_$asmtp external static pointer dcl 2-30 as_data_$autp external static pointer dcl 2-31 as_data_$buzzardp external static pointer dcl 2-32 as_data_$cdtp external static pointer dcl 2-33 as_data_$debug_flag external static bit(1) dcl 2-84 as_data_$default_weight external static fixed bin(35,0) dcl 2-34 as_data_$devtabp external static pointer dcl 2-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 2-36 as_data_$dutp external static pointer dcl 2-37 as_data_$g115_dim external static char(32) unaligned dcl 2-38 as_data_$lct_initialized external static bit(1) dcl 2-39 as_data_$lct_size external static fixed bin(17,0) dcl 2-40 as_data_$login_args external static structure level 1 dcl 2-62 as_data_$login_words external static fixed bin(17,0) dcl 2-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 2-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 2-87 as_data_$ls_message_buffer_ptr external static pointer dcl 2-88 as_data_$ls_request_server_info_ptr external static pointer dcl 2-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 2-41 as_data_$mgtp external static pointer dcl 2-42 as_data_$mrd_dim external static char(32) unaligned dcl 2-43 as_data_$ntty_dim external static char(32) unaligned dcl 2-44 as_data_$pdtdir external static char(168) unaligned dcl 2-45 as_data_$pit_ptr external static pointer dcl 2-46 as_data_$rcpdir external static char(168) unaligned dcl 2-47 as_data_$request_priority external static fixed bin(17,0) dcl 2-48 as_data_$rs_ptrs external static pointer array dcl 2-49 as_data_$rtdtp external static pointer dcl 2-50 as_data_$sat_htp external static pointer dcl 2-51 as_data_$satp external static pointer dcl 2-52 as_data_$signal_types external static structure level 1 dcl 2-67 as_data_$suffix external static char(2) array unaligned dcl 2-53 as_data_$sysdir external static char(168) unaligned dcl 2-54 as_data_$system_signal_types external static structure level 1 dcl 2-72 as_data_$teens_suffix external static char(2) array unaligned dcl 2-55 as_data_$terminet_tabs_string external static varying char(144) dcl 2-56 as_data_$tty_dim external static char(32) unaligned dcl 2-57 as_data_$update_priority external static fixed bin(17,0) dcl 2-58 as_data_$version external static char(8) unaligned dcl 2-59 as_data_$whoptr external static pointer dcl 2-60 as_data_login_words based structure level 1 dcl 2-77 NAMES DECLARED BY EXPLICIT CONTEXT. ARGS_check 000445 constant entry internal dcl 130 ref 45 ARGS_process 000700 constant entry internal dcl 175 ref 46 ARG_get 001031 constant entry internal dcl 202 ref 181 ARG_set_return_value 001067 constant entry internal dcl 225 ref 61 81 BAD_USER 001472 constant label dcl 352 ref 357 CLEANUP 001117 constant entry internal dcl 243 ref 44 62 82 DATA_init 001140 constant entry internal dcl 259 ref 43 ERR 001150 constant entry internal dcl 288 ref 186 ERR_fatal 001332 constant entry internal dcl 324 ref 50 53 58 156 158 189 352 ERR_init 001265 constant entry internal dcl 313 ref 154 ERR_occurred 001306 constant entry internal dcl 319 ref 188 EXIT 000422 constant label dcl 81 ref 78 188 USER_check 001460 constant entry internal dcl 346 ref 47 exit_proc 000435 constant entry internal dcl 76 ref 45 45 ls_request_server 000210 constant entry external dcl 21 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2166 2252 1621 2176 Length 2560 1621 64 271 344 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ls_request_server 306 external procedure is an external procedure. on unit on line 44 64 on unit exit_proc 64 internal procedure is assigned to an entry variable. ARGS_check internal procedure shares stack frame of external procedure ls_request_server. ARGS_process internal procedure shares stack frame of external procedure ls_request_server. ARG_get internal procedure shares stack frame of external procedure ls_request_server. ARG_set_return_value internal procedure shares stack frame of external procedure ls_request_server. CLEANUP 68 internal procedure is called by several nonquick procedures. DATA_init internal procedure shares stack frame of external procedure ls_request_server. ERR 98 internal procedure enables or reverts conditions, and is declared options(variable). on unit on line 309 64 on unit on unit on line 332 64 on unit USER_check internal procedure shares stack frame of external procedure ls_request_server. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERR 000100 codep ERR ls_request_server 000100 code ls_request_server 000102 operation ls_request_server 000112 af_sw ls_request_server 000113 argl ls_request_server 000114 argp ls_request_server 000116 argn ls_request_server 000117 argx ls_request_server 000120 retl ls_request_server 000122 retp ls_request_server 000124 sciP ls_request_server 000126 error_occurred_sw ls_request_server 000130 ansp ls_request_server 000140 code ARGS_check THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ent_var call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 signal_op enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_list_ptr cu_$arg_list_ptr cu_$arg_ptr cu_$generate_call get_process_id_ ioa_ ls_request_server_$init ls_request_server_$shutdown ls_request_server_$start ssu_$abort_subsystem ssu_$arg_ptr ssu_$destroy_invocation ssu_$print_message ssu_$return_arg ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp error_table_$action_not_performed error_table_$active_function error_table_$bad_arg error_table_$noarg error_table_$not_act_fnc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 21 000207 1 53 000215 43 000217 44 000220 45 000242 46 000252 47 000254 48 000256 49 000262 50 000271 52 000314 53 000323 55 000346 56 000347 57 000356 58 000365 61 000410 62 000415 63 000421 81 000422 82 000427 83 000433 76 000434 78 000442 130 000445 146 000463 148 000530 149 000532 151 000560 154 000565 155 000571 156 000610 158 000635 160 000660 161 000662 163 000676 164 000677 175 000700 180 000702 181 000706 182 000713 184 000727 186 000741 187 000764 188 000765 189 000776 192 001030 202 001031 207 001033 208 001036 209 001037 210 001054 212 001062 225 001067 230 001100 233 001115 243 001116 245 001124 248 001137 259 001140 262 001141 263 001143 265 001146 288 001147 305 001157 306 001175 307 001206 308 001211 309 001214 310 001231 311 001255 313 001264 316 001274 317 001276 319 001305 322 001314 324 001331 327 001341 328 001360 329 001371 330 001374 331 001377 332 001410 333 001425 334 001451 346 001460 351 001462 352 001466 357 001531 360 001544 ----------------------------------------------------------- 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