1 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 /* */ 5 /* This include file requires that the user include */ 6 /* user_attributes.incl.pl1 as well. It also includes */ 7 /* abs_attributes.incl.pl1 itself. */ 8 /* */ 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 11 /* */ 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 14 /****^ HISTORY COMMENTS: 15 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 16 audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 17 This comment for hcom. 18 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 19 anstbl.incl.pl1, and dutbl.incl.pl1. 20 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 21 84-04-04 BIM added privileged_dial_server and dial_server_ring 22 84-07-12 BIM added min_process_authorization 23 84-12-31 Keith Loepere added pdir_dir_quota 24 85-01-16 by E. Swenson to add ute.session_uid 25 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 26 audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 27 Added fields for DSA login server support. 28 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 29 audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 30 Add truncate_absout and restarted bit for -truncate absout, SCP6297. 31 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 32 audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 33 Added disconnection_rel_minutes. 34 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 35 audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 36 Changed structure under ute.abs_attributes to use like structure in 37 abs_attributes.incl.pl1. This allows the same attributes to be used 38 in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 39 file. 40 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 41 audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 42 Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 43 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 44 audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 45 A) Global reorganization to locate things by type of data. 46 B) Eliminate ute.uflags.logged_in. 47 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 48 audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 49 A) Reduced overlength person and project fields to proper length. 50 B) Adjusted dialed-console section to begin on even word boundary. 51 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 52 audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 53 Add ute.line_type. 54 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 55 audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 56 Added the lowest_ring element. Used the upper half of ute.highest_ring 57 for the storage. SCP6367 58 END HISTORY COMMENTS */ 59 60 /* format: style4 */ 61 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 63 /* */ 64 /* Each of the named sections below defines a type of data. Typing comes */ 65 /* from data associated with the ute entry itself, with the person, with */ 66 /* login argument data, from the main user of the data (eg, dialup_, */ 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 68 /* and is an even number of words long. The total structure is 300 decimal */ 69 /* words long. */ 70 /* */ 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 72 73 ^L 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 75 76 dcl utep pointer automatic init (null); 77 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 79 80 /* Variables which give state of this entry */ 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 84 2 next_free fixed bin, /* points to previous free entry */ 85 86 /* Information user gave about person_id associated with this entry. */ 87 2 person char (24) unal, /* user's name */ 88 2 project char (12) unal, /* project of absentee user */ 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 90 2 tag_pad bit (27) unal, 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 92 2 login_flags, /* flags for login data */ 93 3 cpw bit (1) unal, /* flag for wish to change password */ 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 95 3 special_pw unal, /* dial or slave */ 96 4 dial_pw bit (1) unal, /* true if dial -user */ 97 4 slave_pw bit (1) unal, /* true if slave -user */ 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 99 3 cda bit (1) unal, /* flag to change default authorization */ 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 103 3 pw_pad bit (25) unal, /* spare parts */ 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 105 /* Must remain last in pw_flags so it does not */ 106 /* appear in PW_FLAG_VALUES array below. */ 107 2 generated_pw char (8) unal, /* user must type this as new password */ 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 109 2 process_authorization bit (72), /* access_authorization of this process */ 110 111 /* Information user gave about process associated with this entry. */ 112 2 outer_module char (32) unal, /* Name of console dim */ 113 2 home_dir char (64) unal, /* initial home directory */ 114 2 init_proc char (64) unal, /* name of login responder */ 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 119 2 initial_ring fixed bin, /* ring process will be started in */ 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 121 2 ln_args fixed bin, /* length of string containing arguments */ 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 124 ^L 125 /* Most of the following information is relevant only to absentee processes */ 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 134 (but see uflags.adjust_abs_q_no). */ 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 137 2 abs_flags, 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 140 3 abs_flags_pad bit (34) unal, 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 142 2 sender char (32) unal, /* name of RJE station that job is from */ 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 144 2 proxy_project char (9) unal, 145 2 proxy_project_pad char (3) unal, 146 2 abs_pad fixed bin, 147 148 /* Information about process actually created */ 149 2 proc_id bit (36), /* process id of absentee process */ 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 151 2 process_authorization_range (2) bit (72) aligned, 152 2 audit bit (36), /* audit flags for user */ 153 2 lot_size fixed bin, /* Size of linkage offset table */ 154 2 kst_size fixed bin, /* Size of process known segment table */ 155 2 cls_size fixed bin, /* Size of process combined linkage */ 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 162 2 pdir_pad fixed bin(17) unal, 163 2 process_pad fixed bin, 164 165 /* Information about primary terminal associated with this entry */ 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 167 2 terminal_type char (32) unaligned, /* terminal type */ 168 2 line_type fixed bin, /* line type */ 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 172 173 /* Variables useful for dialed terminals */ 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 177 2 dial_server_flags, 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 182 ^L 183 /* Information about usage/accounting. Device usage meters are in a 184 separate segment, "devtab" */ 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 190 2 last_update_time fixed bin (71), /* time of last account update */ 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 192 2 ndevices fixed bin, /* Count of attached devices */ 193 2 device_head fixed bin, /* Table index of head of device chain */ 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 196 2 rs_number_pad bit(30) unal, 197 2 usage_pad fixed bin, 198 199 /* Information for dialup_ (control variables). */ 200 2 event fixed bin (71), /* event associated with channel or user manager */ 201 2 uprojp ptr, /* ptr to user project sat entry */ 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 207 2 count fixed bin, /* counter for logins and dialups */ 208 2 n_processes fixed bin, /* number of processes created in this session */ 209 2 lock_value fixed bin, /* number of locks set for this entry */ 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 211 2 login_code char (8) unal, /* login command from LOGIN line */ 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 214 2 logout_type char (4) unal, /* type of logout */ 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 218 2 work_class fixed bin, /* work class used by priority scheduler */ 219 2 group char (8) unal, /* party group identifier */ 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 221 ^L 222 2 uflags, /* Miscellaneous flags */ 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 242 3 uflags_pad bit (17) unal, 243 244 /* Information used by load_ctl_ for the process */ 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 248 249 250 /* Information for login server */ 251 2 login_server_info, 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 256 3 process_id bit (36) aligned, /* process_id of login server */ 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 258 ^L 259 /* values for ute.process_type */ 260 261 dcl (PT_INTERACTIVE initial (1), 262 PT_ABSENTEE initial (2), 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 264 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 266 "INVALID-TYPE", 267 "interactive", 268 "absentee", 269 "daemon"); 270 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 272 "UNKNOWN-TABLE", 273 "answer_table", 274 "absentee_user_table", 275 "daemon_user_table"); 276 277 278 /* values for ute.pw_flags.mask_ctl */ 279 280 dcl (DO_MASK init ("00"b), 281 DONT_MASK init ("01"b), 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 283 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 285 "do_mask", "dont_mask", "derive_mask", ""); 286 287 288 /* names for ute.pw_flags */ 289 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 291 "cpw", 292 "generate_pw", 293 "dial_pw", 294 "slave_pw", 295 "cdp", 296 "cda", 297 "auth_given", 298 "noprint", 299 "operator"); 300 ^L 301 /* names for ute.uflags */ 302 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 304 "dont_call_init_admin", 305 "ip_given", 306 "ss_given", 307 "lvs_attached", 308 "send_initial_string", 309 "adjust_abs_q_no", 310 "foreground_secondary_ok", 311 "foreground_job", 312 "sus_sent", 313 "suspended", 314 "ignore_cpulimit", 315 "deferral_logged", 316 "save_if_disconnected", 317 "disconnected", 318 "disconnected_list", 319 "proc_create_ok", 320 "activity_can_unbump", 321 "fpe_causes_logout", 322 "user_specified_immediate"); 323 324 /* names for ute.abs_flags */ 325 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 327 "abs_run", 328 "notify"); 329 330 /* names of ute.dial_server_flags */ 331 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 333 "registered", 334 "privileged"); 335 336 /* values of ute.login_result */ 337 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 339 "logged in", 340 "login failed, hangup", 341 "login failed, try again"); 342 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */