COMPILATION LISTING OF SEGMENT restore_pdt_access Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1010.2 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 restore_pdt_access: proc; 12 13 /* RESTORE_PDT_ACCESS - This program can be run after a crash to regenerate the ACL's of 14* the PDT's in >sc1>pdt, and also the ACL of >sc1>update. 15* (Access control lists seem to be expecially vulnerable to crashes.) 16* 17* THVV 1/74 */ 18 /* Modified March 1982 by E. N. Kittlitz to eliminate proj_admin_seg */ 19 20 dcl pdtdir char (168) aligned int static init (">system_control_1>pdt"), 21 pdtname char (32) aligned, 22 sc1 char (168) aligned int static init (">system_control_1"), 23 nacl fixed bin, 24 sel_proj char (32) aligned init (""), 25 sat_name char (32) aligned, 26 datestr char (16) aligned, 27 (i, ii, iii, m, lng, sm, slng, j, k) fixed bin, 28 ec fixed bin (35), 29 an fixed bin init (1), 30 (argp, satp, satep) pointer, 31 arg char (slng) based (argp), 32 strn1 char (28) aligned init (""), 33 ct fixed bin init (0), 34 ct1 fixed bin init (0); 35 36 dcl expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin (35)), 37 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 38 com_err_ entry options (variable), 39 ioa_ entry options (variable), 40 ioa_$rsnnl entry options (variable), 41 hcs_$initiate entry (char (*) aligned, char (*) aligned, char (*) aligned, 42 fixed bin (1), fixed bin (2), ptr, fixed bin (35)), 43 hcs_$terminate_noname entry (ptr, fixed bin (35)), 44 clock_ entry () returns (fixed bin (71)), 45 date_time_ entry (fixed bin (71), char (*) aligned); 46 dcl hcs_$add_acl_entries entry (char (*) aligned, char (*) aligned, ptr, fixed bin, fixed bin (35)); 47 dcl hcs_$add_dir_acl_entries entry (char (*) aligned, char (*) aligned, ptr, fixed bin, fixed bin (35)); 48 49 dcl 1 acls (6) aligned, 50 2 name char (32), 51 2 modes bit (36), 52 2 mbz bit (36), 53 2 erc fixed bin (35); 54 55 dcl 1 dacls (6) aligned, 56 2 name char (32), 57 2 modes bit (36), 58 2 erc fixed bin (35); 59 60 dcl (addr, null, fixed, substr) builtin; 61 62 /* ================================================ */ 63 1 1 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 1 2 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 1 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 1 9* Expand comment line of project.state to include the renamed state (state = 1 10* 3). 1 11* END HISTORY COMMENTS */ 1 12 1 13 1 14 1 15 /* Modified 740723 by PG to add AIM info */ 1 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 1 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 1 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 1 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 1 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 1 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 1 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 1 23 1 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 1 25 1 26 SAT_header_lth init (466), /* length in words of SAT header */ 1 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 1 28 1 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 1 30 ) fixed bin internal static options (constant); 1 31 1 32 dcl 1 sat based (satp) aligned, 1 33 2 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 2 2 2 3 /* the "author" items must always be the first ones in the table. The 2 4* module which moves the converted table to the System Control process 2 5* fills in these data items and assumes them to be at the head of the segment 2 6* regardless of the specific table's actual declaration. The variables 2 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 2 8* respectively. For tables installed in multiple processes, these 2 9* are to be used to lock out multiple installations. */ 2 10 2 11 /* Lock should be used as a modification lock. Since, in general, 2 12* entries may not be moved in system tables, even by installations, 2 13* it is sufficient for only installers and programs that change threads 2 14* to set or respect the lock. Simply updating data in an entry 2 15* requires no such protection. 2 16* 2 17* Last_install_time is used by readers of system tables to detect 2 18* installations or other serious modifications. By checking it before 2 19* and after copying a block of data, they can be protected against 2 20* modifications. 2 21* 2 22* Modules that set the lock should save proc_group_id, and then 2 23* put their group id there for the time they hold the lock. 2 24* if they do not actually install the, they should restore the group id. 2 25**/ 2 26 2 27 2 author aligned, /* validation data about table's author */ 2 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 2 29 3 lock bit (36), /* installation lock */ 2 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 2 31 3 update_authorization bit (1) unal, /* update only authorizations */ 2 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 2 33 3 pad bit (33) unaligned, 2 34 3 last_install_time fixed bin (71), 2 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 2 36 3 w_dir char (64), /* author's working directory */ 2 37 2 38 /* END INCLUDE FILE author.incl.pl1 */ 1 34 1 35 2 max_size fixed bin, /* max number of entries table can grow */ 1 36 2 current_size fixed bin, /* current size of table (in entries) */ 1 37 2 version fixed bin, /* version number of table (word 32) */ 1 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 1 39 2 n_projects fixed bin, /* number of entries actually used */ 1 40 2 pad_was_max_users bit (36) aligned, 1 41 2 max_units fixed bin, /* maximum number of login-units per session */ 1 42 2 pad_was_max_prim bit (36) aligned, 1 43 2 uwt_size fixed bin, /* size of User Weight Table */ 1 44 2 uwt (24) aligned, /* User Weight Table */ 1 45 3 initproc char (64) unaligned, /* user's initial procedure */ 1 46 3 units fixed bin, /* weight of initial procedure */ 1 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 1 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 1 49 2 project (3258), /* The SAT entries. 255K segment. */ 1 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 1 51 1 52 1 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 1 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 1 55 2 project_id char (12) unaligned, /* project's name */ 1 56 2 project_dir char (64) unaligned, /* project's directory */ 1 57 2 pdt_ptr pointer, /* pointer to current PDT */ 1 58 2 max_users fixed bin, /* maximum number of users from project */ 1 59 2 n_users fixed bin, /* current number */ 1 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 1 61 2 admin (4) aligned, /* list of project's administrators */ 1 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 1 63 3 pad char (2) unal, 1 64 2 cutoff char (1), /* if project is cut off, why. */ 1 65 2 min_ring fixed bin, /* lowest ring for project */ 1 66 2 max_ring fixed bin, /* highest ring for project */ 1 67 2 alias char (8) unal, /* project alias */ 1 68 2 group char (8) unal, /* default group for this project */ 1 69 2 grace_max fixed bin, /* maximum bump grace */ 1 70 2 audit bit (36), /* audit flags for project */ 1 71 2 project_authorization (2) bit (72), /* authorization of this project */ 1 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 1 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 1 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 1 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 1 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 1 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 1 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 1 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 1 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 1 81 2 satpad1 fixed bin (9) unsigned unaligned, 1 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 1 83 2 chain fixed bin; /* if free entry, chain */ 1 84 1 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 64 3 1 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 3 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 3 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 3 8* attribute switches. 3 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 3 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 3 12* be deleted. 3 13* B) Add constants identifying attributes that can be changed by user at 3 14* login, etc. 3 15* END HISTORY COMMENTS */ 3 16 3 17 3 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 3 19 3 20 /* format: style4 */ 3 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 3 22 (2 administrator bit (1), /* 1 system administrator privileges */ 3 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 3 24 2 nobump bit (1), /* 2 user cannot be bumped */ 3 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 3 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 3 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 3 28* . of same project (distinct from "nobump") */ 3 29 2 nolist bit (1), /* 7 don't list user on "who" */ 3 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 3 31 2 multip bit (1), /* 9 user may have several processes */ 3 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 3 33 2 brief bit (1), /* 11 no login or logout message */ 3 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 3 35 2 vhomedir bit (1), /* 13 user may change homedir */ 3 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 3 37 2 sb_ok bit (1), /* 15 user may be standby */ 3 38 2 pm_ok bit (1), /* 16 user may be primary */ 3 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 3 40 2 daemon bit (1), /* 18 user may login as daemon */ 3 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 3 42 2 no_warning bit (1), /* 20 no warning message */ 3 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 3 44* . in PDT: this user has an individual load control group */ 3 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 3 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 3 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 3 48 2 pad bit (12)) unaligned; 3 49 3 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 3 51 ("none", /* 0 */ 3 52 "administrator", /* 1 */ 3 53 "primary_line", /* 2 */ 3 54 "nobump", /* 3 */ 3 55 "guaranteed_login", /* 4 */ 3 56 "anonymous", /* 5 */ 3 57 "nopreempt", /* 6 */ 3 58 "nolist", /* 7 */ 3 59 "dialok", /* 8 */ 3 60 "multip", /* 9 */ 3 61 "bumping", /* 10 */ 3 62 "brief", /* 11 */ 3 63 "vinitproc", /* 12 */ 3 64 "vhomedir", /* 13 */ 3 65 "nostartup", /* 14 */ 3 66 "no_secondary", /* 15 */ 3 67 "no_prime", /* 16 */ 3 68 "no_eo", /* 17 */ 3 69 "daemon", /* 18 */ 3 70 "", /* 19 vdim OBSOLETE */ 3 71 "no_warning", /* 20 */ 3 72 "igroup", /* 21 */ 3 73 "save_pdir", /* 22 */ 3 74 "disconnect_ok", /* 23 */ 3 75 "save_on_disconnect"); /* 24 */ 3 76 3 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 3 78 ("null", /* 0 */ 3 79 "admin", /* 1 */ 3 80 "", "", /* 2 - 3 */ 3 81 "guar", /* 4 */ 3 82 "anon", /* 5 */ 3 83 "", "", /* 6 - 7 */ 3 84 "dial", /* 8 */ 3 85 "multi_login", /* 9 */ 3 86 "preempting", /* 10 */ 3 87 "", /* 11 */ 3 88 "v_process_overseer", /* 12 */ 3 89 "v_home_dir", /* 13 */ 3 90 "no_start_up", /* 14 */ 3 91 "no_sec", /* 15 */ 3 92 "no_primary", /* 16 */ 3 93 "no_edit_only", /* 17 */ 3 94 "op_login", /* 18 */ 3 95 "", /* 19 */ 3 96 "nowarn", /* 20 */ 3 97 "", "", "", /* 21 - 23 */ 3 98 "save"); /* 24 */ 3 99 3 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 3 101 options(constant) init("000000000010000000010000000000000000"b); 3 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 3 103 3 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 3 105 options(constant) init("000000000010000000010000000000000000"b); 3 106 /* PDT value for (brief, no_warning) is default */ 3 107 3 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 3 109 options(constant) init("000100000110010000010000000000000000"b); 3 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 3 111 4 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* This include file describes the attributes of an absentee job. It is */ 4 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 4 7 /* and PIT.incl.pl1. */ 4 8 /* */ 4 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 10 4 11 /****^ HISTORY COMMENTS: 4 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 4 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 14* Separated abs_attributes from the request structure 4 15* (abs_message_format.incl.pl1) so that the identical structure could be 4 16* used in the ute structure (user_table_entry.incl.pl1). 4 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 4 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 19* Added ABS_ATTRIBUTE_NAMES array. 4 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 4 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 4 22* Added the no_start_up flag. SCP6367 4 23* END HISTORY COMMENTS */ 4 24 4 25 dcl 1 user_abs_attributes aligned based, 4 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 4 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 4 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 4 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 4 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 4 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 4 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 4 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 4 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 4 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 4 36 2 attributes_pad bit (26) unaligned; 4 37 4 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 4 39 "restartable", 4 40 "user_deferred_until_time", 4 41 "proxy", 4 42 "set_bit_cnt", 4 43 "time_in_gmt", 4 44 "user_deferred_indefinitely", 4 45 "secondary_ok", 4 46 "truncate_absout", 4 47 "restarted", 4 48 "no_start_up"); 4 49 4 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 4 51 3 112 3 113 3 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 65 66 /* ================================================ */ 67 68 /* INITIALIZATION - LOCATE AND INITIATE SAT */ 69 70 71 do j = 1 to 6; /* Set up acl structures. */ 72 acls.mbz (j) = "0"b; 73 acls.modes (j) = "100"b; /* "R" access for pdt */ 74 dacls.modes (j) = "001"b; /* "A" access for dir update */ 75 end; 76 acls.name (1) = "*.SysDaemon.*"; 77 acls.name (2) = "*.SysAdmin.*"; 78 acls.modes (1), acls.modes (2) = "101"b; /* These guys get RW. */ 79 80 call hcs_$initiate (sc1, "sat", "", 0, 0, satp, ec); 81 if satp = null then do; 82 call com_err_ (ec, "restore_pdt_access", "sat"); 83 return; 84 end; 85 if sat.version ^= SAT_version then do; 86 call com_err_ (0, "restore_pdt_access", 87 "SAT version is inconsistent with declarations used by this program"); 88 go to exit; 89 end; 90 91 arglp: call cu_$arg_ptr (an, argp, slng, ec); /* get next arg -- a project name */ 92 if ec ^= 0 then go to endarg; /* last arg? */ 93 else do; 94 sel_proj = arg; 95 end; 96 97 next_arg: an = an + 1; 98 go to arglp; /* loop on args */ 99 endarg: if sel_proj ^= "" then go to quickie; 100 101 quickie: do i = 1 to sat.current_size; /* loop thru SAT looking for delegated projects */ 102 satep = addr (sat.project (i)); /* get ptr to slide down sat entries */ 103 if project.state = 1 then do; 104 if sel_proj ^= "" then if sel_proj ^= project.project_id then go to endsatloop; 105 ct = ct + 1; /* Count all valid projects found. */ 106 call ioa_$rsnnl ("^a.pdt", pdtname, k, project.project_id); 107 if project.admin (1).userid = "" then do; 108 call hcs_$add_acl_entries (pdtdir, pdtname, addr (acls), 2, ec); 109 if ec ^= 0 then call com_err_ (ec, "restore_pdt_access", "Cannot set ACL of ^a", pdtname); 110 end; 111 else do; 112 ct1 = ct1 + 1; 113 nacl = 0; /* Found pdt to be fixed. */ 114 do j = 1 to 4; /* Make up acls. */ 115 acls.name (j+2) = project.admin.userid (j); 116 if acls.name (j+2) = "" then go to setit; 117 k = index (acls.name (j+2), " "); 118 substr (acls.name (j+2), k, 2) = ".*"; 119 dacls.name (j) = acls.name (j+2); 120 nacl = nacl + 1; 121 end; 122 setit: call hcs_$add_acl_entries (pdtdir, pdtname, addr (acls), nacl+2, ec); 123 if ec ^= 0 then call com_err_ (ec, "restore_pdt_access", "Cannot restore ACL of ^a", pdtname); 124 call hcs_$add_dir_acl_entries (sc1, "update", addr (dacls), nacl, ec); 125 if ec ^= 0 then call com_err_ (ec, "restore_pdt_access", "Cannot add ACL to update: ^a", 126 project.project_id); 127 end; 128 end; 129 endsatloop: end; 130 if sel_proj ^= "" then if ct = 0 then do; 131 call ioa_ (" Project ^a not found in SAT", sel_proj); 132 end; 133 else if ct1 = 0 then do; 134 call ioa_ ("^a is not currently a delegated project", sel_proj); 135 end; 136 137 exit: call hcs_$terminate_noname (satp, ec); 138 return; 139 140 end restore_pdt_access; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0942.4 restore_pdt_access.pl1 >special_ldd>install>MR12.2-1047>restore_pdt_access.pl1 64 1 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 1-34 2 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 65 3 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 3-112 4 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>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. SAT_version constant fixed bin(17,0) initial dcl 1-24 ref 85 acls 000147 automatic structure array level 1 dcl 49 set ref 108 108 122 122 addr builtin function dcl 60 ref 102 108 108 122 122 124 124 admin 31 based structure array level 2 dcl 1-53 an 000126 automatic fixed bin(17,0) initial dcl 20 set ref 20* 91* 97* 97 arg based char packed unaligned dcl 20 ref 94 argp 000130 automatic pointer dcl 20 set ref 91* 94 com_err_ 000136 constant entry external dcl 36 ref 82 86 109 123 125 ct 000145 automatic fixed bin(17,0) initial dcl 20 set ref 20* 105* 105 130 ct1 000146 automatic fixed bin(17,0) initial dcl 20 set ref 20* 112* 112 133 cu_$arg_ptr 000134 constant entry external dcl 36 ref 91 current_size 36 based fixed bin(17,0) level 2 dcl 1-32 ref 101 dacls 000251 automatic structure array level 1 dcl 55 set ref 124 124 ec 000125 automatic fixed bin(35,0) dcl 20 set ref 80* 82* 91* 92 108* 109 109* 122* 123 123* 124* 125 125* 137* hcs_$add_acl_entries 000150 constant entry external dcl 46 ref 108 122 hcs_$add_dir_acl_entries 000152 constant entry external dcl 47 ref 124 hcs_$initiate 000144 constant entry external dcl 36 ref 80 hcs_$terminate_noname 000146 constant entry external dcl 36 ref 137 i 000121 automatic fixed bin(17,0) dcl 20 set ref 101* 102* ioa_ 000140 constant entry external dcl 36 ref 131 134 ioa_$rsnnl 000142 constant entry external dcl 36 ref 106 j 000123 automatic fixed bin(17,0) dcl 20 set ref 71* 72 73 74* 114* 115 115 116 117 118 119 119* k 000124 automatic fixed bin(17,0) dcl 20 set ref 106* 117* 118 mbz 11 000147 automatic bit(36) array level 2 dcl 49 set ref 72* modes 10 000251 automatic bit(36) array level 2 in structure "dacls" dcl 55 in procedure "restore_pdt_access" set ref 74* modes 10 000147 automatic bit(36) array level 2 in structure "acls" dcl 49 in procedure "restore_pdt_access" set ref 73* 78* 78* nacl 000110 automatic fixed bin(17,0) dcl 20 set ref 113* 120* 120 122 124* name 000147 automatic char(32) array level 2 in structure "acls" dcl 49 in procedure "restore_pdt_access" set ref 76* 77* 115* 116 117 118* 119 name 000251 automatic char(32) array level 2 in structure "dacls" dcl 55 in procedure "restore_pdt_access" set ref 119* null builtin function dcl 60 ref 81 pdtdir 000010 internal static char(168) initial dcl 20 set ref 108* 122* pdtname 000100 automatic char(32) dcl 20 set ref 106* 108* 109* 122* 123* project 722 based structure array level 2 in structure "sat" dcl 1-32 in procedure "restore_pdt_access" set ref 102 project based structure level 1 dcl 1-53 in procedure "restore_pdt_access" project_id 1 based char(12) level 2 packed packed unaligned dcl 1-53 set ref 104 106* 125* sat based structure level 1 dcl 1-32 satep 000134 automatic pointer dcl 20 set ref 102* 103 104 106 107 115 125 satp 000132 automatic pointer dcl 20 set ref 80* 81 85 101 102 137* sc1 000062 internal static char(168) initial dcl 20 set ref 80* 124* sel_proj 000111 automatic char(32) initial dcl 20 set ref 20* 94* 99 104 104 130 131* 134* slng 000122 automatic fixed bin(17,0) dcl 20 set ref 91* 94 state based fixed bin(17,0) level 2 dcl 1-53 ref 103 strn1 000136 automatic char(28) initial dcl 20 set ref 20* substr builtin function dcl 60 set ref 118* user_attributes based structure level 1 dcl 3-21 userid 31 based char(30) array level 3 packed packed unaligned dcl 1-53 ref 107 115 version 37 based fixed bin(17,0) level 2 dcl 1-32 ref 85 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 4-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 3-77 SAT_entry_lth internal static fixed bin(17,0) initial dcl 1-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 1-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 1-24 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 3-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 3-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 3-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 3-50 clock_ 000000 constant entry external dcl 36 date_time_ 000000 constant entry external dcl 36 datestr automatic char(16) dcl 20 expand_path_ 000000 constant entry external dcl 36 fixed builtin function dcl 60 ii automatic fixed bin(17,0) dcl 20 iii automatic fixed bin(17,0) dcl 20 lng automatic fixed bin(17,0) dcl 20 m automatic fixed bin(17,0) dcl 20 sat_name automatic char(32) dcl 20 sm automatic fixed bin(17,0) dcl 20 user_abs_attributes based structure level 1 dcl 4-25 NAMES DECLARED BY EXPLICIT CONTEXT. arglp 000345 constant label dcl 91 ref 98 endarg 000373 constant label dcl 99 ref 92 endsatloop 001037 constant label dcl 129 ref 104 exit 001112 constant label dcl 137 ref 88 next_arg 000371 constant label dcl 97 quickie 000377 constant label dcl 101 ref 99 restore_pdt_access 000133 constant entry external dcl 11 setit 000643 constant label dcl 122 ref 116 NAME DECLARED BY CONTEXT OR IMPLICATION. index builtin function ref 117 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1240 1414 1125 1250 Length 1674 1125 154 244 113 124 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME restore_pdt_access 296 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 pdtdir restore_pdt_access 000062 sc1 restore_pdt_access STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME restore_pdt_access 000100 pdtname restore_pdt_access 000110 nacl restore_pdt_access 000111 sel_proj restore_pdt_access 000121 i restore_pdt_access 000122 slng restore_pdt_access 000123 j restore_pdt_access 000124 k restore_pdt_access 000125 ec restore_pdt_access 000126 an restore_pdt_access 000130 argp restore_pdt_access 000132 satp restore_pdt_access 000134 satep restore_pdt_access 000136 strn1 restore_pdt_access 000145 ct restore_pdt_access 000146 ct1 restore_pdt_access 000147 acls restore_pdt_access 000251 dacls restore_pdt_access THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr hcs_$add_acl_entries hcs_$add_dir_acl_entries hcs_$initiate hcs_$terminate_noname ioa_ ioa_$rsnnl NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000132 20 000140 71 000152 72 000157 73 000161 74 000163 75 000167 76 000171 77 000174 78 000177 80 000202 81 000247 82 000253 83 000304 85 000305 86 000311 88 000344 91 000345 92 000362 94 000364 97 000371 98 000372 99 000373 101 000377 102 000407 103 000413 104 000416 105 000426 106 000427 107 000456 108 000463 109 000520 110 000560 112 000561 113 000562 114 000563 115 000571 116 000603 117 000607 118 000620 119 000631 120 000640 121 000641 122 000643 123 000701 124 000741 125 000776 129 001037 130 001041 131 001047 132 001067 133 001070 134 001072 137 001112 138 001123 ----------------------------------------------------------- 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