COMPILATION LISTING OF SEGMENT dpg_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/29/88 0927.6 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4 */ 13 dpg_: proc (p, P_reason); 14 15 /* DPG_ - destroy process group. 16* 17* Called from dialup_, absentee_user_manager_, daemon_user_manager_, and asu_ 18* to destroy a user process. Updates usage meters in answer table entry. 19* 20* Initially coded by Michael J. Spier on February 15, 1969. 21* Recoded in PL/1 by MJS on April 7, 1970 22* Modified for new destroy strategy 9/73 THVV 23* Modified May 1978 by T. Casey to notify pdir_volume_manager_ when we delete a pdir. 24* Modified October 1979 by T. Casey to save pdir after fatal process error if user has save_pdir attribute. 25* Modified March 1980 by Tom Casey to add metering. 26* Modified June 1981 by J. Bongiovanni to save stack_0 in dead pdir 27* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. 28* Modified December 1981 by J. Bongiovanni to expand pdir quota, if necessary, to copy stack_0 29* Modified October 1982 by E. N. Kittlitz for register_buzzard. 30* Modified September 1983 by E. N. Kittlitz to notify buzzards after ring0 destruction complete, change structure names. 31* Modified 84-06-06 BIM. Change buzzard for new structure. 32* Modified September 1984 by Keith Loepere to understand the error code from 33* del_dir_tree (via destroy_process_finish). 34* Modified September 1984 by B. L. Braun to add sma for the SysMaint and SysAdmin projects to the saved process directory. 35* Modified: 36* 10/05/84 by R. Michael Tague: up_sysctl_$check_acs now returns a bit (36) 37* mode string instead of a fixed bin (5) and no longer takes a directoy arg. 38* 11/05/84 by R. Michael Tague: Changed check on process_termination_monitor 39* ACS to be a RW check instead of W only. 40* Modified 84-12-29 by E. Swenson for new AS auditing. 41* Modified 15 January 1985 by B. L. Braun to replace the acl on the saved 42* process directory with Person.Project.*, SysMaint, and SysAdmin projects. 43* Modified 1985-02-20, BIM: call as_user_message_$priv_delete_process_messages. 44**/ 45 46 /****^ HISTORY COMMENTS: 47* 1) change(86-06-05,GJohnson), approve(86-06-05,MCR7387), 48* audit(86-06-10,Martinson), install(86-07-11,MR12.0-1092): 49* Correct error message documentation. 50* 2) change(87-04-27,GDixon), approve(87-07-13,MCR7741), 51* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 52* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 53* 3) change(87-07-22,GDixon), approve(87-07-22,MCR7741), 54* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 55* A) Add operator doc for undoc'd sys_log_ calls. 56* 4) change(87-07-24,Dickson), approve(87-07-24,MCR7722), 57* audit(87-07-27,Brunelle), install(87-08-04,MR12.1-1055): 58* Changed the entry point register_buzzard to perform auditing of GRANTS or 59* DENYS when setting the process termination monitor. 60* 5) change(88-04-27,GDixon), approve(88-08-15,MCR7969), 61* audit(88-08-03,Lippard), install(88-08-29,MR12.2-1093): 62* A) Call pdir_volume_manager_ to note deletion of a pdir when an attempt 63* to save it has failed. (phx17303) 64* END HISTORY COMMENTS */ 65 66 /* Parameters */ 67 68 dcl p ptr parameter; /* points to answer table or abs user table entry */ 69 dcl P_reason char (*) parameter; /* short reason why we're destroying. */ 70 71 /* Entries */ 72 73 dcl as_access_audit_$dpg_buzzard entry (char (*), ptr, fixed bin (35)); 74 dcl as_access_audit_$process entry (ptr, fixed bin (17), char (*)); 75 dcl as_user_message_$priv_delete_process_messages entry (bit (36) aligned, fixed bin (35)); 76 dcl (as_meter_$enter, as_meter_$exit) entry (fixed bin); 77 dcl dial_ctl_$dial_broom entry (ptr, char (8) aligned); 78 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 79 dcl get_group_id_$tag_star entry () returns (char (32)); 80 dcl hcs_$add_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)); 81 dcl hcs_$chname_file entry (char (*), char (*), char (*), char (*), fixed bin (35)); 82 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 83 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 84 dcl hcs_$replace_dir_acl entry (char (*), char (*), ptr, fixed bin, bit (1), fixed bin (35)); 85 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 86 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 87 dcl hphcs_$copy_stack_0 entry (bit (36) aligned, ptr, fixed bin (35)); 88 dcl hphcs_$destroy_process_begin entry (ptr, fixed bin (35)); 89 dcl hphcs_$destroy_process_finish entry (ptr, fixed bin (35)); 90 dcl hphcs_$quota_read entry (char (*), fixed bin (18), fixed bin (71), bit (36) aligned, bit (36), 91 fixed bin (1), fixed bin, fixed bin (35)); 92 dcl hphcs_$quota_set entry (char (*), fixed bin (18), fixed bin (35)); 93 dcl hphcs_$set_ring_brackets entry (char (*), char (*), (3) fixed bin (6), fixed bin (35)); 94 dcl lv_request_$cleanup_process entry (bit (36) aligned); 95 dcl pdir_volume_manager_$note_pdir_deletion entry (ptr); 96 dcl rcp_sys_$unassign_process entry (bit (36) aligned, fixed bin (35)); 97 dcl sys_log_$error_log entry options (variable); 98 dcl sys_log_ entry options (variable); 99 dcl unique_chars_ entry (bit (*) aligned) returns (char (15) aligned); 100 101 dcl error_table_$action_not_performed fixed bin (35) ext static; 102 dcl error_table_$no_dir ext fixed bin (35); 103 104 /* Automatic */ 105 106 dcl 1 buzzard aligned based (buzzardp), /* describe a process which is camping on death notifications */ 107 2 prev ptr, /* two-way wrist linked list */ 108 2 next ptr, /* ... */ 109 2 info_channel fixed bin (71), /* IPC channel */ 110 2 process_id bit (36), /* and, of course, who he is */ 111 2 user_reference_id bit (36), /* user supplied data to be included in wakeup */ 112 2 group_id char (32); /* and name (for ease of use) */ 113 dcl buzzardp ptr; 114 dcl code fixed bin (35); 115 dcl dir_name char (168); 116 dcl ltrp fixed bin (71); 117 dcl pdir_saved bit (1) aligned init (""b); 118 dcl pdquota fixed bin (18); 119 dcl reason char (8) automatic; 120 dcl rqo_sw bit (1); 121 dcl 1 segment_acl (1) aligned, 122 2 access_name char (32), 123 2 modes bit (36), 124 2 zero_pad bit (36), 125 2 status_code fixed bin (35); 126 dcl slvid bit (36); 127 dcl stack_0_ptr ptr; 128 dcl taccsw fixed bin (1); 129 dcl tup bit (36) aligned; 130 dcl used fixed bin; 131 132 /* Constant */ 133 134 dcl ME char (32) initial ("dpg_") internal static options (constant); 135 136 dcl ZERO_RING_BRACKETS (3) fixed bin (6) int static options (constant) init (0, 0, 0); 137 dcl STACK_0_NAME char (32) int static options (constant) init ("stack_0"); /* until level_0_ is fixed */ 138 dcl STACK_0_QUOTA fixed bin int static options (constant) init (16); /* how much to expand quota for stack_0 copy */ 139 140 141 dcl (addr, null, rtrim, unspec) builtin; 142 143 dcl any_other condition; 144 dcl record_quota_overflow condition; 145 146 /* Program */ 147 148 call as_meter_$enter (DPG_METER); 149 utep = p; /* copy ptr to answer table entry */ 150 reason = P_reason; 151 152 call dial_ctl_$dial_broom (utep, (reason)); /* clean up attached consoles. */ 153 if ^as_data_$debug_flag then do; /* we might not be Initializer */ 154 call rcp_sys_$unassign_process (ute.proc_id, (0)); /* get rid of RCP cdevices and volumes */ 155 156 if ute.lvs_attached then 157 call lv_request_$cleanup_process (ute.proc_id); /* get rid of attached LVs. */ 158 159 end; 160 161 unspec (process_status_return) = ""b; 162 process_status_return.target_proc = ute.proc_id; 163 call hphcs_$destroy_process_begin (addr (process_status_return), 164 code); 165 if code ^= 0 then 166 call sys_log_$error_log (SL_LOG, code, ME, 167 "Calling hphcs_$destroy_process_begin for ^a.^a.^a on channel ^a, process_id ^w.", 168 ute.person, ute.project, ute.tag, ute.tty_name, 169 ute.proc_id); 170 171 call as_meter_$exit (DPG_METER); 172 return; /* Now wait for process to die. */ 173 174 finish: entry (p); 175 176 call as_meter_$enter (DPG_METER); 177 utep = p; 178 179 unspec (process_status_return) = ""b; 180 process_status_return.target_proc = ute.proc_id; 181 process_status_return.aptptr = null (); 182 183 if ute.at.save_pdir & /* if user has save_pdir attribute */ 184 (ute.logout_type = "init" | /* and this is a fatal process error */ 185 ute.logout_type = "term" | /* then save his pdir by renaming it, */ 186 ute.logout_type = "no_i") then /* so ring zero can't find it to delete it */ 187 call Save_Pdir (); 188 if ^pdir_saved then 189 if ^as_data_$debug_flag then 190 call pdir_volume_manager_$note_pdir_deletion (utep); 191 192 call hphcs_$destroy_process_finish (addr (process_status_return), code); 193 if code ^= 0 /* if a real error occurred destroying the process */ 194 & (^pdir_saved | code ^= error_table_$no_dir) then do; /* no_dir because of save_pdir isn't real */ 195 call sys_log_$error_log (SL_LOG, code, ME, "destroying process ^w for ^a.^a", 196 ute.proc_id, ute.person, ute.project); 197 ute.cpu_usage = ute.cpu_usage + ute.cpu_this_process; 198 ute.mem_usage = ute.mem_usage + ute.mem_this_process; 199 ute.cpu_this_process = 0; 200 ute.mem_this_process = 0; 201 end; 202 else do; /* got usage */ 203 ute.cpu_this_process = 204 process_status_return.virtual_cpu - ute.cpu_this_process; 205 /* use as temporary loc to hold last delta */ 206 ute.cpu_usage = 207 ute.cpu_usage + process_status_return.virtual_cpu; /* count cpu usage for all process */ 208 ute.mem_this_process = 209 process_status_return.up_page - ute.mem_this_process; 210 ute.mem_usage = ute.mem_usage + process_status_return.up_page; 211 end; 212 213 call as_access_audit_$process (utep, AS_AUDIT_PROCESS_DESTROY, 214 ""); 215 216 call notify_buzzards (ute.proc_id); /* if it didn't die in deact_proc, tough. I did my best. */ 217 call as_user_message_$priv_delete_process_messages (ute.proc_id, (0)); 218 call as_meter_$exit (DPG_METER); 219 return; 220 221 register_buzzard: entry (P_request_header_ptr, P_asr_sender_ptr); 222 223 dcl P_request_header_ptr ptr; 224 dcl P_asr_sender_ptr ptr; 225 226 dcl mode bit (36); 227 228 dcl error_table_$unimplemented_version fixed bin (35) ext static; 229 dcl error_table_$insufficient_access fixed bin (35) ext static; 230 231 dcl up_sysctl_$check_acs entry (char (*), char (*), fixed bin, bit (36), fixed bin (35)); 232 233 as_request_sender_ptr = P_asr_sender_ptr; 234 asr_buzzard_infop = P_request_header_ptr; 235 asr_replyp = addr (as_request_sender.reply_message); 236 unspec (asr_reply) = ""b; 237 if asr_buzzard_info.version ^= asr_buzzard_info_version_1 & 238 asr_buzzard_info.version ^= "buteo_01" then do; /* grandfather clause for NDM */ 239 asr_reply.code = error_table_$unimplemented_version; /* not good enough */ 240 goto ERROR_RETURN; 241 end; 242 243 call up_sysctl_$check_acs ("process_termination_monitor.acs", 244 as_request_sender.group_id, (as_request_sender.validation_level), 245 mode, asr_reply.code); 246 if asr_reply.code ^= 0 then goto ERROR_RETURN; 247 if ((mode & RW_ACCESS) ^= RW_ACCESS) then do; 248 asr_reply.code = error_table_$insufficient_access; 249 goto ERROR_RETURN; 250 end; 251 252 buzzardp = as_data_$buzzardp; /* start walking the list */ 253 do while (buzzardp ^= null); /* down to the end of the list */ 254 if buzzard.process_id = as_request_sender.process_id then do; /* whoops; this process already here */ 255 if asr_buzzard_info.info_channel = 0 then /* zero means stop telling me */ 256 call remove_buzzard (buzzardp); /* so stop */ 257 else do; /* otherwise overwrite the channel for this process */ 258 buzzard.info_channel = asr_buzzard_info.info_channel; 259 buzzard.user_reference_id = asr_buzzard_info.my_reference_id; 260 asr_reply.data = "1"b; /* indicate this is a replacement */ 261 call sys_log_ (SL_LOG_SILENT, "^a: ^a (^w) replaced process termination monitor.", 262 ME, buzzard.group_id, buzzard.process_id); 263 end; 264 return; 265 end; /* got a match */ 266 buzzardp = buzzard.next; /* press on */ 267 end; /* do loop */ 268 if asr_buzzard_info.info_channel = 0 then do; /* well, I'm certainly not going to add THAT */ 269 asr_reply.code = error_table_$action_not_performed; 270 goto ERROR_RETURN; 271 end; 272 asr_reply.code = 0; 273 allocate buzzard; 274 buzzard.prev = null; 275 buzzard.next = as_data_$buzzardp; 276 buzzard.info_channel = asr_buzzard_info.info_channel; 277 buzzard.process_id = as_request_sender.process_id; 278 buzzard.user_reference_id = asr_buzzard_info.my_reference_id; 279 buzzard.group_id = as_request_sender.group_id; 280 if as_data_$buzzardp ^= null then 281 as_data_$buzzardp -> buzzard.prev = buzzardp; 282 as_data_$buzzardp = buzzardp; 283 284 ERROR_RETURN: 285 call as_access_audit_$dpg_buzzard (ME, addr(as_request_sender), asr_reply.code); 286 287 if asr_reply.code = 0 then 288 call sys_log_ (SL_LOG_SILENT, "^a: ^a (^w) set process termination monitor.", 289 ME, buzzard.group_id, buzzard.process_id); 290 291 return; 292 293 notify_buzzards: proc (deceased); 294 dcl deceased bit (36) aligned; 295 dcl processid_message fixed bin (71); 296 dcl bp ptr; 297 298 asr_replyp = addr (processid_message); 299 asr_buzzard_notification.process_id = deceased; 300 bp = as_data_$buzzardp; 301 do while (bp ^= null); 302 buzzardp = bp; 303 bp = buzzard.next; 304 if buzzard.process_id = deceased then 305 call remove_buzzard (buzzardp); 306 else do; 307 asr_buzzard_notification.your_reference_id = buzzard.user_reference_id; 308 call hcs_$wakeup (buzzard.process_id, buzzard.info_channel, processid_message, code); 309 if code ^= 0 then call remove_buzzard (buzzardp); 310 end; 311 end; 312 end notify_buzzards; 313 314 remove_buzzard: proc (bp); 315 dcl bp ptr; 316 317 if bp -> buzzard.next ^= null then 318 bp -> buzzard.next -> buzzard.prev = bp -> buzzard.prev; 319 if bp -> buzzard.prev ^= null then 320 bp -> buzzard.prev -> buzzard.next = bp -> buzzard.next; 321 if as_data_$buzzardp = bp then 322 as_data_$buzzardp = bp -> buzzard.next; 323 call sys_log_ (SL_LOG_SILENT, "^a: removed ^a (^w) process termination monitor.", 324 ME, buzzard.group_id, buzzard.process_id); 325 free bp -> buzzard; 326 end; 327 328 Save_Pdir: 329 procedure (); 330 331 dcl 1 CI aligned like condition_info automatic; 332 dcl 1 dir_acl (5) structure aligned automatic, 333 2 access_name char (32) unaligned, 334 2 mode bit (36) aligned, 335 2 status_code fixed bin (35); 336 dcl n_acl_entries fixed bin automatic; 337 dcl name char (32) automatic; 338 dcl newname char (32) automatic; 339 dcl newdir char (168) automatic; 340 341 dcl 1 DIR_ACL_INIT (5) aligned int static options (constant), 342 2 access_name char (32) unal 343 init ("*.*.*", "*.SysMaint.*", "*.SysAdmin.*", "", ""), 344 2 mode bit (36) aligned /* null for *.*.*, sma access for the rest */ 345 init ((1) ((36)"0"b), (3) ("111"b || (33)"0"b), ""b), 346 2 status_code fixed bin (35) init ((5) 0); 347 348 name = unique_chars_ (ute.proc_id); /* get its current name */ 349 /**** Then make up a meaningful new name for it */ 350 newname = rtrim (ute.person) || "." || rtrim (ute.project) || ".f." || 351 rtrim (ute.tty_name); 352 call hcs_$chname_file (">pdd", name, name, newname, code); 353 if code ^= 0 then 354 call sys_log_$error_log (SL_LOG, code, ME, 355 "Attempting to rename pdir for ^a.^a ^a after fatal process error.", 356 ute.person, ute.project, ute.tty_name); 357 else do; 358 pdir_saved = "1"b; 359 call sys_log_ (SL_LOG, 360 "^a: Saved >pdd>^a after fatal process error.", 361 ME, newname); 362 363 /* Set the ACLS on the dead process directory. */ 364 365 dir_acl (*) = DIR_ACL_INIT (*); 366 dir_acl (4).access_name = rtrim (ute.person) || "." || 367 rtrim (ute.project) || ".*"; 368 369 if ^as_data_$debug_flag then 370 n_acl_entries = 4; 371 else do; 372 n_acl_entries = 5; 373 dir_acl (5).access_name = get_group_id_$tag_star (); 374 dir_acl (5).mode = SMA_ACCESS; 375 end; 376 377 call hcs_$replace_dir_acl (">pdd", newname, addr (dir_acl), 378 n_acl_entries, "0"b /* add *.SysDaemon.* */, code); 379 if code ^= 0 then 380 return; 381 382 on any_other begin; 383 dcl rcode fixed bin (35) automatic; 384 call find_condition_info_ (null (), addr (CI), rcode); 385 if rcode = 0 then 386 call sys_log_ (SL_LOG_SILENT, 387 "^a: ^a condition signalled while copying stack_0 into >pdd>^a", 388 ME, CI.condition_name, newname); 389 goto join_after_nasty_error; 390 end; 391 392 newdir = ">pdd>" || rtrim (newname); 393 call hcs_$make_seg (newdir, STACK_0_NAME, "", 01010b, stack_0_ptr, 394 code); 395 if code = 0 then do; 396 rqo_sw = "0"b; 397 on record_quota_overflow begin; 398 rqo_sw = "1"b; 399 dir_name = ">pdd>" || rtrim (newname); 400 call hphcs_$quota_read (dir_name, pdquota, ltrp, tup, 401 slvid, taccsw, used, code); 402 if code ^= 0 then do; 403 rqo_error: call sys_log_ (SL_LOG_SILENT, 404 "^a: record_quota_overflow condition signalled while copying stack_0 into >pdd>^a", 405 ME, newname); 406 goto join_after_nasty_error; 407 end; 408 call hphcs_$quota_set (dir_name, pdquota + STACK_0_QUOTA, 409 code); 410 if code ^= 0 then 411 goto rqo_error; 412 goto retry_copy_stack; 413 end; 414 415 retry_copy_stack: 416 if rqo_sw then 417 revert record_quota_overflow; 418 call hphcs_$copy_stack_0 (ute.proc_id, stack_0_ptr, code); 419 revert record_quota_overflow; 420 if code = 0 then do; 421 call hcs_$terminate_noname (stack_0_ptr, code); 422 segment_acl.access_name = rtrim (ute.person) || "." || 423 rtrim (ute.project) || ".*"; 424 segment_acl.modes = RW_ACCESS; 425 segment_acl.zero_pad = "0"b; 426 call hcs_$add_acl_entries (newdir, STACK_0_NAME, 427 addr (segment_acl), 1, code); 428 call hphcs_$set_ring_brackets (newdir, STACK_0_NAME, 429 ZERO_RING_BRACKETS, code); 430 end; 431 else 432 call hcs_$delentry_seg (stack_0_ptr, code); 433 end; 434 else 435 call sys_log_$error_log (SL_LOG_SILENT, code, ME, 436 "Creating saved stack_0 for ^a.^a (^w).", ute.person, 437 ute.project, ute.proc_id); 438 439 join_after_nasty_error: 440 revert any_other; 441 revert record_quota_overflow; 442 end; 443 return; 444 /**** format: off */ 445 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 1 2 1 3 /* Structure for find_condition_info_. 1 4* 1 5* Written 1-Mar-79 by M. N. Davidoff. 1 6**/ 1 7 1 8 /* automatic */ 1 9 1 10 declare condition_info_ptr pointer; 1 11 1 12 /* based */ 1 13 1 14 declare 1 condition_info aligned based (condition_info_ptr), 1 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 1 16 2 version fixed binary, /* Must be 1 */ 1 17 2 condition_name char (32) varying, /* name of condition */ 1 18 2 info_ptr pointer, /* pointer to the condition data structure */ 1 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 1 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 1 21 2 flags unaligned, 1 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 1 23 3 pad1 bit (35), 1 24 2 pad2 bit (36), 1 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 1 26 2 pad3 (4) bit (36); 1 27 1 28 /* internal static */ 1 29 1 30 declare condition_info_version_1 1 31 fixed binary internal static options (constant) initial (1); 1 32 1 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 445 446 /**** format: on */ 447 end Save_Pdir; 448 449 /* format: off */ 450 /* 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 */ 450 /* not used, but needed by PL/I */ 451 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 3 2* 3 3* Values for the "access mode" argument so often used in hardcore 3 4* James R. Davis 26 Jan 81 MCR 4844 3 5* Added constants for SM access 4/28/82 Jay Pattin 3 6* Added text strings 03/19/85 Chris Jones 3 7**/ 3 8 3 9 3 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 3 11 dcl ( 3 12 N_ACCESS init ("000"b), 3 13 R_ACCESS init ("100"b), 3 14 E_ACCESS init ("010"b), 3 15 W_ACCESS init ("001"b), 3 16 RE_ACCESS init ("110"b), 3 17 REW_ACCESS init ("111"b), 3 18 RW_ACCESS init ("101"b), 3 19 S_ACCESS init ("100"b), 3 20 M_ACCESS init ("010"b), 3 21 A_ACCESS init ("001"b), 3 22 SA_ACCESS init ("101"b), 3 23 SM_ACCESS init ("110"b), 3 24 SMA_ACCESS init ("111"b) 3 25 ) bit (3) internal static options (constant); 3 26 3 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 3 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 3 29 3 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 3 31 static options (constant); 3 32 3 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 3 34 static options (constant); 3 35 3 36 dcl ( 3 37 N_ACCESS_BIN init (00000b), 3 38 R_ACCESS_BIN init (01000b), 3 39 E_ACCESS_BIN init (00100b), 3 40 W_ACCESS_BIN init (00010b), 3 41 RW_ACCESS_BIN init (01010b), 3 42 RE_ACCESS_BIN init (01100b), 3 43 REW_ACCESS_BIN init (01110b), 3 44 S_ACCESS_BIN init (01000b), 3 45 M_ACCESS_BIN init (00010b), 3 46 A_ACCESS_BIN init (00001b), 3 47 SA_ACCESS_BIN init (01001b), 3 48 SM_ACCESS_BIN init (01010b), 3 49 SMA_ACCESS_BIN init (01011b) 3 50 ) fixed bin (5) internal static options (constant); 3 51 3 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 451 452 /* 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 * * * * * */ 452 453 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* This file must be kept in sync with as_data_.alm */ 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 5 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 5 10* Remove references to the 963 and 029 preaccess commands and remove support 5 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 5 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 5 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 14* Add references to as_data_ entrypoints added for Login Server. 5 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 5 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 17* Added new user signal field of inacrcvd (14) to handle inactivity response 5 18* from user. 5 19* END HISTORY COMMENTS */ 5 20 5 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 5 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 5 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 5 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 5 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 5 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 5 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 5 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 5 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 5 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 5 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 5 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 5 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 5 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 5 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 5 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 5 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 5 38 dcl as_data_$g115_dim char (32) ext static; 5 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 5 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 5 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 5 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 5 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 5 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 5 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 5 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 5 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 5 48 dcl as_data_$request_priority fixed bin ext static; 5 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 5 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 5 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 5 52 dcl as_data_$satp ptr ext static; /* SAT */ 5 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 5 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 5 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 5 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 5 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 5 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 5 59 dcl as_data_$version char (8) ext static; /* AS version */ 5 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 5 61 5 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 5 63 2 n_login_args fixed bin, 5 64 2 pad fixed bin, 5 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 5 66 5 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 5 68 2 n_signals fixed bin, 5 69 2 pad fixed bin, 5 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 5 71 5 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 5 73 2 n_system_signals fixed bin, 5 74 2 pad fixed bin, 5 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 5 76 5 77 dcl as_data_$login_words fixed bin ext static aligned, 5 78 /* interactive login words */ 5 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 5 80 2 n_words fixed bin, 5 81 2 pad fixed bin, 5 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 5 83 5 84 dcl as_data_$debug_flag bit (1) aligned external static; 5 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 5 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 5 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 5 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 5 89 5 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 453 454 /* BEGIN INCLUDE FILE as_meter_numbers.incl.pl1 */ 6 2 6 3 /* These are the names and numbers of the slots in as_meter_table 6 4* (see as_meter_table.incl.pl1). 6 5* 6 6* Written March 1980 by Tom Casey 6 7* Modified June 1981 by T. Casey for MR9.0 to add ABS_TRYLOG_METER. 6 8**/ 6 9 6 10 6 11 /****^ HISTORY COMMENTS: 6 12* 1) change(86-01-31,Herbst), approve(87-07-21,MCR7694), 6 13* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 6 14* A) Add NETUP_METER. 6 15* B) Add AS_METER_NAMES array. 6 16* END HISTORY COMMENTS */ 6 17 6 18 6 19 dcl ASINIT_METER fixed bin int static options (constant) init (1); /* as_init_, parts 1 and 2 */ 6 20 dcl DIALUP_METER fixed bin int static options (constant) init (2); /* dialup_ */ 6 21 dcl DUM_METER fixed bin int static options (constant) init (3); /* daemon_user_manager_ */ 6 22 dcl AUM_METER fixed bin int static options (constant) init (4); /* absentee_user_manager_ */ 6 23 dcl AU_METER fixed bin int static options (constant) init (5); /* absentee_utility_ */ 6 24 dcl CPG_METER fixed bin int static options (constant) init (6); /* cpg_ */ 6 25 dcl DPG_METER fixed bin int static options (constant) init (7); /* dpg_ */ 6 26 dcl ACCTUP_METER fixed bin int static options (constant) init (8); /* accounting updates */ 6 27 dcl INSTALL_METER fixed bin int static options (constant) init (9); /* installs (up_sysctl_) */ 6 28 dcl ABSQ_METER fixed bin int static options (constant) init (10); /* absentee queue reads and writes */ 6 29 dcl MSGCORD_METER fixed bin int static options (constant) init (11); /* message coordinator */ 6 30 dcl COMMAND_METER fixed bin int static options (constant) init (12); /* operator commands, other than admin */ 6 31 dcl SAC_METER fixed bin int static options (constant) init (13); /* sac (send_admin_command handling) */ 6 32 dcl ADMIN_METER fixed bin int static options (constant) init (14); /* admin mode */ 6 33 dcl SSU_METER fixed bin int static options (constant) init (15); /* system_start_up.ec, parts 1, 2, and 3 */ 6 34 dcl FIXPDT_METER fixed bin int static options (constant) init (16); /* cleanup of PDTs after crash (act_ctl_$init) */ 6 35 dcl ABS_TRYLOG_METER fixed bin int static options (constant) init (17); /* attempts to login absentees via call lg_ctl_ 6 36* (the attempts might fail because of load control limits) */ 6 37 dcl NETUP_METER fixed bin int static options (constant) init (18); /* a call to network_accounting_update_ */ 6 38 6 39 dcl recursion_possible bit (18) int static options (constant) init ("000000000011000000"b); /* 11 & 12 (MSGCORD and COMMAND) */ 6 40 6 41 /* Bit length of recursion_possible equals highest slot number given above. */ 6 42 6 43 dcl AS_METER_NAMES (18) char (8) int static options (constant) init ( 6 44 "ASINIT", "DIALUP", "DUM", "AUM", "AU", 6 45 "CPG", "DPG", "ACCTUP", "INSTALL", "ABSQ", 6 46 "MSGCORD", "COMMAND", "SAC", "ADMIN", "SSU", 6 47 "FIXPDT", "TRYABSLG", "NETUP"); 6 48 6 49 /* END INCLUDE FILE as_meter_numbers.incl.pl1 */ 454 455 /* BEGIN INCLUDE FILE ... as_request_header.incl.pl1 */ 7 2 7 3 /* DESCRIPTION: 7 4* Answering Service request information. 7 5**/ 7 6 7 7 7 8 /****^ HISTORY COMMENTS: 7 9* 1) change(00-01-01,JRandom), approve(), audit(), install(): 7 10* Written by someone, at sometime. 7 11* 2) change(84-09-10,Tague), approve(), audit(), install(): 7 12* R. Michael Tague: Added ASR_BUMP_USER request. 7 13* 3) change(84-10-04,Margulies), approve(), audit(), install(): 7 14* BIM: ASR_ADMIN_COMMAND. 7 15* 4) change(85-01-23,Swenson), approve(), audit(), install(): 7 16* E. Swenson for ASR_NOTE_PNT_CHANGE. 7 17* 5) change(85-02-18,Margulies), approve(), audit(), install(): 7 18* BIM: ASR_DAEMON_COMMAND, ASR_COM_CHANNEL_INFO 7 19* 6) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 7 20* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 7 21* Jim Lippard: Added ASR_ABS_COMMAND request. 7 22* END HISTORY COMMENTS */ 7 23 7 24 7 25 /* format: style4 */ 7 26 7 27 dcl as_request_version_1 fixed bin internal static initial (1) options (constant); 7 28 7 29 dcl ( 7 30 ASR_FIRST_TYPE initial (1), 7 31 ASR_DIAL_SERVER initial (1), 7 32 ASR_DIAL_OUT initial (2), 7 33 ASR_FPE_CAUSES_LOGOUT initial (3), 7 34 ASR_FPE_CAUSES_NEW_PROC initial (4), 7 35 ASR_PROC_TERM_NOTIFY initial (5), 7 36 ASR_BUMP_USER initial (6), 7 37 ASR_ADMIN_COMMAND initial (7), 7 38 ASR_NOTE_PNT_CHANGE initial (8), 7 39 ASR_DAEMON_COMMAND initial (9), 7 40 ASR_COM_CHANNEL_INFO initial (10), 7 41 ASR_ABS_COMMAND initial (11), 7 42 ASR_LAST_TYPE initial (11) 7 43 ) fixed bin internal static options (constant); 7 44 7 45 dcl ASR_DEFER_IN_ADMIN_MODE (1:11) bit (1) int static options (constant) 7 46 init ((6) (1) "0"b, "1"b, (4) (1) "0"b); 7 47 7 48 dcl ASR_REQUEST_NAMES (1:11) int static options (constant) 7 49 char (40) init ( 7 50 "Dial request", 7 51 "Dial out request", 7 52 "Logout on fatal process error", 7 53 "New process on fatal process error", 7 54 "Monitor process terminations", 7 55 "Bump user", 7 56 "Execute admin command", 7 57 "Note PNT change", 7 58 "Daemon command", 7 59 "Communications channel info", 7 60 "Absentee command"); 7 61 7 62 dcl 1 as_request_header based aligned, 7 63 2 version fixed bin, /* version number */ 7 64 2 type fixed bin, /* what to do */ 7 65 2 reply_channel fixed bin (71); /* who to tell */ 7 66 7 67 7 68 /* END INCLUDE FILE ... as_request_header.incl.pl1 */ 455 456 /* BEGIN INCLUDE FILE ... as_requests.incl.pl1 */ 8 2 /* DESCRIPTION: 8 3* This include file is the repository of as_request_ structures which are 8 4* not so complicated or arcane as to require their own include file. 8 5* It requires as_request_header.incl.pl1 8 6**/ 8 7 8 8 /* HISTORY: 8 9* Written by someone, at sometime. 8 10* Modified: 8 11* 09/10/84 by R. Michael Tague: Add the structure asr_bump_user_info 8 12* and asr_reply_bump_user. 8 13* 01/23/85 by E. Swenson: Add the asr_note_pnt_change_info structure. 8 14**/ 8 15 8 16 /* format: style4 */ 8 17 8 18 /*** return status from an as_request_ call. ***/ 8 19 8 20 dcl asr_replyp ptr; 8 21 dcl 1 asr_reply aligned based (asr_replyp), /* IPC status return for a.s. request */ 8 22 2 code fixed bin (35), /* standard error code */ 8 23 2 data bit (36); /* other data */ 8 24 8 25 /*** request to monitor process destructions, and the destruction notification ***/ 8 26 8 27 dcl asr_buzzard_info_version_1 char (8) init ("buzzard1") int static options (constant); 8 28 dcl asr_buzzard_infop ptr; 8 29 dcl 1 asr_buzzard_info aligned based (asr_buzzard_infop), /* for watching dying processes */ 8 30 2 header aligned like as_request_header, 8 31 2 version char (8), 8 32 2 info_channel fixed bin (71), /* IPC channel to send processid wakeup messges */ 8 33 2 my_reference_id bit (36); /* becomes top 36 bits of death notice */ 8 34 8 35 dcl 1 asr_buzzard_notification aligned based (asr_replyp), /* message on process destruction */ 8 36 2 your_reference_id bit (36), /* from asr_buzzard_info.my_reference_id */ 8 37 2 process_id bit (36); /* process id of dead process */ 8 38 8 39 /* *********************************************************************** 8 40* * asr_bump_user_info - Message segment info structure for the * 8 41* * ASR_BUMP_USER requests. * 8 42* * process-id - process_id of process to be bumped. * 8 43* * message - message to be splat across user terminal when * 8 44* * the bump is begun, i.e., the grace time starts. * 8 45* * No message is sent if message = "". * 8 46* * grace_time_in_seconds * 8 47* * - Amount of time given to the user before the * 8 48* * user's process is actually terminated. * 8 49* * reply_reference_id * 8 50* * - Reference id that will be returned in the * 8 51* * as_reply_bump_user structure. A reply channel * 8 52* * must be specified in reply_channel in the * 8 53* * header of this structure. The reply message * 8 54* * will have the sturcture of asr_reply_bump_user. * 8 55* *********************************************************************** */ 8 56 8 57 dcl asr_bump_user_info_version_1 char (8) init ("asrbump1") int static options (constant); 8 58 8 59 dcl asr_bump_user_info_ptr ptr; 8 60 dcl 1 asr_bump_user_info aligned based (asr_bump_user_info_ptr), 8 61 2 header aligned like as_request_header, 8 62 2 version char (8), 8 63 2 process_id bit (36), 8 64 2 message char (100) unaligned, 8 65 2 grace_time_in_seconds fixed bin, 8 66 2 reply_reference_id bit (36); 8 67 8 68 /* *********************************************************************** 8 69* * asr_reply_bump_user - Structure sent with the IPC reply upon * 8 70* * initiating the bump. Note: the actual * 8 71* * bump does not take place until after the * 8 72* * given of default grace time. * 8 73* * code - Standard system status code. * 8 74* * reference_id * 8 75* * - Reference id supplied in asr_bump_user_info when * 8 76* * bump user request was made. * 8 77* *********************************************************************** */ 8 78 8 79 dcl 1 asr_reply_bump_user aligned based (asr_replyp), 8 80 2 code fixed bin (35), 8 81 2 reference_id bit (36); 8 82 8 83 8 84 dcl asr_admin_command_info_ptr pointer; 8 85 dcl 1 asr_admin_command_info aligned based (asr_admin_command_info_ptr), 8 86 2 header aligned like as_request_header, 8 87 2 version char (8), 8 88 2 flags aligned, 8 89 3 send_start_wakeup bit (1) unaligned, /* over reply channel */ 8 90 3 send_completion_wakeup bit (1) unaligned, /* over reply channel */ 8 91 3 send_completion_message bit (1) unaligned, 8 92 3 send_completion_mail bit (1) unaligned, 8 93 3 dialog bit (1) unaligned, /* NOT YET IMPLEMENTED */ 8 94 3 pad bit (31) unaligned, 8 95 2 dialog_info aligned, /* NOT YET IMPLEMENTED */ 8 96 3 event_channel fixed bin (71), /* NOTIFY ME ON READ/RIGHT */ 8 97 3 output_message_segment_pathname char (200) unaligned, /* Writes go here */ 8 98 3 input_message_segment_pathname char (200) unaligned, /* Reads come here */ 8 99 2 mail_destination char (200) unaligned, 8 100 2 command_length fixed bin (21), 8 101 2 command char (asr_ac_length refer (asr_admin_command_info.command_length)) unaligned; 8 102 8 103 /* See admin_dialog_info.incl.pl1 for related structures */ 8 104 8 105 dcl asr_ac_length fixed bin (21); 8 106 dcl ASR_AC_VERSION_1 char (8) init ("asrac001") int static options (constant); 8 107 8 108 dcl 1 asr_reply_admin_command aligned based (asr_replyp), 8 109 2 code fixed bin (35), 8 110 2 flags aligned, 8 111 3 command_refused bit (1) unaligned, 8 112 3 command_started bit (1) unaligned, 8 113 3 command_completed bit (1) unaligned, /* with or without errors */ 8 114 3 command_aborted bit (1) unaligned, 8 115 3 command_had_errors bit (1) unaligned, /* at least one error */ 8 116 3 pad bit (31) unaligned; 8 117 8 118 /**** The following structure is used by the Ring-1 PNT software to 8 119* notify the answering service of a PNT change which might affect 8 120* logged in processes. */ 8 121 8 122 dcl asr_note_pnt_change_info_ptr ptr; 8 123 8 124 dcl 1 asr_note_pnt_change_info structure aligned based (asr_note_pnt_change_info_ptr), 8 125 2 header aligned like as_request_header, 8 126 2 version char (8), 8 127 2 person_id char (32); 8 128 8 129 dcl ASR_NPC_INFO_VERSION_1 char (8) initial ("asrnpc01") internal static options (constant); 8 130 8 131 /* END INCLUDE FILE ... as_requests.incl.pl1 */ 456 457 /* Begin include file as_request_sender_.incl.pl1 84-06-06 BIM */ 9 2 9 3 /****^ HISTORY COMMENTS: 9 4* 1) change(86-10-14,Lippard), approve(85-12-30,MCR7326), 9 5* audit(86-10-24,GDixon), install(86-10-28,MR12.0-1200): 9 6* Added max_authorization and audit_flags. 9 7* END HISTORY COMMENTS */ 9 8 9 9 /* Structure passed from as_request_server_ to the various 9 10* requests to identify requester. */ 9 11 /* format: style3,indcomtxt */ 9 12 9 13 declare as_request_sender_ptr 9 14 pointer; 9 15 declare 1 as_request_sender aligned based (as_request_sender_ptr), 9 16 2 version char (8) aligned, 9 17 2 reply_message fixed bin (71), 9 18 2 group_id char (32) unaligned, 9 19 2 process_id bit (36), 9 20 2 validation_level 9 21 fixed bin (3), 9 22 2 authorization bit (72), 9 23 2 max_authorization 9 24 bit (72), 9 25 2 audit_flags bit (36); 9 26 9 27 declare AS_REQUEST_SENDER_VERSION_2 9 28 char (8) init ("asrqs002") internal static options (constant); 9 29 9 30 /* End include file as_request_sender_.incl.pl1 */ 457 458 /* BEGIN INCLUDE FILE process_status_return.incl.pl1 */ 10 2 10 3 /* T. Casey, May 1978 */ 10 4 10 5 dcl 1 process_status_return aligned, /* structure returned by hphcs_$process_status */ 10 6 2 target_proc bit (36), /* Input process id. */ 10 7 2 total_page_faults fixed bin (35), /* Total page faults in process. */ 10 8 2 aptptr ptr, /* ptr to user APTE */ 10 9 2 up_exec fixed bin, /* execution state. 1=run, 4=block */ 10 10 2 up_mp fixed bin, /* multiprogramming state. */ 10 11 2 up_block fixed bin (71), /* time of last block */ 10 12 2 up_cpu fixed bin (71), /* CPU usage in microseconds */ 10 13 2 up_page fixed bin (71), /* memory usage in Frankstons */ 10 14 2 virtual_cpu fixed bin (71), /* Process virtual CPU time */ 10 15 2 extra2 fixed bin (71); 10 16 10 17 /* END INCLUDE FILE process_status_return.incl.pl1 */ 458 459 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 11 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 7* Added sl_info structure and associated named constants for use in calling 11 8* sys_log_$general. 11 9* END HISTORY COMMENTS */ 11 10 11 11 11 12 /* format: style4 */ 11 13 11 14 dcl ( 11 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 11 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 11 17 SL_TYPE init (-1), /* type message */ 11 18 SL_LOG_SILENT init (0), /* log message */ 11 19 SL_LOG init (1), /* log & type message */ 11 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 11 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 11 22 ) fixed bin internal static options (constant); 11 23 11 24 dcl 1 sl_info aligned automatic, 11 25 2 version char(8), /* structure version */ 11 26 2 arg_list_ptr ptr, /* arg_list with values */ 11 27 2 loc, 11 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 11 29 /* These flags control where the corresponding data item is found.*/ 11 30 /* -1: data appears in the corresponding structure element below */ 11 31 /* 0: data is not present anywhere */ 11 32 /* +N: data is Nth item in argument list pointed to by */ 11 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 11 34 /* corresponding structure element. */ 11 35 /* if data = +N: */ 11 36 /* argN is data_ptr, argN+1 is data_len */ 11 37 /* if ioa_msg = +N: */ 11 38 /* argN+1, ... argLAST are arguments substituted into the */ 11 39 /* ioa_msg control string. The formatted msg is returned. */ 11 40 2 flags, 11 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 11 42 3 flags_pad bit(35) unal, 11 43 2 mode fixed bin, /* as-mode, command-mode */ 11 44 2 severity fixed bin, /* error severity */ 11 45 2 code fixed bin(35), /* error table code */ 11 46 2 caller char(65) varying, /* caller refname$entryname*/ 11 47 2 data, /* binary data ptr/length */ 11 48 3 data_ptr ptr, 11 49 3 data_lth fixed bin(21), 11 50 2 class char(10) varying, /* binary data class */ 11 51 2 ioa_msg char(500) varying; /* formatted message text */ 11 52 11 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 54 /* */ 11 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 11 56 /* their data types should be as shown in the structure above, except that */ 11 57 /* character strings should be char(*) nonvarying. */ 11 58 /* */ 11 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 60 11 61 /* value for sl_info.version */ 11 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 11 63 11 64 /* values for sl_info.mode */ 11 65 dcl (SL_INFO_as_mode init(1), 11 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 11 67 11 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 11 69 dcl (SL_INFO_arg_given_in_structure init(-1), 11 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 11 71 11 72 11 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 74 /* */ 11 75 /* The following static structures are commonly used in the Login Server */ 11 76 /* user control software. */ 11 77 /* */ 11 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 79 11 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 11 81 11 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 11 83 2 version char(8) init ("sl_info1"), 11 84 2 arg_list_ptr ptr init (null), 11 85 2 loc, 11 86 3 (mode init (-1), 11 87 severity init ( 1), 11 88 code init ( 2), 11 89 caller init (-1), 11 90 data init ( 0), 11 91 class init ( 0), 11 92 ioa_msg init ( 3)) fixed bin, 11 93 2 flags, 11 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 95 3 flags_pad bit(35) unal init ("0"b), 11 96 2 mode fixed bin init ( 1), 11 97 2 severity fixed bin init ( 0), 11 98 2 code fixed bin(35) init ( 0), 11 99 2 caller char(65) varying init (""), 11 100 2 data, 11 101 3 data_ptr ptr init (null), 11 102 3 data_lth fixed bin(21) init ( 0), 11 103 2 class char(10) varying init (""), 11 104 2 ioa_msg char(500) varying init (""); 11 105 11 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 11 107 11 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 11 109 2 version char(8) init ("sl_info1"), 11 110 2 arg_list_ptr ptr init (null), 11 111 2 loc, 11 112 3 (mode init (-1), 11 113 severity init ( 1), 11 114 code init ( 0), 11 115 caller init (-1), 11 116 data init ( 0), 11 117 class init ( 0), 11 118 ioa_msg init ( 2)) fixed bin, 11 119 2 flags, 11 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 121 3 flags_pad bit(35) unal init ("0"b), 11 122 2 mode fixed bin init ( 1), 11 123 2 severity fixed bin init ( 0), 11 124 2 code fixed bin(35) init ( 0), 11 125 2 caller char(65) varying init (""), 11 126 2 data, 11 127 3 data_ptr ptr init (null), 11 128 3 data_lth fixed bin(21) init ( 0), 11 129 2 class char(10) varying init (""), 11 130 2 ioa_msg char(500) varying init (""); 11 131 11 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 11 133 11 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 11 135 2 version char(8) init ("sl_info1"), 11 136 2 arg_list_ptr ptr init (null), 11 137 2 loc, 11 138 3 (mode init (-1), 11 139 severity init ( 1), 11 140 code init ( 0), 11 141 caller init (-1), 11 142 data init ( 0), 11 143 class init ( 0), 11 144 ioa_msg init ( 2)) fixed bin, 11 145 2 flags, 11 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 11 147 3 flags_pad bit(35) unal init ("0"b), 11 148 2 mode fixed bin init ( 1), 11 149 2 severity fixed bin init ( 0), 11 150 2 code fixed bin(35) init ( 0), 11 151 2 caller char(65) varying init (""), 11 152 2 data, 11 153 3 data_ptr ptr init (null), 11 154 3 data_lth fixed bin(21) init ( 0), 11 155 2 class char(10) varying init (""), 11 156 2 ioa_msg char(500) varying init (""); 11 157 11 158 11 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 11 160 11 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 11 162 2 version char(8) init ("sl_info1"), 11 163 2 arg_list_ptr ptr init (null), 11 164 2 loc, 11 165 3 (mode init (-1), 11 166 severity init ( 1), 11 167 code init ( 2), 11 168 caller init (-1), 11 169 data init ( 0), 11 170 class init ( 0), 11 171 ioa_msg init ( 4)) fixed bin, 11 172 2 flags, 11 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 174 3 flags_pad bit(35) unal init ("0"b), 11 175 2 mode fixed bin init ( 1), 11 176 2 severity fixed bin init ( 0), 11 177 2 code fixed bin(35) init ( 0), 11 178 2 caller char(65) varying init (""), 11 179 2 data, 11 180 3 data_ptr ptr init (null), 11 181 3 data_lth fixed bin(21) init ( 0), 11 182 2 class char(10) varying init (""), 11 183 2 ioa_msg char(500) varying init (""); 11 184 11 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 11 186 11 187 dcl 1 sl_info_code_msg aligned int static options(constant), 11 188 2 version char(8) init ("sl_info1"), 11 189 2 arg_list_ptr ptr init (null), 11 190 2 loc, 11 191 3 (mode init (-1), 11 192 severity init (-1), 11 193 code init ( 1), 11 194 caller init (-1), 11 195 data init ( 0), 11 196 class init ( 0), 11 197 ioa_msg init ( 2)) fixed bin, 11 198 2 flags, 11 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 200 3 flags_pad bit(35) unal init ("0"b), 11 201 2 mode fixed bin init ( 1), 11 202 2 severity fixed bin init ( 0), 11 203 2 code fixed bin(35) init ( 0), 11 204 2 caller char(65) varying init (""), 11 205 2 data, 11 206 3 data_ptr ptr init (null), 11 207 3 data_lth fixed bin(21) init ( 0), 11 208 2 class char(10) varying init (""), 11 209 2 ioa_msg char(500) varying init (""); 11 210 11 211 11 212 /* Syntax: call Trace (ioa_ctl, args); */ 11 213 11 214 dcl 1 sl_info_msg aligned int static options(constant), 11 215 2 version char(8) init ("sl_info1"), 11 216 2 arg_list_ptr ptr init (null), 11 217 2 loc, 11 218 3 (mode init (-1), 11 219 severity init (-1), 11 220 code init ( 0), 11 221 caller init (-1), 11 222 data init ( 0), 11 223 class init ( 0), 11 224 ioa_msg init ( 1)) fixed bin, 11 225 2 flags, 11 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 227 3 flags_pad bit(35) unal init ("0"b), 11 228 2 mode fixed bin init ( 1), 11 229 2 severity fixed bin init ( 0), 11 230 2 code fixed bin(35) init ( 0), 11 231 2 caller char(65) varying init (""), 11 232 2 data, 11 233 3 data_ptr ptr init (null), 11 234 3 data_lth fixed bin(21) init ( 0), 11 235 2 class char(10) varying init (""), 11 236 2 ioa_msg char(500) varying init (""); 11 237 11 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 459 460 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 12 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 12 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 12 8* attribute switches. 12 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 12 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 12 12* be deleted. 12 13* B) Add constants identifying attributes that can be changed by user at 12 14* login, etc. 12 15* END HISTORY COMMENTS */ 12 16 12 17 12 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 12 19 12 20 /* format: style4 */ 12 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 12 22 (2 administrator bit (1), /* 1 system administrator privileges */ 12 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 12 24 2 nobump bit (1), /* 2 user cannot be bumped */ 12 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 12 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 12 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 12 28* . of same project (distinct from "nobump") */ 12 29 2 nolist bit (1), /* 7 don't list user on "who" */ 12 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 12 31 2 multip bit (1), /* 9 user may have several processes */ 12 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 12 33 2 brief bit (1), /* 11 no login or logout message */ 12 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 12 35 2 vhomedir bit (1), /* 13 user may change homedir */ 12 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 12 37 2 sb_ok bit (1), /* 15 user may be standby */ 12 38 2 pm_ok bit (1), /* 16 user may be primary */ 12 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 12 40 2 daemon bit (1), /* 18 user may login as daemon */ 12 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 12 42 2 no_warning bit (1), /* 20 no warning message */ 12 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 12 44* . in PDT: this user has an individual load control group */ 12 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 12 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 12 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 12 48 2 pad bit (12)) unaligned; 12 49 12 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 12 51 ("none", /* 0 */ 12 52 "administrator", /* 1 */ 12 53 "primary_line", /* 2 */ 12 54 "nobump", /* 3 */ 12 55 "guaranteed_login", /* 4 */ 12 56 "anonymous", /* 5 */ 12 57 "nopreempt", /* 6 */ 12 58 "nolist", /* 7 */ 12 59 "dialok", /* 8 */ 12 60 "multip", /* 9 */ 12 61 "bumping", /* 10 */ 12 62 "brief", /* 11 */ 12 63 "vinitproc", /* 12 */ 12 64 "vhomedir", /* 13 */ 12 65 "nostartup", /* 14 */ 12 66 "no_secondary", /* 15 */ 12 67 "no_prime", /* 16 */ 12 68 "no_eo", /* 17 */ 12 69 "daemon", /* 18 */ 12 70 "", /* 19 vdim OBSOLETE */ 12 71 "no_warning", /* 20 */ 12 72 "igroup", /* 21 */ 12 73 "save_pdir", /* 22 */ 12 74 "disconnect_ok", /* 23 */ 12 75 "save_on_disconnect"); /* 24 */ 12 76 12 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 12 78 ("null", /* 0 */ 12 79 "admin", /* 1 */ 12 80 "", "", /* 2 - 3 */ 12 81 "guar", /* 4 */ 12 82 "anon", /* 5 */ 12 83 "", "", /* 6 - 7 */ 12 84 "dial", /* 8 */ 12 85 "multi_login", /* 9 */ 12 86 "preempting", /* 10 */ 12 87 "", /* 11 */ 12 88 "v_process_overseer", /* 12 */ 12 89 "v_home_dir", /* 13 */ 12 90 "no_start_up", /* 14 */ 12 91 "no_sec", /* 15 */ 12 92 "no_primary", /* 16 */ 12 93 "no_edit_only", /* 17 */ 12 94 "op_login", /* 18 */ 12 95 "", /* 19 */ 12 96 "nowarn", /* 20 */ 12 97 "", "", "", /* 21 - 23 */ 12 98 "save"); /* 24 */ 12 99 12 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 12 101 options(constant) init("000000000010000000010000000000000000"b); 12 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 12 103 12 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 12 105 options(constant) init("000000000010000000010000000000000000"b); 12 106 /* PDT value for (brief, no_warning) is default */ 12 107 12 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 12 109 options(constant) init("000100000110010000010000000000000000"b); 12 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 12 111 13 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 13 2 13 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 4 /* */ 13 5 /* This include file describes the attributes of an absentee job. It is */ 13 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 13 7 /* and PIT.incl.pl1. */ 13 8 /* */ 13 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 10 13 11 /****^ HISTORY COMMENTS: 13 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 13 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 14* Separated abs_attributes from the request structure 13 15* (abs_message_format.incl.pl1) so that the identical structure could be 13 16* used in the ute structure (user_table_entry.incl.pl1). 13 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 13 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 19* Added ABS_ATTRIBUTE_NAMES array. 13 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 13 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 13 22* Added the no_start_up flag. SCP6367 13 23* END HISTORY COMMENTS */ 13 24 13 25 dcl 1 user_abs_attributes aligned based, 13 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 13 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 13 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 13 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 13 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 13 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 13 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 13 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 13 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 13 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 13 36 2 attributes_pad bit (26) unaligned; 13 37 13 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 13 39 "restartable", 13 40 "user_deferred_until_time", 13 41 "proxy", 13 42 "set_bit_cnt", 13 43 "time_in_gmt", 13 44 "user_deferred_indefinitely", 13 45 "secondary_ok", 13 46 "truncate_absout", 13 47 "restarted", 13 48 "no_start_up"); 13 49 13 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 13 51 12 112 12 113 12 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 460 461 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* This include file requires that the user include */ 14 6 /* user_attributes.incl.pl1 as well. It also includes */ 14 7 /* abs_attributes.incl.pl1 itself. */ 14 8 /* */ 14 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 14 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 14 11 /* */ 14 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 13 14 14 /****^ HISTORY COMMENTS: 14 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 14 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 14 17* This comment for hcom. 14 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 14 19* anstbl.incl.pl1, and dutbl.incl.pl1. 14 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 14 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 14 22* 84-07-12 BIM added min_process_authorization 14 23* 84-12-31 Keith Loepere added pdir_dir_quota 14 24* 85-01-16 by E. Swenson to add ute.session_uid 14 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 14 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 14 27* Added fields for DSA login server support. 14 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 14 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 14 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 14 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 14 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 14 33* Added disconnection_rel_minutes. 14 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 14 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 36* Changed structure under ute.abs_attributes to use like structure in 14 37* abs_attributes.incl.pl1. This allows the same attributes to be used 14 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 14 39* file. 14 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 14 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 14 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 14 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 45* A) Global reorganization to locate things by type of data. 14 46* B) Eliminate ute.uflags.logged_in. 14 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 14 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 49* A) Reduced overlength person and project fields to proper length. 14 50* B) Adjusted dialed-console section to begin on even word boundary. 14 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 14 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 53* Add ute.line_type. 14 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 14 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 14 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 14 57* for the storage. SCP6367 14 58* END HISTORY COMMENTS */ 14 59 14 60 /* format: style4 */ 14 61 14 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 63 /* */ 14 64 /* Each of the named sections below defines a type of data. Typing comes */ 14 65 /* from data associated with the ute entry itself, with the person, with */ 14 66 /* login argument data, from the main user of the data (eg, dialup_, */ 14 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 14 68 /* and is an even number of words long. The total structure is 300 decimal */ 14 69 /* words long. */ 14 70 /* */ 14 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 72 14 73 14 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 14 75 14 76 dcl utep pointer automatic init (null); 14 77 14 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 14 79 14 80 /* Variables which give state of this entry */ 14 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 14 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 14 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 14 84 2 next_free fixed bin, /* points to previous free entry */ 14 85 14 86 /* Information user gave about person_id associated with this entry. */ 14 87 2 person char (24) unal, /* user's name */ 14 88 2 project char (12) unal, /* project of absentee user */ 14 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 14 90 2 tag_pad bit (27) unal, 14 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 14 92 2 login_flags, /* flags for login data */ 14 93 3 cpw bit (1) unal, /* flag for wish to change password */ 14 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 14 95 3 special_pw unal, /* dial or slave */ 14 96 4 dial_pw bit (1) unal, /* true if dial -user */ 14 97 4 slave_pw bit (1) unal, /* true if slave -user */ 14 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 14 99 3 cda bit (1) unal, /* flag to change default authorization */ 14 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 14 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 14 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 14 103 3 pw_pad bit (25) unal, /* spare parts */ 14 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 14 105 /* Must remain last in pw_flags so it does not */ 14 106 /* appear in PW_FLAG_VALUES array below. */ 14 107 2 generated_pw char (8) unal, /* user must type this as new password */ 14 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 14 109 2 process_authorization bit (72), /* access_authorization of this process */ 14 110 14 111 /* Information user gave about process associated with this entry. */ 14 112 2 outer_module char (32) unal, /* Name of console dim */ 14 113 2 home_dir char (64) unal, /* initial home directory */ 14 114 2 init_proc char (64) unal, /* name of login responder */ 14 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 14 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 14 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 14 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 14 119 2 initial_ring fixed bin, /* ring process will be started in */ 14 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 14 121 2 ln_args fixed bin, /* length of string containing arguments */ 14 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 14 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 14 124 14 125 /* Most of the following information is relevant only to absentee processes */ 14 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 14 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 14 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 14 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 14 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 14 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 14 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 14 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 14 134* (but see uflags.adjust_abs_q_no). */ 14 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 14 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 14 137 2 abs_flags, 14 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 14 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 14 140 3 abs_flags_pad bit (34) unal, 14 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 14 142 2 sender char (32) unal, /* name of RJE station that job is from */ 14 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 14 144 2 proxy_project char (9) unal, 14 145 2 proxy_project_pad char (3) unal, 14 146 2 abs_pad fixed bin, 14 147 14 148 /* Information about process actually created */ 14 149 2 proc_id bit (36), /* process id of absentee process */ 14 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 14 151 2 process_authorization_range (2) bit (72) aligned, 14 152 2 audit bit (36), /* audit flags for user */ 14 153 2 lot_size fixed bin, /* Size of linkage offset table */ 14 154 2 kst_size fixed bin, /* Size of process known segment table */ 14 155 2 cls_size fixed bin, /* Size of process combined linkage */ 14 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 14 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 14 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 14 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 14 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 14 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 14 162 2 pdir_pad fixed bin(17) unal, 14 163 2 process_pad fixed bin, 14 164 14 165 /* Information about primary terminal associated with this entry */ 14 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 14 167 2 terminal_type char (32) unaligned, /* terminal type */ 14 168 2 line_type fixed bin, /* line type */ 14 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 14 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 14 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 14 172 14 173 /* Variables useful for dialed terminals */ 14 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 14 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 14 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 14 177 2 dial_server_flags, 14 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 14 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 14 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 14 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 14 182 14 183 /* Information about usage/accounting. Device usage meters are in a 14 184* separate segment, "devtab" */ 14 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 14 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 14 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 14 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 14 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 14 190 2 last_update_time fixed bin (71), /* time of last account update */ 14 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 14 192 2 ndevices fixed bin, /* Count of attached devices */ 14 193 2 device_head fixed bin, /* Table index of head of device chain */ 14 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 14 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 14 196 2 rs_number_pad bit(30) unal, 14 197 2 usage_pad fixed bin, 14 198 14 199 /* Information for dialup_ (control variables). */ 14 200 2 event fixed bin (71), /* event associated with channel or user manager */ 14 201 2 uprojp ptr, /* ptr to user project sat entry */ 14 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 14 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 14 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 14 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 14 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 14 207 2 count fixed bin, /* counter for logins and dialups */ 14 208 2 n_processes fixed bin, /* number of processes created in this session */ 14 209 2 lock_value fixed bin, /* number of locks set for this entry */ 14 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 14 211 2 login_code char (8) unal, /* login command from LOGIN line */ 14 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 14 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 14 214 2 logout_type char (4) unal, /* type of logout */ 14 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 14 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 14 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 14 218 2 work_class fixed bin, /* work class used by priority scheduler */ 14 219 2 group char (8) unal, /* party group identifier */ 14 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 14 221 14 222 2 uflags, /* Miscellaneous flags */ 14 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 14 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 14 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 14 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 14 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 14 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 14 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 14 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 14 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 14 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 14 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 14 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 14 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 14 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 14 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 14 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 14 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 14 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 14 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 14 242 3 uflags_pad bit (17) unal, 14 243 14 244 /* Information used by load_ctl_ for the process */ 14 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 14 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 14 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 14 248 14 249 14 250 /* Information for login server */ 14 251 2 login_server_info, 14 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 14 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 14 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 14 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 14 256 3 process_id bit (36) aligned, /* process_id of login server */ 14 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 14 258 14 259 /* values for ute.process_type */ 14 260 14 261 dcl (PT_INTERACTIVE initial (1), 14 262 PT_ABSENTEE initial (2), 14 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 14 264 14 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 14 266 "INVALID-TYPE", 14 267 "interactive", 14 268 "absentee", 14 269 "daemon"); 14 270 14 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 14 272 "UNKNOWN-TABLE", 14 273 "answer_table", 14 274 "absentee_user_table", 14 275 "daemon_user_table"); 14 276 14 277 14 278 /* values for ute.pw_flags.mask_ctl */ 14 279 14 280 dcl (DO_MASK init ("00"b), 14 281 DONT_MASK init ("01"b), 14 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 14 283 14 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 14 285 "do_mask", "dont_mask", "derive_mask", ""); 14 286 14 287 14 288 /* names for ute.pw_flags */ 14 289 14 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 14 291 "cpw", 14 292 "generate_pw", 14 293 "dial_pw", 14 294 "slave_pw", 14 295 "cdp", 14 296 "cda", 14 297 "auth_given", 14 298 "noprint", 14 299 "operator"); 14 300 14 301 /* names for ute.uflags */ 14 302 14 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 14 304 "dont_call_init_admin", 14 305 "ip_given", 14 306 "ss_given", 14 307 "lvs_attached", 14 308 "send_initial_string", 14 309 "adjust_abs_q_no", 14 310 "foreground_secondary_ok", 14 311 "foreground_job", 14 312 "sus_sent", 14 313 "suspended", 14 314 "ignore_cpulimit", 14 315 "deferral_logged", 14 316 "save_if_disconnected", 14 317 "disconnected", 14 318 "disconnected_list", 14 319 "proc_create_ok", 14 320 "activity_can_unbump", 14 321 "fpe_causes_logout", 14 322 "user_specified_immediate"); 14 323 14 324 /* names for ute.abs_flags */ 14 325 14 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 14 327 "abs_run", 14 328 "notify"); 14 329 14 330 /* names of ute.dial_server_flags */ 14 331 14 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 14 333 "registered", 14 334 "privileged"); 14 335 14 336 /* values of ute.login_result */ 14 337 14 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 14 339 "logged in", 14 340 "login failed, hangup", 14 341 "login failed, try again"); 14 342 14 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 461 462 463 /* BEGIN MESSAGE DOCUMENTATION 464* 465* Message: 466* dpg_: ERROR_MESSAGE. Calling hphcs_$destroy_process_begin for 467* PERSON.PROJECT.TAG on channel CHN, process_id PID. 468* 469* S: $as1 470* 471* T: $run 472* 473* M: An error has occurred while destroying a process belonging 474* to the user PERSON.PROJECT.TAG connected to terminal channel CHN. 475* This process probably cannot be destroyed. ERROR_MESSAGE is the text 476* associated with the error returned by hphcs_$destroy_process_begin. 477* 478* A: $inform 479* 480* 481* Message: 482* dpg_: ERROR_MESSAGE. destroying process WWWWWWWWWWWW for NAME.PROJ 483* 484* S: as (severity2) 485* 486* T: $run 487* 488* M: An error has occurred while destroying a process belonging 489* to the user NAME.PROJ. He was not charged for his CPU usage. 490* 491* A: $inform 492* 493* 494* Message: 495* dpg_: Saved >pdd>PERS.PROJ.f.CHN after fatal process error. 496* 497* S: as (severity1) 498* 499* T: $run 500* 501* M: The process directory belonging to user PERS.PROJ has been saved after a 502* fatal process error. It has been renamed to the name shown in the message. 503* It will be saved until the next shutdown. System programmers might want to 504* examine its contents to determine the cause of the fatal process error. 505* 506* A: Inform the system programming staff. Do so well in advance of the next shutdown. 507* 508* 509* Message: 510* dpg_: ERROR_MESSAGE. Attempting to rename pdir for NAME.PROJ CHN after fatal process error. 511* 512* S: as (severity1) 513* 514* T: $run 515* 516* M: The error described by ERROR_MESSAGE occurred while attempting to save 517* the process directory belonging to the user PERS.PROJ after a fatal process error. 518* The directory was not saved. A typical cause of this is that the user already has 519* a saved process directory from a previous fatal process error in this bootload. 520* 521* A: $inform 522* 523* 524* Message: 525* dpg_: ERROR_MESSAGE. Creating saved stack_0 for PERS.PROJ (PROCESSID). 526* 527* S: as (severity0) 528* 529* T: $run 530* 531* M: An error has occurred while attempting to create a segment in the 532* saved process directory for copying the ring-0 stack of the defunct process. 533* The ring-0 stack will not be copied into the saved process directory. 534* 535* A: $ignore 536* 537* 538* Message: 539* dpg_: COND condition signalled while copying stack_0 into >pdd>DIRNAME 540* 541* S: as (severity0) 542* 543* T: $run 544* 545* M: An error occurred while copying the ring-0 stack of the defunct 546* process from ring-0 into the saved process directory. This error caused 547* the COND condition to be signalled. The ring-0 stack will not be copied 548* into the saved process directory. 549* 550* A: $ignore 551* 552* 553* Message: 554* dpg_: USER (PROCESSID) {set/replaced} process termination monitor. 555* 556* S: as (severity0) 557* 558* T: $run 559* 560* M: USER (processid PROCESSID) will receive notifications of all 561* process destructions from the Answering Service. 'set' indicates that 562* the process was not already monitoring processes; 'replaced' indicates that 563* the process already had a monitor established, and that it has been 564* replaced by this request. 565* 566* A: $ignore 567* 568* 569* Message: 570* dpg_: removed USER (PROCESSID) process termination monitor. 571* 572* S: as (severity0) 573* 574* T: $run 575* 576* M: Process termination monitoring for USER (process id PROCESSID) 577* has been terminated by user request, IPC error, or the destruction 578* of the process. 579* 580* A: $ignore 581* 582* 583* END MESSAGE DOCUMENTATION */ 584 585 end dpg_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/29/88 0858.7 dpg_.pl1 >spec>install>1093>dpg_.pl1 445 1 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 450 2 02/12/85 1429.5 access_audit_bin_header.incl.pl1 >ldd>include>access_audit_bin_header.incl.pl1 451 3 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 452 4 08/06/87 0913.4 as_audit_structures.incl.pl1 >ldd>include>as_audit_structures.incl.pl1 453 5 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 454 6 08/06/87 0913.4 as_meter_numbers.incl.pl1 >ldd>include>as_meter_numbers.incl.pl1 455 7 10/30/86 2010.5 as_request_header.incl.pl1 >ldd>include>as_request_header.incl.pl1 456 8 02/12/85 1429.5 as_requests.incl.pl1 >ldd>include>as_requests.incl.pl1 457 9 10/30/86 2010.5 as_request_sender_.incl.pl1 >ldd>include>as_request_sender_.incl.pl1 458 10 08/03/78 2021.0 process_status_return.incl.pl1 >ldd>include>process_status_return.incl.pl1 459 11 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 460 12 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 12-112 13 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 461 14 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. AS_AUDIT_PROCESS_DESTROY 000152 constant fixed bin(17,0) initial dcl 4-162 set ref 213* CI 000100 automatic structure level 1 dcl 331 set ref 384 384 DIR_ACL_INIT 000000 constant structure array level 1 dcl 341 ref 365 DPG_METER 000146 constant fixed bin(17,0) initial dcl 6-25 set ref 148* 171* 176* 218* ME 000077 constant char(32) initial packed unaligned dcl 134 set ref 165* 195* 261* 284* 287* 323* 353* 359* 385* 403* 434* P_asr_sender_ptr parameter pointer dcl 224 ref 221 233 P_reason parameter char packed unaligned dcl 69 ref 13 150 P_request_header_ptr parameter pointer dcl 223 ref 221 234 RW_ACCESS constant bit(3) initial packed unaligned dcl 3-11 ref 247 247 424 SL_LOG 000153 constant fixed bin(17,0) initial dcl 11-14 set ref 165* 195* 353* 359* SL_LOG_SILENT 000074 constant fixed bin(17,0) initial dcl 11-14 set ref 261* 287* 323* 385* 403* 434* SMA_ACCESS constant bit(3) initial packed unaligned dcl 3-11 ref 374 STACK_0_NAME 000064 constant char(32) initial packed unaligned dcl 137 set ref 393* 426* 428* STACK_0_QUOTA constant fixed bin(17,0) initial dcl 138 ref 408 ZERO_RING_BRACKETS 000074 constant fixed bin(6,0) initial array dcl 136 set ref 428* access_name 000165 automatic char(32) array level 2 in structure "segment_acl" dcl 121 in procedure "dpg_" set ref 422* access_name 000132 automatic char(32) array level 2 in structure "dir_acl" packed packed unaligned dcl 332 in procedure "Save_Pdir" set ref 366* 373* addr builtin function dcl 141 ref 163 163 192 192 235 284 284 298 377 377 384 384 426 426 any_other 000000 stack reference condition dcl 143 ref 382 439 aptptr 2 000216 automatic pointer level 2 dcl 10-5 set ref 181* arh_header_ based structure level 1 dcl 2-26 arh_user_info_ based structure level 1 dcl 2-39 as_access_audit_$dpg_buzzard 000010 constant entry external dcl 73 ref 284 as_access_audit_$process 000012 constant entry external dcl 74 ref 213 as_channel_audit_record_ based structure level 1 dcl 4-74 as_data_$buzzardp 000110 external static pointer dcl 5-32 set ref 252 275 280 280 282* 300 321 321* as_data_$debug_flag 000112 external static bit(1) dcl 5-84 ref 153 188 369 as_dial_service_audit_record_ based structure level 1 dcl 4-105 as_ia_audit_record_ based structure level 1 dcl 4-52 as_meter_$enter 000016 constant entry external dcl 76 ref 148 176 as_meter_$exit 000020 constant entry external dcl 76 ref 171 218 as_request_header based structure level 1 dcl 7-62 as_request_sender based structure level 1 dcl 9-15 set ref 284 284 as_request_sender_ptr 000214 automatic pointer dcl 9-13 set ref 233* 235 243 243 254 277 279 284 284 as_user_message_$priv_delete_process_messages 000014 constant entry external dcl 75 ref 217 asr_buzzard_info based structure level 1 dcl 8-29 asr_buzzard_info_version_1 000062 constant char(8) initial packed unaligned dcl 8-27 ref 237 asr_buzzard_infop 000212 automatic pointer dcl 8-28 set ref 234* 237 237 255 258 259 268 276 278 asr_buzzard_notification based structure level 1 dcl 8-35 asr_reply based structure level 1 dcl 8-21 set ref 236* asr_replyp 000210 automatic pointer dcl 8-20 set ref 235* 236 239 243 246 248 260 269 272 284 287 298* 299 307 at 100 based structure level 2 dcl 14-78 audit_record_header based structure level 1 dcl 2-18 bp 000250 automatic pointer dcl 296 in procedure "notify_buzzards" set ref 300* 301 302 303* bp parameter pointer dcl 315 in procedure "remove_buzzard" ref 314 317 317 317 319 319 319 321 321 325 buzzard based structure level 1 dcl 106 set ref 273 325 buzzardp 000100 automatic pointer dcl 113 set ref 252* 253 254 255* 258 259 261 261 266* 266 273* 274 275 276 277 278 279 280 282 287 287 302* 303 304 304* 307 308 308 309* 323 323 code based fixed bin(35,0) level 2 in structure "asr_reply" dcl 8-21 in procedure "dpg_" set ref 239* 243* 246 248* 269* 272* 284* 287 code 000102 automatic fixed bin(35,0) dcl 114 in procedure "dpg_" set ref 163* 165 165* 192* 193 193 195* 308* 309 352* 353 353* 377* 379 393* 395 400* 402 408* 410 418* 420 421* 426* 428* 431* 434* condition_info based structure level 1 dcl 1-14 condition_name 3 000100 automatic varying char(32) level 2 dcl 331 set ref 385* cpu_this_process 356 based fixed bin(71,0) level 2 dcl 14-78 set ref 197 199* 203* 203 cpu_usage 360 based fixed bin(71,0) level 2 dcl 14-78 set ref 197* 197 206* 206 data 1 based bit(36) level 2 dcl 8-21 set ref 260* deceased parameter bit(36) dcl 294 ref 293 299 304 dial_ctl_$dial_broom 000022 constant entry external dcl 77 ref 152 dir_acl 000132 automatic structure array level 1 dcl 332 set ref 365* 377 377 dir_name 000103 automatic char(168) packed unaligned dcl 115 set ref 399* 400* 408* error_table_$action_not_performed 000076 external static fixed bin(35,0) dcl 101 ref 269 error_table_$insufficient_access 000104 external static fixed bin(35,0) dcl 229 ref 248 error_table_$no_dir 000100 external static fixed bin(35,0) dcl 102 ref 193 error_table_$unimplemented_version 000102 external static fixed bin(35,0) dcl 228 ref 239 find_condition_info_ 000024 constant entry external dcl 78 ref 384 get_group_id_$tag_star 000026 constant entry external dcl 79 ref 373 group_id 4 based char(32) level 2 in structure "as_request_sender" packed packed unaligned dcl 9-15 in procedure "dpg_" set ref 243* 279 group_id 10 based char(32) level 2 in structure "buzzard" dcl 106 in procedure "dpg_" set ref 261* 279* 287* 323* hcs_$add_acl_entries 000030 constant entry external dcl 80 ref 426 hcs_$chname_file 000032 constant entry external dcl 81 ref 352 hcs_$delentry_seg 000034 constant entry external dcl 82 ref 431 hcs_$make_seg 000036 constant entry external dcl 83 ref 393 hcs_$replace_dir_acl 000040 constant entry external dcl 84 ref 377 hcs_$terminate_noname 000042 constant entry external dcl 85 ref 421 hcs_$wakeup 000044 constant entry external dcl 86 ref 308 hphcs_$copy_stack_0 000046 constant entry external dcl 87 ref 418 hphcs_$destroy_process_begin 000050 constant entry external dcl 88 ref 163 hphcs_$destroy_process_finish 000052 constant entry external dcl 89 ref 192 hphcs_$quota_read 000054 constant entry external dcl 90 ref 400 hphcs_$quota_set 000056 constant entry external dcl 92 ref 408 hphcs_$set_ring_brackets 000060 constant entry external dcl 93 ref 428 info_channel 6 based fixed bin(71,0) level 2 in structure "asr_buzzard_info" dcl 8-29 in procedure "dpg_" ref 255 258 268 276 info_channel 4 based fixed bin(71,0) level 2 in structure "buzzard" dcl 106 in procedure "dpg_" set ref 258* 276* 308* logout_type 422 based char(4) level 2 packed packed unaligned dcl 14-78 ref 183 183 183 ltrp 000156 automatic fixed bin(71,0) dcl 116 set ref 400* lv_request_$cleanup_process 000062 constant entry external dcl 94 ref 156 lvs_attached 431(03) based bit(1) level 3 packed packed unaligned dcl 14-78 ref 156 mem_this_process 364 based fixed bin(71,0) level 2 dcl 14-78 set ref 198 200* 208* 208 mem_usage 362 based fixed bin(71,0) level 2 dcl 14-78 set ref 198* 198 210* 210 mode 000207 automatic bit(36) packed unaligned dcl 226 in procedure "dpg_" set ref 243* 247 mode 10 000132 automatic bit(36) array level 2 in structure "dir_acl" dcl 332 in procedure "Save_Pdir" set ref 374* modes 10 000165 automatic bit(36) array level 2 dcl 121 set ref 424* my_reference_id 10 based bit(36) level 2 dcl 8-29 ref 259 278 n_acl_entries 000214 automatic fixed bin(17,0) dcl 336 set ref 369* 372* 377* name 000215 automatic char(32) packed unaligned dcl 337 set ref 348* 352* 352* newdir 000235 automatic char(168) packed unaligned dcl 339 set ref 392* 393* 426* 428* newname 000225 automatic char(32) packed unaligned dcl 338 set ref 350* 352* 359* 377* 385* 392 399 403* next 2 based pointer level 2 dcl 106 set ref 266 275* 303 317 317 319* 319 321 null builtin function dcl 141 ref 181 253 274 280 14-76 301 317 319 384 384 p parameter pointer dcl 68 ref 13 149 174 177 pdir_saved 000160 automatic bit(1) initial dcl 117 set ref 117* 188 193 358* pdir_volume_manager_$note_pdir_deletion 000064 constant entry external dcl 95 ref 188 pdquota 000161 automatic fixed bin(18,0) dcl 118 set ref 400* 408 person 4 based char(24) level 2 packed packed unaligned dcl 14-78 set ref 165* 195* 350 353* 366 422 434* prev based pointer level 2 dcl 106 set ref 274* 280* 317* 317 319 319 proc_id 276 based bit(36) level 2 dcl 14-78 set ref 154* 156* 162 165* 180 195* 216* 217* 348* 418* 434* process_id 14 based bit(36) level 2 in structure "as_request_sender" dcl 9-15 in procedure "dpg_" set ref 254 277 process_id 1 based bit(36) level 2 in structure "asr_buzzard_notification" dcl 8-35 in procedure "dpg_" set ref 299* process_id 6 based bit(36) level 2 in structure "buzzard" dcl 106 in procedure "dpg_" set ref 254 261* 277* 287* 304 308* 323* process_status_return 000216 automatic structure level 1 dcl 10-5 set ref 161* 163 163 179* 192 192 processid_message 000246 automatic fixed bin(71,0) dcl 295 set ref 298 308* project 12 based char(12) level 2 packed packed unaligned dcl 14-78 set ref 165* 195* 350 353* 366 422 434* rcode 000100 automatic fixed bin(35,0) dcl 383 set ref 384* 385 rcp_sys_$unassign_process 000066 constant entry external dcl 96 ref 154 reason 000162 automatic char(8) packed unaligned dcl 119 set ref 150* 152 record_quota_overflow 000000 stack reference condition dcl 144 ref 397 415 419 441 reply_message 2 based fixed bin(71,0) level 2 dcl 9-15 set ref 235 rqo_sw 000164 automatic bit(1) packed unaligned dcl 120 set ref 396* 398* 415 rtrim builtin function dcl 141 ref 350 350 350 366 366 392 399 422 422 save_pdir 100(21) based bit(1) level 3 packed packed unaligned dcl 14-78 ref 183 segment_acl 000165 automatic structure array level 1 dcl 121 set ref 426 426 slvid 000200 automatic bit(36) packed unaligned dcl 126 set ref 400* stack_0_ptr 000202 automatic pointer dcl 127 set ref 393* 418* 421* 431* sys_log_ 000072 constant entry external dcl 98 ref 261 287 323 359 385 403 sys_log_$error_log 000070 constant entry external dcl 97 ref 165 195 353 434 taccsw 000204 automatic fixed bin(1,0) dcl 128 set ref 400* tag 15 based char(1) level 2 packed packed unaligned dcl 14-78 set ref 165* target_proc 000216 automatic bit(36) level 2 dcl 10-5 set ref 162* 180* tty_name 316 based char(32) level 2 packed packed unaligned dcl 14-78 set ref 165* 350 353* tup 000205 automatic bit(36) dcl 129 set ref 400* uflags 431 based structure level 2 dcl 14-78 unique_chars_ 000074 constant entry external dcl 99 ref 348 unspec builtin function dcl 141 set ref 161* 179* 236* up_page 12 000216 automatic fixed bin(71,0) level 2 dcl 10-5 set ref 208 210 up_sysctl_$check_acs 000106 constant entry external dcl 231 ref 243 used 000206 automatic fixed bin(17,0) dcl 130 set ref 400* user_abs_attributes based structure level 1 dcl 13-25 user_attributes based structure level 1 dcl 12-21 user_reference_id 7 based bit(36) level 2 dcl 106 set ref 259* 278* 307 ute based structure level 1 dcl 14-78 utep 000236 automatic pointer initial dcl 14-76 set ref 149* 152* 154 156 156 162 165 165 165 165 165 177* 180 183 183 183 183 188* 195 195 195 197 197 197 198 198 198 199 200 203 203 206 206 208 208 210 210 213* 216 217 14-76* 348 350 350 350 353 353 353 366 366 418 422 422 434 434 434 validation_level 15 based fixed bin(3,0) level 2 dcl 9-15 set ref 243 version 4 based char(8) level 2 dcl 8-29 ref 237 237 virtual_cpu 14 000216 automatic fixed bin(71,0) level 2 dcl 10-5 set ref 203 206 your_reference_id based bit(36) level 2 dcl 8-35 set ref 307* zero_pad 11 000165 automatic bit(36) array level 2 dcl 121 set ref 425* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSQ_METER internal static fixed bin(17,0) initial dcl 6-28 ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 13-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 14-326 ABS_TRYLOG_METER internal static fixed bin(17,0) initial dcl 6-35 ACCESS_AUDIT_HEADER_VERSION_3 internal static fixed bin(9,0) initial unsigned dcl 2-54 ACCTUP_METER internal static fixed bin(17,0) initial dcl 6-26 ADMIN_METER internal static fixed bin(17,0) initial dcl 6-32 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 12-77 ARH_TYPE_NO_PROXY internal static fixed bin(17,0) initial dcl 2-52 ARH_TYPE_PROXY internal static fixed bin(17,0) initial dcl 2-50 ASINIT_METER internal static fixed bin(17,0) initial dcl 6-19 ASR_ABS_COMMAND internal static fixed bin(17,0) initial dcl 7-29 ASR_AC_VERSION_1 internal static char(8) initial packed unaligned dcl 8-106 ASR_ADMIN_COMMAND internal static fixed bin(17,0) initial dcl 7-29 ASR_BUMP_USER internal static fixed bin(17,0) initial dcl 7-29 ASR_COM_CHANNEL_INFO internal static fixed bin(17,0) initial dcl 7-29 ASR_DAEMON_COMMAND internal static fixed bin(17,0) initial dcl 7-29 ASR_DEFER_IN_ADMIN_MODE internal static bit(1) initial array packed unaligned dcl 7-45 ASR_DIAL_OUT internal static fixed bin(17,0) initial dcl 7-29 ASR_DIAL_SERVER internal static fixed bin(17,0) initial dcl 7-29 ASR_FIRST_TYPE internal static fixed bin(17,0) initial dcl 7-29 ASR_FPE_CAUSES_LOGOUT internal static fixed bin(17,0) initial dcl 7-29 ASR_FPE_CAUSES_NEW_PROC internal static fixed bin(17,0) initial dcl 7-29 ASR_LAST_TYPE internal static fixed bin(17,0) initial dcl 7-29 ASR_NOTE_PNT_CHANGE internal static fixed bin(17,0) initial dcl 7-29 ASR_NPC_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 8-129 ASR_PROC_TERM_NOTIFY internal static fixed bin(17,0) initial dcl 7-29 ASR_REQUEST_NAMES internal static char(40) initial array packed unaligned dcl 7-48 AS_AUDIT_CHANNEL_ACTIONS internal static char(12) initial array packed unaligned dcl 4-193 AS_AUDIT_CHANNEL_ATTACH internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DETACH internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIALIN internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIALOUT internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIAL_SYSTEM internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIRECTION internal static char(4) initial array packed unaligned dcl 4-196 AS_AUDIT_CHANNEL_SERVICE_INFO internal static char(12) initial array packed unaligned dcl 4-199 AS_AUDIT_DIALID_START internal static fixed bin(17,0) initial dcl 4-188 AS_AUDIT_DIALID_STOP internal static fixed bin(17,0) initial dcl 4-188 AS_AUDIT_PROCESS_ACTIONS internal static char(10) initial array packed unaligned dcl 4-202 AS_AUDIT_PROCESS_CONNECT internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_CREATE internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_DISCONNECT internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_TERMINATE internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_RECORD_CHN_VERSION_1 internal static fixed bin(9,0) initial dcl 4-156 AS_AUDIT_RECORD_DIALID_VERSION_1 internal static fixed bin(9,0) initial dcl 4-159 AS_AUDIT_RECORD_IA_VERSION_1 internal static fixed bin(9,0) initial dcl 4-153 AS_METER_NAMES internal static char(8) initial array packed unaligned dcl 6-43 AS_REQUEST_SENDER_VERSION_2 internal static char(8) initial packed unaligned dcl 9-27 AUM_METER internal static fixed bin(17,0) initial dcl 6-22 AU_METER internal static fixed bin(17,0) initial dcl 6-23 A_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 COMMAND_METER internal static fixed bin(17,0) initial dcl 6-30 CPG_METER internal static fixed bin(17,0) initial dcl 6-24 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 14-280 DIALUP_METER internal static fixed bin(17,0) initial dcl 6-20 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 14-332 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 3-33 DONT_MASK internal static bit(2) initial packed unaligned dcl 14-280 DO_MASK internal static bit(2) initial packed unaligned dcl 14-280 DUM_METER internal static fixed bin(17,0) initial dcl 6-21 E_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 FIXPDT_METER internal static fixed bin(17,0) initial dcl 6-34 INSTALL_METER internal static fixed bin(17,0) initial dcl 6-27 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 14-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 14-284 MSGCORD_METER internal static fixed bin(17,0) initial dcl 6-29 M_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 NETUP_METER internal static fixed bin(17,0) initial dcl 6-37 N_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 14-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 14-261 PT_DAEMON internal static fixed bin(17,0) initial dcl 14-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 14-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 14-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SAC_METER internal static fixed bin(17,0) initial dcl 6-31 SA_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 3-30 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 11-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 11-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 11-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 11-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 11-62 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 11-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 11-14 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SSU_METER internal static fixed bin(17,0) initial dcl 6-33 S_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 14-271 UFLAG_NAMES internal static varying char(24) initial array dcl 14-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 12-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 12-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 12-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 12-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 14-74 W_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 as_channel_audit_record based structure level 1 dcl 4-68 as_data_$BS external static char(1) dcl 5-21 as_data_$CR external static char(1) dcl 5-22 as_data_$abs_dim external static char(32) packed unaligned dcl 5-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 5-24 as_data_$acsdir external static char(168) packed unaligned dcl 5-25 as_data_$ansp external static pointer dcl 5-26 as_data_$as_procid external static bit(36) dcl 5-27 as_data_$as_ring external static fixed bin(3,0) dcl 5-28 as_data_$as_tty automatic char(6) packed unaligned dcl 5-29 as_data_$asmtp external static pointer dcl 5-30 as_data_$autp external static pointer dcl 5-31 as_data_$cdtp external static pointer dcl 5-33 as_data_$default_weight external static fixed bin(35,0) dcl 5-34 as_data_$devtabp external static pointer dcl 5-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 5-36 as_data_$dutp external static pointer dcl 5-37 as_data_$g115_dim external static char(32) packed unaligned dcl 5-38 as_data_$lct_initialized external static bit(1) dcl 5-39 as_data_$lct_size external static fixed bin(17,0) dcl 5-40 as_data_$login_args external static structure level 1 dcl 5-62 as_data_$login_words external static fixed bin(17,0) dcl 5-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 5-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 5-87 as_data_$ls_message_buffer_ptr external static pointer dcl 5-88 as_data_$ls_request_server_info_ptr external static pointer dcl 5-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 5-41 as_data_$mgtp external static pointer dcl 5-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 5-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 5-44 as_data_$pdtdir external static char(168) packed unaligned dcl 5-45 as_data_$pit_ptr external static pointer dcl 5-46 as_data_$rcpdir external static char(168) packed unaligned dcl 5-47 as_data_$request_priority external static fixed bin(17,0) dcl 5-48 as_data_$rs_ptrs external static pointer array dcl 5-49 as_data_$rtdtp external static pointer dcl 5-50 as_data_$sat_htp external static pointer dcl 5-51 as_data_$satp external static pointer dcl 5-52 as_data_$signal_types external static structure level 1 dcl 5-67 as_data_$suffix external static char(2) array packed unaligned dcl 5-53 as_data_$sysdir external static char(168) packed unaligned dcl 5-54 as_data_$system_signal_types external static structure level 1 dcl 5-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 5-55 as_data_$terminet_tabs_string external static varying char(144) dcl 5-56 as_data_$tty_dim external static char(32) packed unaligned dcl 5-57 as_data_$update_priority external static fixed bin(17,0) dcl 5-58 as_data_$version external static char(8) packed unaligned dcl 5-59 as_data_$whoptr external static pointer dcl 5-60 as_data_login_words based structure level 1 dcl 5-77 as_dial_service_audit_record based structure level 1 dcl 4-100 as_ia_audit_record_abs based structure level 1 dcl 4-34 as_ia_audit_record_abs_proxy based structure level 1 dcl 4-41 as_ia_audit_record_int_dmn based structure level 1 dcl 4-27 as_request_version_1 internal static fixed bin(17,0) initial dcl 7-27 asr_ac_length automatic fixed bin(21,0) dcl 8-105 asr_admin_command_info based structure level 1 dcl 8-85 asr_admin_command_info_ptr automatic pointer dcl 8-84 asr_bump_user_info based structure level 1 dcl 8-60 asr_bump_user_info_ptr automatic pointer dcl 8-59 asr_bump_user_info_version_1 internal static char(8) initial packed unaligned dcl 8-57 asr_note_pnt_change_info based structure level 1 dcl 8-124 asr_note_pnt_change_info_ptr automatic pointer dcl 8-122 asr_reply_admin_command based structure level 1 dcl 8-108 asr_reply_bump_user based structure level 1 dcl 8-79 audit_record_header_proxy based structure level 1 dcl 2-22 audit_record_ptr automatic pointer dcl 2-16 channel_audit_info based structure level 1 dcl 4-138 channel_audit_info_ptr automatic pointer dcl 4-136 condition_info_ptr automatic pointer dcl 1-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 1-30 dial_server_info based structure level 1 dcl 4-124 dial_server_info_ptr automatic pointer dcl 4-122 recursion_possible internal static bit(18) initial packed unaligned dcl 6-39 sl_info automatic structure level 1 dcl 11-24 sl_info_code_msg internal static structure level 1 dcl 11-187 sl_info_msg internal static structure level 1 dcl 11-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 11-161 sl_info_sev_code_msg internal static structure level 1 dcl 11-82 sl_info_sev_coded_msg internal static structure level 1 dcl 11-134 sl_info_sev_msg internal static structure level 1 dcl 11-108 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 001371 constant label dcl 284 ref 240 246 249 270 Save_Pdir 001631 constant entry internal dcl 328 ref 183 dpg_ 000437 constant entry external dcl 13 finish 000650 constant entry external dcl 174 join_after_nasty_error 003223 constant label dcl 439 ref 389 406 notify_buzzards 001454 constant entry internal dcl 293 ref 216 register_buzzard 001127 constant entry external dcl 221 remove_buzzard 001534 constant entry internal dcl 314 ref 255 304 309 retry_copy_stack 002674 constant label dcl 415 ref 412 rqo_error 002606 constant label dcl 403 ref 410 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3752 4066 3234 3762 Length 4640 3234 114 535 516 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dpg_ 294 external procedure is an external procedure. notify_buzzards internal procedure shares stack frame of external procedure dpg_. remove_buzzard internal procedure shares stack frame of external procedure dpg_. Save_Pdir 286 internal procedure enables or reverts conditions. on unit on line 382 116 on unit on unit on line 397 118 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Save_Pdir 000100 CI Save_Pdir 000132 dir_acl Save_Pdir 000214 n_acl_entries Save_Pdir 000215 name Save_Pdir 000225 newname Save_Pdir 000235 newdir Save_Pdir dpg_ 000100 buzzardp dpg_ 000102 code dpg_ 000103 dir_name dpg_ 000156 ltrp dpg_ 000160 pdir_saved dpg_ 000161 pdquota dpg_ 000162 reason dpg_ 000164 rqo_sw dpg_ 000165 segment_acl dpg_ 000200 slvid dpg_ 000202 stack_0_ptr dpg_ 000204 taccsw dpg_ 000205 tup dpg_ 000206 used dpg_ 000207 mode dpg_ 000210 asr_replyp dpg_ 000212 asr_buzzard_infop dpg_ 000214 as_request_sender_ptr dpg_ 000216 process_status_return dpg_ 000236 utep dpg_ 000246 processid_message notify_buzzards 000250 bp notify_buzzards on unit on line 382 000100 rcode on unit on line 382 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this return_mac tra_ext_1 enable_op shorten_stack ext_entry ext_entry_desc int_entry alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_access_audit_$dpg_buzzard as_access_audit_$process as_meter_$enter as_meter_$exit as_user_message_$priv_delete_process_messages dial_ctl_$dial_broom find_condition_info_ get_group_id_$tag_star hcs_$add_acl_entries hcs_$chname_file hcs_$delentry_seg hcs_$make_seg hcs_$replace_dir_acl hcs_$terminate_noname hcs_$wakeup hphcs_$copy_stack_0 hphcs_$destroy_process_begin hphcs_$destroy_process_finish hphcs_$quota_read hphcs_$quota_set hphcs_$set_ring_brackets lv_request_$cleanup_process pdir_volume_manager_$note_pdir_deletion rcp_sys_$unassign_process sys_log_ sys_log_$error_log unique_chars_ up_sysctl_$check_acs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$buzzardp as_data_$debug_flag error_table_$action_not_performed error_table_$insufficient_access error_table_$no_dir error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 117 000426 14 76 000427 13 000433 148 000453 149 000462 150 000466 152 000473 153 000506 154 000511 156 000523 161 000536 162 000541 163 000544 165 000557 171 000635 172 000644 174 000645 176 000656 177 000665 179 000671 180 000674 181 000676 183 000700 188 000716 192 000731 193 000744 195 000753 197 001020 198 001024 199 001027 200 001031 201 001032 203 001033 206 001037 208 001042 210 001045 213 001050 216 001071 217 001100 218 001113 219 001122 221 001123 233 001135 234 001141 235 001144 236 001146 237 001151 239 001157 240 001162 243 001163 246 001221 247 001223 248 001227 249 001232 252 001233 253 001237 254 001244 255 001251 258 001257 259 001260 260 001262 261 001265 264 001321 266 001322 267 001324 268 001325 269 001330 270 001333 272 001334 273 001335 274 001341 275 001343 276 001347 277 001352 278 001355 279 001357 280 001362 282 001370 284 001371 287 001414 291 001453 293 001454 298 001456 299 001460 300 001462 301 001466 302 001472 303 001474 304 001477 307 001507 308 001511 309 001526 311 001532 312 001533 314 001534 317 001536 319 001546 321 001557 323 001570 325 001624 326 001627 328 001630 348 001636 350 001657 352 001766 353 002017 358 002067 359 002071 365 002120 366 002123 369 002207 372 002216 373 002220 374 002226 377 002230 379 002274 382 002277 384 002313 385 002332 389 002370 392 002373 393 002421 395 002462 396 002465 397 002466 398 002502 399 002506 400 002535 402 002602 403 002606 406 002636 408 002641 410 002665 412 002671 415 002674 418 002700 419 002714 420 002715 421 002720 422 002731 424 003031 425 003045 426 003060 428 003115 430 003143 431 003144 433 003155 434 003156 439 003223 441 003224 443 003225 ----------------------------------------------------------- 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