COMPILATION LISTING OF SEGMENT list_extra_personids Compiled by: Multics PL/I Compiler, Release 33d, of April 24, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 92-09-25_1644.96_Fri_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1990 * 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 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(90-11-05,Vu), approve(90-11-05,MCR8226), audit(92-09-24,Zimmerman), 17* install(92-09-25,MR12.5-1019): 18* list_extra_personids aborts when it is run more than once within the same 19* process. 20* END HISTORY COMMENTS */ 21 22 23 /* format: style4 */ 24 list_extra_personids: procedure; 25 26 /* Modified May 1982 E. N. Kittlitz. bugfix. */ 27 /* Modified 1984-08-15 by E. Swenson for Version 2 PNTs. */ 28 29 dcl 1 vrec aligned, /* record in temporary vfile */ 30 2 pid char (32), 31 2 in_pnt bit, 32 2 chain pointer; 33 34 dcl 1 reference aligned based (refp), 35 2 next pointer, 36 2 type char (168); 37 38 dcl temp_area area based (ai.areap); 39 40 dcl temp_file internal file keyed record; 41 42 dcl ME char (32) static options (constant) init ("list_extra_personids"); 43 dcl sysdir char (168) static init (">system_control_dir"); 44 dcl pdtdir char (168) static init (">system_control_dir>pdt"); 45 46 /* External Static */ 47 48 dcl error_table_$bad_index fixed bin (35) external static; 49 dcl error_table_$checksum_failure fixed bin (35) external static; 50 dcl error_table_$no_record fixed bin (35) external static; 51 dcl iox_$error_output ptr external static; 52 dcl sys_info$max_seg_size fixed bin (19) external static; 53 54 /* External Entries */ 55 56 dcl com_err_ entry options (variable); 57 dcl define_area_ entry (ptr, fixed bin (35)); 58 dcl get_pdir_ entry returns (char (168)); 59 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 60 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 61 dcl ioa_ entry options (variable); 62 dcl ioa_$ioa_switch entry () options (variable); 63 dcl ioa_$rsnnl entry options (variable); 64 dcl pnt_manager_$get_abs_entry entry (fixed bin (35), ptr, fixed bin (35)); 65 dcl release_area_ entry (ptr); 66 dcl unique_chars_ entry (bit (*)) returns (char (15)); 67 68 dcl code fixed bin (35); 69 dcl uid char (32); 70 dcl rec fixed bin (35); 71 dcl 1 pnte aligned like pnt_entry; 72 dcl atd char (168); 73 dcl long bit aligned; 74 dcl (satp, pdtp, pdtep, satep, refp) pointer; 75 dcl (i, j) fixed bin; 76 dcl 1 ai aligned like area_info; 77 78 /* Builtins */ 79 80 dcl (addr, index, null, rtrim, string, substr) builtin; 81 82 /* Conditions */ 83 84 dcl (cleanup, endfile, key) condition; 85 86 /* * * * * * * * * * * * * * * * * * * */ 87 88 long = "0"b; 89 90 ai.version = area_info_version_1; 91 string (ai.control) = ""b; 92 ai.control.extend = "1"b; 93 ai.control.no_freeing = "1"b; 94 ai.owner = ME; 95 ai.size = sys_info$max_seg_size; 96 ai.areap = null (); 97 98 on cleanup call clean_up (); 99 call define_area_ (addr (ai), code); 100 if code ^= 0 then do; 101 call com_err_ (code, ME, "Defining temporary area."); 102 return; 103 end; 104 105 call ioa_$rsnnl ("vfile_ ^a>^a.lxp.temp", atd, (0), get_pdir_ (), unique_chars_ (""b)); 106 open file (temp_file) title (atd) update; 107 108 call hcs_$initiate (sysdir, "sat", "", 0, 0, satp, code); 109 if satp = null () then do; 110 call com_err_ (code, ME, "Initiating SAT."); 111 call clean_up (); 112 end; 113 114 do j = 1 to 2; 115 call ref (sat.system_admin (j), "System Administrator"); 116 end; 117 do i = 1 to sat.current_size; 118 satep = addr (sat.project (i)); 119 if project.state = 1 then do; 120 do j = 1 to 4; 121 call ref (project.admin (j).userid, "Project " || rtrim (project.project_id) || " Administrator"); 122 end; 123 124 call hcs_$initiate (pdtdir, rtrim (project.project_id) || ".pdt", "", 0, 0, pdtp, code); 125 if pdtp = null () 126 then call com_err_ (code, ME, "Initiating ^a.pdt.", project.project_id); 127 else do; 128 do j = 1 to pdt.current_size; 129 pdtep = addr (pdt.user (j)); 130 if user.state = 1 then call ref ((user.person_id), rtrim (project.project_id) || " Project"); 131 end; 132 call hcs_$terminate_noname (pdtp, code); 133 end; 134 end; 135 end; 136 137 on key (temp_file) begin; 138 read file (temp_file) into (vrec) key (uid); 139 vrec.in_pnt = "1"b; 140 rewrite file (temp_file) from (vrec) key (uid); 141 end; 142 do rec = 1 by 1; 143 call pnt_manager_$get_abs_entry (rec, addr (pnte), code); 144 if code = error_table_$bad_index then goto done_pnt; 145 else if code = error_table_$no_record then ; 146 else if code = error_table_$checksum_failure then 147 call ioa_$ioa_switch (iox_$error_output, "^a: Checksum error reading PNT entry ^d.", ME, rec); 148 else if code ^= 0 then do; 149 call com_err_ (code, ME, "Reading PNT entry ^d.", rec); 150 call clean_up (); 151 end; 152 else do; 153 uid = pnte.user_id; 154 vrec.pid = uid; 155 vrec.chain = null (); 156 vrec.in_pnt = "1"b; 157 write file (temp_file) from (vrec) keyfrom (uid); 158 end; 159 end; 160 done_pnt: revert key (temp_file); 161 close file (temp_file); 162 open file (temp_file) title (atd) sequential input; 163 on endfile (temp_file) begin; 164 call clean_up (); 165 goto exit; 166 end; 167 168 do while ("1"b); 169 read file (temp_file) into (vrec); 170 if vrec.in_pnt & vrec.chain = null () 171 then do; 172 call ioa_ ("^22a in PNT is not used.", vrec.pid); 173 end; 174 else if long | ^vrec.in_pnt then do; 175 call ioa_ ("^22a^[ is not in the PNT.^]", vrec.pid, ^vrec.in_pnt); 176 do refp = vrec.chain 177 repeat (reference.next) 178 while (refp ^= null ()); 179 call ioa_ (" ^a", reference.type); 180 end; 181 end; 182 end; 183 184 exit: return; 185 186 clean_up: procedure (); 187 close file (temp_file); 188 call release_area_ (ai.areap); 189 return; 190 end; 191 192 /* * * * * * * * * * REF * * * * * * * * * */ 193 194 ref: procedure (Pid, Type); 195 dcl (Pid, Type) char (*); 196 dcl pid char (32); 197 dcl i fixed bin; 198 199 i = index (Pid, "."); 200 if i = 0 201 then pid = Pid; 202 else pid = substr (Pid, 1, i - 1); 203 if pid = "" | pid = "*" then return; 204 allocate reference in (temp_area) set (refp); 205 reference.type = Type; 206 reference.next = null (); 207 208 vrec.pid = pid; 209 vrec.chain = refp; 210 vrec.in_pnt = "0"b; 211 on key (temp_file) begin; 212 read file (temp_file) into (vrec) key (pid); 213 reference.next = vrec.chain; 214 vrec.chain = refp; 215 rewrite file (temp_file) from (vrec) key (pid); 216 end; 217 write file (temp_file) from (vrec) keyfrom (pid); 218 end; /* ref */ 219 220 /* * * * * * * * * * TEST * * * * * * * * * */ 221 222 test: entry (Dirname); 223 dcl Dirname char (*) parameter; 224 225 sysdir = Dirname; 226 pdtdir = Dirname || ">pdt"; 227 return; 228 1 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 1 2 1 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 1 4 1 5 dcl area_infop ptr; 1 6 1 7 dcl 1 area_info aligned based (area_infop), 1 8 2 version fixed bin, /* version number for this structure is 1 */ 1 9 2 control aligned like area_control, /* control bits for the area */ 1 10 2 owner char (32) unal, /* creator of the area */ 1 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 1 12 2 size fixed bin (18), /* size of the area in words */ 1 13 2 version_of_area fixed bin, /* version of area (returned only) */ 1 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 1 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 1 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 1 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 1 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 1 19 1 20 dcl 1 area_control aligned based, 1 21 2 extend bit (1) unal, /* says area is extensible */ 1 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 1 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 1 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 1 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 1 26 2 system bit (1) unal, /* says area is managed by system */ 1 27 2 pad bit (30) unal; 1 28 1 29 /* END INCLUDE FILE area_info.incl.pl1 */ 229 2 1 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 2 2 /* Requires user_attributes.incl.pl1 */ 2 3 2 4 /* Modified 740723 by PG to add AIM info */ 2 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 2 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 2 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 2 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 2 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 2 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 2 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 2 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 2 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 2 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 2 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 2 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 2 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 2 18 2 19 dcl (PDT_version init (4), /* version of this declaration */ 2 20 PDT_header_lth init (256), /* length in words of PDT head */ 2 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 2 22 2 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 2 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 2 25 ) fixed bin internal static options (constant); 2 26 2 27 dcl 1 pdt based (pdtp) aligned, 2 28 3 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 3 2 3 3 /* the "author" items must always be the first ones in the table. The 3 4* module which moves the converted table to the System Control process 3 5* fills in these data items and assumes them to be at the head of the segment 3 6* regardless of the specific table's actual declaration. The variables 3 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 3 8* respectively. For tables installed in multiple processes, these 3 9* are to be used to lock out multiple installations. */ 3 10 3 11 /* Lock should be used as a modification lock. Since, in general, 3 12* entries may not be moved in system tables, even by installations, 3 13* it is sufficient for only installers and programs that change threads 3 14* to set or respect the lock. Simply updating data in an entry 3 15* requires no such protection. 3 16* 3 17* Last_install_time is used by readers of system tables to detect 3 18* installations or other serious modifications. By checking it before 3 19* and after copying a block of data, they can be protected against 3 20* modifications. 3 21* 3 22* Modules that set the lock should save proc_group_id, and then 3 23* put their group id there for the time they hold the lock. 3 24* if they do not actually install the, they should restore the group id. 3 25**/ 3 26 3 27 2 author aligned, /* validation data about table's author */ 3 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 3 29 3 lock bit (36), /* installation lock */ 3 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 3 31 3 update_authorization bit (1) unal, /* update only authorizations */ 3 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 3 33 3 pad bit (33) unaligned, 3 34 3 last_install_time fixed bin (71), 3 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 3 36 3 w_dir char (64), /* author's working directory */ 3 37 3 38 /* END INCLUDE FILE author.incl.pl1 */ 2 29 2 30 2 max_size fixed bin, /* max number of entries table can grow */ 2 31 2 current_size fixed bin, /* current size of table (in entries) */ 2 32 2 version fixed bin, /* table version */ 2 33 2 freep fixed bin, /* relptr to begin of free chain */ 2 34 2 n_users fixed bin, /* number of entries actually used */ 2 35 2 project_name char (28), /* name of project */ 2 36 2 project_dir char (64), /* treename of project's directory */ 2 37 2 projfile_version fixed bin, 2 38 2 projentry bit (66*36), 2 39 2 pad3 (5) bit (36) aligned, 2 40 2 reqfile_version fixed bin, 2 41 2 reqentry bit (40*36), 2 42 2 pad4 (9) fixed bin, 2 43 2 sat_version fixed bin, 2 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 2 45 2 pad5 (4) bit (36) aligned, 2 46 2 date_reqfile_copied fixed bin (71), 2 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 2 48 2 pad2l bit (27) unaligned, 2 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 2 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 2 51 2 user (1019) aligned, /* the project definition table entries */ 2 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 2 53 2 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 2 55 2 56 2 57 2 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 2 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 2 60 2 lock bit (36), /* update lock */ 2 61 2 person_id char (24) aligned, /* login name of user */ 2 62 2 now_in fixed bin, /* count of users logged in on this entry */ 2 63 2 password char (8) aligned, /* password for anonymous user */ 2 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 2 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 2 66 2 home_dir char (64) aligned, /* user's default working directory */ 2 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 2 68 2 high_ring fixed bin, /* highest ring user may use */ 2 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 2 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 2 71 2 outer_module char (32), /* outer module used if user is interactive */ 2 72 2 lot_size fixed bin, /* size of linkage offset table */ 2 73 2 kst_size fixed bin, /* size of known segment table */ 2 74 2 cls_size fixed bin, /* size of combined linkage */ 2 75 2 uflags, /* various flags */ 2 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 2 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 2 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 2 79 3 flagpad bit (33) unal, 2 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 2 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 2 82 2 dollar_limit float bin, 2 83 2 dollar_charge float bin, /* total dollars spent this month */ 2 84 2 shift_limit (0: 7) float bin, 2 85 2 daton fixed bin (71), /* date user added to system */ 2 86 2 datof fixed bin (71), /* date user deleted */ 2 87 2 last_login_time fixed bin (71), /* time of last login */ 2 88 2 last_login_unit char (4), /* terminal id last used */ 2 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 2 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 2 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 2 92 2 last_update fixed bin (71), /* time of last transaction */ 2 93 2 logins fixed bin, /* number of logins */ 2 94 2 crashes fixed bin, /* sessions abnormally terminated */ 2 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 2 96 3 charge float bin, /* total dollar charge this shift */ 2 97 3 xxx fixed bin, 2 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 2 99 3 core fixed bin (71), /* core demand in page-microseconds */ 2 100 3 connect fixed bin (71), /* total console time in microseconds */ 2 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 2 102 2 absentee (4), /* absentee use, queues 1-4 */ 2 103 3 charge float bin, /* dollar charge this queue */ 2 104 3 jobs fixed bin, /* number of jobs submitted */ 2 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 2 106 3 memory fixed bin (71), /* total memory demand */ 2 107 2 iod (4), /* io daemon use, queues 1-4 */ 2 108 3 charge float bin, /* dollar charge this queue */ 2 109 3 pieces fixed bin, /* pieces of output requested */ 2 110 3 pad fixed bin (35), 2 111 3 pages fixed bin (35), /* number of pages output */ 2 112 3 lines fixed bin (71), /* total record count of output */ 2 113 2 devices (16) float bin, /* device charges */ 2 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 2 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 2 116 2 absolute_spent float bin, /* Spending against this */ 2 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 2 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 2 119 2 pad_was_authorization bit (72) aligned, 2 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 2 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 2 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 2 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 2 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 2 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 2 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 2 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 2 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 2 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 2 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 2 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 2 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 2 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 2 134 2 user_authorization (2) bit (72) aligned, /* range */ 2 135 2 pdtupad (5) fixed bin, 2 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 2 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 2 138 2 chain fixed bin; /* free chain */ 2 139 2 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 230 4 1 /* BEGIN INCLUDE FILE ... pnt_entry.incl.pl1 */ 4 2 4 3 /* Modified 790702 by C. Hornig for MSF PNT */ 4 4 /* Modified 84-07-18 BIM for V2, aim ranges, long passwords. */ 4 5 /* Modified 84-09-25 for operator attribute... -E. A. Ranzenbach */ 4 6 /* Modified 85-03-05 E. Swenson for user_validated_time */ 4 7 4 8 /**** The ms_table_mgr_ has fixed sized entries, for now. 4 9* The presence of a version field and some pad allow 4 10* us to have incrementally-upgraded PNTE's in a future change. 4 11**/ 4 12 4 13 /**** The conversion to V2 copies the existing encrypted passwords. 4 14* Since the 32 character scrambling algorithm will not give the 4 15* same results, the short_XX flags indicate that the old scrambler 4 16* should be used. The short flags are automatically turned off 4 17* by calls to update the password with the long-scrambled form. */ 4 18 4 19 /* format: style4,insnl,delnl */ 4 20 4 21 declare pntep pointer automatic; 4 22 declare 1 pnt_entry based (pntep) aligned, /* declaration of a single PNT entry */ 4 23 2 version fixed bin, 4 24 2 private aligned, 4 25 3 pw_flags aligned, 4 26 4 short_pw bit (1) unal, /* ON password is eight-character form */ 4 27 4 short_network_pw bit (1) unal, /* ON card password is eight character form. */ 4 28 3 password character (32), /* person's password */ 4 29 3 network_password character (32), 4 30 2 public, 4 31 3 user_id character (32), /* user ID (for alias entries */ 4 32 3 alias character (8), 4 33 3 default_project character (16), /* user's default project */ 4 34 3 flags, /* one-bit flags */ 4 35 4 has_password bit (1) unaligned, 4 36 4 has_network_password bit (1) unaligned, 4 37 4 trap bit (1) unal, /* If this password is used, holler */ 4 38 4 lock bit (1) unal, /* prevent login if on. */ 4 39 4 nochange bit (1) unal, /* user cannot change password */ 4 40 4 must_change bit unal, /* user must change password at next login */ 4 41 4 pw_time_lock bit (1) unal, /* if password has a time lock */ 4 42 4 generate_pw bit (1) unal, /* ON if we give new pw, OFF lets user select new pw */ 4 43 4 last_bad_pw_reported bit (1) unal, /* ON if user has NOT been told about last bad password */ 4 44 4 operator bit (1) unal, /* ON if user can login as an operator... */ 4 45 4 pads bit (26) unal, 4 46 3 n_good_pw fixed bin, /* Number of good passwords */ 4 47 3 n_bad_pw fixed bin, /* Number of wrong passwords */ 4 48 3 n_bad_pw_since_good fixed bin, /* Number of wrong passwords since good */ 4 49 3 time_pw_changed fixed bin (71), /* When password was modified by user */ 4 50 4 51 3 time_last_good_pw fixed bin (71), 4 52 3 time_last_bad_pw fixed bin (71), /* When pw was last given wrong */ 4 53 3 bad_pw_term_id character (4), /* where bad password from */ 4 54 3 bad_pw_line_type fixed bin (17), /* ... */ 4 55 3 bad_pw_term_type character (32), 4 56 3 password_timelock fixed bin (71), /* Password is locked up until here */ 4 57 3 person_authorization (2) bit (72), /* authorization of this person */ 4 58 3 default_person_authorization bit (72), /* default authorization of this person */ 4 59 3 audit bit (36), /* audit flags for person */ 4 60 3 pad1 bit (36), /* pad to even word boundary */ 4 61 3 user_validated_time fixed bin (71), /* time this PNT entry was last validated by an administrator */ 4 62 2 pad (80 - 64) bit (36) aligned; 4 63 4 64 declare PNT_ENTRY_VERSION_2 fixed bin init (2) int static options (constant); 4 65 4 66 /* END INCLUDE FILE ... pnte.incl.pl1 */ 231 5 1 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 5 2 5 3 5 4 5 5 5 6 /****^ HISTORY COMMENTS: 5 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 5 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 5 9* Expand comment line of project.state to include the renamed state (state = 5 10* 3). 5 11* END HISTORY COMMENTS */ 5 12 5 13 5 14 5 15 /* Modified 740723 by PG to add AIM info */ 5 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 5 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 5 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 5 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 5 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 5 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 5 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 5 23 5 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 5 25 5 26 SAT_header_lth init (466), /* length in words of SAT header */ 5 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 5 28 5 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 5 30 ) fixed bin internal static options (constant); 5 31 5 32 dcl 1 sat based (satp) aligned, 5 33 6 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 6 2 6 3 /* the "author" items must always be the first ones in the table. The 6 4* module which moves the converted table to the System Control process 6 5* fills in these data items and assumes them to be at the head of the segment 6 6* regardless of the specific table's actual declaration. The variables 6 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 6 8* respectively. For tables installed in multiple processes, these 6 9* are to be used to lock out multiple installations. */ 6 10 6 11 /* Lock should be used as a modification lock. Since, in general, 6 12* entries may not be moved in system tables, even by installations, 6 13* it is sufficient for only installers and programs that change threads 6 14* to set or respect the lock. Simply updating data in an entry 6 15* requires no such protection. 6 16* 6 17* Last_install_time is used by readers of system tables to detect 6 18* installations or other serious modifications. By checking it before 6 19* and after copying a block of data, they can be protected against 6 20* modifications. 6 21* 6 22* Modules that set the lock should save proc_group_id, and then 6 23* put their group id there for the time they hold the lock. 6 24* if they do not actually install the, they should restore the group id. 6 25**/ 6 26 6 27 2 author aligned, /* validation data about table's author */ 6 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 6 29 3 lock bit (36), /* installation lock */ 6 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 6 31 3 update_authorization bit (1) unal, /* update only authorizations */ 6 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 6 33 3 pad bit (33) unaligned, 6 34 3 last_install_time fixed bin (71), 6 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 6 36 3 w_dir char (64), /* author's working directory */ 6 37 6 38 /* END INCLUDE FILE author.incl.pl1 */ 5 34 5 35 2 max_size fixed bin, /* max number of entries table can grow */ 5 36 2 current_size fixed bin, /* current size of table (in entries) */ 5 37 2 version fixed bin, /* version number of table (word 32) */ 5 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 5 39 2 n_projects fixed bin, /* number of entries actually used */ 5 40 2 pad_was_max_users bit (36) aligned, 5 41 2 max_units fixed bin, /* maximum number of login-units per session */ 5 42 2 pad_was_max_prim bit (36) aligned, 5 43 2 uwt_size fixed bin, /* size of User Weight Table */ 5 44 2 uwt (24) aligned, /* User Weight Table */ 5 45 3 initproc char (64) unaligned, /* user's initial procedure */ 5 46 3 units fixed bin, /* weight of initial procedure */ 5 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 5 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 5 49 2 project (3258), /* The SAT entries. 255K segment. */ 5 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 5 51 5 52 5 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 5 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 5 55 2 project_id char (12) unaligned, /* project's name */ 5 56 2 project_dir char (64) unaligned, /* project's directory */ 5 57 2 pdt_ptr pointer, /* pointer to current PDT */ 5 58 2 max_users fixed bin, /* maximum number of users from project */ 5 59 2 n_users fixed bin, /* current number */ 5 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 5 61 2 admin (4) aligned, /* list of project's administrators */ 5 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 5 63 3 pad char (2) unal, 5 64 2 cutoff char (1), /* if project is cut off, why. */ 5 65 2 min_ring fixed bin, /* lowest ring for project */ 5 66 2 max_ring fixed bin, /* highest ring for project */ 5 67 2 alias char (8) unal, /* project alias */ 5 68 2 group char (8) unal, /* default group for this project */ 5 69 2 grace_max fixed bin, /* maximum bump grace */ 5 70 2 audit bit (36), /* audit flags for project */ 5 71 2 project_authorization (2) bit (72), /* authorization of this project */ 5 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 5 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 5 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 5 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 5 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 5 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 5 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 5 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 5 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 5 81 2 satpad1 fixed bin (9) unsigned unaligned, 5 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 5 83 2 chain fixed bin; /* if free entry, chain */ 5 84 5 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 232 7 1 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 7 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 7 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 7 8* attribute switches. 7 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 7 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 7 12* be deleted. 7 13* B) Add constants identifying attributes that can be changed by user at 7 14* login, etc. 7 15* END HISTORY COMMENTS */ 7 16 7 17 7 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 7 19 7 20 /* format: style4 */ 7 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 7 22 (2 administrator bit (1), /* 1 system administrator privileges */ 7 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 7 24 2 nobump bit (1), /* 2 user cannot be bumped */ 7 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 7 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 7 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 7 28* . of same project (distinct from "nobump") */ 7 29 2 nolist bit (1), /* 7 don't list user on "who" */ 7 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 7 31 2 multip bit (1), /* 9 user may have several processes */ 7 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 7 33 2 brief bit (1), /* 11 no login or logout message */ 7 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 7 35 2 vhomedir bit (1), /* 13 user may change homedir */ 7 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 7 37 2 sb_ok bit (1), /* 15 user may be standby */ 7 38 2 pm_ok bit (1), /* 16 user may be primary */ 7 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 7 40 2 daemon bit (1), /* 18 user may login as daemon */ 7 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 7 42 2 no_warning bit (1), /* 20 no warning message */ 7 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 7 44* . in PDT: this user has an individual load control group */ 7 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 7 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 7 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 7 48 2 pad bit (12)) unaligned; 7 49 7 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 51 ("none", /* 0 */ 7 52 "administrator", /* 1 */ 7 53 "primary_line", /* 2 */ 7 54 "nobump", /* 3 */ 7 55 "guaranteed_login", /* 4 */ 7 56 "anonymous", /* 5 */ 7 57 "nopreempt", /* 6 */ 7 58 "nolist", /* 7 */ 7 59 "dialok", /* 8 */ 7 60 "multip", /* 9 */ 7 61 "bumping", /* 10 */ 7 62 "brief", /* 11 */ 7 63 "vinitproc", /* 12 */ 7 64 "vhomedir", /* 13 */ 7 65 "nostartup", /* 14 */ 7 66 "no_secondary", /* 15 */ 7 67 "no_prime", /* 16 */ 7 68 "no_eo", /* 17 */ 7 69 "daemon", /* 18 */ 7 70 "", /* 19 vdim OBSOLETE */ 7 71 "no_warning", /* 20 */ 7 72 "igroup", /* 21 */ 7 73 "save_pdir", /* 22 */ 7 74 "disconnect_ok", /* 23 */ 7 75 "save_on_disconnect"); /* 24 */ 7 76 7 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 78 ("null", /* 0 */ 7 79 "admin", /* 1 */ 7 80 "", "", /* 2 - 3 */ 7 81 "guar", /* 4 */ 7 82 "anon", /* 5 */ 7 83 "", "", /* 6 - 7 */ 7 84 "dial", /* 8 */ 7 85 "multi_login", /* 9 */ 7 86 "preempting", /* 10 */ 7 87 "", /* 11 */ 7 88 "v_process_overseer", /* 12 */ 7 89 "v_home_dir", /* 13 */ 7 90 "no_start_up", /* 14 */ 7 91 "no_sec", /* 15 */ 7 92 "no_primary", /* 16 */ 7 93 "no_edit_only", /* 17 */ 7 94 "op_login", /* 18 */ 7 95 "", /* 19 */ 7 96 "nowarn", /* 20 */ 7 97 "", "", "", /* 21 - 23 */ 7 98 "save"); /* 24 */ 7 99 7 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 7 101 options(constant) init("000000000010000000010000000000000000"b); 7 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 7 103 7 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 7 105 options(constant) init("000000000010000000010000000000000000"b); 7 106 /* PDT value for (brief, no_warning) is default */ 7 107 7 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 7 109 options(constant) init("000100000110010000010000000000000000"b); 7 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 7 111 8 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* This include file describes the attributes of an absentee job. It is */ 8 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 8 7 /* and PIT.incl.pl1. */ 8 8 /* */ 8 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 10 8 11 /****^ HISTORY COMMENTS: 8 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 8 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 14* Separated abs_attributes from the request structure 8 15* (abs_message_format.incl.pl1) so that the identical structure could be 8 16* used in the ute structure (user_table_entry.incl.pl1). 8 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 8 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 19* Added ABS_ATTRIBUTE_NAMES array. 8 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 8 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 8 22* Added the no_start_up flag. SCP6367 8 23* END HISTORY COMMENTS */ 8 24 8 25 dcl 1 user_abs_attributes aligned based, 8 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 8 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 8 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 8 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 8 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 8 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 8 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 8 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 8 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 8 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 8 36 2 attributes_pad bit (26) unaligned; 8 37 8 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 8 39 "restartable", 8 40 "user_deferred_until_time", 8 41 "proxy", 8 42 "set_bit_cnt", 8 43 "time_in_gmt", 8 44 "user_deferred_indefinitely", 8 45 "secondary_ok", 8 46 "truncate_absout", 8 47 "restarted", 8 48 "no_start_up"); 8 49 8 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 51 7 112 7 113 7 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 233 234 235 end; /* list_extra_personids */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/25/92 1644.9 list_extra_personids.pl1 >spec>inst>1019>list_extra_personids.pl1 229 1 06/11/76 1143.4 area_info.incl.pl1 >ldd>incl>area_info.incl.pl1 230 2 09/13/84 1021.6 pdt.incl.pl1 >ldd>incl>pdt.incl.pl1 2-29 3 04/21/82 1311.8 author.incl.pl1 >ldd>incl>author.incl.pl1 231 4 03/15/85 1053.1 pnt_entry.incl.pl1 >ldd>incl>pnt_entry.incl.pl1 232 5 08/06/87 1516.6 sat.incl.pl1 >ldd>incl>sat.incl.pl1 5-34 6 04/21/82 1311.8 author.incl.pl1 >ldd>incl>author.incl.pl1 233 7 08/06/87 1013.6 user_attributes.incl.pl1 >ldd>incl>user_attributes.incl.pl1 7-112 8 07/14/88 2115.0 user_abs_attributes.incl.pl1 >ldd>incl>user_abs_attributes.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. Dirname parameter char packed unaligned dcl 223 ref 222 225 226 ME 000000 constant char(32) initial packed unaligned dcl 42 set ref 94 101* 110* 125* 146* 149* Pid parameter char packed unaligned dcl 195 ref 194 199 200 202 Type parameter char packed unaligned dcl 195 ref 194 205 addr builtin function dcl 80 ref 99 99 118 129 143 143 admin 31 based structure array level 2 dcl 5-53 ai 000336 automatic structure level 1 dcl 76 set ref 99 99 area_control based structure level 1 dcl 1-20 area_info based structure level 1 dcl 1-7 area_info_version_1 constant fixed bin(17,0) initial dcl 1-3 ref 90 areap 16 000336 automatic pointer level 2 dcl 76 set ref 96* 188* 204 atd 000246 automatic char(168) packed unaligned dcl 72 set ref 105* 106 162 chain 12 000100 automatic pointer level 2 dcl 29 set ref 155* 170 176 209* 213 214* cleanup 000362 stack reference condition dcl 84 ref 98 code 000114 automatic fixed bin(35,0) dcl 68 set ref 99* 100 101* 108* 110* 124* 125* 132* 143* 144 145 146 148 149* com_err_ 000616 constant entry external dcl 56 ref 101 110 125 149 control 1 000336 automatic structure level 2 dcl 76 set ref 91* current_size 36 based fixed bin(17,0) level 2 in structure "pdt" dcl 2-27 in procedure "list_extra_personids" ref 128 current_size 36 based fixed bin(17,0) level 2 in structure "sat" dcl 5-32 in procedure "list_extra_personids" ref 117 define_area_ 000620 constant entry external dcl 57 ref 99 endfile 000370 stack reference condition dcl 84 ref 163 error_table_$bad_index 000604 external static fixed bin(35,0) dcl 48 ref 144 error_table_$checksum_failure 000606 external static fixed bin(35,0) dcl 49 ref 146 error_table_$no_record 000610 external static fixed bin(35,0) dcl 50 ref 145 extend 1 000336 automatic bit(1) level 3 packed packed unaligned dcl 76 set ref 92* get_pdir_ 000622 constant entry external dcl 58 ref 105 105 hcs_$initiate 000624 constant entry external dcl 59 ref 108 124 hcs_$terminate_noname 000626 constant entry external dcl 60 ref 132 i 000110 automatic fixed bin(17,0) dcl 197 in procedure "ref" set ref 199* 200 202 i 000334 automatic fixed bin(17,0) dcl 75 in procedure "list_extra_personids" set ref 117* 118* in_pnt 10 000100 automatic bit(1) level 2 dcl 29 set ref 139* 156* 170 174 175 210* index builtin function dcl 80 ref 199 ioa_ 000630 constant entry external dcl 61 ref 172 175 179 ioa_$ioa_switch 000632 constant entry external dcl 62 ref 146 ioa_$rsnnl 000634 constant entry external dcl 63 ref 105 iox_$error_output 000612 external static pointer dcl 51 set ref 146* j 000335 automatic fixed bin(17,0) dcl 75 set ref 114* 115* 120* 121* 128* 129* key 000400 stack reference condition dcl 84 ref 137 160 211 long 000320 automatic bit(1) dcl 73 set ref 88* 174 next based pointer level 2 dcl 34 set ref 180 206* 213* no_freeing 1(04) 000336 automatic bit(1) level 3 packed packed unaligned dcl 76 set ref 93* null builtin function dcl 80 ref 96 109 125 155 170 176 206 owner 2 000336 automatic char(32) level 2 packed packed unaligned dcl 76 set ref 94* pdt based structure level 1 dcl 2-27 pdtdir 000066 internal static char(168) initial packed unaligned dcl 44 set ref 124* 226* pdtep 000326 automatic pointer dcl 74 set ref 129* 130 130 pdtp 000324 automatic pointer dcl 74 set ref 124* 125 128 129 132* person_id 2 based char(24) level 2 dcl 2-58 ref 130 pid 000100 automatic char(32) packed unaligned dcl 196 in procedure "ref" set ref 200* 202* 203 203 208 212 215 217 pid 000100 automatic char(32) level 2 in structure "vrec" dcl 29 in procedure "list_extra_personids" set ref 154* 172* 175* 208* pnt_entry based structure level 1 dcl 4-22 pnt_manager_$get_abs_entry 000636 constant entry external dcl 64 ref 143 pnte 000126 automatic structure level 1 dcl 71 set ref 143 143 project based structure level 1 dcl 5-53 in procedure "list_extra_personids" project 722 based structure array level 2 in structure "sat" dcl 5-32 in procedure "list_extra_personids" set ref 118 project_id 1 based char(12) level 2 packed packed unaligned dcl 5-53 set ref 121 124 125* 130 public 22 000126 automatic structure level 2 dcl 71 rec 000125 automatic fixed bin(35,0) dcl 70 set ref 142* 143* 146* 149* reference based structure level 1 dcl 34 set ref 204 refp 000332 automatic pointer dcl 74 set ref 176* 176* 179* 180 204* 205 206 209 213 214 release_area_ 000640 constant entry external dcl 65 ref 188 rtrim builtin function dcl 80 ref 121 124 130 sat based structure level 1 dcl 5-32 satep 000330 automatic pointer dcl 74 set ref 118* 119 121 121 124 125 130 satp 000322 automatic pointer dcl 74 set ref 108* 109 115 117 118 size 13 000336 automatic fixed bin(18,0) level 2 dcl 76 set ref 95* state based fixed bin(17,0) level 2 in structure "user" dcl 2-58 in procedure "list_extra_personids" ref 130 state based fixed bin(17,0) level 2 in structure "project" dcl 5-53 in procedure "list_extra_personids" ref 119 string builtin function dcl 80 set ref 91* substr builtin function dcl 80 ref 202 sys_info$max_seg_size 000614 external static fixed bin(19,0) dcl 52 ref 95 sysdir 000014 internal static char(168) initial packed unaligned dcl 43 set ref 108* 225* system_admin 676 based char(32) array level 2 packed packed unaligned dcl 5-32 set ref 115* temp_area based area(1024) dcl 38 ref 204 temp_file 000010 constant file record keyed dcl 40 set ref 106 137 138 140 157 160 161 162 163 169* 187 211 212 215 217 type 2 based char(168) level 2 dcl 34 set ref 179* 205* uid 000115 automatic char(32) packed unaligned dcl 69 set ref 138 140 153* 154 157 unique_chars_ 000642 constant entry external dcl 66 ref 105 105 user 400 based structure array level 2 in structure "pdt" dcl 2-27 in procedure "list_extra_personids" set ref 129 user based structure level 1 dcl 2-58 in procedure "list_extra_personids" user_attributes based structure level 1 dcl 7-21 user_id 22 000126 automatic char(32) level 3 dcl 71 set ref 153 userid 31 based char(30) array level 3 packed packed unaligned dcl 5-53 set ref 121* version 000336 automatic fixed bin(17,0) level 2 dcl 76 set ref 90* vrec 000100 automatic structure level 1 dcl 29 set ref 138* 140 157 169* 212* 215 217 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 8-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-77 PDT_entry_lth internal static fixed bin(17,0) initial dcl 2-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 2-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 2-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 2-19 PDT_version internal static fixed bin(17,0) initial dcl 2-19 PNT_ENTRY_VERSION_2 internal static fixed bin(17,0) initial dcl 4-64 SAT_entry_lth internal static fixed bin(17,0) initial dcl 5-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 5-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 5-24 SAT_version internal static fixed bin(17,0) initial dcl 5-24 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 7-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 7-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 7-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-50 area_infop automatic pointer dcl 1-5 pntep automatic pointer dcl 4-21 user_abs_attributes based structure level 1 dcl 8-25 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 001736 constant entry internal dcl 186 ref 98 111 150 164 done_pnt 001450 constant label dcl 160 set ref 144 exit 001667 constant label dcl 184 ref 165 list_extra_personids 000262 constant entry external dcl 24 ref 001764 constant entry internal dcl 194 ref 115 121 130 test 001673 constant entry external dcl 222 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2470 3334 2205 2500 Length 3710 2205 644 340 263 574 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME list_extra_personids 563 external procedure is an external procedure. on unit on line 98 64 on unit on unit on line 137 184 on unit uses I/O statements. on unit on line 163 64 on unit clean_up 118 internal procedure uses I/O statements. ref 202 internal procedure is called during a stack extension, uses I/O statements, and enables or reverts conditions. on unit on line 211 184 on unit uses I/O statements. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000014 sysdir list_extra_personids 000066 pdtdir list_extra_personids STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME list_extra_personids 000100 vrec list_extra_personids 000114 code list_extra_personids 000115 uid list_extra_personids 000125 rec list_extra_personids 000126 pnte list_extra_personids 000246 atd list_extra_personids 000320 long list_extra_personids 000322 satp list_extra_personids 000324 pdtp list_extra_personids 000326 pdtep list_extra_personids 000330 satep list_extra_personids 000332 refp list_extra_personids 000334 i list_extra_personids 000335 j list_extra_personids 000336 ai list_extra_personids ref 000100 pid ref 000110 i ref THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc record_io open_file close_file enable_file revert_file op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ define_area_ get_pdir_ hcs_$initiate hcs_$terminate_noname ioa_ ioa_$ioa_switch ioa_$rsnnl pnt_manager_$get_abs_entry release_area_ unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_index error_table_$checksum_failure error_table_$no_record iox_$error_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 40 000243 24 000261 88 000270 90 000271 91 000273 92 000274 93 000276 94 000300 95 000303 96 000306 98 000310 99 000332 100 000345 101 000347 102 000376 105 000377 106 000463 108 000507 109 000554 110 000560 111 000605 114 000611 115 000617 116 000641 117 000643 118 000653 119 000657 120 000662 121 000667 122 000745 124 000750 125 001042 128 001104 129 001115 130 001120 131 001171 132 001174 135 001205 137 001207 138 001233 139 001254 140 001257 141 001271 142 001272 143 001274 144 001311 145 001315 146 001320 148 001352 149 001354 150 001405 151 001411 153 001412 154 001415 155 001420 156 001422 157 001424 159 001443 160 001450 161 001454 162 001461 163 001503 164 001520 165 001525 169 001530 170 001543 172 001552 173 001575 174 001576 175 001603 176 001633 179 001642 180 001662 182 001666 184 001667 222 001670 225 001707 226 001716 227 001733 186 001735 187 001746 188 001752 189 001762 194 001763 199 002007 200 002023 202 002030 203 002034 204 002044 205 002053 206 002061 208 002063 209 002066 210 002067 211 002070 212 002114 213 002136 214 002144 215 002146 216 002161 217 002162 218 002203 ----------------------------------------------------------- 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