COMPILATION LISTING OF SEGMENT reassign_work_classes_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1015.3 mst Wed 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 reassign_work_classes_: proc (a_code); 14 15 /* This procedure set the work_class of each process to the 16* proper value for the current shift, and defines the set of work_classes 17* which are to be in effect for the current shift. It is called by the 18* Answering Service process at shift change time and whenever a new 19* master_group_table (MGT) is installed or the operator executes the 20* "maxu auto" command". */ 21 22 /* Last modified date & reason: */ 23 /* Coded July 8, 1975 by RE Mullen for Priority Scheduler */ 24 /* Mod by RE Mullen, Summer '76 for Deadline Scheduler */ 25 /* Modified May 1981, E. N. Kittlitz, assign daemons according to interactive specification */ 26 /* Modified July 1981 by J. Bongiovanni for max_pct (governed work classes) */ 27 /* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. */ 28 /* Modified May 1982, E. N. Kittlitz. New AS initialization. */ 29 30 /****^ HISTORY COMMENTS: 31* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 32* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 33* Correct error message documentation. 34* 2) change(87-03-11,GDixon), approve(87-07-13,MCR7741), 35* audit(87-07-21,Hartogs), install(87-08-04,MR12.1-1055): 36* Correct coding standard violations. Support AS test mode by suppressing 37* some operations when invoked in a test AS. 38* 3) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 39* audit(87-07-21,Hartogs), install(87-08-04,MR12.1-1055): 40* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 41* END HISTORY COMMENTS */ 42 43 dcl a_code fixed bin (35); 44 45 dcl ALL_IN_ONE bit (1) aligned; /* "1"b => all processes go in first workclass */ 46 dcl code fixed bin (35); 47 dcl curshift fixed bin; 48 dcl force_compromise bit (1) aligned; /* "1"b => call DEFINE_COMPROMISE if trouble */ 49 dcl i fixed bin; 50 51 dcl 1 new_wci like work_class_info aligned; 52 53 dcl hphcs_$define_work_classes entry (ptr, fixed bin (35)); 54 dcl hphcs_$set_process_work_class entry (bit (36) aligned, fixed bin, fixed bin, fixed bin (35)); 55 dcl sys_log_ entry options (variable); 56 57 dcl (default_r1 init (4000000), /* 4 seconds */ 58 default_q1 init (500000), /* half second */ 59 default_r2 init (32000000), /* 32 seconds */ 60 default_q2 init (1000000)) fixed bin (35) int static options (constant); /* one second */ 61 62 dcl (error_table_$action_not_performed, 63 error_table_$bad_processid, 64 error_table_$bad_work_class) ext static fixed bin (35); 65 66 dcl (addr, null, unspec) builtin; 67 68 /* END DCL */ 69 70 /* First copy static pointers into automatic. */ 71 72 ansp = as_data_$ansp; 73 autp = as_data_$autp; 74 dutp = as_data_$dutp; 75 76 code = 0; /* Zero status code for now */ 77 78 /* Make sure we know about this kind of MGT */ 79 80 if mgt.version_indicator ^= "VERSION " then go to MAIN_RETURN; 81 else if mgt.version < MGT_version_3 - 1 then go to MAIN_RETURN; 82 83 /* Make sure priority scheduler exists. */ 84 85 if mgt.switches.prio_sked_on_tape = "0"b then go to MAIN_RETURN; /* If not, forget it. */ 86 87 /* Now get the current shift. */ 88 89 curshift = anstbl.shift; 90 91 92 /* Gather info about new work_classes into new_wci structure. */ 93 /* This will be used (but not modified) by GET_WC */ 94 /* Later new_wci will be passed to the hardcore. */ 95 96 unspec (new_wci) = ""b; /* clear structure */ 97 new_wci.version = WCI_version_3; 98 new_wci.set_user_wc = "1"b; 99 100 ALL_IN_ONE = "1"b; /* Assume no workclasses defined. */ 101 102 if mgt.prio_sked_enabled then do; /* There might be some defined. */ 103 do i = 1 to 16; 104 mgtep = addr (mgt.entry (i)); 105 new_wci.user_wc_defined (i) = work_class.defined (curshift); 106 if new_wci.user_wc_defined (i) = "1"b then ALL_IN_ONE = "0"b; 107 new_wci.user_wc_min_pct (i) = work_class.min_pct (curshift); 108 end; 109 if ALL_IN_ONE then do; /* No wc defined, should've been. */ 110 call sys_log_ (2, "reassign_work_classes_: no work classes defined on current shift."); 111 end; 112 end; 113 114 if ALL_IN_ONE then do; /* No wc defined or not to enable priosked. */ 115 do i = 1 to 16; 116 if i = 1 then do; 117 new_wci.user_wc_defined (i) = "1"b;/* only first defined. */ 118 new_wci.user_wc_min_pct (i) = 100; /* Has whole machine. */ 119 end; 120 else do; 121 new_wci.user_wc_defined (i) = "0"b; 122 new_wci.user_wc_min_pct (i) = 0; 123 end; 124 end; 125 end; 126 127 do i = 1 to 16; /* set at least default deadlines */ 128 mgtep = addr (mgt.entry (i)); /* get ptr to workclass */ 129 if mgt.version >= MGT_version_3 /* can use admin specified */ 130 & ^ALL_IN_ONE 131 & mgt.prio_sked_enabled 132 & new_wci.user_wc_defined (i) then do; 133 /* one 1/100 sec = 10000 microsec */ 134 new_wci.resp1 (i) = 10000 * work_class.int_response (curshift); 135 new_wci.quantum1 (i) = 10000 * work_class.int_quantum (curshift); 136 new_wci.resp2 (i) = 10000 * work_class.response (curshift); 137 new_wci.quantum2 (i) = 10000 * work_class.quantum (curshift); 138 new_wci.realtime (i) = work_class.realtime (curshift); 139 new_wci.governed (i) = (work_class.max_pct (curshift) > 0); 140 new_wci.user_wc_max_pct (i) = work_class.max_pct (curshift); 141 end; 142 else do; /* use defaults */ 143 new_wci.resp1 (i) = default_r1; 144 new_wci.quantum1 (i) = default_q1; 145 new_wci.resp2 (i) = default_r2; 146 new_wci.quantum2 (i) = default_q2; 147 new_wci.governed (i) = "0"b; 148 new_wci.user_wc_max_pct (i) = 0; 149 end; 150 end; 151 152 if mgt.version >= MGT_version_3 & mgt.prio_sked_enabled then do; 153 new_wci.set_sked_mode = "1"b; 154 new_wci.deadline_mode = mgt.deadline_mode (curshift); 155 end; 156 157 /* Compute new value of workclass for each user now logged in. */ 158 /* Note: GET_WC will verify that the work_class will be defined. */ 159 160 mgtep = addr (mgt.entry (17)); /* Initialize GET_WC's assoc mem */ 161 162 do i = 1 to anstbl.current_size; 163 utep = addr (anstbl.entry (i)); /* get ptr to answer table entry */ 164 call GET_WC; 165 end; 166 167 do i = 1 to dutbl.current_size; 168 utep = addr (dutbl.entry (i)); /* get ptr to daemon table entry */ 169 call GET_WC; 170 end; 171 172 do i = 1 to autp -> autbl.current_size; 173 utep = addr (autp -> autbl.entry (i)); /* get ptr to autbl entry */ 174 call GET_WC; 175 end; 176 177 178 /* We now know that it is indeed possible to move all users 179* to their new work_class and define a new set of work classes. 180* There should be no furthur errors. If there are 181* it implies either somebody else is calling the hardcore in which case 182* this procedure can be called again and probably succeed, or 183* something is busted in which case we can be called again and fail. */ 184 185 /* Define an all-inclusive set of work classes. */ 186 187 call DEFINE_COMPROMISE; 188 189 190 /* Move all users to new work_classes */ 191 192 force_compromise = "1"b; 193 call MOVE_USERS; 194 195 196 /* Define new set of work classes. */ 197 198 if ^as_data_$debug_flag then do; 199 call hphcs_$define_work_classes (addr (new_wci), code); 200 if code ^= 0 then do; 201 if new_wci.error_process_id ^= ""b then do; /* Point finger at guilty one. */ 202 call sys_log_ (1, "reassign_work_classes_: process ^w remained in work class ^d.", 203 new_wci.error_process_id, new_wci.error_work_class); 204 end; 205 end; 206 go to MAIN_RETURN; 207 end; 208 209 210 /* Force hardcore to rethread with new work_class definitions extant */ 211 212 force_compromise = "0"b; /* no use compromise if swc fails */ 213 call MOVE_USERS; 214 215 216 /* Now reflect new work classes in mgt header. */ 217 218 mgt.user_wc_defined (*) = new_wci.user_wc_defined (*); 219 mgt.user_wc_min_pct (*) = new_wci.user_wc_min_pct (*); 220 221 222 MAIN_RETURN: /* Come here to return to caller */ 223 a_code = code; 224 return; /* return from main proc here if not sooner */ 225 226 227 228 /* ==================================================================== */ 229 230 GET_WC: proc; /* IP to set ate.work_class from ate.group & mgt */ 231 232 dcl j fixed bin; 233 dcl wc fixed bin; 234 if ute.active >= NOW_HAS_PROCESS then do; 235 if ute.proc_id = anstbl.as_procid then return; /* Dont bother Initializer */ 236 237 if ALL_IN_ONE then do; /* Want all users in first work_class */ 238 wc = 1; /* So be it. */ 239 end; 240 else do; 241 if ute.group ^= group.group_id then do; /* do lookup if grp not same as prev. */ 242 do j = 17 to mgt.current_size; 243 mgtep = addr (mgt.entry (j)); 244 if ute.group = group.group_id then go to gwc_got_grp; 245 end; 246 /* here we should not be */ 247 call sys_log_ (2, "reassign_work_classes_: load control group ""^a"" not found in mgt for user ^a.^a.^a.", 248 ute.group, ute.person, ute.project, ute.tag); 249 go to gwc_abort; 250 end; 251 252 gwc_got_grp: 253 if ute.queue <= 0 /* Pick up new wc from approp place */ 254 then wc = group.int_wc (curshift); 255 else wc = group.abs_wc (curshift); 256 257 258 if new_wci.user_wc_defined (wc) = "0"b then do; /* Trouble */ 259 call sys_log_ (2, "reassign_work_classes_: undefined work_class ^d required by load_control_group ^a", wc, ute.group); 260 gwc_abort: 261 call sys_log_ (2, "reassign_work_classes_: mgt clobbered, contact system administrator."); 262 code = error_table_$action_not_performed; 263 go to MAIN_RETURN; /* Abort now. */ 264 end; 265 end; 266 267 ute.work_class = wc; /* Tell rest of Answering Service */ 268 269 end; 270 end GET_WC; 271 272 /* ================================================================ */ 273 274 275 MOVE_USERS: proc; 276 277 278 /* Move all users with processes to new work_classes. */ 279 280 do i = 1 to anstbl.current_size; 281 utep = addr (anstbl.entry (i)); /* get ptr to answer table entry */ 282 call SET_WC; 283 end; 284 285 do i = 1 to dutbl.current_size; 286 utep = addr (dutbl.entry (i)); /* get ptr to daemon table entry */ 287 call SET_WC; 288 end; 289 290 291 do i = 1 to autp -> autbl.current_size; 292 utep = addr (autp -> autbl.entry (i)); /* get ptr to autbl entry */ 293 call SET_WC; 294 end; 295 296 297 end MOVE_USERS; 298 299 300 /* ========================================================== */ 301 302 303 SET_WC: proc; /* IP to set hardcore wc from ate.work_class */ 304 305 dcl wc fixed bin; 306 dcl old_wc fixed bin; 307 308 if ute.active >= NOW_HAS_PROCESS then do; /* Tell hardcore */ 309 310 if ute.proc_id = anstbl.as_procid then return; /* Dont bother Initializer */ 311 312 wc = ute.work_class; 313 if ^as_data_$debug_flag then do; 314 call hphcs_$set_process_work_class (ute.proc_id, wc, old_wc, code); 315 if code = 0 then ; 316 else if code = error_table_$bad_work_class then do; /* Somebody undid compromise set */ 317 if ^force_compromise then go to MAIN_RETURN; /* have failed */ 318 call DEFINE_COMPROMISE; /* Willing to retry this once */ 319 call hphcs_$set_process_work_class (ute.proc_id, wc, old_wc, code); 320 if code ^= 0 then 321 go to MAIN_RETURN; 322 end; 323 else if code = error_table_$bad_processid then 324 code = 0; /* So What. */ 325 else /* New errcode invented? */ 326 go to MAIN_RETURN; 327 end; 328 end; 329 330 331 end SET_WC; 332 333 DEFINE_COMPROMISE: proc; /* IP to define all 16 work classes */ 334 335 dcl dci fixed bin; 336 337 338 dcl 1 com_wci like work_class_info aligned; 339 340 unspec (com_wci) = ""b; /* clear structure */ 341 com_wci.set_user_wc = "1"b; /* set user work classes */ 342 com_wci.set_sked_mode = "1"b; /* Force the mode, */ 343 com_wci.deadline_mode = "0"b; /* to percent mode for safety */ 344 do dci = 1 to 16; 345 com_wci.user_wc_defined (dci) = "1"b; /* all user wc will be defined */ 346 com_wci.user_wc_min_pct (dci) = 6; /* each wc given 6% */ 347 com_wci.resp1 (dci) = default_r1; 348 com_wci.quantum1 (dci) = default_q1; 349 com_wci.resp2 (dci) = default_r2; 350 com_wci.quantum2 (dci) = default_q2; 351 com_wci.realtime (dci) = "0"b; 352 com_wci.governed (dci) = "0"b; 353 com_wci.user_wc_max_pct (i) = 0; 354 end; 355 com_wci.version = WCI_version_3; /* set version number */ 356 357 if ^as_data_$debug_flag then do; 358 call hphcs_$define_work_classes (addr (com_wci), code); 359 if code ^= 0 then do; /* Heads will roll. */ 360 go to MAIN_RETURN; 361 end; 362 end; 363 364 end DEFINE_COMPROMISE; 365 366 /* 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 */ 366 367 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* The answer table has one entry per "login instance" whether completed or */ 2 6 /* not. It is connected to the Channel Definition Table by the pointer */ 2 7 /* "channel". The header is used mostly by dialup_. */ 2 8 /* */ 2 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 2 10 /* */ 2 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 12 2 13 /****^ HISTORY COMMENTS: 2 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 2 15* Replace anstbl.incl.pl1. 2 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 2 17* Add anstbl.session_uid_counter. 2 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 2 19* Add anstbl.message_update_time and named constants for values of 2 20* anstbl.session, and to make all padding explicit. 2 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 2 22* Change "entry" to a placeholder so as not to require 2 23* user_table_entry.incl.pl1. 2 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 2 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 2 26* Added the flag login_server_present which indicates whether a login 2 27* server request has been received. This is used to determine whether 2 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 2 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 2 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 2 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 32* A) Moved constants for ute.pw_flags.mask_ctl into 2 33* user_table_entry.incl.pl1. 2 34* B) Added common table header to all user tables. 2 35* END HISTORY COMMENTS */ 2 36 2 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 38 /* */ 2 39 /* The anstbl structure below is divided into sections. Each section begins */ 2 40 /* with a comment describing the elements in the section. Elements are */ 2 41 /* placed within a section, based upon their function or the programs that */ 2 42 /* use them. Each section begins on a double word and is an even number of */ 2 43 /* words long. */ 2 44 /* */ 2 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 46 2 47 2 48 2 49 /* format: style4 */ 2 50 2 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 2 52 2 53 dcl ansp ptr automatic init (null); 2 54 2 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 2 56 2 header like ut_header, /* Header common to all user tables. */ 2 57 2 58 /* Counter elements. */ 2 59 2 nlin fixed bin, /* number of active lines */ 2 60 2 mxlin fixed bin, /* maximum number of active lines */ 2 61 2 n_users fixed bin, /* number of logged-in users */ 2 62 2 max_users fixed bin, /* maximum number of users allowed */ 2 63 2 n_units fixed bin, /* number of logged in units */ 2 64 2 max_units fixed bin, /* maximum number of units */ 2 65 2 n_sessions fixed bin, /* number of Multics sessions */ 2 66 2 n_pad fixed bin, 2 67 2 68 /* Name elements. */ 2 69 2 sysdir char (64) unal, /* name of main system control directory */ 2 70 2 as_tty char (8) unal, /* name of main answering service device. */ 2 71 2 72 /* Login elements. */ 2 73 2 login_word char (8) unal, /* login word if special_session=1 */ 2 74 2 session char (8) unal, /* session indicator */ 2 75 2 special_message char (128) unal, /* message to be printed for special session */ 2 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 2 77 2 message_lng fixed bin, /* length of special message */ 2 78 2 login_pad fixed bin, 2 79 2 80 /* Table update elements. */ 2 81 2 lock_count fixed bin, /* global lock for all system control tables */ 2 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 2 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 2 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 2 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 2 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 2 87 2 update_pad fixed bin, 2 88 2 89 /* dialup_ data values. */ 2 90 2 current_time fixed bin (71), /* Time of last transaction */ 2 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 2 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 2 93 2 94 /* load_ctl_ elements. */ 2 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 2 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 2 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 2 98 /* load_ctl_ load leveling desired response range: */ 2 99 2 response_high fixed bin, /* bad if user response time slower than this */ 2 100 2 response_low fixed bin, /* bad if user response time faster than this */ 2 101 2 load_ctl_pad fixed bin, 2 102 2 103 /* Login server request server data. */ 2 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 2 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 2 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 2 107 2 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 2 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 2 110 3 contents (UTE_SIZE) fixed bin; 2 111 2 112 /* constants */ 2 113 2 114 /* values for anstbl.session */ 2 115 2 116 dcl (AT_NORMAL init ("normal "), 2 117 AT_SPECIAL init ("special "), 2 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 2 119 2 120 dcl UTE_SIZE fixed bin internal static initial (300); 2 121 2 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 367 368 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* This file must be kept in sync with as_data_.alm */ 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 3 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 3 10* Remove references to the 963 and 029 preaccess commands and remove support 3 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 3 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 3 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 14* Add references to as_data_ entrypoints added for Login Server. 3 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 3 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 17* Added new user signal field of inacrcvd (14) to handle inactivity response 3 18* from user. 3 19* END HISTORY COMMENTS */ 3 20 3 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 3 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 3 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 3 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 3 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 3 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 3 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 3 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 3 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 3 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 3 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 3 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 3 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 3 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 3 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 3 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 3 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 3 38 dcl as_data_$g115_dim char (32) ext static; 3 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 3 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 3 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 3 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 3 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 3 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 3 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 3 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 3 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 3 48 dcl as_data_$request_priority fixed bin ext static; 3 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 3 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 3 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 3 52 dcl as_data_$satp ptr ext static; /* SAT */ 3 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 3 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 3 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 3 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 3 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 3 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 3 59 dcl as_data_$version char (8) ext static; /* AS version */ 3 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 3 61 3 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 3 63 2 n_login_args fixed bin, 3 64 2 pad fixed bin, 3 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 3 66 3 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 3 68 2 n_signals fixed bin, 3 69 2 pad fixed bin, 3 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 3 71 3 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 3 73 2 n_system_signals fixed bin, 3 74 2 pad fixed bin, 3 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 3 76 3 77 dcl as_data_$login_words fixed bin ext static aligned, 3 78 /* interactive login words */ 3 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 3 80 2 n_words fixed bin, 3 81 2 pad fixed bin, 3 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 3 83 3 84 dcl as_data_$debug_flag bit (1) aligned external static; 3 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 3 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 3 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 3 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 3 89 3 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 368 369 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 4 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 7* Removed ansp, autp and dutp from this include file, adding them to 4 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 4 9* daemon_user_table.incl.pl1. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 /* This include file requires as_data_.incl.pl1 */ 4 14 4 15 /* format: style4 */ 4 16 4 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 4 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 4 19 dcl asmtp ptr defined (as_data_$asmtp); 4 20 dcl devtabp ptr defined (as_data_$devtabp); 4 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 4 22 dcl mgtp ptr defined (as_data_$mgtp); 4 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 4 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 4 25 dcl sat_htp ptr defined (as_data_$sat_htp); 4 26 dcl satp ptr defined (as_data_$satp); 4 27 dcl scdtp ptr defined (as_data_$cdtp); 4 28 dcl sysdir char (168) defined (as_data_$sysdir); 4 29 dcl whoptr ptr defined (as_data_$whoptr); 4 30 4 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 369 370 /* 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 */ 370 371 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 6 2 6 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 4 /* */ 6 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 6 6 /* operator command or automatically. If they do any I/O, it is done via */ 6 7 /* the message coordinator. */ 6 8 /* */ 6 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 6 10 /* and user_table_entry.incl.pl1. */ 6 11 /* */ 6 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 13 6 14 6 15 /****^ HISTORY COMMENTS: 6 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 6 17* Initially coded from dutbl.incl.pl1. 6 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 6 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 20* A) Add use of ut_header common to all user control tables. 6 21* B) Corrected padding prior to first ute entry. 6 22* END HISTORY COMMENTS */ 6 23 6 24 6 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 6 26 6 27 dcl dutp ptr automatic init (null); 6 28 6 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 6 30 2 header like ut_header, /* Header common to all user tables. */ 6 31 6 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 6 33 6 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 6 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 6 36 6 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 371 372 /* BEGIN INCLUDE FILE ... mgt.incl.pl1 */ 7 2 7 3 /* Modified May 1975 by T. Casey to add priority scheduler parameters */ 7 4 /* Modified Summer '76 RE Mullen to add deadline parameters */ 7 5 /* Modified by T. Casey, November 1978, to add group parameters: absentee_(max min pct limit). */ 7 6 /* Modified July 1981 by J. Bongiovanni to add max_pct */ 7 7 7 8 /* At login each user process is placed in that load control group specified in either 7 9* the project's SAT entry or the user's PDT entry. This group is remembered 7 10* in the user table entry for that process (ATE, DUTE, AUTE). 7 11* 7 12* MGT groups map each process into a set of processes called a work_class 7 13* as a function of shift and whether or not the process is absentee -- 7 14* also per group limits on the number of group members are given. 7 15* 7 16* The work_class entries in the MGT specify the configuration 7 17* of the hardcore scheduler on a per shift basis. If a work_class has the 7 18* realtime attribute, member processes will be given precisely specified 7 19* response characteristics. If running in deadline_not_percent mode on 7 20* a given shift then members of other work_classes will be given approximate 7 21* response characteristics; otherwise other work_classes will be given 7 22* percentages of whatever cpu time is unused by realtime processes. 7 23* REM */ 7 24 7 25 dcl MGT_version_3 fixed bin int static init (3); /* versions >= 2 contain work class definitions */ 7 26 /* versions >= 3 contain deadline info */ 7 27 7 28 /* the mgt is based on mgtp, which is declared as either static or automatic, in each procedure that uses it */ 7 29 7 30 dcl 1 mgt based (mgtp) aligned, /* the Master Group Table defines load control groups 7 31* and work classes */ 7 32 8 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 8 2 8 3 /* the "author" items must always be the first ones in the table. The 8 4* module which moves the converted table to the System Control process 8 5* fills in these data items and assumes them to be at the head of the segment 8 6* regardless of the specific table's actual declaration. The variables 8 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 8 8* respectively. For tables installed in multiple processes, these 8 9* are to be used to lock out multiple installations. */ 8 10 8 11 /* Lock should be used as a modification lock. Since, in general, 8 12* entries may not be moved in system tables, even by installations, 8 13* it is sufficient for only installers and programs that change threads 8 14* to set or respect the lock. Simply updating data in an entry 8 15* requires no such protection. 8 16* 8 17* Last_install_time is used by readers of system tables to detect 8 18* installations or other serious modifications. By checking it before 8 19* and after copying a block of data, they can be protected against 8 20* modifications. 8 21* 8 22* Modules that set the lock should save proc_group_id, and then 8 23* put their group id there for the time they hold the lock. 8 24* if they do not actually install the, they should restore the group id. 8 25**/ 8 26 8 27 2 author aligned, /* validation data about table's author */ 8 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 8 29 3 lock bit (36), /* installation lock */ 8 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 8 31 3 update_authorization bit (1) unal, /* update only authorizations */ 8 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 8 33 3 pad bit (33) unaligned, 8 34 3 last_install_time fixed bin (71), 8 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 8 36 3 w_dir char (64), /* author's working directory */ 8 37 8 38 /* END INCLUDE FILE author.incl.pl1 */ 7 33 7 34 /* the author structure occupies 29 words */ 7 35 2 max_size fixed bin, /* maximum size of table */ 7 36 2 current_size fixed bin, /* current number of entries */ 7 37 2 total_units fixed bin, /* total units allocated */ 7 38 2 version_indicator char (8), /* = "VERSION " for version 2 and later 7 39* (the first version of the mgt had no version number) */ 7 40 2 version fixed bin, /* version of the mgt (if version_indicator = "VERSION ") */ 7 41 2 switches aligned, 7 42 3 wc_initialized bit (1) unaligned, /* = "1"b if work classes >1 have been defined */ 7 43 3 prio_sked_enabled bit (1) unaligned, /* if this switch is turned off, the priority scheduler will not 7 44* be used by the answering service (all processes will be 7 45* put in work class 1 regardless of what the mgt says) */ 7 46 3 prio_sked_on_tape bit (1) unaligned, /* "1"b if a.s. initialization finds the priority scheduler 7 47* on the system tape */ 7 48 3 deadline_mode (0:7) bit (1) unal, /* 0 => %, 1 => deadlines (per shift) */ 7 49 3 mgt_pad1 bit (25) unaligned, /* rest of the word */ 7 50 2 user_wc_defined (16) bit (1) unaligned, /* current set of defined work classes */ 7 51 2 shift_defined (0:7) bit (1) unaligned, /* which shifts are used at this site */ 7 52 2 mgt_pad2 bit (12) unaligned, /* rest of the word */ 7 53 2 user_wc_min_pct (16) fixed bin, /* current percents for the defined work classes */ 7 54 /* the above variables occupy a total of 24 words */ 7 55 2 mgt_pad3 (11) fixed bin, /* pad the mgt header to 64 words (29 + 24 + 11) */ 7 56 7 57 2 entry (100), /* array of entries */ 7 58 3 fill (32) fixed bin; /* 32 words each */ 7 59 /* the first 16 are work classes; the rest, load control groups */ 7 60 7 61 dcl mgtep ptr; /* both types of mgt entries are based on this pointer */ 7 62 7 63 dcl 1 group based (mgtep) aligned, /* a single entry in the mgt */ 7 64 2 group_id char (8), /* group name */ 7 65 2 max_prim fixed bin, /* maximum number of primary units (-1 is special) */ 7 66 2 n_prim fixed bin, /* current number of primary units */ 7 67 2 n_sec fixed bin, /* current number of secondary units */ 7 68 2 n_eo fixed bin, /* current number of edit-only users */ 7 69 2 absolute_max fixed bin, /* Absolute maximum number of units (prime and sec) */ 7 70 2 minu fixed bin, /* Constant number of units in maxprim */ 7 71 2 num fixed bin, /* Numerator of fraction of maxunits given to maxprim */ 7 72 2 denom fixed bin, /* Denominator. Usually = normal maxunits */ 7 73 2 minamax fixed bin, /* Constant part of abs max */ 7 74 2 num1 fixed bin, /* Numerator of abs max fraction */ 7 75 2 denom1 fixed bin, /* Denominator of abs max fraction */ 7 76 2 int_wc (0:7) fixed bin (17) unaligned, /* interactive work classes, per shift */ 7 77 2 abs_wc (0:7) fixed bin (17) unaligned, /* absentee work classes, per shift */ 7 78 /* used halfwords to avoid using up all the pad - 7 79* we might need it later */ 7 80 2 absentee aligned, /* switches controlling absentee processes in this group */ 7 81 3 allowed bit (1) unaligned, /* if off, absentee users must be moved to another group */ 7 82 3 default_group bit (1) unaligned, /* if on, this is one of the groups they can be moved to */ 7 83 3 default_queue (4) bit (1) unaligned, /* if on, this is the default group for this queue */ 7 84 /* ed_mgt and up_mgt_ enforce one default group per queue */ 7 85 3 mgt_pad4 bit (30) unaligned, /* rest of the word */ 7 86 2 absentee_max fixed bin (17) unal, /* max absentees allowed from this group */ 7 87 2 absentee_min fixed bin (17) unal, /* min absentees allowed from this group */ 7 88 2 absentee_pct fixed bin (17) unal, /* this % of abs_maxu allowed to be occupied by this group */ 7 89 2 absentee_limit fixed bin (17) unal, /* result of applying above 3 parameters to current abs_maxu */ 7 90 2 n_abs fixed bin (17) unal, /* current number of background absentee users */ 7 91 2 mgt_pad5a fixed bin (17) unal, /* rest of the word */ 7 92 2 mgt_pad5 (7) fixed bin; /* pad mgt entry to 32 words */ 7 93 7 94 dcl 1 work_class based (mgtep) aligned, 7 95 2 wc_name char (8), /* overlays group.group_id, but can only be 7 96* one of the strings "1" through "16" */ 7 97 2 switches aligned, 7 98 3 defined (0:7) bit (1) unaligned, /* which shifts this work class is defined on */ 7 99 3 absentee_allowed (0:7) bit (1) unaligned, /* "1"b if absentee jobs allowed in this work class and shift */ 7 100 /* ed_mgt and up_mgt_ enforce consistency between these 7 101* and the group.absentee switches */ 7 102 3 realtime (0:7) bit (1) unaligned, /* "1"b if this work class has realtime deadlines */ 7 103 3 mgt_pad6 bit (12) unaligned, /* rest of word */ 7 104 2 min_pct (0:7) fixed bin, /* percent, on each shift */ 7 105 2 int_response (0:7) fixed bin (17) unal, /* response to interaction(.01sec) */ 7 106 2 int_quantum (0:7) fixed bin (17) unal, /* first time slice after interaction(.01sec) */ 7 107 2 response (0:7) fixed bin (17) unal, /* time between time slices(.01sec) */ 7 108 2 quantum (0:7) fixed bin (17) unal, /* second and following time slices(.01sec) */ 7 109 2 max_pct (0:7) fixed bin (17) unal, /* governed percent on each shift (0=>not governed */ 7 110 2 mgt_pad7 (1) fixed bin; /* pad mgt entry to 32 words */ 7 111 7 112 /* END INCLUDE FILE ... mgt.incl.pl1 */ 372 373 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 9 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 9 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 9 8* attribute switches. 9 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 9 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 9 12* be deleted. 9 13* B) Add constants identifying attributes that can be changed by user at 9 14* login, etc. 9 15* END HISTORY COMMENTS */ 9 16 9 17 9 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 9 19 9 20 /* format: style4 */ 9 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 9 22 (2 administrator bit (1), /* 1 system administrator privileges */ 9 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 9 24 2 nobump bit (1), /* 2 user cannot be bumped */ 9 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 9 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 9 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 9 28* . of same project (distinct from "nobump") */ 9 29 2 nolist bit (1), /* 7 don't list user on "who" */ 9 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 9 31 2 multip bit (1), /* 9 user may have several processes */ 9 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 9 33 2 brief bit (1), /* 11 no login or logout message */ 9 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 9 35 2 vhomedir bit (1), /* 13 user may change homedir */ 9 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 9 37 2 sb_ok bit (1), /* 15 user may be standby */ 9 38 2 pm_ok bit (1), /* 16 user may be primary */ 9 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 9 40 2 daemon bit (1), /* 18 user may login as daemon */ 9 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 9 42 2 no_warning bit (1), /* 20 no warning message */ 9 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 9 44* . in PDT: this user has an individual load control group */ 9 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 9 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 9 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 9 48 2 pad bit (12)) unaligned; 9 49 9 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 51 ("none", /* 0 */ 9 52 "administrator", /* 1 */ 9 53 "primary_line", /* 2 */ 9 54 "nobump", /* 3 */ 9 55 "guaranteed_login", /* 4 */ 9 56 "anonymous", /* 5 */ 9 57 "nopreempt", /* 6 */ 9 58 "nolist", /* 7 */ 9 59 "dialok", /* 8 */ 9 60 "multip", /* 9 */ 9 61 "bumping", /* 10 */ 9 62 "brief", /* 11 */ 9 63 "vinitproc", /* 12 */ 9 64 "vhomedir", /* 13 */ 9 65 "nostartup", /* 14 */ 9 66 "no_secondary", /* 15 */ 9 67 "no_prime", /* 16 */ 9 68 "no_eo", /* 17 */ 9 69 "daemon", /* 18 */ 9 70 "", /* 19 vdim OBSOLETE */ 9 71 "no_warning", /* 20 */ 9 72 "igroup", /* 21 */ 9 73 "save_pdir", /* 22 */ 9 74 "disconnect_ok", /* 23 */ 9 75 "save_on_disconnect"); /* 24 */ 9 76 9 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 78 ("null", /* 0 */ 9 79 "admin", /* 1 */ 9 80 "", "", /* 2 - 3 */ 9 81 "guar", /* 4 */ 9 82 "anon", /* 5 */ 9 83 "", "", /* 6 - 7 */ 9 84 "dial", /* 8 */ 9 85 "multi_login", /* 9 */ 9 86 "preempting", /* 10 */ 9 87 "", /* 11 */ 9 88 "v_process_overseer", /* 12 */ 9 89 "v_home_dir", /* 13 */ 9 90 "no_start_up", /* 14 */ 9 91 "no_sec", /* 15 */ 9 92 "no_primary", /* 16 */ 9 93 "no_edit_only", /* 17 */ 9 94 "op_login", /* 18 */ 9 95 "", /* 19 */ 9 96 "nowarn", /* 20 */ 9 97 "", "", "", /* 21 - 23 */ 9 98 "save"); /* 24 */ 9 99 9 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 9 101 options(constant) init("000000000010000000010000000000000000"b); 9 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 9 103 9 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 9 105 options(constant) init("000000000010000000010000000000000000"b); 9 106 /* PDT value for (brief, no_warning) is default */ 9 107 9 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 9 109 options(constant) init("000100000110010000010000000000000000"b); 9 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 9 111 10 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file describes the attributes of an absentee job. It is */ 10 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 10 7 /* and PIT.incl.pl1. */ 10 8 /* */ 10 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 10 10 11 /****^ HISTORY COMMENTS: 10 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 10 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 14* Separated abs_attributes from the request structure 10 15* (abs_message_format.incl.pl1) so that the identical structure could be 10 16* used in the ute structure (user_table_entry.incl.pl1). 10 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 19* Added ABS_ATTRIBUTE_NAMES array. 10 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 10 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 10 22* Added the no_start_up flag. SCP6367 10 23* END HISTORY COMMENTS */ 10 24 10 25 dcl 1 user_abs_attributes aligned based, 10 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 10 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 10 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 10 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 10 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 10 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 10 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 10 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 10 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 10 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 10 36 2 attributes_pad bit (26) unaligned; 10 37 10 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 10 39 "restartable", 10 40 "user_deferred_until_time", 10 41 "proxy", 10 42 "set_bit_cnt", 10 43 "time_in_gmt", 10 44 "user_deferred_indefinitely", 10 45 "secondary_ok", 10 46 "truncate_absout", 10 47 "restarted", 10 48 "no_start_up"); 10 49 10 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 51 9 112 9 113 9 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 373 374 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file requires that the user include */ 11 6 /* user_attributes.incl.pl1 as well. It also includes */ 11 7 /* abs_attributes.incl.pl1 itself. */ 11 8 /* */ 11 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 11 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 11 11 /* */ 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 13 11 14 /****^ HISTORY COMMENTS: 11 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 11 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 11 17* This comment for hcom. 11 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 11 19* anstbl.incl.pl1, and dutbl.incl.pl1. 11 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 11 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 11 22* 84-07-12 BIM added min_process_authorization 11 23* 84-12-31 Keith Loepere added pdir_dir_quota 11 24* 85-01-16 by E. Swenson to add ute.session_uid 11 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 11 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 11 27* Added fields for DSA login server support. 11 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 11 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 11 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 11 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 11 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 11 33* Added disconnection_rel_minutes. 11 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 11 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 36* Changed structure under ute.abs_attributes to use like structure in 11 37* abs_attributes.incl.pl1. This allows the same attributes to be used 11 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 11 39* file. 11 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 11 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 11 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 11 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 45* A) Global reorganization to locate things by type of data. 11 46* B) Eliminate ute.uflags.logged_in. 11 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 11 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 49* A) Reduced overlength person and project fields to proper length. 11 50* B) Adjusted dialed-console section to begin on even word boundary. 11 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 11 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 53* Add ute.line_type. 11 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 11 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 11 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 11 57* for the storage. SCP6367 11 58* END HISTORY COMMENTS */ 11 59 11 60 /* format: style4 */ 11 61 11 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 63 /* */ 11 64 /* Each of the named sections below defines a type of data. Typing comes */ 11 65 /* from data associated with the ute entry itself, with the person, with */ 11 66 /* login argument data, from the main user of the data (eg, dialup_, */ 11 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 11 68 /* and is an even number of words long. The total structure is 300 decimal */ 11 69 /* words long. */ 11 70 /* */ 11 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 72 11 73 11 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 11 75 11 76 dcl utep pointer automatic init (null); 11 77 11 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 11 79 11 80 /* Variables which give state of this entry */ 11 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 11 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 11 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 11 84 2 next_free fixed bin, /* points to previous free entry */ 11 85 11 86 /* Information user gave about person_id associated with this entry. */ 11 87 2 person char (24) unal, /* user's name */ 11 88 2 project char (12) unal, /* project of absentee user */ 11 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 11 90 2 tag_pad bit (27) unal, 11 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 11 92 2 login_flags, /* flags for login data */ 11 93 3 cpw bit (1) unal, /* flag for wish to change password */ 11 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 11 95 3 special_pw unal, /* dial or slave */ 11 96 4 dial_pw bit (1) unal, /* true if dial -user */ 11 97 4 slave_pw bit (1) unal, /* true if slave -user */ 11 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 11 99 3 cda bit (1) unal, /* flag to change default authorization */ 11 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 11 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 11 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 11 103 3 pw_pad bit (25) unal, /* spare parts */ 11 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 11 105 /* Must remain last in pw_flags so it does not */ 11 106 /* appear in PW_FLAG_VALUES array below. */ 11 107 2 generated_pw char (8) unal, /* user must type this as new password */ 11 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 11 109 2 process_authorization bit (72), /* access_authorization of this process */ 11 110 11 111 /* Information user gave about process associated with this entry. */ 11 112 2 outer_module char (32) unal, /* Name of console dim */ 11 113 2 home_dir char (64) unal, /* initial home directory */ 11 114 2 init_proc char (64) unal, /* name of login responder */ 11 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 11 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 11 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 11 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 11 119 2 initial_ring fixed bin, /* ring process will be started in */ 11 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 11 121 2 ln_args fixed bin, /* length of string containing arguments */ 11 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 11 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 11 124 11 125 /* Most of the following information is relevant only to absentee processes */ 11 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 11 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 11 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 11 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 11 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 11 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 11 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 11 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 11 134* (but see uflags.adjust_abs_q_no). */ 11 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 11 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 11 137 2 abs_flags, 11 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 11 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 11 140 3 abs_flags_pad bit (34) unal, 11 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 11 142 2 sender char (32) unal, /* name of RJE station that job is from */ 11 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 11 144 2 proxy_project char (9) unal, 11 145 2 proxy_project_pad char (3) unal, 11 146 2 abs_pad fixed bin, 11 147 11 148 /* Information about process actually created */ 11 149 2 proc_id bit (36), /* process id of absentee process */ 11 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 11 151 2 process_authorization_range (2) bit (72) aligned, 11 152 2 audit bit (36), /* audit flags for user */ 11 153 2 lot_size fixed bin, /* Size of linkage offset table */ 11 154 2 kst_size fixed bin, /* Size of process known segment table */ 11 155 2 cls_size fixed bin, /* Size of process combined linkage */ 11 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 11 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 11 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 11 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 11 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 11 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 11 162 2 pdir_pad fixed bin(17) unal, 11 163 2 process_pad fixed bin, 11 164 11 165 /* Information about primary terminal associated with this entry */ 11 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 11 167 2 terminal_type char (32) unaligned, /* terminal type */ 11 168 2 line_type fixed bin, /* line type */ 11 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 11 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 11 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 11 172 11 173 /* Variables useful for dialed terminals */ 11 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 11 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 11 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 11 177 2 dial_server_flags, 11 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 11 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 11 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 11 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 11 182 11 183 /* Information about usage/accounting. Device usage meters are in a 11 184* separate segment, "devtab" */ 11 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 11 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 11 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 11 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 11 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 11 190 2 last_update_time fixed bin (71), /* time of last account update */ 11 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 11 192 2 ndevices fixed bin, /* Count of attached devices */ 11 193 2 device_head fixed bin, /* Table index of head of device chain */ 11 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 11 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 11 196 2 rs_number_pad bit(30) unal, 11 197 2 usage_pad fixed bin, 11 198 11 199 /* Information for dialup_ (control variables). */ 11 200 2 event fixed bin (71), /* event associated with channel or user manager */ 11 201 2 uprojp ptr, /* ptr to user project sat entry */ 11 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 11 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 11 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 11 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 11 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 11 207 2 count fixed bin, /* counter for logins and dialups */ 11 208 2 n_processes fixed bin, /* number of processes created in this session */ 11 209 2 lock_value fixed bin, /* number of locks set for this entry */ 11 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 11 211 2 login_code char (8) unal, /* login command from LOGIN line */ 11 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 11 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 11 214 2 logout_type char (4) unal, /* type of logout */ 11 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 11 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 11 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 11 218 2 work_class fixed bin, /* work class used by priority scheduler */ 11 219 2 group char (8) unal, /* party group identifier */ 11 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 11 221 11 222 2 uflags, /* Miscellaneous flags */ 11 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 11 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 11 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 11 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 11 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 11 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 11 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 11 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 11 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 11 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 11 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 11 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 11 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 11 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 11 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 11 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 11 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 11 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 11 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 11 242 3 uflags_pad bit (17) unal, 11 243 11 244 /* Information used by load_ctl_ for the process */ 11 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 11 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 11 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 11 248 11 249 11 250 /* Information for login server */ 11 251 2 login_server_info, 11 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 11 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 11 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 11 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 11 256 3 process_id bit (36) aligned, /* process_id of login server */ 11 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 11 258 11 259 /* values for ute.process_type */ 11 260 11 261 dcl (PT_INTERACTIVE initial (1), 11 262 PT_ABSENTEE initial (2), 11 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 11 264 11 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 11 266 "INVALID-TYPE", 11 267 "interactive", 11 268 "absentee", 11 269 "daemon"); 11 270 11 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 11 272 "UNKNOWN-TABLE", 11 273 "answer_table", 11 274 "absentee_user_table", 11 275 "daemon_user_table"); 11 276 11 277 11 278 /* values for ute.pw_flags.mask_ctl */ 11 279 11 280 dcl (DO_MASK init ("00"b), 11 281 DONT_MASK init ("01"b), 11 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 11 283 11 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 11 285 "do_mask", "dont_mask", "derive_mask", ""); 11 286 11 287 11 288 /* names for ute.pw_flags */ 11 289 11 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 11 291 "cpw", 11 292 "generate_pw", 11 293 "dial_pw", 11 294 "slave_pw", 11 295 "cdp", 11 296 "cda", 11 297 "auth_given", 11 298 "noprint", 11 299 "operator"); 11 300 11 301 /* names for ute.uflags */ 11 302 11 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 11 304 "dont_call_init_admin", 11 305 "ip_given", 11 306 "ss_given", 11 307 "lvs_attached", 11 308 "send_initial_string", 11 309 "adjust_abs_q_no", 11 310 "foreground_secondary_ok", 11 311 "foreground_job", 11 312 "sus_sent", 11 313 "suspended", 11 314 "ignore_cpulimit", 11 315 "deferral_logged", 11 316 "save_if_disconnected", 11 317 "disconnected", 11 318 "disconnected_list", 11 319 "proc_create_ok", 11 320 "activity_can_unbump", 11 321 "fpe_causes_logout", 11 322 "user_specified_immediate"); 11 323 11 324 /* names for ute.abs_flags */ 11 325 11 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 11 327 "abs_run", 11 328 "notify"); 11 329 11 330 /* names of ute.dial_server_flags */ 11 331 11 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 11 333 "registered", 11 334 "privileged"); 11 335 11 336 /* values of ute.login_result */ 11 337 11 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 11 339 "logged in", 11 340 "login failed, hangup", 11 341 "login failed, try again"); 11 342 11 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 374 375 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* This include file declares the header shared by the answer_table, */ 12 6 /* absentee_user_table and daemon_user_table include files. */ 12 7 /* */ 12 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 9 12 10 /****^ HISTORY COMMENTS: 12 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 12 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 13* Initial coding. 12 14* END HISTORY COMMENTS */ 12 15 12 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 12 17 2 header_version fixed bin, /* version of the header (3) */ 12 18 2 entry_version fixed bin, /* version of user table entries */ 12 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 12 20 2 header_length fixed bin, /* length of the header */ 12 21 2 max_size fixed bin, /* max number of entries in this table */ 12 22 2 current_size fixed bin, /* actual size of table (in entries) */ 12 23 2 number_free fixed bin, /* number of free entries in the table. */ 12 24 2 first_free fixed bin, /* index of first entry in the free list. */ 12 25 2 as_procid bit (36), /* process ID of user table manager process */ 12 26 2 ut_header_pad fixed bin; 12 27 12 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 375 376 /* BEGIN INCLUDE FILE ... work_class_info.incl.pl1 ... Mod REM 1/76 */ 13 2 13 3 13 4 /* This include file provides the structure used to call 13 5* hphcs_$define_work_classes. The version number should be set by 13 6* the caller to WCI_version_N */ 13 7 13 8 dcl wcip ptr; /* pointer on which work_class_info is based */ 13 9 dcl WCI_version_3 fixed bin int static init (3); /* current version of the structure */ 13 10 13 11 dcl 1 work_class_info aligned based (wcip), 13 12 2 version fixed bin, /* version of this structure */ 13 13 2 switches aligned, /* one word of switches */ 13 14 3 user_wc_defined (16) bit (1) unaligned, /* which user work classes are defined ("1"b = defined) */ 13 15 3 set_system_wc bit (1) unaligned, /* = "1"b if percent of system work class to be changed */ 13 16 3 set_user_wc bit (1) unaligned, /* = "1"b if definitions of user work classes to be changed */ 13 17 3 set_sked_mode bit (1) unal, /* "1"b if setting deadline | percent mode */ 13 18 3 set_max_batch_elig bit (1) unal, /* "1"b if setting max batch elig */ 13 19 3 pad bit (16) unal, /* rest of word */ 13 20 2 system_wc_min_pct fixed bin, /* new percent for system work class */ 13 21 2 user_wc_min_pct (16) fixed bin, /* percents for the normal user work classes */ 13 22 2 error_process_id bit (36) aligned, /* returned if we tried to undefine this process's work class */ 13 23 2 error_work_class fixed bin, /* the work class that had the above process in it */ 13 24 /* Version 1 limit */ 13 25 2 flags aligned, 13 26 3 deadline_mode bit (1) unal, /* = "1"b if virtual deadline for the many */ 13 27 3 realtime (16) bit (1) unaligned, /* which user work classes are realtime */ 13 28 3 governed (16) bit (1) unal, /* which work classes are governed ("1"b = defined)*/ 13 29 3 pad bit (3) unal, 13 30 2 max_batch_elig fixed bin, /* if nonzero is max batch elig */ 13 31 2 resp1 (16) fixed bin (35), /* response time after interaction(micro_sec) */ 13 32 2 quantum1 (16) fixed bin (35), /* first time slice after interaction(micro_sec) */ 13 33 2 resp2 (16) fixed bin (35), /* time between sucessive time slices(micro_sec) */ 13 34 2 quantum2 (16) fixed bin (35), /* second and following time slices(micro_sec) */ 13 35 2 wc_max_elig (0:16) fixed bin (35), /* Added if answering service ever decides to use it */ 13 36 2 io_priority (0:16) fixed bin (35), 13 37 2 pin_weight (0:16) fixed bin (35), 13 38 2 user_wc_max_pct (16) fixed bin; /* max percent of total cpu for governed WC */ 13 39 13 40 /* structure for calling hphcs_$tune_work_class */ 13 41 13 42 dcl WCTI_version_3 fixed bin int static init (3); 13 43 13 44 dcl 1 work_class_tune_info aligned based, 13 45 2 version fixed bin, 13 46 2 wc_number fixed bin (35), /* which workclass is to be changed */ 13 47 2 resp1 fixed bin (71), /* time til quantum after interact(micro_sec) */ 13 48 2 resp2 fixed bin (71), /* time between successive quanta(micro_sec) */ 13 49 2 quantum1 fixed bin (35), /* quantum after interaction(micro_sec) */ 13 50 2 quantum2 fixed bin (35), /* successive quanta(micro_sec) */ 13 51 2 maxel fixed bin (35), /* maxeligible for this workclass */ 13 52 2 set aligned, 13 53 3 resp1 bit (1) unal, 13 54 3 resp2 bit (1) unal, 13 55 3 quantum1 bit (1) unal, 13 56 3 quantum2 bit (1) unal, 13 57 3 maxel bit (1) unal, 13 58 3 purging bit (1) unal, 13 59 3 realtime bit (1) unal, 13 60 3 pin_weight bit (1) unal, 13 61 3 io_priority bit (1) unal, 13 62 3 governed bit (1) unal, 13 63 3 interactive_q bit (1) unal, 13 64 3 pad bit (25) unal, 13 65 2 pin_weight fixed bin (35), 13 66 2 max_percent fixed bin (35), 13 67 2 flags aligned, 13 68 3 io_priority bit (1) unal, 13 69 3 purging bit (1) unal, 13 70 3 realtime bit (1) unal, 13 71 3 interactive_q bit (1) unal, 13 72 3 pad bit (33) unal; 13 73 13 74 13 75 /* END INCLUDE FILE ... work_class_info.incl.pl1 */ 376 377 378 /* BEGIN MESSAGE DOCUMENTATION 379* 380* Message: 381* reassign_work_classes_: load control group "XXX" not found in mgt for user PERSON.PROJECT.TAG. 382* .br 383* reassign_work_classes_: mgt clobbered, contact system administrator. 384* 385* S: as (severity2). 386* 387* T: At shift change time, or after a "maxu auto" command. 388* 389* M: Some logged in user's load control group has apparently disappeared 390* from the mgt. If the load control group specified in the message is valid, then 391* the mgt has been destroyed. Otherwise, the user's answer table entry 392* has been destroyed. All users will remain in their current work classes. 393* 394* A: $contact_sa 395* 396* 397* Message: 398* reassign_work_classes_: undefined work class DD required by load control group XXX 399* .br 400* reassign_work_classes_: mgt clobbered, contact system administrator. 401* 402* S: as (severity2) 403* 404* T: At shift change time, or after a "maxu auto" command. 405* 406* M: There is an inconsistency in the mgt. Probably the mgt has been destroyed. 407* All users will remain in their current work class. 408* 409* A: $contact_sa 410* 411* 412* Message: 413* reassign_work_classes_: process NNN remained in work class NN 414* 415* S: as (severity1) 416* 417* T: At shift change time, or after a "maxu auto" command. 418* 419* M: Some privileged user has interfered with the Answering Service's 420* attempt to define a new set of work classes. The Answering Service will 421* automatically retry the reassignment of work classes. 422* 423* A: $ignore 424* 425* 426* Message: 427* reassign_work_classes_: no work classes defined on current shift. 428* 429* S: as (severity2) 430* 431* T: At shift change time, or after a "maxu auto" command. 432* 433* M: The table in the mgt that should define the work classes for the 434* current shift has not been filled in. Probably a new shift has been added to 435* the installation_parms segment, but the work classes for that shift have 436* not been specified in the mgt. All users will be placed in a single work class. 437* 438* A: $ignore 439* 440* END MESSAGE DOCUMENTATION */ 441 442 end reassign_work_classes_; 443 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.5 reassign_work_classes_.pl1 >special_ldd>install>MR12.2-1047>reassign_work_classes_.pl1 366 1 08/06/87 0913.4 absentee_user_table.incl.pl1 >ldd>include>absentee_user_table.incl.pl1 367 2 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 368 3 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 369 4 08/06/87 0913.4 as_data_definitions_.incl.pl1 >ldd>include>as_data_definitions_.incl.pl1 370 5 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 371 6 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 372 7 08/10/81 1843.7 mgt.incl.pl1 >ldd>include>mgt.incl.pl1 7-33 8 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 373 9 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 9-112 10 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 374 11 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 375 12 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 376 13 06/21/82 1202.4 work_class_info.incl.pl1 >ldd>include>work_class_info.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. ALL_IN_ONE 000100 automatic bit(1) dcl 45 set ref 100* 106* 109 114 129 237 MGT_version_3 constant fixed bin(17,0) initial dcl 7-25 ref 81 129 152 NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 5-76 ref 234 308 UTE_SIZE constant fixed bin(17,0) initial dcl 2-120 ref 163 163 281 281 WCI_version_3 constant fixed bin(17,0) initial dcl 13-9 ref 97 355 a_code parameter fixed bin(35,0) dcl 43 set ref 13 222* abs_wc 21 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-63 ref 255 active based fixed bin(17,0) level 2 dcl 11-78 ref 234 308 addr builtin function dcl 66 ref 104 128 160 163 168 173 199 199 243 281 286 292 358 358 ansp 000342 automatic pointer initial dcl 2-53 set ref 72* 89 162 163 2-53* 235 280 281 310 anstbl based structure level 1 dcl 2-55 as_data_$ansp 000024 external static pointer dcl 3-26 ref 72 as_data_$autp 000026 external static pointer dcl 3-31 ref 73 as_data_$debug_flag 000034 external static bit(1) dcl 3-84 ref 198 313 357 as_data_$dutp 000030 external static pointer dcl 3-37 ref 74 as_data_$mgtp 000032 external static pointer dcl 3-42 ref 80 80 81 81 85 85 102 102 104 104 128 128 129 129 129 129 152 152 152 152 154 154 160 160 218 218 219 219 242 242 243 243 as_procid 10 based bit(36) level 3 dcl 2-55 ref 235 310 autbl based structure level 1 dcl 1-28 autp 000340 automatic pointer initial dcl 1-26 set ref 73* 172 173 1-26* 291 292 code 000101 automatic fixed bin(35,0) dcl 46 set ref 76* 199* 200 222 262* 314* 315 316 319* 320 323 323* 358* 359 com_wci 000421 automatic structure level 1 dcl 338 set ref 340* 358 358 current_size 5 based fixed bin(17,0) level 3 in structure "autbl" dcl 1-28 in procedure "reassign_work_classes_" ref 172 291 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 2-55 in procedure "reassign_work_classes_" ref 162 280 current_size 5 based fixed bin(17,0) level 3 in structure "dutbl" dcl 6-29 in procedure "reassign_work_classes_" ref 167 285 current_size 36 based fixed bin(17,0) level 2 in structure "mgt" dcl 7-30 in procedure "reassign_work_classes_" ref 242 curshift 000102 automatic fixed bin(17,0) dcl 47 set ref 89* 105 107 134 135 136 137 138 139 140 154 252 255 dci 000420 automatic fixed bin(17,0) dcl 335 set ref 344* 345 346 347 348 349 350 351 352* deadline_mode 25 000105 automatic bit(1) level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 154* deadline_mode 25 000421 automatic bit(1) level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 343* deadline_mode 43(03) based bit(1) array level 3 in structure "mgt" packed packed unaligned dcl 7-30 in procedure "reassign_work_classes_" ref 154 default_q1 000002 constant fixed bin(35,0) initial dcl 57 ref 144 348 default_q2 000000 constant fixed bin(35,0) initial dcl 57 ref 146 350 default_r1 000003 constant fixed bin(35,0) initial dcl 57 ref 143 347 default_r2 000001 constant fixed bin(35,0) initial dcl 57 ref 145 349 defined 2 based bit(1) array level 3 packed packed unaligned dcl 7-94 ref 105 dutbl based structure level 1 dcl 6-29 dutp 000344 automatic pointer initial dcl 6-27 set ref 74* 167 168 6-27* 285 286 entry 200 based structure array level 2 in structure "autbl" dcl 1-28 in procedure "reassign_work_classes_" set ref 173 292 entry 200 based structure array level 2 in structure "dutbl" dcl 6-29 in procedure "reassign_work_classes_" set ref 168 286 entry 100 based structure array level 2 in structure "mgt" dcl 7-30 in procedure "reassign_work_classes_" set ref 104 128 160 243 entry 200 based structure array level 2 in structure "anstbl" dcl 2-55 in procedure "reassign_work_classes_" set ref 163 281 error_process_id 23 000105 automatic bit(36) level 2 dcl 51 set ref 201 202* error_table_$action_not_performed 000016 external static fixed bin(35,0) dcl 62 ref 262 error_table_$bad_processid 000020 external static fixed bin(35,0) dcl 62 ref 323 error_table_$bad_work_class 000022 external static fixed bin(35,0) dcl 62 ref 316 error_work_class 24 000105 automatic fixed bin(17,0) level 2 dcl 51 set ref 202* flags 25 000421 automatic structure level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" flags 25 000105 automatic structure level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" force_compromise 000103 automatic bit(1) dcl 48 set ref 192* 212* 317 governed 25(17) 000105 automatic bit(1) array level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 139* 147* governed 25(17) 000421 automatic bit(1) array level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 352* group based structure level 1 dcl 7-63 in procedure "reassign_work_classes_" group 426 based char(8) level 2 in structure "ute" packed packed unaligned dcl 11-78 in procedure "reassign_work_classes_" set ref 241 244 247* 259* group_id based char(8) level 2 dcl 7-63 ref 241 244 header based structure level 2 in structure "dutbl" dcl 6-29 in procedure "reassign_work_classes_" header based structure level 2 in structure "anstbl" dcl 2-55 in procedure "reassign_work_classes_" header based structure level 2 in structure "autbl" dcl 1-28 in procedure "reassign_work_classes_" hphcs_$define_work_classes 000010 constant entry external dcl 53 ref 199 358 hphcs_$set_process_work_class 000012 constant entry external dcl 54 ref 314 319 i 000104 automatic fixed bin(17,0) dcl 49 set ref 103* 104 105 106 107* 115* 116 117 118 121 122* 127* 128 129 134 135 136 137 138 139 140 143 144 145 146 147 148* 162* 163* 167* 168* 172* 173* 280* 281* 285* 286* 291* 292* 353 int_quantum 17 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-94 ref 135 int_response 13 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-94 ref 134 int_wc 15 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-63 ref 252 j 000364 automatic fixed bin(17,0) dcl 232 set ref 242* 243* max_pct 33 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-94 ref 139 140 mgt based structure level 1 dcl 7-30 mgtep 000346 automatic pointer dcl 7-61 set ref 104* 105 107 128* 134 135 136 137 138 139 140 160* 241 243* 244 252 255 mgtp defined pointer dcl 4-22 ref 80 81 85 102 104 128 129 129 152 152 154 160 218 219 242 243 min_pct 3 based fixed bin(17,0) array level 2 dcl 7-94 ref 107 new_wci 000105 automatic structure level 1 dcl 51 set ref 96* 199 199 null builtin function dcl 66 ref 1-26 2-53 6-27 11-76 old_wc 000411 automatic fixed bin(17,0) dcl 306 set ref 314* 319* person 4 based char(24) level 2 packed packed unaligned dcl 11-78 set ref 247* prio_sked_enabled 43(01) based bit(1) level 3 packed packed unaligned dcl 7-30 ref 102 129 152 prio_sked_on_tape 43(02) based bit(1) level 3 packed packed unaligned dcl 7-30 ref 85 proc_id 276 based bit(36) level 2 dcl 11-78 set ref 235 310 314* 319* project 12 based char(12) level 2 packed packed unaligned dcl 11-78 set ref 247* quantum 27 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-94 ref 137 quantum1 47 000105 automatic fixed bin(35,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 135* 144* quantum1 47 000421 automatic fixed bin(35,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 348* quantum2 107 000105 automatic fixed bin(35,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 137* 146* quantum2 107 000421 automatic fixed bin(35,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 350* queue 245 based fixed bin(17,0) level 2 dcl 11-78 ref 252 realtime 25(01) 000105 automatic bit(1) array level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 138* realtime 2(16) based bit(1) array level 3 in structure "work_class" packed packed unaligned dcl 7-94 in procedure "reassign_work_classes_" ref 138 realtime 25(01) 000421 automatic bit(1) array level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 351* resp1 27 000105 automatic fixed bin(35,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 134* 143* resp1 27 000421 automatic fixed bin(35,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 347* resp2 67 000421 automatic fixed bin(35,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 349* resp2 67 000105 automatic fixed bin(35,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 136* 145* response 23 based fixed bin(17,0) array level 2 packed packed unaligned dcl 7-94 ref 136 set_sked_mode 1(18) 000421 automatic bit(1) level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 342* set_sked_mode 1(18) 000105 automatic bit(1) level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 153* set_user_wc 1(17) 000421 automatic bit(1) level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 341* set_user_wc 1(17) 000105 automatic bit(1) level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 98* shift 132 based fixed bin(17,0) level 2 dcl 2-55 ref 89 switches 1 000421 automatic structure level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" switches 1 000105 automatic structure level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" switches 43 based structure level 2 in structure "mgt" dcl 7-30 in procedure "reassign_work_classes_" switches 2 based structure level 2 in structure "work_class" dcl 7-94 in procedure "reassign_work_classes_" sys_log_ 000014 constant entry external dcl 55 ref 110 202 247 259 260 tag 15 based char(1) level 2 packed packed unaligned dcl 11-78 set ref 247* unspec builtin function dcl 66 set ref 96* 340* user_abs_attributes based structure level 1 dcl 10-25 user_attributes based structure level 1 dcl 9-21 user_wc_defined 1 000105 automatic bit(1) array level 3 in structure "new_wci" packed packed unaligned dcl 51 in procedure "reassign_work_classes_" set ref 105* 106 117* 121* 129 218 258 user_wc_defined 1 000421 automatic bit(1) array level 3 in structure "com_wci" packed packed unaligned dcl 338 in procedure "DEFINE_COMPROMISE" set ref 345* user_wc_defined 44 based bit(1) array level 2 in structure "mgt" packed packed unaligned dcl 7-30 in procedure "reassign_work_classes_" set ref 218* user_wc_max_pct 212 000105 automatic fixed bin(17,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 140* 148* user_wc_max_pct 212 000421 automatic fixed bin(17,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 353* user_wc_min_pct 45 based fixed bin(17,0) array level 2 in structure "mgt" dcl 7-30 in procedure "reassign_work_classes_" set ref 219* user_wc_min_pct 3 000421 automatic fixed bin(17,0) array level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 346* user_wc_min_pct 3 000105 automatic fixed bin(17,0) array level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 107* 118* 122* 219 ut_header based structure level 1 dcl 12-16 ute based structure level 1 dcl 11-78 utep 000350 automatic pointer initial dcl 11-76 set ref 163* 168* 173* 11-76* 234 235 241 244 247 247 247 247 252 259 267 281* 286* 292* 308 310 312 314 319 version 000105 automatic fixed bin(17,0) level 2 in structure "new_wci" dcl 51 in procedure "reassign_work_classes_" set ref 97* version 000421 automatic fixed bin(17,0) level 2 in structure "com_wci" dcl 338 in procedure "DEFINE_COMPROMISE" set ref 355* version 42 based fixed bin(17,0) level 2 in structure "mgt" dcl 7-30 in procedure "reassign_work_classes_" ref 81 129 152 version_indicator 40 based char(8) level 2 dcl 7-30 ref 80 wc 000365 automatic fixed bin(17,0) dcl 233 in procedure "GET_WC" set ref 238* 252* 255* 258 259* 267 wc 000410 automatic fixed bin(17,0) dcl 305 in procedure "SET_WC" set ref 312* 314* 319* work_class based structure level 1 dcl 7-94 in procedure "reassign_work_classes_" work_class 425 based fixed bin(17,0) level 2 in structure "ute" dcl 11-78 in procedure "reassign_work_classes_" set ref 267* 312 work_class_info based structure level 1 dcl 13-11 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 10-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 11-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 9-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 2-51 AT_NORMAL internal static char(8) initial packed unaligned dcl 2-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 2-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 2-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 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 11-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 11-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 11-280 DO_MASK internal static bit(2) initial packed unaligned dcl 11-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 6-25 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 11-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 11-284 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 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 11-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 11-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 11-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 11-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 11-290 STATE_VALUES internal static char(15) initial array dcl 5-70 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 11-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 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 11-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 9-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 9-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 9-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 11-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 WCTI_version_3 internal static fixed bin(17,0) initial dcl 13-42 as_data_$BS external static char(1) dcl 3-21 as_data_$CR external static char(1) dcl 3-22 as_data_$abs_dim external static char(32) packed unaligned dcl 3-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 3-24 as_data_$acsdir external static char(168) packed unaligned dcl 3-25 as_data_$as_procid external static bit(36) dcl 3-27 as_data_$as_ring external static fixed bin(3,0) dcl 3-28 as_data_$as_tty automatic char(6) packed unaligned dcl 3-29 as_data_$asmtp external static pointer dcl 3-30 as_data_$buzzardp external static pointer dcl 3-32 as_data_$cdtp external static pointer dcl 3-33 as_data_$default_weight external static fixed bin(35,0) dcl 3-34 as_data_$devtabp external static pointer dcl 3-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 3-36 as_data_$g115_dim external static char(32) packed unaligned dcl 3-38 as_data_$lct_initialized external static bit(1) dcl 3-39 as_data_$lct_size external static fixed bin(17,0) dcl 3-40 as_data_$login_args external static structure level 1 dcl 3-62 as_data_$login_words external static fixed bin(17,0) dcl 3-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 3-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 3-87 as_data_$ls_message_buffer_ptr external static pointer dcl 3-88 as_data_$ls_request_server_info_ptr external static pointer dcl 3-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 3-41 as_data_$mrd_dim external static char(32) packed unaligned dcl 3-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 3-44 as_data_$pdtdir external static char(168) packed unaligned dcl 3-45 as_data_$pit_ptr external static pointer dcl 3-46 as_data_$rcpdir external static char(168) packed unaligned dcl 3-47 as_data_$request_priority external static fixed bin(17,0) dcl 3-48 as_data_$rs_ptrs external static pointer array dcl 3-49 as_data_$rtdtp external static pointer dcl 3-50 as_data_$sat_htp external static pointer dcl 3-51 as_data_$satp external static pointer dcl 3-52 as_data_$signal_types external static structure level 1 dcl 3-67 as_data_$suffix external static char(2) array packed unaligned dcl 3-53 as_data_$sysdir external static char(168) packed unaligned dcl 3-54 as_data_$system_signal_types external static structure level 1 dcl 3-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 3-55 as_data_$terminet_tabs_string external static varying char(144) dcl 3-56 as_data_$tty_dim external static char(32) packed unaligned dcl 3-57 as_data_$update_priority external static fixed bin(17,0) dcl 3-58 as_data_$version external static char(8) packed unaligned dcl 3-59 as_data_$whoptr external static pointer dcl 3-60 as_data_login_words based structure level 1 dcl 3-77 as_procid defined bit(36) dcl 4-17 as_tty based char(6) packed unaligned dcl 4-18 asmtp defined pointer dcl 4-19 devtabp defined pointer dcl 4-20 ip defined pointer dcl 4-21 pdtdir based char(168) packed unaligned dcl 4-23 rs_ptrs based pointer array dcl 4-24 sat_htp defined pointer dcl 4-25 satp defined pointer dcl 4-26 scdtp defined pointer dcl 4-27 sysdir defined char(168) packed unaligned dcl 4-28 wcip automatic pointer dcl 13-8 whoptr defined pointer dcl 4-29 work_class_tune_info based structure level 1 dcl 13-44 NAMES DECLARED BY EXPLICIT CONTEXT. DEFINE_COMPROMISE 001312 constant entry internal dcl 333 ref 187 318 GET_WC 000701 constant entry internal dcl 230 ref 164 169 174 MAIN_RETURN 000675 constant label dcl 222 ref 80 81 85 206 263 317 320 323 360 MOVE_USERS 001140 constant entry internal dcl 275 ref 193 213 SET_WC 001221 constant entry internal dcl 303 ref 282 287 293 gwc_abort 001110 constant label dcl 260 ref 249 gwc_got_grp 001024 constant label dcl 252 ref 244 reassign_work_classes_ 000165 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 1556 1614 1406 1566 Length 2306 1406 36 455 150 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME reassign_work_classes_ 544 external procedure is an external procedure. GET_WC internal procedure shares stack frame of external procedure reassign_work_classes_. MOVE_USERS internal procedure shares stack frame of external procedure reassign_work_classes_. SET_WC internal procedure shares stack frame of external procedure reassign_work_classes_. DEFINE_COMPROMISE internal procedure shares stack frame of external procedure reassign_work_classes_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME reassign_work_classes_ 000100 ALL_IN_ONE reassign_work_classes_ 000101 code reassign_work_classes_ 000102 curshift reassign_work_classes_ 000103 force_compromise reassign_work_classes_ 000104 i reassign_work_classes_ 000105 new_wci reassign_work_classes_ 000340 autp reassign_work_classes_ 000342 ansp reassign_work_classes_ 000344 dutp reassign_work_classes_ 000346 mgtep reassign_work_classes_ 000350 utep reassign_work_classes_ 000364 j GET_WC 000365 wc GET_WC 000410 wc SET_WC 000411 old_wc SET_WC 000420 dci DEFINE_COMPROMISE 000421 com_wci DEFINE_COMPROMISE THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hphcs_$define_work_classes hphcs_$set_process_work_class sys_log_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$autp as_data_$debug_flag as_data_$dutp as_data_$mgtp error_table_$action_not_performed error_table_$bad_processid error_table_$bad_work_class LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000162 1 26 000172 2 53 000174 6 27 000175 11 76 000176 72 000177 73 000202 74 000205 76 000210 80 000211 81 000217 85 000222 89 000225 96 000230 97 000233 98 000235 100 000237 102 000241 103 000244 104 000251 105 000257 106 000264 107 000271 108 000273 109 000275 110 000277 114 000321 115 000323 116 000331 117 000333 118 000336 119 000341 121 000342 122 000345 124 000346 127 000350 128 000355 129 000363 134 000400 135 000412 136 000421 137 000430 138 000437 139 000443 140 000455 141 000456 143 000457 144 000462 145 000464 146 000466 147 000470 148 000473 150 000474 152 000476 153 000507 154 000511 160 000515 162 000517 163 000527 164 000534 165 000535 167 000537 168 000547 169 000553 170 000554 172 000556 173 000567 174 000573 175 000574 187 000576 192 000577 193 000601 198 000602 199 000605 200 000617 201 000621 202 000623 206 000655 212 000656 213 000657 218 000660 219 000672 222 000675 224 000700 230 000701 234 000702 235 000705 237 000713 238 000715 239 000717 241 000720 242 000727 243 000741 244 000747 245 000756 247 000760 249 001023 252 001024 255 001041 258 001052 259 001056 260 001110 262 001132 263 001135 267 001136 270 001137 275 001140 280 001141 281 001151 282 001156 283 001157 285 001161 286 001171 287 001175 288 001176 291 001200 292 001211 293 001215 294 001216 297 001220 303 001221 308 001222 310 001225 312 001233 313 001235 314 001240 315 001254 316 001257 317 001262 318 001264 319 001265 320 001303 322 001305 323 001306 331 001311 333 001312 340 001313 341 001316 342 001320 343 001322 344 001324 345 001331 346 001334 347 001337 348 001341 349 001343 350 001345 351 001347 352 001352 353 001355 354 001357 355 001361 357 001363 358 001366 359 001400 360 001402 364 001403 ----------------------------------------------------------- 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