/* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ /* * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* This include file requires that the user include */ /* user_attributes.incl.pl1 as well. It also includes */ /* abs_attributes.incl.pl1 itself. */ /* */ /* This include file must be included to use absentee_user_table.incl.pl1, */ /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * */ /****^ HISTORY COMMENTS: 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): This comment for hcom. 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, anstbl.incl.pl1, and dutbl.incl.pl1. 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 84-04-04 BIM added privileged_dial_server and dial_server_ring 84-07-12 BIM added min_process_authorization 84-12-31 Keith Loepere added pdir_dir_quota 85-01-16 by E. Swenson to add ute.session_uid 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): Added fields for DSA login server support. 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): Add truncate_absout and restarted bit for -truncate absout, SCP6297. 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): Added disconnection_rel_minutes. 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): Changed structure under ute.abs_attributes to use like structure in abs_attributes.incl.pl1. This allows the same attributes to be used in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include file. 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): A) Global reorganization to locate things by type of data. B) Eliminate ute.uflags.logged_in. 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): A) Reduced overlength person and project fields to proper length. B) Adjusted dialed-console section to begin on even word boundary. 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): Add ute.line_type. 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): Added the lowest_ring element. Used the upper half of ute.highest_ring for the storage. SCP6367 END HISTORY COMMENTS */ /* format: style4 */ /* * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* Each of the named sections below defines a type of data. Typing comes */ /* from data associated with the ute entry itself, with the person, with */ /* login argument data, from the main user of the data (eg, dialup_, */ /* load_ctl_, login server). Each section begins on a double-word boundary */ /* and is an even number of words long. The total structure is 300 decimal */ /* words long. */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * */ dcl UTE_version_4 fixed bin internal static options (constant) init (4); dcl utep pointer automatic init (null); dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ /* Variables which give state of this entry */ 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 2 next_free fixed bin, /* points to previous free entry */ /* Information user gave about person_id associated with this entry. */ 2 person char (24) unal, /* user's name */ 2 project char (12) unal, /* project of absentee user */ 2 tag char (1) unal, /* instance tag - someday will be generated */ 2 tag_pad bit (27) unal, 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 2 login_flags, /* flags for login data */ 3 cpw bit (1) unal, /* flag for wish to change password */ 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 3 special_pw unal, /* dial or slave */ 4 dial_pw bit (1) unal, /* true if dial -user */ 4 slave_pw bit (1) unal, /* true if slave -user */ 3 cdp bit (1) unal, /* flag for wish to change default project */ 3 cda bit (1) unal, /* flag to change default authorization */ 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 3 pw_pad bit (25) unal, /* spare parts */ 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ /* Must remain last in pw_flags so it does not */ /* appear in PW_FLAG_VALUES array below. */ 2 generated_pw char (8) unal, /* user must type this as new password */ 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 2 process_authorization bit (72), /* access_authorization of this process */ /* Information user gave about process associated with this entry. */ 2 outer_module char (32) unal, /* Name of console dim */ 2 home_dir char (64) unal, /* initial home directory */ 2 init_proc char (64) unal, /* name of login responder */ 2 ip_len fixed bin (17) unal, /* length of initproc string */ 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 2 at like user_attributes aligned, /* bits on means attribute is on */ 2 initial_ring fixed bin, /* ring process will be started in */ 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 2 ln_args fixed bin, /* length of string containing arguments */ 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ /* Most of the following information is relevant only to absentee processes */ 2 input_seg char (168) unal, /* pathname of absentee control segment */ 2 output_seg char (168) unal, /* pathname of absentee output file */ 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 2 message_id bit (72), /* message segment id assoc with absentee request */ 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. (but see uflags.adjust_abs_q_no). */ 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 2 abs_flags, 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 3 abs_flags_pad bit (34) unal, 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 2 sender char (32) unal, /* name of RJE station that job is from */ 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 2 proxy_project char (9) unal, 2 proxy_project_pad char (3) unal, 2 abs_pad fixed bin, /* Information about process actually created */ 2 proc_id bit (36), /* process id of absentee process */ 2 session_uid fixed bin (35), /* Unique authentication session id */ 2 process_authorization_range (2) bit (72) aligned, 2 audit bit (36), /* audit flags for user */ 2 lot_size fixed bin, /* Size of linkage offset table */ 2 kst_size fixed bin, /* Size of process known segment table */ 2 cls_size fixed bin, /* Size of process combined linkage */ 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 2 pdir_pad fixed bin(17) unal, 2 process_pad fixed bin, /* Information about primary terminal associated with this entry */ 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 2 terminal_type char (32) unaligned, /* terminal type */ 2 line_type fixed bin, /* line type */ 2 tty_id_code char (4) unal, /* "none" for absentee */ 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 2 channel ptr unal, /* points to CDT entry for user, if any */ /* Variables useful for dialed terminals */ 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 2 dial_qualifier char (22) unal, /* first argument to dial command */ 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 2 dial_server_flags, 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ /* Information about usage/accounting. Device usage meters are in a separate segment, "devtab" */ 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 2 mem_this_process fixed bin (71), /* memory usage at last update */ 2 last_update_time fixed bin (71), /* time of last account update */ 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 2 ndevices fixed bin, /* Count of attached devices */ 2 device_head fixed bin, /* Table index of head of device chain */ 2 device_tail fixed bin, /* Table index of tail of device chain */ 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 2 rs_number_pad bit(30) unal, 2 usage_pad fixed bin, /* Information for dialup_ (control variables). */ 2 event fixed bin (71), /* event associated with channel or user manager */ 2 uprojp ptr, /* ptr to user project sat entry */ 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 2 count fixed bin, /* counter for logins and dialups */ 2 n_processes fixed bin, /* number of processes created in this session */ 2 lock_value fixed bin, /* number of locks set for this entry */ 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 2 login_code char (8) unal, /* login command from LOGIN line */ 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 2 logout_type char (4) unal, /* type of logout */ 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 2 work_class fixed bin, /* work class used by priority scheduler */ 2 group char (8) unal, /* party group identifier */ 2 whotabx fixed bin, /* index of user's entry in whotab */ 2 uflags, /* Miscellaneous flags */ 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 3 uflags_pad bit (17) unal, /* Information used by load_ctl_ for the process */ 2 user_weight fixed bin, /* usually 10 - used in load control */ 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 2 bump_grace fixed bin (71), /* bump grace in microseconds */ /* Information for login server */ 2 login_server_info, 3 our_handle bit (72) aligned, /* how LS refers to us. */ 3 his_handle bit (72) aligned, /* how we talk to LS */ 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 3 process_id bit (36) aligned, /* process_id of login server */ 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ /* values for ute.process_type */ dcl (PT_INTERACTIVE initial (1), PT_ABSENTEE initial (2), PT_DAEMON initial (3)) fixed bin internal static options (constant); dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( "INVALID-TYPE", "interactive", "absentee", "daemon"); dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( "UNKNOWN-TABLE", "answer_table", "absentee_user_table", "daemon_user_table"); /* values for ute.pw_flags.mask_ctl */ dcl (DO_MASK init ("00"b), DONT_MASK init ("01"b), DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( "do_mask", "dont_mask", "derive_mask", ""); /* names for ute.pw_flags */ dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( "cpw", "generate_pw", "dial_pw", "slave_pw", "cdp", "cda", "auth_given", "noprint", "operator"); /* names for ute.uflags */ dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( "dont_call_init_admin", "ip_given", "ss_given", "lvs_attached", "send_initial_string", "adjust_abs_q_no", "foreground_secondary_ok", "foreground_job", "sus_sent", "suspended", "ignore_cpulimit", "deferral_logged", "save_if_disconnected", "disconnected", "disconnected_list", "proc_create_ok", "activity_can_unbump", "fpe_causes_logout", "user_specified_immediate"); /* names for ute.abs_flags */ dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( "abs_run", "notify"); /* names of ute.dial_server_flags */ dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( "registered", "privileged"); /* values of ute.login_result */ dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( "logged in", "login failed, hangup", "login failed, try again"); /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ */ ----------------------------------------------------------- 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 */