COMPILATION LISTING OF SEGMENT set_work_class Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1928.25_Mon_mdt 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 set_work_class: 14 swc: 15 proc; 16 17 /* Coded by RE Mullen, Spring 1975, for priority scheduler */ 18 /* Modified by E. N. Kittlitz. March 1982, for user_table conversion, code cleanup. */ 19 20 21 /****^ HISTORY COMMENTS: 22* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 23* audit(87-07-27,Hartogs), install(87-08-04,MR12.1-1055): 24* A) Upgraded for change to answer_table.incl.pl1 and 25* user_table_entry.incl.pl1. 26* B) Support newly-added instance tags. 27* END HISTORY COMMENTS */ 28 29 30 dcl Person char (32); 31 dcl Project char (32); 32 dcl Tag char (32); 33 dcl ac fixed bin; 34 dcl al fixed bin (21); 35 dcl ap ptr; 36 dcl code fixed bin (35); 37 dcl found fixed bin; 38 dcl i fixed bin; 39 dcl oldwcnum fixed bin; 40 dcl pid bit (36) aligned; 41 dcl wcnum fixed bin; 42 43 dcl arg char (al) based (ap); 44 45 dcl com_err_ entry options (variable); 46 dcl com_err_$suppress_name entry options (variable); 47 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 48 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 49 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 50 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 51 dcl get_process_id_ entry returns (bit (36) aligned); 52 dcl hphcs_$set_process_work_class entry (bit (36) aligned, fixed bin, fixed bin, fixed bin (35)); 53 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 54 55 dcl error_table_$bad_conversion ext static fixed bin (35); 56 dcl error_table_$bad_work_class ext static fixed bin (35); 57 dcl error_table_$zero_length_seg ext static fixed bin (35); 58 59 dcl ME char (14) internal static options (constant) init ("set_work_class"); 60 dcl sysdir char (168) int static init (">system_control_1"); 61 62 dcl (addr, after, before, bin, bit, index, length, null, rtrim) builtin; 63 64 dcl cleanup condition; 65 dcl linkage_error condition; 66 67 68 /* ---------------------------------------------------------- */ 69 70 /* Usage: swc wc_num id 71* where id identifies the proccess to be move to work_class [wc_num] 72* 73* if id is not given only the process executing the command will be moved. 74* else if id is an octal number then the process with that processid will be moved. 75* else if id is of form [pers.proj.tag] then processes with matching names will be moved. 76* else error. 77* 78* The Initializer is never moved unless the user of this command is 79* clever enough to specify the Initializer's processid, or is Izzy hisself. 80* 81* Because this command does not modify the MGT, the move will 82* will last only until the next shift change or new_proc or .. */ 83 84 85 ansp, autp, dutp = null (); /* initialize */ 86 found = 0; 87 call cu_$arg_count (ac, code); 88 if code ^= 0 then do; 89 call com_err_ (code, ME); 90 return; 91 end; 92 93 /* Establish handler for noaccess on hphcs_ */ 94 95 on linkage_error 96 begin; 97 call com_err_ (0, ME, "This command requires access to hphcs_."); 98 go to MAIN_RETURN; 99 end; 100 on cleanup call CLEANUP; 101 102 /* Set work class of self | octal_processid | Per.Proj.tag */ 103 104 if (ac = 0) | (ac > 2) then do; 105 call com_err_$suppress_name (0, ME, "Usage: set_work_class wc_number pers.proj.tag"); 106 return; 107 end; 108 109 call cu_$arg_ptr (1, ap, al, (0)); 110 wcnum = cv_dec_check_ (arg, code); 111 if code ^= 0 then do; 112 call com_err_ (error_table_$bad_conversion, ME, "The first argument must be a workclass number, not ""^a"".", arg); 113 return; 114 end; 115 116 if ac = 1 then do; /* means to set own */ 117 pid = get_process_id_ (); 118 call SET_IT; 119 go to MAIN_RETURN; 120 end; /* done setting own */ 121 else do; 122 call cu_$arg_ptr (2, ap, al, (0)); 123 pid = bit (bin (cv_oct_check_ (arg, code), 36), 36); 124 if code = 0 then do; /* must be octal processid */ 125 call SET_IT; 126 go to MAIN_RETURN; 127 end; 128 else do; /* must be Person.Project.Tag */ 129 Person = before (arg, "."); 130 Project = before (after (arg, "."), "."); 131 Tag = after (after (arg, "."), "."); 132 if (index (Tag, ".") > 0) | 133 (Person = "") | 134 (Project = "") | 135 al > length (Person) | 136 index ("ampz*", rtrim (Tag)) = 0 then do; 137 call com_err_ (0, ME, "Illegal syntax in process identifier ^a.", arg); 138 return; 139 end; 140 141 /* Loop over all the user tables that may contain such a user. */ 142 143 call INIT ("answer_table", ansp); /* need ansp no matter what */ 144 if Tag = "*" | Tag = "a" | /* interactive */ 145 Tag = "f" then do; /* DSA file xfer */ 146 do i = 1 to anstbl.current_size; 147 utep = addr (anstbl.entry (i)); 148 call CHECK_IT; 149 end; 150 end; 151 152 if Tag = "*" | Tag = "z" then do; 153 call INIT ("daemon_user_table", dutp); 154 do i = 1 to dutbl.current_size; 155 utep = addr (dutbl.entry (i)); 156 call CHECK_IT; 157 end; 158 end; 159 160 if Tag = "*" | Tag = "g" | /* Gcos simulator*/ 161 Tag = "m" | /* absentee job */ 162 Tag = "n" | /* Cray software */ 163 Tag = "p" then do; /* Proxy absentee*/ 164 call INIT ("absentee_user_table", autp); 165 do i = 1 to autp -> autbl.current_size; 166 utep = addr (autp -> autbl.entry (i)); 167 call CHECK_IT; 168 end; 169 end; 170 if found = 0 then call com_err_ (0, ME, "No users match ^a.^a.^a", Person, Project, Tag); 171 end; /* for now */ 172 173 end; 174 MAIN_RETURN: 175 call CLEANUP; 176 return; 177 178 179 CLEANUP: proc; 180 181 do_one_seg: proc (a_segp); 182 183 dcl a_segp ptr; 184 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 185 186 if a_segp = null () then return; 187 call terminate_file_ (a_segp, 0, TERM_FILE_TERM, (0)); 188 end do_one_seg; 189 190 call do_one_seg (ansp); 191 call do_one_seg (autp); 192 call do_one_seg (dutp); 193 end CLEANUP; 194 195 196 CHECK_IT: 197 proc; /* see if user table entry needs work class set */ 198 199 if ute.active < NOW_HAS_PROCESS then return; 200 if ute.proc_id = anstbl.as_procid then return; /* I will not be a party to this */ 201 if Person = "*" then ; /* Star Person */ 202 else if Person = ute.person then ; /* Person matches */ 203 else if Person ^= "anonymous" then return; /* nomatch & not want anon */ 204 else if ute.anonymous ^= 0 then ; /* found wanted anon */ 205 else return; 206 207 if Project = "*" then ; /* Star Project */ 208 else if Project = ute.project then ; /* Project matches */ 209 else return; 210 211 pid = ute.proc_id; /* set pid for call */ 212 call SET_IT; 213 214 end CHECK_IT; 215 216 217 SET_IT: 218 proc; /* set one processes work class */ 219 220 call hphcs_$set_process_work_class (pid, wcnum, oldwcnum, code); 221 if code = 0 then do; 222 found = found + 1; 223 end; 224 else if code = error_table_$bad_work_class then do; 225 call com_err_ (code, ME, "^d", wcnum); 226 go to MAIN_RETURN; 227 end; 228 else call com_err_ (code, ME, "Process id ^12.3b", pid); 229 end SET_IT; 230 231 232 INIT: 233 proc (i_ename, i_segp); 234 235 dcl i_ename char (32); 236 dcl i_segp pointer; 237 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 238 239 call initiate_file_ (sysdir, i_ename, R_ACCESS, i_segp, (0), code); 240 if code ^= 0 & code ^= error_table_$zero_length_seg then do; 241 call com_err_ (code, ME, "^a", pathname_ (sysdir, i_ename)); 242 go to MAIN_RETURN; 243 end; 244 end INIT; 245 246 247 init: 248 entry; 249 250 call cu_$arg_ptr (1, ap, al, code); 251 if code = 0 then sysdir = arg; 252 253 return; 254 255 /* BEGIN INCLUDE FILE ... absentee_user_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The absentee user table is the control data base for the absentee */ 1 6 /* facility. It has a header, with scheduling parameters, then one user */ 1 7 /* table entry for each logged-in absentee job. */ 1 8 /* */ 1 9 /* Programs which use this table must also include */ 1 10 /* user_table_header.incl.pl1 and user_table_entry.incl.pl1. */ 1 11 /* */ 1 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 13 1 14 1 15 /****^ HISTORY COMMENTS: 1 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 17* Replace abs_user_tab.incl.pl1. 1 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 1 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 20* Use ut_header common to all user control tables. 1 21* END HISTORY COMMENTS */ 1 22 1 23 1 24 dcl AUTBL_version_4 fixed bin int static options (constant) init (4); 1 25 1 26 dcl autp ptr automatic init (null); 1 27 1 28 dcl 1 autbl based (autp) aligned, /* a per system table to store info on absentee processes */ 1 29 2 header like ut_header, /* Header common to all user tables. */ 1 30 1 31 /* Counter elements */ 1 32 2 n_abs_run fixed bin, /* actual number of absentee processes current */ 1 33 2 max_abs_users fixed bin, /* max number of background absentee processes permitted */ 1 34 2 n_background_abs fixed bin, /* number of absentee processes not from foreground queue */ 1 35 2 n_sec_fg fixed bin, /* number of secondary foreground absentee jobs */ 1 36 2 idle_units fixed bin, /* used in adjusting abs_maxu dynamically */ 1 37 2 abs_units fixed bin, /* part of anstbl.n_units used by background absentees */ 1 38 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 1 39 2 qres (4) fixed bin, /* number of slots reserved for each background queue */ 1 40 2 rsc_waiting (-1:4) fixed bin, /* number of requests waiting for resources, from each queue */ 1 41 2 qerr (-1:4) fixed bin, /* number of consecutive errors for q (dropped if > QERR_MAX) */ 1 42 2 cpu_limit (4) fixed bin (35), /* current per-queue cpu time limits */ 1 43 1 44 /* absentee user manager values. */ 1 45 2 defer_channel fixed bin (71), /* IPC for time-defered queue entries */ 1 46 2 absentee_rq_chn fixed bin (71), /* IPC channel for absentee requests */ 1 47 2 last_queue_searched fixed bin, /* highest queue looked at by scheduler */ 1 48 2 debugging fixed bin, /* take asdumps at strategic places */ 1 49 2 control, /* see also whotab.incl.pl1 */ 1 50 3 mnbz bit (1) unal, /* must not be zero */ 1 51 3 abs_maxu_auto bit (1) unal, /* 1 if abs maxu has not been set by operator command */ 1 52 3 abs_maxq_auto bit (1) unal, /* 1 if abs maxq has not been set by operator command */ 1 53 3 abs_qres_auto bit (1) unal, /* 1 if abs qres has not been set by operator command */ 1 54 3 abs_cpu_limit_auto bit (1) unal, /* 1 if abs cpu_limit has not been set by operator command */ 1 55 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue has been dropped because of errors */ 1 56 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 1 57 3 abs_stopped bit (1) unal, /* 1 if abs stop command was issued */ 1 58 /* both 1 if we're waiting for the last jobs to log out */ 1 59 3 aum_ctl bit (1) unal, /* for AUM to tell AU to start a new sequence */ 1 60 3 lc_list bit (1) unal, /* for AU to tell AUM that the lc list is non-empty */ 1 61 /* comments in AU and AUM explain aum_ctl and lc_list */ 1 62 3 control_pad (21) bit (1) unal, /* fill out rest of word */ 1 63 2 aum_pad fixed bin, 1 64 1 65 2 entry_pad (80) fixed bin, /* pad table header to 128 words */ 1 66 2 entry (0 refer (autbl.current_size)) like ute; 1 67 1 68 dcl AUTBL_CONTROL_NAMES (15) char(20) varying int static options(constant) init( 1 69 "mnbz", 1 70 "abs_maxu_auto", 1 71 "abs_maxq_auto", 1 72 "abs_qres_auto", 1 73 "abs_cpu_limit_auto", 1 74 "queue_dropped(-1)", 1 75 "queue_dropped( 0)", 1 76 "queue_dropped( 1)", 1 77 "queue_dropped( 2)", 1 78 "queue_dropped( 3)", 1 79 "queue_dropped( 4)", 1 80 "abs_up", 1 81 "abs_stopped", 1 82 "aum_ctl", 1 83 "lc_list"); 1 84 1 85 /* END INCLUDE FILE ... absentee_user_table.incl.pl1 */ 255 256 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 256 257 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* The answer table has one entry per "login instance" whether completed or */ 3 6 /* not. It is connected to the Channel Definition Table by the pointer */ 3 7 /* "channel". The header is used mostly by dialup_. */ 3 8 /* */ 3 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 3 10 /* */ 3 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 12 3 13 /****^ HISTORY COMMENTS: 3 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 3 15* Replace anstbl.incl.pl1. 3 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 3 17* Add anstbl.session_uid_counter. 3 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 3 19* Add anstbl.message_update_time and named constants for values of 3 20* anstbl.session, and to make all padding explicit. 3 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 3 22* Change "entry" to a placeholder so as not to require 3 23* user_table_entry.incl.pl1. 3 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 3 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 3 26* Added the flag login_server_present which indicates whether a login 3 27* server request has been received. This is used to determine whether 3 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 3 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 3 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 3 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 32* A) Moved constants for ute.pw_flags.mask_ctl into 3 33* user_table_entry.incl.pl1. 3 34* B) Added common table header to all user tables. 3 35* END HISTORY COMMENTS */ 3 36 3 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 38 /* */ 3 39 /* The anstbl structure below is divided into sections. Each section begins */ 3 40 /* with a comment describing the elements in the section. Elements are */ 3 41 /* placed within a section, based upon their function or the programs that */ 3 42 /* use them. Each section begins on a double word and is an even number of */ 3 43 /* words long. */ 3 44 /* */ 3 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 46 3 47 3 48 3 49 /* format: style4 */ 3 50 3 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 3 52 3 53 dcl ansp ptr automatic init (null); 3 54 3 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 3 56 2 header like ut_header, /* Header common to all user tables. */ 3 57 3 58 /* Counter elements. */ 3 59 2 nlin fixed bin, /* number of active lines */ 3 60 2 mxlin fixed bin, /* maximum number of active lines */ 3 61 2 n_users fixed bin, /* number of logged-in users */ 3 62 2 max_users fixed bin, /* maximum number of users allowed */ 3 63 2 n_units fixed bin, /* number of logged in units */ 3 64 2 max_units fixed bin, /* maximum number of units */ 3 65 2 n_sessions fixed bin, /* number of Multics sessions */ 3 66 2 n_pad fixed bin, 3 67 3 68 /* Name elements. */ 3 69 2 sysdir char (64) unal, /* name of main system control directory */ 3 70 2 as_tty char (8) unal, /* name of main answering service device. */ 3 71 3 72 /* Login elements. */ 3 73 2 login_word char (8) unal, /* login word if special_session=1 */ 3 74 2 session char (8) unal, /* session indicator */ 3 75 2 special_message char (128) unal, /* message to be printed for special session */ 3 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 3 77 2 message_lng fixed bin, /* length of special message */ 3 78 2 login_pad fixed bin, 3 79 3 80 /* Table update elements. */ 3 81 2 lock_count fixed bin, /* global lock for all system control tables */ 3 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 3 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 3 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 3 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 3 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 3 87 2 update_pad fixed bin, 3 88 3 89 /* dialup_ data values. */ 3 90 2 current_time fixed bin (71), /* Time of last transaction */ 3 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 3 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 3 93 3 94 /* load_ctl_ elements. */ 3 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 3 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 3 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 3 98 /* load_ctl_ load leveling desired response range: */ 3 99 2 response_high fixed bin, /* bad if user response time slower than this */ 3 100 2 response_low fixed bin, /* bad if user response time faster than this */ 3 101 2 load_ctl_pad fixed bin, 3 102 3 103 /* Login server request server data. */ 3 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 3 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 3 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 3 107 3 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 3 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 3 110 3 contents (UTE_SIZE) fixed bin; 3 111 3 112 /* constants */ 3 113 3 114 /* values for anstbl.session */ 3 115 3 116 dcl (AT_NORMAL init ("normal "), 3 117 AT_SPECIAL init ("special "), 3 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 3 119 3 120 dcl UTE_SIZE fixed bin internal static initial (300); 3 121 3 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 257 258 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 4 6 /* operator command or automatically. If they do any I/O, it is done via */ 4 7 /* the message coordinator. */ 4 8 /* */ 4 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 4 10 /* and user_table_entry.incl.pl1. */ 4 11 /* */ 4 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 13 4 14 4 15 /****^ HISTORY COMMENTS: 4 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 4 17* Initially coded from dutbl.incl.pl1. 4 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 4 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 20* A) Add use of ut_header common to all user control tables. 4 21* B) Corrected padding prior to first ute entry. 4 22* END HISTORY COMMENTS */ 4 23 4 24 4 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 4 26 4 27 dcl dutp ptr automatic init (null); 4 28 4 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 4 30 2 header like ut_header, /* Header common to all user tables. */ 4 31 4 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 4 33 4 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 4 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 4 36 4 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 258 259 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 5 6 5 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 5 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 5 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 5 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 5 11* WAIT_DISCARD_WAKEUP 5 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 5 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 5 14**/ 5 15 5 16 /****^ HISTORY COMMENTS: 5 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 5 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 5 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 5 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 22* Add named constants for instance tags. 5 23* END HISTORY COMMENTS */ 5 24 5 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 5 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 5 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 5 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 5 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 5 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 5 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 5 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 5 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 5 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 5 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 5 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 5 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 5 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 5 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 5 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 5 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 5 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 5 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 5 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 5 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 5 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 5 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 5 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 5 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 5 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 5 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 5 52 ) fixed bin internal static options (constant); 5 53 5 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 5 55 /* names of ute.destroy_flag values */ 5 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 5 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 5 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 5 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 5 60 "wait remove"); /* -13 */ 5 61 5 62 /* Values for "cdte.state", typewriter state. */ 5 63 5 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 5 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 5 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 5 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 5 68 ) fixed bin internal static options (constant); 5 69 5 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 5 71 /* names of cdte.state values */ 5 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 5 73 5 74 /* Values for "cdte.in_use" and "ate.active" */ 5 75 5 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 5 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 5 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 5 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 5 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 5 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 5 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 5 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 5 84 ) fixed bin internal static options (constant); 5 85 5 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 5 87 /* names of ute.active values */ 5 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 5 89 5 90 5 91 /**** Values for ute.tag */ 5 92 5 93 dcl (TAG_INTERACTIVE init("a"), 5 94 TAG_UFT init("f"), 5 95 TAG_ABSENTEE init("m"), 5 96 TAG_PROXY init("p"), 5 97 TAG_DAEMON init("z") 5 98 ) char(1) int static options(constant); 5 99 5 100 5 101 /**** Following are constants used to indicate to the process termination 5 102* handler the reason for the process termination. They are used by 5 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 5 104* uc_ls_destroy_request_. */ 5 105 5 106 dcl ( 5 107 PT_FPE initial (1), 5 108 PT_LOGOUT initial (4), 5 109 PT_NEW_PROC_AUTH initial (13), 5 110 PT_HANGUP initial (20), 5 111 PT_SHUTDOWN initial (21), 5 112 PT_BUMP initial (22), 5 113 PT_ALARM initial (23), 5 114 PT_DETACH initial (24), 5 115 PT_UNBUMP initial (25), 5 116 PT_OPERATOR_TERMINATE initial (27), 5 117 PT_DESTROY_REQUEST initial (30), 5 118 PT_NEW_PROC_REQUEST initial (31) 5 119 ) fixed bin (17) internal static options (constant); 5 120 5 121 /**** Values for ute.preempted: 5 122* -1 user unbumped after term signal sent 5 123* 0 user unbumped; ignore alarm___ 5 124* 1 value internally used in load_ctl_ 5 125* 2 user bumped; when alarm___ comes in, send term signal 5 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 5 127* signals come in 5 128* 4 user bumped; process sick, so destroy without sending term signal 5 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 5 130* termsgnl). */ 5 131 5 132 dcl ( 5 133 PREEMPT_UNBUMP initial (-1), 5 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 5 135 PREEMPT_LOAD_CTL initial (1), 5 136 PREEMPT_BUMPED initial (2), 5 137 PREEMPT_TERM_SENT initial (3), 5 138 PREEMPT_BUMPED_NO_TERM initial (4), 5 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 5 140 ) fixed bin (17) internal static options(constant); 5 141 5 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 5 143 "unbumped", 5 144 "not bumped, ignore alarm___", 5 145 "load_ctl_", 5 146 "bumped", 5 147 "bumped, trm_ sent", 5 148 "bumped without trm_", 5 149 "bumped, termsgnl received"); 5 150 5 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 259 260 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 6 2 /* format: style2,^inddcls,idind32 */ 6 3 6 4 declare 1 terminate_file_switches based, 6 5 2 truncate bit (1) unaligned, 6 6 2 set_bc bit (1) unaligned, 6 7 2 terminate bit (1) unaligned, 6 8 2 force_write bit (1) unaligned, 6 9 2 delete bit (1) unaligned; 6 10 6 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 6 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 6 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 6 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 6 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 6 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 6 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 6 18 6 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 260 261 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 7 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 7 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 7 8* attribute switches. 7 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 7 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 7 12* be deleted. 7 13* B) Add constants identifying attributes that can be changed by user at 7 14* login, etc. 7 15* END HISTORY COMMENTS */ 7 16 7 17 7 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 7 19 7 20 /* format: style4 */ 7 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 7 22 (2 administrator bit (1), /* 1 system administrator privileges */ 7 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 7 24 2 nobump bit (1), /* 2 user cannot be bumped */ 7 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 7 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 7 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 7 28* . of same project (distinct from "nobump") */ 7 29 2 nolist bit (1), /* 7 don't list user on "who" */ 7 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 7 31 2 multip bit (1), /* 9 user may have several processes */ 7 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 7 33 2 brief bit (1), /* 11 no login or logout message */ 7 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 7 35 2 vhomedir bit (1), /* 13 user may change homedir */ 7 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 7 37 2 sb_ok bit (1), /* 15 user may be standby */ 7 38 2 pm_ok bit (1), /* 16 user may be primary */ 7 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 7 40 2 daemon bit (1), /* 18 user may login as daemon */ 7 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 7 42 2 no_warning bit (1), /* 20 no warning message */ 7 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 7 44* . in PDT: this user has an individual load control group */ 7 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 7 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 7 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 7 48 2 pad bit (12)) unaligned; 7 49 7 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 51 ("none", /* 0 */ 7 52 "administrator", /* 1 */ 7 53 "primary_line", /* 2 */ 7 54 "nobump", /* 3 */ 7 55 "guaranteed_login", /* 4 */ 7 56 "anonymous", /* 5 */ 7 57 "nopreempt", /* 6 */ 7 58 "nolist", /* 7 */ 7 59 "dialok", /* 8 */ 7 60 "multip", /* 9 */ 7 61 "bumping", /* 10 */ 7 62 "brief", /* 11 */ 7 63 "vinitproc", /* 12 */ 7 64 "vhomedir", /* 13 */ 7 65 "nostartup", /* 14 */ 7 66 "no_secondary", /* 15 */ 7 67 "no_prime", /* 16 */ 7 68 "no_eo", /* 17 */ 7 69 "daemon", /* 18 */ 7 70 "", /* 19 vdim OBSOLETE */ 7 71 "no_warning", /* 20 */ 7 72 "igroup", /* 21 */ 7 73 "save_pdir", /* 22 */ 7 74 "disconnect_ok", /* 23 */ 7 75 "save_on_disconnect"); /* 24 */ 7 76 7 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 78 ("null", /* 0 */ 7 79 "admin", /* 1 */ 7 80 "", "", /* 2 - 3 */ 7 81 "guar", /* 4 */ 7 82 "anon", /* 5 */ 7 83 "", "", /* 6 - 7 */ 7 84 "dial", /* 8 */ 7 85 "multi_login", /* 9 */ 7 86 "preempting", /* 10 */ 7 87 "", /* 11 */ 7 88 "v_process_overseer", /* 12 */ 7 89 "v_home_dir", /* 13 */ 7 90 "no_start_up", /* 14 */ 7 91 "no_sec", /* 15 */ 7 92 "no_primary", /* 16 */ 7 93 "no_edit_only", /* 17 */ 7 94 "op_login", /* 18 */ 7 95 "", /* 19 */ 7 96 "nowarn", /* 20 */ 7 97 "", "", "", /* 21 - 23 */ 7 98 "save"); /* 24 */ 7 99 7 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 7 101 options(constant) init("000000000010000000010000000000000000"b); 7 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 7 103 7 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 7 105 options(constant) init("000000000010000000010000000000000000"b); 7 106 /* PDT value for (brief, no_warning) is default */ 7 107 7 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 7 109 options(constant) init("000100000110010000010000000000000000"b); 7 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 7 111 8 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* This include file describes the attributes of an absentee job. It is */ 8 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 8 7 /* and PIT.incl.pl1. */ 8 8 /* */ 8 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 10 8 11 /****^ HISTORY COMMENTS: 8 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 8 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 14* Separated abs_attributes from the request structure 8 15* (abs_message_format.incl.pl1) so that the identical structure could be 8 16* used in the ute structure (user_table_entry.incl.pl1). 8 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 8 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 19* Added ABS_ATTRIBUTE_NAMES array. 8 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 8 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 8 22* Added the no_start_up flag. SCP6367 8 23* END HISTORY COMMENTS */ 8 24 8 25 dcl 1 user_abs_attributes aligned based, 8 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 8 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 8 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 8 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 8 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 8 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 8 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 8 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 8 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 8 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 8 36 2 attributes_pad bit (26) unaligned; 8 37 8 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 8 39 "restartable", 8 40 "user_deferred_until_time", 8 41 "proxy", 8 42 "set_bit_cnt", 8 43 "time_in_gmt", 8 44 "user_deferred_indefinitely", 8 45 "secondary_ok", 8 46 "truncate_absout", 8 47 "restarted", 8 48 "no_start_up"); 8 49 8 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 51 7 112 7 113 7 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 261 262 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 9 2 9 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 4 /* */ 9 5 /* This include file requires that the user include */ 9 6 /* user_attributes.incl.pl1 as well. It also includes */ 9 7 /* abs_attributes.incl.pl1 itself. */ 9 8 /* */ 9 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 9 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 9 11 /* */ 9 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 13 9 14 /****^ HISTORY COMMENTS: 9 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 9 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 9 17* This comment for hcom. 9 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 9 19* anstbl.incl.pl1, and dutbl.incl.pl1. 9 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 9 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 9 22* 84-07-12 BIM added min_process_authorization 9 23* 84-12-31 Keith Loepere added pdir_dir_quota 9 24* 85-01-16 by E. Swenson to add ute.session_uid 9 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 9 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 9 27* Added fields for DSA login server support. 9 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 9 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 9 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 9 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 9 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 9 33* Added disconnection_rel_minutes. 9 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 9 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 36* Changed structure under ute.abs_attributes to use like structure in 9 37* abs_attributes.incl.pl1. This allows the same attributes to be used 9 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 9 39* file. 9 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 9 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 9 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 9 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 45* A) Global reorganization to locate things by type of data. 9 46* B) Eliminate ute.uflags.logged_in. 9 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 9 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 49* A) Reduced overlength person and project fields to proper length. 9 50* B) Adjusted dialed-console section to begin on even word boundary. 9 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 9 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 53* Add ute.line_type. 9 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 9 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 9 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 9 57* for the storage. SCP6367 9 58* END HISTORY COMMENTS */ 9 59 9 60 /* format: style4 */ 9 61 9 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 63 /* */ 9 64 /* Each of the named sections below defines a type of data. Typing comes */ 9 65 /* from data associated with the ute entry itself, with the person, with */ 9 66 /* login argument data, from the main user of the data (eg, dialup_, */ 9 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 9 68 /* and is an even number of words long. The total structure is 300 decimal */ 9 69 /* words long. */ 9 70 /* */ 9 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 72 9 73 9 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 9 75 9 76 dcl utep pointer automatic init (null); 9 77 9 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 9 79 9 80 /* Variables which give state of this entry */ 9 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 9 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 9 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 9 84 2 next_free fixed bin, /* points to previous free entry */ 9 85 9 86 /* Information user gave about person_id associated with this entry. */ 9 87 2 person char (24) unal, /* user's name */ 9 88 2 project char (12) unal, /* project of absentee user */ 9 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 9 90 2 tag_pad bit (27) unal, 9 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 9 92 2 login_flags, /* flags for login data */ 9 93 3 cpw bit (1) unal, /* flag for wish to change password */ 9 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 9 95 3 special_pw unal, /* dial or slave */ 9 96 4 dial_pw bit (1) unal, /* true if dial -user */ 9 97 4 slave_pw bit (1) unal, /* true if slave -user */ 9 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 9 99 3 cda bit (1) unal, /* flag to change default authorization */ 9 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 9 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 9 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 9 103 3 pw_pad bit (25) unal, /* spare parts */ 9 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 9 105 /* Must remain last in pw_flags so it does not */ 9 106 /* appear in PW_FLAG_VALUES array below. */ 9 107 2 generated_pw char (8) unal, /* user must type this as new password */ 9 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 9 109 2 process_authorization bit (72), /* access_authorization of this process */ 9 110 9 111 /* Information user gave about process associated with this entry. */ 9 112 2 outer_module char (32) unal, /* Name of console dim */ 9 113 2 home_dir char (64) unal, /* initial home directory */ 9 114 2 init_proc char (64) unal, /* name of login responder */ 9 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 9 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 9 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 9 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 9 119 2 initial_ring fixed bin, /* ring process will be started in */ 9 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 9 121 2 ln_args fixed bin, /* length of string containing arguments */ 9 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 9 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 9 124 9 125 /* Most of the following information is relevant only to absentee processes */ 9 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 9 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 9 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 9 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 9 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 9 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 9 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 9 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 9 134* (but see uflags.adjust_abs_q_no). */ 9 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 9 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 9 137 2 abs_flags, 9 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 9 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 9 140 3 abs_flags_pad bit (34) unal, 9 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 9 142 2 sender char (32) unal, /* name of RJE station that job is from */ 9 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 9 144 2 proxy_project char (9) unal, 9 145 2 proxy_project_pad char (3) unal, 9 146 2 abs_pad fixed bin, 9 147 9 148 /* Information about process actually created */ 9 149 2 proc_id bit (36), /* process id of absentee process */ 9 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 9 151 2 process_authorization_range (2) bit (72) aligned, 9 152 2 audit bit (36), /* audit flags for user */ 9 153 2 lot_size fixed bin, /* Size of linkage offset table */ 9 154 2 kst_size fixed bin, /* Size of process known segment table */ 9 155 2 cls_size fixed bin, /* Size of process combined linkage */ 9 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 9 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 9 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 9 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 9 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 9 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 9 162 2 pdir_pad fixed bin(17) unal, 9 163 2 process_pad fixed bin, 9 164 9 165 /* Information about primary terminal associated with this entry */ 9 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 9 167 2 terminal_type char (32) unaligned, /* terminal type */ 9 168 2 line_type fixed bin, /* line type */ 9 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 9 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 9 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 9 172 9 173 /* Variables useful for dialed terminals */ 9 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 9 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 9 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 9 177 2 dial_server_flags, 9 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 9 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 9 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 9 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 9 182 9 183 /* Information about usage/accounting. Device usage meters are in a 9 184* separate segment, "devtab" */ 9 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 9 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 9 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 9 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 9 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 9 190 2 last_update_time fixed bin (71), /* time of last account update */ 9 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 9 192 2 ndevices fixed bin, /* Count of attached devices */ 9 193 2 device_head fixed bin, /* Table index of head of device chain */ 9 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 9 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 9 196 2 rs_number_pad bit(30) unal, 9 197 2 usage_pad fixed bin, 9 198 9 199 /* Information for dialup_ (control variables). */ 9 200 2 event fixed bin (71), /* event associated with channel or user manager */ 9 201 2 uprojp ptr, /* ptr to user project sat entry */ 9 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 9 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 9 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 9 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 9 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 9 207 2 count fixed bin, /* counter for logins and dialups */ 9 208 2 n_processes fixed bin, /* number of processes created in this session */ 9 209 2 lock_value fixed bin, /* number of locks set for this entry */ 9 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 9 211 2 login_code char (8) unal, /* login command from LOGIN line */ 9 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 9 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 9 214 2 logout_type char (4) unal, /* type of logout */ 9 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 9 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 9 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 9 218 2 work_class fixed bin, /* work class used by priority scheduler */ 9 219 2 group char (8) unal, /* party group identifier */ 9 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 9 221 9 222 2 uflags, /* Miscellaneous flags */ 9 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 9 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 9 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 9 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 9 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 9 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 9 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 9 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 9 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 9 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 9 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 9 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 9 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 9 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 9 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 9 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 9 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 9 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 9 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 9 242 3 uflags_pad bit (17) unal, 9 243 9 244 /* Information used by load_ctl_ for the process */ 9 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 9 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 9 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 9 248 9 249 9 250 /* Information for login server */ 9 251 2 login_server_info, 9 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 9 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 9 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 9 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 9 256 3 process_id bit (36) aligned, /* process_id of login server */ 9 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 9 258 9 259 /* values for ute.process_type */ 9 260 9 261 dcl (PT_INTERACTIVE initial (1), 9 262 PT_ABSENTEE initial (2), 9 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 9 264 9 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 9 266 "INVALID-TYPE", 9 267 "interactive", 9 268 "absentee", 9 269 "daemon"); 9 270 9 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 9 272 "UNKNOWN-TABLE", 9 273 "answer_table", 9 274 "absentee_user_table", 9 275 "daemon_user_table"); 9 276 9 277 9 278 /* values for ute.pw_flags.mask_ctl */ 9 279 9 280 dcl (DO_MASK init ("00"b), 9 281 DONT_MASK init ("01"b), 9 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 9 283 9 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 9 285 "do_mask", "dont_mask", "derive_mask", ""); 9 286 9 287 9 288 /* names for ute.pw_flags */ 9 289 9 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 9 291 "cpw", 9 292 "generate_pw", 9 293 "dial_pw", 9 294 "slave_pw", 9 295 "cdp", 9 296 "cda", 9 297 "auth_given", 9 298 "noprint", 9 299 "operator"); 9 300 9 301 /* names for ute.uflags */ 9 302 9 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 9 304 "dont_call_init_admin", 9 305 "ip_given", 9 306 "ss_given", 9 307 "lvs_attached", 9 308 "send_initial_string", 9 309 "adjust_abs_q_no", 9 310 "foreground_secondary_ok", 9 311 "foreground_job", 9 312 "sus_sent", 9 313 "suspended", 9 314 "ignore_cpulimit", 9 315 "deferral_logged", 9 316 "save_if_disconnected", 9 317 "disconnected", 9 318 "disconnected_list", 9 319 "proc_create_ok", 9 320 "activity_can_unbump", 9 321 "fpe_causes_logout", 9 322 "user_specified_immediate"); 9 323 9 324 /* names for ute.abs_flags */ 9 325 9 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 9 327 "abs_run", 9 328 "notify"); 9 329 9 330 /* names of ute.dial_server_flags */ 9 331 9 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 9 333 "registered", 9 334 "privileged"); 9 335 9 336 /* values of ute.login_result */ 9 337 9 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 9 339 "logged in", 9 340 "login failed, hangup", 9 341 "login failed, try again"); 9 342 9 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 262 263 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file declares the header shared by the answer_table, */ 10 6 /* absentee_user_table and daemon_user_table include files. */ 10 7 /* */ 10 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 9 10 10 /****^ HISTORY COMMENTS: 10 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 10 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 13* Initial coding. 10 14* END HISTORY COMMENTS */ 10 15 10 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 10 17 2 header_version fixed bin, /* version of the header (3) */ 10 18 2 entry_version fixed bin, /* version of user table entries */ 10 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 10 20 2 header_length fixed bin, /* length of the header */ 10 21 2 max_size fixed bin, /* max number of entries in this table */ 10 22 2 current_size fixed bin, /* actual size of table (in entries) */ 10 23 2 number_free fixed bin, /* number of free entries in the table. */ 10 24 2 first_free fixed bin, /* index of first entry in the free list. */ 10 25 2 as_procid bit (36), /* process ID of user table manager process */ 10 26 2 ut_header_pad fixed bin; 10 27 10 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 263 264 265 end set_work_class; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1928.2 set_work_class.pl1 >udd>sm>ds>w>ml>set_work_class.pl1 255 1 08/06/87 1013.4 absentee_user_table.incl.pl1 >ldd>incl>absentee_user_table.incl.pl1 256 2 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>incl>access_mode_values.incl.pl1 257 3 08/06/87 1013.0 answer_table.incl.pl1 >ldd>incl>answer_table.incl.pl1 258 4 08/06/87 1012.9 daemon_user_table.incl.pl1 >ldd>incl>daemon_user_table.incl.pl1 259 5 08/06/87 1013.4 dialup_values.incl.pl1 >ldd>incl>dialup_values.incl.pl1 260 6 04/06/83 1339.4 terminate_file.incl.pl1 >ldd>incl>terminate_file.incl.pl1 261 7 08/06/87 1013.6 user_attributes.incl.pl1 >ldd>incl>user_attributes.incl.pl1 7-112 8 07/14/88 2115.0 user_abs_attributes.incl.pl1 >ldd>incl>user_abs_attributes.incl.pl1 262 9 07/14/88 2115.0 user_table_entry.incl.pl1 >ldd>incl>user_table_entry.incl.pl1 263 10 08/06/87 1013.6 user_table_header.incl.pl1 >ldd>incl>user_table_header.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. ME 000002 constant char(14) initial packed unaligned dcl 59 set ref 89* 97* 105* 112* 137* 170* 225* 228* 241* NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 5-76 ref 199 Person 000100 automatic char(32) packed unaligned dcl 30 set ref 129* 132 132 170* 201 202 203 Project 000110 automatic char(32) packed unaligned dcl 31 set ref 130* 132 170* 207 208 R_ACCESS 000001 constant bit(3) initial packed unaligned dcl 2-11 set ref 239* TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 6-14 set ref 187* Tag 000120 automatic char(32) packed unaligned dcl 32 set ref 131* 132 132 144 144 144 152 152 160 160 160 160 160 170* UTE_SIZE constant fixed bin(17,0) initial dcl 3-120 ref 147 147 a_segp parameter pointer dcl 183 set ref 181 186 187* ac 000130 automatic fixed bin(17,0) dcl 33 set ref 87* 104 104 116 active based fixed bin(17,0) level 2 dcl 9-78 ref 199 addr builtin function dcl 62 ref 147 155 166 after builtin function dcl 62 ref 130 131 131 al 000131 automatic fixed bin(21,0) dcl 34 set ref 109* 110 110 112 112 122* 123 123 129 130 131 132 137 137 250* 251 anonymous 16 based fixed bin(17,0) level 2 dcl 9-78 ref 204 ansp 000160 automatic pointer initial dcl 3-53 set ref 85* 143* 146 147 3-53* 190* 200 anstbl based structure level 1 dcl 3-55 ap 000132 automatic pointer dcl 35 set ref 109* 110 112 122* 123 129 130 131 137 250* 251 arg based char packed unaligned dcl 43 set ref 110* 112* 123* 129 130 131 137* 251 as_procid 10 based bit(36) level 3 dcl 3-55 ref 200 autbl based structure level 1 dcl 1-28 autp 000156 automatic pointer initial dcl 1-26 set ref 85* 164* 165 166 1-26* 191* before builtin function dcl 62 ref 129 130 bin builtin function dcl 62 ref 123 bit builtin function dcl 62 ref 123 cleanup 000142 stack reference condition dcl 64 ref 100 code 000134 automatic fixed bin(35,0) dcl 36 set ref 87* 88 89* 110* 111 123* 124 220* 221 224 225* 228* 239* 240 240 241* 250* 251 com_err_ 000062 constant entry external dcl 45 ref 89 97 112 137 170 225 228 241 com_err_$suppress_name 000064 constant entry external dcl 46 ref 105 cu_$arg_count 000066 constant entry external dcl 47 ref 87 cu_$arg_ptr 000070 constant entry external dcl 48 ref 109 122 250 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 3-55 in procedure "swc" ref 146 current_size 5 based fixed bin(17,0) level 3 in structure "dutbl" dcl 4-29 in procedure "swc" ref 154 current_size 5 based fixed bin(17,0) level 3 in structure "autbl" dcl 1-28 in procedure "swc" ref 165 cv_dec_check_ 000072 constant entry external dcl 49 ref 110 cv_oct_check_ 000074 constant entry external dcl 50 ref 123 dutbl based structure level 1 dcl 4-29 dutp 000162 automatic pointer initial dcl 4-27 set ref 85* 153* 154 155 4-27* 192* entry 200 based structure array level 2 in structure "anstbl" dcl 3-55 in procedure "swc" set ref 147 entry 200 based structure array level 2 in structure "dutbl" dcl 4-29 in procedure "swc" set ref 155 entry 200 based structure array level 2 in structure "autbl" dcl 1-28 in procedure "swc" set ref 166 error_table_$bad_conversion 000104 external static fixed bin(35,0) dcl 55 set ref 112* error_table_$bad_work_class 000106 external static fixed bin(35,0) dcl 56 ref 224 error_table_$zero_length_seg 000110 external static fixed bin(35,0) dcl 57 ref 240 found 000135 automatic fixed bin(17,0) dcl 37 set ref 86* 170 222* 222 get_process_id_ 000076 constant entry external dcl 51 ref 117 header based structure level 2 in structure "anstbl" dcl 3-55 in procedure "swc" header based structure level 2 in structure "dutbl" dcl 4-29 in procedure "swc" header based structure level 2 in structure "autbl" dcl 1-28 in procedure "swc" hphcs_$set_process_work_class 000100 constant entry external dcl 52 ref 220 i 000136 automatic fixed bin(17,0) dcl 38 set ref 146* 147* 154* 155* 165* 166* i_ename parameter char(32) packed unaligned dcl 235 set ref 232 239* 241* 241* i_segp parameter pointer dcl 236 set ref 232 239* index builtin function dcl 62 ref 132 132 initiate_file_ 000114 constant entry external dcl 237 ref 239 length builtin function dcl 62 ref 132 linkage_error 000150 stack reference condition dcl 65 ref 95 null builtin function dcl 62 ref 85 1-26 3-53 4-27 9-76 186 oldwcnum 000137 automatic fixed bin(17,0) dcl 39 set ref 220* pathname_ 000102 constant entry external dcl 53 ref 241 241 person 4 based char(24) level 2 packed packed unaligned dcl 9-78 ref 202 pid 000140 automatic bit(36) dcl 40 set ref 117* 123* 211* 220* 228* proc_id 276 based bit(36) level 2 dcl 9-78 ref 200 211 project 12 based char(12) level 2 packed packed unaligned dcl 9-78 ref 208 rtrim builtin function dcl 62 ref 132 sysdir 000010 internal static char(168) initial packed unaligned dcl 60 set ref 239* 241* 241* 251* terminate_file_ 000112 constant entry external dcl 184 ref 187 user_abs_attributes based structure level 1 dcl 8-25 user_attributes based structure level 1 dcl 7-21 ut_header based structure level 1 dcl 10-16 ute based structure level 1 dcl 9-78 utep 000164 automatic pointer initial dcl 9-76 set ref 147* 155* 166* 9-76* 199 200 202 204 208 211 wcnum 000141 automatic fixed bin(17,0) dcl 41 set ref 110* 220* 225* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 8-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 9-326 ACTIVE_VALUES internal static char(18) initial array dcl 5-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 3-51 AT_NORMAL internal static char(8) initial packed unaligned dcl 3-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 3-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 3-116 AUTBL_CONTROL_NAMES internal static varying char(20) initial array dcl 1-68 AUTBL_version_4 internal static fixed bin(17,0) initial dcl 1-24 A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 9-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 9-332 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 DONT_MASK internal static bit(2) initial packed unaligned dcl 9-280 DO_MASK internal static bit(2) initial packed unaligned dcl 9-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 4-25 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 9-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 9-284 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 NOW_DIALED internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 5-76 NOW_FREE internal static fixed bin(17,0) initial dcl 5-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 5-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 5-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 5-76 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 5-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 9-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 9-261 PT_ALARM internal static fixed bin(17,0) initial dcl 5-106 PT_BUMP internal static fixed bin(17,0) initial dcl 5-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 9-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_DETACH internal static fixed bin(17,0) initial dcl 5-106 PT_FPE internal static fixed bin(17,0) initial dcl 5-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 5-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 9-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 5-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 5-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 5-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 9-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 STATE_VALUES internal static char(15) initial array dcl 5-70 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 9-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 5-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 5-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 5-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 5-93 TAG_UFT internal static char(1) initial packed unaligned dcl 5-93 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 6-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 6-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 6-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 6-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 6-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 6-15 TRA_VEC_VALUES internal static char(32) initial array dcl 5-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 5-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 5-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 5-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 5-64 UFLAG_NAMES internal static varying char(24) initial array dcl 9-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 7-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 7-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 7-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 9-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 5-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 5-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 5-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 5-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 5-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 5-25 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 terminate_file_switches based structure level 1 packed packed unaligned dcl 6-4 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_IT 001306 constant entry internal dcl 196 ref 148 156 167 CLEANUP 001214 constant entry internal dcl 179 ref 100 174 INIT 001471 constant entry internal dcl 232 ref 143 153 164 MAIN_RETURN 001147 constant label dcl 174 ref 98 119 126 226 242 SET_IT 001362 constant entry internal dcl 217 ref 118 125 212 do_one_seg 001247 constant entry internal dcl 181 ref 190 191 192 init 001155 constant entry external dcl 247 set_work_class 000176 constant entry external dcl 13 swc 000166 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2070 2206 1642 2100 Length 2616 1642 116 373 226 52 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME swc 332 external procedure is an external procedure. on unit on line 95 90 on unit on unit on line 100 64 on unit CLEANUP 96 internal procedure is called by several nonquick procedures. do_one_seg internal procedure shares stack frame of internal procedure CLEANUP. CHECK_IT internal procedure shares stack frame of external procedure swc. SET_IT internal procedure shares stack frame of external procedure swc. INIT internal procedure shares stack frame of external procedure swc. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 sysdir swc STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME swc 000100 Person swc 000110 Project swc 000120 Tag swc 000130 ac swc 000131 al swc 000132 ap swc 000134 code swc 000135 found swc 000136 i swc 000137 oldwcnum swc 000140 pid swc 000141 wcnum swc 000156 autp swc 000160 ansp swc 000162 dutp swc 000164 utep swc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op ext_entry int_entry set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_ptr cv_dec_check_ cv_oct_check_ get_process_id_ hphcs_$set_process_work_class initiate_file_ pathname_ terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_conversion error_table_$bad_work_class error_table_$zero_length_seg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 26 000156 3 53 000160 4 27 000161 9 76 000162 13 000165 85 000204 86 000210 87 000211 88 000222 89 000224 90 000241 95 000242 97 000256 98 000302 100 000305 104 000327 105 000333 106 000360 109 000361 110 000401 111 000426 112 000430 113 000463 116 000464 117 000467 118 000476 119 000477 122 000500 123 000520 124 000551 125 000553 126 000554 129 000555 130 000567 131 000613 132 000635 137 000702 138 000736 143 000737 144 000744 146 000760 147 000771 148 000776 149 000777 152 001001 153 001011 154 001016 155 001027 156 001033 157 001034 160 001036 164 001062 165 001067 166 001077 167 001103 168 001104 170 001106 174 001147 176 001153 247 001154 250 001163 251 001202 253 001212 179 001213 190 001221 191 001230 192 001237 193 001246 181 001247 186 001251 187 001256 188 001305 196 001306 199 001307 200 001313 201 001321 202 001326 203 001333 204 001340 205 001343 207 001344 208 001351 209 001356 211 001357 212 001360 214 001361 217 001362 220 001363 221 001400 222 001402 223 001403 224 001404 225 001407 226 001435 228 001436 229 001470 232 001471 239 001473 240 001532 241 001537 242 001606 244 001607 ----------------------------------------------------------- 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