COMPILATION LISTING OF SEGMENT as_request_server_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/06/88 1300.7 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* DESCRIPTION: 13* A procedure to get requests from user processes and dispatch 14* them to the correct answering service module. 15**/ 16 17 /* HISTORY: 18* Written by Paul Green, 01/09/75. 19* Modified: 20* 04/01/79 by T. Casey: to correctly handle requests from foreground 21* or proxy absentee processes. 22* 12/01/80 by E. N. Kittlitz: to set anstbl.current_time on wakeup. 23* 06/01/81 by T. Casey: for MR9.0 for new wakeup priorities. 24* 11/01/81 by E. N. Kittlitz: user_table_entry conversion. 25* 04/01/82 by E. N. Kittlitz: New AS initialization. bugfixes. 26* 10/01/82 by E. N. Kittlitz: Rename as_request_ to as_request_server_, 27* add requests 3 - 5. 28* 04/04/84 by Benson I. Margulies: Changed to pass as_request_sender instead 29* of event_call_info. 30* 08/23/84 by R. Michael Tague: Added ASR_BUMP_USER request. Added length 31* checks of structures passed from the message segment. Fixed bug with 32* ASR_FPE_CAUSES_(LOGOUT NEW_PROC) request, it was not replying correctly. 33* Structured $wakeup entry. 34* Modified 1984-10-04 BIM for ASR_ADMIN_COMMAND, V5 msegs. 35* Modified 1984-10-29 by E. Swenson to fix bug which caused asdumps when 36* invalid messages were processed. 37* 11/20/84 by R. Michael Tague: Fixed a few error comments. Added named 38* access constants. Changed to use ute.tag. 39* Modified 1985-01-23 by E. Swenson to ASR_NOTE_PNT_CHANGE and delete 40* offending message in the cleanup code. 41* Modified 1985-02-19, BIM: ASR_DAEMON_COMMAND and ASR_COM_CHANNEL_INFO. 42* Modified 1985-02-22 by E. Swenson to do replies properly for the 43* ASR_DAEMON_COMMAND and ASR_COM_CHANNEL_INFO requests. 44* Modified 86-04-08 by SGH (UNCA) to free processed messages -- phx20268. 45**/ 46 47 /****^ HISTORY COMMENTS: 48* 1) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 49* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 50* Modified 12 December 1985 (above date to satisfy hcom) 51* by Jim Lippard: Added the ASR_ABS_COMMAND request. 52* 2) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 53* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 54* Correct error message documentation. 55* 3) change(86-09-26,GDixon), approve(86-09-26,MCR7499), 56* audit(86-10-09,Lippard), install(86-10-28,MR12.0-1200): 57* Modified by Steve Harris (Univ. of Calgary) to free processed messages in 58* all cases. One path through the code missed freeing the message, causing 59* the Initializers user free area to fill up, thereby degrading response. 60* 4) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 61* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 62* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 63* 5) change(87-08-31,GDixon), approve(88-08-15,MCR7969), 64* audit(88-08-04,Lippard), install(88-08-29,MR12.2-1093): 65* A) Add acl for administrators to as_request.ms during initialization. 66* (Answering_Service 407, phx19057) 67* B) Use fs_util_ to replace the ACL, with its more modern ACL 68* structures. 69* C) Use mseg_access_mode_values.incl.pl1 to set access mode values, 70* rather than literal constants. 71* 6) change(88-09-01,GDixon), approve(88-09-01,PBF7969), 72* audit(88-09-03,Beattie), install(88-09-06,MR12.2-1100): 73* A) Fix bug which set null access for *.*.*, instead of ao access. 74* (Answering_Service 407, phx19057) 75* B) Correct error message documentation. 76* END HISTORY COMMENTS */ 77 78 /* format: style2 */ 79 80 as_request_server_$init: 81 procedure; 82 83 /* parameters */ 84 85 dcl bv_event_call_info_ptr ptr parameter; 86 87 /* automatic */ 88 89 dcl code fixed bin (35); 90 dcl code_mask_ev_calls fixed bin (35); 91 dcl code_unmask_ev_calls fixed bin (35); 92 dcl fixed_bin_71_reply fixed bin (71) aligned; 93 dcl type fixed bin; 94 dcl user_free_area_ptr ptr; 95 96 dcl 1 mmi aligned like mseg_message_info; 97 dcl 1 l_asr_reply aligned like asr_reply; 98 dcl 1 l_as_request_sender aligned like as_request_sender; 99 100 /* internal static */ 101 102 dcl ms_index fixed bin initial (0) internal static; 103 104 /* external static */ 105 106 dcl error_table_$no_message 107 fixed bin (35) ext static; 108 dcl error_table_$noentry fixed bin (35) external static; 109 dcl error_table_$out_of_sequence 110 fixed bin (35) external static; 111 dcl error_table_$as_request_sender_missing 112 fixed bin (35) external static; 113 dcl error_table_$as_request_invalid_request 114 fixed bin (35) external static; 115 /* entries */ 116 117 dcl asu_$find_process entry (bit (36) aligned, fixed bin, ptr); 118 dcl as_any_other_handler_ entry (character (*), entry, label, label); 119 dcl as_request_note_pnt_change_ 120 entry (ptr, ptr); 121 dcl as_request_bump_user_ entry (ptr, ptr); 122 dcl asr_abs_command_server_ 123 entry (ptr, ptr); 124 dcl asr_com_channel_info_srvr_ 125 entry (ptr, ptr); 126 dcl asr_daemon_command_server_ 127 entry (ptr, ptr); 128 dcl dpg_$register_buzzard entry (ptr, ptr); 129 dcl dial_ctl_$dial_out_rq entry (ptr, ptr); 130 dcl dial_ctl_$dial_rq entry (ptr, ptr); 131 dcl fs_util_$replace_acl entry (char(*), char(*), ptr, bit(1), fixed bin(35)); 132 dcl get_group_id_ entry () returns (char (32)); 133 dcl get_process_id_ entry () returns (bit (36)); 134 dcl get_user_free_area_ entry returns (pointer); 135 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 136 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 137 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 138 dcl ipc_$drain_chn entry (fixed bin (71), fixed bin (35)); 139 dcl ipc_$mask_ev_calls entry (fixed bin (35)); 140 dcl ipc_$unmask_ev_calls entry (fixed bin (35)); 141 dcl message_segment_$create 142 entry (char (*), char (*), fixed bin (35)); 143 dcl message_segment_$delete 144 entry (char (*), char (*), fixed bin (35)); 145 dcl message_segment_$delete_index 146 entry (fixed bin, bit (72) aligned, fixed bin (35)); 147 dcl message_segment_$read_message_index 148 entry (fixed bin, pointer, pointer, fixed bin (35)); 149 dcl message_segment_$get_message_count_index 150 entry (fixed bin, fixed bin, fixed bin (35)); 151 dcl message_segment_$open entry (char (*), char (*), fixed bin, fixed bin (35)); 152 dcl sc_admin_command_ entry (ptr, ptr); 153 dcl sub_err_ entry () options (variable); 154 dcl sys_log_ entry options (variable); 155 dcl sys_log_$error_log entry options (variable); 156 157 /* based */ 158 159 dcl 1 request aligned based (mmi.ms_ptr) like as_request_header; 160 dcl user_free_area area based (user_free_area_ptr); 161 162 /* builtin functions */ 163 164 dcl (addr, clock, dimension, length, null, unspec) 165 builtin; 166 167 dcl cleanup condition; 168 dcl any_other condition; 169 170 171 /* program */ 172 173 if ^sc_stat_$Multics_typed | sc_stat_$Go_typed 174 then call sub_err_ (error_table_$out_of_sequence, "as_request_server_$init", "s"); 175 176 /* Drain message segment by deleting and re-creating it. */ 177 178 call message_segment_$delete (sysdir, "as_request.ms", code); 179 if code ^= 0 180 then if code ^= error_table_$noentry /* don't care if it didn't exist before */ 181 then call sys_log_$error_log (SL_LOG, code, "as_request_server_$init", "Deleting ^a>as_request.ms.", 182 sysdir); 183 184 call message_segment_$create (sysdir, "as_request.ms", code); 185 if code ^= 0 186 then go to fail; 187 188 call message_segment_$open (sysdir, "as_request.ms", ms_index, code); 189 if code ^= 0 190 then go to fail; 191 192 /* add everyone to the ACL */ 193 194 call Set_Mseg_Acls(); 195 196 /* The request segment is ready, set up the event channel */ 197 198 call ipc_$create_ev_chn (whotab.request_channel, code); 199 if code ^= 0 200 then go to ipc_fail; 201 202 call ipc_$decl_ev_call_chn (whotab.request_channel, as_request_server_$wakeup, null, AS_REQUEST_PRIO, code); 203 if code ^= 0 204 then do; 205 ipc_fail: 206 whotab.request_channel = 0; 207 go to fail; 208 end; 209 ansp = as_data_$ansp; 210 whotab.request_process_id = anstbl.as_procid; 211 212 return; 213 214 fail: 215 call sys_log_$error_log (SL_LOG, code, "as_request_server_$init", 216 "Manipulating ^a>as_request.ms or IPC channels.", sysdir); 217 ms_index = 0; /* we didn't really finish */ 218 call sub_err_ (code, "as_request_server_$init", "s"); 219 220 Set_Mseg_Acls: 221 procedure (); 222 223 dcl 1 ms_acl aligned, /* like general_acl */ 224 2 version char (8) aligned, 225 2 count fixed bin, 226 2 entries (5) like general_acl_entry; 227 dcl NO_SYSDAEMON bit (1) initial ("1"b) internal static options (constant); 228 229 acl_ptr = addr (ms_acl); 230 general_acl.version = GENERAL_ACL_VERSION_1; 231 general_acl.count = dimension (ms_acl.entries, 1); 232 general_acl.entries (1).access_name = get_group_id_ (); 233 general_acl.entries (1).mode = MSEG_QUEUE_CREATOR_INITIAL_ACCESS; 234 general_acl.entries (1).status_code = 0; 235 general_acl.entries (2).access_name = "*.SysDaemon.*"; 236 general_acl.entries (2).mode = MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS; 237 general_acl.entries (2).status_code = 0; 238 general_acl.entries (3).access_name = "*.SysAdmin.*"; 239 general_acl.entries (3).mode = MSEG_QUEUE_ADMIN_ACCESS; 240 general_acl.entries (3).status_code = 0; 241 general_acl.entries (4).access_name = "*.SysMaint.*"; 242 general_acl.entries (4).mode = MSEG_QUEUE_ADMIN_ACCESS; 243 general_acl.entries (4).status_code = 0; 244 general_acl.entries (5).access_name = "*.*.*"; 245 general_acl.entries (5).mode = MSEG_QUEUE_USER_ACCESS; 246 general_acl.entries (5).status_code = 0; 247 248 call fs_util_$replace_acl (sysdir, "as_request.ms", 249 addr (general_acl), NO_SYSDAEMON, code); 250 if code ^= 0 then go to fail; 251 end Set_Mseg_Acls; 252 253 /* ************************************************************************ 254* * as_request_server_$wakeup - Entry which is called when someone * 255* * places a request in the message segment and sends us a wakeup. * 256* * * 257* * Note: Since the messages from the requestor can be of any size, the * 258* * length of the message must be compared against the size of structure * 259* * that the message should represent. * 260* ************************************************************************ */ 261 262 as_request_server_$wakeup: 263 entry (bv_event_call_info_ptr); 264 event_call_info_ptr = bv_event_call_info_ptr; 265 266 if ms_index = 0 | sc_stat_$shutdown_typed 267 then do; 268 call sys_log_ (SL_LOG, 269 "as_request_server_: Request message segment not initialized or shutdown has been typed."); 270 return; 271 end; 272 273 code_mask_ev_calls, code_unmask_ev_calls = -1; /* close window, see CLEANUP and ERROR_RETURN */ 274 asr_replyp = addr (l_asr_reply); 275 unspec (asr_reply) = ""b; 276 277 unspec (mmi) = ""b; 278 mmi.version = MSEG_MESSAGE_INFO_V1; 279 mmi.ms_ptr = null (); /* for cleanup handler */ 280 user_free_area_ptr = get_user_free_area_(); 281 ansp = as_data_$ansp; 282 anstbl.current_time = clock (); 283 on cleanup call CLEANUP; 284 285 call ipc_$mask_ev_calls (code_mask_ev_calls); 286 287 on any_other call as_any_other_handler_ ("as_request_server_", CLEANUP, ERROR_RETURN, ERROR_RETURN); 288 /* we have no different exit requirements when cleanup failed. */ 289 290 code = 0; 291 call ipc_$drain_chn (event_call_info.channel_id, (0)); 292 call PROCESS_MESSAGES (code); /* returns -2 for deferred */ 293 294 /**** Here if mseg is empty, or only contains deferred messages, 295* or we have burned a bunch of CPU time. */ 296 297 if code = -2 /* deferred or processed too many. */ 298 then call hcs_$wakeup (get_process_id_ (), whotab.request_channel, (0), (0)); 299 go to RETURN; 300 301 ERROR_RETURN: 302 call hcs_$wakeup (get_process_id_ (), whotab.request_channel, (0), (0)); 303 /* in case there is work left to do. */ 304 RETURN: 305 if code_mask_ev_calls = 0 & code_unmask_ev_calls ^= 0 306 then call ipc_$unmask_ev_calls (code_unmask_ev_calls); 307 /* masked in initialize */ 308 return; 309 310 311 PROCESS_MESSAGES: 312 proc (code); 313 dcl code fixed bin (35); 314 dcl deferred_one bit (1) aligned; 315 dcl action fixed bin; 316 dcl message_count fixed bin; 317 318 /**** Each message is either processed, deferred, or rejected */ 319 320 declare ( 321 PROCESS init (1), 322 DEFER init (2), 323 REJECT init (3) 324 ) fixed bin int static options (constant); 325 326 deferred_one = "0"b; 327 mmi.message_code = MSEG_READ_FIRST; /* start with the first one */ 328 329 do while ("1"b); /* exit with return statement */ 330 call message_segment_$read_message_index (ms_index, addr(user_free_area), addr (mmi), code); 331 if code ^= 0 332 then do; 333 if code ^= error_table_$no_message 334 then call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", 335 "Error reading message from message segment."); 336 if deferred_one 337 then code = -2; /* note that wakeup needs to be sent back to us */ 338 return; 339 end; 340 341 action = EXAMINE_MESSAGE (); /* side effects are potentially utep and mmi.sender_id */ 342 if action = PROCESS 343 then do; 344 call PROCESS_THE_MESSAGE; 345 call DELETE_THE_MESSAGE; 346 call FREE_THE_MESSAGE; 347 call message_segment_$get_message_count_index (ms_index, message_count, code); 348 if code ^= 0 /* ???, but be safe */ | message_count > 0 349 then code = -2; 350 else code = 0; /* There is no race condition here. */ 351 return; /* We drain the channel first, so that if we return zero here and a new message is in */ 352 /* its wakeup will take. */ 353 end; 354 else if action = DEFER 355 then do; 356 deferred_one = "1"b; 357 mmi.message_code = MSEG_READ_AFTER_SPECIFIED; 358 /* continue along */ 359 end; 360 else if action = REJECT 361 then do; 362 call DELETE_THE_MESSAGE; 363 mmi.message_code = MSEG_READ_FIRST; 364 end; 365 366 call FREE_THE_MESSAGE; 367 end; 368 369 /* Never exit this loop */ 370 371 EXAMINE_MESSAGE: 372 procedure returns (fixed bin); 373 374 if mmi.ms_len < length (unspec (request)) 375 then do; 376 code = error_table_$as_request_invalid_request; 377 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", 378 "Message too short from ^a.", mmi.sender_id); 379 return (REJECT); 380 end; 381 call asu_$find_process (mmi.sender_process_id, type, utep); 382 /* for now, always require live sender. */ 383 if utep = null 384 then do; 385 code = error_table_$as_request_sender_missing; 386 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", 387 "Process no longer active for request from ^a.", mmi.sender_id); 388 return (REJECT); 389 end; 390 391 if request.type < ASR_FIRST_TYPE | request.type > ASR_LAST_TYPE 392 then do; 393 call sys_log_ (SL_LOG_SILENT, "as_request_server_: Rejected invalid type ^d message from ^a ^w.", 394 request.type, mmi.sender_id, mmi.sender_process_id); 395 return (REJECT); 396 end; 397 398 if sc_stat_$admin_listener_switch 399 then if ASR_DEFER_IN_ADMIN_MODE (request.type) 400 then return (DEFER); 401 402 return (PROCESS); 403 end EXAMINE_MESSAGE; 404 405 406 PROCESS_THE_MESSAGE: 407 procedure; 408 409 l_as_request_sender.version = AS_REQUEST_SENDER_VERSION_2; 410 l_as_request_sender.group_id = mmi.sender_id; 411 l_as_request_sender.process_id = mmi.sender_process_id; 412 l_as_request_sender.authorization = mmi.sender_authorization; 413 l_as_request_sender.validation_level = mmi.sender_level; 414 l_as_request_sender.max_authorization = mmi.sender_max_authorization; 415 l_as_request_sender.audit_flags = mmi.sender_audit; 416 417 if request.type = ASR_DIAL_SERVER 418 then call DIAL_SERVER_REQUEST (); 419 else if request.type = ASR_DIAL_OUT 420 then call DIAL_OUT_REQUEST (); 421 else if request.type = ASR_FPE_CAUSES_LOGOUT 422 then call FPE_CAUSES_LOGOUT_REQUEST (); 423 else if request.type = ASR_FPE_CAUSES_NEW_PROC 424 then call FPE_CAUSES_NEW_PROC_REQUEST (); 425 else if request.type = ASR_PROC_TERM_NOTIFY 426 then call PROC_TERM_NOTIFY_REQUEST (); 427 else if request.type = ASR_BUMP_USER 428 then call BUMP_USER_REQUEST (); 429 else if request.type = ASR_ADMIN_COMMAND 430 then call ADMIN_COMMAND_REQUEST (); 431 else if request.type = ASR_NOTE_PNT_CHANGE 432 then call NOTE_PNT_CHANGE_REQUEST (); 433 else if request.type = ASR_DAEMON_COMMAND 434 then call DAEMON_COMMAND_REQUEST (); 435 else if request.type = ASR_COM_CHANNEL_INFO 436 then call COM_CHANNEL_INFO_REQUEST (); 437 else if request.type = ASR_ABS_COMMAND 438 then call ABS_COMMAND_REQUEST (); 439 return; 440 end PROCESS_THE_MESSAGE; 441 end PROCESS_MESSAGES; 442 443 444 /* ************************************************************************ 445* * DIAL_SERVER_REQUEST - For a dial request. Presumably * 446* * dial_ctl_$dial_rq logs successful and unsuccessful requests. No * 447* * reply is sent. Note: request_ptr must be set so that length may be * 448* * without compiler warning. * 449* ************************************************************************ */ 450 451 DIAL_SERVER_REQUEST: 452 proc (); 453 request_ptr = mmi.ms_ptr; 454 if mmi.ms_len >= length (unspec (dial_server_request)) 455 then call dial_ctl_$dial_rq (mmi.ms_ptr, addr (l_as_request_sender)); 456 else do; 457 code = error_table_$as_request_invalid_request; 458 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 459 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 460 end; 461 end DIAL_SERVER_REQUEST; 462 463 /* ************************************************************************ 464* * DIAL_OUT_REQUEST - AS request for dial_out. No reply is sent. * 465* * Note: request_ptr must be set do that length can be user without * 466* * a compiler warning. * 467* ************************************************************************ */ 468 469 DIAL_OUT_REQUEST: 470 proc (); 471 request_ptr = mmi.ms_ptr; 472 if mmi.ms_len >= length (unspec (dial_server_request)) 473 then call dial_ctl_$dial_out_rq (mmi.ms_ptr, addr (l_as_request_sender)); 474 else do; 475 code = error_table_$as_request_invalid_request; 476 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 477 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 478 end; 479 end DIAL_OUT_REQUEST; 480 481 /* ************************************************************************ 482* * FPE_CAUSES_LOGOUT_REQUEST - This sets to logout the AS flag that * 483* * indicates whether a Fatal Process Error will cause a logout or a * 484* * new_proc. The old value of the flag is returned in the reply. * 485* ************************************************************************ */ 486 487 FPE_CAUSES_LOGOUT_REQUEST: 488 proc (); 489 l_asr_reply.data = ute.fpe_causes_logout; 490 l_asr_reply.code = 0; 491 ute.fpe_causes_logout = "1"b; 492 call sys_log_ (SL_LOG_SILENT, "^a: ^a (^w) set fatal process error ^[logout^;new_proc^].", "as_request_sender_", 493 mmi.sender_id, mmi.sender_process_id, ute.fpe_causes_logout); 494 call SEND_ASR_REPLY; 495 end FPE_CAUSES_LOGOUT_REQUEST; 496 497 /* ************************************************************************ 498* * FPE_CAUSES_NEW_PROC_REQUEST - This sets to new_proc the AS flag * 499* * that indicates whether a Fatal Process Error will cause a logout or * 500* * a new_proc. The old value of the flag is returned in the reply. * 501* ************************************************************************ */ 502 503 FPE_CAUSES_NEW_PROC_REQUEST: 504 proc (); 505 l_asr_reply.data = ute.fpe_causes_logout; 506 l_asr_reply.code = 0; 507 ute.fpe_causes_logout = "0"b; 508 call sys_log_ (SL_LOG_SILENT, "^a: ^a (^w) set fatal process error ^[logout^;new_proc^].", "as_request_sender_", 509 mmi.sender_id, mmi.sender_process_id, ute.fpe_causes_logout); 510 call SEND_ASR_REPLY; 511 end FPE_CAUSES_NEW_PROC_REQUEST; 512 513 /* ************************************************************************ 514* * PROC_TERM_NOTIFY_REQUEST - This registers a user to be a buzzard * 515* * process, i.e., the user's process will be notified when other * 516* * processes are terminated. Note: asr_buzzard_infop must be set so * 517* * that the length function can be used without a compiler warning. * 518* ************************************************************************ */ 519 520 PROC_TERM_NOTIFY_REQUEST: 521 proc (); 522 asr_buzzard_infop = mmi.ms_ptr; 523 if mmi.ms_len >= length (unspec (asr_buzzard_info)) 524 then do; 525 call dpg_$register_buzzard (mmi.ms_ptr, addr (l_as_request_sender)); 526 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 527 call SEND_ASR_REPLY; 528 end; 529 else do; 530 code = error_table_$as_request_invalid_request; 531 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 532 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 533 end; 534 end PROC_TERM_NOTIFY_REQUEST; 535 536 /* ************************************************************************ 537* * BUMP_USER_REQUEST - The requesting process wishes to bump another * 538* * user's process. * 539* ************************************************************************ */ 540 541 BUMP_USER_REQUEST: 542 proc (); 543 if mmi.ms_len >= length (unspec (asr_bump_user_info)) 544 then do; 545 asr_bump_user_info_ptr = mmi.ms_ptr; 546 call as_request_bump_user_ (asr_bump_user_info_ptr, addr (l_as_request_sender)); 547 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 548 call SEND_ASR_REPLY; 549 end; 550 else do; 551 code = error_table_$as_request_invalid_request; 552 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 553 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 554 end; 555 end BUMP_USER_REQUEST; 556 557 558 ADMIN_COMMAND_REQUEST: 559 proc (); 560 asr_admin_command_info_ptr = mmi.ms_ptr; /* trust as far as refer calculation */ 561 if mmi.ms_len >= length (unspec (asr_admin_command_info)) 562 then do; 563 call sc_admin_command_ (asr_admin_command_info_ptr, addr (l_as_request_sender)); 564 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 565 call SEND_ASR_REPLY; 566 end; 567 else do; 568 code = error_table_$as_request_invalid_request; 569 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 570 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 571 end; 572 end ADMIN_COMMAND_REQUEST; 573 574 NOTE_PNT_CHANGE_REQUEST: 575 procedure (); 576 577 /**** This request allows the Ring-1 PNT software to notify the answering 578* service of PNT changes which may require bumping currently logged 579* in users, or which may require updating information in the 580* user_table_entry for a user. */ 581 582 asr_note_pnt_change_info_ptr = mmi.ms_ptr; 583 if mmi.ms_len >= length (unspec (asr_note_pnt_change_info)) 584 then call as_request_note_pnt_change_ (asr_note_pnt_change_info_ptr, addr (l_as_request_sender)); 585 else do; 586 code = error_table_$as_request_invalid_request; 587 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 588 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 589 end; 590 return; 591 end NOTE_PNT_CHANGE_REQUEST; 592 593 COM_CHANNEL_INFO_REQUEST: 594 procedure (); 595 596 asr_com_channel_info_ptr = mmi.ms_ptr; 597 if mmi.ms_len >= length (unspec (asr_com_channel_info)) 598 then do; 599 call asr_com_channel_info_srvr_ (asr_com_channel_info_ptr, addr (l_as_request_sender)); 600 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 601 call SEND_ASR_REPLY (); 602 end; 603 else do; 604 code = error_table_$as_request_invalid_request; 605 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 606 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 607 end; 608 return; 609 end COM_CHANNEL_INFO_REQUEST; 610 611 DAEMON_COMMAND_REQUEST: 612 procedure (); 613 614 asr_daemon_command_info_ptr = mmi.ms_ptr; 615 if mmi.ms_len >= length (unspec (asr_daemon_command_info)) 616 then do; 617 call asr_daemon_command_server_ (asr_daemon_command_info_ptr, addr (l_as_request_sender)); 618 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 619 call SEND_ASR_REPLY (); 620 end; 621 else do; 622 code = error_table_$as_request_invalid_request; 623 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 624 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 625 end; 626 return; 627 end DAEMON_COMMAND_REQUEST; 628 629 ABS_COMMAND_REQUEST: 630 procedure (); 631 632 asr_abs_command_info_ptr = mmi.ms_ptr; 633 if mmi.ms_len >= length (unspec (asr_abs_command_info)) 634 then do; 635 call asr_abs_command_server_ (asr_abs_command_info_ptr, addr (l_as_request_sender)); 636 unspec (l_asr_reply) = unspec (l_as_request_sender.reply_message); 637 call SEND_ASR_REPLY (); 638 end; 639 else do; 640 code = error_table_$as_request_invalid_request; 641 call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Message for ""^a"" (type ^d) too short from ^a.", 642 ASR_REQUEST_NAMES (request.type), request.type, mmi.sender_id); 643 end; 644 return; 645 end ABS_COMMAND_REQUEST; 646 647 /* ************************************************************************ 648* * SEND_ASR_REPLY - For those requests that send back replies, if the * 649* * reply channel is non zero, then send back the reply. * 650* ************************************************************************ */ 651 652 SEND_ASR_REPLY: 653 proc (); 654 if request.reply_channel ^= 0 655 then do; 656 unspec (fixed_bin_71_reply) = unspec (l_asr_reply); 657 call hcs_$wakeup (mmi.sender_process_id, request.reply_channel, fixed_bin_71_reply, code); 658 end; 659 end SEND_ASR_REPLY; 660 661 CLEANUP: 662 procedure; 663 664 if code_mask_ev_calls = 0 & code_unmask_ev_calls ^= 0 665 then call ipc_$unmask_ev_calls (code_unmask_ev_calls); 666 /* masked in initialize */ 667 call FREE_THE_MESSAGE (); 668 669 if mmi.ms_id ^= ""b 670 then call DELETE_THE_MESSAGE (); /* delete offending message */ 671 672 end CLEANUP; 673 674 DELETE_THE_MESSAGE: 675 procedure; 676 call message_segment_$delete_index (ms_index, mmi.ms_id, code); 677 if code ^= 0 678 then call sys_log_$error_log (SL_LOG_SILENT, code, "as_request_server_", "Could not delete message ^.3b for ^a", 679 mmi.ms_id, mmi.sender_id); 680 else mmi.ms_id = ""b; /* clear out since no longer valid */ 681 return; 682 end DELETE_THE_MESSAGE; 683 684 685 FREE_THE_MESSAGE: 686 procedure; 687 688 declare msg bit (mmi.ms_len) aligned based (mmi.ms_ptr); 689 690 if mmi.ms_ptr ^= null () 691 then do; 692 free msg in (user_free_area); 693 mmi.ms_ptr = null (); 694 end; 695 return; 696 697 end FREE_THE_MESSAGE; 698 699 /* format: off */ 700 /* BEGIN INCLUDE FILE ... absentee_user_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The absentee user table is the control data base for the absentee */ 1 6 /* facility. It has a header, with scheduling parameters, then one user */ 1 7 /* table entry for each logged-in absentee job. */ 1 8 /* */ 1 9 /* Programs which use this table must also include */ 1 10 /* user_table_header.incl.pl1 and user_table_entry.incl.pl1. */ 1 11 /* */ 1 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 13 1 14 1 15 /****^ HISTORY COMMENTS: 1 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 17* Replace abs_user_tab.incl.pl1. 1 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 1 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 20* Use ut_header common to all user control tables. 1 21* END HISTORY COMMENTS */ 1 22 1 23 1 24 dcl AUTBL_version_4 fixed bin int static options (constant) init (4); 1 25 1 26 dcl autp ptr automatic init (null); 1 27 1 28 dcl 1 autbl based (autp) aligned, /* a per system table to store info on absentee processes */ 1 29 2 header like ut_header, /* Header common to all user tables. */ 1 30 1 31 /* Counter elements */ 1 32 2 n_abs_run fixed bin, /* actual number of absentee processes current */ 1 33 2 max_abs_users fixed bin, /* max number of background absentee processes permitted */ 1 34 2 n_background_abs fixed bin, /* number of absentee processes not from foreground queue */ 1 35 2 n_sec_fg fixed bin, /* number of secondary foreground absentee jobs */ 1 36 2 idle_units fixed bin, /* used in adjusting abs_maxu dynamically */ 1 37 2 abs_units fixed bin, /* part of anstbl.n_units used by background absentees */ 1 38 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 1 39 2 qres (4) fixed bin, /* number of slots reserved for each background queue */ 1 40 2 rsc_waiting (-1:4) fixed bin, /* number of requests waiting for resources, from each queue */ 1 41 2 qerr (-1:4) fixed bin, /* number of consecutive errors for q (dropped if > QERR_MAX) */ 1 42 2 cpu_limit (4) fixed bin (35), /* current per-queue cpu time limits */ 1 43 1 44 /* absentee user manager values. */ 1 45 2 defer_channel fixed bin (71), /* IPC for time-defered queue entries */ 1 46 2 absentee_rq_chn fixed bin (71), /* IPC channel for absentee requests */ 1 47 2 last_queue_searched fixed bin, /* highest queue looked at by scheduler */ 1 48 2 debugging fixed bin, /* take asdumps at strategic places */ 1 49 2 control, /* see also whotab.incl.pl1 */ 1 50 3 mnbz bit (1) unal, /* must not be zero */ 1 51 3 abs_maxu_auto bit (1) unal, /* 1 if abs maxu has not been set by operator command */ 1 52 3 abs_maxq_auto bit (1) unal, /* 1 if abs maxq has not been set by operator command */ 1 53 3 abs_qres_auto bit (1) unal, /* 1 if abs qres has not been set by operator command */ 1 54 3 abs_cpu_limit_auto bit (1) unal, /* 1 if abs cpu_limit has not been set by operator command */ 1 55 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue has been dropped because of errors */ 1 56 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 1 57 3 abs_stopped bit (1) unal, /* 1 if abs stop command was issued */ 1 58 /* both 1 if we're waiting for the last jobs to log out */ 1 59 3 aum_ctl bit (1) unal, /* for AUM to tell AU to start a new sequence */ 1 60 3 lc_list bit (1) unal, /* for AU to tell AUM that the lc list is non-empty */ 1 61 /* comments in AU and AUM explain aum_ctl and lc_list */ 1 62 3 control_pad (21) bit (1) unal, /* fill out rest of word */ 1 63 2 aum_pad fixed bin, 1 64 1 65 2 entry_pad (80) fixed bin, /* pad table header to 128 words */ 1 66 2 entry (0 refer (autbl.current_size)) like ute; 1 67 1 68 dcl AUTBL_CONTROL_NAMES (15) char(20) varying int static options(constant) init( 1 69 "mnbz", 1 70 "abs_maxu_auto", 1 71 "abs_maxq_auto", 1 72 "abs_qres_auto", 1 73 "abs_cpu_limit_auto", 1 74 "queue_dropped(-1)", 1 75 "queue_dropped( 0)", 1 76 "queue_dropped( 1)", 1 77 "queue_dropped( 2)", 1 78 "queue_dropped( 3)", 1 79 "queue_dropped( 4)", 1 80 "abs_up", 1 81 "abs_stopped", 1 82 "aum_ctl", 1 83 "lc_list"); 1 84 1 85 /* END INCLUDE FILE ... absentee_user_table.incl.pl1 */ 700 701 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 701 702 /* Begin include file -- acl_structures.incl.pl1 BIM 3/82 */ 3 2 /* format: style3,indcomtxt,idind30 */ 3 3 3 4 declare acl_ptr pointer; 3 5 declare acl_count fixed bin; 3 6 3 7 declare 1 general_acl aligned based (acl_ptr), /* for fs_util_ */ 3 8 2 version char (8) aligned, 3 9 2 count fixed bin, 3 10 2 entries (acl_count refer (general_acl.count)) aligned like general_acl_entry; 3 11 3 12 declare 1 general_acl_entry based, 3 13 2 access_name character (32) unaligned, 3 14 2 mode bit (36) aligned, 3 15 2 status_code fixed bin (35); 3 16 3 17 3 18 declare 1 general_extended_acl aligned based (acl_ptr), /* for fs_util_ */ 3 19 2 version char (8) aligned, 3 20 2 count fixed bin, 3 21 2 entries (acl_count refer (general_extended_acl.count)) aligned like general_extended_acl_entry; 3 22 3 23 declare 1 general_extended_acl_entry aligned based, 3 24 2 access_name character (32) unaligned, 3 25 2 mode bit (36) aligned, 3 26 2 extended_mode bit (36) aligned, 3 27 2 status_code fixed bin (35); 3 28 3 29 3 30 declare 1 general_delete_acl aligned based (acl_ptr), /* for file_system_ */ 3 31 2 version char (8) aligned, 3 32 2 count fixed bin, 3 33 2 entries (acl_count refer (general_delete_acl.count)) aligned like delete_acl_entry; 3 34 3 35 declare 1 general_delete_acl_entry aligned based, 3 36 2 access_name character (32) unaligned, 3 37 2 status_code fixed bin (35); 3 38 3 39 3 40 declare 1 segment_acl aligned based (acl_ptr), 3 41 2 version fixed bin, 3 42 2 count fixed bin, 3 43 2 entries (acl_count refer (segment_acl.count)) aligned like segment_acl_entry; 3 44 3 45 declare 1 segment_acl_entry like general_extended_acl_entry aligned based; 3 46 declare 1 segment_acl_array (acl_count) aligned like segment_acl_entry based (acl_ptr); 3 47 3 48 3 49 declare 1 directory_acl aligned based (acl_ptr), 3 50 2 version fixed bin, 3 51 2 count fixed bin, 3 52 2 entries (acl_count refer (directory_acl.count)) aligned like directory_acl_entry; 3 53 3 54 declare 1 directory_acl_entry like general_acl_entry aligned based; 3 55 declare 1 directory_acl_array (acl_count) aligned like directory_acl_entry based (acl_ptr); 3 56 3 57 3 58 declare 1 delete_acl based (acl_ptr) aligned, 3 59 2 version fixed bin, 3 60 2 count fixed bin, 3 61 2 entries (acl_count refer (delete_acl.count)) aligned like delete_acl_entry; 3 62 3 63 declare 1 delete_acl_entry like general_delete_acl_entry aligned based; 3 64 declare 1 delete_acl_array (acl_count) aligned like delete_acl_entry based (acl_ptr); 3 65 3 66 3 67 declare (SEG_ACL_VERSION_1 init ("sga1"), 3 68 DIR_ACL_VERSION_1 init ("dra1"), 3 69 DELETE_ACL_VERSION_1 init ("dla1")) 3 70 char (4) int static options (constant); 3 71 3 72 declare (GENERAL_ACL_VERSION_1 init ("gacl001"), 3 73 GENERAL_EXTENDED_ACL_VERSION_1 init ("gxacl001"), 3 74 GENERAL_DELETE_ACL_VERSION_1 init ("gdacl001")) 3 75 char (8) internal static options (constant); 3 76 3 77 declare ACL_VERSION_1 fixed bin init (1) int static options (constant); 3 78 3 79 /* End include file acl_structures.incl.pl1 */ 702 703 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* The answer table has one entry per "login instance" whether completed or */ 4 6 /* not. It is connected to the Channel Definition Table by the pointer */ 4 7 /* "channel". The header is used mostly by dialup_. */ 4 8 /* */ 4 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 4 10 /* */ 4 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 12 4 13 /****^ HISTORY COMMENTS: 4 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 4 15* Replace anstbl.incl.pl1. 4 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 4 17* Add anstbl.session_uid_counter. 4 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 4 19* Add anstbl.message_update_time and named constants for values of 4 20* anstbl.session, and to make all padding explicit. 4 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 4 22* Change "entry" to a placeholder so as not to require 4 23* user_table_entry.incl.pl1. 4 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 4 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 4 26* Added the flag login_server_present which indicates whether a login 4 27* server request has been received. This is used to determine whether 4 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 4 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 4 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 4 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 32* A) Moved constants for ute.pw_flags.mask_ctl into 4 33* user_table_entry.incl.pl1. 4 34* B) Added common table header to all user tables. 4 35* END HISTORY COMMENTS */ 4 36 4 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 38 /* */ 4 39 /* The anstbl structure below is divided into sections. Each section begins */ 4 40 /* with a comment describing the elements in the section. Elements are */ 4 41 /* placed within a section, based upon their function or the programs that */ 4 42 /* use them. Each section begins on a double word and is an even number of */ 4 43 /* words long. */ 4 44 /* */ 4 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 46 4 47 4 48 4 49 /* format: style4 */ 4 50 4 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 4 52 4 53 dcl ansp ptr automatic init (null); 4 54 4 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 4 56 2 header like ut_header, /* Header common to all user tables. */ 4 57 4 58 /* Counter elements. */ 4 59 2 nlin fixed bin, /* number of active lines */ 4 60 2 mxlin fixed bin, /* maximum number of active lines */ 4 61 2 n_users fixed bin, /* number of logged-in users */ 4 62 2 max_users fixed bin, /* maximum number of users allowed */ 4 63 2 n_units fixed bin, /* number of logged in units */ 4 64 2 max_units fixed bin, /* maximum number of units */ 4 65 2 n_sessions fixed bin, /* number of Multics sessions */ 4 66 2 n_pad fixed bin, 4 67 4 68 /* Name elements. */ 4 69 2 sysdir char (64) unal, /* name of main system control directory */ 4 70 2 as_tty char (8) unal, /* name of main answering service device. */ 4 71 4 72 /* Login elements. */ 4 73 2 login_word char (8) unal, /* login word if special_session=1 */ 4 74 2 session char (8) unal, /* session indicator */ 4 75 2 special_message char (128) unal, /* message to be printed for special session */ 4 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 4 77 2 message_lng fixed bin, /* length of special message */ 4 78 2 login_pad fixed bin, 4 79 4 80 /* Table update elements. */ 4 81 2 lock_count fixed bin, /* global lock for all system control tables */ 4 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 4 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 4 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 4 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 4 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 4 87 2 update_pad fixed bin, 4 88 4 89 /* dialup_ data values. */ 4 90 2 current_time fixed bin (71), /* Time of last transaction */ 4 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 4 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 4 93 4 94 /* load_ctl_ elements. */ 4 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 4 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 4 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 4 98 /* load_ctl_ load leveling desired response range: */ 4 99 2 response_high fixed bin, /* bad if user response time slower than this */ 4 100 2 response_low fixed bin, /* bad if user response time faster than this */ 4 101 2 load_ctl_pad fixed bin, 4 102 4 103 /* Login server request server data. */ 4 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 4 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 4 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 4 107 4 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 4 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 4 110 3 contents (UTE_SIZE) fixed bin; 4 111 4 112 /* constants */ 4 113 4 114 /* values for anstbl.session */ 4 115 4 116 dcl (AT_NORMAL init ("normal "), 4 117 AT_SPECIAL init ("special "), 4 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 4 119 4 120 dcl UTE_SIZE fixed bin internal static initial (300); 4 121 4 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 703 704 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* This file must be kept in sync with as_data_.alm */ 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 5 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 5 10* Remove references to the 963 and 029 preaccess commands and remove support 5 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 5 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 5 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 14* Add references to as_data_ entrypoints added for Login Server. 5 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 5 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 17* Added new user signal field of inacrcvd (14) to handle inactivity response 5 18* from user. 5 19* END HISTORY COMMENTS */ 5 20 5 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 5 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 5 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 5 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 5 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 5 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 5 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 5 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 5 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 5 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 5 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 5 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 5 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 5 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 5 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 5 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 5 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 5 38 dcl as_data_$g115_dim char (32) ext static; 5 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 5 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 5 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 5 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 5 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 5 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 5 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 5 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 5 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 5 48 dcl as_data_$request_priority fixed bin ext static; 5 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 5 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 5 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 5 52 dcl as_data_$satp ptr ext static; /* SAT */ 5 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 5 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 5 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 5 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 5 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 5 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 5 59 dcl as_data_$version char (8) ext static; /* AS version */ 5 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 5 61 5 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 5 63 2 n_login_args fixed bin, 5 64 2 pad fixed bin, 5 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 5 66 5 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 5 68 2 n_signals fixed bin, 5 69 2 pad fixed bin, 5 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 5 71 5 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 5 73 2 n_system_signals fixed bin, 5 74 2 pad fixed bin, 5 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 5 76 5 77 dcl as_data_$login_words fixed bin ext static aligned, 5 78 /* interactive login words */ 5 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 5 80 2 n_words fixed bin, 5 81 2 pad fixed bin, 5 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 5 83 5 84 dcl as_data_$debug_flag bit (1) aligned external static; 5 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 5 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 5 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 5 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 5 89 5 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 704 705 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 6 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 7* Removed ansp, autp and dutp from this include file, adding them to 6 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 6 9* daemon_user_table.incl.pl1. 6 10* END HISTORY COMMENTS */ 6 11 6 12 6 13 /* This include file requires as_data_.incl.pl1 */ 6 14 6 15 /* format: style4 */ 6 16 6 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 6 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 6 19 dcl asmtp ptr defined (as_data_$asmtp); 6 20 dcl devtabp ptr defined (as_data_$devtabp); 6 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 6 22 dcl mgtp ptr defined (as_data_$mgtp); 6 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 6 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 6 25 dcl sat_htp ptr defined (as_data_$sat_htp); 6 26 dcl satp ptr defined (as_data_$satp); 6 27 dcl scdtp ptr defined (as_data_$cdtp); 6 28 dcl sysdir char (168) defined (as_data_$sysdir); 6 29 dcl whoptr ptr defined (as_data_$whoptr); 6 30 6 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 705 706 /* BEGIN INCLUDE FILE ... as_request_header.incl.pl1 */ 7 2 7 3 /* DESCRIPTION: 7 4* Answering Service request information. 7 5**/ 7 6 7 7 7 8 /****^ HISTORY COMMENTS: 7 9* 1) change(00-01-01,JRandom), approve(), audit(), install(): 7 10* Written by someone, at sometime. 7 11* 2) change(84-09-10,Tague), approve(), audit(), install(): 7 12* R. Michael Tague: Added ASR_BUMP_USER request. 7 13* 3) change(84-10-04,Margulies), approve(), audit(), install(): 7 14* BIM: ASR_ADMIN_COMMAND. 7 15* 4) change(85-01-23,Swenson), approve(), audit(), install(): 7 16* E. Swenson for ASR_NOTE_PNT_CHANGE. 7 17* 5) change(85-02-18,Margulies), approve(), audit(), install(): 7 18* BIM: ASR_DAEMON_COMMAND, ASR_COM_CHANNEL_INFO 7 19* 6) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 7 20* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 7 21* Jim Lippard: Added ASR_ABS_COMMAND request. 7 22* END HISTORY COMMENTS */ 7 23 7 24 7 25 /* format: style4 */ 7 26 7 27 dcl as_request_version_1 fixed bin internal static initial (1) options (constant); 7 28 7 29 dcl ( 7 30 ASR_FIRST_TYPE initial (1), 7 31 ASR_DIAL_SERVER initial (1), 7 32 ASR_DIAL_OUT initial (2), 7 33 ASR_FPE_CAUSES_LOGOUT initial (3), 7 34 ASR_FPE_CAUSES_NEW_PROC initial (4), 7 35 ASR_PROC_TERM_NOTIFY initial (5), 7 36 ASR_BUMP_USER initial (6), 7 37 ASR_ADMIN_COMMAND initial (7), 7 38 ASR_NOTE_PNT_CHANGE initial (8), 7 39 ASR_DAEMON_COMMAND initial (9), 7 40 ASR_COM_CHANNEL_INFO initial (10), 7 41 ASR_ABS_COMMAND initial (11), 7 42 ASR_LAST_TYPE initial (11) 7 43 ) fixed bin internal static options (constant); 7 44 7 45 dcl ASR_DEFER_IN_ADMIN_MODE (1:11) bit (1) int static options (constant) 7 46 init ((6) (1) "0"b, "1"b, (4) (1) "0"b); 7 47 7 48 dcl ASR_REQUEST_NAMES (1:11) int static options (constant) 7 49 char (40) init ( 7 50 "Dial request", 7 51 "Dial out request", 7 52 "Logout on fatal process error", 7 53 "New process on fatal process error", 7 54 "Monitor process terminations", 7 55 "Bump user", 7 56 "Execute admin command", 7 57 "Note PNT change", 7 58 "Daemon command", 7 59 "Communications channel info", 7 60 "Absentee command"); 7 61 7 62 dcl 1 as_request_header based aligned, 7 63 2 version fixed bin, /* version number */ 7 64 2 type fixed bin, /* what to do */ 7 65 2 reply_channel fixed bin (71); /* who to tell */ 7 66 7 67 7 68 /* END INCLUDE FILE ... as_request_header.incl.pl1 */ 706 707 /* BEGIN INCLUDE FILE ... as_requests.incl.pl1 */ 8 2 /* DESCRIPTION: 8 3* This include file is the repository of as_request_ structures which are 8 4* not so complicated or arcane as to require their own include file. 8 5* It requires as_request_header.incl.pl1 8 6**/ 8 7 8 8 /* HISTORY: 8 9* Written by someone, at sometime. 8 10* Modified: 8 11* 09/10/84 by R. Michael Tague: Add the structure asr_bump_user_info 8 12* and asr_reply_bump_user. 8 13* 01/23/85 by E. Swenson: Add the asr_note_pnt_change_info structure. 8 14**/ 8 15 8 16 /* format: style4 */ 8 17 8 18 /*** return status from an as_request_ call. ***/ 8 19 8 20 dcl asr_replyp ptr; 8 21 dcl 1 asr_reply aligned based (asr_replyp), /* IPC status return for a.s. request */ 8 22 2 code fixed bin (35), /* standard error code */ 8 23 2 data bit (36); /* other data */ 8 24 8 25 /*** request to monitor process destructions, and the destruction notification ***/ 8 26 8 27 dcl asr_buzzard_info_version_1 char (8) init ("buzzard1") int static options (constant); 8 28 dcl asr_buzzard_infop ptr; 8 29 dcl 1 asr_buzzard_info aligned based (asr_buzzard_infop), /* for watching dying processes */ 8 30 2 header aligned like as_request_header, 8 31 2 version char (8), 8 32 2 info_channel fixed bin (71), /* IPC channel to send processid wakeup messges */ 8 33 2 my_reference_id bit (36); /* becomes top 36 bits of death notice */ 8 34 8 35 dcl 1 asr_buzzard_notification aligned based (asr_replyp), /* message on process destruction */ 8 36 2 your_reference_id bit (36), /* from asr_buzzard_info.my_reference_id */ 8 37 2 process_id bit (36); /* process id of dead process */ 8 38 8 39 /* *********************************************************************** 8 40* * asr_bump_user_info - Message segment info structure for the * 8 41* * ASR_BUMP_USER requests. * 8 42* * process-id - process_id of process to be bumped. * 8 43* * message - message to be splat across user terminal when * 8 44* * the bump is begun, i.e., the grace time starts. * 8 45* * No message is sent if message = "". * 8 46* * grace_time_in_seconds * 8 47* * - Amount of time given to the user before the * 8 48* * user's process is actually terminated. * 8 49* * reply_reference_id * 8 50* * - Reference id that will be returned in the * 8 51* * as_reply_bump_user structure. A reply channel * 8 52* * must be specified in reply_channel in the * 8 53* * header of this structure. The reply message * 8 54* * will have the sturcture of asr_reply_bump_user. * 8 55* *********************************************************************** */ 8 56 8 57 dcl asr_bump_user_info_version_1 char (8) init ("asrbump1") int static options (constant); 8 58 8 59 dcl asr_bump_user_info_ptr ptr; 8 60 dcl 1 asr_bump_user_info aligned based (asr_bump_user_info_ptr), 8 61 2 header aligned like as_request_header, 8 62 2 version char (8), 8 63 2 process_id bit (36), 8 64 2 message char (100) unaligned, 8 65 2 grace_time_in_seconds fixed bin, 8 66 2 reply_reference_id bit (36); 8 67 8 68 /* *********************************************************************** 8 69* * asr_reply_bump_user - Structure sent with the IPC reply upon * 8 70* * initiating the bump. Note: the actual * 8 71* * bump does not take place until after the * 8 72* * given of default grace time. * 8 73* * code - Standard system status code. * 8 74* * reference_id * 8 75* * - Reference id supplied in asr_bump_user_info when * 8 76* * bump user request was made. * 8 77* *********************************************************************** */ 8 78 8 79 dcl 1 asr_reply_bump_user aligned based (asr_replyp), 8 80 2 code fixed bin (35), 8 81 2 reference_id bit (36); 8 82 8 83 8 84 dcl asr_admin_command_info_ptr pointer; 8 85 dcl 1 asr_admin_command_info aligned based (asr_admin_command_info_ptr), 8 86 2 header aligned like as_request_header, 8 87 2 version char (8), 8 88 2 flags aligned, 8 89 3 send_start_wakeup bit (1) unaligned, /* over reply channel */ 8 90 3 send_completion_wakeup bit (1) unaligned, /* over reply channel */ 8 91 3 send_completion_message bit (1) unaligned, 8 92 3 send_completion_mail bit (1) unaligned, 8 93 3 dialog bit (1) unaligned, /* NOT YET IMPLEMENTED */ 8 94 3 pad bit (31) unaligned, 8 95 2 dialog_info aligned, /* NOT YET IMPLEMENTED */ 8 96 3 event_channel fixed bin (71), /* NOTIFY ME ON READ/RIGHT */ 8 97 3 output_message_segment_pathname char (200) unaligned, /* Writes go here */ 8 98 3 input_message_segment_pathname char (200) unaligned, /* Reads come here */ 8 99 2 mail_destination char (200) unaligned, 8 100 2 command_length fixed bin (21), 8 101 2 command char (asr_ac_length refer (asr_admin_command_info.command_length)) unaligned; 8 102 8 103 /* See admin_dialog_info.incl.pl1 for related structures */ 8 104 8 105 dcl asr_ac_length fixed bin (21); 8 106 dcl ASR_AC_VERSION_1 char (8) init ("asrac001") int static options (constant); 8 107 8 108 dcl 1 asr_reply_admin_command aligned based (asr_replyp), 8 109 2 code fixed bin (35), 8 110 2 flags aligned, 8 111 3 command_refused bit (1) unaligned, 8 112 3 command_started bit (1) unaligned, 8 113 3 command_completed bit (1) unaligned, /* with or without errors */ 8 114 3 command_aborted bit (1) unaligned, 8 115 3 command_had_errors bit (1) unaligned, /* at least one error */ 8 116 3 pad bit (31) unaligned; 8 117 8 118 /**** The following structure is used by the Ring-1 PNT software to 8 119* notify the answering service of a PNT change which might affect 8 120* logged in processes. */ 8 121 8 122 dcl asr_note_pnt_change_info_ptr ptr; 8 123 8 124 dcl 1 asr_note_pnt_change_info structure aligned based (asr_note_pnt_change_info_ptr), 8 125 2 header aligned like as_request_header, 8 126 2 version char (8), 8 127 2 person_id char (32); 8 128 8 129 dcl ASR_NPC_INFO_VERSION_1 char (8) initial ("asrnpc01") internal static options (constant); 8 130 8 131 /* END INCLUDE FILE ... as_requests.incl.pl1 */ 707 708 /* BEGIN INCLUDE FILE asr_abs_command.incl.pl1 */ 9 2 9 3 /****^ HISTORY COMMENTS: 9 4* 1) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 9 5* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 9 6* Written by Jim Lippard. 9 7* END HISTORY COMMENTS */ 9 8 9 9 dcl asr_abs_command_info_ptr ptr; 9 10 9 11 dcl 1 asr_abs_command_info aligned based (asr_abs_command_info_ptr), 9 12 2 header aligned like as_request_header, 9 13 2 version char (8), 9 14 2 action_code fixed bin, 9 15 2 request_id fixed bin (71); 9 16 9 17 dcl ASR_AC_INFO_VERSION_1 char (8) int static options (constant) init ("asrac001"); 9 18 dcl (ASR_AC_LOGIN init (1), 9 19 ASR_AC_CANCEL init (2)) fixed bin int static options (constant); 9 20 9 21 dcl asr_reply_ac_ptr ptr; 9 22 9 23 dcl 1 asr_reply_abs_command aligned based (asr_reply_ac_ptr), 9 24 2 code fixed bin (35); 9 25 9 26 /* END INCLUDE FILE asr_abs_command.incl.pl1 */ 708 709 /* Begin include file asr_daemon_command.incl.pl1 BIM 1985-02-18 */ 10 2 /* format: style4 */ 10 3 /* AS request structure for daemon commands. */ 10 4 10 5 dcl asr_daemon_command_info_ptr pointer; 10 6 dcl 1 asr_daemon_command_info aligned based (asr_daemon_command_info_ptr), 10 7 2 header aligned like as_request_header, 10 8 2 version char (8), 10 9 2 action_code fixed bin, 10 10 2 user_name char (32) unaligned, 10 11 2 project_name char (32) unaligned, 10 12 2 source_name char (32) unaligned, 10 13 2 pad (10) bit (36) aligned, /* avoid adding after refer */ 10 14 2 command_length fixed bin (21), 10 15 2 command char (asr_dc_length refer (asr_daemon_command_info.command_length)) unaligned; /* login control args here on login */ 10 16 10 17 dcl asr_dc_length fixed bin (21); 10 18 dcl ASR_DC_INFO_VERSION_1 char (8) init ("asrdc001") int static options (constant); 10 19 10 20 dcl (ASR_DC_LOGIN init (1), 10 21 ASR_DC_LOGOUT init (2), 10 22 ASR_DC_QUIT init (3), 10 23 ASR_DC_REPLY init (4)) fixed bin int static options (constant); 10 24 10 25 declare asr_reply_dc_ptr pointer; 10 26 dcl 1 asr_reply_daemon_command aligned based (asr_reply_dc_ptr), 10 27 2 code fixed bin (35), 10 28 2 flags aligned, 10 29 3 command_refused bit (1) unaligned, /* validate_daemon_commands OFF and no access to sac */ 10 30 3 no_such_daemon bit (1) unaligned, /* nobody home */ 10 31 3 no_access_to_daemon bit (1) unaligned, /* validate_daemon_commands ON and no access to the specific victim */ 10 32 3 pad bit (33) unaligned; 10 33 10 34 /* END INCLUDE FILE ... asr_daemon_command.incl.pl1 */ 709 710 /* BEGIN INCLUDE FILE ... asr_com_channel_info.incl.pl1 */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(85-02-18,Margulies), approve(), audit(), install(): 11 6* Initial coding. 11 7* 2) change(87-06-07,GDixon), approve(87-07-13,MCR7741), 11 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 9* Use correct include file name in begin/end comments. 11 10* END HISTORY COMMENTS */ 11 11 11 12 11 13 /* format: style4 */ 11 14 /* request AS to request com channel info */ 11 15 11 16 dcl asr_com_channel_info_ptr pointer; 11 17 dcl 1 asr_com_channel_info aligned based (asr_com_channel_info_ptr), 11 18 2 header aligned like as_request_header, 11 19 2 version char (8), 11 20 2 channel_name char (32) unaligned, 11 21 2 reply_version_requested char (8), 11 22 2 reply_message_handle bit (72) aligned; 11 23 11 24 dcl ASR_CCI_VERSION_1 char (8) init ("asrci001") int static options (constant); 11 25 11 26 dcl asr_reply_cci_ptr pointer; 11 27 dcl 1 asr_reply_com_channel_info aligned based (asr_reply_cci_ptr), 11 28 2 code fixed bin (35), 11 29 2 pad bit (36) aligned; 11 30 11 31 /* END INCLUDE FILE ... asr_com_channel_info.incl.pl1 */ 710 711 /* Begin include file as_request_sender_.incl.pl1 84-06-06 BIM */ 12 2 12 3 /****^ HISTORY COMMENTS: 12 4* 1) change(86-10-14,Lippard), approve(85-12-30,MCR7326), 12 5* audit(86-10-24,GDixon), install(86-10-28,MR12.0-1200): 12 6* Added max_authorization and audit_flags. 12 7* END HISTORY COMMENTS */ 12 8 12 9 /* Structure passed from as_request_server_ to the various 12 10* requests to identify requester. */ 12 11 /* format: style3,indcomtxt */ 12 12 12 13 declare as_request_sender_ptr 12 14 pointer; 12 15 declare 1 as_request_sender aligned based (as_request_sender_ptr), 12 16 2 version char (8) aligned, 12 17 2 reply_message fixed bin (71), 12 18 2 group_id char (32) unaligned, 12 19 2 process_id bit (36), 12 20 2 validation_level 12 21 fixed bin (3), 12 22 2 authorization bit (72), 12 23 2 max_authorization 12 24 bit (72), 12 25 2 audit_flags bit (36); 12 26 12 27 declare AS_REQUEST_SENDER_VERSION_2 12 28 char (8) init ("asrqs002") internal static options (constant); 12 29 12 30 /* End include file as_request_sender_.incl.pl1 */ 711 712 /* BEGIN INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 13 2 13 3 /* This include file defines the priorities of all of the event channels used by the answering service. 13 4* 13 5* They are declared as named constants. They are used in calls to ipc_$decl_ev_call_chn. 13 6* The names correspond to the functions of the event call handlers. 13 7* For brevity in names, MC means message coordinator, and LOGIN includes logout as well. 13 8* 13 9* The comment on each constant lists the procedure(s) that use it to set event channel priorities. 13 10* See the code in those procedures for information on the handlers themselves 13 11* (which are entry variables in some cases, and thus could not be documented in this file). 13 12* 13 13* The priorities range from zero (highest) to 22 (lowest used by the answering service). 13 14* 13 15* The event wait channel on which the A.S. goes blocked awaiting input on the initializer console has highest 13 16* of all priorities, set by as_init_ calling ipc_$set_wait_prior. 13 17* 13 18* Written June 1981 by T. Casey for MR9.0 13 19* Modified 1984-10-15 BIM for sac -> as_request. 13 20* as_request is above login, since sac is important and 13 21* dial requests for already logged in users can take 13 22* first dibs over new logins. 13 23**/ 13 24 13 25 dcl MC_PRIO fixed bin int static options (constant) init (1); /* mc_commands_, mc_con_rec_, mc_util_, mrd_tester */ 13 26 dcl SYSERR_COPY_PRIO fixed bin int static options (constant) init (2); /* syserr_log_man_ */ 13 27 dcl SHUTDOWN_PRIO fixed bin int static options (constant) init (3); /* admin */ 13 28 dcl ACCT_UPDATE_PRIO fixed bin int static options (constant) init (4); /* act_ctl_ */ 13 29 dcl DAEMON_LOGIN_PRIO fixed bin int static options (constant) init (8); /* daemon_user_manager_ */ 13 30 dcl AS_REQUEST_PRIO fixed bin int static options (constant) init (7); /* as_request_ */ 13 31 dcl INSTALL_PRIO fixed bin int static options (constant) init (8); /* up_sysctl_ */ 13 32 dcl INT_LOGIN_PRIO fixed bin int static options (constant) init (8); /* asu_, dialup_, ftp_dialup_ */ 13 33 dcl MPX_LOAD_PRIO fixed bin int static options (constant) init (11); 13 34 /* as_vip7760_mpx_, as_mcs_mpx_, as_ibm3270_mpx_, as_hasp_mpx_ */ 13 35 dcl ABS_DEFER_PRIO fixed bin int static options (constant) init (19); /* absentee_utility_ */ 13 36 dcl ABS_LOGIN_PRIO fixed bin int static options (constant) init (20); /* abentee_user_manager_ */ 13 37 dcl CORE_FLUSH_PRIO fixed bin int static options (constant) init (22); /* as_meter_ */ 13 38 13 39 /* END INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 712 713 /* BEGIN INCLUDE FILE ... dial_server_request.incl.pl1 */ 14 2 14 3 /* This include file declares the data structure to be 14 4* passed to the dial facility to allow a process 14 5* to accept dials. 14 6**/ 14 7 /* Modified 11-9-76 by S.T. Kent to add selective channel release flag 14 8* and registered dial server flag 14 9* Modified April 1979 by Larry Johnson for no_hangup option on release channel 14 10* Modified November 1980 by E.N. Kittlitz for baud rate, line server 14 11* type, and to separate dial_out_destination from dial_qualifier 14 12* Modified March 1981 by Robert Coren to add tandd_attach and no_listen bits 14 13* Modified April 1983 by E. N. Kittlitz for access_class. 14 14* Moodified 84-04-04 BIM for privileged_server. 14 15**/ 14 16 14 17 dcl request_ptr ptr; 14 18 14 19 dcl dial_server_request_version_4 fixed bin internal static initial (4); 14 20 14 21 dcl 1 dial_server_request aligned based (request_ptr), 14 22 2 header like as_request_header, /* std header */ 14 23 2 version fixed bin, /* version of this structure */ 14 24 2 dial_control_channel fixed bin (71), /* send dial acknowledgements here */ 14 25 2 dial_qualifier char (22), /* dial qualifier name to use */ 14 26 2 channel_name char (32), /* channel to attach (may have * convention) */ 14 27 2 dial_out_destination char (32), /* phone-no, etc. for dial out */ 14 28 2 baud_rate fixed bin, /* baud rate required */ 14 29 2 line_type fixed bin, /* line type (protocol) required */ 14 30 2 server_type char (32), /* expansion... */ 14 31 2 flags aligned, /* control flags */ 14 32 3 start bit (1) unaligned, /* start as server */ 14 33 3 stop bit (1) unaligned, /* stop as server */ 14 34 3 privileged_attach bit (1) unaligned, /* grab channel */ 14 35 3 release_channel bit (1) unaligned, /* release this channel */ 14 36 3 registered_server bit (1) unaligned, /* request to become a dial server with a registered qualifier */ 14 37 3 no_hangup bit (1) unaligned, /* release channel without hanging it up */ 14 38 3 release_dial_id bit (1) unaligned, /* stop as dial server, but keep current dial-ups */ 14 39 3 tandd_attach bit (1) unaligned, /* grab channel and force it not to listen */ 14 40 3 no_listen bit (1) unaligned, /* don't listen again at release */ 14 41 3 access_class_specified bit (1) unaligned, /* access_class is valid */ 14 42 3 privileged_server bit (1) unaligned, /* allow_dials/registered_server of range */ 14 43 3 pad bit (25) unaligned, 14 44 2 access_class bit (72); 14 45 14 46 14 47 /* END INCLUDE FILE ... dial_server_request.incl.pl1 */ 713 714 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 15 2 15 3 /* T. Casey, May 1978 */ 15 4 15 5 dcl event_call_info_ptr ptr; 15 6 15 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 15 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 15 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 15 10 2 sender bit (36), /* process id of sender */ 15 11 2 origin, 15 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 15 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 15 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 15 15 15 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 714 715 /* BEGIN INCLUDE FILE ... mseg_access_mode_values.incl.pl1 */ 16 2 16 3 16 4 /****^ HISTORY COMMENTS: 16 5* 1) change(85-04-01,Palter), approve(), audit(), install(): 16 6* Initial coding. 16 7* 2) change(87-04-08,GDixon), approve(87-07-14,MCR7706), 16 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 16 9* Add mseg queue access values for queue users and administrators. 16 10* END HISTORY COMMENTS */ 16 11 16 12 16 13 /* format: style3,linecom */ 16 14 16 15 /* Definition of the extended access modes implemented by the message segment primitives (mseg_) */ 16 16 16 17 declare ( 16 18 /*** The individual modes */ 16 19 MSEG_A_ACCESS initial ("400000000000"b3), /* add a message */ 16 20 MSEG_D_ACCESS initial ("200000000000"b3), /* delete/update any message, accept wakeups, etc. */ 16 21 MSEG_R_ACCESS initial ("100000000000"b3), /* read any message */ 16 22 MSEG_O_ACCESS initial ("040000000000"b3), /* read/delete your own messages */ 16 23 MSEG_S_ACCESS initial ("020000000000"b3), /* get the message count, salvaged flag, etc. */ 16 24 MSEG_W_ACCESS initial ("010000000000"b3), /* send a normal wakeup when adding a message */ 16 25 MSEG_U_ACCESS initial ("004000000000"b3) /* send an urgent wakeup when adding a message */ 16 26 ) bit (36) aligned static options (constant); 16 27 16 28 declare ( 16 29 /*** Common combinations of the modes */ 16 30 MSEG_NULL_ACCESS initial ("000000000000"b3), /* no access at all */ 16 31 MSEG_FULL_ACCESS initial ("774000000000"b3) /* all possible access */ 16 32 ) bit (36) aligned static options (constant); 16 33 16 34 /* format: idind40 */ 16 35 16 36 declare ( 16 37 /*** Initial extended access modes of a newly created mailbox -- The following constants yield the following ACL: 16 38* adrosw Person_id.*.* (or anonymous.Project_id.*) 16 39* aow *.SysDaemon.* 16 40* aow *.*.* */ 16 41 MSEG_MBX_INITIAL_ACL dimension (3) static options (constant) 16 42 initial ("770000000000"b3, "450000000000"b3, "450000000000"b3), 16 43 MSEG_MBX_CREATOR_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (1)), 16 44 MSEG_MBX_SYSDAEMON_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (2)), 16 45 MSEG_MBX_OTHERS_INITIAL_ACCESS defined (MSEG_MBX_INITIAL_ACL (3)) 16 46 ) bit (36) aligned; 16 47 16 48 declare ( 16 49 /*** Initial extended access modes of a newly created queue message segment -- The following constants yield the 16 50* following ACL: 16 51* adros Person_id.*.* (or anonymous.Project_id.*) 16 52* ao *.SysDaemon.* 16 53* null *.*.* */ 16 54 MSEG_QUEUE_INITIAL_ACL dimension (3) static options (constant) 16 55 initial ("760000000000"b3, "440000000000"b3, "000000000000"b3), 16 56 MSEG_QUEUE_CREATOR_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (1)), 16 57 MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (2)), 16 58 MSEG_QUEUE_OTHERS_INITIAL_ACCESS defined (MSEG_QUEUE_INITIAL_ACL (3)) 16 59 ) bit (36) aligned; 16 60 16 61 declare ( 16 62 /*** Extended access modes of queue segment users and administrators: 16 63* ao Queue_User.*.* 16 64* aros Queue_Admin.*.* */ 16 65 MSEG_QUEUE_USER_ACCESS initial ("440000000000"b3), 16 66 MSEG_QUEUE_ADMIN_ACCESS initial ("560000000000"b3)) 16 67 bit (36) aligned int static options(constant); 16 68 16 69 /* END INCLUDE FILE ... mseg_access_mode_values.incl.pl1 */ 715 716 /* BEGIN INCLUDE FILE . . . mseg_message_info.incl.pl1 BIM 1984-10-10 */ 17 2 /* format: style3,idind30 */ 17 3 17 4 /* structure returned when message is read from a message segment */ 17 5 17 6 17 7 dcl mseg_message_info_ptr pointer; 17 8 17 9 dcl 1 mseg_message_info based (mseg_message_info_ptr) aligned, 17 10 2 version char (8) aligned, 17 11 2 message_code fixed bin, 17 12 2 control_flags unaligned, 17 13 3 own bit (1), 17 14 3 delete bit (1), 17 15 3 pad bit (34), 17 16 2 ms_ptr ptr, /* pointer to message */ 17 17 2 ms_len fixed bin (24), /* length of message in bits */ 17 18 2 ms_id bit (72), /* unique ID of message */ 17 19 /* input in some cases */ 17 20 2 ms_access_class bit (72), /* message access class */ 17 21 2 sender_id char (32) unaligned,/* process-group ID of sender */ 17 22 2 sender_process_id bit (36) aligned, /* if nonzero, process that sent */ 17 23 2 sender_level fixed bin, /* validation level of sender */ 17 24 2 sender_authorization bit (72), /* access authorization of message sender */ 17 25 2 sender_max_authorization bit (72), /* max authorization of sending process */ 17 26 2 sender_audit bit (36) aligned; /* audit flags */ 17 27 17 28 declare MSEG_MESSAGE_INFO_V1 char (8) aligned init ("msegmi01") int static options (constant); 17 29 17 30 declare ( 17 31 MSEG_READ_FIRST init (1), 17 32 MSEG_READ_LAST init (2), 17 33 MSEG_READ_SPECIFIED init (3), 17 34 MSEG_READ_BEFORE_SPECIFIED init (4), 17 35 MSEG_READ_AFTER_SPECIFIED init (5)) 17 36 fixed bin int static options (constant); 17 37 17 38 declare (MSEG_READ_OWN init ("1"b), 17 39 MSEG_READ_DELETE init ("01"b) 17 40 ) bit (36) aligned internal static options (constant); 17 41 17 42 /* END INCLUDE FILE . . . mseg_message_info.incl.pl1 */ 716 717 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 18 2 18 3 18 4 /****^ HISTORY COMMENTS: 18 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 18 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 18 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 18 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 18 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 18 10* Reorganized by type of data to improve readability. 18 11* END HISTORY COMMENTS */ 18 12 18 13 18 14 /* ACCESS NAMES */ 18 15 dcl ( 18 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 18 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 18 18 ) char(32) ext static; 18 19 18 20 /* PATHNAMES */ 18 21 dcl ( 18 22 sc_stat_$info_dir, /* admin info segs directory */ 18 23 sc_stat_$log_dir, /* as log segs directory */ 18 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 18 25 sc_stat_$sysdir /* system control directory */ 18 26 ) char(168) ext static; 18 27 18 28 /* OTHER CHAR STRINGS */ 18 29 dcl ( 18 30 sc_stat_$master_channel /* Master TTY channel. */ 18 31 ) char(6) aligned ext static; 18 32 18 33 /* LABELS */ 18 34 dcl ( 18 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 18 36 /* ssu_$null_label unless */ 18 37 /* admin_listener is active. */ 18 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 18 39 /* attributable to a particular */ 18 40 /* command. */ 18 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 18 42 ) label variable ext static; 18 43 18 44 /* POINTERS TO */ 18 45 dcl ( 18 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 18 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 18 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 18 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 18 50 /* by sys_log_. */ 18 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 18 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 18 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 18 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 18 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 18 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 18 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 18 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 18 59 ) ptr ext static; 18 60 18 61 /* SWITCHES */ 18 62 dcl ( 18 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 18 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 18 65 sc_stat_$Multics, /* TRUE after answering service started */ 18 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 18 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 18 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 18 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 18 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 18 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 18 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 18 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 18 74 /* if PNT not yet available. */ 18 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 18 76 sc_stat_$test_mode, /* TRUE if in test environment */ 18 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 18 78 /* by operator signed on system console*/ 18 79 ) bit(1) aligned ext static; 18 80 18 81 18 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 717 718 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 19 2 19 3 19 4 /****^ HISTORY COMMENTS: 19 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 19 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 19 7* Added sl_info structure and associated named constants for use in calling 19 8* sys_log_$general. 19 9* END HISTORY COMMENTS */ 19 10 19 11 19 12 /* format: style4 */ 19 13 19 14 dcl ( 19 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 19 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 19 17 SL_TYPE init (-1), /* type message */ 19 18 SL_LOG_SILENT init (0), /* log message */ 19 19 SL_LOG init (1), /* log & type message */ 19 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 19 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 19 22 ) fixed bin internal static options (constant); 19 23 19 24 dcl 1 sl_info aligned automatic, 19 25 2 version char(8), /* structure version */ 19 26 2 arg_list_ptr ptr, /* arg_list with values */ 19 27 2 loc, 19 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 19 29 /* These flags control where the corresponding data item is found.*/ 19 30 /* -1: data appears in the corresponding structure element below */ 19 31 /* 0: data is not present anywhere */ 19 32 /* +N: data is Nth item in argument list pointed to by */ 19 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 19 34 /* corresponding structure element. */ 19 35 /* if data = +N: */ 19 36 /* argN is data_ptr, argN+1 is data_len */ 19 37 /* if ioa_msg = +N: */ 19 38 /* argN+1, ... argLAST are arguments substituted into the */ 19 39 /* ioa_msg control string. The formatted msg is returned. */ 19 40 2 flags, 19 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 19 42 3 flags_pad bit(35) unal, 19 43 2 mode fixed bin, /* as-mode, command-mode */ 19 44 2 severity fixed bin, /* error severity */ 19 45 2 code fixed bin(35), /* error table code */ 19 46 2 caller char(65) varying, /* caller refname$entryname*/ 19 47 2 data, /* binary data ptr/length */ 19 48 3 data_ptr ptr, 19 49 3 data_lth fixed bin(21), 19 50 2 class char(10) varying, /* binary data class */ 19 51 2 ioa_msg char(500) varying; /* formatted message text */ 19 52 19 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 54 /* */ 19 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 19 56 /* their data types should be as shown in the structure above, except that */ 19 57 /* character strings should be char(*) nonvarying. */ 19 58 /* */ 19 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 60 19 61 /* value for sl_info.version */ 19 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 19 63 19 64 /* values for sl_info.mode */ 19 65 dcl (SL_INFO_as_mode init(1), 19 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 19 67 19 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 19 69 dcl (SL_INFO_arg_given_in_structure init(-1), 19 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 19 71 19 72 19 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 74 /* */ 19 75 /* The following static structures are commonly used in the Login Server */ 19 76 /* user control software. */ 19 77 /* */ 19 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 79 19 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 19 81 19 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 19 83 2 version char(8) init ("sl_info1"), 19 84 2 arg_list_ptr ptr init (null), 19 85 2 loc, 19 86 3 (mode init (-1), 19 87 severity init ( 1), 19 88 code init ( 2), 19 89 caller init (-1), 19 90 data init ( 0), 19 91 class init ( 0), 19 92 ioa_msg init ( 3)) fixed bin, 19 93 2 flags, 19 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 19 95 3 flags_pad bit(35) unal init ("0"b), 19 96 2 mode fixed bin init ( 1), 19 97 2 severity fixed bin init ( 0), 19 98 2 code fixed bin(35) init ( 0), 19 99 2 caller char(65) varying init (""), 19 100 2 data, 19 101 3 data_ptr ptr init (null), 19 102 3 data_lth fixed bin(21) init ( 0), 19 103 2 class char(10) varying init (""), 19 104 2 ioa_msg char(500) varying init (""); 19 105 19 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 19 107 19 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 19 109 2 version char(8) init ("sl_info1"), 19 110 2 arg_list_ptr ptr init (null), 19 111 2 loc, 19 112 3 (mode init (-1), 19 113 severity init ( 1), 19 114 code init ( 0), 19 115 caller init (-1), 19 116 data init ( 0), 19 117 class init ( 0), 19 118 ioa_msg init ( 2)) fixed bin, 19 119 2 flags, 19 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 19 121 3 flags_pad bit(35) unal init ("0"b), 19 122 2 mode fixed bin init ( 1), 19 123 2 severity fixed bin init ( 0), 19 124 2 code fixed bin(35) init ( 0), 19 125 2 caller char(65) varying init (""), 19 126 2 data, 19 127 3 data_ptr ptr init (null), 19 128 3 data_lth fixed bin(21) init ( 0), 19 129 2 class char(10) varying init (""), 19 130 2 ioa_msg char(500) varying init (""); 19 131 19 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 19 133 19 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 19 135 2 version char(8) init ("sl_info1"), 19 136 2 arg_list_ptr ptr init (null), 19 137 2 loc, 19 138 3 (mode init (-1), 19 139 severity init ( 1), 19 140 code init ( 0), 19 141 caller init (-1), 19 142 data init ( 0), 19 143 class init ( 0), 19 144 ioa_msg init ( 2)) fixed bin, 19 145 2 flags, 19 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 19 147 3 flags_pad bit(35) unal init ("0"b), 19 148 2 mode fixed bin init ( 1), 19 149 2 severity fixed bin init ( 0), 19 150 2 code fixed bin(35) init ( 0), 19 151 2 caller char(65) varying init (""), 19 152 2 data, 19 153 3 data_ptr ptr init (null), 19 154 3 data_lth fixed bin(21) init ( 0), 19 155 2 class char(10) varying init (""), 19 156 2 ioa_msg char(500) varying init (""); 19 157 19 158 19 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 19 160 19 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 19 162 2 version char(8) init ("sl_info1"), 19 163 2 arg_list_ptr ptr init (null), 19 164 2 loc, 19 165 3 (mode init (-1), 19 166 severity init ( 1), 19 167 code init ( 2), 19 168 caller init (-1), 19 169 data init ( 0), 19 170 class init ( 0), 19 171 ioa_msg init ( 4)) fixed bin, 19 172 2 flags, 19 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 19 174 3 flags_pad bit(35) unal init ("0"b), 19 175 2 mode fixed bin init ( 1), 19 176 2 severity fixed bin init ( 0), 19 177 2 code fixed bin(35) init ( 0), 19 178 2 caller char(65) varying init (""), 19 179 2 data, 19 180 3 data_ptr ptr init (null), 19 181 3 data_lth fixed bin(21) init ( 0), 19 182 2 class char(10) varying init (""), 19 183 2 ioa_msg char(500) varying init (""); 19 184 19 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 19 186 19 187 dcl 1 sl_info_code_msg aligned int static options(constant), 19 188 2 version char(8) init ("sl_info1"), 19 189 2 arg_list_ptr ptr init (null), 19 190 2 loc, 19 191 3 (mode init (-1), 19 192 severity init (-1), 19 193 code init ( 1), 19 194 caller init (-1), 19 195 data init ( 0), 19 196 class init ( 0), 19 197 ioa_msg init ( 2)) fixed bin, 19 198 2 flags, 19 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 19 200 3 flags_pad bit(35) unal init ("0"b), 19 201 2 mode fixed bin init ( 1), 19 202 2 severity fixed bin init ( 0), 19 203 2 code fixed bin(35) init ( 0), 19 204 2 caller char(65) varying init (""), 19 205 2 data, 19 206 3 data_ptr ptr init (null), 19 207 3 data_lth fixed bin(21) init ( 0), 19 208 2 class char(10) varying init (""), 19 209 2 ioa_msg char(500) varying init (""); 19 210 19 211 19 212 /* Syntax: call Trace (ioa_ctl, args); */ 19 213 19 214 dcl 1 sl_info_msg aligned int static options(constant), 19 215 2 version char(8) init ("sl_info1"), 19 216 2 arg_list_ptr ptr init (null), 19 217 2 loc, 19 218 3 (mode init (-1), 19 219 severity init (-1), 19 220 code init ( 0), 19 221 caller init (-1), 19 222 data init ( 0), 19 223 class init ( 0), 19 224 ioa_msg init ( 1)) fixed bin, 19 225 2 flags, 19 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 19 227 3 flags_pad bit(35) unal init ("0"b), 19 228 2 mode fixed bin init ( 1), 19 229 2 severity fixed bin init ( 0), 19 230 2 code fixed bin(35) init ( 0), 19 231 2 caller char(65) varying init (""), 19 232 2 data, 19 233 3 data_ptr ptr init (null), 19 234 3 data_lth fixed bin(21) init ( 0), 19 235 2 class char(10) varying init (""), 19 236 2 ioa_msg char(500) varying init (""); 19 237 19 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 718 719 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 20 2 20 3 20 4 /****^ HISTORY COMMENTS: 20 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 20 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 20 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 20 8* attribute switches. 20 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 20 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 20 12* be deleted. 20 13* B) Add constants identifying attributes that can be changed by user at 20 14* login, etc. 20 15* END HISTORY COMMENTS */ 20 16 20 17 20 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 20 19 20 20 /* format: style4 */ 20 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 20 22 (2 administrator bit (1), /* 1 system administrator privileges */ 20 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 20 24 2 nobump bit (1), /* 2 user cannot be bumped */ 20 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 20 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 20 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 20 28* . of same project (distinct from "nobump") */ 20 29 2 nolist bit (1), /* 7 don't list user on "who" */ 20 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 20 31 2 multip bit (1), /* 9 user may have several processes */ 20 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 20 33 2 brief bit (1), /* 11 no login or logout message */ 20 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 20 35 2 vhomedir bit (1), /* 13 user may change homedir */ 20 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 20 37 2 sb_ok bit (1), /* 15 user may be standby */ 20 38 2 pm_ok bit (1), /* 16 user may be primary */ 20 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 20 40 2 daemon bit (1), /* 18 user may login as daemon */ 20 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 20 42 2 no_warning bit (1), /* 20 no warning message */ 20 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 20 44* . in PDT: this user has an individual load control group */ 20 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 20 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 20 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 20 48 2 pad bit (12)) unaligned; 20 49 20 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 20 51 ("none", /* 0 */ 20 52 "administrator", /* 1 */ 20 53 "primary_line", /* 2 */ 20 54 "nobump", /* 3 */ 20 55 "guaranteed_login", /* 4 */ 20 56 "anonymous", /* 5 */ 20 57 "nopreempt", /* 6 */ 20 58 "nolist", /* 7 */ 20 59 "dialok", /* 8 */ 20 60 "multip", /* 9 */ 20 61 "bumping", /* 10 */ 20 62 "brief", /* 11 */ 20 63 "vinitproc", /* 12 */ 20 64 "vhomedir", /* 13 */ 20 65 "nostartup", /* 14 */ 20 66 "no_secondary", /* 15 */ 20 67 "no_prime", /* 16 */ 20 68 "no_eo", /* 17 */ 20 69 "daemon", /* 18 */ 20 70 "", /* 19 vdim OBSOLETE */ 20 71 "no_warning", /* 20 */ 20 72 "igroup", /* 21 */ 20 73 "save_pdir", /* 22 */ 20 74 "disconnect_ok", /* 23 */ 20 75 "save_on_disconnect"); /* 24 */ 20 76 20 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 20 78 ("null", /* 0 */ 20 79 "admin", /* 1 */ 20 80 "", "", /* 2 - 3 */ 20 81 "guar", /* 4 */ 20 82 "anon", /* 5 */ 20 83 "", "", /* 6 - 7 */ 20 84 "dial", /* 8 */ 20 85 "multi_login", /* 9 */ 20 86 "preempting", /* 10 */ 20 87 "", /* 11 */ 20 88 "v_process_overseer", /* 12 */ 20 89 "v_home_dir", /* 13 */ 20 90 "no_start_up", /* 14 */ 20 91 "no_sec", /* 15 */ 20 92 "no_primary", /* 16 */ 20 93 "no_edit_only", /* 17 */ 20 94 "op_login", /* 18 */ 20 95 "", /* 19 */ 20 96 "nowarn", /* 20 */ 20 97 "", "", "", /* 21 - 23 */ 20 98 "save"); /* 24 */ 20 99 20 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 20 101 options(constant) init("000000000010000000010000000000000000"b); 20 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 20 103 20 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 20 105 options(constant) init("000000000010000000010000000000000000"b); 20 106 /* PDT value for (brief, no_warning) is default */ 20 107 20 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 20 109 options(constant) init("000100000110010000010000000000000000"b); 20 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 20 111 21 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* This include file describes the attributes of an absentee job. It is */ 21 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 21 7 /* and PIT.incl.pl1. */ 21 8 /* */ 21 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 10 21 11 /****^ HISTORY COMMENTS: 21 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 21 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 14* Separated abs_attributes from the request structure 21 15* (abs_message_format.incl.pl1) so that the identical structure could be 21 16* used in the ute structure (user_table_entry.incl.pl1). 21 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 21 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 19* Added ABS_ATTRIBUTE_NAMES array. 21 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 21 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 21 22* Added the no_start_up flag. SCP6367 21 23* END HISTORY COMMENTS */ 21 24 21 25 dcl 1 user_abs_attributes aligned based, 21 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 21 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 21 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 21 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 21 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 21 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 21 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 21 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 21 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 21 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 21 36 2 attributes_pad bit (26) unaligned; 21 37 21 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 21 39 "restartable", 21 40 "user_deferred_until_time", 21 41 "proxy", 21 42 "set_bit_cnt", 21 43 "time_in_gmt", 21 44 "user_deferred_indefinitely", 21 45 "secondary_ok", 21 46 "truncate_absout", 21 47 "restarted", 21 48 "no_start_up"); 21 49 21 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 21 51 20 112 20 113 20 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 719 720 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 22 2 22 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 4 /* */ 22 5 /* This include file requires that the user include */ 22 6 /* user_attributes.incl.pl1 as well. It also includes */ 22 7 /* abs_attributes.incl.pl1 itself. */ 22 8 /* */ 22 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 22 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 22 11 /* */ 22 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 13 22 14 /****^ HISTORY COMMENTS: 22 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 22 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 22 17* This comment for hcom. 22 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 22 19* anstbl.incl.pl1, and dutbl.incl.pl1. 22 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 22 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 22 22* 84-07-12 BIM added min_process_authorization 22 23* 84-12-31 Keith Loepere added pdir_dir_quota 22 24* 85-01-16 by E. Swenson to add ute.session_uid 22 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 22 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 22 27* Added fields for DSA login server support. 22 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 22 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 22 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 22 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 22 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 22 33* Added disconnection_rel_minutes. 22 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 22 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 36* Changed structure under ute.abs_attributes to use like structure in 22 37* abs_attributes.incl.pl1. This allows the same attributes to be used 22 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 22 39* file. 22 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 22 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 22 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 22 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 45* A) Global reorganization to locate things by type of data. 22 46* B) Eliminate ute.uflags.logged_in. 22 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 22 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 49* A) Reduced overlength person and project fields to proper length. 22 50* B) Adjusted dialed-console section to begin on even word boundary. 22 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 22 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 53* Add ute.line_type. 22 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 22 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 22 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 22 57* for the storage. SCP6367 22 58* END HISTORY COMMENTS */ 22 59 22 60 /* format: style4 */ 22 61 22 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 63 /* */ 22 64 /* Each of the named sections below defines a type of data. Typing comes */ 22 65 /* from data associated with the ute entry itself, with the person, with */ 22 66 /* login argument data, from the main user of the data (eg, dialup_, */ 22 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 22 68 /* and is an even number of words long. The total structure is 300 decimal */ 22 69 /* words long. */ 22 70 /* */ 22 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 72 22 73 22 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 22 75 22 76 dcl utep pointer automatic init (null); 22 77 22 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 22 79 22 80 /* Variables which give state of this entry */ 22 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 22 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 22 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 22 84 2 next_free fixed bin, /* points to previous free entry */ 22 85 22 86 /* Information user gave about person_id associated with this entry. */ 22 87 2 person char (24) unal, /* user's name */ 22 88 2 project char (12) unal, /* project of absentee user */ 22 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 22 90 2 tag_pad bit (27) unal, 22 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 22 92 2 login_flags, /* flags for login data */ 22 93 3 cpw bit (1) unal, /* flag for wish to change password */ 22 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 22 95 3 special_pw unal, /* dial or slave */ 22 96 4 dial_pw bit (1) unal, /* true if dial -user */ 22 97 4 slave_pw bit (1) unal, /* true if slave -user */ 22 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 22 99 3 cda bit (1) unal, /* flag to change default authorization */ 22 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 22 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 22 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 22 103 3 pw_pad bit (25) unal, /* spare parts */ 22 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 22 105 /* Must remain last in pw_flags so it does not */ 22 106 /* appear in PW_FLAG_VALUES array below. */ 22 107 2 generated_pw char (8) unal, /* user must type this as new password */ 22 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 22 109 2 process_authorization bit (72), /* access_authorization of this process */ 22 110 22 111 /* Information user gave about process associated with this entry. */ 22 112 2 outer_module char (32) unal, /* Name of console dim */ 22 113 2 home_dir char (64) unal, /* initial home directory */ 22 114 2 init_proc char (64) unal, /* name of login responder */ 22 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 22 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 22 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 22 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 22 119 2 initial_ring fixed bin, /* ring process will be started in */ 22 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 22 121 2 ln_args fixed bin, /* length of string containing arguments */ 22 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 22 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 22 124 22 125 /* Most of the following information is relevant only to absentee processes */ 22 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 22 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 22 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 22 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 22 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 22 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 22 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 22 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 22 134* (but see uflags.adjust_abs_q_no). */ 22 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 22 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 22 137 2 abs_flags, 22 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 22 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 22 140 3 abs_flags_pad bit (34) unal, 22 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 22 142 2 sender char (32) unal, /* name of RJE station that job is from */ 22 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 22 144 2 proxy_project char (9) unal, 22 145 2 proxy_project_pad char (3) unal, 22 146 2 abs_pad fixed bin, 22 147 22 148 /* Information about process actually created */ 22 149 2 proc_id bit (36), /* process id of absentee process */ 22 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 22 151 2 process_authorization_range (2) bit (72) aligned, 22 152 2 audit bit (36), /* audit flags for user */ 22 153 2 lot_size fixed bin, /* Size of linkage offset table */ 22 154 2 kst_size fixed bin, /* Size of process known segment table */ 22 155 2 cls_size fixed bin, /* Size of process combined linkage */ 22 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 22 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 22 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 22 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 22 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 22 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 22 162 2 pdir_pad fixed bin(17) unal, 22 163 2 process_pad fixed bin, 22 164 22 165 /* Information about primary terminal associated with this entry */ 22 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 22 167 2 terminal_type char (32) unaligned, /* terminal type */ 22 168 2 line_type fixed bin, /* line type */ 22 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 22 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 22 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 22 172 22 173 /* Variables useful for dialed terminals */ 22 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 22 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 22 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 22 177 2 dial_server_flags, 22 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 22 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 22 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 22 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 22 182 22 183 /* Information about usage/accounting. Device usage meters are in a 22 184* separate segment, "devtab" */ 22 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 22 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 22 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 22 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 22 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 22 190 2 last_update_time fixed bin (71), /* time of last account update */ 22 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 22 192 2 ndevices fixed bin, /* Count of attached devices */ 22 193 2 device_head fixed bin, /* Table index of head of device chain */ 22 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 22 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 22 196 2 rs_number_pad bit(30) unal, 22 197 2 usage_pad fixed bin, 22 198 22 199 /* Information for dialup_ (control variables). */ 22 200 2 event fixed bin (71), /* event associated with channel or user manager */ 22 201 2 uprojp ptr, /* ptr to user project sat entry */ 22 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 22 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 22 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 22 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 22 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 22 207 2 count fixed bin, /* counter for logins and dialups */ 22 208 2 n_processes fixed bin, /* number of processes created in this session */ 22 209 2 lock_value fixed bin, /* number of locks set for this entry */ 22 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 22 211 2 login_code char (8) unal, /* login command from LOGIN line */ 22 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 22 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 22 214 2 logout_type char (4) unal, /* type of logout */ 22 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 22 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 22 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 22 218 2 work_class fixed bin, /* work class used by priority scheduler */ 22 219 2 group char (8) unal, /* party group identifier */ 22 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 22 221 22 222 2 uflags, /* Miscellaneous flags */ 22 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 22 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 22 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 22 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 22 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 22 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 22 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 22 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 22 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 22 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 22 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 22 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 22 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 22 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 22 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 22 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 22 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 22 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 22 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 22 242 3 uflags_pad bit (17) unal, 22 243 22 244 /* Information used by load_ctl_ for the process */ 22 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 22 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 22 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 22 248 22 249 22 250 /* Information for login server */ 22 251 2 login_server_info, 22 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 22 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 22 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 22 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 22 256 3 process_id bit (36) aligned, /* process_id of login server */ 22 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 22 258 22 259 /* values for ute.process_type */ 22 260 22 261 dcl (PT_INTERACTIVE initial (1), 22 262 PT_ABSENTEE initial (2), 22 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 22 264 22 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 22 266 "INVALID-TYPE", 22 267 "interactive", 22 268 "absentee", 22 269 "daemon"); 22 270 22 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 22 272 "UNKNOWN-TABLE", 22 273 "answer_table", 22 274 "absentee_user_table", 22 275 "daemon_user_table"); 22 276 22 277 22 278 /* values for ute.pw_flags.mask_ctl */ 22 279 22 280 dcl (DO_MASK init ("00"b), 22 281 DONT_MASK init ("01"b), 22 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 22 283 22 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 22 285 "do_mask", "dont_mask", "derive_mask", ""); 22 286 22 287 22 288 /* names for ute.pw_flags */ 22 289 22 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 22 291 "cpw", 22 292 "generate_pw", 22 293 "dial_pw", 22 294 "slave_pw", 22 295 "cdp", 22 296 "cda", 22 297 "auth_given", 22 298 "noprint", 22 299 "operator"); 22 300 22 301 /* names for ute.uflags */ 22 302 22 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 22 304 "dont_call_init_admin", 22 305 "ip_given", 22 306 "ss_given", 22 307 "lvs_attached", 22 308 "send_initial_string", 22 309 "adjust_abs_q_no", 22 310 "foreground_secondary_ok", 22 311 "foreground_job", 22 312 "sus_sent", 22 313 "suspended", 22 314 "ignore_cpulimit", 22 315 "deferral_logged", 22 316 "save_if_disconnected", 22 317 "disconnected", 22 318 "disconnected_list", 22 319 "proc_create_ok", 22 320 "activity_can_unbump", 22 321 "fpe_causes_logout", 22 322 "user_specified_immediate"); 22 323 22 324 /* names for ute.abs_flags */ 22 325 22 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 22 327 "abs_run", 22 328 "notify"); 22 329 22 330 /* names of ute.dial_server_flags */ 22 331 22 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 22 333 "registered", 22 334 "privileged"); 22 335 22 336 /* values of ute.login_result */ 22 337 22 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 22 339 "logged in", 22 340 "login failed, hangup", 22 341 "login failed, try again"); 22 342 22 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 720 721 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 23 2 23 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 4 /* */ 23 5 /* This include file declares the header shared by the answer_table, */ 23 6 /* absentee_user_table and daemon_user_table include files. */ 23 7 /* */ 23 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 9 23 10 /****^ HISTORY COMMENTS: 23 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 23 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 23 13* Initial coding. 23 14* END HISTORY COMMENTS */ 23 15 23 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 23 17 2 header_version fixed bin, /* version of the header (3) */ 23 18 2 entry_version fixed bin, /* version of user table entries */ 23 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 23 20 2 header_length fixed bin, /* length of the header */ 23 21 2 max_size fixed bin, /* max number of entries in this table */ 23 22 2 current_size fixed bin, /* actual size of table (in entries) */ 23 23 2 number_free fixed bin, /* number of free entries in the table. */ 23 24 2 first_free fixed bin, /* index of first entry in the free list. */ 23 25 2 as_procid bit (36), /* process ID of user table manager process */ 23 26 2 ut_header_pad fixed bin; 23 27 23 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 721 722 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 24 2 24 3 /* Modified 740723 by PG to add security info */ 24 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 24 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 24 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 24 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 24 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 24 9 24 10 dcl 1 whotab based (whoptr) aligned, 24 11 2 mxusers fixed bin, /* max. number of users on system */ 24 12 2 n_users fixed bin, /* current number of users */ 24 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 24 14 2 n_units fixed bin, /* current load */ 24 15 2 timeup fixed bin (71), /* time system was started */ 24 16 2 session char (8), /* AS state, same as anstbl.session */ 24 17 2 nextsd fixed bin (71), /* time we will shutdown */ 24 18 2 until fixed bin (71), /* projected time we start up again */ 24 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 24 20 2 erfno char (8), /* if a crash, the error number */ 24 21 2 obsolete_why char (32), /* reason for last shutdown */ 24 22 2 installation_id char (32), /* name of installation */ 24 23 2 obsolete_message char (32), /* message for all users */ 24 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 24 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 24 26 2 max_abs_users fixed bin, /* max number of absentee users */ 24 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 24 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 24 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 24 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 24 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 24 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 24 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 24 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 24 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 24 36 2 pad1 bit (9) unal, 24 37 2 pad (3) fixed bin, 24 38 2 version fixed bin, /* structure version */ 24 39 2 header_size fixed bin, /* length of header in words */ 24 40 2 entry_size fixed bin, /* length of entry in words */ 24 41 /* laste_adjust is used only by Answering Service programs */ 24 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 24 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 24 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 24 45 24 46 /* whotab header extension: The header is extended from 64 words by 24 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 24 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 24 49* present. This allows existing programs to function with old definitions of 24 50* whotab. Obviously no new header field can be more than 31 contiguous words in 24 51* length. In the Answering Service, all programs using whotab must be compiled 24 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 24 53 24 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 24 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 24 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 24 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 24 58 2 abs_control, /* see absentee_user_table */ 24 59 3 mnbz bit (1) unal, /* must not be zero */ 24 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 24 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 24 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 24 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 24 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 24 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 24 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 24 67 3 control_pad bit (23) unal, 24 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 24 69 2 installation_request_pid bit (36), /* installation process identifier */ 24 70 2 sysid char (32), /* current system name */ 24 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 24 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 24 73 2 message char (124), /* message for all users */ 24 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 24 75 2 why char (124), /* reason for last shutdown */ 24 76 2 e (1000), /* offset 240o */ 24 77 3 active fixed bin, /* nonzero means logged in */ 24 78 3 person char (28) aligned, /* person name */ 24 79 3 project char (28), /* project id */ 24 80 3 anon fixed bin, /* 1 if anonymous user */ 24 81 3 padding fixed bin (71), 24 82 3 timeon fixed bin (71), /* time of login */ 24 83 3 units fixed bin, /* load units */ 24 84 3 stby fixed bin, /* 1 if stby */ 24 85 3 idcode char (4), /* tty id code */ 24 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 24 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 24 88 3 group char (8), /* party-line group */ 24 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 24 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 24 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 24 92 3 pad2 bit (33) unal, 24 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 24 94 3 process_authorization bit (72); /* access authorization of process */ 24 95 24 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 24 97 24 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 722 723 724 725 /* BEGIN MESSAGE DOCUMENTATION 726* 727* Message: 728* as_request_server_$init: MSG. Manipulating >sc1>as_request_.ms or IPC channels. 729* 730* S: as (severity1) 731* 732* T: Answering Service initialization. 733* 734* M: MSG is an error_table_ message. A programming error has been encountered. 735* 736* A: $contact 737* After the problem is corrected, repeat the bootload operation. 738* 739* 740* Message: 741* as_request_server_$init: MSG. Deleting >sc1>as_request_.ms. 742* 743* S: as (severity1) 744* 745* T: Answering Service initialization. 746* 747* M: MSG is an error_table_ message. An error was encountered while 748* attempting to delete the as_request message segment, prior to re-creating 749* it. as_request_server_$init continues and attempts to create the message 750* segment. 751* 752* A: $ignore 753* 754* 755* Message: 756* as_request_server_: Request message segment not initialized or shutdown has been typed. 757* 758* S: as (severity1) 759* 760* T: $run 761* 762* M: A request is being ignored because the AS request queue has not been initialized or 763* the the operator has typed the shutdown command. 764* 765* A: $ignore 766* 767* 768* Message: 769* as_request_server_: MSG. Error reading message from message segment. 770* 771* S: as (severity0) 772* 773* T: $run 774* 775* M: MSG is an error_table_ message. An error occurred while reading an AS message from 776* the AS request queue. 777* 778* A: $ignore 779* 780* 781* Message: 782* as_request_server_: Message {for "REQUEST NAME" (type N)} too short from PERS.PROJ. 783* 784* S: as (severity0) 785* 786* T: $run 787* 788* M: A request of type N sent by the process group id specified by PERS.PROJ was in error. 789* The request is ignored. If the request is shorter than the standard request header which 790* precedes all requests, then the request type is not present in the message. 791* 792* A: $ignore 793* 794* 795* Message: 796* as_request_server_: MSG. Process no longer active for request from PERS.PROJ. 797* 798* S: as (severity0) 799* 800* T: $run 801* 802* M: MSG is an error_table_ message and PERS.PROJ isthe sender id. A process sent a wakeup to the 803* Answering Service but then logged out before the Answering Service handled the wakeup. 804* 805* A: $ignore 806* 807* 808* Message: 809* as_request_server_: ERROR_MESSAGE. Can't find message from PGID 810* 811* S: as (severity0) 812* 813* T: $run 814* 815* M: MSG is an error_table_ message and PGID is a process group id. 816* A process sent a wakeup to the Answering Service, but did not put a message in as_request.ms. 817* 818* A: $ignore 819* 820* 821* Message: 822* as_request_server_: Rejected invalid type XX message from PERS.PROJ PID. 823* 824* S: as (severity0) 825* 826* T: $run 827* 828* M: An invalid wakeup request has been sent to as_request_server_. 829* The sending process ID is PID, 830* and the sender name in the message is PERS.PROJ. 831* The request is a type XX request. 832* No action was taken. 833* 834* A: $ignore 835* 836* 837* Message: 838* as_request_sender_: MSG. Could not delete message MID for PERS.PROJ. 839* 840* S: as (severity0) 841* 842* T: $run 843* 844* M: MSG is an error_table_ message, MID is a message ID, PERS.PROJ is the group 845* ID of the AS request sender. The AS request message could not be deleted after executing 846* the AS request. 847* 848* A: $ignore 849* 850* 851* Message: 852* as_request_sender_: PERS.PROJ (PID) set fatal process error [logout|new_proc]. 853* 854* S: as (severity0) 855* 856* T: $run 857* 858* M: The process group id PERS.PROJ (process id PID) has set the AS flag which indicates 859* that fatal process errors will cause a {logout|new_proc}. 860* 861* A: $ignore 862* 863* END MESSAGE DOCUMENTATION */ 864 865 end as_request_server_$init; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/06/88 1300.7 as_request_server_.pl1 >spec>install>1100>as_request_server_.pl1 700 1 08/06/87 0913.4 absentee_user_table.incl.pl1 >ldd>include>absentee_user_table.incl.pl1 701 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 702 3 10/14/83 1606.6 acl_structures.incl.pl1 >ldd>include>acl_structures.incl.pl1 703 4 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 704 5 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 705 6 08/06/87 0913.4 as_data_definitions_.incl.pl1 >ldd>include>as_data_definitions_.incl.pl1 706 7 10/30/86 2010.5 as_request_header.incl.pl1 >ldd>include>as_request_header.incl.pl1 707 8 02/12/85 1429.5 as_requests.incl.pl1 >ldd>include>as_requests.incl.pl1 708 9 10/30/86 2010.5 asr_abs_command.incl.pl1 >ldd>include>asr_abs_command.incl.pl1 709 10 03/08/85 0852.6 asr_daemon_command.incl.pl1 >ldd>include>asr_daemon_command.incl.pl1 710 11 08/06/87 0913.4 asr_com_channel_info.incl.pl1 >ldd>include>asr_com_channel_info.incl.pl1 711 12 10/30/86 2010.5 as_request_sender_.incl.pl1 >ldd>include>as_request_sender_.incl.pl1 712 13 01/21/85 0912.2 as_wakeup_priorities.incl.pl1 >ldd>include>as_wakeup_priorities.incl.pl1 713 14 09/13/84 0921.5 dial_server_request.incl.pl1 >ldd>include>dial_server_request.incl.pl1 714 15 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 715 16 08/06/87 0913.5 mseg_access_mode_values.incl.pl1 >ldd>include>mseg_access_mode_values.incl.pl1 716 17 01/10/85 2002.8 mseg_message_info.incl.pl1 >ldd>include>mseg_message_info.incl.pl1 717 18 08/06/87 0913.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 718 19 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 719 20 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 20-112 21 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 720 22 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.incl.pl1 721 23 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 722 24 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.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. ASR_ABS_COMMAND constant fixed bin(17,0) initial dcl 7-29 ref 437 ASR_ADMIN_COMMAND constant fixed bin(17,0) initial dcl 7-29 ref 429 ASR_BUMP_USER constant fixed bin(17,0) initial dcl 7-29 ref 427 ASR_COM_CHANNEL_INFO constant fixed bin(17,0) initial dcl 7-29 ref 435 ASR_DAEMON_COMMAND constant fixed bin(17,0) initial dcl 7-29 ref 433 ASR_DEFER_IN_ADMIN_MODE 000166 constant bit(1) initial array packed unaligned dcl 7-45 ref 398 ASR_DIAL_OUT constant fixed bin(17,0) initial dcl 7-29 ref 419 ASR_DIAL_SERVER constant fixed bin(17,0) initial dcl 7-29 ref 417 ASR_FIRST_TYPE constant fixed bin(17,0) initial dcl 7-29 ref 391 ASR_FPE_CAUSES_LOGOUT constant fixed bin(17,0) initial dcl 7-29 ref 421 ASR_FPE_CAUSES_NEW_PROC constant fixed bin(17,0) initial dcl 7-29 ref 423 ASR_LAST_TYPE constant fixed bin(17,0) initial dcl 7-29 ref 391 ASR_NOTE_PNT_CHANGE constant fixed bin(17,0) initial dcl 7-29 ref 431 ASR_PROC_TERM_NOTIFY constant fixed bin(17,0) initial dcl 7-29 ref 425 ASR_REQUEST_NAMES 000010 constant char(40) initial array packed unaligned dcl 7-48 set ref 458* 476* 531* 552* 569* 587* 605* 623* 641* AS_REQUEST_PRIO 000220 constant fixed bin(17,0) initial dcl 13-30 set ref 202* AS_REQUEST_SENDER_VERSION_2 000006 constant char(8) initial packed unaligned dcl 12-27 ref 409 DEFER constant fixed bin(17,0) initial dcl 320 ref 354 398 GENERAL_ACL_VERSION_1 000170 constant char(8) initial packed unaligned dcl 3-72 ref 230 MSEG_MESSAGE_INFO_V1 000000 constant char(8) initial dcl 17-28 ref 278 MSEG_QUEUE_ADMIN_ACCESS constant bit(36) initial dcl 16-61 ref 239 242 MSEG_QUEUE_CREATOR_INITIAL_ACCESS defined bit(36) dcl 16-48 ref 233 MSEG_QUEUE_INITIAL_ACL 000002 constant bit(36) initial array dcl 16-48 ref 233 233 236 236 MSEG_QUEUE_SYSDAEMON_INITIAL_ACCESS defined bit(36) dcl 16-48 ref 236 MSEG_QUEUE_USER_ACCESS constant bit(36) initial dcl 16-61 ref 245 MSEG_READ_AFTER_SPECIFIED constant fixed bin(17,0) initial dcl 17-30 ref 357 MSEG_READ_FIRST constant fixed bin(17,0) initial dcl 17-30 ref 327 363 NO_SYSDAEMON 000202 constant bit(1) initial packed unaligned dcl 227 set ref 248* PROCESS constant fixed bin(17,0) initial dcl 320 ref 342 402 REJECT constant fixed bin(17,0) initial dcl 320 ref 360 379 388 395 SL_LOG 000223 constant fixed bin(17,0) initial dcl 19-14 set ref 179* 214* 268* SL_LOG_SILENT 000230 constant fixed bin(17,0) initial dcl 19-14 set ref 333* 377* 386* 393* 458* 476* 492* 508* 531* 552* 569* 587* 605* 623* 641* 677* access_name 3 based char(32) array level 3 packed packed unaligned dcl 3-7 set ref 232* 235* 238* 241* 244* acl_ptr 000210 automatic pointer dcl 3-4 set ref 229* 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 248 248 action 000345 automatic fixed bin(17,0) dcl 315 set ref 341* 342 354 360 addr builtin function dcl 164 ref 229 248 248 274 330 330 330 330 454 454 472 472 525 525 546 546 563 563 583 583 599 599 617 617 635 635 ansp 000212 automatic pointer initial dcl 4-53 set ref 209* 210 281* 282 4-53* anstbl based structure level 1 dcl 4-55 any_other 000200 stack reference condition dcl 168 ref 287 as_any_other_handler_ 000026 constant entry external dcl 118 ref 287 as_data_$ansp 000120 external static pointer dcl 5-26 ref 209 281 as_data_$sysdir 000122 external static char(168) packed unaligned dcl 5-54 ref 178 178 179 179 184 184 188 188 214 214 248 248 as_data_$whoptr 000124 external static pointer dcl 5-60 ref 198 198 202 202 205 205 210 210 297 297 301 301 as_procid 10 based bit(36) level 3 dcl 4-55 ref 210 as_request_bump_user_ 000032 constant entry external dcl 121 ref 546 as_request_header based structure level 1 dcl 7-62 as_request_note_pnt_change_ 000030 constant entry external dcl 119 ref 583 as_request_sender based structure level 1 dcl 12-15 asr_abs_command_info based structure level 1 dcl 9-11 ref 633 asr_abs_command_info_ptr 000226 automatic pointer dcl 9-9 set ref 632* 633 635* asr_abs_command_server_ 000034 constant entry external dcl 122 ref 635 asr_admin_command_info based structure level 1 dcl 8-85 ref 561 asr_admin_command_info_ptr 000222 automatic pointer dcl 8-84 set ref 560* 561 563* asr_bump_user_info based structure level 1 dcl 8-60 ref 543 asr_bump_user_info_ptr 000220 automatic pointer dcl 8-59 set ref 543 545* 546* asr_buzzard_info based structure level 1 dcl 8-29 ref 523 asr_buzzard_infop 000216 automatic pointer dcl 8-28 set ref 522* 523 asr_com_channel_info based structure level 1 dcl 11-17 ref 597 asr_com_channel_info_ptr 000232 automatic pointer dcl 11-16 set ref 596* 597 599* asr_com_channel_info_srvr_ 000036 constant entry external dcl 124 ref 599 asr_daemon_command_info based structure level 1 dcl 10-6 ref 615 asr_daemon_command_info_ptr 000230 automatic pointer dcl 10-5 set ref 614* 615 617* asr_daemon_command_server_ 000040 constant entry external dcl 126 ref 617 asr_note_pnt_change_info based structure level 1 dcl 8-124 ref 583 asr_note_pnt_change_info_ptr 000224 automatic pointer dcl 8-122 set ref 582* 583 583* asr_reply based structure level 1 dcl 8-21 set ref 275* asr_replyp 000214 automatic pointer dcl 8-20 set ref 274* 275 asu_$find_process 000024 constant entry external dcl 117 ref 381 audit_flags 22 000146 automatic bit(36) level 2 dcl 98 set ref 415* authorization 16 000146 automatic bit(72) level 2 dcl 98 set ref 412* autp 000206 automatic pointer initial dcl 1-26 set ref 1-26* bv_event_call_info_ptr parameter pointer dcl 85 ref 262 264 channel_id based fixed bin(71,0) level 2 dcl 15-7 set ref 291* cleanup 000172 stack reference condition dcl 167 ref 283 clock builtin function dcl 164 ref 282 code 000100 automatic fixed bin(35,0) dcl 89 in procedure "as_request_server_$init" set ref 178* 179 179 179* 184* 185 188* 189 198* 199 202* 203 214* 218* 248* 250 290* 292* 297 457* 458* 475* 476* 530* 531* 551* 552* 568* 569* 586* 587* 604* 605* 622* 623* 640* 641* 657* 676* 677 677* code 000144 automatic fixed bin(35,0) level 2 in structure "l_asr_reply" dcl 97 in procedure "as_request_server_$init" set ref 490* 506* code parameter fixed bin(35,0) dcl 313 in procedure "PROCESS_MESSAGES" set ref 311 330* 331 333 333* 336* 347* 348 348* 350* 376* 377* 385* 386* code_mask_ev_calls 000101 automatic fixed bin(35,0) dcl 90 set ref 273* 285* 304 664 code_unmask_ev_calls 000102 automatic fixed bin(35,0) dcl 91 set ref 273* 304 304* 664 664* command_length 51 based fixed bin(21,0) level 2 in structure "asr_daemon_command_info" dcl 10-6 in procedure "as_request_server_$init" ref 615 command_length 240 based fixed bin(21,0) level 2 in structure "asr_admin_command_info" dcl 8-85 in procedure "as_request_server_$init" ref 561 count 2 based fixed bin(17,0) level 2 dcl 3-7 set ref 231* current_time 126 based fixed bin(71,0) level 2 dcl 4-55 set ref 282* data 1 000144 automatic bit(36) level 2 dcl 97 set ref 489* 505* deferred_one 000344 automatic bit(1) dcl 314 set ref 326* 336 356* delete_acl_entry based structure level 1 dcl 3-63 dial_ctl_$dial_out_rq 000044 constant entry external dcl 129 ref 472 dial_ctl_$dial_rq 000046 constant entry external dcl 130 ref 454 dial_server_request based structure level 1 dcl 14-21 ref 454 472 dimension builtin function dcl 164 ref 231 directory_acl_entry based structure level 1 dcl 3-54 dpg_$register_buzzard 000042 constant entry external dcl 128 ref 525 entries 3 based structure array level 2 in structure "general_acl" dcl 3-7 in procedure "as_request_server_$init" entries 3 000250 automatic structure array level 2 in structure "ms_acl" dcl 223 in procedure "Set_Mseg_Acls" set ref 231 error_table_$as_request_invalid_request 000022 external static fixed bin(35,0) dcl 113 ref 376 457 475 530 551 568 586 604 622 640 error_table_$as_request_sender_missing 000020 external static fixed bin(35,0) dcl 111 ref 385 error_table_$no_message 000012 external static fixed bin(35,0) dcl 106 ref 333 error_table_$noentry 000014 external static fixed bin(35,0) dcl 108 ref 179 error_table_$out_of_sequence 000016 external static fixed bin(35,0) dcl 109 set ref 173* event_call_info based structure level 1 dcl 15-7 event_call_info_ptr 000236 automatic pointer dcl 15-5 set ref 264* 291 fixed_bin_71_reply 000104 automatic fixed bin(71,0) dcl 92 set ref 656* 657* fpe_causes_logout 431(17) based bit(1) level 3 packed packed unaligned dcl 22-78 set ref 489 491* 492* 505 507* 508* fs_util_$replace_acl 000050 constant entry external dcl 131 ref 248 general_acl based structure level 1 dcl 3-7 set ref 248 248 general_acl_entry based structure level 1 unaligned dcl 3-12 general_delete_acl_entry based structure level 1 dcl 3-35 general_extended_acl_entry based structure level 1 dcl 3-23 get_group_id_ 000052 constant entry external dcl 132 ref 232 get_process_id_ 000054 constant entry external dcl 133 ref 297 297 301 301 get_user_free_area_ 000056 constant entry external dcl 134 ref 280 group_id 4 000146 automatic char(32) level 2 packed packed unaligned dcl 98 set ref 410* hcs_$wakeup 000060 constant entry external dcl 135 ref 297 301 657 header based structure level 2 dcl 4-55 ipc_$create_ev_chn 000062 constant entry external dcl 136 ref 198 ipc_$decl_ev_call_chn 000064 constant entry external dcl 137 ref 202 ipc_$drain_chn 000066 constant entry external dcl 138 ref 291 ipc_$mask_ev_calls 000070 constant entry external dcl 139 ref 285 ipc_$unmask_ev_calls 000072 constant entry external dcl 140 ref 304 664 l_as_request_sender 000146 automatic structure level 1 dcl 98 set ref 454 454 472 472 525 525 546 546 563 563 583 583 599 599 617 617 635 635 l_asr_reply 000144 automatic structure level 1 dcl 97 set ref 274 526* 547* 564* 600* 618* 636* 656 length builtin function dcl 164 ref 374 454 472 523 543 561 583 597 615 633 max_authorization 20 000146 automatic bit(72) level 2 dcl 98 set ref 414* message_code 2 000112 automatic fixed bin(17,0) level 2 dcl 96 set ref 327* 357* 363* message_count 000346 automatic fixed bin(17,0) dcl 316 set ref 347* 348 message_segment_$create 000074 constant entry external dcl 141 ref 184 message_segment_$delete 000076 constant entry external dcl 143 ref 178 message_segment_$delete_index 000100 constant entry external dcl 145 ref 676 message_segment_$get_message_count_index 000104 constant entry external dcl 149 ref 347 message_segment_$open 000106 constant entry external dcl 151 ref 188 message_segment_$read_message_index 000102 constant entry external dcl 147 ref 330 mmi 000112 automatic structure level 1 dcl 96 set ref 277* 330 330 mode 13 based bit(36) array level 3 dcl 3-7 set ref 233* 236* 239* 242* 245* ms_acl 000250 automatic structure level 1 dcl 223 set ref 229 ms_id 7 000112 automatic bit(72) level 2 dcl 96 set ref 669 676* 677* 680* ms_index 000010 internal static fixed bin(17,0) initial dcl 102 set ref 188* 217* 266 330* 347* 676* ms_len 6 000112 automatic fixed bin(24,0) level 2 dcl 96 set ref 374 454 472 523 543 561 583 597 615 633 692 692 ms_ptr 4 000112 automatic pointer level 2 dcl 96 set ref 279* 374 391 391 393 398 417 419 421 423 425 427 429 431 433 435 437 453 454* 458 458 471 472* 476 476 522 525* 531 531 545 552 552 560 569 569 582 587 587 596 605 605 614 623 623 632 641 641 654 657 690 692 693* mseg_message_info based structure level 1 dcl 17-9 msg based bit dcl 688 ref 692 null builtin function dcl 164 ref 202 202 279 1-26 4-53 22-76 383 690 693 process_id 14 000146 automatic bit(36) level 2 dcl 98 set ref 411* reply_channel 2 based fixed bin(71,0) level 2 dcl 159 set ref 654 657* reply_message 2 000146 automatic fixed bin(71,0) level 2 dcl 98 set ref 526 547 564 600 618 636 request based structure level 1 dcl 159 set ref 374 request_channel 56 based fixed bin(71,0) level 2 dcl 24-10 set ref 198* 202* 205* 297* 301* request_process_id 60 based bit(36) level 2 dcl 24-10 set ref 210* request_ptr 000234 automatic pointer dcl 14-17 set ref 453* 454 471* 472 sc_admin_command_ 000110 constant entry external dcl 152 ref 563 sc_stat_$Go_typed 000126 external static bit(1) dcl 18-62 ref 173 sc_stat_$Multics_typed 000130 external static bit(1) dcl 18-62 ref 173 sc_stat_$admin_listener_switch 000132 external static bit(1) dcl 18-62 ref 398 sc_stat_$shutdown_typed 000134 external static bit(1) dcl 18-62 ref 266 segment_acl_entry based structure level 1 dcl 3-45 sender_audit 31 000112 automatic bit(36) level 2 dcl 96 set ref 415 sender_authorization 25 000112 automatic bit(72) level 2 dcl 96 set ref 412 sender_id 13 000112 automatic char(32) level 2 packed packed unaligned dcl 96 set ref 377* 386* 393* 410 458* 476* 492* 508* 531* 552* 569* 587* 605* 623* 641* 677* sender_level 24 000112 automatic fixed bin(17,0) level 2 dcl 96 set ref 413 sender_max_authorization 27 000112 automatic bit(72) level 2 dcl 96 set ref 414 sender_process_id 23 000112 automatic bit(36) level 2 dcl 96 set ref 381* 393* 411 492* 508* 657* status_code 14 based fixed bin(35,0) array level 3 dcl 3-7 set ref 234* 237* 240* 243* 246* sub_err_ 000112 constant entry external dcl 153 ref 173 218 sys_log_ 000114 constant entry external dcl 154 ref 268 393 492 508 sys_log_$error_log 000116 constant entry external dcl 155 ref 179 214 333 377 386 458 476 531 552 569 587 605 623 641 677 sysdir defined char(168) packed unaligned dcl 6-28 set ref 178* 179* 184* 188* 214* 248* type 1 based fixed bin(17,0) level 2 in structure "request" dcl 159 in procedure "as_request_server_$init" set ref 391 391 393* 398 417 419 421 423 425 427 429 431 433 435 437 458 458* 476 476* 531 531* 552 552* 569 569* 587 587* 605 605* 623 623* 641 641* type 000106 automatic fixed bin(17,0) dcl 93 in procedure "as_request_server_$init" set ref 381* uflags 431 based structure level 2 dcl 22-78 unspec builtin function dcl 164 set ref 275* 277* 374 454 472 523 526* 526 543 547* 547 561 564* 564 583 597 600* 600 615 618* 618 633 636* 636 656* 656 user_abs_attributes based structure level 1 dcl 21-25 user_attributes based structure level 1 dcl 20-21 user_free_area based area(1024) dcl 160 set ref 330 330 692 user_free_area_ptr 000110 automatic pointer dcl 94 set ref 280* 330 330 692 ut_header based structure level 1 dcl 23-16 ute based structure level 1 dcl 22-78 utep 000240 automatic pointer initial dcl 22-76 set ref 22-76* 381* 383 489 491 492 505 507 508 validation_level 15 000146 automatic fixed bin(3,0) level 2 dcl 98 set ref 413* version 000146 automatic char(8) level 2 in structure "l_as_request_sender" dcl 98 in procedure "as_request_server_$init" set ref 409* version based char(8) level 2 in structure "general_acl" dcl 3-7 in procedure "as_request_server_$init" set ref 230* version 000112 automatic char(8) level 2 in structure "mmi" dcl 96 in procedure "as_request_server_$init" set ref 278* whoptr defined pointer dcl 6-29 ref 198 202 205 210 297 301 whotab based structure level 1 dcl 24-10 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 21-38 ABS_DEFER_PRIO internal static fixed bin(17,0) initial dcl 13-35 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 22-326 ABS_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 13-36 ACCT_UPDATE_PRIO internal static fixed bin(17,0) initial dcl 13-28 ACL_VERSION_1 internal static fixed bin(17,0) initial dcl 3-77 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 20-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 4-51 ASR_AC_CANCEL internal static fixed bin(17,0) initial dcl 9-18 ASR_AC_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 9-17 ASR_AC_LOGIN internal static fixed bin(17,0) initial dcl 9-18 ASR_AC_VERSION_1 internal static char(8) initial packed unaligned dcl 8-106 ASR_CCI_VERSION_1 internal static char(8) initial packed unaligned dcl 11-24 ASR_DC_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 10-18 ASR_DC_LOGIN internal static fixed bin(17,0) initial dcl 10-20 ASR_DC_LOGOUT internal static fixed bin(17,0) initial dcl 10-20 ASR_DC_QUIT internal static fixed bin(17,0) initial dcl 10-20 ASR_DC_REPLY internal static fixed bin(17,0) initial dcl 10-20 ASR_NPC_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 8-129 AT_NORMAL internal static char(8) initial packed unaligned dcl 4-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 4-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 4-116 AUTBL_CONTROL_NAMES internal static varying char(20) initial array dcl 1-68 AUTBL_version_4 internal static fixed bin(17,0) initial dcl 1-24 A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 CORE_FLUSH_PRIO internal static fixed bin(17,0) initial dcl 13-37 DAEMON_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 13-29 DELETE_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 3-67 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 22-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 22-332 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 DIR_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 3-67 DONT_MASK internal static bit(2) initial packed unaligned dcl 22-280 DO_MASK internal static bit(2) initial packed unaligned dcl 22-280 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 GENERAL_DELETE_ACL_VERSION_1 internal static char(8) initial packed unaligned dcl 3-72 GENERAL_EXTENDED_ACL_VERSION_1 internal static char(8) initial packed unaligned dcl 3-72 INSTALL_PRIO internal static fixed bin(17,0) initial dcl 13-31 INT_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 13-32 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 22-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 22-284 MC_PRIO internal static fixed bin(17,0) initial dcl 13-25 MPX_LOAD_PRIO internal static fixed bin(17,0) initial dcl 13-33 MSEG_A_ACCESS internal static bit(36) initial dcl 16-17 MSEG_D_ACCESS internal static bit(36) initial dcl 16-17 MSEG_FULL_ACCESS internal static bit(36) initial dcl 16-28 MSEG_MBX_CREATOR_INITIAL_ACCESS defined bit(36) dcl 16-36 MSEG_MBX_INITIAL_ACL internal static bit(36) initial array dcl 16-36 MSEG_MBX_OTHERS_INITIAL_ACCESS defined bit(36) dcl 16-36 MSEG_MBX_SYSDAEMON_INITIAL_ACCESS defined bit(36) dcl 16-36 MSEG_NULL_ACCESS internal static bit(36) initial dcl 16-28 MSEG_O_ACCESS internal static bit(36) initial dcl 16-17 MSEG_QUEUE_OTHERS_INITIAL_ACCESS defined bit(36) dcl 16-48 MSEG_READ_BEFORE_SPECIFIED internal static fixed bin(17,0) initial dcl 17-30 MSEG_READ_DELETE internal static bit(36) initial dcl 17-38 MSEG_READ_LAST internal static fixed bin(17,0) initial dcl 17-30 MSEG_READ_OWN internal static bit(36) initial dcl 17-38 MSEG_READ_SPECIFIED internal static fixed bin(17,0) initial dcl 17-30 MSEG_R_ACCESS internal static bit(36) initial dcl 16-17 MSEG_S_ACCESS internal static bit(36) initial dcl 16-17 MSEG_U_ACCESS internal static bit(36) initial dcl 16-17 MSEG_W_ACCESS internal static bit(36) initial dcl 16-17 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 22-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 22-261 PT_DAEMON internal static fixed bin(17,0) initial dcl 22-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 22-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 22-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SEG_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 3-67 SHUTDOWN_PRIO internal static fixed bin(17,0) initial dcl 13-27 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 19-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 19-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 19-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 19-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 19-62 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 19-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 19-14 SL_TYPE internal static fixed bin(17,0) initial dcl 19-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 19-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 19-14 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SYSERR_COPY_PRIO internal static fixed bin(17,0) initial dcl 13-26 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 22-271 UFLAG_NAMES internal static varying char(24) initial array dcl 22-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 20-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 20-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 20-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 20-50 UTE_SIZE internal static fixed bin(17,0) initial dcl 4-120 UTE_version_4 internal static fixed bin(17,0) initial dcl 22-74 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 24-96 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 acl_count automatic fixed bin(17,0) dcl 3-5 as_data_$BS external static char(1) dcl 5-21 as_data_$CR external static char(1) dcl 5-22 as_data_$abs_dim external static char(32) packed unaligned dcl 5-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 5-24 as_data_$acsdir external static char(168) packed unaligned dcl 5-25 as_data_$as_procid external static bit(36) dcl 5-27 as_data_$as_ring external static fixed bin(3,0) dcl 5-28 as_data_$as_tty automatic char(6) packed unaligned dcl 5-29 as_data_$asmtp external static pointer dcl 5-30 as_data_$autp external static pointer dcl 5-31 as_data_$buzzardp external static pointer dcl 5-32 as_data_$cdtp external static pointer dcl 5-33 as_data_$debug_flag external static bit(1) dcl 5-84 as_data_$default_weight external static fixed bin(35,0) dcl 5-34 as_data_$devtabp external static pointer dcl 5-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 5-36 as_data_$dutp external static pointer dcl 5-37 as_data_$g115_dim external static char(32) packed unaligned dcl 5-38 as_data_$lct_initialized external static bit(1) dcl 5-39 as_data_$lct_size external static fixed bin(17,0) dcl 5-40 as_data_$login_args external static structure level 1 dcl 5-62 as_data_$login_words external static fixed bin(17,0) dcl 5-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 5-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 5-87 as_data_$ls_message_buffer_ptr external static pointer dcl 5-88 as_data_$ls_request_server_info_ptr external static pointer dcl 5-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 5-41 as_data_$mgtp external static pointer dcl 5-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 5-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 5-44 as_data_$pdtdir external static char(168) packed unaligned dcl 5-45 as_data_$pit_ptr external static pointer dcl 5-46 as_data_$rcpdir external static char(168) packed unaligned dcl 5-47 as_data_$request_priority external static fixed bin(17,0) dcl 5-48 as_data_$rs_ptrs external static pointer array dcl 5-49 as_data_$rtdtp external static pointer dcl 5-50 as_data_$sat_htp external static pointer dcl 5-51 as_data_$satp external static pointer dcl 5-52 as_data_$signal_types external static structure level 1 dcl 5-67 as_data_$suffix external static char(2) array packed unaligned dcl 5-53 as_data_$system_signal_types external static structure level 1 dcl 5-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 5-55 as_data_$terminet_tabs_string external static varying char(144) dcl 5-56 as_data_$tty_dim external static char(32) packed unaligned dcl 5-57 as_data_$update_priority external static fixed bin(17,0) dcl 5-58 as_data_$version external static char(8) packed unaligned dcl 5-59 as_data_login_words based structure level 1 dcl 5-77 as_procid defined bit(36) dcl 6-17 as_request_sender_ptr automatic pointer dcl 12-13 as_request_version_1 internal static fixed bin(17,0) initial dcl 7-27 as_tty based char(6) packed unaligned dcl 6-18 asmtp defined pointer dcl 6-19 asr_ac_length automatic fixed bin(21,0) dcl 8-105 asr_bump_user_info_version_1 internal static char(8) initial packed unaligned dcl 8-57 asr_buzzard_info_version_1 internal static char(8) initial packed unaligned dcl 8-27 asr_buzzard_notification based structure level 1 dcl 8-35 asr_dc_length automatic fixed bin(21,0) dcl 10-17 asr_reply_abs_command based structure level 1 dcl 9-23 asr_reply_ac_ptr automatic pointer dcl 9-21 asr_reply_admin_command based structure level 1 dcl 8-108 asr_reply_bump_user based structure level 1 dcl 8-79 asr_reply_cci_ptr automatic pointer dcl 11-26 asr_reply_com_channel_info based structure level 1 dcl 11-27 asr_reply_daemon_command based structure level 1 dcl 10-26 asr_reply_dc_ptr automatic pointer dcl 10-25 autbl based structure level 1 dcl 1-28 delete_acl based structure level 1 dcl 3-58 delete_acl_array based structure array level 1 dcl 3-64 devtabp defined pointer dcl 6-20 dial_server_request_version_4 internal static fixed bin(17,0) initial dcl 14-19 directory_acl based structure level 1 dcl 3-49 directory_acl_array based structure array level 1 dcl 3-55 general_delete_acl based structure level 1 dcl 3-30 general_extended_acl based structure level 1 dcl 3-18 ip defined pointer dcl 6-21 mgtp defined pointer dcl 6-22 mseg_message_info_ptr automatic pointer dcl 17-7 pdtdir based char(168) packed unaligned dcl 6-23 rs_ptrs based pointer array dcl 6-24 sat_htp defined pointer dcl 6-25 satp defined pointer dcl 6-26 sc_stat_$Go external static bit(1) dcl 18-62 sc_stat_$Multics external static bit(1) dcl 18-62 sc_stat_$Star_typed external static bit(1) dcl 18-62 sc_stat_$admin_listener_exit_label external static label variable dcl 18-34 sc_stat_$admin_log_iocb external static pointer dcl 18-45 sc_stat_$admin_log_write_ptr external static pointer dcl 18-45 sc_stat_$admin_sci_ptr external static pointer dcl 18-45 sc_stat_$as_log_write_ptr external static pointer dcl 18-45 sc_stat_$did_part1 external static bit(1) dcl 18-62 sc_stat_$did_part2 external static bit(1) dcl 18-62 sc_stat_$did_part3 external static bit(1) dcl 18-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 18-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 18-21 sc_stat_$initzer_ttyp external static pointer dcl 18-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 18-21 sc_stat_$master_abort_label external static label variable dcl 18-34 sc_stat_$master_channel external static char(6) dcl 18-29 sc_stat_$master_iocb external static pointer dcl 18-45 sc_stat_$master_sci_ptr external static pointer dcl 18-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 18-21 sc_stat_$mc_ansp external static pointer dcl 18-45 sc_stat_$mc_iocb external static pointer dcl 18-45 sc_stat_$mc_is_on external static bit(1) dcl 18-62 sc_stat_$no_operator_login external static bit(1) dcl 18-62 sc_stat_$sv1_iocb external static pointer dcl 18-45 sc_stat_$sv2_iocb external static pointer dcl 18-45 sc_stat_$sv3_iocb external static pointer dcl 18-45 sc_stat_$sysdir external static char(168) packed unaligned dcl 18-21 sc_stat_$system_shutdown_label external static label variable dcl 18-34 sc_stat_$test_mode external static bit(1) dcl 18-62 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 18-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 18-62 scdtp defined pointer dcl 6-27 segment_acl based structure level 1 dcl 3-40 segment_acl_array based structure array level 1 dcl 3-46 sl_info automatic structure level 1 dcl 19-24 sl_info_code_msg internal static structure level 1 dcl 19-187 sl_info_msg internal static structure level 1 dcl 19-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 19-161 sl_info_sev_code_msg internal static structure level 1 dcl 19-82 sl_info_sev_coded_msg internal static structure level 1 dcl 19-134 sl_info_sev_msg internal static structure level 1 dcl 19-108 NAMES DECLARED BY EXPLICIT CONTEXT. ABS_COMMAND_REQUEST 003472 constant entry internal dcl 629 ref 437 ADMIN_COMMAND_REQUEST 003047 constant entry internal dcl 558 ref 429 BUMP_USER_REQUEST 002743 constant entry internal dcl 541 ref 427 CLEANUP 003623 constant entry internal dcl 661 ref 283 287 287 COM_CHANNEL_INFO_REQUEST 003257 constant entry internal dcl 593 ref 435 DAEMON_COMMAND_REQUEST 003363 constant entry internal dcl 611 ref 433 DELETE_THE_MESSAGE 003664 constant entry internal dcl 674 ref 345 362 669 DIAL_OUT_REQUEST 002400 constant entry internal dcl 469 ref 419 DIAL_SERVER_REQUEST 002300 constant entry internal dcl 451 ref 417 ERROR_RETURN 001370 constant label dcl 301 ref 287 287 287 287 EXAMINE_MESSAGE 001746 constant entry internal dcl 371 ref 341 FPE_CAUSES_LOGOUT_REQUEST 002500 constant entry internal dcl 487 ref 421 FPE_CAUSES_NEW_PROC_REQUEST 002560 constant entry internal dcl 503 ref 423 FREE_THE_MESSAGE 003763 constant entry internal dcl 685 ref 346 366 667 NOTE_PNT_CHANGE_REQUEST 003156 constant entry internal dcl 574 ref 431 PROCESS_MESSAGES 001555 constant entry internal dcl 311 ref 292 PROCESS_THE_MESSAGE 002200 constant entry internal dcl 406 ref 344 PROC_TERM_NOTIFY_REQUEST 002640 constant entry internal dcl 520 ref 425 RETURN 001423 constant label dcl 304 ref 299 SEND_ASR_REPLY 003576 constant entry internal dcl 652 ref 494 510 527 548 565 601 619 637 Set_Mseg_Acls 001437 constant entry internal dcl 220 ref 194 as_request_server_$init 000502 constant entry external dcl 80 as_request_server_$wakeup 001103 constant entry external dcl 262 ref 202 202 fail 001011 constant label dcl 214 ref 185 189 207 250 ipc_fail 000771 constant label dcl 205 ref 199 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4652 5010 4023 4662 Length 6046 4023 136 1021 626 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_request_server_$init 1050 external procedure is an external procedure. Set_Mseg_Acls internal procedure shares stack frame of external procedure as_request_server_$init. on unit on line 283 64 on unit on unit on line 287 100 on unit PROCESS_MESSAGES internal procedure shares stack frame of external procedure as_request_server_$init. EXAMINE_MESSAGE internal procedure shares stack frame of external procedure as_request_server_$init. PROCESS_THE_MESSAGE internal procedure shares stack frame of external procedure as_request_server_$init. DIAL_SERVER_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. DIAL_OUT_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. FPE_CAUSES_LOGOUT_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. FPE_CAUSES_NEW_PROC_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. PROC_TERM_NOTIFY_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. BUMP_USER_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. ADMIN_COMMAND_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. NOTE_PNT_CHANGE_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. COM_CHANNEL_INFO_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. DAEMON_COMMAND_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. ABS_COMMAND_REQUEST internal procedure shares stack frame of external procedure as_request_server_$init. SEND_ASR_REPLY internal procedure shares stack frame of external procedure as_request_server_$init. CLEANUP 68 internal procedure is assigned to an entry variable. DELETE_THE_MESSAGE 108 internal procedure is called by several nonquick procedures. FREE_THE_MESSAGE 64 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 ms_index as_request_server_$init STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_request_server_$init 000100 code as_request_server_$init 000101 code_mask_ev_calls as_request_server_$init 000102 code_unmask_ev_calls as_request_server_$init 000104 fixed_bin_71_reply as_request_server_$init 000106 type as_request_server_$init 000110 user_free_area_ptr as_request_server_$init 000112 mmi as_request_server_$init 000144 l_asr_reply as_request_server_$init 000146 l_as_request_sender as_request_server_$init 000206 autp as_request_server_$init 000210 acl_ptr as_request_server_$init 000212 ansp as_request_server_$init 000214 asr_replyp as_request_server_$init 000216 asr_buzzard_infop as_request_server_$init 000220 asr_bump_user_info_ptr as_request_server_$init 000222 asr_admin_command_info_ptr as_request_server_$init 000224 asr_note_pnt_change_info_ptr as_request_server_$init 000226 asr_abs_command_info_ptr as_request_server_$init 000230 asr_daemon_command_info_ptr as_request_server_$init 000232 asr_com_channel_info_ptr as_request_server_$init 000234 request_ptr as_request_server_$init 000236 event_call_info_ptr as_request_server_$init 000240 utep as_request_server_$init 000250 ms_acl Set_Mseg_Acls 000344 deferred_one PROCESS_MESSAGES 000345 action PROCESS_MESSAGES 000346 message_count PROCESS_MESSAGES THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac move_label_var make_label_var enable_op ext_entry int_entry op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_any_other_handler_ as_request_bump_user_ as_request_note_pnt_change_ asr_abs_command_server_ asr_com_channel_info_srvr_ asr_daemon_command_server_ asu_$find_process dial_ctl_$dial_out_rq dial_ctl_$dial_rq dpg_$register_buzzard fs_util_$replace_acl get_group_id_ get_process_id_ get_user_free_area_ hcs_$wakeup ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$drain_chn ipc_$mask_ev_calls ipc_$unmask_ev_calls message_segment_$create message_segment_$delete message_segment_$delete_index message_segment_$get_message_count_index message_segment_$open message_segment_$read_message_index sc_admin_command_ sub_err_ sys_log_ sys_log_$error_log THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$sysdir as_data_$whoptr error_table_$as_request_invalid_request error_table_$as_request_sender_missing error_table_$no_message error_table_$noentry error_table_$out_of_sequence sc_stat_$Go_typed sc_stat_$Multics_typed sc_stat_$admin_listener_switch sc_stat_$shutdown_typed LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 26 000473 4 53 000475 22 76 000476 80 000501 173 000510 178 000542 179 000571 184 000634 185 000663 188 000665 189 000720 194 000722 198 000723 199 000736 202 000740 203 000767 205 000771 207 000776 209 000777 210 001003 212 001010 214 001011 217 001050 218 001052 262 001077 264 001111 266 001115 268 001122 270 001141 273 001142 274 001145 275 001147 277 001152 278 001155 279 001157 280 001161 281 001167 282 001173 283 001176 285 001220 287 001227 290 001314 291 001315 292 001327 297 001331 299 001367 301 001370 304 001423 308 001436 220 001437 229 001440 230 001442 231 001445 232 001447 233 001456 234 001461 235 001462 236 001465 237 001467 238 001470 239 001473 240 001475 241 001476 242 001501 243 001502 244 001503 245 001506 246 001510 248 001511 250 001552 251 001554 311 001555 326 001557 327 001560 330 001562 331 001604 333 001607 336 001647 338 001654 341 001655 342 001657 344 001662 345 001663 346 001667 347 001673 348 001707 350 001717 351 001720 354 001721 356 001723 357 001725 359 001727 360 001730 362 001732 363 001736 366 001740 367 001744 441 001745 371 001746 374 001750 376 001753 377 001757 379 002020 381 002024 383 002037 385 002043 386 002047 388 002110 391 002114 393 002122 395 002155 398 002161 402 002174 406 002200 409 002201 410 002203 411 002206 412 002210 413 002213 414 002215 415 002220 417 002222 419 002230 421 002234 423 002240 425 002244 427 002250 429 002254 431 002260 433 002264 435 002270 437 002274 439 002277 451 002300 453 002301 454 002303 457 002322 458 002325 461 002377 469 002400 471 002401 472 002403 475 002422 476 002425 479 002477 487 002500 489 002501 490 002506 491 002507 492 002511 494 002556 495 002557 503 002560 505 002561 506 002566 507 002567 508 002571 510 002636 511 002637 520 002640 522 002641 523 002643 525 002646 526 002661 527 002663 528 002664 530 002665 531 002670 534 002742 541 002743 543 002744 545 002747 546 002751 547 002764 548 002766 549 002767 551 002770 552 002773 555 003046 558 003047 560 003050 561 003052 563 003060 564 003073 565 003075 566 003076 568 003077 569 003102 572 003155 574 003156 582 003157 583 003161 586 003200 587 003203 590 003256 593 003257 596 003260 597 003262 599 003265 600 003300 601 003302 602 003303 604 003304 605 003307 608 003362 611 003363 614 003364 615 003366 617 003374 618 003407 619 003411 620 003412 622 003413 623 003416 626 003471 629 003472 632 003473 633 003475 635 003500 636 003513 637 003515 638 003516 640 003517 641 003522 644 003575 652 003576 654 003577 656 003602 657 003604 659 003621 661 003622 664 003630 667 003643 669 003650 672 003662 674 003663 676 003671 677 003704 680 003756 681 003761 685 003762 690 003770 692 003775 693 004002 695 004005 ----------------------------------------------------------- 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