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.3 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(86-08-01,Coren), approve(87-07-13,MCR7737), audit(87-03-09,GDixon), 11* install(87-08-04,MR12.1-1055): 12* Initially written. 13* 2) change(87-03-09,GDixon), approve(87-07-13,MCR7737), 14* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 15* A) Correct coding standard errors. 16* B) Zero anstbl.ls_request_server_process_id when shutting down. 17* C) Initialize connection list manager. 18* D) Move initialization of ls_message_buffer out of ls_request_server_ 19* and into as_init_. 20* E) Changed Set_Mseg_Acls to put a correct ACL on the message segment. 21* F) Corrects $shutdown deletion of event channel. 22* 3) change(87-04-23,GDixon), approve(87-07-13,MCR7737), 23* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 24* A) Don't diagnose error is $shutdown finds server already down. 25* B) Upgraded for change to answer_table.incl.pl1. 26* 4) change(87-07-14,GDixon), approve(87-07-14,MCR7737), 27* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 28* A) Move initialization of network accounting from act_ctl_$init into 29* ls_request_server_$init. We need network accounting ONLY when 30* running the login server. 31* END HISTORY COMMENTS */ 32 33 /* format: style4,indattr */ 34 35 ls_request_server_: 36 procedure (); 37 38 /* Parameters */ 39 40 dcl P_code fixed bin (35) parameter; 41 42 /* Automatic */ 43 44 dcl abort_label label automatic; 45 dcl code fixed bin (35) automatic; 46 dcl error_message char (500) automatic; 47 dcl request_ms_dirname char (168) automatic; 48 dcl request_ms_entryname char (32) automatic; 49 dcl request_ms_pathname char (168) automatic; 50 dcl system_area_ptr ptr automatic; 51 52 /* Based */ 53 54 dcl system_area area based (system_area_ptr); 55 56 /* External */ 57 58 dcl (error_table_$action_not_performed, 59 error_table_$already_initialized, 60 error_table_$noentry, 61 error_table_$null_info_ptr, 62 error_table_$out_of_sequence) 63 fixed bin (35) ext static; 64 65 /* Entries */ 66 67 dcl fs_util_$replace_acl entry (char (*), char (*), ptr, bit (1), fixed bin (35)); 68 dcl get_group_id_ entry () returns (char (32)); 69 dcl get_process_id_ entry () returns (bit (36)); 70 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 71 dcl get_system_free_area_ entry () returns (ptr); 72 dcl hpriv_connection_list_$init 73 entry (fixed bin (35)); 74 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 75 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, 76 fixed bin, fixed bin (35)); 77 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 78 dcl message_segment_$close entry (fixed bin, fixed bin (35)); 79 dcl message_segment_$create entry (char (*), char (*), 80 fixed bin (35)); 81 dcl message_segment_$delete entry (char (*), char (*), 82 fixed bin (35)); 83 dcl message_segment_$open entry (char (*), char (*), fixed bin, 84 fixed bin (35)); 85 dcl network_accounting_gate_$clear_table 86 entry (char (*), fixed bin (35)); 87 dcl network_accounting_gate_$test 88 entry (char (*)); 89 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 90 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 91 dcl uc_ls_rq_server_wakeup_ entry (ptr); 92 93 /* Constant */ 94 95 dcl FALSE bit (1) aligned initial ("0"b) internal static options (constant); 96 dcl ME char (18) initial ("ls_request_server_") internal static options (constant); 97 dcl NO_SYSDAEMON bit (1) initial ("1"b) internal static options (constant); 98 dcl TRUE bit (1) aligned initial ("1"b) internal static options (constant); 99 100 /* Builtin */ 101 102 dcl (addr, dimension, null, unspec) 103 builtin; 104 105 /* Conditions */ 106 107 dcl cleanup condition; 108 109 /* Program */ 110 init: 111 entry (P_code); 112 113 abort_label = INIT_RETURN; 114 ls_request_server_info_ptr = null (); 115 on cleanup 116 call Clean_Up (); 117 118 /**** Test if ls_request_server_ is already running in this process. */ 119 120 ansp = as_data_$ansp; 121 if anstbl.ls_request_server_process_id = anstbl.as_procid then 122 call Abort (SL_LOG_SILENT, error_table_$out_of_sequence, 123 "^/ls_request_server_ is already running. To stop, type: 124 ls_request_server stop"); 125 126 /**** Clear out garbage from previous bootload */ 127 128 anstbl.ls_request_server_process_id = ""b; 129 anstbl.ls_request_server_event_channel = 0; 130 131 system_area_ptr = get_system_free_area_ (); 132 allocate ls_request_server_info in (system_area) 133 set (ls_request_server_info_ptr); 134 135 as_data_$ls_request_server_info_ptr = 136 ls_request_server_info_ptr; 137 138 unspec (ls_request_server_info) = ""b; 139 ls_request_server_info.version = LS_REQUEST_SERVER_INFO_VERSION_1; 140 141 call get_temp_segment_ (ME, ls_request_server_info.reply_ptr, 142 code); 143 call Abort (SL_LOG_BEEP, code, 144 "Could not get temporary segment for ls reply messages."); 145 146 ls_request_server_info.request_ms.dirname = as_data_$sysdir; 147 ls_request_server_info.request_ms.entryname = 148 "login_server_requests.ms"; 149 ls_request_server_info.request_ms.index = 0; /* for now */ 150 151 call Setup_Message_Segment (); 152 call Set_Mseg_Acls (); 153 154 ls_request_server_info.flags.initialized = TRUE; 155 156 /* Initialize connection list manager */ 157 158 call hpriv_connection_list_$init (code); 159 if code = error_table_$already_initialized then code = 0; 160 if code ^= 0 161 then call Abort (SL_LOG_BEEP, code, 162 "Could not initialize the connection list manager."); 163 164 165 /* Initialize network accounting. */ 166 167 if as_data_$debug_flag then 168 call network_accounting_gate_$test (as_data_$sysdir); 169 170 call network_accounting_gate_$clear_table (error_message, code); 171 if code ^= 0 then do; 172 call Abort (SL_LOG_BEEP, code, 173 "Error from " || error_message); 174 end; 175 176 INIT_RETURN: 177 if code ^= 0 then 178 call Clean_Up (); 179 180 P_code = code; 181 return; 182 183 start: 184 entry (P_code); 185 186 /**** This entry is called to actually start the login server request 187* server. We do this by publishing the login server request server 188* info in the answer table. */ 189 190 abort_label = START_RETURN; 191 code = 0; 192 193 ansp = as_data_$ansp; 194 ls_request_server_info_ptr = as_data_$ls_request_server_info_ptr; 195 196 anstbl.ls_request_server_process_id = get_process_id_ (); 197 call ipc_$create_ev_chn (anstbl.ls_request_server_event_channel, code); 198 call Abort (SL_LOG_BEEP, code, 199 "Creating login server request server IPC event channel"); 200 201 call ipc_$decl_ev_call_chn (anstbl.ls_request_server_event_channel, 202 uc_ls_rq_server_wakeup_, ls_request_server_info_ptr, 1 /* priority */, code); 203 call Abort (SL_LOG_BEEP, code, 204 "Declaring login server request server IPC channel."); 205 206 START_RETURN: 207 P_code = code; 208 return; 209 210 shutdown: 211 entry (P_code); 212 213 abort_label = SHUTDOWN_RETURN; 214 ansp = as_data_$ansp; 215 if anstbl.ls_request_server_process_id ^= anstbl.as_procid then do; 216 if anstbl.ls_request_server_process_id = ""b then do; 217 code = 0; /* already down */ 218 go to SHUTDOWN_RETURN; 219 end; 220 call Abort (SL_LOG_SILENT, error_table_$action_not_performed, 221 "Server not in operation."); 222 end; 223 224 ls_request_server_info_ptr = as_data_$ls_request_server_info_ptr; 225 if ls_request_server_info_ptr = null () then 226 call Abort (SL_LOG_SILENT, error_table_$null_info_ptr, 227 "Server not in operation."); 228 229 ls_request_server_info.flags.initialized = FALSE; 230 231 call release_temp_segment_ (ME, ls_request_server_info.reply_ptr, 232 code); 233 if code ^= 0 then 234 call Log_Error (code, "Cannot release ls reply temp segment."); 235 236 call message_segment_$close ( 237 ls_request_server_info.request_ms.index, code); 238 if code ^= 0 then 239 call Log_Error (code, 240 "Could not close ls request message segment."); 241 242 anstbl.ls_request_server_process_id = ""b; 243 call ipc_$delete_ev_chn (anstbl.ls_request_server_event_channel, 244 code); 245 if code ^= 0 then 246 call Log_Error (code, 247 "Could not delete request event channel."); 248 anstbl.ls_request_server_event_channel = 0; 249 250 SHUTDOWN_RETURN: 251 P_code = code; 252 return; 253 254 Setup_Message_Segment: 255 procedure (); 256 257 request_ms_dirname = ls_request_server_info.request_ms.dirname; 258 request_ms_entryname = ls_request_server_info.request_ms.entryname; 259 request_ms_pathname = pathname_ (request_ms_dirname, 260 request_ms_entryname); 261 262 call message_segment_$delete (request_ms_dirname, 263 request_ms_entryname, code); 264 if code ^= 0 then 265 if code ^= error_table_$noentry then 266 call Abort (SL_LOG_BEEP, code, 267 "Deleting message segment ^a.", 268 request_ms_pathname); 269 270 call message_segment_$create (request_ms_dirname, 271 request_ms_entryname, code); 272 call Abort (SL_LOG_BEEP, code, "Creating message segment ^a.", 273 request_ms_pathname); 274 275 call message_segment_$open (request_ms_dirname, request_ms_entryname, 276 ls_request_server_info.request_ms.index, code); 277 call Abort (SL_LOG_BEEP, code, "Opening message segment ^a.", 278 request_ms_pathname); 279 280 end Setup_Message_Segment; 281 282 Set_Mseg_Acls: 283 procedure (); 284 285 dcl 1 ms_acl aligned, /* like general_acl */ 286 2 version char (8) aligned, 287 2 count fixed bin, 288 2 entries (6) like general_acl_entry; 289 290 acl_ptr = addr (ms_acl); 291 general_acl.version = GENERAL_ACL_VERSION_1; 292 general_acl.count = dimension (ms_acl.entries, 1); 293 general_acl.entries (1).access_name = get_group_id_ (); 294 general_acl.entries (1).mode = MSEG_QUEUE_CREATOR_INITIAL_ACCESS; 295 general_acl.entries (1).status_code = 0; 296 general_acl.entries (2).access_name = "*.SysDaemon.*"; 297 general_acl.entries (2).mode = MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS; 298 general_acl.entries (2).status_code = 0; 299 general_acl.entries (3).access_name = "Login_Server.Daemon.*"; 300 general_acl.entries (3).mode = MSEG_QUEUE_USER_ACCESS; 301 general_acl.entries (3).status_code = 0; 302 general_acl.entries (4).access_name = "*.SysAdmin.*"; 303 general_acl.entries (4).mode = MSEG_QUEUE_ADMIN_ACCESS; 304 general_acl.entries (4).status_code = 0; 305 general_acl.entries (5).access_name = "*.SysMaint.*"; 306 general_acl.entries (5).mode = MSEG_QUEUE_ADMIN_ACCESS; 307 general_acl.entries (5).status_code = 0; 308 general_acl.entries (6).access_name = "*.*.*"; 309 general_acl.entries (6).mode = MSEG_QUEUE_OTHERS_INITIAL_ACCESS; 310 general_acl.entries (6).status_code = 0; 311 312 call fs_util_$replace_acl (request_ms_dirname, request_ms_entryname, 313 addr (general_acl), NO_SYSDAEMON, code); 314 call Abort (SL_LOG_BEEP, code, 315 "Replacing ACL on message segment ^a.", request_ms_pathname); 316 return; 317 end Set_Mseg_Acls; 318 319 Clean_Up: 320 procedure (); 321 322 if ls_request_server_info_ptr ^= null () then do; 323 free ls_request_server_info; 324 as_data_$ls_request_server_info_ptr = null (); 325 end; 326 return; 327 end Clean_Up; 328 329 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 330 /* */ 331 /* Abort: report errors via sys_log_$general. */ 332 /* */ 333 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 334 /* */ 335 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 336 337 Abort: 338 procedure options (variable); 339 340 dcl cu_$arg_list_ptr entry returns (ptr); 341 dcl sys_log_$general entry (ptr); 342 343 sl_info = sl_info_sev_code_msg; 344 sl_info.caller = ME; 345 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 346 call sys_log_$general (addr (sl_info)); 347 code = sl_info.code; 348 if code ^= 0 then go to abort_label; 349 350 end Abort; 351 352 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 353 /* */ 354 /* Log_Error: report error silently via sys_log_$general, but continue */ 355 /* execution. */ 356 /* */ 357 /* Syntax: call Log_Error (code, ioa_ctl, args); */ 358 /* */ 359 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 360 361 Log_Error: 362 procedure options (variable); 363 364 dcl cu_$arg_list_ptr entry returns (ptr); 365 dcl sys_log_$general entry (ptr); 366 367 sl_info = sl_info_code_msg; 368 sl_info.caller = ME; 369 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 370 call sys_log_$general (addr (sl_info)); 371 372 end Log_Error; 373 374 /* format: off */ 375 /* Begin include file -- acl_structures.incl.pl1 BIM 3/82 */ 1 2 /* format: style3,indcomtxt,idind30 */ 1 3 1 4 declare acl_ptr pointer; 1 5 declare acl_count fixed bin; 1 6 1 7 declare 1 general_acl aligned based (acl_ptr), /* for fs_util_ */ 1 8 2 version char (8) aligned, 1 9 2 count fixed bin, 1 10 2 entries (acl_count refer (general_acl.count)) aligned like general_acl_entry; 1 11 1 12 declare 1 general_acl_entry based, 1 13 2 access_name character (32) unaligned, 1 14 2 mode bit (36) aligned, 1 15 2 status_code fixed bin (35); 1 16 1 17 1 18 declare 1 general_extended_acl aligned based (acl_ptr), /* for fs_util_ */ 1 19 2 version char (8) aligned, 1 20 2 count fixed bin, 1 21 2 entries (acl_count refer (general_extended_acl.count)) aligned like general_extended_acl_entry; 1 22 1 23 declare 1 general_extended_acl_entry aligned based, 1 24 2 access_name character (32) unaligned, 1 25 2 mode bit (36) aligned, 1 26 2 extended_mode bit (36) aligned, 1 27 2 status_code fixed bin (35); 1 28 1 29 1 30 declare 1 general_delete_acl aligned based (acl_ptr), /* for file_system_ */ 1 31 2 version char (8) aligned, 1 32 2 count fixed bin, 1 33 2 entries (acl_count refer (general_delete_acl.count)) aligned like delete_acl_entry; 1 34 1 35 declare 1 general_delete_acl_entry aligned based, 1 36 2 access_name character (32) unaligned, 1 37 2 status_code fixed bin (35); 1 38 1 39 1 40 declare 1 segment_acl aligned based (acl_ptr), 1 41 2 version fixed bin, 1 42 2 count fixed bin, 1 43 2 entries (acl_count refer (segment_acl.count)) aligned like segment_acl_entry; 1 44 1 45 declare 1 segment_acl_entry like general_extended_acl_entry aligned based; 1 46 declare 1 segment_acl_array (acl_count) aligned like segment_acl_entry based (acl_ptr); 1 47 1 48 1 49 declare 1 directory_acl aligned based (acl_ptr), 1 50 2 version fixed bin, 1 51 2 count fixed bin, 1 52 2 entries (acl_count refer (directory_acl.count)) aligned like directory_acl_entry; 1 53 1 54 declare 1 directory_acl_entry like general_acl_entry aligned based; 1 55 declare 1 directory_acl_array (acl_count) aligned like directory_acl_entry based (acl_ptr); 1 56 1 57 1 58 declare 1 delete_acl based (acl_ptr) aligned, 1 59 2 version fixed bin, 1 60 2 count fixed bin, 1 61 2 entries (acl_count refer (delete_acl.count)) aligned like delete_acl_entry; 1 62 1 63 declare 1 delete_acl_entry like general_delete_acl_entry aligned based; 1 64 declare 1 delete_acl_array (acl_count) aligned like delete_acl_entry based (acl_ptr); 1 65 1 66 1 67 declare (SEG_ACL_VERSION_1 init ("sga1"), 1 68 DIR_ACL_VERSION_1 init ("dra1"), 1 69 DELETE_ACL_VERSION_1 init ("dla1")) 1 70 char (4) int static options (constant); 1 71 1 72 declare (GENERAL_ACL_VERSION_1 init ("gacl001"), 1 73 GENERAL_EXTENDED_ACL_VERSION_1 init ("gxacl001"), 1 74 GENERAL_DELETE_ACL_VERSION_1 init ("gdacl001")) 1 75 char (8) internal static options (constant); 1 76 1 77 declare ACL_VERSION_1 fixed bin init (1) int static options (constant); 1 78 1 79 /* End include file acl_structures.incl.pl1 */ 375 376 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* The answer table has one entry per "login instance" whether completed or */ 2 6 /* not. It is connected to the Channel Definition Table by the pointer */ 2 7 /* "channel". The header is used mostly by dialup_. */ 2 8 /* */ 2 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 2 10 /* */ 2 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 12 2 13 /****^ HISTORY COMMENTS: 2 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 2 15* Replace anstbl.incl.pl1. 2 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 2 17* Add anstbl.session_uid_counter. 2 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 2 19* Add anstbl.message_update_time and named constants for values of 2 20* anstbl.session, and to make all padding explicit. 2 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 2 22* Change "entry" to a placeholder so as not to require 2 23* user_table_entry.incl.pl1. 2 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 2 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 2 26* Added the flag login_server_present which indicates whether a login 2 27* server request has been received. This is used to determine whether 2 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 2 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 2 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 2 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 32* A) Moved constants for ute.pw_flags.mask_ctl into 2 33* user_table_entry.incl.pl1. 2 34* B) Added common table header to all user tables. 2 35* END HISTORY COMMENTS */ 2 36 2 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 38 /* */ 2 39 /* The anstbl structure below is divided into sections. Each section begins */ 2 40 /* with a comment describing the elements in the section. Elements are */ 2 41 /* placed within a section, based upon their function or the programs that */ 2 42 /* use them. Each section begins on a double word and is an even number of */ 2 43 /* words long. */ 2 44 /* */ 2 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 46 2 47 2 48 2 49 /* format: style4 */ 2 50 2 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 2 52 2 53 dcl ansp ptr automatic init (null); 2 54 2 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 2 56 2 header like ut_header, /* Header common to all user tables. */ 2 57 2 58 /* Counter elements. */ 2 59 2 nlin fixed bin, /* number of active lines */ 2 60 2 mxlin fixed bin, /* maximum number of active lines */ 2 61 2 n_users fixed bin, /* number of logged-in users */ 2 62 2 max_users fixed bin, /* maximum number of users allowed */ 2 63 2 n_units fixed bin, /* number of logged in units */ 2 64 2 max_units fixed bin, /* maximum number of units */ 2 65 2 n_sessions fixed bin, /* number of Multics sessions */ 2 66 2 n_pad fixed bin, 2 67 2 68 /* Name elements. */ 2 69 2 sysdir char (64) unal, /* name of main system control directory */ 2 70 2 as_tty char (8) unal, /* name of main answering service device. */ 2 71 2 72 /* Login elements. */ 2 73 2 login_word char (8) unal, /* login word if special_session=1 */ 2 74 2 session char (8) unal, /* session indicator */ 2 75 2 special_message char (128) unal, /* message to be printed for special session */ 2 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 2 77 2 message_lng fixed bin, /* length of special message */ 2 78 2 login_pad fixed bin, 2 79 2 80 /* Table update elements. */ 2 81 2 lock_count fixed bin, /* global lock for all system control tables */ 2 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 2 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 2 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 2 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 2 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 2 87 2 update_pad fixed bin, 2 88 2 89 /* dialup_ data values. */ 2 90 2 current_time fixed bin (71), /* Time of last transaction */ 2 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 2 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 2 93 2 94 /* load_ctl_ elements. */ 2 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 2 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 2 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 2 98 /* load_ctl_ load leveling desired response range: */ 2 99 2 response_high fixed bin, /* bad if user response time slower than this */ 2 100 2 response_low fixed bin, /* bad if user response time faster than this */ 2 101 2 load_ctl_pad fixed bin, 2 102 2 103 /* Login server request server data. */ 2 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 2 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 2 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 2 107 2 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 2 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 2 110 3 contents (UTE_SIZE) fixed bin; 2 111 2 112 /* constants */ 2 113 2 114 /* values for anstbl.session */ 2 115 2 116 dcl (AT_NORMAL init ("normal "), 2 117 AT_SPECIAL init ("special "), 2 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 2 119 2 120 dcl UTE_SIZE fixed bin internal static initial (300); 2 121 2 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 376 377 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* This file must be kept in sync with as_data_.alm */ 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 3 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 3 10* Remove references to the 963 and 029 preaccess commands and remove support 3 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 3 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 3 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 14* Add references to as_data_ entrypoints added for Login Server. 3 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 3 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 17* Added new user signal field of inacrcvd (14) to handle inactivity response 3 18* from user. 3 19* END HISTORY COMMENTS */ 3 20 3 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 3 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 3 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 3 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 3 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 3 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 3 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 3 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 3 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 3 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 3 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 3 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 3 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 3 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 3 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 3 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 3 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 3 38 dcl as_data_$g115_dim char (32) ext static; 3 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 3 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 3 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 3 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 3 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 3 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 3 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 3 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 3 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 3 48 dcl as_data_$request_priority fixed bin ext static; 3 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 3 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 3 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 3 52 dcl as_data_$satp ptr ext static; /* SAT */ 3 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 3 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 3 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 3 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 3 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 3 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 3 59 dcl as_data_$version char (8) ext static; /* AS version */ 3 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 3 61 3 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 3 63 2 n_login_args fixed bin, 3 64 2 pad fixed bin, 3 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 3 66 3 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 3 68 2 n_signals fixed bin, 3 69 2 pad fixed bin, 3 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 3 71 3 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 3 73 2 n_system_signals fixed bin, 3 74 2 pad fixed bin, 3 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 3 76 3 77 dcl as_data_$login_words fixed bin ext static aligned, 3 78 /* interactive login words */ 3 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 3 80 2 n_words fixed bin, 3 81 2 pad fixed bin, 3 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 3 83 3 84 dcl as_data_$debug_flag bit (1) aligned external static; 3 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 3 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 3 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 3 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 3 89 3 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 377 378 /* BEGIN: ls_request_server_info.incl.pl1 * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-04-05,Swenson), approve(87-07-14,MCR7737), 4 5* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 4 6* Initial coding. 4 7* END HISTORY COMMENTS */ 4 8 4 9 /* format: style4,indattr */ 4 10 4 11 dcl ls_request_server_info_ptr ptr automatic; 4 12 dcl 1 ls_request_server_info structure aligned 4 13 based (ls_request_server_info_ptr), 4 14 2 version char (8), 4 15 2 reply_ptr ptr, 4 16 2 flags, 4 17 3 initialized bit (1) unaligned, 4 18 3 pad1 bit (35) unaligned, 4 19 2 request_ms, 4 20 3 dirname char (168) unaligned, 4 21 3 entryname char (32) unaligned, 4 22 3 index fixed bin, 4 23 2 request_info, /* only valid while executing a request */ 4 24 3 sender_process_id bit (36) aligned; 4 25 4 26 dcl LS_REQUEST_SERVER_INFO_VERSION_1 char (8) initial ("lsrsi001") internal static options (constant); 4 27 4 28 /* END OF: ls_request_server_info.incl.pl1 * * * * * */ 378 379 /* BEGIN INCLUDE FILE ... mseg_access_mode_values.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(85-04-01,Palter), approve(), audit(), install(): 5 6* Initial coding. 5 7* 2) change(87-04-08,GDixon), approve(87-07-14,MCR7706), 5 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 5 9* Add mseg queue access values for queue users and administrators. 5 10* END HISTORY COMMENTS */ 5 11 5 12 5 13 /* format: style3,linecom */ 5 14 5 15 /* Definition of the extended access modes implemented by the message segment primitives (mseg_) */ 5 16 5 17 declare ( 5 18 /*** The individual modes */ 5 19 MSEG_A_ACCESS initial ("400000000000"b3), /* add a message */ 5 20 MSEG_D_ACCESS initial ("200000000000"b3), /* delete/update any message, accept wakeups, etc. */ 5 21 MSEG_R_ACCESS initial ("100000000000"b3), /* read any message */ 5 22 MSEG_O_ACCESS initial ("040000000000"b3), /* read/delete your own messages */ 5 23 MSEG_S_ACCESS initial ("020000000000"b3), /* get the message count, salvaged flag, etc. */ 5 24 MSEG_W_ACCESS initial ("010000000000"b3), /* send a normal wakeup when adding a message */ 5 25 MSEG_U_ACCESS initial ("004000000000"b3) /* send an urgent wakeup when adding a message */ 5 26 ) bit (36) aligned static options (constant); 5 27 5 28 declare ( 5 29 /*** Common combinations of the modes */ 5 30 MSEG_NULL_ACCESS initial ("000000000000"b3), /* no access at all */ 5 31 MSEG_FULL_ACCESS initial ("774000000000"b3) /* all possible access */ 5 32 ) bit (36) aligned static options (constant); 5 33 5 34 /* format: idind40 */ 5 35 5 36 declare ( 5 37 /*** Initial extended access modes of a newly created mailbox -- The following constants yield the following ACL: 5 38* adrosw Person_id.*.* (or anonymous.Project_id.*) 5 39* aow *.SysDaemon.* 5 40* aow *.*.* */ 5 41 MSEG_MBX_INITIAL_ACL dimension (3) static options (constant) 5 42 initial ("770000000000"b3, "450000000000"b3, "450000000000"b3), 5 43 MSEG_MBX_CREATOR_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (1)), 5 44 MSEG_MBX_SYSDAEMON_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (2)), 5 45 MSEG_MBX_OTHERS_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (3)) 5 46 ) bit (36) aligned; 5 47 5 48 declare ( 5 49 /*** Initial extended access modes of a newly created queue message segment -- The following constants yield the 5 50* following ACL: 5 51* adros Person_id.*.* (or anonymous.Project_id.*) 5 52* ao *.SysDaemon.* 5 53* null *.*.* */ 5 54 MSEG_QUEUE_INITIAL_ACL dimension (3) static options (constant) 5 55 initial ("760000000000"b3, "440000000000"b3, "000000000000"b3), 5 56 MSEG_QUEUE_CREATOR_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (1)), 5 57 MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (2)), 5 58 MSEG_QUEUE_OTHERS_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (3)) 5 59 ) bit (36) aligned; 5 60 5 61 declare ( 5 62 /*** Extended access modes of queue segment users and administrators: 5 63* ao Queue_User.*.* 5 64* aros Queue_Admin.*.* */ 5 65 MSEG_QUEUE_USER_ACCESS initial ("440000000000"b3), 5 66 MSEG_QUEUE_ADMIN_ACCESS initial ("560000000000"b3)) 5 67 bit (36) aligned int static options(constant); 5 68 5 69 /* END INCLUDE FILE ... mseg_access_mode_values.incl.pl1 */ 379 380 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 6 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 6 7* Added sl_info structure and associated named constants for use in calling 6 8* sys_log_$general. 6 9* END HISTORY COMMENTS */ 6 10 6 11 6 12 /* format: style4 */ 6 13 6 14 dcl ( 6 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 6 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 6 17 SL_TYPE init (-1), /* type message */ 6 18 SL_LOG_SILENT init (0), /* log message */ 6 19 SL_LOG init (1), /* log & type message */ 6 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 6 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 6 22 ) fixed bin internal static options (constant); 6 23 6 24 dcl 1 sl_info aligned automatic, 6 25 2 version char(8), /* structure version */ 6 26 2 arg_list_ptr ptr, /* arg_list with values */ 6 27 2 loc, 6 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 6 29 /* These flags control where the corresponding data item is found.*/ 6 30 /* -1: data appears in the corresponding structure element below */ 6 31 /* 0: data is not present anywhere */ 6 32 /* +N: data is Nth item in argument list pointed to by */ 6 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 6 34 /* corresponding structure element. */ 6 35 /* if data = +N: */ 6 36 /* argN is data_ptr, argN+1 is data_len */ 6 37 /* if ioa_msg = +N: */ 6 38 /* argN+1, ... argLAST are arguments substituted into the */ 6 39 /* ioa_msg control string. The formatted msg is returned. */ 6 40 2 flags, 6 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 6 42 3 flags_pad bit(35) unal, 6 43 2 mode fixed bin, /* as-mode, command-mode */ 6 44 2 severity fixed bin, /* error severity */ 6 45 2 code fixed bin(35), /* error table code */ 6 46 2 caller char(65) varying, /* caller refname$entryname*/ 6 47 2 data, /* binary data ptr/length */ 6 48 3 data_ptr ptr, 6 49 3 data_lth fixed bin(21), 6 50 2 class char(10) varying, /* binary data class */ 6 51 2 ioa_msg char(500) varying; /* formatted message text */ 6 52 6 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 54 /* */ 6 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 6 56 /* their data types should be as shown in the structure above, except that */ 6 57 /* character strings should be char(*) nonvarying. */ 6 58 /* */ 6 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 60 6 61 /* value for sl_info.version */ 6 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 6 63 6 64 /* values for sl_info.mode */ 6 65 dcl (SL_INFO_as_mode init(1), 6 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 6 67 6 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 6 69 dcl (SL_INFO_arg_given_in_structure init(-1), 6 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 6 71 6 72 6 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 74 /* */ 6 75 /* The following static structures are commonly used in the Login Server */ 6 76 /* user control software. */ 6 77 /* */ 6 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 79 6 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 6 81 6 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 6 83 2 version char(8) init ("sl_info1"), 6 84 2 arg_list_ptr ptr init (null), 6 85 2 loc, 6 86 3 (mode init (-1), 6 87 severity init ( 1), 6 88 code init ( 2), 6 89 caller init (-1), 6 90 data init ( 0), 6 91 class init ( 0), 6 92 ioa_msg init ( 3)) fixed bin, 6 93 2 flags, 6 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 95 3 flags_pad bit(35) unal init ("0"b), 6 96 2 mode fixed bin init ( 1), 6 97 2 severity fixed bin init ( 0), 6 98 2 code fixed bin(35) init ( 0), 6 99 2 caller char(65) varying init (""), 6 100 2 data, 6 101 3 data_ptr ptr init (null), 6 102 3 data_lth fixed bin(21) init ( 0), 6 103 2 class char(10) varying init (""), 6 104 2 ioa_msg char(500) varying init (""); 6 105 6 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 6 107 6 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 6 109 2 version char(8) init ("sl_info1"), 6 110 2 arg_list_ptr ptr init (null), 6 111 2 loc, 6 112 3 (mode init (-1), 6 113 severity init ( 1), 6 114 code init ( 0), 6 115 caller init (-1), 6 116 data init ( 0), 6 117 class init ( 0), 6 118 ioa_msg init ( 2)) fixed bin, 6 119 2 flags, 6 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 121 3 flags_pad bit(35) unal init ("0"b), 6 122 2 mode fixed bin init ( 1), 6 123 2 severity fixed bin init ( 0), 6 124 2 code fixed bin(35) init ( 0), 6 125 2 caller char(65) varying init (""), 6 126 2 data, 6 127 3 data_ptr ptr init (null), 6 128 3 data_lth fixed bin(21) init ( 0), 6 129 2 class char(10) varying init (""), 6 130 2 ioa_msg char(500) varying init (""); 6 131 6 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 6 133 6 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 6 135 2 version char(8) init ("sl_info1"), 6 136 2 arg_list_ptr ptr init (null), 6 137 2 loc, 6 138 3 (mode init (-1), 6 139 severity init ( 1), 6 140 code init ( 0), 6 141 caller init (-1), 6 142 data init ( 0), 6 143 class init ( 0), 6 144 ioa_msg init ( 2)) fixed bin, 6 145 2 flags, 6 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 6 147 3 flags_pad bit(35) unal init ("0"b), 6 148 2 mode fixed bin init ( 1), 6 149 2 severity fixed bin init ( 0), 6 150 2 code fixed bin(35) init ( 0), 6 151 2 caller char(65) varying init (""), 6 152 2 data, 6 153 3 data_ptr ptr init (null), 6 154 3 data_lth fixed bin(21) init ( 0), 6 155 2 class char(10) varying init (""), 6 156 2 ioa_msg char(500) varying init (""); 6 157 6 158 6 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 6 160 6 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 6 162 2 version char(8) init ("sl_info1"), 6 163 2 arg_list_ptr ptr init (null), 6 164 2 loc, 6 165 3 (mode init (-1), 6 166 severity init ( 1), 6 167 code init ( 2), 6 168 caller init (-1), 6 169 data init ( 0), 6 170 class init ( 0), 6 171 ioa_msg init ( 4)) fixed bin, 6 172 2 flags, 6 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 174 3 flags_pad bit(35) unal init ("0"b), 6 175 2 mode fixed bin init ( 1), 6 176 2 severity fixed bin init ( 0), 6 177 2 code fixed bin(35) init ( 0), 6 178 2 caller char(65) varying init (""), 6 179 2 data, 6 180 3 data_ptr ptr init (null), 6 181 3 data_lth fixed bin(21) init ( 0), 6 182 2 class char(10) varying init (""), 6 183 2 ioa_msg char(500) varying init (""); 6 184 6 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 6 186 6 187 dcl 1 sl_info_code_msg aligned int static options(constant), 6 188 2 version char(8) init ("sl_info1"), 6 189 2 arg_list_ptr ptr init (null), 6 190 2 loc, 6 191 3 (mode init (-1), 6 192 severity init (-1), 6 193 code init ( 1), 6 194 caller init (-1), 6 195 data init ( 0), 6 196 class init ( 0), 6 197 ioa_msg init ( 2)) fixed bin, 6 198 2 flags, 6 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 200 3 flags_pad bit(35) unal init ("0"b), 6 201 2 mode fixed bin init ( 1), 6 202 2 severity fixed bin init ( 0), 6 203 2 code fixed bin(35) init ( 0), 6 204 2 caller char(65) varying init (""), 6 205 2 data, 6 206 3 data_ptr ptr init (null), 6 207 3 data_lth fixed bin(21) init ( 0), 6 208 2 class char(10) varying init (""), 6 209 2 ioa_msg char(500) varying init (""); 6 210 6 211 6 212 /* Syntax: call Trace (ioa_ctl, args); */ 6 213 6 214 dcl 1 sl_info_msg aligned int static options(constant), 6 215 2 version char(8) init ("sl_info1"), 6 216 2 arg_list_ptr ptr init (null), 6 217 2 loc, 6 218 3 (mode init (-1), 6 219 severity init (-1), 6 220 code init ( 0), 6 221 caller init (-1), 6 222 data init ( 0), 6 223 class init ( 0), 6 224 ioa_msg init ( 1)) fixed bin, 6 225 2 flags, 6 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 227 3 flags_pad bit(35) unal init ("0"b), 6 228 2 mode fixed bin init ( 1), 6 229 2 severity fixed bin init ( 0), 6 230 2 code fixed bin(35) init ( 0), 6 231 2 caller char(65) varying init (""), 6 232 2 data, 6 233 3 data_ptr ptr init (null), 6 234 3 data_lth fixed bin(21) init ( 0), 6 235 2 class char(10) varying init (""), 6 236 2 ioa_msg char(500) varying init (""); 6 237 6 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 380 381 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 7 2 7 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 4 /* */ 7 5 /* This include file declares the header shared by the answer_table, */ 7 6 /* absentee_user_table and daemon_user_table include files. */ 7 7 /* */ 7 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 9 7 10 /****^ HISTORY COMMENTS: 7 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 7 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 13* Initial coding. 7 14* END HISTORY COMMENTS */ 7 15 7 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 7 17 2 header_version fixed bin, /* version of the header (3) */ 7 18 2 entry_version fixed bin, /* version of user table entries */ 7 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 7 20 2 header_length fixed bin, /* length of the header */ 7 21 2 max_size fixed bin, /* max number of entries in this table */ 7 22 2 current_size fixed bin, /* actual size of table (in entries) */ 7 23 2 number_free fixed bin, /* number of free entries in the table. */ 7 24 2 first_free fixed bin, /* index of first entry in the free list. */ 7 25 2 as_procid bit (36), /* process ID of user table manager process */ 7 26 2 ut_header_pad fixed bin; 7 27 7 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 381 382 383 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 375 1 10/14/83 1606.6 acl_structures.incl.pl1 >ldd>include>acl_structures.incl.pl1 376 2 08/04/87 1210.2 answer_table.incl.pl1 >spec>install>1056>answer_table.incl.pl1 377 3 08/04/87 1154.5 as_data_.incl.pl1 >spec>install>1056>as_data_.incl.pl1 378 4 08/04/87 1139.8 ls_request_server_info.incl.pl1 >spec>install>1056>ls_request_server_info.incl.pl1 379 5 08/04/87 1139.3 mseg_access_mode_values.incl.pl1 >spec>install>1056>mseg_access_mode_values.incl.pl1 380 6 08/04/87 1139.0 sys_log_constants.incl.pl1 >spec>install>1056>sys_log_constants.incl.pl1 381 7 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. FALSE constant bit(1) initial dcl 95 ref 229 GENERAL_ACL_VERSION_1 000524 constant char(8) initial unaligned dcl 1-72 ref 291 LS_REQUEST_SERVER_INFO_VERSION_1 000522 constant char(8) initial unaligned dcl 4-26 ref 139 ME 000527 constant char(18) initial unaligned dcl 96 set ref 141* 231* 344 368 MSEG_QUEUE_ADMIN_ACCESS constant bit(36) initial dcl 5-61 ref 303 306 MSEG_QUEUE_CREATOR_INITIAL_ACCESS defined bit(36) dcl 5-48 ref 294 MSEG_QUEUE_INITIAL_ACL 000517 constant bit(36) initial array dcl 5-48 ref 294 294 297 297 309 309 MSEG_QUEUE_OTHERS_INITIAL_ACCESS defined bit(36) dcl 5-48 ref 309 MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS defined bit(36) dcl 5-48 ref 297 MSEG_QUEUE_USER_ACCESS constant bit(36) initial dcl 5-61 ref 300 NO_SYSDAEMON 000526 constant bit(1) initial unaligned dcl 97 set ref 312* P_code parameter fixed bin(35,0) dcl 40 set ref 110 180* 183 206* 210 250* SL_LOG_BEEP 000554 constant fixed bin(17,0) initial dcl 6-14 set ref 143* 160* 172* 198* 203* 264* 272* 277* 314* SL_LOG_SILENT 000564 constant fixed bin(17,0) initial dcl 6-14 set ref 121* 220* 225* TRUE constant bit(1) initial dcl 98 ref 154 abort_label 000100 automatic label variable dcl 44 set ref 113* 190* 213* 348 access_name 3 based char(32) array level 3 packed unaligned dcl 1-7 set ref 293* 296* 299* 302* 305* 308* acl_ptr 000446 automatic pointer dcl 1-4 set ref 290* 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 312 312 addr builtin function dcl 102 ref 290 312 312 346 346 370 370 ansp 000450 automatic pointer initial dcl 2-53 set ref 120* 121 121 128 129 193* 196 197 201 214* 215 215 216 242 243 248 2-53* anstbl based structure level 1 dcl 2-55 arg_list_ptr 2 000454 automatic pointer level 2 dcl 6-24 set ref 345* 369* as_data_$ansp 000066 external static pointer dcl 3-26 ref 120 193 214 as_data_$debug_flag 000072 external static bit(1) dcl 3-84 ref 167 as_data_$ls_request_server_info_ptr 000074 external static pointer dcl 3-85 set ref 135* 194 224 324* as_data_$sysdir 000070 external static char(168) unaligned dcl 3-54 set ref 146 167* as_procid 10 based bit(36) level 3 dcl 2-55 ref 121 215 caller 17 000454 automatic varying char(65) level 2 dcl 6-24 set ref 344* 368* cleanup 000440 stack reference condition dcl 107 ref 115 code 000104 automatic fixed bin(35,0) dcl 45 in procedure "ls_request_server_" set ref 141* 143* 158* 159 159* 160 160* 170* 171 172* 176 180 191* 197* 198* 201* 203* 206 217* 231* 233 233* 236* 238 238* 243* 245 245* 250 262* 264 264 264* 270* 272* 275* 277* 312* 314* 347* 348 code 16 000454 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 6-24 in procedure "ls_request_server_" set ref 347 count 2 based fixed bin(17,0) level 2 dcl 1-7 set ref 292* cu_$arg_list_ptr 000102 constant entry external dcl 364 in procedure "Log_Error" ref 369 cu_$arg_list_ptr 000076 constant entry external dcl 340 in procedure "Abort" ref 345 delete_acl_entry based structure level 1 dcl 1-63 dimension builtin function dcl 102 ref 292 directory_acl_entry based structure level 1 dcl 1-54 dirname 5 based char(168) level 3 packed unaligned dcl 4-12 set ref 146* 257 entries 3 based structure array level 2 in structure "general_acl" dcl 1-7 in procedure "ls_request_server_" entries 3 000740 automatic structure array level 2 in structure "ms_acl" dcl 285 in procedure "Set_Mseg_Acls" set ref 292 entryname 57 based char(32) level 3 packed unaligned dcl 4-12 set ref 147* 258 error_message 000105 automatic char(500) unaligned dcl 46 set ref 170* 172 error_table_$action_not_performed 000010 external static fixed bin(35,0) dcl 58 set ref 220* error_table_$already_initialized 000012 external static fixed bin(35,0) dcl 58 ref 159 error_table_$noentry 000014 external static fixed bin(35,0) dcl 58 ref 264 error_table_$null_info_ptr 000016 external static fixed bin(35,0) dcl 58 set ref 225* error_table_$out_of_sequence 000020 external static fixed bin(35,0) dcl 58 set ref 121* flags 4 based structure level 2 dcl 4-12 fs_util_$replace_acl 000022 constant entry external dcl 67 ref 312 general_acl based structure level 1 dcl 1-7 set ref 312 312 general_acl_entry based structure level 1 unaligned dcl 1-12 general_delete_acl_entry based structure level 1 dcl 1-35 general_extended_acl_entry based structure level 1 dcl 1-23 get_group_id_ 000024 constant entry external dcl 68 ref 293 get_process_id_ 000026 constant entry external dcl 69 ref 196 get_system_free_area_ 000032 constant entry external dcl 71 ref 131 get_temp_segment_ 000030 constant entry external dcl 70 ref 141 header based structure level 2 dcl 2-55 hpriv_connection_list_$init 000034 constant entry external dcl 72 ref 158 index 67 based fixed bin(17,0) level 3 dcl 4-12 set ref 149* 236* 275* initialized 4 based bit(1) level 3 packed unaligned dcl 4-12 set ref 154* 229* ipc_$create_ev_chn 000036 constant entry external dcl 74 ref 197 ipc_$decl_ev_call_chn 000040 constant entry external dcl 75 ref 201 ipc_$delete_ev_chn 000042 constant entry external dcl 77 ref 243 ls_request_server_event_channel 140 based fixed bin(71,0) level 2 dcl 2-55 set ref 129* 197* 201* 243* 248* ls_request_server_info based structure level 1 dcl 4-12 set ref 132 138* 323 ls_request_server_info_ptr 000452 automatic pointer dcl 4-11 set ref 114* 132* 135 138 139 141 146 147 149 154 194* 201* 224* 225 229 231 236 257 258 275 322 323 ls_request_server_process_id 142 based bit(36) level 2 dcl 2-55 set ref 121 128* 196* 215 216 242* message_segment_$close 000044 constant entry external dcl 78 ref 236 message_segment_$create 000046 constant entry external dcl 79 ref 270 message_segment_$delete 000050 constant entry external dcl 81 ref 262 message_segment_$open 000052 constant entry external dcl 83 ref 275 mode 13 based bit(36) array level 3 dcl 1-7 set ref 294* 297* 300* 303* 306* 309* ms_acl 000740 automatic structure level 1 dcl 285 set ref 290 network_accounting_gate_$clear_table 000054 constant entry external dcl 85 ref 170 network_accounting_gate_$test 000056 constant entry external dcl 87 ref 167 null builtin function dcl 102 ref 114 225 2-53 322 324 pathname_ 000060 constant entry external dcl 89 ref 259 release_temp_segment_ 000062 constant entry external dcl 90 ref 231 reply_ptr 2 based pointer level 2 dcl 4-12 set ref 141* 231* request_ms 5 based structure level 2 dcl 4-12 request_ms_dirname 000302 automatic char(168) unaligned dcl 47 set ref 257* 259* 262* 270* 275* 312* request_ms_entryname 000354 automatic char(32) unaligned dcl 48 set ref 258* 259* 262* 270* 275* 312* request_ms_pathname 000364 automatic char(168) unaligned dcl 49 set ref 259* 264* 272* 277* 314* segment_acl_entry based structure level 1 dcl 1-45 sl_info 000454 automatic structure level 1 dcl 6-24 set ref 343* 346 346 367* 370 370 sl_info_code_msg 000250 constant structure level 1 dcl 6-187 ref 367 sl_info_sev_code_msg 000000 constant structure level 1 dcl 6-82 ref 343 status_code 14 based fixed bin(35,0) array level 3 dcl 1-7 set ref 295* 298* 301* 304* 307* 310* sys_log_$general 000100 constant entry external dcl 341 in procedure "Abort" ref 346 sys_log_$general 000104 constant entry external dcl 365 in procedure "Log_Error" ref 370 system_area based area(1024) dcl 54 ref 132 system_area_ptr 000436 automatic pointer dcl 50 set ref 131* 132 uc_ls_rq_server_wakeup_ 000064 constant entry external dcl 91 ref 201 201 unspec builtin function dcl 102 set ref 138* ut_header based structure level 1 dcl 7-16 version based char(8) level 2 in structure "ls_request_server_info" dcl 4-12 in procedure "ls_request_server_" set ref 139* version based char(8) level 2 in structure "general_acl" dcl 1-7 in procedure "ls_request_server_" set ref 291* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACL_VERSION_1 internal static fixed bin(17,0) initial dcl 1-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 2-51 AT_NORMAL internal static char(8) initial unaligned dcl 2-116 AT_SHUTDOWN internal static char(8) initial unaligned dcl 2-116 AT_SPECIAL internal static char(8) initial unaligned dcl 2-116 DELETE_ACL_VERSION_1 internal static char(4) initial unaligned dcl 1-67 DIR_ACL_VERSION_1 internal static char(4) initial unaligned dcl 1-67 GENERAL_DELETE_ACL_VERSION_1 internal static char(8) initial unaligned dcl 1-72 GENERAL_EXTENDED_ACL_VERSION_1 internal static char(8) initial unaligned dcl 1-72 MSEG_A_ACCESS internal static bit(36) initial dcl 5-17 MSEG_D_ACCESS internal static bit(36) initial dcl 5-17 MSEG_FULL_ACCESS internal static bit(36) initial dcl 5-28 MSEG_MBX_CREATOR_INITIAL_ACCESS defined bit(36) dcl 5-36 MSEG_MBX_INITIAL_ACL internal static bit(36) initial array dcl 5-36 MSEG_MBX_OTHERS_INITIAL_ACCESS defined bit(36) dcl 5-36 MSEG_MBX_SYSDAEMON_INITIAL_ACCESS defined bit(36) dcl 5-36 MSEG_NULL_ACCESS internal static bit(36) initial dcl 5-28 MSEG_O_ACCESS internal static bit(36) initial dcl 5-17 MSEG_R_ACCESS internal static bit(36) initial dcl 5-17 MSEG_S_ACCESS internal static bit(36) initial dcl 5-17 MSEG_U_ACCESS internal static bit(36) initial dcl 5-17 MSEG_W_ACCESS internal static bit(36) initial dcl 5-17 SEG_ACL_VERSION_1 internal static char(4) initial unaligned dcl 1-67 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 6-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 6-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 6-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 6-65 SL_INFO_version_1 internal static char(8) initial unaligned dcl 6-62 SL_LOG internal static fixed bin(17,0) initial dcl 6-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 6-14 UTE_SIZE internal static fixed bin(17,0) initial dcl 2-120 acl_count automatic fixed bin(17,0) dcl 1-5 as_data_$BS external static char(1) dcl 3-21 as_data_$CR external static char(1) dcl 3-22 as_data_$abs_dim external static char(32) unaligned dcl 3-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 3-24 as_data_$acsdir external static char(168) unaligned dcl 3-25 as_data_$as_procid external static bit(36) dcl 3-27 as_data_$as_ring external static fixed bin(3,0) dcl 3-28 as_data_$as_tty automatic char(6) unaligned dcl 3-29 as_data_$asmtp external static pointer dcl 3-30 as_data_$autp external static pointer dcl 3-31 as_data_$buzzardp external static pointer dcl 3-32 as_data_$cdtp external static pointer dcl 3-33 as_data_$default_weight external static fixed bin(35,0) dcl 3-34 as_data_$devtabp external static pointer dcl 3-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 3-36 as_data_$dutp external static pointer dcl 3-37 as_data_$g115_dim external static char(32) unaligned dcl 3-38 as_data_$lct_initialized external static bit(1) dcl 3-39 as_data_$lct_size external static fixed bin(17,0) dcl 3-40 as_data_$login_args external static structure level 1 dcl 3-62 as_data_$login_words external static fixed bin(17,0) dcl 3-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 3-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 3-87 as_data_$ls_message_buffer_ptr external static pointer dcl 3-88 as_data_$max_user_ring external static fixed bin(3,0) dcl 3-41 as_data_$mgtp external static pointer dcl 3-42 as_data_$mrd_dim external static char(32) unaligned dcl 3-43 as_data_$ntty_dim external static char(32) unaligned dcl 3-44 as_data_$pdtdir external static char(168) unaligned dcl 3-45 as_data_$pit_ptr external static pointer dcl 3-46 as_data_$rcpdir external static char(168) unaligned dcl 3-47 as_data_$request_priority external static fixed bin(17,0) dcl 3-48 as_data_$rs_ptrs external static pointer array dcl 3-49 as_data_$rtdtp external static pointer dcl 3-50 as_data_$sat_htp external static pointer dcl 3-51 as_data_$satp external static pointer dcl 3-52 as_data_$signal_types external static structure level 1 dcl 3-67 as_data_$suffix external static char(2) array unaligned dcl 3-53 as_data_$system_signal_types external static structure level 1 dcl 3-72 as_data_$teens_suffix external static char(2) array unaligned dcl 3-55 as_data_$terminet_tabs_string external static varying char(144) dcl 3-56 as_data_$tty_dim external static char(32) unaligned dcl 3-57 as_data_$update_priority external static fixed bin(17,0) dcl 3-58 as_data_$version external static char(8) unaligned dcl 3-59 as_data_$whoptr external static pointer dcl 3-60 as_data_login_words based structure level 1 dcl 3-77 delete_acl based structure level 1 dcl 1-58 delete_acl_array based structure array level 1 dcl 1-64 directory_acl based structure level 1 dcl 1-49 directory_acl_array based structure array level 1 dcl 1-55 general_delete_acl based structure level 1 dcl 1-30 general_extended_acl based structure level 1 dcl 1-18 segment_acl based structure level 1 dcl 1-40 segment_acl_array based structure array level 1 dcl 1-46 sl_info_msg internal static structure level 1 dcl 6-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 6-161 sl_info_sev_coded_msg internal static structure level 1 dcl 6-134 sl_info_sev_msg internal static structure level 1 dcl 6-108 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 002453 constant entry internal dcl 337 ref 121 143 160 172 198 203 220 225 264 272 277 314 Clean_Up 002432 constant entry internal dcl 319 ref 115 176 INIT_RETURN 001404 constant label dcl 176 ref 113 Log_Error 002522 constant entry internal dcl 361 ref 233 238 245 SHUTDOWN_RETURN 002027 constant label dcl 250 ref 213 218 START_RETURN 001557 constant label dcl 206 ref 190 Set_Mseg_Acls 002266 constant entry internal dcl 282 ref 152 Setup_Message_Segment 002033 constant entry internal dcl 254 ref 151 init 001060 constant entry external dcl 110 ls_request_server_ 001046 constant entry external dcl 35 shutdown 001565 constant entry external dcl 210 start 001420 constant entry external dcl 183 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3232 3340 2566 3242 Length 3756 2566 106 402 444 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ls_request_server_ 792 external procedure is an external procedure. on unit on line 115 64 on unit Setup_Message_Segment internal procedure shares stack frame of external procedure ls_request_server_. Set_Mseg_Acls internal procedure shares stack frame of external procedure ls_request_server_. Clean_Up 64 internal procedure is called by several nonquick procedures. Abort 70 internal procedure is declared options(variable). Log_Error 70 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ls_request_server_ 000100 abort_label ls_request_server_ 000104 code ls_request_server_ 000105 error_message ls_request_server_ 000302 request_ms_dirname ls_request_server_ 000354 request_ms_entryname ls_request_server_ 000364 request_ms_pathname ls_request_server_ 000436 system_area_ptr ls_request_server_ 000446 acl_ptr ls_request_server_ 000450 ansp ls_request_server_ 000452 ls_request_server_info_ptr ls_request_server_ 000454 sl_info ls_request_server_ 000740 ms_acl Set_Mseg_Acls THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_2 enable_op ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cu_$arg_list_ptr fs_util_$replace_acl get_group_id_ get_process_id_ get_system_free_area_ get_temp_segment_ hpriv_connection_list_$init ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$delete_ev_chn message_segment_$close message_segment_$create message_segment_$delete message_segment_$open network_accounting_gate_$clear_table network_accounting_gate_$test pathname_ release_temp_segment_ sys_log_$general sys_log_$general uc_ls_rq_server_wakeup_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$debug_flag as_data_$ls_request_server_info_ptr as_data_$sysdir error_table_$action_not_performed error_table_$already_initialized error_table_$noentry error_table_$null_info_ptr error_table_$out_of_sequence LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 53 001041 35 001045 110 001054 113 001066 114 001071 115 001073 120 001115 121 001121 128 001150 129 001152 131 001154 132 001163 135 001170 138 001172 139 001175 141 001200 143 001221 146 001244 147 001252 149 001255 151 001256 152 001257 154 001260 158 001263 159 001272 160 001277 167 001324 170 001337 171 001354 172 001356 176 001404 180 001412 181 001415 183 001416 190 001426 191 001431 193 001432 194 001436 196 001441 197 001452 198 001463 201 001506 203 001534 206 001557 208 001562 210 001563 213 001573 214 001576 215 001602 216 001606 217 001610 218 001611 220 001612 224 001635 225 001641 229 001670 231 001673 233 001714 236 001735 238 001747 242 001770 243 001772 245 002003 248 002024 250 002027 252 002032 254 002033 257 002034 258 002040 259 002043 262 002063 264 002104 270 002140 272 002161 275 002210 277 002236 280 002265 282 002266 290 002267 291 002271 292 002274 293 002276 294 002305 295 002310 296 002311 297 002314 298 002316 299 002317 300 002322 301 002324 302 002325 303 002330 304 002332 305 002333 306 002336 307 002337 308 002340 309 002343 310 002345 312 002346 314 002401 316 002430 319 002431 322 002437 323 002444 324 002446 326 002451 337 002452 343 002460 344 002464 345 002471 346 002477 347 002511 348 002514 350 002520 361 002521 367 002527 368 002533 369 002540 370 002546 372 002560 ----------------------------------------------------------- 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