COMPILATION LISTING OF SEGMENT as_access_audit_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1016.6 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(85-07-23,Swenson), approve(86-08-13,MCR7512), 11* audit(86-08-13,EJSharpe), install(86-09-08,MR12.0-1150): 12* Modified to correctly set the grant/deny flag in binary data of audit 13* messages. 14* 2) change(86-09-11,Lippard), approve(85-12-30,MCR7326), 15* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 16* Added entry points abs_command_login and abs_command_cancel. 17* 3) change(87-03-11,GDixon), approve(87-07-13,MCR7737), 18* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 19* A) Added login and logout entrypoints for Login Server use. 20* B) Correct coding standard violations. 21* C) Updated for change to user_table_entry.incl.pl1. 22* 4) change(87-05-20,GDixon), approve(87-07-13,MCR7737), 23* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 24* A) Change as_access_audit_$process to accept a negative action code to 25* audit a DENIED operation. 0-action identifies the operation that 26* failed. 27* 5) change(87-06-08,GDixon), approve(87-07-13,MCR7741), 28* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 29* A) Make $process correctly audit failed LOGIN attempts as being DENIED. 30* B) Restructure all messages to have the same format and content. 31* C) Change calling sequence of $channel entrypoint to accommodate 32* DIALIN, DIALOUT and DIAL SYSTEM, and MNA connections. 33* 6) change(87-06-29,GDixon), approve(87-07-13,MCR7741), 34* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 35* A) Omit tag from LOGOUT audit message if it hasn't been filled in yet. 36* B) Add tag to process CREATE/CONNECT/etc messages. 37* 7) change(87-07-15,GDixon), approve(87-07-15,MCR7741), 38* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 39* A) Add AS_AUDIT_PROCESS_TERMINATE action to $process entrypoint. 40* 8) change(87-07-24,Dickson), approve(87-07-24,MCR7722), 41* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 42* Added three entry points for auditing access checks: dpg_buzzard, 43* as_rqt_nt_pnt_chg, and asr_com_chnl_info_srvr. 44* 9) change(88-03-18,Parisek), approve(88-03-18,MCR7849), 45* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 46* Changed reference of ute.initial_ring to ute.lowest_ring when copying it 47* to the ASIAAR.record.min_ring value. 48* END HISTORY COMMENTS */ 49 50 /* format: style4,delnl,insnl,^ifthendo,ll79 */ 51 52 as_access_audit_: 53 procedure (); 54 55 /**** This program is the auditing module for the Answering Service. 56* All programs which audit security-relevant actions should call 57* this program to audit. An exception to this is lg_ctl_, which 58* due to the way it accumulates the audit information, is difficult 59* to interface to as_access_audit_. */ 60 61 /**** NOTE 62* Since all of the messages logged by this module are described in 63* AK50, the error message documentation requirement is waived. */ 64 65 66 /* Modification History: 67* 85-01-18 E. Swenson: Written. 68* 85-02-07 E. Swenson: Fixed bug which resulted in garbage in channel 69* names. 70**/ 71 72 /* Parameters */ 73 74 dcl P_action fixed bin (17) parameter; 75 dcl P_added_info char (*) parameter; 76 dcl P_asrccip pointer parameter; 77 dcl P_asrsp pointer parameter; 78 dcl P_cdtep pointer parameter; 79 dcl P_channel_audit_info_ptr pointer parameter; 80 dcl P_code fixed bin (35) parameter; 81 dcl P_dial_server_info_ptr ptr parameter; 82 dcl P_dial_utep ptr parameter; /* MNA ute for dialed terminal */ 83 dcl P_failed bit (1) aligned parameter; 84 dcl P_name char (*) parameter; 85 dcl P_request_id fixed bin (71) parameter; 86 dcl P_target_process_utep ptr parameter; /* pointer to ute we are trying to conect to */ 87 dcl P_utep pointer parameter; 88 89 /* Automatic */ 90 91 dcl 1 ACAR aligned like as_channel_audit_record; 92 dcl 1 ADAR aligned like as_dial_service_audit_record; 93 dcl 1 ARH aligned like audit_record_header automatic; 94 dcl 1 ARHP aligned like audit_record_header_proxy automatic; 95 dcl 1 ASIAAR aligned like as_ia_audit_record_abs_proxy; 96 dcl action fixed bin (17); /* copy of P_action */ 97 dcl added_info char (128); /* additional info for log message */ 98 dcl audit_record_size fixed bin automatic; 99 dcl dial_utep ptr; 100 dcl 1 event_flags aligned like audit_event_flags automatic; 101 dcl grant_sw bit (1) aligned; /* whether the operation was a success or a failure */ 102 dcl mins fixed bin (35) automatic; 103 dcl operation bit (36) aligned automatic; 104 dcl secs fixed bin (35) automatic; 105 dcl proc_type char (4) automatic; 106 dcl request_id fixed bin (71) automatic; 107 dcl severity fixed bin automatic; 108 dcl target_utep ptr; 109 110 111 /* Based */ 112 113 dcl 1 dial_ute aligned like ute based (dial_utep); /* ute for dialed */ 114 /* MNA terminal */ 115 dcl 1 target_ute aligned like ute based (target_utep); /* pointer to process's ute we are trying to connect to. */ 116 117 118 /* External Entries */ 119 120 dcl sys_log_ entry options (variable); 121 dcl sys_log_$binary entry options (variable); 122 dcl sys_log_$error_log entry entry options (variable); 123 124 125 /* External Static */ 126 127 dcl ( 128 access_operations_$abs_command_cancel, 129 access_operations_$abs_command_login, 130 access_operations_$channel_attach, 131 access_operations_$channel_detach, 132 access_operations_$dial_system, 133 access_operations_$dialid_start, 134 access_operations_$dialid_stop, 135 access_operations_$dialin, 136 access_operations_$dialout, 137 access_operations_$process_connect, 138 access_operations_$process_create, 139 access_operations_$process_destroy, 140 access_operations_$process_disconnect, 141 access_operations_$process_terminate, 142 access_operations_$user_login, 143 access_operations_$user_logout 144 ) bit (36) aligned external; 145 dcl error_table_$action_not_performed fixed bin (35) external static; 146 147 148 /* Constant */ 149 150 dcl AS_AUDIT_DATA_CLASS char (16) varying initial ("access_audit") 151 internal static options (constant); 152 dcl ( 153 DENIED initial ("0"b), 154 GRANTED initial ("1"b) 155 ) bit (1) aligned internal static options (constant); 156 dcl ME char (32) initial ("as_access_audit_") internal static 157 options (constant); 158 dcl MILLION fixed bin (35) initial (1000000) internal static 159 options (constant); 160 dcl PROCESS_TYPES (-1:3) char (3) 161 initial ("int", "???", "int", "abs", "dmn") internal static 162 options (constant); 163 dcl QNAME (0:4) char (4) internal static options (constant) 164 initial ("Q FG", "Q 1", "Q 2", "Q 3", "Q 4"); 165 166 167 /* Builtin */ 168 dcl (addr, after, before, divide, length, mod, null, reverse, rtrim, string, 169 size, substr, unspec) builtin; 170 171 /* Program */ 172 173 process: 174 entry (P_utep, P_action, P_added_info); 175 176 utep = P_utep; /* get into automatic storage for efficiency */ 177 action = P_action; /* ditto */ 178 179 if action < 0 180 then do; /* allow auditing */ 181 grant_sw = DENIED; /* of denials by */ 182 action = -action; /* negative */ 183 end; /* action */ 184 else grant_sw = GRANTED; 185 186 if (action ^= AS_AUDIT_PROCESS_CREATE 187 & action ^= AS_AUDIT_PROCESS_DESTROY 188 & action ^= AS_AUDIT_PROCESS_CONNECT 189 & action ^= AS_AUDIT_PROCESS_DISCONNECT 190 & action ^= AS_AUDIT_PROCESS_TERMINATE) 191 then do; 192 call sys_log_$error_log (SL_LOG_SILENT, 193 error_table_$action_not_performed, ME, 194 "Invalid action code ^d for as_access_audit_$process entrypoint.", 195 action); 196 return; 197 end; 198 199 call FILL_IN_ARH (addr (ARH), grant_sw); 200 201 if action = AS_AUDIT_PROCESS_CREATE 202 then ARH.header.operation_code = access_operations_$process_create; 203 else if action = AS_AUDIT_PROCESS_DESTROY 204 then ARH.header.operation_code = access_operations_$process_destroy; 205 else if action = AS_AUDIT_PROCESS_CONNECT 206 then ARH.header.operation_code = access_operations_$process_connect; 207 else if action = AS_AUDIT_PROCESS_DISCONNECT 208 then ARH.header.operation_code = 209 access_operations_$process_disconnect; 210 else if action = AS_AUDIT_PROCESS_TERMINATE 211 then ARH.header.operation_code = 212 access_operations_$process_terminate; 213 if action = AS_AUDIT_PROCESS_CREATE 214 then do; 215 if ute.logout_type = "new_" 216 | substr (ute.logout_type, 1, 2) = "np" 217 then added_info = "new_proc"; 218 else added_info = "login"; 219 end; 220 else if action = AS_AUDIT_PROCESS_DESTROY 221 then do; 222 added_info = ute.logout_type; 223 if substr (added_info, 1, 2) = "np" | added_info = "new_" 224 then added_info = "new_proc"; 225 else if added_info = "alar" 226 then added_info = "bump"; 227 else if added_info = "dest" 228 then added_info = "destroy"; 229 end; 230 else added_info = P_added_info; 231 232 call sys_log_$binary (SL_LOG_SILENT, addr (ARH), size (ARH), 233 AS_AUDIT_DATA_CLASS, 234 "^a^[ DENIED^]^20t^[*^]^a.^a.^a ^a ^12.3b ^[(^a)^;^s^]", 235 AS_AUDIT_PROCESS_ACTIONS (action), ^grant_sw, 236 (ute.anonymous = 1), ute.person, ute.project, ute.tag, 237 ute.tty_name, ute.proc_id, (added_info ^= ""), added_info); 238 return; 239 240 process_connect_denied: 241 entry (P_utep, P_target_process_utep, P_added_info); 242 243 utep = P_utep; 244 target_utep = P_target_process_utep; 245 added_info = P_added_info; 246 247 call FILL_IN_ARH (addr (ARH), DENIED); 248 ARH.header.operation_code = access_operations_$process_connect; 249 250 call sys_log_$binary (SL_LOG_SILENT, addr (ARH), size (ARH), 251 AS_AUDIT_DATA_CLASS, 252 "CONNECT DENIED^20t^[*^]^a.^a ^a to ^[*^]^a.^a.^a ^12.3b (^a)", 253 (ute.anonymous = 1), ute.person, ute.project, ute.tty_name, 254 (target_ute.anonymous = 1), target_utep -> ute.person, 255 target_ute.project, target_ute.tag, target_ute.proc_id, 256 added_info); 257 return; 258 259 channel: 260 entry (P_cdtep, P_dial_utep, P_utep, P_action, P_channel_audit_info_ptr, 261 P_added_info); 262 263 cdtep = P_cdtep; 264 dial_utep = P_dial_utep; 265 utep = P_utep; 266 action = P_action; /* action/success fail indicator */ 267 channel_audit_info_ptr = P_channel_audit_info_ptr; 268 added_info = P_added_info; 269 270 if action < 0 271 then do; 272 grant_sw = DENIED; /* negative actions are failures */ 273 action = -action; 274 end; 275 else grant_sw = GRANTED; /* positive actions are successes */ 276 277 if action ^= AS_AUDIT_CHANNEL_ATTACH 278 & action ^= AS_AUDIT_CHANNEL_DETACH 279 & action ^= AS_AUDIT_CHANNEL_DIALIN 280 & action ^= AS_AUDIT_CHANNEL_DIALOUT 281 & action ^= AS_AUDIT_CHANNEL_DIAL_SYSTEM 282 then do; 283 call sys_log_$error_log (SL_LOG, 284 error_table_$action_not_performed, ME, 285 "Invalid action code ^d for as_access_audit_$channel entrypoint.", 286 action); 287 return; 288 end; 289 290 call FILL_IN_ARH (addr (ACAR.header), grant_sw); 291 292 if action = AS_AUDIT_CHANNEL_ATTACH 293 then ACAR.header.operation_code = access_operations_$channel_attach; 294 else if action = AS_AUDIT_CHANNEL_DETACH 295 then ACAR.header.operation_code = access_operations_$channel_detach; 296 else if action ^= AS_AUDIT_CHANNEL_DIALIN 297 then ACAR.header.operation_code = access_operations_$dialin; 298 else if action ^= AS_AUDIT_CHANNEL_DIALOUT 299 then ACAR.header.operation_code = access_operations_$dialout; 300 else if action ^= AS_AUDIT_CHANNEL_DIAL_SYSTEM 301 then ACAR.header.operation_code = access_operations_$dial_system; 302 303 if channel_audit_info.valid.user_validation_level 304 then ACAR.header.subject.ring = 305 channel_audit_info.user_validation_level; 306 else ACAR.header.subject.ring = 0; 307 ACAR.record.type = AAB_channel; 308 ACAR.record.version = AS_AUDIT_RECORD_CHN_VERSION_1; 309 310 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 311 /* */ 312 /* This entrypoint may be called by MCS user control (dial_ctl_) or by MNA */ 313 /* ls user control (uc_dial_). */ 314 /* */ 315 /* MCS passes a cdte pointer if there is a channel associated with the */ 316 /* attach, detach, dial, dial system or dial_out request. For dial */ 317 /* requests, if dial -user was given, then the authenticated user's */ 318 /* person.project is stored in the cdte along with the channel attributes. */ 319 /* */ 320 /* MNA passes a dial_ute pointer if there is an authenticated user */ 321 /* associated with the dial, dial system or login -operator request. */ 322 /* */ 323 /* In all cases the ute pointer identifies the process doing the attach, */ 324 /* detach or dial_out; or the target process of a dial, dial system or login */ 325 /* -operator request. */ 326 /* */ 327 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 328 329 if cdtep = null () & dial_utep = null () /* No auth user */ 330 then do; 331 ACAR.record.flags.channel_info_valid = "0"b; 332 ACAR.record.flags.current_access_class_valid = 333 channel_audit_info.valid.access_class; 334 ACAR.record.pad1 = ""b; 335 ACAR.record.channel_name = channel_audit_info.channel_name; 336 if channel_audit_info.valid.access_class 337 then ACAR.record.current_access_class = 338 channel_audit_info.access_class; 339 else ACAR.record.current_access_class = ""b; 340 if channel_audit_info.valid.access_class_range 341 then ACAR.record.access_class_range = 342 channel_audit_info.access_class_range; 343 else ACAR.record.access_class_range = 344 ACAR.record.current_access_class; 345 ACAR.record.current_service_type = 0; 346 ACAR.record.service_type = 0; 347 ACAR.record.terminal_type = ""; 348 ACAR.record.authenticated_user.personid = ""; 349 ACAR.record.authenticated_user.projectid = ""; 350 ACAR.record.authenticated_user.pad2 = ""b; 351 end; 352 353 else if cdtep ^= null () 354 then do; /* attach, detach */ 355 ACAR.record.flags.channel_info_valid = "1"b; /* dial chn known */ 356 ACAR.record.flags.current_access_class_valid = 357 cdte.dialup_flags.current_access_class_valid; 358 ACAR.record.pad1 = ""b; 359 ACAR.record.channel_name = cdte.name; 360 ACAR.record.current_access_class = cdte.current_access_class; 361 ACAR.record.access_class_range = cdte.access_class; 362 ACAR.record.current_service_type = cdte.current_service_type; 363 ACAR.record.service_type = cdte.service_type; 364 ACAR.record.terminal_type = cdte.current_terminal_type; 365 ACAR.record.authenticated_user.personid = cdte.user_name.person; 366 ACAR.record.authenticated_user.projectid = 367 cdte.user_name.project; 368 ACAR.record.authenticated_user.pad2 = ""b; 369 end; 370 else if dial_utep ^= null () 371 then do; /* dial, */ 372 /* login -op */ 373 ACAR.record.flags.channel_info_valid = "1"b; /* auth user info */ 374 ACAR.record.flags.current_access_class_valid = "1"b; 375 ACAR.record.pad1 = ""b; 376 ACAR.record.channel_name = dial_ute.tty_name; 377 if channel_audit_info.valid.access_class 378 then ACAR.record.current_access_class = 379 channel_audit_info.access_class; 380 else ACAR.record.current_access_class = ""b; 381 if channel_audit_info.valid.access_class_range 382 then ACAR.record.access_class_range = 383 channel_audit_info.access_class_range; 384 else ACAR.record.access_class_range = 385 ACAR.record.current_access_class; 386 ACAR.record.current_service_type = 0; 387 ACAR.record.service_type = 0; 388 ACAR.record.terminal_type = dial_ute.terminal_type; 389 ACAR.record.authenticated_user.personid = rtrim(dial_ute.person); 390 ACAR.record.authenticated_user.projectid = rtrim(dial_ute.project); 391 ACAR.record.authenticated_user.pad2 = ""b; 392 end; 393 394 call sys_log_$binary (SL_LOG_SILENT, addr (ACAR), size (ACAR), 395 AS_AUDIT_DATA_CLASS, 396 "^a^[ DENIED^]^20t^[^a.^a ^;^s^s^]channel ^a ^a ^[*^]^a.^a.^a ^12.3b^[ ^a=^a^;^s^s^]^[ (^a)^]", 397 AS_AUDIT_CHANNEL_ACTIONS (action), ^grant_sw, 398 ACAR.record.authenticated_user.personid ^= "", 399 ACAR.record.authenticated_user.personid, 400 ACAR.record.authenticated_user.projectid, 401 ACAR.record.channel_name, AS_AUDIT_CHANNEL_DIRECTION (action), 402 (ute.anonymous = 1), ute.person, ute.project, ute.tag, 403 ute.proc_id, channel_audit_info.valid.service_info, 404 AS_AUDIT_CHANNEL_SERVICE_INFO (action), 405 channel_audit_info.service_info, (added_info ^= ""), added_info) 406 ; 407 return; 408 409 dialid: 410 entry (P_utep, P_action, P_dial_server_info_ptr, P_added_info); 411 412 utep = P_utep; 413 action = P_action; /* action/success fail indicator */ 414 added_info = P_added_info; 415 dial_server_info_ptr = P_dial_server_info_ptr; 416 if action < 0 417 then do; 418 grant_sw = DENIED; /* negative actions are failures */ 419 action = -action; 420 end; 421 else grant_sw = GRANTED; /* positive actions are successes */ 422 423 if action ^= AS_AUDIT_DIALID_START & action ^= AS_AUDIT_DIALID_STOP 424 then do; 425 call sys_log_$error_log (SL_LOG_SILENT, 426 error_table_$action_not_performed, ME, 427 "Invalid action code ^d for as_access_audit_$dialid entrypoint.", 428 action); 429 return; 430 end; 431 432 call FILL_IN_ARH (addr (ADAR.header), grant_sw); 433 434 if action = AS_AUDIT_DIALID_START 435 then ADAR.header.operation_code = access_operations_$dialid_start; 436 else ADAR.header.operation_code = access_operations_$dialid_stop; 437 438 ADAR.header.subject.ring = dial_server_info.server_ring; 439 440 ADAR.record.type = AAB_dial_service; 441 ADAR.record.version = AS_AUDIT_RECORD_DIALID_VERSION_1; 442 ADAR.record.dial_server_ring = dial_server_info.server_ring; 443 ADAR.record.flags.registered_server = dial_server_info.registered; 444 ADAR.record.flags.privileged_server = dial_server_info.privileged; 445 ADAR.record.dial_qualifier = dial_server_info.dial_qualifier; 446 447 call sys_log_$binary (SL_LOG_SILENT, addr (ADAR), size (ADAR), 448 AS_AUDIT_DATA_CLASS, 449 "DIALID^[ DENIED^]^20t^[start^;stop^] service for ^[*^]^a.^a.^a ^12.3b id=^a^[ (^a)^]", 450 ^grant_sw, (action = AS_AUDIT_DIALID_START), 451 (ute.anonymous = 1), ute.person, ute.project, ute.tag, 452 ute.proc_id, dial_server_info.dial_qualifier, 453 (added_info ^= ""), added_info); 454 return; 455 456 abs_command_cancel: 457 entry (P_utep, P_asrsp, P_request_id, P_failed); 458 459 utep = P_utep; 460 as_request_sender_ptr = P_asrsp; 461 request_id = P_request_id; 462 grant_sw = ^P_failed; 463 464 ARHP.header.type = ARH_TYPE_PROXY; 465 ARHP.header.version = ACCESS_AUDIT_HEADER_VERSION_3; 466 string (ARHP.header.flags) = ""b; 467 ARHP.header.flags.subject_is_process = "1"b; 468 ARHP.header.operation_code = access_operations_$abs_command_cancel; 469 unspec (event_flags) = ""b; 470 event_flags.special_op = "1"b; 471 event_flags.grant = grant_sw; 472 ARHP.header.event_flags = unspec (event_flags); 473 ARHP.header.session_uid = ute.session_uid; 474 475 /* Binary info for the absentee process for which a cancellation request 476* has been sent. */ 477 ARHP.subjects (1).person = 478 substr (ute.person, 1, length (ARHP.subjects (1).person)); 479 ARHP.subjects (1).project = 480 substr (ute.project, 1, length (ARHP.subjects (1).project)); 481 ARHP.subjects (1).tag = ute.tag; 482 ARHP.subjects (1).ring = ute.initial_ring; 483 ARHP.subjects (1).anonymous = (ute.anonymous = 1); 484 ARHP.subjects (1).pad3 = ""b; 485 ARHP.subjects (1).process_id = ute.proc_id; 486 ARHP.subjects (1).authorization = ute.process_authorization; 487 ARHP.subjects (1).authorization_range (1) = 488 ute.process_authorization_range (1); 489 ARHP.subjects (1).authorization_range (2) = 490 ute.process_authorization_range (2); 491 492 /* Binary info for the process requesting the cancellation. */ 493 ARHP.subjects (2).person = before (as_request_sender.group_id, "."); 494 ARHP.subjects (2).project = 495 before (after (as_request_sender.group_id, "."), "."); 496 ARHP.subjects (2).tag = 497 after (after (as_request_sender.group_id, "."), "."); 498 ARHP.subjects (2).ring = as_request_sender.validation_level; 499 ARHP.subjects (2).anonymous = 500 (ARHP.subjects (2).person = "anonymous"); 501 ARHP.subjects (2).pad3 = ""b; 502 ARHP.subjects (2).process_id = as_request_sender.process_id; 503 ARHP.subjects (2).authorization = as_request_sender.authorization; 504 ARHP.subjects (2).authorization_range (1) = 505 as_request_sender.authorization; 506 ARHP.subjects (2).authorization_range (2) = 507 as_request_sender.max_authorization; 508 509 call sys_log_$binary (SL_LOG_SILENT, addr (ARHP), size (ARHP), 510 AS_AUDIT_DATA_CLASS, 511 "ABS CANCEL^[ DENIED^]^20t^[*^]^a.^a.^a ^a ^12.3b (car by ^[*^]^a)", 512 ^grant_sw, (ute.anonymous = 1), ute.person, ute.project, 513 ute.tag, ute.tty_name, ute.proc_id, ARHP.subjects (2).anonymous, 514 as_request_sender.group_id); 515 return; 516 517 abs_command_login: 518 entry (P_asrsp); 519 520 as_request_sender_ptr = P_asrsp; 521 522 operation = access_operations_$abs_command_login; /* make pcref */ 523 /* find where op */ 524 /* being audited */ 525 526 call sys_log_ (SL_LOG_SILENT, 527 "ABS LOGIN^20trequested by ^a Level=^d", 528 as_request_sender.group_id, as_request_sender.validation_level); 529 return; 530 531 login: 532 entry (P_utep, P_added_info); 533 534 utep = P_utep; 535 added_info = P_added_info; 536 grant_sw = (ute.login_result = 0); 537 538 unspec (ASIAAR) = ""b; 539 call FILL_IN_ARH (addr (ASIAAR.header), grant_sw); 540 ASIAAR.header.operation_code = access_operations_$user_login; 541 542 if ute.process_type = PT_ABSENTEE 543 then if ute.abs_attributes.proxy 544 then ASIAAR.record.type = AAB_ia_abs_proxy; 545 else ASIAAR.record.type = AAB_ia_abs; 546 else ASIAAR.record.type = AAB_ia_int_dmn; 547 548 ASIAAR.record.version = AS_AUDIT_RECORD_IA_VERSION_1; 549 ASIAAR.record.process_type = ute.process_type; 550 ASIAAR.record.min_ring = ute.lowest_ring; 551 ASIAAR.record.max_ring = ute.highest_ring; 552 ASIAAR.record.attributes = ute.at; 553 ASIAAR.record.audit_flags = ute.audit; 554 ASIAAR.record.channel = ute.tty_name; 555 ASIAAR.record.terminal_type = ute.terminal_type; 556 ASIAAR.record.answerback = ute.tty_id_code; 557 ASIAAR.absentee_input_path = ute.input_seg; 558 559 ASIAAR.proxy_user = 560 rtrim (ute.proxy_person) || "." || ute.proxy_project; 561 562 proc_type = PROCESS_TYPES (ute.process_type); 563 if ute.process_type = PT_ABSENTEE 564 then do; 565 proc_type = QNAME (ute.queue); 566 if ute.abs_attributes.proxy 567 then audit_record_size = size (as_ia_audit_record_abs_proxy); 568 else audit_record_size = size (as_ia_audit_record_abs); 569 end; 570 else audit_record_size = size (as_ia_audit_record_int_dmn); 571 572 if grant_sw 573 then severity = SL_LOG; 574 else severity = SL_LOG_SILENT; 575 576 call sys_log_$binary (severity, addr (ASIAAR), audit_record_size, 577 AS_AUDIT_DATA_CLASS, 578 "LOGIN^[ DENIED^]^20t^[*^]^a.^a ^a ^a^[ [^a]^;^s^]^[ (^a)^;^]", 579 ^grant_sw, (ute.anonymous = 1), ute.person, ute.project, 580 proc_type, ute.tty_name, (ute.process_type = PT_ABSENTEE), 581 Abs_Entry_Name (ute.input_seg), (added_info ^= ""), added_info); 582 return; 583 584 logout: 585 entry (P_utep, P_added_info); 586 587 utep = P_utep; 588 added_info = P_added_info; 589 secs = divide (ute.cpu_usage, MILLION, 35, 0); 590 mins = divide (secs, 60, 35, 0); 591 secs = mod (secs, 60); 592 593 proc_type = PROCESS_TYPES (ute.process_type); 594 if ute.process_type = PT_ABSENTEE 595 then proc_type = QNAME (ute.queue); 596 597 call FILL_IN_ARH (addr (ASIAAR.header), GRANTED); 598 599 ASIAAR.header.operation_code = access_operations_$user_logout; 600 601 call sys_log_$binary (SL_LOG, addr (ASIAAR.header), 602 size (audit_record_header), AS_AUDIT_DATA_CLASS, 603 "LOGOUT^20t^[*^]^a.^a^[.^a^;^s^] ^a ^a ^3d:^2d $^.2f (^a)", 604 (ute.anonymous = 1), ute.person, ute.project, (ute.tag ^= ""), 605 ute.tag, proc_type, ute.tty_name, mins, secs, ute.session_cost, 606 added_info); 607 return; 608 609 FILL_IN_ARH: 610 procedure (P_ahrp, P_grant_sw); 611 612 dcl P_ahrp pointer parameter; 613 dcl P_grant_sw bit (1) aligned parameter; 614 dcl p pointer automatic; 615 616 p = P_ahrp; /* get pointer to audit_record_header */ 617 p -> audit_record_header.header.type = ARH_TYPE_NO_PROXY; 618 p -> audit_record_header.header.version = 619 ACCESS_AUDIT_HEADER_VERSION_3; 620 string (p -> audit_record_header.header.flags) = ""b; 621 p -> audit_record_header.header.flags.subject_is_process = "1"b; 622 623 /* Here, we really should have more information passed to us about whether 624* this is a privileged operation or not. We could set the priv flag if 625* we had this information. */ 626 627 unspec (event_flags) = ""b; 628 event_flags.special_op = "1"b; 629 event_flags.grant = P_grant_sw; 630 p -> audit_record_header.header.event_flags = unspec (event_flags); 631 p -> audit_record_header.header.session_uid = ute.session_uid; 632 p -> audit_record_header.subject.person = 633 substr (ute.person, 1, 634 length (p -> audit_record_header.subject.person)); 635 p -> audit_record_header.subject.project = 636 substr (ute.project, 1, 637 length (p -> audit_record_header.subject.project)); 638 p -> audit_record_header.subject.tag = ute.tag; 639 p -> audit_record_header.subject.ring = ute.initial_ring; 640 /* updated later */ 641 p -> audit_record_header.subject.anonymous = (ute.anonymous = 1); 642 p -> audit_record_header.subject.pad3 = ""b; 643 p -> audit_record_header.subject.process_id = ute.proc_id; 644 p -> audit_record_header.subject.authorization = 645 ute.process_authorization; 646 p -> audit_record_header.subject.authorization_range = 647 ute.process_authorization_range; 648 return; 649 650 end FILL_IN_ARH; 651 652 Abs_Entry_Name: 653 procedure (P_pathname) returns (char (*)); 654 655 /**** This internal procedure returns the entryname portion of the absentee 656* pathname minus the ".absin" suffix. */ 657 658 dcl P_pathname char (*) parameter; 659 dcl dirname char (168); 660 dcl entryname char (32); 661 dcl code fixed bin (35); 662 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 663 664 call expand_pathname_ (P_pathname, dirname, entryname, code); 665 if code ^= 0 666 then return ("-invalid-"); 667 else return (reverse (after (reverse (entryname), "nisba."))); 668 669 end Abs_Entry_Name; 670 671 as_rqt_nt_pnt_chg: 672 entry (P_name, P_asrsp, P_code); 673 674 as_request_sender_ptr = P_asrsp; 675 676 call sys_log_$error_log (SL_LOG_SILENT, P_code, P_name, 677 "^[GRANTED^;Rejected^] NOTE_PNT_CHANGE request from ^a.^[ Validation level (^d) not Ring-1.^]", 678 (P_code = 0), as_request_sender.group_id, (P_code ^= 0), 679 as_request_sender.validation_level); 680 681 return; 682 683 684 asr_com_chn_info_srvr: 685 entry (P_name, P_asrsp, P_asrccip, P_code); 686 687 as_request_sender_ptr = P_asrsp; 688 asr_com_channel_info_ptr = P_asrccip; 689 690 call sys_log_$error_log (SL_LOG, P_code, ME, 691 "^[GRANTED^;DENIED^] com_channel_info request for ^a on channel ^a.", 692 (P_code = 0), as_request_sender.group_id, 693 asr_com_channel_info.channel_name); 694 695 return; 696 697 698 699 dpg_buzzard: 700 entry (P_name, P_asrsp, P_code); 701 702 as_request_sender_ptr = P_asrsp; 703 704 call sys_log_$error_log (SL_LOG_SILENT, P_code, P_name, 705 "^[GRANTED^;DENIED^] process_termination_monitor request by ^a.", 706 (P_code = 0), as_request_sender.group_id); 707 708 return; 709 710 /* Includes */ 711 712 /* format: off */ 713 /* begin include file - access_audit_binary_def */ 1 2 1 3 /* 1985-02-26 EJ Sharpe: added rcp object definition */ 1 4 /* 1985-01-25 E. Swenson: added pnt definition */ 1 5 /* 1985-01-22 EJ Sharpe: created */ 1 6 1 7 /**** 1 8* Each access audit log message has binary data including 1 9* the audit record header and optionally some extended 1 10* binary information. The first 9 bits (fixed bin (9) uns unal) 1 11* if the extended binary defines the type of the data 1 12* and, thus, what structure may be used to interpret it. 1 13* 1 14* This include file is a registry of the extended binary 1 15* type values. 1 16*****/ 1 17 1 18 dcl ( 1 19 /*type identifier*/ /*type*/ /*include where defined*/ 1 20 1 21 AAB_ss_object init (1), /* access_audit_ssobj_info.incl.pl1 */ 1 22 AAB_ss_link init (2), /* access_audit_ssobj_info.incl.pl1 */ 1 23 AAB_ia_int_dmn init (3), /* as_audit_structures.incl.pl1 */ 1 24 AAB_ia_abs init (4), /* as_audit_structures.incl.pl1 */ 1 25 AAB_ia_abs_proxy init (5), /* as_audit_structures.incl.pl1 */ 1 26 AAB_channel init (6), /* as_audit_structures.incl.pl1 */ 1 27 AAB_dial_service init (7), /* as_audit_structures.incl.pl1 */ 1 28 AAB_pnt_entry init (8), /* access_audit_pnt_info.incl.pl1 */ 1 29 AAB_rcp_object init (9), /* access_audit_rcp_info.incl.pl1 */ 1 30 AAB_mseg_msg init (10) /* access_audit_mseg_info.incl.pl1 */ 1 31 ) fixed bin (9) uns unal static options (constant); 1 32 1 33 /**** 1 34* The following array contains entry name fragments for the 1 35* expander procedure associated with the respective binary 1 36* data type. The actual entry name is generated like: 1 37* 1 38* entryname = "expand_"||audit_binary_expanders(TYPE)||"_audit_info_" 1 39* 1 40* Note that expand_access_audit_msg_.pl1 keeps a cache of 1 41* extended binary expander procedure entries. The cache 1 42* should be enlarged when the following array grows to more 1 43* than 36 entries. 1 44*****/ 1 45 1 46 dcl audit_binary_expanders (10) char (13) varying internal static options (constant) 1 47 init ( "ssobj", /* 1 (first two are internal */ 1 48 "sslnk", /* 2 procedures in expand_access_audit_msg_) */ 1 49 "as_ia", /* 3 (ia_int_dmn) */ 1 50 "as_ia", /* 4 (ia_abs) */ 1 51 "as_ia", /* 5 (ia_abs_proxy) */ 1 52 "channel", /* 6 */ 1 53 "dial_serv", /* 7 */ 1 54 "pnt", /* 8 */ 1 55 "rcp_obj", /* 9 */ 1 56 "mseg_msg" /* 10 */ 1 57 ); 1 58 1 59 /* end include file - access_audit_binary_def.incl.pl1 */ 713 714 /* BEGIN include file access_audit_bin_header.incl.pl1 */ 2 2 2 3 /* format: style4 */ 2 4 2 5 /* NOTE: All changes must also be done to access_audit_bin_header.incl.alm */ 2 6 2 7 /* 85-01-18 E. Swenson - renamed to access_audit_bin_header.incl.pl1 */ 2 8 /* 85-01-17 E. Swenson - restructured, added session_uid, changed 2 9* min and max authorization to authorization range. */ 2 10 /* 85-01-07 EJ Sharpe - added min_authorization, cleanup */ 2 11 /* 84-11-15 EJ Sharpe - added event_flags word */ 2 12 /* 84-11-06 EJ Sharpe - added unaligned attr to version and proxy_flag */ 2 13 /* 84-10-24 EJ Sharpe - added the constants */ 2 14 /* 84-09-04 BIM - created */ 2 15 2 16 declare audit_record_ptr pointer; 2 17 2 18 dcl 1 audit_record_header aligned based (audit_record_ptr), 2 19 2 header aligned like arh_header_, 2 20 2 subject aligned like arh_user_info_; 2 21 2 22 dcl 1 audit_record_header_proxy aligned based (audit_record_ptr), 2 23 2 header aligned like arh_header_, 2 24 2 subjects (2) aligned like arh_user_info_; 2 25 2 26 dcl 1 arh_header_ aligned based, 2 27 2 type fixed bin (9) unsigned unaligned, 2 28 2 version fixed bin (9) unsigned unaligned, 2 29 2 flags unaligned, 2 30 3 ( 2 31 subject_is_process, /* binary data in subject is valid */ 2 32 object_is_valid /* There is an object */ 2 33 ) bit (1) unaligned, 2 34 3 pad bit (16) unaligned, 2 35 2 operation_code bit (36) aligned, /* like access_audit_encoded_op */ 2 36 2 event_flags bit (36) aligned, /* like access_audit_eventflags */ 2 37 2 session_uid fixed bin (35); /* uid for the login session */ 2 38 2 39 dcl 1 arh_user_info_ aligned based, 2 40 2 person char (22) unaligned, /* see anonymous bit */ 2 41 2 project char (9) unaligned, /* blank for nologin w/out proj */ 2 42 2 tag char (1) unaligned, 2 43 2 ring fixed bin (3) uns unaligned, 2 44 2 anonymous bit (1) unaligned, 2 45 2 pad3 bit (32) unaligned, 2 46 2 process_id bit (36) aligned, 2 47 2 authorization bit (72) aligned, 2 48 2 authorization_range (2) bit (72) aligned; 2 49 2 50 dcl ARH_TYPE_PROXY fixed bin init (2) 2 51 static options (constant); 2 52 dcl ARH_TYPE_NO_PROXY fixed bin init (1) 2 53 static options (constant); 2 54 dcl ACCESS_AUDIT_HEADER_VERSION_3 fixed bin (9) unsigned 2 55 init (3) static options (constant); 2 56 2 57 /* End include file access_audit_bin_header.incl.pl1 */ 714 715 /* begin include file - access_audit_eventflags.incl.pl1 */ 3 2 /* NOTE: This include file has an ALM counterpart made with cif. 3 3*Keep it up to date. */ 3 4 3 5 dcl 1 audit_event_flags based aligned, 3 6 2 special_op bit (1) unal, /* special sys operation */ 3 7 2 grant bit (1) unal, /* operation was successful */ 3 8 2 admin_op bit (1) unal, /* administrative operation */ 3 9 2 priv_op bit (1) unal, /* privileged operation */ 3 10 2 cc_1_10 bit (1) unal, /* small covert channel */ 3 11 2 cc_10_100 bit (1) unal, /* moderate covert channel */ 3 12 2 receiver bit (1) unal, /* on receiving end of channel */ 3 13 2 pad bit (29) unal; 3 14 3 15 /* end include file - access_audit_eventflags.incl.pl1 */ 715 716 /* BEGIN: as_audit_structures.incl.pl1 * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(84-01-17,Swenson), approve(), audit(), install(): 4 5* Initial coding. 4 6* 2) change(87-06-08,GDixon), approve(87-07-13,MCR7741), 4 7* audit(87-07-31,Brunelle), install(87-08-04,MR12.1-1056): 4 8* A) Add AS_AUDIT_CHANNEL_ACTIONS, AS_AUDIT_CHANNEL_DIRECTION, and 4 9* AS_AUDIT_CHANNEL_SERVICE_INFO arrays. 4 10* B) Add channel audit actions for dialin, dialout and dial system. 4 11* C) Correct declaration of as_channel_audit_record_.pad2. 4 12* D) Revise channel_audit_info. 4 13* 3) change(87-07-15,GDixon), approve(87-07-15,MCR7741), 4 14* audit(87-07-31,Brunelle), install(87-08-04,MR12.1-1056): 4 15* A) Add AS_AUDIT_PROCESS_TERMINATE action code. 4 16* END HISTORY COMMENTS */ 4 17 4 18 /* format: style2 */ 4 19 4 20 /* This include file describes the binary data associated with 4 21* Answering Service audit records. */ 4 22 4 23 /**** This first structure defines the Identification and Authentication 4 24* (I&A) audit records associated with login attempts for interactive 4 25* and daemon logins */ 4 26 4 27 dcl 1 as_ia_audit_record_int_dmn 4 28 structure aligned based, 4 29 2 header like audit_record_header aligned, 4 30 2 record like as_ia_audit_record_; 4 31 4 32 /**** This one is for absentee logins which are not proxy absentees */ 4 33 4 34 dcl 1 as_ia_audit_record_abs 4 35 structure aligned based, 4 36 2 header like audit_record_header aligned, 4 37 2 record like as_ia_audit_record_, 4 38 2 absentee_input_path 4 39 char (168); 4 40 4 41 dcl 1 as_ia_audit_record_abs_proxy 4 42 structure aligned based, 4 43 2 header like audit_record_header aligned, 4 44 2 record like as_ia_audit_record_, 4 45 2 absentee_input_path 4 46 char (168), 4 47 2 proxy_user char (32); 4 48 4 49 /**** The following structure is common to all the I&A records. It 4 50* contains the relevant information about the I&A process. */ 4 51 4 52 dcl 1 as_ia_audit_record_ structure aligned based, 4 53 2 type fixed bin (9) unsigned unaligned, 4 54 2 version fixed bin (9) unsigned unaligned, 4 55 2 process_type fixed bin (3) unsigned unaligned, 4 56 2 min_ring fixed bin (3) unsigned unaligned, 4 57 2 max_ring fixed bin (3) unsigned unaligned, 4 58 2 pad1 bit (9) unaligned, 4 59 2 attributes like user_attributes, 4 60 2 audit_flags bit (36) aligned, 4 61 2 channel char (32) aligned, 4 62 2 terminal_type char (32) aligned, 4 63 2 answerback char (4) aligned; 4 64 4 65 /**** The following structure represents the binary information 4 66* associated with a communications channel access audit message. */ 4 67 4 68 dcl 1 as_channel_audit_record 4 69 structure aligned based, 4 70 2 header like audit_record_header aligned, 4 71 2 record like as_channel_audit_record_; 4 72 4 73 4 74 dcl 1 as_channel_audit_record_ 4 75 structure aligned based, 4 76 2 type fixed bin (9) unsigned unaligned, 4 77 2 version fixed bin (9) unsigned unaligned, 4 78 2 flags unaligned, 4 79 3 channel_info_valid 4 80 bit (1) unaligned, 4 81 3 current_access_class_valid 4 82 bit (1) unaligned, 4 83 3 pad1 bit (16) unaligned, 4 84 2 channel_name char (32), 4 85 2 current_access_class 4 86 (2) bit (72) aligned, 4 87 2 access_class_range (2) bit (72) aligned, 4 88 2 current_service_type 4 89 fixed bin (17) unaligned, 4 90 2 service_type fixed bin (17) unaligned, 4 91 2 terminal_type char (32), 4 92 2 authenticated_user aligned, 4 93 3 personid char (22) unaligned, 4 94 3 projectid char (9) unaligned, 4 95 3 pad2 bit (9) unaligned; 4 96 4 97 /**** The following structure represents the binary information 4 98* associated with a dial service audit record */ 4 99 4 100 dcl 1 as_dial_service_audit_record 4 101 structure aligned based, 4 102 2 header like audit_record_header aligned, 4 103 2 record like as_dial_service_audit_record_; 4 104 4 105 dcl 1 as_dial_service_audit_record_ 4 106 structure aligned based, 4 107 2 type fixed bin (9) unsigned unaligned, 4 108 2 version fixed bin (9) unsigned unaligned, 4 109 2 dial_server_ring fixed bin (3) unsigned unaligned, 4 110 2 flags unaligned, 4 111 3 registered_server 4 112 bit (1) unaligned, 4 113 3 privileged_server 4 114 bit (1) unaligned, 4 115 3 pad1 bit (13) unaligned, 4 116 2 dial_qualifier char (32); 4 117 4 118 /**** The following structure is used by dial_ctl_ to pass the required 4 119* information to as_access_audit_. This structure is necessary since 4 120* the data is not available in the user_table_entry or cdte. */ 4 121 4 122 dcl dial_server_info_ptr ptr; /* pointer to following structure */ 4 123 4 124 dcl 1 dial_server_info structure aligned based (dial_server_info_ptr), 4 125 2 server_ring fixed bin (3) unaligned, 4 126 2 flags unaligned, 4 127 3 registered bit (1) unaligned, 4 128 3 privileged bit (1) unaligned, 4 129 3 pad1 bit (31) unaligned, 4 130 2 dial_qualifier char (32); 4 131 4 132 /**** The following structure is used by dial_ctl_ to pass relevant information 4 133* to as_access_audit_. The channel name is passed here when we do not 4 134* have a cdtep, for instance. */ 4 135 4 136 dcl channel_audit_info_ptr ptr; 4 137 4 138 dcl 1 channel_audit_info aligned based (channel_audit_info_ptr), 4 139 2 channel_name char (32), 4 140 2 valid, 4 141 (3 service_info, 4 142 3 access_class, 4 143 3 access_class_range, 4 144 3 user_validation_level) 4 145 bit(1) unal, 4 146 3 mbz bit(32) unal, 4 147 2 service_info char (32), 4 148 2 access_class bit(72) aligned, 4 149 2 access_class_range (2) bit(72) aligned, 4 150 2 user_validation_level 4 151 fixed bin (3); 4 152 4 153 dcl AS_AUDIT_RECORD_IA_VERSION_1 4 154 fixed bin (9) initial (1) internal static options (constant); 4 155 4 156 dcl AS_AUDIT_RECORD_CHN_VERSION_1 4 157 fixed bin (9) initial (1) internal static options (constant); 4 158 4 159 dcl AS_AUDIT_RECORD_DIALID_VERSION_1 4 160 fixed bin (9) initial (1) internal static options (constant); 4 161 4 162 dcl ( 4 163 AS_AUDIT_PROCESS_CREATE 4 164 initial (1), 4 165 AS_AUDIT_PROCESS_DESTROY 4 166 initial (2), 4 167 AS_AUDIT_PROCESS_CONNECT 4 168 initial (3), 4 169 AS_AUDIT_PROCESS_DISCONNECT 4 170 initial (4), 4 171 AS_AUDIT_PROCESS_TERMINATE 4 172 initial (5) 4 173 ) fixed bin (17) internal static options (constant); 4 174 4 175 dcl ( 4 176 AS_AUDIT_CHANNEL_ATTACH 4 177 initial (1), 4 178 AS_AUDIT_CHANNEL_DETACH 4 179 initial (2), 4 180 AS_AUDIT_CHANNEL_DIALIN 4 181 initial (3), 4 182 AS_AUDIT_CHANNEL_DIALOUT 4 183 initial (4), 4 184 AS_AUDIT_CHANNEL_DIAL_SYSTEM 4 185 initial (5) 4 186 ) fixed bin (17) internal static options (constant); 4 187 4 188 dcl ( 4 189 AS_AUDIT_DIALID_START initial (1), 4 190 AS_AUDIT_DIALID_STOP initial (2) 4 191 ) fixed bin (17) internal static options (constant); 4 192 4 193 dcl AS_AUDIT_CHANNEL_ACTIONS 4 194 (5) char (12) internal static options (constant) 4 195 initial ("ATTACH", "DETACH", "DIALIN", "DIALOUT", "DIAL SYSTEM"); 4 196 dcl AS_AUDIT_CHANNEL_DIRECTION 4 197 (5) char (4) internal static options (constant) 4 198 initial ("to", "from", "to", "from", "to"); 4 199 dcl AS_AUDIT_CHANNEL_SERVICE_INFO 4 200 (5) char (12) internal static options (constant) 4 201 initial ("Service", "Service", "Dial ID", "Destination", "VChannel"); 4 202 dcl AS_AUDIT_PROCESS_ACTIONS 4 203 (5) char (10) internal static options (constant) 4 204 initial ("CREATE", "DESTROY", "CONNECT", "DISCONNECT", "TERMINATE"); 4 205 4 206 /* END OF: as_audit_structures.incl.pl1 * * * * * */ 716 717 /* BEGIN INCLUDE FILE ... as_request_header.incl.pl1 */ 5 2 5 3 /* DESCRIPTION: 5 4* Answering Service request information. 5 5**/ 5 6 5 7 5 8 /****^ HISTORY COMMENTS: 5 9* 1) change(00-01-01,JRandom), approve(), audit(), install(): 5 10* Written by someone, at sometime. 5 11* 2) change(84-09-10,Tague), approve(), audit(), install(): 5 12* R. Michael Tague: Added ASR_BUMP_USER request. 5 13* 3) change(84-10-04,Margulies), approve(), audit(), install(): 5 14* BIM: ASR_ADMIN_COMMAND. 5 15* 4) change(85-01-23,Swenson), approve(), audit(), install(): 5 16* E. Swenson for ASR_NOTE_PNT_CHANGE. 5 17* 5) change(85-02-18,Margulies), approve(), audit(), install(): 5 18* BIM: ASR_DAEMON_COMMAND, ASR_COM_CHANNEL_INFO 5 19* 6) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 5 20* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 5 21* Jim Lippard: Added ASR_ABS_COMMAND request. 5 22* END HISTORY COMMENTS */ 5 23 5 24 5 25 /* format: style4 */ 5 26 5 27 dcl as_request_version_1 fixed bin internal static initial (1) options (constant); 5 28 5 29 dcl ( 5 30 ASR_FIRST_TYPE initial (1), 5 31 ASR_DIAL_SERVER initial (1), 5 32 ASR_DIAL_OUT initial (2), 5 33 ASR_FPE_CAUSES_LOGOUT initial (3), 5 34 ASR_FPE_CAUSES_NEW_PROC initial (4), 5 35 ASR_PROC_TERM_NOTIFY initial (5), 5 36 ASR_BUMP_USER initial (6), 5 37 ASR_ADMIN_COMMAND initial (7), 5 38 ASR_NOTE_PNT_CHANGE initial (8), 5 39 ASR_DAEMON_COMMAND initial (9), 5 40 ASR_COM_CHANNEL_INFO initial (10), 5 41 ASR_ABS_COMMAND initial (11), 5 42 ASR_LAST_TYPE initial (11) 5 43 ) fixed bin internal static options (constant); 5 44 5 45 dcl ASR_DEFER_IN_ADMIN_MODE (1:11) bit (1) int static options (constant) 5 46 init ((6) (1) "0"b, "1"b, (4) (1) "0"b); 5 47 5 48 dcl ASR_REQUEST_NAMES (1:11) int static options (constant) 5 49 char (40) init ( 5 50 "Dial request", 5 51 "Dial out request", 5 52 "Logout on fatal process error", 5 53 "New process on fatal process error", 5 54 "Monitor process terminations", 5 55 "Bump user", 5 56 "Execute admin command", 5 57 "Note PNT change", 5 58 "Daemon command", 5 59 "Communications channel info", 5 60 "Absentee command"); 5 61 5 62 dcl 1 as_request_header based aligned, 5 63 2 version fixed bin, /* version number */ 5 64 2 type fixed bin, /* what to do */ 5 65 2 reply_channel fixed bin (71); /* who to tell */ 5 66 5 67 5 68 /* END INCLUDE FILE ... as_request_header.incl.pl1 */ 717 718 /* Begin include file as_request_sender_.incl.pl1 84-06-06 BIM */ 6 2 6 3 /****^ HISTORY COMMENTS: 6 4* 1) change(86-10-14,Lippard), approve(85-12-30,MCR7326), 6 5* audit(86-10-24,GDixon), install(86-10-28,MR12.0-1200): 6 6* Added max_authorization and audit_flags. 6 7* END HISTORY COMMENTS */ 6 8 6 9 /* Structure passed from as_request_server_ to the various 6 10* requests to identify requester. */ 6 11 /* format: style3,indcomtxt */ 6 12 6 13 declare as_request_sender_ptr 6 14 pointer; 6 15 declare 1 as_request_sender aligned based (as_request_sender_ptr), 6 16 2 version char (8) aligned, 6 17 2 reply_message fixed bin (71), 6 18 2 group_id char (32) unaligned, 6 19 2 process_id bit (36), 6 20 2 validation_level 6 21 fixed bin (3), 6 22 2 authorization bit (72), 6 23 2 max_authorization 6 24 bit (72), 6 25 2 audit_flags bit (36); 6 26 6 27 declare AS_REQUEST_SENDER_VERSION_2 6 28 char (8) init ("asrqs002") internal static options (constant); 6 29 6 30 /* End include file as_request_sender_.incl.pl1 */ 718 719 /* BEGIN INCLUDE FILE ... asr_com_channel_info.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(85-02-18,Margulies), approve(), audit(), install(): 7 6* Initial coding. 7 7* 2) change(87-06-07,GDixon), approve(87-07-13,MCR7741), 7 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 9* Use correct include file name in begin/end comments. 7 10* END HISTORY COMMENTS */ 7 11 7 12 7 13 /* format: style4 */ 7 14 /* request AS to request com channel info */ 7 15 7 16 dcl asr_com_channel_info_ptr pointer; 7 17 dcl 1 asr_com_channel_info aligned based (asr_com_channel_info_ptr), 7 18 2 header aligned like as_request_header, 7 19 2 version char (8), 7 20 2 channel_name char (32) unaligned, 7 21 2 reply_version_requested char (8), 7 22 2 reply_message_handle bit (72) aligned; 7 23 7 24 dcl ASR_CCI_VERSION_1 char (8) init ("asrci001") int static options (constant); 7 25 7 26 dcl asr_reply_cci_ptr pointer; 7 27 dcl 1 asr_reply_com_channel_info aligned based (asr_reply_cci_ptr), 7 28 2 code fixed bin (35), 7 29 2 pad bit (36) aligned; 7 30 7 31 /* END INCLUDE FILE ... asr_com_channel_info.incl.pl1 */ 719 720 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 8 2 8 3 /* This include file declares the "author" substructure 8 4* in a form suitable for using the PL/I "like" attribute. 8 5* 8 6* Written 750304 by PG 8 7**/ 8 8 8 9 dcl 1 author_dcl aligned based, 9 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 9 2 9 3 /* the "author" items must always be the first ones in the table. The 9 4* module which moves the converted table to the System Control process 9 5* fills in these data items and assumes them to be at the head of the segment 9 6* regardless of the specific table's actual declaration. The variables 9 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 9 8* respectively. For tables installed in multiple processes, these 9 9* are to be used to lock out multiple installations. */ 9 10 9 11 /* Lock should be used as a modification lock. Since, in general, 9 12* entries may not be moved in system tables, even by installations, 9 13* it is sufficient for only installers and programs that change threads 9 14* to set or respect the lock. Simply updating data in an entry 9 15* requires no such protection. 9 16* 9 17* Last_install_time is used by readers of system tables to detect 9 18* installations or other serious modifications. By checking it before 9 19* and after copying a block of data, they can be protected against 9 20* modifications. 9 21* 9 22* Modules that set the lock should save proc_group_id, and then 9 23* put their group id there for the time they hold the lock. 9 24* if they do not actually install the, they should restore the group id. 9 25**/ 9 26 9 27 2 author aligned, /* validation data about table's author */ 9 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 9 29 3 lock bit (36), /* installation lock */ 9 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 9 31 3 update_authorization bit (1) unal, /* update only authorizations */ 9 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 9 33 3 pad bit (33) unaligned, 9 34 3 last_install_time fixed bin (71), 9 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 9 36 3 w_dir char (64), /* author's working directory */ 9 37 9 38 /* END INCLUDE FILE author.incl.pl1 */ 8 10 8 11 2 pad; 8 12 8 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 720 721 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 10 2 10 3 /* format: style3,idind25,indcomtxt */ 10 4 10 5 /* Channel Definition Table. 10 6* This table lists all of the hardware channels (ports) connected 10 7* to the system, and maintains the attributes of each one. 10 8* 10 9* PG 741230 10 10* Modified by Mike Grady 5/6/76 to add FNP info. 10 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 10 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 10 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 10 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 10 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 10 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 10 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 10 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 10 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 10 20* Modified August 1982 by E. N. Kittlitz for check_acs. 10 21* Modified January 1983 by Keith Loepere for generic_destination. 10 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 10 23* Modified 831216 by E. N. Kittlitz for required_access_class. 10 24* Modified 84-04-01 by BIM to finish communications AIM: 10 25* access class ranges, 10 26* access_control flags. 10 27**/ 10 28 10 29 10 30 /****^ HISTORY COMMENTS: 10 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 10 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 10 33* Add support for answering service to use IOCBs when tty_ cannot be 10 34* used to service login channels. 10 35* END HISTORY COMMENTS */ 10 36 10 37 10 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 10 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 10 40 10 41 dcl (cdtp, cdtep, fnpep, mpxep) 10 42 ptr; 10 43 10 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 10 45 2 author like author_dcl.author, /* standard header */ 10 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 10 47 2 current_size fixed bin, /* number of last cdte. */ 10 48 2 version fixed bin, 10 49 2 freep fixed bin, /* chain of free cdte's */ 10 50 2 n_cdtes fixed bin, /* number of used cdte's */ 10 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 10 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 10 53 2 cpu_in_dialup fixed bin (71), /* .. */ 10 54 2 pf_in_dialup fixed bin, /* .. */ 10 55 2 pp_in_dialup fixed bin, /* .. */ 10 56 2 entries_to_dialup fixed bin, /* .. */ 10 57 2 flags, 10 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 10 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 10 60 3 mux_mgr_system_init 10 61 bit (1) unal, /* mux mgr has loaded top-levels */ 10 62 3 pad1 bit (33) unal, 10 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 10 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 10 65 2 threads aligned like channel_threads, 10 66 /* root of non-fnp-top-level-multiplexers */ 10 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 10 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 10 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 10 70 10 71 10 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 10 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 10 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 10 75 2 pad1 bit (36) aligned, 10 76 2 name char (32), /* ASCII name of channel */ 10 77 2 access_class (2) bit (72) aligned, /* access class range */ 10 78 2 comment char (48), /* printable message about channel */ 10 79 2 charge_type fixed bin (17) unal, /* billing group */ 10 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 10 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 10 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 10 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 10 84 2 pad2 bit (18) unaligned, 10 85 2 answerback char (8), /* answerback string expected */ 10 86 2 initial_terminal_type 10 87 char (32) unal, /* as specified in the CMF */ 10 88 2 mpx_data unal, /* data used only for multiplexed channels */ 10 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 10 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 10 91 2 flags, 10 92 ( 3 attributes, 10 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 10 94 4 audit_access_error 10 95 bit (1), /* ON means ck that person auth is inside access class range */ 10 96 /* this implies that the access_class describes a range of 10 97* legitimate user auths. */ 10 98 4 hardwired bit (1), /* ON means it is */ 10 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 10 100 4 dont_read_answerback 10 101 bit (1), /* ON means don't try to read answerback */ 10 102 4 pada bit (4), 10 103 3 access_control unaligned, /* As below */ 10 104 4 dial_out bit (1), /* dialing user must be on ACS */ 10 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 10 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 10 107 4 login bit (1), /* logging in user must be on acs */ 10 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 10 109 4 pado bit (3), 10 110 3 options, 10 111 4 execute_initial_command 10 112 bit (1), /* ON means to do it */ 10 113 4 attached_by_operator 10 114 bit (1), /* ON means temporary attachment. */ 10 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 10 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 10 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 10 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 10 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 10 120 4 generic_destination_present 10 121 bit (1), /* ON means that the initial_command field contains 10 122* a generic destination to match on dial_out or priv attach */ 10 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 10 124 4 pado bit (9) 10 125 ) unaligned, 10 126 2 initial_command char (64), /* pseudo first input line */ 10 127 /**** The following variables represent dynamic control info, and 10 128* are used mostly by dialup_ and asu_ */ 10 129 2 event fixed bin (71), /* event call channel for channel events */ 10 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 10 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 10 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 10 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 10 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 10 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 10 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 10 137 /* 0 = dialup_, 1 = mc_tty_ */ 10 138 3 save_arg bit (1) unal, /* -save login arg given */ 10 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 10 140 3 detach_after_hangup 10 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 10 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 10 143 3 hold_arg bit (1) unal, /* -hold arg given */ 10 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 10 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 10 146 3 current_access_class_valid 10 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 10 148 3 pad bit (7) unal, 10 149 2 twx fixed bin, /* channel device index */ 10 150 2 state fixed bin, /* channel state */ 10 151 2 tty_id_code char (4), /* channel id (answerback) */ 10 152 2 current_terminal_type 10 153 char (32) unal, /* most recently-set terminal type */ 10 154 2 process ptr unal, /* ptr to ATE owning this channel */ 10 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 10 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 10 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 10 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 10 159* We do not yet define multi-class connections, but we will someday. */ 10 160 2 disconnected_ate_index 10 161 fixed bin (17) unal, /* index of ate of disconnected process */ 10 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 10 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 10 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 10 165 2 pad3 bit (14) unaligned, 10 166 /**** The following variables are kept for metering purposes. */ 10 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 10 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 10 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 10 170 2 dialup_time fixed bin (71), /* time of present dialup */ 10 171 2 disconnected_proc_command 10 172 fixed bin (12) unsigned unal, 10 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 10 174 2 disconnected_proc_number 10 175 fixed bin (12) unsigned unal, 10 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 10 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 10 178 /* number of disconnected processes that user has */ 10 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 10 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 10 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 10 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 10 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 10 184 /**** had the space. */ 10 185 2 threads aligned like channel_threads, 10 186 /**** The use name is that of the user who gave the dial or slave ****/ 10 187 /**** preaccess request. ****/ 10 188 2 user_name unaligned, 10 189 3 person char (20) unaligned, 10 190 3 project char (9) unaligned, 10 191 3 pad char (3) unaligned, /* no tag */ 10 192 2 iocbp ptr unaligned; /* 104 words */ 10 193 10 194 10 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 10 196* overlays initial_command field for slave and autocall lines */ 10 197 10 198 10 199 10 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 10 201 /* These variables are filled in from the CMF */ 10 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 10 203 2 memory fixed bin, /* amount of memory on this FNP */ 10 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 10 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 10 206 2 service_type fixed bin, /* service type */ 10 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 10 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 10 209 /**** The following are used during system operation to remember the state of the FNP */ 10 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 10 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 10 212 2 mpxe like mpxe, /* standard multiplexer data */ 10 213 2 threads aligned like channel_threads, 10 214 /* same mpx threads as channel */ 10 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 10 216 10 217 /* This structure describes the data necessary to control a multiplexer. 10 218* For FNP's., a copy appears in the fnpe. For communications lines, it 10 219* overlays the initial_command field in the cdte. */ 10 220 10 221 dcl 1 mpxe based (mpxep) aligned, 10 222 2 state fixed bin, /* current state, up, down, loading */ 10 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 10 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 10 225 2 n_bootloads fixed bin, /* count of load attempts */ 10 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 10 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 10 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 10 229 2 time_load_start fixed bin (71), /* time current load started */ 10 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 10 231 2 flags unal, 10 232 3 go bit (1), /* start MPX after it loads */ 10 233 3 listening bit (1), /* listen has been done on subchannels */ 10 234 3 check bit (1), /* loaded with check option */ 10 235 3 retry_load bit (1), /* reload if load fails */ 10 236 3 pad1 bit (32), 10 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 10 238 10 239 /* These threads define the tree of multiplexers in the cdt. */ 10 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 10 241 /* by alpha sort order of the channel name. Daughter points to the */ 10 242 /* first child of this node, if any. Daughter count is the number */ 10 243 /* of children, as a consistency check. Mother is a back pointer to */ 10 244 /* the parent, present in all the children, not just the first. */ 10 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 10 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 10 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 10 248 10 249 dcl 1 channel_threads aligned based, 10 250 2 next_sister fixed bin unaligned, 10 251 2 prev_sister fixed bin unaligned, 10 252 2 daughter fixed bin unaligned, 10 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 10 254 2 pad bit (18) unaligned, 10 255 2 daughter_count fixed bin unaligned; 10 256 10 257 /* Values for cdte.service_type field */ 10 258 10 259 dcl ( 10 260 ANS_SERVICE init (1), /* login or dial */ 10 261 FTP_SERVICE init (2), /* file transfer service */ 10 262 MC_SERVICE init (3), /* message coordinator */ 10 263 SLAVE_SERVICE init (4), /* special channel */ 10 264 DIAL_SERVICE init (5), /* transient state */ 10 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 10 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 10 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 10 268 ) fixed bin internal static options (constant); 10 269 10 270 /* Values for service type in both cdte and fnpe */ 10 271 10 272 dcl ( 10 273 INACTIVE init (7), /* not to be used, even though configured */ 10 274 ACTIVE init (1) 10 275 ) /* for FNP only, configured and to be used */ 10 276 fixed bin internal static options (constant); 10 277 10 278 /* Value for both cdte.in_use and fnpe.state */ 10 279 10 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 10 281 /* was not configured at Multics bootload time */ 10 282 10 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 10 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 10 285 10 286 /* Value for cdte.in_use */ 10 287 10 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 10 289 /* channel deleted by CDT installation */ 10 290 10 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 10 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 10 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 10 294 10 295 10 296 /* Values for mpxe.state field */ 10 297 10 298 dcl ( 10 299 FNP_FREE init (0), /* this fnpe is not used */ 10 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 10 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 10 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 10 303 FNP_UP init (4) /* FNP is up and running fine */ 10 304 ) fixed bin internal static options (constant); 10 305 10 306 dcl ( 10 307 MPX_FREE init (0), /* this mpxe is not used */ 10 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 10 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 10 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 10 311 MPX_UP init (4) /* MPX is up and running fine */ 10 312 ) fixed bin internal static options (constant); 10 313 11 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 11 2 11 3 11 4 11 5 /****^ HISTORY COMMENTS: 11 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 11 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 11 8* Add data needed for the uncp multiplexer (DSA gateway) interface 11 9* implementation. 11 10* END HISTORY COMMENTS */ 11 11 11 12 11 13 /* Values for fnpe.type field */ 11 14 /* 11 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 11 16* Added in March 1982 - DN7100.fd. 11 17**/ 11 18 11 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 11 20 DN6600 init (2), /* a DataNet 6600 FNP */ 11 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 11 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 11 23 ) fixed bin internal static options (constant); 11 24 11 25 dcl fnp_types (4) char (8) int static options (constant) 11 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 11 27 11 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 11 29 init (355, 6600, 6670, 7100); 11 30 11 31 dcl supported_fnp (4) bit (1) int static options (constant) 11 32 init ("0"b, "0"b, "1"b, "1"b); 11 33 11 34 11 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 10 314 10 315 10 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 721 722 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 12 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 12 7* Added sl_info structure and associated named constants for use in calling 12 8* sys_log_$general. 12 9* END HISTORY COMMENTS */ 12 10 12 11 12 12 /* format: style4 */ 12 13 12 14 dcl ( 12 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 12 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 12 17 SL_TYPE init (-1), /* type message */ 12 18 SL_LOG_SILENT init (0), /* log message */ 12 19 SL_LOG init (1), /* log & type message */ 12 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 12 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 12 22 ) fixed bin internal static options (constant); 12 23 12 24 dcl 1 sl_info aligned automatic, 12 25 2 version char(8), /* structure version */ 12 26 2 arg_list_ptr ptr, /* arg_list with values */ 12 27 2 loc, 12 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 12 29 /* These flags control where the corresponding data item is found.*/ 12 30 /* -1: data appears in the corresponding structure element below */ 12 31 /* 0: data is not present anywhere */ 12 32 /* +N: data is Nth item in argument list pointed to by */ 12 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 12 34 /* corresponding structure element. */ 12 35 /* if data = +N: */ 12 36 /* argN is data_ptr, argN+1 is data_len */ 12 37 /* if ioa_msg = +N: */ 12 38 /* argN+1, ... argLAST are arguments substituted into the */ 12 39 /* ioa_msg control string. The formatted msg is returned. */ 12 40 2 flags, 12 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 12 42 3 flags_pad bit(35) unal, 12 43 2 mode fixed bin, /* as-mode, command-mode */ 12 44 2 severity fixed bin, /* error severity */ 12 45 2 code fixed bin(35), /* error table code */ 12 46 2 caller char(65) varying, /* caller refname$entryname*/ 12 47 2 data, /* binary data ptr/length */ 12 48 3 data_ptr ptr, 12 49 3 data_lth fixed bin(21), 12 50 2 class char(10) varying, /* binary data class */ 12 51 2 ioa_msg char(500) varying; /* formatted message text */ 12 52 12 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 54 /* */ 12 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 12 56 /* their data types should be as shown in the structure above, except that */ 12 57 /* character strings should be char(*) nonvarying. */ 12 58 /* */ 12 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 60 12 61 /* value for sl_info.version */ 12 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 12 63 12 64 /* values for sl_info.mode */ 12 65 dcl (SL_INFO_as_mode init(1), 12 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 12 67 12 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 12 69 dcl (SL_INFO_arg_given_in_structure init(-1), 12 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 12 71 12 72 12 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 74 /* */ 12 75 /* The following static structures are commonly used in the Login Server */ 12 76 /* user control software. */ 12 77 /* */ 12 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 79 12 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 12 81 12 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 12 83 2 version char(8) init ("sl_info1"), 12 84 2 arg_list_ptr ptr init (null), 12 85 2 loc, 12 86 3 (mode init (-1), 12 87 severity init ( 1), 12 88 code init ( 2), 12 89 caller init (-1), 12 90 data init ( 0), 12 91 class init ( 0), 12 92 ioa_msg init ( 3)) fixed bin, 12 93 2 flags, 12 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 95 3 flags_pad bit(35) unal init ("0"b), 12 96 2 mode fixed bin init ( 1), 12 97 2 severity fixed bin init ( 0), 12 98 2 code fixed bin(35) init ( 0), 12 99 2 caller char(65) varying init (""), 12 100 2 data, 12 101 3 data_ptr ptr init (null), 12 102 3 data_lth fixed bin(21) init ( 0), 12 103 2 class char(10) varying init (""), 12 104 2 ioa_msg char(500) varying init (""); 12 105 12 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 12 107 12 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 12 109 2 version char(8) init ("sl_info1"), 12 110 2 arg_list_ptr ptr init (null), 12 111 2 loc, 12 112 3 (mode init (-1), 12 113 severity init ( 1), 12 114 code init ( 0), 12 115 caller init (-1), 12 116 data init ( 0), 12 117 class init ( 0), 12 118 ioa_msg init ( 2)) fixed bin, 12 119 2 flags, 12 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 121 3 flags_pad bit(35) unal init ("0"b), 12 122 2 mode fixed bin init ( 1), 12 123 2 severity fixed bin init ( 0), 12 124 2 code fixed bin(35) init ( 0), 12 125 2 caller char(65) varying init (""), 12 126 2 data, 12 127 3 data_ptr ptr init (null), 12 128 3 data_lth fixed bin(21) init ( 0), 12 129 2 class char(10) varying init (""), 12 130 2 ioa_msg char(500) varying init (""); 12 131 12 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 12 133 12 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 12 135 2 version char(8) init ("sl_info1"), 12 136 2 arg_list_ptr ptr init (null), 12 137 2 loc, 12 138 3 (mode init (-1), 12 139 severity init ( 1), 12 140 code init ( 0), 12 141 caller init (-1), 12 142 data init ( 0), 12 143 class init ( 0), 12 144 ioa_msg init ( 2)) fixed bin, 12 145 2 flags, 12 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 12 147 3 flags_pad bit(35) unal init ("0"b), 12 148 2 mode fixed bin init ( 1), 12 149 2 severity fixed bin init ( 0), 12 150 2 code fixed bin(35) init ( 0), 12 151 2 caller char(65) varying init (""), 12 152 2 data, 12 153 3 data_ptr ptr init (null), 12 154 3 data_lth fixed bin(21) init ( 0), 12 155 2 class char(10) varying init (""), 12 156 2 ioa_msg char(500) varying init (""); 12 157 12 158 12 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 12 160 12 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 12 162 2 version char(8) init ("sl_info1"), 12 163 2 arg_list_ptr ptr init (null), 12 164 2 loc, 12 165 3 (mode init (-1), 12 166 severity init ( 1), 12 167 code init ( 2), 12 168 caller init (-1), 12 169 data init ( 0), 12 170 class init ( 0), 12 171 ioa_msg init ( 4)) fixed bin, 12 172 2 flags, 12 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 174 3 flags_pad bit(35) unal init ("0"b), 12 175 2 mode fixed bin init ( 1), 12 176 2 severity fixed bin init ( 0), 12 177 2 code fixed bin(35) init ( 0), 12 178 2 caller char(65) varying init (""), 12 179 2 data, 12 180 3 data_ptr ptr init (null), 12 181 3 data_lth fixed bin(21) init ( 0), 12 182 2 class char(10) varying init (""), 12 183 2 ioa_msg char(500) varying init (""); 12 184 12 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 12 186 12 187 dcl 1 sl_info_code_msg aligned int static options(constant), 12 188 2 version char(8) init ("sl_info1"), 12 189 2 arg_list_ptr ptr init (null), 12 190 2 loc, 12 191 3 (mode init (-1), 12 192 severity init (-1), 12 193 code init ( 1), 12 194 caller init (-1), 12 195 data init ( 0), 12 196 class init ( 0), 12 197 ioa_msg init ( 2)) fixed bin, 12 198 2 flags, 12 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 200 3 flags_pad bit(35) unal init ("0"b), 12 201 2 mode fixed bin init ( 1), 12 202 2 severity fixed bin init ( 0), 12 203 2 code fixed bin(35) init ( 0), 12 204 2 caller char(65) varying init (""), 12 205 2 data, 12 206 3 data_ptr ptr init (null), 12 207 3 data_lth fixed bin(21) init ( 0), 12 208 2 class char(10) varying init (""), 12 209 2 ioa_msg char(500) varying init (""); 12 210 12 211 12 212 /* Syntax: call Trace (ioa_ctl, args); */ 12 213 12 214 dcl 1 sl_info_msg aligned int static options(constant), 12 215 2 version char(8) init ("sl_info1"), 12 216 2 arg_list_ptr ptr init (null), 12 217 2 loc, 12 218 3 (mode init (-1), 12 219 severity init (-1), 12 220 code init ( 0), 12 221 caller init (-1), 12 222 data init ( 0), 12 223 class init ( 0), 12 224 ioa_msg init ( 1)) fixed bin, 12 225 2 flags, 12 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 227 3 flags_pad bit(35) unal init ("0"b), 12 228 2 mode fixed bin init ( 1), 12 229 2 severity fixed bin init ( 0), 12 230 2 code fixed bin(35) init ( 0), 12 231 2 caller char(65) varying init (""), 12 232 2 data, 12 233 3 data_ptr ptr init (null), 12 234 3 data_lth fixed bin(21) init ( 0), 12 235 2 class char(10) varying init (""), 12 236 2 ioa_msg char(500) varying init (""); 12 237 12 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 722 723 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 13 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 13 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 13 8* attribute switches. 13 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 13 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 13 12* be deleted. 13 13* B) Add constants identifying attributes that can be changed by user at 13 14* login, etc. 13 15* END HISTORY COMMENTS */ 13 16 13 17 13 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 13 19 13 20 /* format: style4 */ 13 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 13 22 (2 administrator bit (1), /* 1 system administrator privileges */ 13 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 13 24 2 nobump bit (1), /* 2 user cannot be bumped */ 13 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 13 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 13 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 13 28* . of same project (distinct from "nobump") */ 13 29 2 nolist bit (1), /* 7 don't list user on "who" */ 13 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 13 31 2 multip bit (1), /* 9 user may have several processes */ 13 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 13 33 2 brief bit (1), /* 11 no login or logout message */ 13 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 13 35 2 vhomedir bit (1), /* 13 user may change homedir */ 13 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 13 37 2 sb_ok bit (1), /* 15 user may be standby */ 13 38 2 pm_ok bit (1), /* 16 user may be primary */ 13 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 13 40 2 daemon bit (1), /* 18 user may login as daemon */ 13 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 13 42 2 no_warning bit (1), /* 20 no warning message */ 13 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 13 44* . in PDT: this user has an individual load control group */ 13 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 13 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 13 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 13 48 2 pad bit (12)) unaligned; 13 49 13 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 13 51 ("none", /* 0 */ 13 52 "administrator", /* 1 */ 13 53 "primary_line", /* 2 */ 13 54 "nobump", /* 3 */ 13 55 "guaranteed_login", /* 4 */ 13 56 "anonymous", /* 5 */ 13 57 "nopreempt", /* 6 */ 13 58 "nolist", /* 7 */ 13 59 "dialok", /* 8 */ 13 60 "multip", /* 9 */ 13 61 "bumping", /* 10 */ 13 62 "brief", /* 11 */ 13 63 "vinitproc", /* 12 */ 13 64 "vhomedir", /* 13 */ 13 65 "nostartup", /* 14 */ 13 66 "no_secondary", /* 15 */ 13 67 "no_prime", /* 16 */ 13 68 "no_eo", /* 17 */ 13 69 "daemon", /* 18 */ 13 70 "", /* 19 vdim OBSOLETE */ 13 71 "no_warning", /* 20 */ 13 72 "igroup", /* 21 */ 13 73 "save_pdir", /* 22 */ 13 74 "disconnect_ok", /* 23 */ 13 75 "save_on_disconnect"); /* 24 */ 13 76 13 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 13 78 ("null", /* 0 */ 13 79 "admin", /* 1 */ 13 80 "", "", /* 2 - 3 */ 13 81 "guar", /* 4 */ 13 82 "anon", /* 5 */ 13 83 "", "", /* 6 - 7 */ 13 84 "dial", /* 8 */ 13 85 "multi_login", /* 9 */ 13 86 "preempting", /* 10 */ 13 87 "", /* 11 */ 13 88 "v_process_overseer", /* 12 */ 13 89 "v_home_dir", /* 13 */ 13 90 "no_start_up", /* 14 */ 13 91 "no_sec", /* 15 */ 13 92 "no_primary", /* 16 */ 13 93 "no_edit_only", /* 17 */ 13 94 "op_login", /* 18 */ 13 95 "", /* 19 */ 13 96 "nowarn", /* 20 */ 13 97 "", "", "", /* 21 - 23 */ 13 98 "save"); /* 24 */ 13 99 13 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 13 101 options(constant) init("000000000010000000010000000000000000"b); 13 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 13 103 13 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 13 105 options(constant) init("000000000010000000010000000000000000"b); 13 106 /* PDT value for (brief, no_warning) is default */ 13 107 13 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 13 109 options(constant) init("000100000110010000010000000000000000"b); 13 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 13 111 14 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* This include file describes the attributes of an absentee job. It is */ 14 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 14 7 /* and PIT.incl.pl1. */ 14 8 /* */ 14 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 10 14 11 /****^ HISTORY COMMENTS: 14 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 14 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 14* Separated abs_attributes from the request structure 14 15* (abs_message_format.incl.pl1) so that the identical structure could be 14 16* used in the ute structure (user_table_entry.incl.pl1). 14 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 14 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 19* Added ABS_ATTRIBUTE_NAMES array. 14 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 14 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 14 22* Added the no_start_up flag. SCP6367 14 23* END HISTORY COMMENTS */ 14 24 14 25 dcl 1 user_abs_attributes aligned based, 14 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 14 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 14 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 14 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 14 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 14 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 14 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 14 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 14 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 14 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 14 36 2 attributes_pad bit (26) unaligned; 14 37 14 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 14 39 "restartable", 14 40 "user_deferred_until_time", 14 41 "proxy", 14 42 "set_bit_cnt", 14 43 "time_in_gmt", 14 44 "user_deferred_indefinitely", 14 45 "secondary_ok", 14 46 "truncate_absout", 14 47 "restarted", 14 48 "no_start_up"); 14 49 14 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 14 51 13 112 13 113 13 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 723 724 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 15 2 15 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 4 /* */ 15 5 /* This include file requires that the user include */ 15 6 /* user_attributes.incl.pl1 as well. It also includes */ 15 7 /* abs_attributes.incl.pl1 itself. */ 15 8 /* */ 15 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 15 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 15 11 /* */ 15 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 13 15 14 /****^ HISTORY COMMENTS: 15 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 15 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 15 17* This comment for hcom. 15 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 15 19* anstbl.incl.pl1, and dutbl.incl.pl1. 15 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 15 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 15 22* 84-07-12 BIM added min_process_authorization 15 23* 84-12-31 Keith Loepere added pdir_dir_quota 15 24* 85-01-16 by E. Swenson to add ute.session_uid 15 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 15 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 15 27* Added fields for DSA login server support. 15 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 15 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 15 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 15 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 15 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 15 33* Added disconnection_rel_minutes. 15 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 15 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 36* Changed structure under ute.abs_attributes to use like structure in 15 37* abs_attributes.incl.pl1. This allows the same attributes to be used 15 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 15 39* file. 15 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 15 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 15 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 15 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 45* A) Global reorganization to locate things by type of data. 15 46* B) Eliminate ute.uflags.logged_in. 15 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 15 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 49* A) Reduced overlength person and project fields to proper length. 15 50* B) Adjusted dialed-console section to begin on even word boundary. 15 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 15 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 53* Add ute.line_type. 15 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 15 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 15 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 15 57* for the storage. SCP6367 15 58* END HISTORY COMMENTS */ 15 59 15 60 /* format: style4 */ 15 61 15 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 63 /* */ 15 64 /* Each of the named sections below defines a type of data. Typing comes */ 15 65 /* from data associated with the ute entry itself, with the person, with */ 15 66 /* login argument data, from the main user of the data (eg, dialup_, */ 15 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 15 68 /* and is an even number of words long. The total structure is 300 decimal */ 15 69 /* words long. */ 15 70 /* */ 15 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 72 15 73 15 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 15 75 15 76 dcl utep pointer automatic init (null); 15 77 15 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 15 79 15 80 /* Variables which give state of this entry */ 15 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 15 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 15 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 15 84 2 next_free fixed bin, /* points to previous free entry */ 15 85 15 86 /* Information user gave about person_id associated with this entry. */ 15 87 2 person char (24) unal, /* user's name */ 15 88 2 project char (12) unal, /* project of absentee user */ 15 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 15 90 2 tag_pad bit (27) unal, 15 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 15 92 2 login_flags, /* flags for login data */ 15 93 3 cpw bit (1) unal, /* flag for wish to change password */ 15 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 15 95 3 special_pw unal, /* dial or slave */ 15 96 4 dial_pw bit (1) unal, /* true if dial -user */ 15 97 4 slave_pw bit (1) unal, /* true if slave -user */ 15 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 15 99 3 cda bit (1) unal, /* flag to change default authorization */ 15 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 15 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 15 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 15 103 3 pw_pad bit (25) unal, /* spare parts */ 15 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 15 105 /* Must remain last in pw_flags so it does not */ 15 106 /* appear in PW_FLAG_VALUES array below. */ 15 107 2 generated_pw char (8) unal, /* user must type this as new password */ 15 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 15 109 2 process_authorization bit (72), /* access_authorization of this process */ 15 110 15 111 /* Information user gave about process associated with this entry. */ 15 112 2 outer_module char (32) unal, /* Name of console dim */ 15 113 2 home_dir char (64) unal, /* initial home directory */ 15 114 2 init_proc char (64) unal, /* name of login responder */ 15 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 15 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 15 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 15 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 15 119 2 initial_ring fixed bin, /* ring process will be started in */ 15 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 15 121 2 ln_args fixed bin, /* length of string containing arguments */ 15 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 15 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 15 124 15 125 /* Most of the following information is relevant only to absentee processes */ 15 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 15 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 15 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 15 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 15 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 15 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 15 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 15 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 15 134* (but see uflags.adjust_abs_q_no). */ 15 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 15 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 15 137 2 abs_flags, 15 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 15 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 15 140 3 abs_flags_pad bit (34) unal, 15 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 15 142 2 sender char (32) unal, /* name of RJE station that job is from */ 15 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 15 144 2 proxy_project char (9) unal, 15 145 2 proxy_project_pad char (3) unal, 15 146 2 abs_pad fixed bin, 15 147 15 148 /* Information about process actually created */ 15 149 2 proc_id bit (36), /* process id of absentee process */ 15 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 15 151 2 process_authorization_range (2) bit (72) aligned, 15 152 2 audit bit (36), /* audit flags for user */ 15 153 2 lot_size fixed bin, /* Size of linkage offset table */ 15 154 2 kst_size fixed bin, /* Size of process known segment table */ 15 155 2 cls_size fixed bin, /* Size of process combined linkage */ 15 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 15 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 15 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 15 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 15 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 15 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 15 162 2 pdir_pad fixed bin(17) unal, 15 163 2 process_pad fixed bin, 15 164 15 165 /* Information about primary terminal associated with this entry */ 15 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 15 167 2 terminal_type char (32) unaligned, /* terminal type */ 15 168 2 line_type fixed bin, /* line type */ 15 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 15 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 15 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 15 172 15 173 /* Variables useful for dialed terminals */ 15 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 15 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 15 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 15 177 2 dial_server_flags, 15 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 15 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 15 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 15 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 15 182 15 183 /* Information about usage/accounting. Device usage meters are in a 15 184* separate segment, "devtab" */ 15 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 15 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 15 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 15 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 15 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 15 190 2 last_update_time fixed bin (71), /* time of last account update */ 15 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 15 192 2 ndevices fixed bin, /* Count of attached devices */ 15 193 2 device_head fixed bin, /* Table index of head of device chain */ 15 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 15 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 15 196 2 rs_number_pad bit(30) unal, 15 197 2 usage_pad fixed bin, 15 198 15 199 /* Information for dialup_ (control variables). */ 15 200 2 event fixed bin (71), /* event associated with channel or user manager */ 15 201 2 uprojp ptr, /* ptr to user project sat entry */ 15 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 15 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 15 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 15 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 15 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 15 207 2 count fixed bin, /* counter for logins and dialups */ 15 208 2 n_processes fixed bin, /* number of processes created in this session */ 15 209 2 lock_value fixed bin, /* number of locks set for this entry */ 15 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 15 211 2 login_code char (8) unal, /* login command from LOGIN line */ 15 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 15 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 15 214 2 logout_type char (4) unal, /* type of logout */ 15 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 15 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 15 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 15 218 2 work_class fixed bin, /* work class used by priority scheduler */ 15 219 2 group char (8) unal, /* party group identifier */ 15 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 15 221 15 222 2 uflags, /* Miscellaneous flags */ 15 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 15 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 15 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 15 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 15 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 15 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 15 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 15 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 15 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 15 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 15 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 15 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 15 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 15 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 15 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 15 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 15 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 15 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 15 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 15 242 3 uflags_pad bit (17) unal, 15 243 15 244 /* Information used by load_ctl_ for the process */ 15 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 15 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 15 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 15 248 15 249 15 250 /* Information for login server */ 15 251 2 login_server_info, 15 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 15 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 15 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 15 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 15 256 3 process_id bit (36) aligned, /* process_id of login server */ 15 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 15 258 15 259 /* values for ute.process_type */ 15 260 15 261 dcl (PT_INTERACTIVE initial (1), 15 262 PT_ABSENTEE initial (2), 15 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 15 264 15 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 15 266 "INVALID-TYPE", 15 267 "interactive", 15 268 "absentee", 15 269 "daemon"); 15 270 15 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 15 272 "UNKNOWN-TABLE", 15 273 "answer_table", 15 274 "absentee_user_table", 15 275 "daemon_user_table"); 15 276 15 277 15 278 /* values for ute.pw_flags.mask_ctl */ 15 279 15 280 dcl (DO_MASK init ("00"b), 15 281 DONT_MASK init ("01"b), 15 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 15 283 15 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 15 285 "do_mask", "dont_mask", "derive_mask", ""); 15 286 15 287 15 288 /* names for ute.pw_flags */ 15 289 15 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 15 291 "cpw", 15 292 "generate_pw", 15 293 "dial_pw", 15 294 "slave_pw", 15 295 "cdp", 15 296 "cda", 15 297 "auth_given", 15 298 "noprint", 15 299 "operator"); 15 300 15 301 /* names for ute.uflags */ 15 302 15 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 15 304 "dont_call_init_admin", 15 305 "ip_given", 15 306 "ss_given", 15 307 "lvs_attached", 15 308 "send_initial_string", 15 309 "adjust_abs_q_no", 15 310 "foreground_secondary_ok", 15 311 "foreground_job", 15 312 "sus_sent", 15 313 "suspended", 15 314 "ignore_cpulimit", 15 315 "deferral_logged", 15 316 "save_if_disconnected", 15 317 "disconnected", 15 318 "disconnected_list", 15 319 "proc_create_ok", 15 320 "activity_can_unbump", 15 321 "fpe_causes_logout", 15 322 "user_specified_immediate"); 15 323 15 324 /* names for ute.abs_flags */ 15 325 15 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 15 327 "abs_run", 15 328 "notify"); 15 329 15 330 /* names of ute.dial_server_flags */ 15 331 15 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 15 333 "registered", 15 334 "privileged"); 15 335 15 336 /* values of ute.login_result */ 15 337 15 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 15 339 "logged in", 15 340 "login failed, hangup", 15 341 "login failed, try again"); 15 342 15 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 724 725 /* format: on */ 726 727 end as_access_audit_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.1 as_access_audit_.pl1 >special_ldd>install>MR12.2-1061>as_access_audit_.pl1 713 1 05/17/85 0615.5 access_audit_binary_def.incl.pl1 >ldd>include>access_audit_binary_def.incl.pl1 714 2 02/12/85 1429.5 access_audit_bin_header.incl.pl1 >ldd>include>access_audit_bin_header.incl.pl1 715 3 01/30/85 1523.9 access_audit_eventflags.incl.pl1 >ldd>include>access_audit_eventflags.incl.pl1 716 4 08/06/87 0913.4 as_audit_structures.incl.pl1 >ldd>include>as_audit_structures.incl.pl1 717 5 10/30/86 2010.5 as_request_header.incl.pl1 >ldd>include>as_request_header.incl.pl1 718 6 10/30/86 2010.5 as_request_sender_.incl.pl1 >ldd>include>as_request_sender_.incl.pl1 719 7 08/06/87 0913.4 asr_com_channel_info.incl.pl1 >ldd>include>asr_com_channel_info.incl.pl1 720 8 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 8-10 9 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 721 10 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 10-314 11 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 722 12 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 723 13 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 13-112 14 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 724 15 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.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. AAB_channel constant fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ref 307 AAB_dial_service constant fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ref 440 AAB_ia_abs constant fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ref 545 AAB_ia_abs_proxy constant fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ref 542 AAB_ia_int_dmn constant fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ref 546 ACAR 000100 automatic structure level 1 dcl 91 set ref 394 394 394 394 ACCESS_AUDIT_HEADER_VERSION_3 constant fixed bin(9,0) initial unsigned dcl 2-54 ref 465 618 ADAR 000166 automatic structure level 1 dcl 92 set ref 447 447 447 447 ARH 000223 automatic structure level 1 dcl 93 set ref 199 199 232 232 232 232 247 247 250 250 250 250 ARHP 000247 automatic structure level 1 dcl 94 set ref 509 509 509 509 ARH_TYPE_NO_PROXY constant fixed bin(17,0) initial dcl 2-52 ref 617 ARH_TYPE_PROXY constant fixed bin(17,0) initial dcl 2-50 ref 464 ASIAAR 000313 automatic structure level 1 dcl 95 set ref 538* 576 576 AS_AUDIT_CHANNEL_ACTIONS 000041 constant char(12) initial array packed unaligned dcl 4-193 set ref 394* AS_AUDIT_CHANNEL_ATTACH constant fixed bin(17,0) initial dcl 4-175 ref 277 292 AS_AUDIT_CHANNEL_DETACH constant fixed bin(17,0) initial dcl 4-175 ref 277 294 AS_AUDIT_CHANNEL_DIALIN constant fixed bin(17,0) initial dcl 4-175 ref 277 296 AS_AUDIT_CHANNEL_DIALOUT constant fixed bin(17,0) initial dcl 4-175 ref 277 298 AS_AUDIT_CHANNEL_DIAL_SYSTEM constant fixed bin(17,0) initial dcl 4-175 ref 277 300 AS_AUDIT_CHANNEL_DIRECTION 000034 constant char(4) initial array packed unaligned dcl 4-196 set ref 394* AS_AUDIT_CHANNEL_SERVICE_INFO 000015 constant char(12) initial array packed unaligned dcl 4-199 set ref 394* AS_AUDIT_DATA_CLASS 000102 constant varying char(16) initial dcl 150 set ref 232* 250* 394* 447* 509* 576* 601* AS_AUDIT_DIALID_START constant fixed bin(17,0) initial dcl 4-188 ref 423 434 447 AS_AUDIT_DIALID_STOP constant fixed bin(17,0) initial dcl 4-188 ref 423 AS_AUDIT_PROCESS_ACTIONS 000000 constant char(10) initial array packed unaligned dcl 4-202 set ref 232* AS_AUDIT_PROCESS_CONNECT constant fixed bin(17,0) initial dcl 4-162 ref 186 205 AS_AUDIT_PROCESS_CREATE constant fixed bin(17,0) initial dcl 4-162 ref 186 201 213 AS_AUDIT_PROCESS_DESTROY constant fixed bin(17,0) initial dcl 4-162 ref 186 203 220 AS_AUDIT_PROCESS_DISCONNECT constant fixed bin(17,0) initial dcl 4-162 ref 186 207 AS_AUDIT_PROCESS_TERMINATE constant fixed bin(17,0) initial dcl 4-162 ref 186 210 AS_AUDIT_RECORD_CHN_VERSION_1 constant fixed bin(9,0) initial dcl 4-156 ref 308 AS_AUDIT_RECORD_DIALID_VERSION_1 constant fixed bin(9,0) initial dcl 4-159 ref 441 AS_AUDIT_RECORD_IA_VERSION_1 constant fixed bin(9,0) initial dcl 4-153 ref 548 DENIED constant bit(1) initial dcl 152 set ref 181 247* 272 418 GRANTED constant bit(1) initial dcl 152 set ref 184 275 421 597* ME 000072 constant char(32) initial packed unaligned dcl 156 set ref 192* 283* 425* 690* MILLION 000071 constant fixed bin(35,0) initial dcl 158 ref 589 PROCESS_TYPES 000065 constant char(3) initial array packed unaligned dcl 160 ref 562 593 PT_ABSENTEE constant fixed bin(17,0) initial dcl 15-261 ref 542 563 576 594 P_action parameter fixed bin(17,0) dcl 74 ref 173 177 259 266 409 413 P_added_info parameter char packed unaligned dcl 75 ref 173 230 240 245 259 268 409 414 531 535 584 588 P_ahrp parameter pointer dcl 612 ref 609 616 P_asrccip parameter pointer dcl 76 ref 684 688 P_asrsp parameter pointer dcl 77 ref 456 460 517 520 671 674 684 687 699 702 P_cdtep parameter pointer dcl 78 ref 259 263 P_channel_audit_info_ptr parameter pointer dcl 79 ref 259 267 P_code parameter fixed bin(35,0) dcl 80 set ref 671 676* 676 676 684 690* 690 699 704* 704 P_dial_server_info_ptr parameter pointer dcl 81 ref 409 415 P_dial_utep parameter pointer dcl 82 ref 259 264 P_failed parameter bit(1) dcl 83 ref 456 462 P_grant_sw parameter bit(1) dcl 613 ref 609 629 P_name parameter char packed unaligned dcl 84 set ref 671 676* 684 699 704* P_pathname parameter char packed unaligned dcl 658 set ref 652 664* P_request_id parameter fixed bin(71,0) dcl 85 ref 456 461 P_target_process_utep parameter pointer dcl 86 ref 240 244 P_utep parameter pointer dcl 87 ref 173 176 240 243 259 265 409 412 456 459 531 534 584 587 QNAME 000060 constant char(4) initial array packed unaligned dcl 163 ref 565 594 SL_LOG 000155 constant fixed bin(17,0) initial dcl 12-14 set ref 283* 572 601* 690* SL_LOG_SILENT 000151 constant fixed bin(17,0) initial dcl 12-14 set ref 192* 232* 250* 394* 425* 447* 509* 526* 574 676* 704* abs_attributes 247 based structure level 2 dcl 15-78 absentee_input_path 50 000313 automatic char(168) level 2 dcl 95 set ref 557* access_class 12 based bit(72) array level 2 in structure "cdte" dcl 10-72 in procedure "as_access_audit_" ref 361 access_class 21 based bit(72) level 2 in structure "channel_audit_info" dcl 4-138 in procedure "as_access_audit_" ref 336 377 access_class 10(01) based bit(1) level 3 in structure "channel_audit_info" packed packed unaligned dcl 4-138 in procedure "as_access_audit_" ref 332 336 377 access_class_range 41 000100 automatic bit(72) array level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 340* 343* 361* 381* 384* access_class_range 10(02) based bit(1) level 3 in structure "channel_audit_info" packed packed unaligned dcl 4-138 in procedure "as_access_audit_" ref 340 381 access_class_range 23 based bit(72) array level 2 in structure "channel_audit_info" dcl 4-138 in procedure "as_access_audit_" ref 340 381 access_operations_$abs_command_cancel 000016 external static bit(36) dcl 127 ref 468 access_operations_$abs_command_login 000020 external static bit(36) dcl 127 ref 522 access_operations_$channel_attach 000022 external static bit(36) dcl 127 ref 292 access_operations_$channel_detach 000024 external static bit(36) dcl 127 ref 294 access_operations_$dial_system 000026 external static bit(36) dcl 127 ref 300 access_operations_$dialid_start 000030 external static bit(36) dcl 127 ref 434 access_operations_$dialid_stop 000032 external static bit(36) dcl 127 ref 436 access_operations_$dialin 000034 external static bit(36) dcl 127 ref 296 access_operations_$dialout 000036 external static bit(36) dcl 127 ref 298 access_operations_$process_connect 000040 external static bit(36) dcl 127 ref 205 248 access_operations_$process_create 000042 external static bit(36) dcl 127 ref 201 access_operations_$process_destroy 000044 external static bit(36) dcl 127 ref 203 access_operations_$process_disconnect 000046 external static bit(36) dcl 127 ref 207 access_operations_$process_terminate 000050 external static bit(36) dcl 127 ref 210 access_operations_$user_login 000052 external static bit(36) dcl 127 ref 540 access_operations_$user_logout 000054 external static bit(36) dcl 127 ref 599 action 000445 automatic fixed bin(17,0) dcl 96 set ref 177* 179 182* 182 186 186 186 186 186 192* 201 203 205 207 210 213 220 232 266* 270 273* 273 277 277 277 277 277 283* 292 294 296 298 300 394 394 394 413* 416 419* 419 423 423 425* 434 447 added_info 000446 automatic char(128) packed unaligned dcl 97 set ref 215* 218* 222* 223 223 223* 225 225* 227 227* 230* 232 232* 245* 250* 268* 394 394* 414* 447 447* 535* 576 576* 588* 601* addr builtin function dcl 168 ref 199 199 232 232 247 247 250 250 290 290 394 394 432 432 447 447 509 509 539 539 576 576 597 597 601 601 after builtin function dcl 168 ref 494 496 496 667 anonymous 16 based fixed bin(17,0) level 2 in structure "ute" dcl 15-78 in procedure "as_access_audit_" ref 232 250 394 447 483 509 576 601 641 anonymous 14(03) based bit(1) level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 641* anonymous 14(03) 000247 automatic bit(1) array level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 483* 499* 509* anonymous 16 based fixed bin(17,0) level 2 in structure "target_ute" dcl 115 in procedure "as_access_audit_" ref 250 answerback 47 000313 automatic char(4) level 3 dcl 95 set ref 556* arh_header_ based structure level 1 dcl 2-26 arh_user_info_ based structure level 1 dcl 2-39 as_channel_audit_record based structure level 1 dcl 4-68 as_channel_audit_record_ based structure level 1 dcl 4-74 as_dial_service_audit_record based structure level 1 dcl 4-100 as_dial_service_audit_record_ based structure level 1 dcl 4-105 as_ia_audit_record_ based structure level 1 dcl 4-52 as_ia_audit_record_abs based structure level 1 dcl 4-34 ref 568 as_ia_audit_record_abs_proxy based structure level 1 dcl 4-41 ref 566 as_ia_audit_record_int_dmn based structure level 1 dcl 4-27 ref 570 as_request_header based structure level 1 dcl 5-62 as_request_sender based structure level 1 dcl 6-15 as_request_sender_ptr 000532 automatic pointer dcl 6-13 set ref 460* 493 494 496 498 502 503 504 506 509 520* 526 526 674* 676 676 687* 690 702* 704 asr_com_channel_info based structure level 1 dcl 7-17 asr_com_channel_info_ptr 000534 automatic pointer dcl 7-16 set ref 688* 690 at 100 based structure level 2 dcl 15-78 ref 552 attributes 25 000313 automatic structure level 3 dcl 95 set ref 552* audit 304 based bit(36) level 2 dcl 15-78 ref 553 audit_event_flags based structure level 1 dcl 3-5 audit_flags 26 000313 automatic bit(36) level 3 dcl 95 set ref 553* audit_record_header based structure level 1 dcl 2-18 set ref 601 601 audit_record_header_proxy based structure level 1 dcl 2-22 audit_record_ptr automatic pointer dcl 2-16 ref 601 601 audit_record_size 000506 automatic fixed bin(17,0) dcl 98 set ref 566* 568* 570* 576* authenticated_user 56 000100 automatic structure level 3 dcl 91 author based structure level 2 dcl 8-9 author_dcl based structure level 1 dcl 8-9 authorization 16 based bit(72) level 3 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" set ref 644* authorization 16 based bit(72) level 2 in structure "as_request_sender" dcl 6-15 in procedure "as_access_audit_" ref 503 504 authorization 16 000247 automatic bit(72) array level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 486* 503* authorization_range 20 based bit(72) array level 3 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" set ref 646* authorization_range 20 000247 automatic bit(72) array level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 487* 489* 504* 506* before builtin function dcl 168 ref 493 494 cdte based structure level 1 dcl 10-72 cdtep 000536 automatic pointer dcl 10-41 set ref 263* 329 353 356 359 360 361 362 363 364 365 366 channel 27 000313 automatic char(32) level 3 dcl 95 set ref 554* channel_audit_info based structure level 1 dcl 4-138 channel_audit_info_ptr 000530 automatic pointer dcl 4-136 set ref 267* 303 303 332 335 336 336 340 340 377 377 381 381 394 394 channel_info_valid 24(18) 000100 automatic bit(1) level 4 packed packed unaligned dcl 91 set ref 331* 355* 373* channel_name based char(32) level 2 in structure "channel_audit_info" dcl 4-138 in procedure "as_access_audit_" ref 335 channel_name 25 000100 automatic char(32) level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 335* 359* 376* 394* channel_name 6 based char(32) level 2 in structure "asr_com_channel_info" packed packed unaligned dcl 7-17 in procedure "as_access_audit_" set ref 690* channel_threads based structure level 1 dcl 10-249 code 000162 automatic fixed bin(35,0) dcl 661 set ref 664* 665 cpu_usage 360 based fixed bin(71,0) level 2 dcl 15-78 ref 589 current_access_class 35 000100 automatic bit(72) array level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 336* 339* 343 360* 377* 380* 384 current_access_class 114 based bit(72) array level 2 in structure "cdte" dcl 10-72 in procedure "as_access_audit_" ref 360 current_access_class_valid 75(28) based bit(1) level 3 in structure "cdte" packed packed unaligned dcl 10-72 in procedure "as_access_audit_" ref 356 current_access_class_valid 24(19) 000100 automatic bit(1) level 4 in structure "ACAR" packed packed unaligned dcl 91 in procedure "as_access_audit_" set ref 332* 356* 374* current_service_type 45 000100 automatic fixed bin(17,0) level 3 in structure "ACAR" packed packed unaligned dcl 91 in procedure "as_access_audit_" set ref 345* 362* 386* current_service_type 74 based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 10-72 in procedure "as_access_audit_" ref 362 current_terminal_type 101 based char(32) level 2 packed packed unaligned dcl 10-72 ref 364 dial_qualifier 25 000166 automatic char(32) level 3 in structure "ADAR" dcl 92 in procedure "as_access_audit_" set ref 445* dial_qualifier 2 based char(32) level 2 in structure "dial_server_info" dcl 4-124 in procedure "as_access_audit_" set ref 445 447* dial_server_info based structure level 1 dcl 4-124 dial_server_info_ptr 000526 automatic pointer dcl 4-122 set ref 415* 438 442 443 444 445 447 dial_server_ring 24(18) 000166 automatic fixed bin(3,0) level 3 packed packed unsigned unaligned dcl 92 set ref 442* dial_ute based structure level 1 dcl 113 dial_utep 000510 automatic pointer dcl 99 set ref 264* 329 370 376 388 389 390 dialup_flags 75(18) based structure level 2 packed packed unaligned dcl 10-72 dirname 000100 automatic char(168) packed unaligned dcl 659 set ref 664* divide builtin function dcl 168 ref 589 590 entryname 000152 automatic char(32) packed unaligned dcl 660 set ref 664* 667 error_table_$action_not_performed 000056 external static fixed bin(35,0) dcl 145 set ref 192* 283* 425* event_flags 2 based bit(36) level 3 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" set ref 630* event_flags 2 000247 automatic bit(36) level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 472* event_flags 000512 automatic structure level 1 dcl 100 in procedure "as_access_audit_" set ref 469* 472 627* 630 expand_pathname_ 000060 constant entry external dcl 662 ref 664 flags 0(04) based structure level 2 in structure "dial_server_info" packed packed unaligned dcl 4-124 in procedure "as_access_audit_" flags 0(18) 000247 automatic structure level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 466* flags 24(18) 000100 automatic structure level 3 in structure "ACAR" packed packed unaligned dcl 91 in procedure "as_access_audit_" flags 0(18) based structure level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 620* flags 24(21) 000166 automatic structure level 3 in structure "ADAR" packed packed unaligned dcl 92 in procedure "as_access_audit_" fnpe based structure level 1 dcl 10-200 grant 0(01) 000512 automatic bit(1) level 2 packed packed unaligned dcl 100 set ref 471* 629* grant_sw 000513 automatic bit(1) dcl 101 set ref 181* 184* 199* 232 272* 275* 290* 394 418* 421* 432* 447 462* 471 509 536* 539* 572 576 group_id 4 based char(32) level 2 packed packed unaligned dcl 6-15 set ref 493 494 496 509* 526* 676* 690* 704* header 000100 automatic structure level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" header 000247 automatic structure level 2 in structure "ARHP" dcl 94 in procedure "as_access_audit_" header based structure level 2 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" header 000166 automatic structure level 3 in structure "ADAR" dcl 92 in procedure "as_access_audit_" header 000313 automatic structure level 3 in structure "ASIAAR" dcl 95 in procedure "as_access_audit_" header 000166 automatic structure level 2 in structure "ADAR" dcl 92 in procedure "as_access_audit_" set ref 432 432 header 000100 automatic structure level 2 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 290 290 header 000313 automatic structure level 2 in structure "ASIAAR" dcl 95 in procedure "as_access_audit_" set ref 539 539 597 597 601 601 header 000223 automatic structure level 2 in structure "ARH" dcl 93 in procedure "as_access_audit_" highest_ring 312(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 15-78 ref 551 initial_ring 101 based fixed bin(17,0) level 2 dcl 15-78 ref 482 639 input_seg 110 based char(168) level 2 packed packed unaligned dcl 15-78 set ref 557 576* length builtin function dcl 168 ref 477 479 632 635 login_result 415 based fixed bin(17,0) level 2 dcl 15-78 ref 536 logout_type 422 based char(4) level 2 packed packed unaligned dcl 15-78 ref 215 215 222 lowest_ring 312 based fixed bin(17,0) level 2 packed packed unaligned dcl 15-78 ref 550 max_authorization 20 based bit(72) level 2 dcl 6-15 ref 506 max_ring 24(24) 000313 automatic fixed bin(3,0) level 3 packed packed unsigned unaligned dcl 95 set ref 551* min_ring 24(21) 000313 automatic fixed bin(3,0) level 3 packed packed unsigned unaligned dcl 95 set ref 550* mins 000514 automatic fixed bin(35,0) dcl 102 set ref 590* 601* mod builtin function dcl 168 ref 591 mpxe based structure level 1 dcl 10-221 name 2 based char(32) level 2 dcl 10-72 ref 359 null builtin function dcl 168 ref 329 329 353 370 15-76 operation 000515 automatic bit(36) dcl 103 set ref 522* operation_code 1 000166 automatic bit(36) level 4 in structure "ADAR" dcl 92 in procedure "as_access_audit_" set ref 434* 436* operation_code 1 000100 automatic bit(36) level 4 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 292* 294* 296* 298* 300* operation_code 1 000313 automatic bit(36) level 4 in structure "ASIAAR" dcl 95 in procedure "as_access_audit_" set ref 540* 599* operation_code 1 000247 automatic bit(36) level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 468* operation_code 1 000223 automatic bit(36) level 3 in structure "ARH" dcl 93 in procedure "as_access_audit_" set ref 201* 203* 205* 207* 210* 248* p 000566 automatic pointer dcl 614 set ref 616* 617 618 620 621 630 631 632 632 635 635 638 639 641 642 643 644 646 pad1 24(20) 000100 automatic bit(16) level 4 packed packed unaligned dcl 91 set ref 334* 358* 375* pad2 65(27) 000100 automatic bit(9) level 4 packed packed unaligned dcl 91 set ref 350* 368* 391* pad3 14(04) based bit(32) level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 642* pad3 14(04) 000247 automatic bit(32) array level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 484* 501* person 4 based char(24) level 2 in structure "dial_ute" packed packed unaligned dcl 113 in procedure "as_access_audit_" ref 389 person 4 based char(22) level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 632* 632 person 137 based char(20) level 3 in structure "cdte" packed packed unaligned dcl 10-72 in procedure "as_access_audit_" ref 365 person 4 000247 automatic char(22) array level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 477* 477 493* 499 person 4 based char(24) level 2 in structure "ute" packed packed unaligned dcl 15-78 in procedure "as_access_audit_" set ref 232* 250* 250* 394* 447* 477 509* 576* 601* 632 personid 56 000100 automatic char(22) level 4 packed packed unaligned dcl 91 set ref 348* 365* 389* 394 394* privileged 0(05) based bit(1) level 3 packed packed unaligned dcl 4-124 ref 444 privileged_server 24(22) 000166 automatic bit(1) level 4 packed packed unaligned dcl 92 set ref 444* proc_id 276 based bit(36) level 2 in structure "target_ute" dcl 115 in procedure "as_access_audit_" set ref 250* proc_id 276 based bit(36) level 2 in structure "ute" dcl 15-78 in procedure "as_access_audit_" set ref 232* 394* 447* 485 509* 643 proc_type 000517 automatic char(4) packed unaligned dcl 105 set ref 562* 565* 576* 593* 594* 601* process_authorization 24 based bit(72) level 2 dcl 15-78 ref 486 644 process_authorization_range 300 based bit(72) array level 2 dcl 15-78 ref 487 489 646 process_id 15 based bit(36) level 3 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" set ref 643* process_id 14 based bit(36) level 2 in structure "as_request_sender" dcl 6-15 in procedure "as_access_audit_" ref 502 process_id 15 000247 automatic bit(36) array level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 485* 502* process_type 1 based fixed bin(17,0) level 2 in structure "ute" dcl 15-78 in procedure "as_access_audit_" ref 542 549 562 563 576 593 594 process_type 24(18) 000313 automatic fixed bin(3,0) level 3 in structure "ASIAAR" packed packed unsigned unaligned dcl 95 in procedure "as_access_audit_" set ref 549* project 12 based char(12) level 2 in structure "dial_ute" packed packed unaligned dcl 113 in procedure "as_access_audit_" ref 390 project 11(18) 000247 automatic char(9) array level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 479* 479 494* project 12 based char(12) level 2 in structure "ute" packed packed unaligned dcl 15-78 in procedure "as_access_audit_" set ref 232* 250* 394* 447* 479 509* 576* 601* 635 project 144 based char(9) level 3 in structure "cdte" packed packed unaligned dcl 10-72 in procedure "as_access_audit_" ref 366 project 11(18) based char(9) level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 635* 635 project 12 based char(12) level 2 in structure "target_ute" packed packed unaligned dcl 115 in procedure "as_access_audit_" set ref 250* projectid 63(18) 000100 automatic char(9) level 4 packed packed unaligned dcl 91 set ref 349* 366* 390* 394* proxy 247(02) based bit(1) level 3 packed packed unaligned dcl 15-78 ref 542 566 proxy_person 263 based char(28) level 2 packed packed unaligned dcl 15-78 ref 559 proxy_project 272 based char(9) level 2 packed packed unaligned dcl 15-78 ref 559 proxy_user 122 000313 automatic char(32) level 2 dcl 95 set ref 559* queue 245 based fixed bin(17,0) level 2 dcl 15-78 ref 565 594 record 24 000100 automatic structure level 2 in structure "ACAR" dcl 91 in procedure "as_access_audit_" record 24 000166 automatic structure level 2 in structure "ADAR" dcl 92 in procedure "as_access_audit_" record 24 000313 automatic structure level 2 in structure "ASIAAR" dcl 95 in procedure "as_access_audit_" registered 0(04) based bit(1) level 3 packed packed unaligned dcl 4-124 ref 443 registered_server 24(21) 000166 automatic bit(1) level 4 packed packed unaligned dcl 92 set ref 443* request_id 000520 automatic fixed bin(71,0) dcl 106 set ref 461* reverse builtin function dcl 168 ref 667 667 ring 14 000100 automatic fixed bin(3,0) level 4 in structure "ACAR" packed packed unsigned unaligned dcl 91 in procedure "as_access_audit_" set ref 303* 306* ring 14 000247 automatic fixed bin(3,0) array level 3 in structure "ARHP" packed packed unsigned unaligned dcl 94 in procedure "as_access_audit_" set ref 482* 498* ring 14 based fixed bin(3,0) level 3 in structure "audit_record_header" packed packed unsigned unaligned dcl 2-18 in procedure "as_access_audit_" set ref 639* ring 14 000166 automatic fixed bin(3,0) level 4 in structure "ADAR" packed packed unsigned unaligned dcl 92 in procedure "as_access_audit_" set ref 438* rtrim builtin function dcl 168 ref 389 390 559 secs 000516 automatic fixed bin(35,0) dcl 104 set ref 589* 590 591* 591 601* server_ring based fixed bin(3,0) level 2 packed packed unaligned dcl 4-124 ref 438 442 service_info 10 based bit(1) level 3 in structure "channel_audit_info" packed packed unaligned dcl 4-138 in procedure "as_access_audit_" set ref 394* service_info 11 based char(32) level 2 in structure "channel_audit_info" dcl 4-138 in procedure "as_access_audit_" set ref 394* service_type 32(18) based fixed bin(17,0) level 2 in structure "cdte" packed packed unaligned dcl 10-72 in procedure "as_access_audit_" ref 363 service_type 45(18) 000100 automatic fixed bin(17,0) level 3 in structure "ACAR" packed packed unaligned dcl 91 in procedure "as_access_audit_" set ref 346* 363* 387* session_cost 370 based float bin(27) level 2 dcl 15-78 set ref 601* session_uid 277 based fixed bin(35,0) level 2 in structure "ute" dcl 15-78 in procedure "as_access_audit_" ref 473 631 session_uid 3 000247 automatic fixed bin(35,0) level 3 in structure "ARHP" dcl 94 in procedure "as_access_audit_" set ref 473* session_uid 3 based fixed bin(35,0) level 3 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" set ref 631* severity 000522 automatic fixed bin(17,0) dcl 107 set ref 572* 574* 576* size builtin function dcl 168 ref 232 232 250 250 394 394 447 447 509 509 566 568 570 601 601 special_op 000512 automatic bit(1) level 2 packed packed unaligned dcl 100 set ref 470* 628* string builtin function dcl 168 set ref 466* 620* subject 4 000166 automatic structure level 3 in structure "ADAR" dcl 92 in procedure "as_access_audit_" subject 4 000100 automatic structure level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" subject 4 based structure level 2 in structure "audit_record_header" dcl 2-18 in procedure "as_access_audit_" subject_is_process 0(18) 000247 automatic bit(1) level 4 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 467* subject_is_process 0(18) based bit(1) level 4 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 621* subjects 4 000247 automatic structure array level 2 dcl 94 substr builtin function dcl 168 ref 215 223 477 479 632 635 sys_log_ 000010 constant entry external dcl 120 ref 526 sys_log_$binary 000012 constant entry external dcl 121 ref 232 250 394 447 509 576 601 sys_log_$error_log 000014 constant entry external dcl 122 ref 192 283 425 676 690 704 tag 15 based char(1) level 2 in structure "target_ute" packed packed unaligned dcl 115 in procedure "as_access_audit_" set ref 250* tag 15 based char(1) level 2 in structure "ute" packed packed unaligned dcl 15-78 in procedure "as_access_audit_" set ref 232* 394* 447* 481 509* 601 601* 638 tag 13(27) 000247 automatic char(1) array level 3 in structure "ARHP" packed packed unaligned dcl 94 in procedure "as_access_audit_" set ref 481* 496* tag 13(27) based char(1) level 3 in structure "audit_record_header" packed packed unaligned dcl 2-18 in procedure "as_access_audit_" set ref 638* target_ute based structure level 1 dcl 115 target_utep 000524 automatic pointer dcl 108 set ref 244* 250 250 250 250 250 terminal_type 326 based char(32) level 2 in structure "dial_ute" packed packed unaligned dcl 113 in procedure "as_access_audit_" ref 388 terminal_type 46 000100 automatic char(32) level 3 in structure "ACAR" dcl 91 in procedure "as_access_audit_" set ref 347* 364* 388* terminal_type 37 000313 automatic char(32) level 3 in structure "ASIAAR" dcl 95 in procedure "as_access_audit_" set ref 555* terminal_type 326 based char(32) level 2 in structure "ute" packed packed unaligned dcl 15-78 in procedure "as_access_audit_" ref 555 tty_id_code 337 based char(4) level 2 packed packed unaligned dcl 15-78 ref 556 tty_name 316 based char(32) level 2 in structure "ute" packed packed unaligned dcl 15-78 in procedure "as_access_audit_" set ref 232* 250* 509* 554 576* 601* tty_name 316 based char(32) level 2 in structure "dial_ute" packed packed unaligned dcl 113 in procedure "as_access_audit_" ref 376 type based fixed bin(9,0) level 3 in structure "audit_record_header" packed packed unsigned unaligned dcl 2-18 in procedure "as_access_audit_" set ref 617* type 24 000100 automatic fixed bin(9,0) level 3 in structure "ACAR" packed packed unsigned unaligned dcl 91 in procedure "as_access_audit_" set ref 307* type 24 000166 automatic fixed bin(9,0) level 3 in structure "ADAR" packed packed unsigned unaligned dcl 92 in procedure "as_access_audit_" set ref 440* type 000247 automatic fixed bin(9,0) level 3 in structure "ARHP" packed packed unsigned unaligned dcl 94 in procedure "as_access_audit_" set ref 464* type 24 000313 automatic fixed bin(9,0) level 3 in structure "ASIAAR" packed packed unsigned unaligned dcl 95 in procedure "as_access_audit_" set ref 542* 545* 546* unspec builtin function dcl 168 set ref 469* 472 538* 627* 630 user_abs_attributes based structure level 1 dcl 14-25 user_attributes based structure level 1 dcl 13-21 user_name 137 based structure level 2 packed packed unaligned dcl 10-72 user_validation_level 27 based fixed bin(3,0) level 2 in structure "channel_audit_info" dcl 4-138 in procedure "as_access_audit_" ref 303 user_validation_level 10(03) based bit(1) level 3 in structure "channel_audit_info" packed packed unaligned dcl 4-138 in procedure "as_access_audit_" ref 303 ute based structure level 1 dcl 15-78 utep 000540 automatic pointer initial dcl 15-76 set ref 176* 215 215 222 232 232 232 232 232 232 243* 250 250 250 250 265* 394 394 394 394 394 412* 447 447 447 447 447 459* 473 477 479 481 482 483 485 486 487 489 509 509 509 509 509 509 534* 536 542 542 549 550 551 552 553 554 555 556 557 559 559 562 563 565 566 576 576 576 576 576 576 587* 589 593 594 594 601 601 601 601 601 601 601 15-76* 631 632 635 638 639 641 643 644 646 valid 10 based structure level 2 dcl 4-138 validation_level 15 based fixed bin(3,0) level 2 dcl 6-15 set ref 498 526* 676* version 24(09) 000166 automatic fixed bin(9,0) level 3 in structure "ADAR" packed packed unsigned unaligned dcl 92 in procedure "as_access_audit_" set ref 441* version 0(09) 000247 automatic fixed bin(9,0) level 3 in structure "ARHP" packed packed unsigned unaligned dcl 94 in procedure "as_access_audit_" set ref 465* version 24(09) 000313 automatic fixed bin(9,0) level 3 in structure "ASIAAR" packed packed unsigned unaligned dcl 95 in procedure "as_access_audit_" set ref 548* version 24(09) 000100 automatic fixed bin(9,0) level 3 in structure "ACAR" packed packed unsigned unaligned dcl 91 in procedure "as_access_audit_" set ref 308* version 0(09) based fixed bin(9,0) level 3 in structure "audit_record_header" packed packed unsigned unaligned dcl 2-18 in procedure "as_access_audit_" set ref 618* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AAB_mseg_msg internal static fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 AAB_pnt_entry internal static fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 AAB_rcp_object internal static fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 AAB_ss_link internal static fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 AAB_ss_object internal static fixed bin(9,0) initial packed unsigned unaligned dcl 1-18 ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 14-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 15-326 ACTIVE internal static fixed bin(17,0) initial dcl 10-272 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 13-77 ANS_SERVICE internal static fixed bin(17,0) initial dcl 10-259 ASR_ABS_COMMAND internal static fixed bin(17,0) initial dcl 5-29 ASR_ADMIN_COMMAND internal static fixed bin(17,0) initial dcl 5-29 ASR_BUMP_USER internal static fixed bin(17,0) initial dcl 5-29 ASR_CCI_VERSION_1 internal static char(8) initial packed unaligned dcl 7-24 ASR_COM_CHANNEL_INFO internal static fixed bin(17,0) initial dcl 5-29 ASR_DAEMON_COMMAND internal static fixed bin(17,0) initial dcl 5-29 ASR_DEFER_IN_ADMIN_MODE internal static bit(1) initial array packed unaligned dcl 5-45 ASR_DIAL_OUT internal static fixed bin(17,0) initial dcl 5-29 ASR_DIAL_SERVER internal static fixed bin(17,0) initial dcl 5-29 ASR_FIRST_TYPE internal static fixed bin(17,0) initial dcl 5-29 ASR_FPE_CAUSES_LOGOUT internal static fixed bin(17,0) initial dcl 5-29 ASR_FPE_CAUSES_NEW_PROC internal static fixed bin(17,0) initial dcl 5-29 ASR_LAST_TYPE internal static fixed bin(17,0) initial dcl 5-29 ASR_NOTE_PNT_CHANGE internal static fixed bin(17,0) initial dcl 5-29 ASR_PROC_TERM_NOTIFY internal static fixed bin(17,0) initial dcl 5-29 ASR_REQUEST_NAMES internal static char(40) initial array packed unaligned dcl 5-48 AS_REQUEST_SENDER_VERSION_2 internal static char(8) initial packed unaligned dcl 6-27 CDT_version internal static fixed bin(17,0) initial dcl 10-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 10-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 10-288 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 15-280 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 10-259 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 15-332 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 10-259 DN355 internal static fixed bin(17,0) initial dcl 11-19 DN6600 internal static fixed bin(17,0) initial dcl 11-19 DN6670 internal static fixed bin(17,0) initial dcl 11-19 DN7100 internal static fixed bin(17,0) initial dcl 11-19 DONT_MASK internal static bit(2) initial packed unaligned dcl 15-280 DO_MASK internal static bit(2) initial packed unaligned dcl 15-280 FNP_BOOT internal static fixed bin(17,0) initial dcl 10-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 10-298 FNP_FREE internal static fixed bin(17,0) initial dcl 10-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 10-298 FNP_UP internal static fixed bin(17,0) initial dcl 10-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 10-259 INACTIVE internal static fixed bin(17,0) initial dcl 10-272 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 15-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 15-284 MC_SERVICE internal static fixed bin(17,0) initial dcl 10-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 10-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 10-306 MPX_FREE internal static fixed bin(17,0) initial dcl 10-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 10-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 10-306 MPX_UP internal static fixed bin(17,0) initial dcl 10-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 10-280 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 15-265 PT_DAEMON internal static fixed bin(17,0) initial dcl 15-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 15-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 15-290 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 10-259 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 12-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 12-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 12-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 12-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 12-62 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 12-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 12-14 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 15-271 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 10-259 UFLAG_NAMES internal static varying char(24) initial array dcl 15-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 13-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 13-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 13-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 13-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 15-74 as_request_version_1 internal static fixed bin(17,0) initial dcl 5-27 asr_reply_cci_ptr automatic pointer dcl 7-26 asr_reply_com_channel_info based structure level 1 dcl 7-27 audit_binary_expanders internal static varying char(13) initial array dcl 1-46 cdt based structure level 1 dcl 10-44 cdtp automatic pointer dcl 10-41 fnp_models internal static fixed bin(17,0) initial array dcl 11-28 fnp_types internal static char(8) initial array packed unaligned dcl 11-25 fnpep automatic pointer dcl 10-41 generic_destination based char(32) packed unaligned dcl 10-195 mpxep automatic pointer dcl 10-41 sl_info automatic structure level 1 dcl 12-24 sl_info_code_msg internal static structure level 1 dcl 12-187 sl_info_msg internal static structure level 1 dcl 12-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 12-161 sl_info_sev_code_msg internal static structure level 1 dcl 12-82 sl_info_sev_coded_msg internal static structure level 1 dcl 12-134 sl_info_sev_msg internal static structure level 1 dcl 12-108 supported_fnp internal static bit(1) initial array packed unaligned dcl 11-31 NAMES DECLARED BY EXPLICIT CONTEXT. Abs_Entry_Name 004520 constant entry internal dcl 652 ref 576 FILL_IN_ARH 004424 constant entry internal dcl 609 ref 199 247 290 432 539 597 abs_command_cancel 002646 constant entry external dcl 456 abs_command_login 003236 constant entry external dcl 517 as_access_audit_ 000564 constant entry external dcl 52 as_rqt_nt_pnt_chg 004121 constant entry external dcl 671 asr_com_chn_info_srvr 004232 constant entry external dcl 684 channel 001367 constant entry external dcl 259 dialid 002325 constant entry external dcl 409 dpg_buzzard 004332 constant entry external dcl 699 login 003311 constant entry external dcl 531 logout 003677 constant entry external dcl 584 process 000577 constant entry external dcl 173 process_connect_denied 001176 constant entry external dcl 240 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5244 5326 4660 5254 Length 6124 4660 62 561 363 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_access_audit_ 579 external procedure is an external procedure. FILL_IN_ARH internal procedure shares stack frame of external procedure as_access_audit_. Abs_Entry_Name 136 internal procedure uses returns(char(*)) or returns(bit(*)). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Abs_Entry_Name 000100 dirname Abs_Entry_Name 000152 entryname Abs_Entry_Name 000162 code Abs_Entry_Name as_access_audit_ 000100 ACAR as_access_audit_ 000166 ADAR as_access_audit_ 000223 ARH as_access_audit_ 000247 ARHP as_access_audit_ 000313 ASIAAR as_access_audit_ 000445 action as_access_audit_ 000446 added_info as_access_audit_ 000506 audit_record_size as_access_audit_ 000510 dial_utep as_access_audit_ 000512 event_flags as_access_audit_ 000513 grant_sw as_access_audit_ 000514 mins as_access_audit_ 000515 operation as_access_audit_ 000516 secs as_access_audit_ 000517 proc_type as_access_audit_ 000520 request_id as_access_audit_ 000522 severity as_access_audit_ 000524 target_utep as_access_audit_ 000526 dial_server_info_ptr as_access_audit_ 000530 channel_audit_info_ptr as_access_audit_ 000532 as_request_sender_ptr as_access_audit_ 000534 asr_com_channel_info_ptr as_access_audit_ 000536 cdtep as_access_audit_ 000540 utep as_access_audit_ 000566 p FILL_IN_ARH THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_int_this_desc return_mac mdfx1 shorten_stack ext_entry ext_entry_desc int_entry_desc reverse_cs set_chars_eis return_chars_eis divide_fx3 index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. expand_pathname_ sys_log_ sys_log_$binary sys_log_$error_log THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$abs_command_cancel access_operations_$abs_command_login access_operations_$channel_attach access_operations_$channel_detach access_operations_$dial_system access_operations_$dialid_start access_operations_$dialid_stop access_operations_$dialin access_operations_$dialout access_operations_$process_connect access_operations_$process_create access_operations_$process_destroy access_operations_$process_disconnect access_operations_$process_terminate access_operations_$user_login access_operations_$user_logout error_table_$action_not_performed LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 15 76 000557 52 000563 173 000572 176 000617 177 000622 179 000624 181 000625 182 000626 183 000630 184 000631 186 000633 192 000645 196 000700 199 000701 201 000705 203 000714 205 000722 207 000730 210 000736 213 000743 215 000745 218 000761 219 000764 220 000765 222 000767 223 000773 225 001007 227 001017 229 001026 230 001027 232 001037 238 001171 240 001172 243 001214 244 001217 245 001223 247 001233 248 001237 250 001242 257 001360 259 001361 263 001407 264 001413 265 001416 266 001421 267 001423 268 001426 270 001436 272 001440 273 001441 274 001443 275 001444 277 001446 283 001460 287 001513 290 001514 292 001520 294 001527 296 001535 298 001543 300 001551 303 001556 306 001570 307 001574 308 001576 329 001600 331 001610 332 001612 334 001617 335 001621 336 001624 339 001647 340 001664 343 001674 345 001702 346 001704 347 001706 348 001711 349 001714 350 001717 351 001721 353 001722 355 001726 356 001730 358 001736 359 001740 360 001743 361 001746 362 001751 363 001753 364 001755 365 001760 366 001763 368 001766 369 001770 370 001771 373 001775 374 001777 375 002001 376 002003 377 002007 380 002033 381 002050 384 002060 386 002066 387 002070 388 002072 389 002076 390 002112 391 002126 394 002130 407 002317 409 002320 412 002345 413 002350 414 002352 415 002362 416 002366 418 002370 419 002371 420 002373 421 002374 423 002376 425 002402 429 002435 432 002436 434 002442 436 002451 438 002454 440 002463 441 002465 442 002467 443 002474 444 002501 445 002506 447 002512 454 002640 456 002641 459 002661 460 002664 461 002667 462 002672 464 002676 465 002700 466 002702 467 002704 468 002706 469 002711 470 002712 471 002714 472 002721 473 002723 477 002725 479 002730 481 002733 482 002736 483 002743 484 002752 485 002754 486 002756 487 002762 489 002766 493 002772 494 003002 496 003025 498 003062 499 003067 501 003077 502 003101 503 003103 504 003107 506 003113 509 003117 515 003232 517 003233 520 003247 522 003252 526 003255 529 003304 531 003305 534 003327 535 003332 536 003342 538 003345 539 003350 540 003354 542 003357 545 003371 546 003374 548 003376 549 003400 550 003404 551 003411 552 003416 553 003420 554 003422 555 003425 556 003430 557 003432 559 003435 562 003474 563 003502 565 003505 566 003510 568 003516 569 003520 570 003521 572 003523 574 003531 576 003533 582 003673 584 003675 587 003715 588 003720 589 003730 590 003735 591 003737 593 003743 594 003750 597 003756 599 003762 601 003765 607 004114 671 004115 674 004142 676 004145 681 004224 684 004225 687 004253 688 004256 690 004262 695 004327 699 004330 702 004353 704 004356 708 004423 609 004424 616 004426 617 004431 618 004433 620 004435 621 004437 627 004441 628 004442 629 004444 630 004451 631 004453 632 004456 635 004461 638 004464 639 004467 641 004474 642 004503 643 004505 644 004507 646 004513 648 004516 652 004517 664 004533 665 004560 667 004572 ----------------------------------------------------------- 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