COMPILATION LISTING OF SEGMENT system_info_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1039.7 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 system_info_: proc; 13 14 /* SYSTEM_INFO_ - return various information to user about Multics. 15* 16* The information is obtained from the header of "whotab" 17* or from "installation_parms" or from the correct "rate_structure_x" seg. 18* 19* See AG93 (Multics Subroutines and Input/Output Modules) for documentation 20* of the following entries: 21* 22* $id (installation_id) 23* $sysid (sysid) 24* $version_id 25* $session (session_type) 26* $titles (company, dept, companyds, deptds) 27* $users (maxusers, nusers, maxunits, nunits) 28* $timeup (time) 29* $prices (cpu, log, process, core, disk, registration) 30* $prices_rs (rs_number, cpu, log, process, core, disk, registration) 31* $device_prices (ndevices, addr (dvt)) 32* $device_prices_rs (rs_number, ndevices, addr (dvt)) 33* $abs_limits (default_cpu_limits, default_foreground_cpu_limit, max_cpu_limits) 34* $abs_prices (farray) 35* $default_absentee_queue (default_queue) 36* $abs_prices_rs (rs_number, farray) 37* $io_prices (farray) 38* $io_prices_rs (rs_number, farray) 39* $next_shutdown (time, reason, until) 40* $last_shutdown (time, erfno) 41* $shift_table (stt) 42* $access_ceiling (access_ceiling) 43* $level_names (long_names, short_names) 44* $category_names (long_names, short_names) 45* $log_threshold (state, npages) 46* $next_shift_change (cur_shift, change_time, new_shift, start_time) 47* $ARPANET_host_number (host_num) 48* $resource_price (price_name, price, code) 49* $resource_price_rs (rs_number, price_name, price, code) 50* $rs_name (rs_number, rs_name, code) 51* $rs_number (rs_name, rs_number, code) 52* $max_rs_number (rs_count) 53* 54* See AN-66 (AS PLM) for documentation of the following internal interfaces: 55* 56* $abs_chn (evchn, pid) 57* $request_chn (pid, event_channel, mseg_dname, mseg_ename) 58* 59* Written by THVV 60* Modified 741231 by PG to add entries for new AIM fields. 61* Modified 750324 by PG to rename $dial_chn to $request_chn. 62* Modified 750912 by PG to give request facility its own process id. 63* Modified 751103 by PG to complain if can't initiate whotab/installation_parms. 64* Modified April 1976 by T. Casey to return shift start time as fourth argument to next_shift_change entry point. 65* Modified 761229 by D. M. Wells to add $ARPANET_host_number entry point. 66* Modified May 1978 by T. Casey to add resource_price entry point. 67* Modified November 1978 by T. Casey for MR7.0 to add arguments to abs_limits entry point. 68* Modified July 1979 by J. N. R. Barnecut for MR8.0 to add rate_structure entry points. (UNCA) 69* Modified Feb 1980 by M. B. Armstrong for further changes re rate_structure. (UNCA) 70* Modified 17 September 1980 by G. Palter to add default_absentee_queue entrypoint. 71* Modified June 1981 by E. N. Kittlitz for UNCA rate structures. 72* Modified May 1983 by Art Beattie to add version_id entry. 73* Modified 1984-06-19 BIM to make ARPA return -1 all the time. 74* to add trusted_path_flags entrypoint. 75* Modified 840619 for session entry and to use initiate_file_ and friends... -E. A. Ranzenbach 76**/ 77 78 /****^ HISTORY COMMENTS: 79* 1) change(85-10-24,Spitzer), approve(85-10-24,MCR7280), 80* audit(85-12-05,Lippard), install(85-12-16,MR12.0-1001): 81* Return "shutdown" rather than the null string if the system was shutdown 82* rather than crashed. 83* 2) change(87-04-28,GDixon), approve(87-07-23,MCR7741), 84* audit(87-07-24,Brunelle), install(87-08-04,MR12.1-1055): 85* Updated for change to user_table_entry.incl.pl1. 86* 3) change(88-06-03,Parisek), approve(88-06-10,MCR7920), 87* audit(88-06-23,Hunter), install(87-07-05,MR12.2-1053): 88* Change reference of pitmsg.incl.pl1 to pit.incl.pl1 as the 89* pitmsg.incl.pl1 name was removed from pit.incl.pl1 in MR12.1. 90* END HISTORY COMMENTS */ 91 return; 92 93 /* parameters */ 94 95 dcl rs_number fixed bin, 96 rs_name char (*), 97 ndev fixed bin, 98 devp ptr; 99 100 /* entries */ 101 102 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 103 dcl active_all_rings_data$version_id ext char (8); 104 dcl com_err_ entry options (variable); 105 dcl cu_$arg_count entry (fixed bin); 106 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 107 dcl datebin_$next_shift_change entry (fixed bin (71), fixed bin (71), fixed bin, fixed bin); 108 dcl get_pdir_ entry () returns (char (168)); 109 dcl initiate_file_ entry (char(*), char(*), bit(*), ptr, fixed bin(24), fixed bin(35)); 110 dcl terminate_file_ entry (ptr, fixed bin(24), bit(*), fixed bin(35)); 111 112 /* automatic */ 113 114 dcl ap ptr, /* ptr to arg */ 115 al fixed bin, /* lth of arg */ 116 arg_offset fixed bin, 117 cur_rs_ptr ptr init (null), 118 ec fixed bin (35), 119 nargs fixed bin, 120 (i, j) fixed bin, 121 t71 fixed bin (71), 122 (t1, t2) fixed bin; 123 124 /* based */ 125 126 dcl bchr char (al) based (ap), /* character arg */ 127 bfix fixed bin (35) based (ap), /* fixed bin arg */ 128 bflo float bin (27) based (ap), /* float bin arg */ 129 b71 fixed bin (71) based (ap), /* dbl prec arg */ 130 b36 bit (36) aligned based (ap), /* bit (36) arg */ 131 bfa (0: 7) float bin (27) based (ap), /* float array arg */ 132 based_fixed_array (4) fixed bin (35) based (ap), /* fixed array arg */ 133 based_shift_queue_array (0:7, 4) fixed bin (35) based (ap); /* array arg for per-shift-and-queue absentee parms */ 134 135 /* internal static */ 136 137 dcl (whoptr, pp) ptr int static init (null); 138 dcl rs_ptrs (0:9) ptr int static init ((10) null); 139 dcl ip ptr defined (rs_ptrs (0)); 140 dcl sysdir char (168) int static init (">system_control_1"); 141 142 /* builtins */ 143 144 dcl (char, clock, fixed, hbound, ltrim, max, null, string) builtin; 145 146 /* include files */ 147 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 148 149 2 1 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 2 2 2 3 /* Modified 740723 by PG to add short AIM access names */ 2 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 2 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 2 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 2 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 2 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 2 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 2 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 2 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 2 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 2 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 2 14* strict_trusted_path. */ 2 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 2 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 2 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 2 18 2 19 2 20 /****^ HISTORY COMMENTS: 2 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 2 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 2 23* added vchn_requires_accept parameter. 2 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 2 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 2 26* Correct formatting problems. 2 27* END HISTORY COMMENTS */ 2 28 2 29 2 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 2 31 2 32 2 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 2 34 2 part_1 like installation_parms_part_1 aligned, 2 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 2 36 2 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 2 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 2 39 2 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 2 41 2 installation_id char (32), /* Name printed at dialup and in who */ 2 42 2 company char (64), /* company name */ 2 43 2 department char (64), /* department */ 2 44 2 companyds char (120), /* company, double spaced */ 2 45 2 departmentds char (120), /* dpeartment double spaced */ 2 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 2 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 2 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 2 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 2 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 2 51 2 ndevices fixed bin, /* number of devices to charge */ 2 52 2 devtab (16), /* Maximum 16 */ 2 53 3 device_id char (8), /* Name of device */ 2 54 3 device_price (0: 7) float bin, /* Price by shift */ 2 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 2 56 2 warning_time fixed bin, /* seconds from warning to logout */ 2 57 2 login_time fixed bin, /* seconds in which to complete login */ 2 58 2 acct_update fixed bin, /* seconds between acct update */ 2 59 2 login_tries fixed bin, /* number of login tries allowed */ 2 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 2 61 2 registration_price float bin, /* fee per month per user */ 2 62 2 dolsign char (1), /* "dollar sign" */ 2 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 2 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 2 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 2 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 2 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 2 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 2 69* Initializer will copy the syserr_log */ 2 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 2 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 2 72 2 fatal_error_loop_count fixed bin (17) unaligned, 2 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 2 74 2 term_real_time_seconds fixed bin (17) unaligned, 2 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 2 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 2 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 2 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 2 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 2 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 2 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 2 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 2 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 2 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 2 85 2 level_names (0:7) char (32), /* Names for security levels. */ 2 86 2 category_names (18) char (32), /* Names for security categories. */ 2 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 2 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 2 89 2 ncon fixed bin, /* Number of config elements. */ 2 90 2 cona (51), /* each entry is 5 words long */ 2 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 2 92 3 shift fixed bin (5) unal, /* Shift number */ 2 93 3 x1 fixed bin (23) unal, 2 94 3 kmem fixed bin (17) unal, /* Memory size */ 2 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 2 96 3 x2 fixed bin (17) unal, 2 97 3 maxa fixed bin (11) unal, /* Max abs users */ 2 98 3 maxq fixed bin (5) unal, /* Max abs q */ 2 99 3 maxu_base fixed bin (17) unal, 2 100 3 response_high fixed bin (17) unal, 2 101 3 response_low fixed bin (17) unal, 2 102 3 x3 fixed bin (17) unal, 2 103 2 104 /* Absentee control parameters. New for MR7.0 */ 2 105 2 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 2 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 2 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 2 109 2 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 2 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 2 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 2 113 2 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 2 115 2 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 2 117 2 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 2 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 2 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 2 121 2 version fixed bin (35), /* must be 2 */ 2 122 2 nrates fixed bin, /* number of rate structures */ 2 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 2 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 2 125 2 require_operator_login bit (1) aligned, /* just what it says */ 2 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 2 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 2 128* mcacs segments for operators */ 2 129 2 password_min_length fixed bin, /* minimum length of passwords */ 2 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 2 131 2 password_change_interval fixed bin, /* number of days until must change */ 2 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 2 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 2 134* "accepted" by operator if personid is not 2 135* signed on system console */ 2 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 2 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 2 138* or someone miscounted when using part of pad2 */ 2 139 2 140 2 141 /* Entries in the following array may be accessed via system_info_$resource_price. 2 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 2 143 2 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 2 145 2 name char (32), 2 146 2 price float bin; 2 147 3 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 3 2 3 3 /* Created on 04/24/78 by Michael R. Jordan */ 3 4 /* Modified 04/10/79 by C. D. Tavares */ 3 5 3 6 dcl rifp ptr; 3 7 3 8 dcl 1 rcp_init_flags based (rifp), 3 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 3 10 2 pad1 bit (2) unaligned, /* obsolete */ 3 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 3 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 3 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 3 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 3 15 3 16 dcl (No_authentication initial (0), 3 17 Nominal_authentication initial (1), 3 18 Automatic_authentication initial (2), 3 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 3 20 3 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 3 22 ("none", "nominal", "automatic", "manual"); 3 23 3 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 2 148 2 149 2 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 150 4 1 /* BEGIN INCLUDE FILE ... rate_structure.incl.pl1 */ 4 2 4 3 /* Created 81-06-10 by E. N. Kittlitz */ 4 4 4 5 /* The declaration of rate_structure requires declarations contained in 4 6* installation_parms.incl.pl1. 4 7**/ 4 8 4 9 dcl 1 rate_structure based (cur_rs_ptr) aligned, /* describes a rate strcture */ 4 10 2 part_1 like installation_parms_part_1 aligned, 4 11 2 resource (0 refer (rate_structure.nrscp)) like installation_parms_resource_array_part aligned; 4 12 4 13 /* END INCLUDE FILE ... rate_structure.incl.pl1 */ 151 5 1 /* Begin include file trusted_path_flags.incl.pl1 BIM 1984-07-26 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(86-05-19,GDixon), approve(86-09-26,MCR7499), 5 6* audit(86-10-08,Beattie), install(86-10-13,MR12.0-1183): 5 7* Correct alignnment problem to make entire structure aligned, with flags in 5 8* the structure unaligned. 5 9* END HISTORY COMMENTS */ 5 10 5 11 5 12 /* format: style4 */ 5 13 5 14 declare 1 trusted_path_flags aligned, 5 15 2 login bit (1) unal, /* Require disconnection to change auth */ 5 16 2 pad bit (35) unal; 5 17 5 18 /* End include file trusted_path_flags.incl.pl1 */ 152 6 1 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 6 2 6 3 /* Modified 740723 by PG to add security info */ 6 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 6 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 6 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 6 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 6 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 6 9 6 10 dcl 1 whotab based (whoptr) aligned, 6 11 2 mxusers fixed bin, /* max. number of users on system */ 6 12 2 n_users fixed bin, /* current number of users */ 6 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 6 14 2 n_units fixed bin, /* current load */ 6 15 2 timeup fixed bin (71), /* time system was started */ 6 16 2 session char (8), /* AS state, same as anstbl.session */ 6 17 2 nextsd fixed bin (71), /* time we will shutdown */ 6 18 2 until fixed bin (71), /* projected time we start up again */ 6 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 6 20 2 erfno char (8), /* if a crash, the error number */ 6 21 2 obsolete_why char (32), /* reason for last shutdown */ 6 22 2 installation_id char (32), /* name of installation */ 6 23 2 obsolete_message char (32), /* message for all users */ 6 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 6 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 6 26 2 max_abs_users fixed bin, /* max number of absentee users */ 6 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 6 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 6 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 6 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 6 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 6 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 6 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 6 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 6 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 6 36 2 pad1 bit (9) unal, 6 37 2 pad (3) fixed bin, 6 38 2 version fixed bin, /* structure version */ 6 39 2 header_size fixed bin, /* length of header in words */ 6 40 2 entry_size fixed bin, /* length of entry in words */ 6 41 /* laste_adjust is used only by Answering Service programs */ 6 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 6 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 6 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 6 45 6 46 /* whotab header extension: The header is extended from 64 words by 6 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 6 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 6 49* present. This allows existing programs to function with old definitions of 6 50* whotab. Obviously no new header field can be more than 31 contiguous words in 6 51* length. In the Answering Service, all programs using whotab must be compiled 6 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 6 53 6 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 6 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 6 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 6 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 6 58 2 abs_control, /* see absentee_user_table */ 6 59 3 mnbz bit (1) unal, /* must not be zero */ 6 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 6 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 6 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 6 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 6 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 6 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 6 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 6 67 3 control_pad bit (23) unal, 6 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 6 69 2 installation_request_pid bit (36), /* installation process identifier */ 6 70 2 sysid char (32), /* current system name */ 6 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 6 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 6 73 2 message char (124), /* message for all users */ 6 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 6 75 2 why char (124), /* reason for last shutdown */ 6 76 2 e (1000), /* offset 240o */ 6 77 3 active fixed bin, /* nonzero means logged in */ 6 78 3 person char (28) aligned, /* person name */ 6 79 3 project char (28), /* project id */ 6 80 3 anon fixed bin, /* 1 if anonymous user */ 6 81 3 padding fixed bin (71), 6 82 3 timeon fixed bin (71), /* time of login */ 6 83 3 units fixed bin, /* load units */ 6 84 3 stby fixed bin, /* 1 if stby */ 6 85 3 idcode char (4), /* tty id code */ 6 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 6 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 6 88 3 group char (8), /* party-line group */ 6 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 6 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 6 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 6 92 3 pad2 bit (33) unal, 6 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 6 94 3 process_authorization bit (72); /* access authorization of process */ 6 95 6 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 6 97 6 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 153 154 7 1 /* BEGIN INCLUDE FILE ... pit.incl.pl1 */ 7 2 7 3 /****^ ******************************************** 7 4* * * 7 5* * Copyright, (C) Honeywell Bull Inc., 1988 * 7 6* * * 7 7* ******************************************** */ 7 8 7 9 /* Requires user_attributes.incl.pl1 */ 7 10 /* Declaration of the Process Inititalization Table (PIT) */ 7 11 7 12 /****^ HISTORY COMMENTS: 7 13* 1) change(86-03-01,Gilcrease), approve(86-03-27,MCR7370), 7 14* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 7 15* First comment for hcom. Modified 750430 by PG to add terminal_access_class 7 16* Modified 6/20/77 by J. Stern to add term_type_name Modified Feb 1980 by M. 7 17* B. Armstrong to implement multiple rate structures. (UNCA) Modified by R. 7 18* McDonald May 1980 to include page charges, replaces cpu in iod (UNCA) 7 19* Modified by Benson I. Margulies November 1981 do declare pit_$, pit_ptr, 7 20* and unaligned character strings. Modified by E. N. Kittlitz January 1982 7 21* for user_attributes.incl.pl1 changes Modified by E. N. Kittlitz October 7 22* 1982 for request_id. Modified by BIM 1984-09-12 for auth range. The max 7 23* copies the pds, but this is the only home of the min. 7 24* 2) change(86-03-01,Gilcrease), approve(86-03-27,MCR7370), 7 25* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 7 26* Add the truncate_absout and restarted bits for the 7 27* -truncate .absout SCP 6297, version 3. 7 28* 3) change(86-12-11,GDixon), approve(87-07-16,MCR7741), 7 29* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 30* Changed structure under pit.abs_attributes to use like structure in 7 31* abs_attributes.incl.pl1. This allows the same attributes to be used 7 32* in abs_message_format.incl.pl1 and user_table_entry.incl.pl1 as well as 7 33* this include file. 7 34* 4) change(88-06-03,Parisek), approve(88-06-10,MCR7920), 7 35* audit(88-06-23,Hunter), install(87-07-05,MR12.2-1053): 7 36* Remove "pitmsg" in END comment string. pitmsg.incl.pl1 is no longer a 7 37* name of pit.incl.pl1. 7 38* 5) change(88-07-11,Parisek), approve(88-07-11,MCR7849), 7 39* audit(88-07-03,Lippard), install(88-07-13,MR12.2-1047): 7 40* Removed the ringpad element and added the min_ring & max_ring elements so 7 41* users may access their lowest and/or highest possible login ring value. 7 42* SCP6367. 7 43* END HISTORY COMMENTS */ 7 44 7 45 7 46 /* format: style4 */ 7 47 declare pit_$ bit (36) aligned external static; 7 48 declare pit_ptr pointer; 7 49 7 50 dcl 1 pit aligned based (pit_ptr), 7 51 2 version fixed bin, /* indicates which version of the pit */ 7 52 2 process_type fixed bin, /* initializer, interactive, or absentee process */ 7 53 2 login_responder char (64) unal, /* path name of login responder */ 7 54 7 55 /* All of these are going to be word aligned whether or not they are declared aligned, 7 56* and unaligning them cleans up code in many places */ 7 57 7 58 2 homedir char (64) unal, /* path name of home directory */ 7 59 2 project char (28) unal, /* name of this process' project affiliation */ 7 60 2 account char (32) unal, /* name of account to which this process is charged */ 7 61 2 n_processes fixed bin, /* number of previous processes for this session */ 7 62 2 login_time fixed bin (71), /* clock time at login */ 7 63 2 proc_creation_time fixed bin (71), /* clock time at creation of this process */ 7 64 2 old_proc_cpu fixed bin (71), /* cpu time used by previous processes in this session */ 7 65 2 user_weight fixed bin, /* weight of this process */ 7 66 2 anonymous fixed bin, /* 1 if anonymous user */ 7 67 2 login_name char (28) unal, /* name of user given at login */ 7 68 2 logout_pid bit (36), /* process id of answering service */ 7 69 2 logout_channel fixed bin (71), /* channel for signalling logouts to answering service */ 7 70 2 group char (8) unal, /* party group */ 7 71 2 min_ring fixed bin, /* min ring */ 7 72 2 max_ring fixed bin, /* max ring */ 7 73 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 7 74 2 whox fixed bin, /* this process's index in whotab (or 0) */ 7 75 2 outer_module char (32) unaligned, 7 76 2 pad (2) fixed bin, 7 77 2 dont_call_init_admin bit (1) aligned, /* Call process_overseer_ directly */ 7 78 2 terminal_access_class bit (72) aligned, /* access class of user's terminal */ 7 79 2 dollar_charge float bin, /* Month-to-date expenditure */ 7 80 2 dollar_limit float bin, /* Limit stop on usage */ 7 81 2 shift_limit (0:7) float bin, /* Stops on each shift's usage */ 7 82 2 logins fixed bin, /* Number of logins this month */ 7 83 2 crashes fixed bin, /* Number of sessions crashed */ 7 84 2 interactive (0:7), /* interactive usage by shift */ 7 85 3 charge float bin, /* Total charge */ 7 86 3 xxx fixed bin, 7 87 3 cpu fixed bin (71), /* CPU usage in microseconds */ 7 88 3 core fixed bin (71), /* Memory usage in page-microseconds */ 7 89 3 connect fixed bin (71), /* Connect time in microseconds */ 7 90 3 io_ops fixed bin (71), /* Terminal I/O operations */ 7 91 2 absentee (4), /* Absentee usage by queue */ 7 92 3 charge float bin, /* Total absentee charge */ 7 93 3 jobs fixed bin, /* Number of jobs */ 7 94 3 cpu fixed bin (71), /* CPU usage in microseconds */ 7 95 3 memory fixed bin (71), /* Memory usage in mu */ 7 96 2 iod (4), /* IO Daemon usage, by queue */ 7 97 3 charge float bin, /* Total charge */ 7 98 3 pieces fixed bin, /* Number of requests */ 7 99 3 pad fixed bin (35), 7 100 3 pages fixed bin (35), /* number of pages output */ 7 101 3 lines fixed bin (71), /* Record count */ 7 102 2 devices (16) float bin, /* Usage of attached devices */ 7 103 2 time_last_reset fixed bin (71), /* time last updated the PDT */ 7 104 2 absolute_limit float bin, /* Limit, not reset monthly */ 7 105 2 absolute_spent float bin, /* Spending against this */ 7 106 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 7 107 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 7 108 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0= default rates) */ 7 109 2 pad1a fixed bin (27) unsigned unaligned, /* remainder of word */ 7 110 2 request_id fixed bin (71), /* absentee request id */ 7 111 2 authorization_range (2) bit (72) aligned, 7 112 2 pad1 (73) fixed bin, /* extra space */ 7 113 2 charge_type fixed bin, /* device charge type of console */ 7 114 2 term_type_name char (32) unal, /* terminal type name */ 7 115 2 line_type fixed bin, /* line type of user's console */ 7 116 2 tty_type fixed bin, /* old terminal type (obsolete, kept for compatibility) */ 7 117 2 service_type fixed bin, /* type of service console is performing */ 7 118 2 tty_answerback char (4) unaligned, /* original answerback of user's console */ 7 119 2 old_tty char (6), /* (obsolete) attachment name of user's console */ 7 120 2 standby fixed bin, /* 1 if standby user */ 7 121 2 login_line char (120) unal, /* line typed at login */ 7 122 2 cant_bump_until fixed bin (71), /* cannot be preempted until this time (0 for abs) */ 7 123 2 input_seg char (168) unal, /* path name of absentee input file */ 7 124 2 output_seg char (168) unal, /* path name of absentee output file */ 7 125 2 max_cpu_time fixed bin, /* max number of seconds allowed to this absentee proc */ 7 126 2 abs_queue fixed bin, /* absentee queue if absentee, else -1 */ 7 127 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 7 128 2 arg_info_ptr fixed bin (18) unsigned, /* Relative pointer to information on absentee args. */ 7 129 2 old_proc_core fixed bin (71), /* Memory usage by previous processes in this session */ 7 130 2 old_proc_io_ops fixed bin (71), /* I/O operations from previous processes in this session */ 7 131 2 tty char (32) unaligned, /* Attachment name of users channel */ 7 132 2 start_arg_info fixed bin; /* Put absentee args information here. */ 7 133 7 134 7 135 /* Structure to contain information on absentee arguments */ 7 136 dcl 1 arg_info aligned based, 7 137 2 arg_count fixed bin, /* Number of arguments for replacement in absentee segment */ 7 138 2 ln_args fixed bin, /* Length of string containing arguments. */ 7 139 2 arg_lengths (25 refer (arg_info.arg_count)) fixed bin, /* Array of argument lengths */ 7 140 2 args char (128 refer (arg_info.ln_args)) unal; 7 141 /* Args used for replacement in absentee control segment. */ 7 142 7 143 declare PIT_version_3 fixed bin int static options (constant) init (3); 7 144 7 145 /* END INCLUDE FILE ... pit.incl.pl1 */ 155 156 8 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 8 2 /* format: style2,^inddcls,idind32 */ 8 3 8 4 declare 1 terminate_file_switches based, 8 5 2 truncate bit (1) unaligned, 8 6 2 set_bc bit (1) unaligned, 8 7 2 terminate bit (1) unaligned, 8 8 2 force_write bit (1) unaligned, 8 9 2 delete bit (1) unaligned; 8 10 8 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 8 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 8 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 8 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 8 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 8 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 8 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 8 18 8 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 157 158 9 1 /* 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 */ 159 160 11 1 /* 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 */ 161 162 163 /* ======================================================== */ 164 165 installation_id: entry; 166 167 if whoptr = null then call setup; 168 169 call cu_$arg_ptr (1, ap, al, ec); /* Get ptr to string argument. */ 170 if ec ^= 0 then return; 171 bchr = installation_parms.installation_id; 172 173 return; 174 175 /* -------------------------------------------------------- */ 176 177 sysid: entry; 178 179 if whoptr = null then call setup; 180 181 call cu_$arg_ptr (1, ap, al, ec); 182 if ec ^= 0 then return; 183 bchr = whotab.sysid; 184 185 return; 186 187 188 /* -------------------------------------------------------- */ 189 190 version_id: 191 entry; 192 193 call cu_$arg_ptr (1, ap, al, ec); 194 if ec ^= 0 then return; 195 bchr = active_all_rings_data$version_id; 196 197 return; 198 199 /* -------------------------------------------------------- */ 200 201 session: 202 entry; 203 204 if whoptr = null then call setup (); 205 206 call cu_$arg_ptr (1, ap, al, ec); 207 if ec ^= 0 then return; 208 bchr = whotab.session; 209 210 return; 211 212 /* -------------------------------------------------------- */ 213 214 titles: entry; 215 216 if whoptr = null then call setup; 217 218 call cu_$arg_ptr (1, ap, al, ec); 219 if ec ^= 0 then return; 220 bchr = installation_parms.company; 221 call cu_$arg_ptr (2, ap, al, ec); 222 if ec ^= 0 then return; 223 bchr = installation_parms.department; 224 call cu_$arg_ptr (3, ap, al, ec); 225 if ec ^= 0 then return; 226 bchr = installation_parms.companyds; 227 call cu_$arg_ptr (4, ap, al, ec); 228 if ec ^= 0 then return; 229 bchr = installation_parms.departmentds; 230 231 return; 232 233 /* -------------------------------------------------------- */ 234 235 users: entry; 236 237 if whoptr = null then call setup; 238 239 call cu_$arg_ptr (1, ap, al, ec); 240 if ec ^= 0 then return; 241 bfix = whotab.mxusers; 242 call cu_$arg_ptr (2, ap, al, ec); 243 if ec ^= 0 then return; 244 bfix = whotab.n_users; 245 call cu_$arg_ptr (3, ap, al, ec); 246 if ec ^= 0 then return; 247 bfix = whotab.mxunits; 248 call cu_$arg_ptr (4, ap, al, ec); 249 if ec ^= 0 then return; 250 bfix = whotab.n_units; 251 252 return; 253 254 /* -------------------------------------------------------- */ 255 256 timeup: entry; 257 258 if whoptr = null then call setup; 259 260 call cu_$arg_ptr (1, ap, al, ec); 261 if ec ^= 0 then return; 262 b71 = whotab.timeup; 263 264 return; 265 266 /* -------------------------------------------------------- */ 267 268 next_shutdown: entry; 269 270 if whoptr = null then call setup; 271 272 call cu_$arg_ptr (1, ap, al, ec); 273 if ec ^= 0 then return; 274 b71 = whotab.nextsd; 275 call cu_$arg_ptr (2, ap, al, ec); 276 if ec ^= 0 then return; 277 if whotab.why < "" then bchr = ""; 278 else bchr = whotab.why; 279 call cu_$arg_ptr (3, ap, al, ec); 280 if ec ^= 0 then return; 281 b71 = whotab.until; 282 283 return; 284 285 /* -------------------------------------------------------- */ 286 287 last_shutdown: entry; 288 289 if whoptr = null then call setup; 290 291 call cu_$arg_ptr (1, ap, al, ec); 292 if ec ^= 0 then return; 293 b71 = whotab.lastsd; 294 call cu_$arg_ptr (2, ap, al, ec); 295 if ec ^= 0 then return; 296 bchr = whotab.erfno; 297 if bchr = "" then bchr = "shutdown"; 298 299 return; 300 301 /* -------------------------------------------------------- */ 302 303 rates: 304 prices: entry; 305 306 call setup_user_rs; 307 arg_offset = 0; 308 309 rates_join: 310 call cu_$arg_ptr (arg_offset + 1, ap, al, ec); 311 if ec ^= 0 then return; 312 do i = 0 to 7; 313 bfa (i) = rate_structure.cpu_price (i); 314 end; 315 call cu_$arg_ptr (arg_offset + 2, ap, al, ec); 316 if ec ^= 0 then return; 317 do i = 0 to 7; 318 bfa (i) = rate_structure.log_base_price (i); 319 end; 320 call cu_$arg_ptr (arg_offset + 3, ap, al, ec); 321 if ec ^= 0 then return; 322 do i = 0 to 7; 323 bfa (i) = rate_structure.io_ops_price (i); 324 end; 325 call cu_$arg_ptr (arg_offset + 4, ap, al, ec); 326 if ec ^= 0 then return; 327 do i = 0 to 7; 328 bfa (i) = rate_structure.core_price (i); 329 end; 330 call cu_$arg_ptr (arg_offset + 5, ap, al, ec); 331 if ec ^= 0 then return; 332 bflo = rate_structure.disk_price; 333 call cu_$arg_ptr (arg_offset + 6, ap, al, ec); 334 if ec ^= 0 then return; 335 bflo = rate_structure.registration_price; 336 337 return; 338 339 /* -------------------------------------------------------- */ 340 341 rates_rs: 342 prices_rs: entry (rs_number); 343 344 call setup_rs (rs_number); 345 arg_offset = 1; 346 go to rates_join; 347 348 /* -------------------------------------------------------- */ 349 350 device_rates: 351 device_prices: entry (ndev, devp); 352 353 dcl 1 dvt (16) aligned based, 354 2 device_id char (8), 355 2 device_price (0: 7) float bin; 356 357 call setup_user_rs; 358 arg_offset = 0; 359 360 device_rates_join: 361 ndev = rate_structure.ndevices; 362 call cu_$arg_ptr (arg_offset + 2, ap, al, ec); 363 if ec ^= 0 then return; 364 if devp ^= null then do i = 1 to rate_structure.ndevices; 365 devp -> dvt.device_id (i) = rate_structure.devtab.device_id (i); 366 do j = 0 to 7; 367 devp -> dvt.device_price (i, j) = rate_structure.devtab.device_price (i, j); 368 end; 369 end; 370 371 return; 372 373 /* -------------------------------------------------------- */ 374 375 device_rates_rs: 376 device_prices_rs: entry (rs_number, ndev, devp); 377 378 call setup_rs (rs_number); 379 arg_offset = 1; 380 go to device_rates_join; 381 382 /* -------------------------------------------------------- */ 383 384 /* dcl system_info_$abs_limits ((4) fixed bin (35), fixed bin (35), (0:7,4) fixed bin (35)); 385* call system_info_$abs_limits (default_cpu_limits, default_foreground_cpu_limit, max_cpu_limits); */ 386 387 388 abs_limits: 389 entry; 390 391 if whoptr = null then call setup; 392 393 call cu_$arg_ptr (1, ap, al, ec); 394 if ec ^= 0 then return; 395 396 based_fixed_array (*) = installation_parms.abs_cpu_default_limit (*); 397 398 call cu_$arg_ptr (2, ap, al, ec); 399 if ec ^= 0 then return; 400 401 bfix = installation_parms.foreground_cpu_default_limit; 402 403 call cu_$arg_ptr (3, ap, al, ec); 404 if ec ^= 0 then return; 405 406 based_shift_queue_array (*, *) = installation_parms.abs_cpu_max_limit (*, *); 407 408 return; 409 410 /* -------------------------------------------------------- */ 411 412 default_absentee_queue: entry; 413 414 if whoptr = null then call setup; 415 416 call cu_$arg_ptr (1, ap, al, ec); 417 if ec ^= 0 then return; 418 419 bfix = installation_parms.default_absentee_queue; 420 421 return; 422 423 /* -------------------------------------------------------- */ 424 425 abs_prices: entry; 426 427 call setup_user_rs; 428 arg_offset = 0; 429 430 abs_prices_join: 431 call cu_$arg_ptr (arg_offset + 1, ap, al, ec); 432 if ec ^= 0 then return; 433 do i = 1 to 4; 434 bfa (i-1) = rate_structure.abs_cpu_price (i); 435 end; 436 call cu_$arg_ptr (arg_offset + 2, ap, al, ec); 437 if ec ^= 0 then return; 438 do i = 1 to 4; 439 bfa (i-1) = rate_structure.abs_mem_price (i); 440 end; 441 442 return; 443 444 /* -------------------------------------------------------- */ 445 446 abs_prices_rs: entry (rs_number); 447 448 call setup_rs (rs_number); 449 arg_offset = 1; 450 go to abs_prices_join; 451 452 /* -------------------------------------------------------- */ 453 454 io_prices: entry; 455 456 call setup_user_rs; 457 arg_offset = 0; 458 459 io_prices_join: 460 call cu_$arg_ptr (arg_offset + 1, ap, al, ec); 461 if ec ^= 0 then return; 462 do i = 1 to 4; 463 bfa (i-1) = rate_structure.iod_rec_price (i); 464 end; 465 466 return; 467 468 /* --------------------------------------------------------- */ 469 470 io_prices_rs: entry (rs_number); 471 472 call setup_rs (rs_number); 473 arg_offset = 1; 474 go to io_prices_join; 475 476 /* ------------------------------------------------------- */ 477 478 abs_chn: entry (ev, pid); 479 480 dcl ev fixed bin (71), pid bit (36); 481 482 if whoptr = null then call setup; 483 484 call cu_$arg_count (nargs); 485 486 ev = whotab.abs_event; 487 if nargs > 1 then pid = whotab.abs_procid; 488 489 return; 490 491 /* ------------------------------------------------------ */ 492 493 next_shift_change: entry (curshft, shftime, newshft, starttime); 494 495 dcl (curshft, newshft) fixed bin, (shftime, starttime) fixed bin (71); 496 497 call cu_$arg_count (nargs); 498 499 call datebin_$next_shift_change ((clock ()), t71, t1, t2); 500 curshft = t1; 501 if nargs > 1 then shftime = t71; 502 if nargs > 2 then newshft = t2; 503 if nargs > 3 then do; 504 if whoptr = null then call setup; 505 starttime = whotab.last_shift_change_time; 506 end; 507 508 return; 509 510 /* -------------------------------------------------------- */ 511 512 shift_table: entry (stt); 513 514 dcl stt (336) fixed bin; 515 516 if whoptr = null then call setup; 517 518 do i = 1 to 336; 519 stt (i) = fixed (installation_parms.shifttab (i), 3); 520 end; 521 522 return; 523 524 /* -------------------------------------------------------- */ 525 526 request_chn: 527 entry; 528 529 if whoptr = null then call setup; 530 531 call cu_$arg_ptr (1, ap, al, ec); 532 if ec ^= 0 then return; 533 b36 = whotab.request_process_id; 534 535 call cu_$arg_ptr (2, ap, al, ec); 536 if ec ^= 0 then return; 537 b71 = whotab.request_channel; 538 539 call cu_$arg_ptr (3, ap, al, ec); 540 if ec ^= 0 then return; 541 bchr = sysdir; 542 543 call cu_$arg_ptr (4, ap, al, ec); 544 if ec ^= 0 then return; 545 bchr = "as_request.ms"; 546 547 return; 548 549 /* -------------------------------------------------------- */ 550 551 access_ceiling: 552 entry (access_ceiling); 553 554 dcl access_ceiling bit (72) aligned; 555 556 if whoptr = null then call setup; 557 558 access_ceiling = installation_parms.access_authorization_ceiling; 559 return; 560 561 /* -------------------------------------------------------- */ 562 563 log_threshold: 564 entry; 565 566 dcl (state char (al), npages fixed bin) based (ap); 567 568 if whoptr = null then call setup; 569 570 call cu_$arg_ptr (1, ap, al, ec); 571 if ec ^= 0 then return; 572 573 i = installation_parms.syserr_log_copy_threshold; 574 575 if i < 0 then state = "off"; 576 else if i = 0 then state = "default"; 577 else state = "on"; 578 579 call cu_$arg_ptr (2, ap, al, ec); 580 if ec = 0 then npages = max (i, 0); 581 582 return; 583 584 /* -------------------------------------------------------- */ 585 586 level_names: 587 entry; 588 589 dcl (long_level_names char (32), short_level_names char (8)) dim (0:7) based (ap); 590 591 if whoptr = null then call setup; 592 593 call cu_$arg_ptr (1, ap, al, ec); 594 if ec ^= 0 then return; 595 long_level_names (*) = installation_parms.level_names (*); 596 597 call cu_$arg_ptr (2, ap, al, ec); 598 if ec = 0 then short_level_names (*) = installation_parms.short_level_names (*); 599 600 return; 601 602 /* -------------------------------------------------------- */ 603 604 category_names: 605 entry; 606 607 dcl (long_category_names char (32), short_category_names char (8)) dim (18) based (ap); 608 609 if whoptr = null then call setup; 610 611 call cu_$arg_ptr (1, ap, al, ec); 612 if ec ^= 0 then return; 613 long_category_names (*) = installation_parms.category_names (*); 614 615 call cu_$arg_ptr (2, ap, al, ec); 616 if ec = 0 then short_category_names (*) = installation_parms.short_category_names (*); 617 618 return; 619 620 /* -------------------------------------------------------- */ 621 622 ARPANET_host_number: 623 entry; 624 625 if whoptr = null then call setup; 626 627 call cu_$arg_ptr (1, ap, al, ec); 628 if ec ^= 0 then return; 629 bfix = -1; 630 631 return; 632 633 /* -------------------------------------------------------- */ 634 635 resource_price: entry (a_price_name, a_price, a_code); 636 637 dcl a_price_name char (*); 638 dcl a_price float bin; 639 dcl a_code fixed bin (35); 640 641 dcl error_table_$noentry ext fixed bin (35); 642 643 call setup_user_rs; 644 645 resource_price_join: 646 do i = 1 to rate_structure.nrscp; 647 if a_price_name = rate_structure.resource (i).name then do; 648 a_price = rate_structure.resource (i).price; 649 a_code = 0; 650 return; 651 end; 652 end; 653 a_code = error_table_$noentry; 654 a_price = 0; 655 return; 656 657 /* -------------------------------------------------------- */ 658 659 resource_price_rs: entry (rs_number, a_price_name, a_price, a_code); 660 661 call setup_rs (rs_number); 662 go to resource_price_join; 663 664 /* -------------------------------------------------------- */ 665 666 rs_name: entry (rs_number, rs_name, a_code); 667 668 if whoptr = null then call setup; 669 670 if rs_number < 0 | rs_number > whotab.n_rate_structures then do; 671 a_code = error_table_$noentry; 672 rs_name = " INVALID_RS_" || ltrim (char (rs_number)); /* leading space so it won't match any name */ 673 end; 674 else do; 675 a_code = 0; 676 rs_name = installation_parms.rate_structures (rs_number); 677 end; 678 return; 679 680 /* --------------------------------------------------------- */ 681 682 rs_number: entry (rs_name, rs_number, a_code); 683 684 if whoptr = null then call setup; 685 686 do i = 0 to whotab.n_rate_structures; 687 if installation_parms.rate_structures (i) = rs_name then do; 688 rs_number = i; 689 a_code = 0; 690 return; 691 end; 692 end; 693 694 a_code = error_table_$noentry; 695 rs_number = 0; 696 return; 697 698 /* --------------------------------------------------------- */ 699 700 max_rs_number: entry (rs_count); 701 702 dcl rs_count fixed bin; 703 704 if whoptr = null then call setup; 705 rs_count = whotab.n_rate_structures; 706 return; 707 708 /* --------------------------------------------------------- */ 709 710 trusted_path_flags: 711 entry (stp); 712 713 dcl stp bit (36) aligned; 714 715 if whoptr = null then call setup; 716 trusted_path_flags = "0"b; 717 trusted_path_flags.login = installation_parms.trusted_path_login; 718 stp = string (trusted_path_flags); 719 return; 720 721 /* --------------------------------------------------------- */ 722 723 setup: proc; 724 725 dcl ec fixed bin (35); 726 727 call initiate_file_ (sysdir, "whotab", R_ACCESS, whoptr, 0, ec); 728 if whoptr = null 729 then call com_err_ (ec, "system_info_", "^a>whotab", sysdir); 730 731 call initiate_file_ (sysdir, "installation_parms", R_ACCESS, ip, 0, ec); 732 if ip = null 733 then call com_err_ (ec, "system_info_", "^a>installation_parms", sysdir); 734 end setup; 735 736 /* --------------------------------------------- */ 737 738 setup_rs: proc (rsnum); 739 740 dcl ec fixed bin (35); 741 dcl rsnum fixed bin; 742 dcl rsn fixed bin; 743 dcl en char (32); 744 745 if whoptr = null then call setup; 746 747 if rsnum < 0 | rsnum > whotab.n_rate_structures then do; 748 call com_err_ (0, "system_info_", "Invalid rate_structure number ^d. Default rates will be used.", rsnum); 749 rsn = 0; 750 end; 751 else rsn = rsnum; 752 753 if rs_ptrs (rsn) = null then do; 754 en = "rate_structure_" || ltrim (char (rsn)); 755 call initiate_file_ (sysdir, en, R_ACCESS, rs_ptrs (rsn), 0, ec); 756 if rs_ptrs (rsn) = null then do; 757 call com_err_ (ec, "system_info_", "^a>^a. Default rates will be used.", sysdir, en); 758 rsn = 0; /* user loses if rsn already 0 */ 759 end; 760 end; 761 cur_rs_ptr = rs_ptrs (rsn); 762 763 end setup_rs; 764 765 /* --------------------------------------------- */ 766 767 setup_user_rs: proc; 768 769 dcl ec fixed bin (35); 770 dcl rsn fixed bin; 771 772 if pp = null then call initiate_file_ (get_pdir_ (), "pit", R_ACCESS, pp, 0, ec); 773 if pp = null then do; 774 call com_err_ (ec, "system_info_", "pit"); 775 rsn = 0; 776 end; 777 else rsn = pp -> pit.rs_number; 778 call setup_rs (rsn); 779 780 end setup_user_rs; 781 782 /* --------------------------------------------- */ 783 784 test_system_info: entry (xdirn); 785 786 dcl xdirn char (*) parameter; 787 dcl nsd char (168); 788 789 call absolute_pathname_ (xdirn, nsd, ec); 790 if ec ^= 0 then do; 791 call com_err_ (ec, "system_info_$test_system_info", xdirn); 792 return; 793 end; 794 sysdir = nsd; 795 if whoptr ^= null then /* need to cleanup? */ 796 call terminate_file_ (whoptr, 0, TERM_FILE_TERM, ec); 797 whoptr = null; /* re-initiate whotab and installation_parms */ 798 do i = 0 to hbound (rs_ptrs, 1); /* more tidying? */ 799 if rs_ptrs (i) ^= null then do; 800 call terminate_file_ (rs_ptrs (i), 0, TERM_FILE_TERM, ec); 801 rs_ptrs (i) = null; 802 end; 803 end; 804 805 return; 806 807 end system_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0935.5 system_info_.pl1 >special_ldd>install>MR12.2-1047>system_info_.pl1 148 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 150 2 08/06/87 0913.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 2-148 3 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 151 4 03/27/82 0435.1 rate_structure.incl.pl1 >ldd>include>rate_structure.incl.pl1 152 5 10/13/86 1239.3 trusted_path_flags.incl.pl1 >ldd>include>trusted_path_flags.incl.pl1 153 6 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.incl.pl1 155 7 07/13/88 0930.5 pit.incl.pl1 >special_ldd>install>MR12.2-1047>pit.incl.pl1 157 8 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 159 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 161 11 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. R_ACCESS 000020 constant bit(3) initial packed unaligned dcl 1-11 set ref 727* 731* 755* 772* TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 8-14 set ref 795* 800* a_code parameter fixed bin(35,0) dcl 639 set ref 635 649* 653* 659 666 671* 675* 682 689* 694* a_price parameter float bin(27) dcl 638 set ref 635 648* 654* 659 a_price_name parameter char packed unaligned dcl 637 ref 635 647 659 abs_cpu_default_limit 531 based fixed bin(35,0) array level 3 dcl 2-33 ref 396 abs_cpu_max_limit 1650 based fixed bin(35,0) array level 3 dcl 2-33 ref 406 abs_cpu_price 511 based float bin(27) array level 3 dcl 4-9 ref 434 abs_event 50 based fixed bin(71,0) level 2 dcl 6-10 ref 486 abs_mem_price 515 based float bin(27) array level 3 dcl 4-9 ref 439 abs_procid 52 based bit(36) level 2 dcl 6-10 ref 487 absolute_pathname_ 000112 constant entry external dcl 102 ref 789 access_authorization_ceiling 546 based bit(72) level 3 dcl 2-33 ref 558 access_ceiling parameter bit(72) dcl 554 set ref 551 558* active_all_rings_data$version_id 000114 external static char(8) packed unaligned dcl 103 ref 195 al 000102 automatic fixed bin(17,0) dcl 114 set ref 169* 171 181* 183 193* 195 206* 208 218* 220 221* 223 224* 226 227* 229 239* 242* 245* 248* 260* 272* 275* 277 278 279* 291* 294* 296 297 297 309* 315* 320* 325* 330* 333* 362* 393* 398* 403* 416* 430* 436* 459* 531* 535* 539* 541 543* 545 570* 575 576 577 579* 593* 597* 611* 615* 627* ap 000100 automatic pointer dcl 114 set ref 169* 171 181* 183 193* 195 206* 208 218* 220 221* 223 224* 226 227* 229 239* 241 242* 244 245* 247 248* 250 260* 262 272* 274 275* 277 278 279* 281 291* 293 294* 296 297 297 309* 313 315* 318 320* 323 325* 328 330* 332 333* 335 362* 393* 396 398* 401 403* 406 416* 419 430* 434 436* 439 459* 463 531* 533 535* 537 539* 541 543* 545 570* 575 576 577 579* 580 593* 595 597* 598 611* 613 615* 616 627* 629 arg_offset 000103 automatic fixed bin(17,0) dcl 114 set ref 307* 309 315 320 325 330 333 345* 358* 362 379* 428* 430 436 449* 457* 459 473* b36 based bit(36) dcl 126 set ref 533* b71 based fixed bin(71,0) dcl 126 set ref 262* 274* 281* 293* 537* based_fixed_array based fixed bin(35,0) array dcl 126 set ref 396* based_shift_queue_array based fixed bin(35,0) array dcl 126 set ref 406* bchr based char packed unaligned dcl 126 set ref 171* 183* 195* 208* 220* 223* 226* 229* 277* 278* 296* 297 297* 541* 545* bfa based float bin(27) array dcl 126 set ref 313* 318* 323* 328* 434* 439* 463* bfix based fixed bin(35,0) dcl 126 set ref 241* 244* 247* 250* 401* 419* 629* bflo based float bin(27) dcl 126 set ref 332* 335* category_names 650 based char(32) array level 3 dcl 2-33 ref 613 char builtin function dcl 144 ref 672 754 clock builtin function dcl 144 ref 499 com_err_ 000116 constant entry external dcl 104 ref 728 732 748 757 774 791 company 10 based char(64) level 3 dcl 2-33 ref 220 companyds 50 based char(120) level 3 dcl 2-33 ref 226 core_price 230 based float bin(27) array level 3 dcl 4-9 ref 328 cpu_price 200 based float bin(27) array level 3 dcl 4-9 ref 313 cu_$arg_count 000120 constant entry external dcl 105 ref 484 497 cu_$arg_ptr 000122 constant entry external dcl 106 ref 169 181 193 206 218 221 224 227 239 242 245 248 260 272 275 279 291 294 309 315 320 325 330 333 362 393 398 403 416 430 436 459 531 535 539 543 570 579 593 597 611 615 627 cur_rs_ptr 000104 automatic pointer initial dcl 114 set ref 114* 313 318 323 328 332 335 360 364 365 367 434 439 463 645 647 648 761* curshft parameter fixed bin(17,0) dcl 495 set ref 493 500* datebin_$next_shift_change 000124 constant entry external dcl 107 ref 499 default_absentee_queue 1710 based fixed bin(17,0) level 3 packed packed unaligned dcl 2-33 ref 419 department 30 based char(64) level 3 dcl 2-33 ref 223 departmentds 106 based char(120) level 3 dcl 2-33 ref 229 device_id based char(8) array level 2 in structure "dvt" dcl 353 in procedure "system_info_" set ref 365* device_id 241 based char(8) array level 4 in structure "rate_structure" dcl 4-9 in procedure "system_info_" ref 365 device_price 243 based float bin(27) array level 4 in structure "rate_structure" dcl 4-9 in procedure "system_info_" ref 367 device_price 2 based float bin(27) array level 2 in structure "dvt" dcl 353 in procedure "system_info_" set ref 367* devp parameter pointer dcl 95 ref 350 350 364 365 367 375 375 devtab 241 based structure array level 3 dcl 4-9 disk_price 506 based float bin(27) level 3 dcl 4-9 ref 332 dvt based structure array level 1 dcl 353 ec 000106 automatic fixed bin(35,0) dcl 114 in procedure "system_info_" set ref 169* 170 181* 182 193* 194 206* 207 218* 219 221* 222 224* 225 227* 228 239* 240 242* 243 245* 246 248* 249 260* 261 272* 273 275* 276 279* 280 291* 292 294* 295 309* 311 315* 316 320* 321 325* 326 330* 331 333* 334 362* 363 393* 394 398* 399 403* 404 416* 417 430* 432 436* 437 459* 461 531* 532 535* 536 539* 540 543* 544 570* 571 579* 580 593* 594 597* 598 611* 612 615* 616 627* 628 789* 790 791* 795* 800* ec 000240 automatic fixed bin(35,0) dcl 725 in procedure "setup" set ref 727* 728* 731* 732* ec 000250 automatic fixed bin(35,0) dcl 740 in procedure "setup_rs" set ref 755* 757* ec 000270 automatic fixed bin(35,0) dcl 769 in procedure "setup_user_rs" set ref 772* 774* en 000252 automatic char(32) packed unaligned dcl 743 set ref 754* 755* 757* erfno 16 based char(8) level 2 dcl 6-10 ref 296 error_table_$noentry 000134 external static fixed bin(35,0) dcl 641 ref 653 671 694 ev parameter fixed bin(71,0) dcl 480 set ref 478 486* fixed builtin function dcl 144 ref 519 foreground_cpu_default_limit 545 based fixed bin(35,0) level 3 dcl 2-33 ref 401 get_pdir_ 000126 constant entry external dcl 108 ref 772 772 hbound builtin function dcl 144 ref 798 i 000110 automatic fixed bin(17,0) dcl 114 set ref 312* 313 313* 317* 318 318* 322* 323 323* 327* 328 328* 364* 365 365 367 367* 433* 434 434* 438* 439 439* 462* 463 463* 518* 519 519* 573* 575 576 580 645* 647 648* 686* 687 688* 798* 799 800 801* initiate_file_ 000130 constant entry external dcl 109 ref 727 731 755 772 installation_id based char(32) level 3 dcl 2-33 ref 171 installation_parms based structure level 1 dcl 2-33 installation_parms_part_1 based structure level 1 dcl 2-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 2-144 io_ops_price 220 based float bin(27) array level 3 dcl 4-9 ref 323 iod_rec_price 521 based float bin(27) array level 3 dcl 4-9 ref 463 ip defined pointer dcl 139 set ref 171 220 223 226 229 396 401 406 419 519 558 573 595 598 613 616 676 687 717 731* 732 j 000111 automatic fixed bin(17,0) dcl 114 set ref 366* 367 367* last_shift_change_time 64 based fixed bin(71,0) level 2 dcl 6-10 ref 505 lastsd 14 based fixed bin(71,0) level 2 dcl 6-10 ref 293 level_names 550 based char(32) array level 3 dcl 2-33 ref 595 log_base_price 210 based float bin(27) array level 3 dcl 4-9 ref 318 login 000116 automatic bit(1) level 2 packed packed unaligned dcl 5-14 set ref 717* long_category_names based char(32) array packed unaligned dcl 607 set ref 613* long_level_names based char(32) array packed unaligned dcl 589 set ref 595* ltrim builtin function dcl 144 ref 672 754 max builtin function dcl 144 ref 580 mxunits 2 based fixed bin(17,0) level 2 dcl 6-10 ref 247 mxusers based fixed bin(17,0) level 2 dcl 6-10 ref 241 n_rate_structures 66(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 6-10 ref 670 686 705 747 n_units 3 based fixed bin(17,0) level 2 dcl 6-10 ref 250 n_users 1 based fixed bin(17,0) level 2 dcl 6-10 ref 244 name 2401 based char(32) array level 3 dcl 4-9 ref 647 nargs 000107 automatic fixed bin(17,0) dcl 114 set ref 484* 487 497* 501 502 503 ndev parameter fixed bin(17,0) dcl 95 set ref 350 350 360* 375 375 ndevices 240 based fixed bin(17,0) level 3 dcl 4-9 ref 360 364 newshft parameter fixed bin(17,0) dcl 495 set ref 493 502* nextsd 10 based fixed bin(71,0) level 2 dcl 6-10 ref 274 npages based fixed bin(17,0) dcl 566 set ref 580* nrscp 2400 based fixed bin(17,0) level 3 dcl 4-9 ref 645 nsd 000122 automatic char(168) packed unaligned dcl 787 set ref 789* 794 null builtin function dcl 144 ref 114 167 179 204 216 237 258 270 289 364 391 414 482 504 516 529 556 568 591 609 625 668 684 704 715 795 797 799 801 11-76 728 732 745 753 756 772 773 part_1 based structure level 2 in structure "installation_parms" dcl 2-33 in procedure "system_info_" part_1 based structure level 2 in structure "rate_structure" dcl 4-9 in procedure "system_info_" pid parameter bit(36) packed unaligned dcl 480 set ref 478 487* pit based structure level 1 dcl 7-50 pp 000012 internal static pointer initial dcl 137 set ref 772 772* 773 777 price 2411 based float bin(27) array level 3 dcl 4-9 ref 648 rate_structure based structure level 1 dcl 4-9 rate_structures 1714 based char(32) array level 3 dcl 2-33 ref 676 687 rcp_init_flags based structure level 1 packed packed unaligned dcl 3-8 registration_price 507 based float bin(27) level 3 dcl 4-9 ref 335 request_channel 56 based fixed bin(71,0) level 2 dcl 6-10 ref 537 request_process_id 60 based bit(36) level 2 dcl 6-10 ref 533 resource 2401 based structure array level 2 dcl 4-9 rs_count parameter fixed bin(17,0) dcl 702 set ref 700 705* rs_name parameter char packed unaligned dcl 95 set ref 666 672* 676* 682 687 rs_number parameter fixed bin(17,0) dcl 95 in procedure "system_info_" set ref 341 341 344* 375 375 378* 446 448* 470 472* 659 661* 666 670 670 672 676 682 688* 695* rs_number 373 based fixed bin(9,0) level 2 in structure "pit" packed packed unsigned unaligned dcl 7-50 in procedure "system_info_" ref 777 rs_ptrs 000014 internal static pointer initial array dcl 138 set ref 171 171 220 220 223 223 226 226 229 229 396 396 401 401 406 406 419 419 519 519 558 558 573 573 595 595 598 598 613 613 616 616 676 676 687 687 717 717 731 731 732 732 753 755* 756 761 798 799 800* 801* rsn 000271 automatic fixed bin(17,0) dcl 770 in procedure "setup_user_rs" set ref 775* 777* 778* rsn 000251 automatic fixed bin(17,0) dcl 742 in procedure "setup_rs" set ref 749* 751* 753 754 755 756 758* 761 rsnum parameter fixed bin(17,0) dcl 741 set ref 738 747 747 748* 751 session 6 based char(8) level 2 dcl 6-10 ref 208 shftime parameter fixed bin(71,0) dcl 495 set ref 493 501* shifttab 144 based bit(3) array level 3 packed packed unaligned dcl 2-33 ref 519 short_category_names 1110 based char(8) array level 3 in structure "installation_parms" dcl 2-33 in procedure "system_info_" ref 616 short_category_names based char(8) array packed unaligned dcl 607 in procedure "system_info_" set ref 616* short_level_names 1070 based char(8) array level 3 in structure "installation_parms" dcl 2-33 in procedure "system_info_" ref 598 short_level_names based char(8) array packed unaligned dcl 589 in procedure "system_info_" set ref 598* starttime parameter fixed bin(71,0) dcl 495 set ref 493 505* state based char packed unaligned dcl 566 set ref 575* 576* 577* stp parameter bit(36) dcl 713 set ref 710 718* string builtin function dcl 144 ref 718 stt parameter fixed bin(17,0) array dcl 514 set ref 512 519* sysdir 000040 internal static char(168) initial packed unaligned dcl 140 set ref 541 727* 728* 731* 732* 755* 757* 794* syserr_log_copy_threshold 535 based fixed bin(9,0) level 3 dcl 2-33 ref 573 sysid 121 based char(32) level 2 dcl 6-10 ref 183 t1 000114 automatic fixed bin(17,0) dcl 114 set ref 499* 500 t2 000115 automatic fixed bin(17,0) dcl 114 set ref 499* 502 t71 000112 automatic fixed bin(71,0) dcl 114 set ref 499* 501 terminate_file_ 000132 constant entry external dcl 110 ref 795 800 timeup 4 based fixed bin(71,0) level 2 dcl 6-10 ref 262 trusted_path_flags 000116 automatic structure level 1 dcl 5-14 set ref 716* 718 trusted_path_login 2034 based bit(1) level 3 dcl 2-33 ref 717 until 12 based fixed bin(71,0) level 2 dcl 6-10 ref 281 user_abs_attributes based structure level 1 dcl 10-25 user_attributes based structure level 1 dcl 9-21 utep 000120 automatic pointer initial dcl 11-76 set ref 11-76* whoptr 000010 internal static pointer initial dcl 137 set ref 167 179 183 204 208 216 237 241 244 247 250 258 262 270 274 277 278 281 289 293 296 391 414 482 486 487 504 505 516 529 533 537 556 568 591 609 625 668 670 684 686 704 705 715 727* 728 745 747 795 795* 797* whotab based structure level 1 dcl 6-10 why 201 based char(124) level 2 dcl 6-10 ref 277 278 xdirn parameter char packed unaligned dcl 786 set ref 784 789* 791* 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 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-77 A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Automatic_authentication internal static fixed bin(17,0) initial dcl 3-16 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 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 DONT_MASK internal static bit(2) initial packed unaligned dcl 11-280 DO_MASK internal static bit(2) initial packed unaligned dcl 11-280 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 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 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Manual_authentication internal static fixed bin(17,0) initial dcl 3-16 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 No_authentication internal static fixed bin(17,0) initial dcl 3-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 3-16 PIT_version_3 internal static fixed bin(17,0) initial dcl 7-143 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_DAEMON internal static fixed bin(17,0) initial dcl 11-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 11-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 11-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 11-271 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 8-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 8-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 8-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 8-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 8-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 8-15 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 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 6-96 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 arg_info based structure level 1 dcl 7-136 authentication_level_names internal static char(12) initial array packed unaligned dcl 3-21 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 2-37 installation_parms_version_2 internal static fixed bin(17,0) initial dcl 2-38 pit_$ external static bit(36) dcl 7-47 pit_ptr automatic pointer dcl 7-48 rifp automatic pointer dcl 3-6 terminate_file_switches based structure level 1 packed packed unaligned dcl 8-4 ute based structure level 1 dcl 11-78 NAMES DECLARED BY EXPLICIT CONTEXT. ARPANET_host_number 003320 constant entry external dcl 622 abs_chn 002351 constant entry external dcl 478 abs_limits 001734 constant entry external dcl 388 abs_prices 002117 constant entry external dcl 425 abs_prices_join 002127 constant label dcl 430 ref 450 abs_prices_rs 002227 constant entry external dcl 446 access_ceiling 002717 constant entry external dcl 551 category_names 003200 constant entry external dcl 604 default_absentee_queue 002053 constant entry external dcl 412 device_prices 001531 constant entry external dcl 350 device_prices_rs 001665 constant entry external dcl 375 device_rates 001547 constant entry external dcl 350 device_rates_join 001564 constant label dcl 360 ref 380 device_rates_rs 001705 constant entry external dcl 375 installation_id 000161 constant entry external dcl 165 io_prices 002252 constant entry external dcl 454 io_prices_join 002262 constant label dcl 459 ref 474 io_prices_rs 002323 constant entry external dcl 470 last_shutdown 001107 constant entry external dcl 287 level_names 003060 constant entry external dcl 586 log_threshold 002745 constant entry external dcl 563 max_rs_number 003750 constant entry external dcl 700 next_shift_change 002416 constant entry external dcl 493 next_shutdown 000757 constant entry external dcl 268 prices 001210 constant entry external dcl 303 prices_rs 001467 constant entry external dcl 341 rates 001220 constant entry external dcl 303 rates_join 001230 constant label dcl 309 ref 346 rates_rs 001503 constant entry external dcl 341 request_chn 002553 constant entry external dcl 526 resource_price 003364 constant entry external dcl 635 resource_price_join 003405 constant label dcl 645 ref 662 resource_price_rs 003457 constant entry external dcl 659 rs_name 003514 constant entry external dcl 666 rs_number 003654 constant entry external dcl 682 session 000335 constant entry external dcl 201 setup 004235 constant entry internal dcl 723 ref 167 179 204 216 237 258 270 289 391 414 482 504 516 529 556 568 591 609 625 668 684 704 715 745 setup_rs 004446 constant entry internal dcl 738 ref 344 378 448 472 661 778 setup_user_rs 004716 constant entry internal dcl 767 ref 306 357 427 456 643 shift_table 002511 constant entry external dcl 512 sysid 000227 constant entry external dcl 177 system_info_ 000151 constant entry external dcl 12 test_system_info 004034 constant entry external dcl 784 timeup 000714 constant entry external dcl 256 titles 000403 constant entry external dcl 214 trusted_path_flags 003777 constant entry external dcl 710 users 000556 constant entry external dcl 235 version_id 000275 constant entry external dcl 190 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5602 5740 5051 5612 Length 6572 5051 136 616 530 102 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME system_info_ 432 external procedure is an external procedure. setup internal procedure shares stack frame of external procedure system_info_. setup_rs internal procedure shares stack frame of external procedure system_info_. setup_user_rs internal procedure shares stack frame of external procedure system_info_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 whoptr system_info_ 000012 pp system_info_ 000014 rs_ptrs system_info_ 000040 sysdir system_info_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME system_info_ 000100 ap system_info_ 000102 al system_info_ 000103 arg_offset system_info_ 000104 cur_rs_ptr system_info_ 000106 ec system_info_ 000107 nargs system_info_ 000110 i system_info_ 000111 j system_info_ 000112 t71 system_info_ 000114 t1 system_info_ 000115 t2 system_info_ 000116 trusted_path_flags system_info_ 000120 utep system_info_ 000122 nsd system_info_ 000240 ec setup 000250 ec setup_rs 000251 rsn setup_rs 000252 en setup_rs 000270 ec setup_user_rs 000271 rsn setup_user_rs THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry ext_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ com_err_ cu_$arg_count cu_$arg_ptr datebin_$next_shift_change get_pdir_ initiate_file_ terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. active_all_rings_data$version_id error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 114 000143 11 76 000145 12 000150 91 000157 165 000160 167 000167 169 000175 170 000214 171 000216 173 000225 177 000226 179 000235 181 000243 182 000262 183 000264 185 000273 190 000274 193 000303 194 000322 195 000324 197 000333 201 000334 204 000343 206 000351 207 000370 208 000372 210 000401 214 000402 216 000411 218 000417 219 000436 220 000440 221 000447 222 000465 223 000467 224 000476 225 000514 226 000516 227 000525 228 000543 229 000545 231 000554 235 000555 237 000564 239 000572 240 000611 241 000613 242 000616 243 000634 244 000636 245 000642 246 000660 247 000662 248 000666 249 000704 250 000706 252 000712 256 000713 258 000722 260 000730 261 000747 262 000751 264 000755 268 000756 270 000765 272 000773 273 001012 274 001014 275 001020 276 001036 277 001040 278 001054 279 001061 280 001077 281 001101 283 001105 287 001106 289 001115 291 001123 292 001142 293 001144 294 001150 295 001166 296 001170 297 001177 299 001206 303 001207 306 001226 307 001227 309 001230 311 001250 312 001252 313 001257 314 001263 315 001265 316 001305 317 001307 318 001313 319 001317 320 001321 321 001341 322 001343 323 001347 324 001353 325 001355 326 001375 327 001377 328 001403 329 001407 330 001411 331 001431 332 001433 333 001436 334 001456 335 001460 337 001463 341 001464 344 001514 345 001522 346 001524 350 001525 357 001562 358 001563 360 001564 362 001567 363 001607 364 001611 365 001625 366 001636 367 001643 368 001654 369 001656 371 001660 375 001661 378 001722 379 001730 380 001732 388 001733 391 001742 393 001750 394 001767 396 001771 398 001777 399 002015 401 002017 403 002023 404 002041 406 002043 408 002051 412 002052 414 002061 416 002067 417 002106 419 002110 421 002115 425 002116 427 002125 428 002126 430 002127 432 002147 433 002151 434 002157 435 002164 436 002166 437 002206 438 002210 439 002215 440 002222 442 002224 446 002225 448 002240 449 002246 450 002250 454 002251 456 002260 457 002261 459 002262 461 002302 462 002304 463 002311 464 002316 466 002320 470 002321 472 002334 473 002342 474 002344 478 002345 482 002357 484 002365 486 002374 487 002401 489 002410 493 002411 497 002424 499 002433 500 002452 501 002455 502 002462 503 002467 504 002472 505 002500 508 002505 512 002506 516 002517 518 002525 519 002533 520 002547 522 002551 526 002552 529 002561 531 002567 532 002606 533 002610 535 002614 536 002632 537 002634 539 002640 540 002656 541 002660 543 002666 544 002704 545 002706 547 002713 551 002714 556 002725 558 002733 559 002743 563 002744 568 002753 570 002761 571 003000 573 003002 575 003006 576 003015 577 003024 579 003031 580 003047 582 003056 586 003057 591 003066 593 003074 594 003113 595 003115 597 003136 598 003154 600 003176 604 003177 609 003206 611 003214 612 003233 613 003235 615 003256 616 003274 618 003316 622 003317 625 003326 627 003334 628 003353 629 003355 631 003357 635 003360 643 003404 645 003405 647 003415 648 003435 649 003440 650 003441 652 003442 653 003444 654 003447 655 003451 659 003452 661 003501 662 003507 666 003510 668 003534 670 003542 671 003553 672 003556 673 003626 675 003630 676 003631 678 003647 682 003650 684 003674 686 003702 687 003715 688 003733 689 003735 690 003736 692 003737 694 003741 695 003744 696 003745 700 003746 704 003756 705 003764 706 003773 710 003774 715 004005 716 004013 717 004017 718 004025 719 004030 784 004031 789 004050 790 004073 791 004075 792 004123 794 004124 795 004130 797 004161 798 004164 799 004171 800 004200 801 004226 803 004232 805 004234 723 004235 727 004236 728 004276 731 004340 732 004404 734 004445 738 004446 745 004450 747 004456 748 004470 749 004526 750 004527 751 004530 753 004532 754 004542 755 004602 756 004641 757 004647 758 004707 761 004710 763 004715 767 004716 772 004717 773 004772 774 004777 775 005026 776 005027 777 005030 778 005034 780 005036 ----------------------------------------------------------- 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