COMPILATION LISTING OF SEGMENT create_sat Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1024.2 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* create_sat.pl1 -- minimal program to invent an empty sat. */ 7 /* This replaces cv_smf, since we no longer manipulate smf's */ 8 /* format: style2 */ 9 /* BIM 1984-07-05 */ 10 /* Modified 1984-10-11 by E. Swenson to fix sat.current_size initializaton. */ 11 12 create_sat: 13 procedure options (variable); 14 15 declare com_err_ entry () options (variable); 16 declare command_query_$yes_no entry () options (variable); 17 declare cu_$arg_count entry (fixed bin, fixed bin (35)); 18 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 19 declare expand_pathname_ entry (character (*), character (*), character (*), fixed binary (35)); 20 declare get_group_id_ entry () returns (char (32)); 21 declare get_wdir_ entry() returns(character (168)); 22 declare initiate_file_$create entry (character (*), character (*), bit (*), pointer, bit (1) aligned, 23 fixed binary (24), fixed binary (35)); 24 declare pathname_ entry (character (*), character (*)) returns (character (168)); 25 declare terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 26 27 declare error_table_$namedup fixed bin (35) ext static; 28 29 declare arg_count fixed bin; 30 declare ap pointer; 31 declare al fixed bin (21); 32 declare argument char (al) based (ap); 33 declare code fixed bin (35); 34 declare created bit (1) aligned; 35 declare dir_name char (168); 36 declare entryname char (32); 37 declare (satp, satep) pointer; 38 declare yes_sw bit (1) aligned; 39 40 declare ME char (32) init ("create_sat") int static options (constant); 41 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 */ 42 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 */ 43 5 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 5 2* 5 3* Values for the "access mode" argument so often used in hardcore 5 4* James R. Davis 26 Jan 81 MCR 4844 5 5* Added constants for SM access 4/28/82 Jay Pattin 5 6* Added text strings 03/19/85 Chris Jones 5 7**/ 5 8 5 9 5 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 5 11 dcl ( 5 12 N_ACCESS init ("000"b), 5 13 R_ACCESS init ("100"b), 5 14 E_ACCESS init ("010"b), 5 15 W_ACCESS init ("001"b), 5 16 RE_ACCESS init ("110"b), 5 17 REW_ACCESS init ("111"b), 5 18 RW_ACCESS init ("101"b), 5 19 S_ACCESS init ("100"b), 5 20 M_ACCESS init ("010"b), 5 21 A_ACCESS init ("001"b), 5 22 SA_ACCESS init ("101"b), 5 23 SM_ACCESS init ("110"b), 5 24 SMA_ACCESS init ("111"b) 5 25 ) bit (3) internal static options (constant); 5 26 5 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 5 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 5 29 5 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 5 31 static options (constant); 5 32 5 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 5 34 static options (constant); 5 35 5 36 dcl ( 5 37 N_ACCESS_BIN init (00000b), 5 38 R_ACCESS_BIN init (01000b), 5 39 E_ACCESS_BIN init (00100b), 5 40 W_ACCESS_BIN init (00010b), 5 41 RW_ACCESS_BIN init (01010b), 5 42 RE_ACCESS_BIN init (01100b), 5 43 REW_ACCESS_BIN init (01110b), 5 44 S_ACCESS_BIN init (01000b), 5 45 M_ACCESS_BIN init (00010b), 5 46 A_ACCESS_BIN init (00001b), 5 47 SA_ACCESS_BIN init (01001b), 5 48 SM_ACCESS_BIN init (01010b), 5 49 SMA_ACCESS_BIN init (01011b) 5 50 ) fixed bin (5) internal static options (constant); 5 51 5 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 44 6 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 6 2 /* format: style2,^inddcls,idind32 */ 6 3 6 4 declare 1 terminate_file_switches based, 6 5 2 truncate bit (1) unaligned, 6 6 2 set_bc bit (1) unaligned, 6 7 2 terminate bit (1) unaligned, 6 8 2 force_write bit (1) unaligned, 6 9 2 delete bit (1) unaligned; 6 10 6 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 6 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 6 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 6 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 6 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 6 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 6 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 6 18 6 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 45 46 47 48 call cu_$arg_count (arg_count, code); 49 if code ^= 0 50 then do; 51 call com_err_ (code, ME); 52 return; 53 end; 54 55 if arg_count ^= 1 56 then do; 57 call com_err_ (0, ME, "Usage: ^a NEW_SAT_PN.sat", ME); 58 return; 59 end; 60 61 satp = null (); 62 63 call cu_$arg_ptr (1, ap, al, (0)); 64 call expand_pathname_ (argument, dir_name, entryname, code); 65 if code ^= 0 66 then do; 67 call com_err_ (code, ME, "^a", argument); 68 return; 69 end; 70 71 call initiate_file_$create (dir_name, entryname, RW_ACCESS, satp, created, (0), code); 72 if code ^= 0 73 then do; 74 call com_err_ (code, ME, "^a", pathname_ (dir_name, entryname)); 75 return; 76 end; 77 78 if ^created 79 then do; 80 call command_query_$yes_no (yes_sw, error_table_$namedup, ME, 81 "The create_sat command will discard all information in an existing SAT.^/ Answer ""no"" unless you are sure that you want to discard the information in this segment." 82 , "SAT ^a already exists. Do you wish to overwrite it.?", pathname_ (dir_name, entryname)); 83 if ^yes_sw 84 then do; 85 call terminate_file_ (satp, (0), TERM_FILE_TERM, (0)); 86 return; 87 end; 88 end; 89 sat.version = -1; /* BROKEN */ 90 sat.author.proc_group_id = get_group_id_ (); 91 sat.author.lock = ""b; 92 sat.author.update_attributes, sat.author.update_authorization, sat.author.deferral_notified = "0"b; 93 sat.last_install_time = 0; 94 sat.table = "SAT"; 95 sat.w_dir = get_wdir_ (); 96 97 sat.max_size = hbound (sat.project, 1); 98 sat.current_size = 0; 99 sat.freep = 1; 100 sat.n_projects = 0; 101 sat.max_units = 0; 102 sat.uwt_size = 0; 103 sat.uwt (*).initproc = ""; 104 sat.uwt (*).units = 0; 105 sat.system_admin (*) = ""; 106 sat.pad1 = 0; 107 sat.project (1) = 0; /* zero first project */ 108 sat.version = SAT_version; 109 call terminate_file_ (satp, wordno (addr (sat.project (2))), TERM_FILE_BC | TERM_FILE_TERM, (0)); 110 return; 111 end create_sat; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0941.0 create_sat.pl1 >special_ldd>install>MR12.2-1047>create_sat.pl1 42 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 43 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 44 5 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 45 6 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ME 000002 constant char(32) initial packed unaligned dcl 40 set ref 51* 57* 57* 67* 74* 80* RW_ACCESS 000001 constant bit(3) initial packed unaligned dcl 5-11 set ref 71* SAT_version constant fixed bin(17,0) initial dcl 1-24 ref 108 TERM_FILE_BC constant bit(2) initial packed unaligned dcl 6-12 ref 109 TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 6-14 set ref 85* 109 al 000104 automatic fixed bin(21,0) dcl 31 set ref 63* 64 64 67 67 ap 000102 automatic pointer dcl 30 set ref 63* 64 67 arg_count 000100 automatic fixed bin(17,0) dcl 29 set ref 48* 55 argument based char packed unaligned dcl 32 set ref 64* 67* author based structure level 2 dcl 1-32 code 000105 automatic fixed bin(35,0) dcl 33 set ref 48* 49 51* 64* 65 67* 71* 72 74* com_err_ 000010 constant entry external dcl 15 ref 51 57 67 74 command_query_$yes_no 000012 constant entry external dcl 16 ref 80 created 000106 automatic bit(1) dcl 34 set ref 71* 78 cu_$arg_count 000014 constant entry external dcl 17 ref 48 cu_$arg_ptr 000016 constant entry external dcl 18 ref 63 current_size 36 based fixed bin(17,0) level 2 dcl 1-32 set ref 98* deferral_notified 11(02) based bit(1) level 3 packed packed unaligned dcl 1-32 set ref 92* dir_name 000107 automatic char(168) packed unaligned dcl 35 set ref 64* 71* 74* 74* 80* 80* entryname 000161 automatic char(32) packed unaligned dcl 36 set ref 64* 71* 74* 74* 80* 80* error_table_$namedup 000034 external static fixed bin(35,0) dcl 27 set ref 80* expand_pathname_ 000020 constant entry external dcl 19 ref 64 freep 40 based fixed bin(17,0) level 2 dcl 1-32 set ref 99* get_group_id_ 000022 constant entry external dcl 20 ref 90 get_wdir_ 000024 constant entry external dcl 21 ref 95 initiate_file_$create 000026 constant entry external dcl 22 ref 71 initproc 46 based char(64) array level 3 packed packed unaligned dcl 1-32 set ref 103* last_install_time 12 based fixed bin(71,0) level 3 dcl 1-32 set ref 93* lock 10 based bit(36) level 3 dcl 1-32 set ref 91* max_size 35 based fixed bin(17,0) level 2 dcl 1-32 set ref 97* max_units 43 based fixed bin(17,0) level 2 dcl 1-32 set ref 101* n_projects 41 based fixed bin(17,0) level 2 dcl 1-32 set ref 100* pad1 716 based fixed bin(17,0) array level 2 dcl 1-32 set ref 106* pathname_ 000030 constant entry external dcl 24 ref 74 74 80 80 proc_group_id based char(32) level 3 dcl 1-32 set ref 90* project 722 based structure array level 2 dcl 1-32 set ref 97 107* 109 109 sat based structure level 1 dcl 1-32 satp 000172 automatic pointer dcl 37 set ref 61* 71* 85* 89 90 91 92 92 92 93 94 95 97 97 98 99 100 101 102 103 104 105 106 107 108 109* 109 109 system_admin 676 based char(32) array level 2 packed packed unaligned dcl 1-32 set ref 105* table 14 based char(4) level 3 dcl 1-32 set ref 94* terminate_file_ 000032 constant entry external dcl 25 ref 85 109 units 66 based fixed bin(17,0) array level 3 dcl 1-32 set ref 104* update_attributes 11 based bit(1) level 3 packed packed unaligned dcl 1-32 set ref 92* update_authorization 11(01) based bit(1) level 3 packed packed unaligned dcl 1-32 set ref 92* user_attributes based structure level 1 dcl 3-21 uwt 46 based structure array level 2 dcl 1-32 uwt_size 45 based fixed bin(17,0) level 2 dcl 1-32 set ref 102* version 37 based fixed bin(17,0) level 2 dcl 1-32 set ref 89* 108* w_dir 15 based char(64) level 3 dcl 1-32 set ref 95* yes_sw 000174 automatic bit(1) dcl 38 set ref 80* 83 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 A_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 5-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 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 SA_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 5-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 6-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 6-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 6-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 6-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 6-15 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 W_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 project based structure level 1 dcl 1-53 satep automatic pointer dcl 37 terminate_file_switches based structure level 1 packed packed unaligned dcl 6-4 user_abs_attributes based structure level 1 dcl 4-25 NAME DECLARED BY EXPLICIT CONTEXT. create_sat 000133 constant entry external dcl 12 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 109 109 hbound builtin function ref 97 null builtin function ref 61 wordno builtin function ref 109 109 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1150 1206 1005 1160 Length 1520 1005 36 275 143 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME create_sat 280 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME create_sat 000100 arg_count create_sat 000102 ap create_sat 000104 al create_sat 000105 code create_sat 000106 created create_sat 000107 dir_name create_sat 000161 entryname create_sat 000172 satp create_sat 000174 yes_sw create_sat 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_ command_query_$yes_no cu_$arg_count cu_$arg_ptr expand_pathname_ get_group_id_ get_wdir_ initiate_file_$create pathname_ terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$namedup LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000132 48 000140 49 000150 51 000152 52 000167 55 000170 57 000173 58 000226 61 000227 63 000231 64 000251 65 000301 67 000303 68 000335 71 000336 72 000400 74 000402 75 000451 78 000452 80 000455 83 000540 85 000543 86 000572 89 000573 90 000576 91 000611 92 000612 93 000620 94 000622 95 000624 97 000637 98 000641 99 000642 100 000644 101 000645 102 000646 103 000647 104 000665 105 000700 106 000715 107 000727 108 000741 109 000743 110 001001 ----------------------------------------------------------- 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