COMPILATION LISTING OF SEGMENT search_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 1010.1 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 /* format: style4 */ 12 13 /* 14* Written Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 15* Modified June 1981 by E. N. Kittlitz to implement UNCA rate structures. 16* Modified June 1982 by E. N. Kittlitz to return initiate error code correctly. 17**/ 18 19 search_sat_: 20 proc; /* this entry should not be called */ 21 return; 22 23 /* 24* This procedure locates the named project in the sat and returns project information 25* Current entry points are: 26* search_sat_$rs_number (P_project, P_rs_number, error_code) return the rate_structure index 27* search_sat_$sequential (P_first, P_project, P_rs_number, error_code) get the next entry in sat - first if P_first = "1"b 28* search_sat_$clean_up reset internal static variables 29**/ 30 31 /* Parameters */ 32 33 dcl P_code fixed bin (35); 34 dcl P_project_name char (*); 35 dcl P_first bit (1) aligned; 36 dcl P_rs_number fixed bin; 37 38 /* Automatic */ 39 40 dcl satep ptr; 41 dcl code fixed bin (35); 42 43 /* Internal static */ 44 45 dcl static_satx fixed bin internal static; /* index into sat projects */ 46 dcl satp internal static ptr init (null); /* pointer to SAT */ 47 dcl shtp internal static ptr init (null); /* pointer to SAT hash table */ 48 dcl no_hash bit (1) aligned internal static init ("0"b); /* on if we couldn't find the sat.ht */ 49 dcl no_sat bit (1) aligned internal static init ("0"b); /* on if we couldn't find the sat */ 50 51 /* External entries */ 52 53 dcl hash_$search entry (ptr, char (*), fixed bin, fixed bin (35)); 54 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin, fixed bin, ptr, fixed bin (35)); 55 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); /* file system */ 56 57 /* External static */ 58 59 dcl ( 60 error_table_$noentry, 61 error_table_$end_of_info 62 ) external fixed bin (35); 63 64 /* builtins and conditions */ 65 66 dcl no_write_permission condition; 67 68 dcl (addr, null) builtin; 69 70 /* =================================================== */ 71 72 rs_number: 73 entry (P_project_name, P_rs_number, P_code); /* This entry returns the rate index for the named project */ 74 75 if ^setup () then do; 76 P_rs_number = 0; 77 go to error_return; 78 end; 79 satep = find_project (P_project_name); 80 if satep = null then do; 81 P_rs_number = 0; 82 P_code = error_table_$noentry; 83 end; 84 else do; 85 P_rs_number = project.rs_number; 86 P_code = 0; 87 end; 88 return; 89 90 /* =================================================== */ 91 92 sequential: 93 entry (P_first, P_project_name, P_rs_number, P_code); /* This entry will search the sat sequentially */ 94 95 if ^setup () then do; 96 P_project_name = ""; 97 P_rs_number = 0; 98 go to error_return; 99 end; 100 if P_first then static_satx = 0; /* start at the beginning */ 101 102 next: 103 static_satx = static_satx + 1; 104 if static_satx > sat.current_size then do; /* all finished? */ 105 P_project_name = ""; 106 P_rs_number = 0; 107 P_code = error_table_$end_of_info; 108 return; 109 end; 110 satep = addr (sat.project (static_satx)); /* point to the project */ 111 if project.state = 0 then goto next; /* not a valid entry */ 112 113 P_project_name = project.project_id; 114 P_rs_number = project.rs_number; 115 P_code = 0; 116 return; 117 118 /* =================================================== */ 119 120 clean_up: 121 entry; /* This entry allows a process to clean up its KST */ 122 123 call hcs_$terminate_noname (satp, code); /* clean up */ 124 call hcs_$terminate_noname (shtp, code); /* clean up */ 125 satp, shtp = null; /* reset internal static */ 126 no_hash, no_sat = "0"b; 127 static_satx = 0; 128 return; 129 130 error_return: 131 if code ^= 0 then 132 P_code = code; 133 else P_code = error_table_$noentry; 134 return; 135 136 find_project: 137 proc (P_proj) returns (ptr); /* internal procedure to locate a project in the sat */ 138 139 dcl P_proj char (*); 140 dcl satx fixed bin; 141 142 if ^no_hash then do; /* i.e. there is a hash table */ 143 on no_write_permission 144 begin; 145 revert no_write_permission; 146 no_hash = "1"b; 147 goto sequential_search; /* too bad but them's the breaks */ 148 end; 149 call hash_$search (shtp, P_proj, satx, code);/* search the SAT hash table for project */ 150 revert no_write_permission; 151 if code = 0 then /* don't believe everything you're told */ 152 if addr (sat.project (satx)) -> project.state ^= 0 153 & addr (sat.project (satx)) -> project.project_id = P_proj then 154 return (addr (sat.project (satx))); 155 end; 156 157 sequential_search: 158 do satx = 1 to sat.current_size; 159 satep = addr (sat.project (satx)); /* point to a project */ 160 if project.state ^= 0 then /* is it not a hole? */ 161 if project.project_id = P_proj then return (addr (sat.project (satx))); 162 end; 163 return (null); /* couldn't find the project anywhere */ 164 165 end find_project; 166 167 168 setup: 169 proc returns (bit (1) aligned); /* initiates the sat and the sat hash table */ 170 171 code = 0; 172 if no_sat then return ("0"b); 173 if satp ^= null then return ("1"b); 174 call hcs_$initiate (">system_control_dir", "sat", "", 0, 0, satp, code); 175 if satp = null then do; 176 no_hash = "1"b; 177 no_sat = "1"b; 178 return ("0"b); 179 end; 180 call hcs_$initiate (">system_control_dir", "sat.ht", "", 0, 0, shtp, code); 181 if shtp = null then no_hash = "1"b; /* must search whole sat */ 182 return ("1"b); 183 184 end setup; 185 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 */ 186 187 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 */ 188 189 190 end search_sat_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0942.4 search_sat_.pl1 >special_ldd>install>MR12.2-1047>search_sat_.pl1 186 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 188 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. P_code parameter fixed bin(35,0) dcl 33 set ref 72 82* 86* 92 107* 115* 130* 133* P_first parameter bit(1) dcl 35 ref 92 100 P_proj parameter char packed unaligned dcl 139 set ref 136 149* 151 160 P_project_name parameter char packed unaligned dcl 34 set ref 72 79* 92 96* 105* 113* P_rs_number parameter fixed bin(17,0) dcl 36 set ref 72 76* 81* 85* 92 97* 106* 114* addr builtin function dcl 68 ref 110 151 151 151 159 160 code 000102 automatic fixed bin(35,0) dcl 41 set ref 123* 124* 130 130 149* 151 171* 174* 180* current_size 36 based fixed bin(17,0) level 2 dcl 1-32 ref 104 157 error_table_$end_of_info 000030 external static fixed bin(35,0) dcl 59 ref 107 error_table_$noentry 000026 external static fixed bin(35,0) dcl 59 ref 82 133 hash_$search 000020 constant entry external dcl 53 ref 149 hcs_$initiate 000022 constant entry external dcl 54 ref 174 180 hcs_$terminate_noname 000024 constant entry external dcl 55 ref 123 124 no_hash 000016 internal static bit(1) initial dcl 48 set ref 126* 142 146* 176* 181* no_sat 000017 internal static bit(1) initial dcl 49 set ref 126* 172 177* no_write_permission 000000 stack reference condition dcl 66 ref 143 145 150 null builtin function dcl 68 ref 80 125 163 173 175 181 project based structure level 1 dcl 1-53 in procedure "search_sat_" project 722 based structure array level 2 in structure "sat" dcl 1-32 in procedure "search_sat_" set ref 110 151 151 151 159 160 project_id 1 based char(12) level 2 packed packed unaligned dcl 1-53 ref 113 151 160 rs_number 115(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 1-53 ref 85 114 sat based structure level 1 dcl 1-32 satep 000100 automatic pointer dcl 40 set ref 79* 80 85 110* 111 113 114 159* 160 160 satp 000012 internal static pointer initial dcl 46 set ref 104 110 123* 125* 151 151 151 157 159 160 173 174* 175 satx 000100 automatic fixed bin(17,0) dcl 140 set ref 149* 151 151 151 157* 159 160* shtp 000014 internal static pointer initial dcl 47 set ref 124* 125* 149* 180* 181 state based fixed bin(17,0) level 2 dcl 1-53 ref 111 151 160 static_satx 000010 internal static fixed bin(17,0) dcl 45 set ref 100* 102* 102 104 110 127* user_attributes based structure level 1 dcl 3-21 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 SAT_version 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 user_abs_attributes based structure level 1 dcl 4-25 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 000244 constant entry external dcl 120 error_return 000303 constant label dcl 130 ref 77 98 find_project 000314 constant entry internal dcl 136 ref 79 next 000176 constant label dcl 102 ref 111 rs_number 000043 constant entry external dcl 72 search_sat_ 000031 constant entry external dcl 19 sequential 000132 constant entry external dcl 92 sequential_search 000430 constant label dcl 157 ref 147 setup 000474 constant entry internal dcl 168 ref 75 95 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1030 1062 674 1040 Length 1352 674 32 253 134 10 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME search_sat_ 140 external procedure is an external procedure. find_project 95 internal procedure enables or reverts conditions. on unit on line 143 70 on unit enables or reverts conditions. setup internal procedure shares stack frame of external procedure search_sat_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_satx search_sat_ 000012 satp search_sat_ 000014 shtp search_sat_ 000016 no_hash search_sat_ 000017 no_sat search_sat_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME find_project 000100 satx find_project search_sat_ 000100 satep search_sat_ 000102 code search_sat_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc return_mac tra_ext_1 enable_op ext_entry ext_entry_desc int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hash_$search hcs_$initiate hcs_$terminate_noname THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000030 21 000036 72 000037 75 000062 76 000067 77 000070 79 000071 80 000105 81 000111 82 000112 83 000115 85 000116 86 000123 88 000124 92 000125 95 000151 96 000156 97 000166 98 000167 100 000170 102 000176 104 000200 105 000204 106 000214 107 000215 108 000217 110 000220 111 000223 113 000225 114 000235 115 000241 116 000242 120 000243 123 000251 124 000262 125 000273 126 000277 127 000301 128 000302 130 000303 133 000307 134 000312 136 000313 142 000327 143 000331 145 000345 146 000346 147 000350 149 000353 150 000403 151 000404 157 000430 159 000441 160 000447 162 000466 163 000470 168 000474 171 000476 172 000477 173 000504 174 000513 175 000564 176 000571 177 000573 178 000574 180 000577 181 000650 182 000657 ----------------------------------------------------------- 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