COMPILATION LISTING OF SEGMENT asum_system_init_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1328.9 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-03-28,Swenson), approve(87-07-07,MCR7719), 12* audit(87-06-24,Hartogs), install(87-08-04,MR12.1-1055): 13* Fixed so that the Initializer process can use the UM facility. 14* END HISTORY COMMENTS */ 15 16 17 /* asum_system_init_.pl1 -- program called by the initializer 18* to set up as_user_messages */ 19 20 /* format: style5,indcomtxt */ 21 22 asum_system_init_: 23 procedure (P_error_code); /* Full complaint registered via syserr */ 24 25 /**** Created: 1985-02-01, BIM */ 26 27 declare P_error_code fixed bin (35); 28 29 declare asum_error_$log entry options (variable); 30 declare asum_create_segment_ entry (fixed binary, pointer); 31 declare asum_create_segment_$first 32 entry (pointer); 33 declare expand_pathname_ entry (character (*), character (*), 34 character (*), fixed binary (35)); 35 dcl get_process_id_ entry () returns (bit (36) aligned); 36 dcl get_lock_id_ entry () returns (bit (36) aligned); 37 declare get_system_free_area_ entry () returns (ptr); 38 declare hcs_$star_ entry (char (*), char (*), 39 fixed bin (2), ptr, fixed bin, ptr, ptr, 40 fixed bin (35)); 41 declare hcs_$status_minf entry (char (*), char (*), 42 fixed bin (1), fixed bin (2), 43 fixed bin (24), fixed bin (35)); 44 declare hcs_$create_branch_ entry (char (*), char (*), ptr, 45 fixed bin (35)); 46 declare hphcs_$delentry_file entry (char (*), char (*), 47 fixed bin (35)); 48 declare hphcs_$chname_file entry (char (*), char (*), char (*), 49 char (*), fixed bin (35)); 50 declare hcs_$replace_inacl entry (char (*), char (*), ptr, 51 fixed bin, bit (1), fixed bin (3), 52 fixed bin (35)); 53 declare pathname_ entry (character (*), character (*)) 54 returns (character (168)); 55 declare unique_chars_ entry (bit (*)) returns (char (15)); 56 57 declare code fixed bin (35); 58 59 declare error_table_$noentry fixed bin (35) ext static; 60 declare sys_info$time_of_bootload 61 fixed bin (71) ext; 62 63 dcl addr builtin; 64 dcl null builtin; 65 dcl sum builtin; 66 dcl unspec builtin; 67 1 1 /* Begin include file as_user_message_system.incl.pl1 BIM 1985-01-11 */ 1 2 /* format: style4 */ 1 3 1 4 /**** Per-system and per-user information on the as_user_message segments */ 1 5 1 6 /**** Declaration used to construct the name of one of the set of segments */ 1 7 1 8 declare 1 as_user_message_segment_name unaligned, 1 9 2 constant char (16), /* as_user_message_ */ 1 10 2 index picture "99"; 1 11 1 12 declare AS_USER_MESSAGE_SEGMENT_NAME_CONSTANT char (16) init ("as_user_message_") int static options (constant); 1 13 1 14 /**** as_user_messages (mis)-use the pad bits in a message segment 1 15* message ID to identify which of one of a series of segments 1 16* to find the message in. */ 1 17 1 18 declare 1 as_user_message_id aligned, /* use UNSPEC, not based (addr) */ 1 19 2 segment_index fixed bin (9) unsigned unaligned, 1 20 2 pad bit (11) unaligned, 1 21 2 pad_clock bit (52) unaligned; 1 22 1 23 /**** Data stored in the as_user_message_system segment. 1 24* This is the shared overhead database, including the 1 25* associative memory of messages and destination processes. */ 1 26 1 27 declare AS_USER_MESSAGE_SYSTEM_NAME char (32) init ("as_user_message_system") int static options (constant); 1 28 1 29 declare as_user_message_system_info_ptr pointer; 1 30 declare 1 as_user_message_system_info aligned based (as_user_message_system_info_ptr), 1 31 2 header aligned, 1 32 3 sentinel char (8) aligned, /* Version, but mostly validity check */ 1 33 3 time_of_bootload fixed bin (71), /* was this segment initialized in this bootload? */ 1 34 3 lock bit (36) aligned, /* on segment creation/deletion */ 1 35 3 n_segments fixed bin, /* total created */ 1 36 1 37 3 highest_in_use fixed bin (35), /* update with stacq */ 1 38 2 pad (9) bit (36) aligned, 1 39 2 destination_am (16000) aligned, /* each entry is 16 words. Listen UP, compiler */ 1 40 3 process_id bit (36) aligned, 1 41 3 ring fixed bin (3) unsigned unaligned, 1 42 3 reader_deletes bit (1) unaligned, 1 43 3 pad bit (32) unaligned, 1 44 3 handle bit (72) aligned, 1 45 3 message_id bit (72) aligned, 1 46 3 group_id char (32) unaligned, 1 47 3 access_class bit (72) aligned; 1 48 1 49 declare AS_USER_ANY_PROCESS_ID bit (36) aligned init ("777777777777"b3) int static options (constant); 1 50 1 51 1 52 /**** + To look for a message, do the following: 1 53* initialize the message_id to 72 1's. 1 54* loop on the process_id_list, setting px as index; 1 55* if the process_id (px) is ANY_PROCESS_ID or the target process id then do; 1 56* if handle_list (px) is the desired handle then do; 1 57* if the process_id match was exact then 1 58* message_id = min (message_id, message_id (px)); 1 59* otherwise do; 1 60* read out the mesage for message_id (px), 1 61* determine if it is really for target_process. If so, 1 62* message_id = min (message_id, message_id (px)); 1 63* end; 1 64* end; 1 65* end; 1 66* 1 67* If message_id = 72 1's, then there is no message destined for this handle 1 68* for this process. 1 69* 1 70* Otherwise, message_id is the id of the first message for this handle. 1 71**/ 1 72 1 73 declare AS_USER_MESSAGE_SYSTEM_SENTINEL char (8) aligned init ("asumsys1") int static options (constant); 1 74 1 75 /**** Data for each user process */ 1 76 1 77 /**** *system variable to find this stuff with */ 1 78 1 79 declare as_user_message_perprocess_info_ptr pointer; 1 80 1 81 declare 1 as_user_message_perprocess_info aligned based (as_user_message_perprocess_info_ptr), 1 82 2 sentinel char (8) aligned, 1 83 2 mseg_ptr (0:99) pointer options (packed); /* for mseg_ */ 1 84 1 85 declare AS_USER_MESSAGE_PROCESS_SENTINEL char (8) aligned init ("asumprc1") int static options (constant); 1 86 1 87 /* End include file as_user_message_system.incl.pl1 */ 68 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 2 4* * * 2 5* *********************************************************** */ 2 6 /* Begin include file asum_data_.incl.pl1 */ 2 7 /* Definitions in asum_data_ (as_user_message_data_) BIM 1985-01-17 */ 2 8 /* format: style3 */ 2 9 2 10 declare asum_data_$acl_entries 2 11 bit (36) aligned ext; /* base acl array here */ 2 12 declare asum_data_$db_dir char (168) ext; 2 13 declare asum_data_$db_multiclass 2 14 bit (1) aligned ext; 2 15 declare asum_data_$n_acl_entries 2 16 fixed bin ext; 2 17 declare asum_data_$db_cbi bit (36) aligned ext; /* No need to declare the whole structure here */ 2 18 declare asum_data_$db_dir_cbi 2 19 bit (36) aligned ext; /* No need to declare the whole structure here */ 2 20 declare asum_data_$db_dir_rb 2 21 (2) fixed bin (3) ext; 2 22 declare asum_data_$db_rb (3) fixed bin (3) ext; 2 23 declare asum_data_$db_locked 2 24 bit (1) aligned ext; 2 25 declare asum_data_$process_info_ptr 2 26 pointer static ext; 2 27 declare asum_data_$system_info_ptr 2 28 pointer static ext; 2 29 declare asum_data_$entry_ring 2 30 fixed bin (3) static ext; 2 31 declare asum_data_$lock_id bit (36) aligned ext; 2 32 declare asum_data_$process_id 2 33 bit (36) aligned ext; 2 34 2 35 /* End include file asum_data_.incl.pl1 */ 69 70 71 72 P_error_code = 0; 73 call find_or_create_db_dir; 74 call clean_out_db_dir; 75 call initialize_first_segment; 76 return; 77 78 ERROR: 79 P_error_code = -1; 80 return; 81 82 83 find_or_create_db_dir: 84 procedure; 85 86 declare type fixed bin (2); 87 88 call hcs_$status_minf (asum_data_$db_dir, "", (0), type, (0), code); 89 if code = error_table_$noentry then 90 call create_db_dir; 91 else if code ^= 0 then 92 do; 93 call remove_old_entry; 94 call create_db_dir; 95 end; 96 else if type ^= 2 /* Directory */ 97 then 98 do; 99 call rename_old_entry; 100 call create_db_dir; 101 end; 102 103 return; 104 105 remove_old_entry: 106 procedure; 107 108 call asum_error_$log (0, "asum_system_init_", 109 "Cannot get status of ^a. It will be deleted.", asum_data_$db_dir); 110 call hphcs_$delentry_file (asum_data_$db_dir, "", code); 111 if code ^= 0 then 112 do; 113 call asum_error_$log (code, "asum_system_init_", 114 "Failed to delete old db_dir ^a", asum_data_$db_dir); 115 go to ERROR; 116 end; 117 118 return; 119 120 end remove_old_entry; 121 122 rename_old_entry: 123 procedure; 124 125 declare shriek char (15); 126 declare entryname char (32); 127 128 shriek = unique_chars_ (""b); 129 call expand_pathname_ (asum_data_$db_dir, (""), entryname, (0)); 130 call asum_error_$log (0, "asum_system_init_", 131 "^a is not a directory. It will be renamed to ^a.", 132 asum_data_$db_dir, shriek); 133 call hphcs_$chname_file (asum_data_$db_dir, "", entryname, shriek, code) 134 ; 135 if code ^= 0 then 136 do; 137 call asum_error_$log (code, "asum_system_init_", 138 "Failed to rename ", asum_data_$db_dir); 139 go to ERROR; 140 end; 141 return; 142 end rename_old_entry; 143 144 create_db_dir: 145 procedure; 146 147 148 declare dir_name char (168); 149 declare entryname char (32); 150 151 call asum_error_$log (0, "asum_system_init_", "Creating directory ^a", 152 asum_data_$db_dir); 153 call expand_pathname_ (asum_data_$db_dir, dir_name, entryname, (0)); 154 call hcs_$create_branch_ (dir_name, entryname, 155 addr (asum_data_$db_dir_cbi), code); 156 if code ^= 0 then 157 do; 158 call asum_error_$log (code, "asum_system_init_", 159 "Failed to create ^a", asum_data_$db_dir); 160 go to ERROR; 161 end; 162 call hcs_$replace_inacl (asum_data_$db_dir, "", 163 addr (asum_data_$acl_entries), asum_data_$n_acl_entries, "1"b, 164 (asum_data_$db_rb (1)), code); 165 if code ^= 0 then 166 do; 167 call asum_error_$log (code, "asum_system_init_", 168 "Failed to set inital acl of ^a", asum_data_$db_dir); 169 go to ERROR; 170 end; 171 return; 172 end create_db_dir; 173 end find_or_create_db_dir; 174 175 176 clean_out_db_dir: 177 procedure; 178 179 declare sx fixed bin; 180 181 call hcs_$star_ (asum_data_$db_dir, "**", star_ALL_ENTRIES, 182 get_system_free_area_ (), star_entry_count, star_entry_ptr, 183 star_names_ptr, code); 184 185 if code ^= 0 then 186 return; 187 188 do sx = 1 to star_entry_count; 189 call hphcs_$delentry_file (asum_data_$db_dir, 190 star_names (star_entries (sx).nindex), code); 191 if code ^= 0 then 192 call asum_error_$log (code, "asum_system_init_", 193 "Failed to delete ^a", 194 pathname_ (asum_data_$db_dir, 195 star_names (star_entries (sx).nindex))); 196 end; 197 free star_names; 198 free star_entries; 199 return; 200 201 3 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 3 2 3 3 /* This include file contains structures for the hcs_$star_, 3 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 3 5* 3 6* Written 23 October 1978 by Monte Davidoff. 3 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 3 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 3 9**/ 3 10 3 11 /* automatic */ 3 12 3 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 3 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 3 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 3 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 3 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 3 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 3 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 3 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 3 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 3 22 3 23 /* based */ 3 24 3 25 /* hcs_$star_ entry structure */ 3 26 3 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 3 28 2 type fixed binary (2) unsigned unaligned, 3 29 /* storage system type */ 3 30 2 nnames fixed binary (16) unsigned unaligned, 3 31 /* number of names of entry that match star_name */ 3 32 2 nindex fixed binary (18) unsigned unaligned; 3 33 /* index of first name in star_names */ 3 34 3 35 /* hcs_$star_ name structure */ 3 36 3 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 3 38 3 39 /* hcs_$star_list_ branch structure */ 3 40 3 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 42 2 type fixed binary (2) unsigned unaligned, 3 43 /* storage system type */ 3 44 2 nnames fixed binary (16) unsigned unaligned, 3 45 /* number of names of entry that match star_name */ 3 46 2 nindex fixed binary (18) unsigned unaligned, 3 47 /* index of first name in star_list_names */ 3 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 3 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 3 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 53 2 pad bit (7) unaligned, 3 54 2 records fixed binary (18) unsigned unaligned; 3 55 /* records used by branch */ 3 56 3 57 /* hcs_$star_dir_list_ branch structure */ 3 58 3 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 60 2 type fixed binary (2) unsigned unaligned, 3 61 /* storage system type */ 3 62 2 nnames fixed binary (16) unsigned unaligned, 3 63 /* number of names of entry that match star_name */ 3 64 2 nindex fixed binary (18) unsigned unaligned, 3 65 /* index of first name in star_list_names */ 3 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 3 67 2 pad bit (36) unaligned, 3 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 71 2 bit_count fixed binary (24) unaligned; 3 72 /* bit count of the branch */ 3 73 3 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 3 75 3 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 77 2 type fixed binary (2) unsigned unaligned, 3 78 /* storage system type */ 3 79 2 nnames fixed binary (16) unsigned unaligned, 3 80 /* number of names of entry that match star_name */ 3 81 2 nindex fixed binary (18) unsigned unaligned, 3 82 /* index of first name in star_list_names */ 3 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 3 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 3 85 2 pathname_len fixed binary (18) unsigned unaligned, 3 86 /* length of the pathname of the link */ 3 87 2 pathname_index fixed binary (18) unsigned unaligned; 3 88 /* index of start of pathname in star_list_names */ 3 89 3 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 3 91 3 92 declare star_list_names char (32) based (star_list_names_ptr) 3 93 dimension (star_links (star_branch_count + star_link_count).nindex 3 94 + star_links (star_branch_count + star_link_count).nnames 3 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 3 96 * binary ( 3 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 3 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 3 99 3 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 3 101 3 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 3 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 3 104 3 105 /* internal static */ 3 106 3 107 /* star_select_sw values */ 3 108 3 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 3 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 3 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 3 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 3 113 fixed binary (3) internal static options (constant) initial (5); 3 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 3 115 fixed binary (3) internal static options (constant) initial (7); 3 116 3 117 /* storage system types */ 3 118 3 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 3 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 3 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 3 122 3 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 202 203 204 end clean_out_db_dir; 205 206 207 initialize_first_segment: 208 procedure; 209 210 declare first_segment_ptr pointer; 211 declare sys_area area based (get_system_free_area_ ()); 212 213 allocate as_user_message_perprocess_info in (sys_area); 214 asum_data_$process_info_ptr = as_user_message_perprocess_info_ptr; 215 216 /**** Be sure to set these values, or else the process which calls this 217* entry will never be able to use the ASUM facility itself. */ 218 219 asum_data_$process_id = get_process_id_ (); 220 asum_data_$lock_id = get_lock_id_ (); 221 222 as_user_message_perprocess_info.sentinel = 223 AS_USER_MESSAGE_PROCESS_SENTINEL; 224 as_user_message_perprocess_info.mseg_ptr (*) = null (); 225 226 call asum_create_segment_$first (first_segment_ptr); 227 as_user_message_system_info_ptr = first_segment_ptr; 228 asum_data_$system_info_ptr = first_segment_ptr; 229 230 as_user_message_system_info.sentinel = AS_USER_MESSAGE_SYSTEM_SENTINEL; 231 as_user_message_system_info.time_of_bootload = 232 sys_info$time_of_bootload; 233 as_user_message_system_info.lock = ""b; 234 as_user_message_system_info.n_segments = 1; 235 as_user_message_system_info.highest_in_use = 0; 236 unspec (as_user_message_system_info.destination_am) = ""b; 237 238 call asum_create_segment_ (0, first_segment_ptr); 239 as_user_message_perprocess_info.mseg_ptr (0) = first_segment_ptr; 240 return; 241 end initialize_first_segment; 242 end asum_system_init_; 243 244 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.6 asum_system_init_.pl1 >special_ldd>install>MR12.1-1054>asum_system_init_.pl1 68 1 03/08/85 0852.5 as_user_message_system.incl.pl1 >ldd>include>as_user_message_system.incl.pl1 69 2 03/19/85 1613.7 asum_data_.incl.pl1 >ldd>include>asum_data_.incl.pl1 202 3 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.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. AS_USER_MESSAGE_PROCESS_SENTINEL 000002 constant char(8) initial dcl 1-85 ref 222 AS_USER_MESSAGE_SYSTEM_SENTINEL 000004 constant char(8) initial dcl 1-73 ref 230 P_error_code parameter fixed bin(35,0) dcl 27 set ref 22 72* 78* addr builtin function dcl 63 ref 154 154 162 162 as_user_message_perprocess_info based structure level 1 dcl 1-81 set ref 213 as_user_message_perprocess_info_ptr 000104 automatic pointer dcl 1-79 set ref 213* 214 222 224 239 as_user_message_system_info based structure level 1 dcl 1-30 as_user_message_system_info_ptr 000102 automatic pointer dcl 1-29 set ref 227* 230 231 233 234 235 236 asum_create_segment_ 000012 constant entry external dcl 30 ref 238 asum_create_segment_$first 000014 constant entry external dcl 31 ref 226 asum_data_$acl_entries 000052 external static bit(36) dcl 2-10 set ref 162 162 asum_data_$db_dir 000054 external static char(168) unaligned dcl 2-12 set ref 88* 108* 110* 113* 129* 130* 133* 137* 151* 153* 158* 162* 167* 181* 189* 191* 191* asum_data_$db_dir_cbi 000060 external static bit(36) dcl 2-18 set ref 154 154 asum_data_$db_rb 000062 external static fixed bin(3,0) array dcl 2-22 ref 162 asum_data_$lock_id 000070 external static bit(36) dcl 2-31 set ref 220* asum_data_$n_acl_entries 000056 external static fixed bin(17,0) dcl 2-15 set ref 162* asum_data_$process_id 000072 external static bit(36) dcl 2-32 set ref 219* asum_data_$process_info_ptr 000064 external static pointer dcl 2-25 set ref 214* asum_data_$system_info_ptr 000066 external static pointer dcl 2-27 set ref 228* asum_error_$log 000010 constant entry external dcl 29 ref 108 113 130 137 151 158 167 191 code 000100 automatic fixed bin(35,0) dcl 57 set ref 88* 89 91 110* 111 113* 133* 135 137* 154* 156 158* 162* 165 167* 181* 185 189* 191 191* destination_am 20 based structure array level 2 dcl 1-30 set ref 236* dir_name 000154 automatic char(168) unaligned dcl 148 set ref 153* 154* entryname 000226 automatic char(32) unaligned dcl 149 in procedure "create_db_dir" set ref 153* 154* entryname 000136 automatic char(32) unaligned dcl 126 in procedure "rename_old_entry" set ref 129* 133* error_table_$noentry 000046 external static fixed bin(35,0) dcl 59 ref 89 expand_pathname_ 000016 constant entry external dcl 33 ref 129 153 first_segment_ptr 000264 automatic pointer dcl 210 set ref 226* 227 228 238* 239 get_lock_id_ 000022 constant entry external dcl 36 ref 220 get_process_id_ 000020 constant entry external dcl 35 ref 219 get_system_free_area_ 000024 constant entry external dcl 37 ref 181 181 213 hcs_$create_branch_ 000032 constant entry external dcl 44 ref 154 hcs_$replace_inacl 000040 constant entry external dcl 50 ref 162 hcs_$star_ 000026 constant entry external dcl 38 ref 181 hcs_$status_minf 000030 constant entry external dcl 41 ref 88 header based structure level 2 dcl 1-30 highest_in_use 6 based fixed bin(35,0) level 3 dcl 1-30 set ref 235* hphcs_$chname_file 000036 constant entry external dcl 48 ref 133 hphcs_$delentry_file 000034 constant entry external dcl 46 ref 110 189 lock 4 based bit(36) level 3 dcl 1-30 set ref 233* mseg_ptr 2 based pointer array level 2 dcl 1-81 set ref 224* 239* n_segments 5 based fixed bin(17,0) level 3 dcl 1-30 set ref 234* nindex 0(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 3-27 ref 189 191 191 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 3-27 ref 197 null builtin function dcl 64 ref 224 pathname_ 000042 constant entry external dcl 53 ref 191 191 sentinel based char(8) level 2 in structure "as_user_message_perprocess_info" dcl 1-81 in procedure "asum_system_init_" set ref 222* sentinel based char(8) level 3 in structure "as_user_message_system_info" dcl 1-30 in procedure "asum_system_init_" set ref 230* shriek 000132 automatic char(15) unaligned dcl 125 set ref 128* 130* 133* star_ALL_ENTRIES 000000 constant fixed bin(2,0) initial dcl 3-111 set ref 181* star_entries based structure array level 1 dcl 3-27 ref 198 star_entry_count 000245 automatic fixed bin(17,0) dcl 3-14 set ref 181* 188 197 198 star_entry_ptr 000246 automatic pointer dcl 3-15 set ref 181* 189 191 191 197 198 star_names based char(32) array unaligned dcl 3-37 set ref 189* 191* 191* 197 star_names_ptr 000250 automatic pointer dcl 3-19 set ref 181* 189 191 191 197 sum builtin function dcl 65 ref 197 sx 000244 automatic fixed bin(17,0) dcl 179 set ref 188* 189 191 191* sys_area based area(1024) dcl 211 ref 213 sys_info$time_of_bootload 000050 external static fixed bin(71,0) dcl 60 ref 231 time_of_bootload 2 based fixed bin(71,0) level 3 dcl 1-30 set ref 231* type 000114 automatic fixed bin(2,0) dcl 86 set ref 88* 96 unique_chars_ 000044 constant entry external dcl 55 ref 128 unspec builtin function dcl 66 set ref 236* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AS_USER_ANY_PROCESS_ID internal static bit(36) initial dcl 1-49 AS_USER_MESSAGE_SEGMENT_NAME_CONSTANT internal static char(16) initial unaligned dcl 1-12 AS_USER_MESSAGE_SYSTEM_NAME internal static char(32) initial unaligned dcl 1-27 as_user_message_id automatic structure level 1 dcl 1-18 as_user_message_segment_name automatic structure level 1 packed unaligned dcl 1-8 asum_data_$db_cbi external static bit(36) dcl 2-17 asum_data_$db_dir_rb external static fixed bin(3,0) array dcl 2-20 asum_data_$db_locked external static bit(1) dcl 2-23 asum_data_$db_multiclass external static bit(1) dcl 2-13 asum_data_$entry_ring external static fixed bin(3,0) dcl 2-29 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 3-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 3-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 3-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 3-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 3-120 star_branch_count automatic fixed bin(17,0) dcl 3-13 star_dir_list_branch based structure array level 1 dcl 3-59 star_link_count automatic fixed bin(17,0) dcl 3-17 star_link_pathname based char unaligned dcl 3-102 star_links based structure array level 1 dcl 3-76 star_linkx automatic fixed bin(17,0) dcl 3-18 star_list_branch based structure array level 1 dcl 3-41 star_list_branch_ptr automatic pointer dcl 3-16 star_list_names based char(32) array unaligned dcl 3-92 star_list_names_ptr automatic pointer dcl 3-20 star_select_sw automatic fixed bin(3,0) dcl 3-21 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 000161 constant label dcl 78 ref 115 139 160 169 asum_system_init_ 000146 constant entry external dcl 22 clean_out_db_dir 001041 constant entry internal dcl 176 ref 74 create_db_dir 000561 constant entry internal dcl 144 ref 89 94 100 find_or_create_db_dir 000165 constant entry internal dcl 83 ref 73 initialize_first_segment 001305 constant entry internal dcl 207 ref 75 remove_old_entry 000246 constant entry internal dcl 105 ref 93 rename_old_entry 000363 constant entry internal dcl 122 ref 99 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1750 2044 1430 1760 Length 2350 1430 74 267 317 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME asum_system_init_ 502 external procedure is an external procedure. find_or_create_db_dir internal procedure shares stack frame of external procedure asum_system_init_. remove_old_entry internal procedure shares stack frame of external procedure asum_system_init_. rename_old_entry internal procedure shares stack frame of external procedure asum_system_init_. create_db_dir internal procedure shares stack frame of external procedure asum_system_init_. clean_out_db_dir internal procedure shares stack frame of external procedure asum_system_init_. initialize_first_segment internal procedure shares stack frame of external procedure asum_system_init_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME asum_system_init_ 000100 code asum_system_init_ 000102 as_user_message_system_info_ptr asum_system_init_ 000104 as_user_message_perprocess_info_ptr asum_system_init_ 000114 type find_or_create_db_dir 000132 shriek rename_old_entry 000136 entryname rename_old_entry 000154 dir_name create_db_dir 000226 entryname create_db_dir 000244 sx clean_out_db_dir 000245 star_entry_count clean_out_db_dir 000246 star_entry_ptr clean_out_db_dir 000250 star_names_ptr clean_out_db_dir 000264 first_segment_ptr initialize_first_segment THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac mpfx2 ext_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. asum_create_segment_ asum_create_segment_$first asum_error_$log expand_pathname_ get_lock_id_ get_process_id_ get_system_free_area_ hcs_$create_branch_ hcs_$replace_inacl hcs_$star_ hcs_$status_minf hphcs_$chname_file hphcs_$delentry_file pathname_ unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. asum_data_$acl_entries asum_data_$db_dir asum_data_$db_dir_cbi asum_data_$db_rb asum_data_$lock_id asum_data_$n_acl_entries asum_data_$process_id asum_data_$process_info_ptr asum_data_$system_info_ptr error_table_$noentry sys_info$time_of_bootload LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000143 72 000153 73 000155 74 000156 75 000157 76 000160 78 000161 80 000164 83 000165 88 000166 89 000225 91 000233 93 000235 94 000236 95 000237 96 000240 99 000243 100 000244 103 000245 105 000246 108 000247 110 000303 111 000324 113 000326 115 000361 118 000362 122 000363 128 000364 129 000401 130 000427 133 000467 135 000520 137 000522 139 000557 141 000560 144 000561 151 000562 153 000621 154 000646 156 000675 158 000677 160 000732 162 000733 165 001002 167 001004 169 001037 171 001040 176 001041 181 001042 185 001116 188 001121 189 001131 191 001162 196 001252 197 001254 198 001302 199 001304 207 001305 213 001306 214 001322 219 001324 220 001332 222 001341 224 001345 226 001360 227 001367 228 001371 230 001373 231 001377 233 001401 234 001402 235 001404 236 001405 238 001411 239 001422 240 001425 ----------------------------------------------------------- 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