COMPILATION LISTING OF SEGMENT fm_open_by_uid_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-05-05_1832.51_Fri_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-02-27,Pierret), approve(86-02-27,MCR7340), 11* audit(86-04-28,Newcomb), install(86-05-06,MR12.0-1054): 12* Changed to not log a message when attempting to open a file which does not 13* exist. 14* END HISTORY COMMENTS */ 15 16 17 /* DESCRIPTION: 18* 19* This module opens a file given a file uid. The pathname of the 20* file is obtained by searching the System Pathname Table (sys_pn_tbl) 21* for an entry with the specified file uid. That pathname is then used to 22* open the file in the usual fashion by calling fm_create_open_$open. 23* 24* There are two entries to this module which differ slightly in the 25* manner they use the sys_pn_tbl. fm_open_by_uid_$open locks the 26* sys_pn_tbl while using it. fm_open_by_uid$open_after_crash is executed 27* in the Data_Management daemon process during crash recovery. At this time 28* no other process can access the sys_pn_tbl, so locking is unnecessary. 29* 30* There are also two entries which are used in setting up and 31* eliminating the sys_pn_tbl of a previous Data Management system. 32* This is the table used by open_after_crash. 33* find_old_uid_pn_table initiates the old sys_pn_tbl. 34* end_of_crash_recovery terminates it. 35**/ 36 37 /* HISTORY: 38*Written by Matthew Pierret, 11/07/84. 39* (Copied from fm_combos_, written by Jeffrey Ives.) 40*Modified: 41*12/10/84 by Matthew Pierret: Added declaration of char builtin, corrected 42* initial value of TRUE, and changed to not read p_code in the 43* ERROR_RETURN procedure. 44*01/11/85 by Matthew Pierret: Corrected calling sequence of dm_log_ call 45* in LOG_ERROR_RETURN. Also made LOG_ERROR_RETURN options(variable) 46* removing the need for the ERROR_MESSAGE function. 47*01/28/85 by Matthew Pierret: Made LOG_ERROR_RETURN call ERROR_RETURN so 48* that it actually returns from the main procedure. 49*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 50*05/03/85 by Matthew C. Pierret: Changed to not log an error message if the 51* file does not exist. 52**/ 53 54 /* format: style2,ind3,ll79,^indnoniterdo,indnoniterend */ 55 56 fm_open_by_uid_$open: 57 procedure (p_file_uid, p_file_oid, p_code); 58 59 /* START OF DECLARATIONS */ 60 61 /* Parameter */ 62 63 dcl p_dir_path char (168) parameter; 64 dcl p_file_uid bit (36) aligned parameter; 65 dcl p_file_oid bit (36) aligned parameter; 66 dcl p_code fixed bin (35) parameter; 67 68 /* Automatic */ 69 70 dcl code fixed bin (35); 71 dcl dir_path char (168); 72 dcl file_dir char (168); 73 dcl file_name char (32); 74 dcl file_path char (168); 75 dcl file_uid bit (36) aligned; 76 dcl must_lock_sys_pn_tbl bit (1) aligned; 77 dcl my_file_oid bit (36) aligned; 78 dcl saved_validation_level fixed bin init (-1); 79 dcl sys_pn_tbl_ptr ptr; 80 81 /* Based */ 82 83 /* Builtin */ 84 85 dcl (addr, length, min, null, substr) 86 builtin; 87 88 /* Condition */ 89 90 dcl cleanup condition; 91 92 /* Constant */ 93 94 dcl ( 95 MYNAME init ("fm_open_by_uid_") char (32) 96 varying, 97 FALSE init ("0"b) bit (1) aligned, 98 TRUE init ("1"b) bit (1) aligned, 99 NO_ERROR_ARG_1 init (""b) bit (36) aligned, 100 NO_ERROR_ARG_2 init ("") char (1), 101 NO_ERROR_ARG_3 init (""b) bit (36) aligned, 102 NO_ERROR_ARG_4 init ("") char (1) 103 ) internal static options (constant); 104 105 /* Entry */ 106 107 dcl cu_$arg_list_ptr entry (ptr); 108 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), 109 fixed bin (35), ptr); 110 dcl cu_$level_get entry (fixed bin); 111 dcl cu_$level_set entry (fixed bin); 112 dcl dm_misc_util_$log entry options (variable); 113 dcl expand_pathname_ entry (char (*), char (*), char (*), 114 fixed bin (35)); 115 dcl fm_create_open_$open entry (char (*), char (*), 116 bit (36) aligned, fixed bin (35)); 117 dcl fm_delete_close_$close entry (bit (36) aligned, fixed bin (35)); 118 dcl fm_sys_pn_tbl_util_$get_path 119 entry (ptr, bit (1) aligned, 120 bit (36) aligned, char (168)); 121 dcl get_ring_ entry () returns (fixed bin (3)); 122 dcl hcs_$initiate entry (char (*), char (*), char (*), 123 fixed bin (1), fixed bin (2), ptr, 124 fixed bin (35)); 125 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 126 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, 127 char (*), fixed bin (21), bit (1) aligned, 128 bit (1) aligned); 129 130 /* External */ 131 132 dcl fm_data_$old_sys_pn_tbl_ptr 133 ptr ext; 134 dcl dm_error_$file_uid_arg_null 135 fixed bin (35) ext; 136 dcl dm_error_$file_uid_not_found 137 fixed bin (35) ext; 138 dcl dm_error_$fm_old_uidpn_ptr_null 139 fixed bin (35) ext; 140 dcl dm_error_$fm_uid_fnd_wrong_file 141 fixed bin (35) ext; 142 dcl error_table_$noentry fixed bin (35) ext; 143 144 /* END OF DECLARATIONS */ 145 146 /* open: entry (p_file_uid, p_file_oid, p_code); */ 147 148 must_lock_sys_pn_tbl = TRUE; 149 sys_pn_tbl_ptr = fm_data_$sys_pn_tbl_ptr; 150 151 go to JOIN; 152 153 154 open_after_crash: 155 entry (p_file_uid, p_file_oid, p_code); 156 157 must_lock_sys_pn_tbl = FALSE; 158 sys_pn_tbl_ptr = fm_data_$old_sys_pn_tbl_ptr; 159 160 if sys_pn_tbl_ptr = null 161 then call LOG_ERROR_RETURN (dm_error_$fm_old_uidpn_ptr_null, ""); 162 163 go to JOIN; 164 165 JOIN: 166 p_code, code = 0; 167 p_file_oid, my_file_oid = ""b; 168 file_uid = p_file_uid; 169 170 if file_uid = ""b 171 then call ERROR_RETURN (dm_error_$file_uid_arg_null); 172 173 call fm_sys_pn_tbl_util_$get_path (sys_pn_tbl_ptr, must_lock_sys_pn_tbl, 174 file_uid, file_path); 175 176 if file_path = "" 177 then call LOG_ERROR_RETURN (dm_error_$file_uid_not_found, 178 " Could not open file with uid ^w.", file_uid); 179 180 call expand_pathname_ (file_path, file_dir, file_name, code); 181 if code ^= 0 182 then call LOG_ERROR_RETURN (code, 183 " Could not expand pathname ^a, the path in ^a for file with uid ^w.", 184 file_path, fm_data_$sys_pn_tbl_name, file_uid); 185 186 my_file_oid = ""b; 187 188 on cleanup call FINISH (); 189 190 call fm_create_open_$open (file_dir, file_name, my_file_oid, code); 191 if my_file_oid = ""b 192 then if code = error_table_$noentry 193 then call ERROR_RETURN (code); 194 else call LOG_ERROR_RETURN (code, 195 " Unable to open file ^a, found in ^a with uid ^w.", 196 file_path, fm_data_$sys_pn_tbl_name, file_uid); 197 else p_code = code; 198 199 if file_uid 200 ^= file_access_table 201 .e (addr (my_file_oid) -> file_oid.file_access_table_idx).uid 202 then call LOG_ERROR_RETURN (dm_error_$fm_uid_fnd_wrong_file, 203 " The file with uid ^w is ^a, but it has a uid of ^w in ^a.", 204 file_access_table 205 .e (addr (my_file_oid) -> file_oid.file_access_table_idx).uid, 206 file_path, file_uid, fm_data_$sys_pn_tbl_name); 207 208 p_file_oid = my_file_oid; 209 210 MAIN_RETURN: 211 return; 212 213 ERROR_RETURN: 214 proc (er_p_code); 215 216 dcl er_p_code fixed bin (35) parameter; 217 218 p_code = er_p_code; 219 call FINISH (); 220 go to MAIN_RETURN; 221 222 end ERROR_RETURN; 223 224 LOG_ERROR_RETURN: 225 proc options (variable); 226 227 dcl ler_arg_list_ptr ptr; 228 dcl ler_code fixed bin (35) based (ler_code_ptr); 229 dcl ler_code_ptr ptr; 230 dcl ler_code_len fixed bin (21); 231 dcl ler_message_len fixed bin (21); 232 dcl ler_message_buffer char (1024); 233 dcl (DONT_PAD, NO_NEW_LINE) 234 init ("0"b) bit (1) aligned; 235 236 call cu_$arg_list_ptr (ler_arg_list_ptr); 237 call cu_$arg_ptr_rel (1, ler_code_ptr, ler_code_len, (0), 238 ler_arg_list_ptr); 239 240 call ioa_$general_rs (ler_arg_list_ptr, 2, 3, ler_message_buffer, 241 ler_message_len, DONT_PAD, NO_NEW_LINE); 242 call dm_misc_util_$log (LOG_SV, ler_code, MYNAME, 243 substr (ler_message_buffer, 1, 244 min (length (ler_message_buffer), ler_message_len))); 245 call ERROR_RETURN (ler_code); 246 247 end LOG_ERROR_RETURN; 248 249 FINISH: 250 proc (); 251 252 if my_file_oid ^= ""b 253 then call fm_delete_close_$close (my_file_oid, (0)); 254 255 end FINISH; 256 257 258 /* DESCRIPTION OF find_old_uid_pn_table 259* 260* This entry point is called at the beginning of crash recovery in 261* order to set a pointer to the old uid/pathname table so that 262* open_by_uid_after_crash can be called by rollback. 263**/ 264 265 find_old_uid_pn_table: 266 entry (p_dir_path, p_code); 267 268 dir_path = p_dir_path; 269 my_file_oid = ""b; 270 p_code, code = 0; 271 272 call cu_$level_get (saved_validation_level); 273 on cleanup call cu_$level_set (saved_validation_level); 274 call cu_$level_set (get_ring_ ()); 275 276 call hcs_$initiate (dir_path, fm_data_$sys_pn_tbl_name, "", 0, 0, 277 fm_data_$old_sys_pn_tbl_ptr, code); 278 279 call cu_$level_set (saved_validation_level); 280 281 if fm_data_$old_sys_pn_tbl_ptr = null () 282 then call LOG_ERROR_RETURN (code, " Unable to initiate ^a>^a.", dir_path, 283 fm_data_$sys_pn_tbl_name); 284 285 return; 286 287 /* DESCRIPTION OF end_of_crash_recovery : 288* 289* This entry point is called after all rollbacks are complete. It 290* terminates the pointer to the old uid/pathname table so that it can be 291* deleted. 292**/ 293 294 end_of_crash_recovery: 295 entry (p_code); 296 297 p_code, code = 0; 298 my_file_oid = ""b; 299 300 if fm_data_$old_sys_pn_tbl_ptr = null () 301 then call LOG_ERROR_RETURN (dm_error_$fm_old_uidpn_ptr_null, ""); 302 303 call cu_$level_get (saved_validation_level); 304 on cleanup call cu_$level_set (saved_validation_level); 305 call cu_$level_set (get_ring_ ()); 306 307 call hcs_$terminate_noname (fm_data_$old_sys_pn_tbl_ptr, code); 308 309 call cu_$level_set (saved_validation_level); 310 311 if code ^= 0 312 then call LOG_ERROR_RETURN (code, 313 " Unable to terminate ^a with pointer ^p.", 314 fm_data_$sys_pn_tbl_name, fm_data_$old_sys_pn_tbl_ptr); 315 316 return; 317 1 1 /* BEGIN INCLUDE FILE: dm_fm_file_oid.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* This include file contains the file_oid (file opening identifier) 1 5* structure. File opening ids are passed across the file_manager_ 1 6* interface as bit(36)aligned strings. The file_oid structure defines 1 7* the contents of the string. Two components make up a file opening id: 1 8* the index of the file opening in the file_access_table structure, which 1 9* contains per-process information on each file which is open, and the 1 10* last 18 bits of the file's unique id, used for verification of the entry 1 11* in the file_access_table. 1 12**/ 1 13 1 14 /* 1 15*HISTORY: 1 16*Written by Matthew Pierret, 07/16/84. 1 17*Modified: 1 18*11/02/84 by Matthew Pierret: Made file_oid based. 1 19**/ 1 20 1 21 /* format: style2,ind3 */ 1 22 1 23 dcl 1 file_oid aligned based, 1 24 2 file_access_table_idx 1 25 fixed bin (17) unal, /* index into file_access_table */ 1 26 2 uid_tail bit (18) unal; /* Last 18 bits of file unique id */ 1 27 1 28 1 29 /* END INCLUDE FILE: dm_fm_file_oid.incl.pl1 */ 318 319 2 1 /* BEGIN INCLUDE FILE: dm_fm_file_access_info.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* The file_access_info structure contains per-process information 2 5* about a DM file. Each file_access_info structure is one entry in 2 6* the file_access_table.e array. The entry can be in one of three states: 2 7* not-in-use (file_access_info.entry_state is 0), in-use (entry_state is 2 8* -1) or still in-use, but to be discarded at the end of the transaction 2 9* (any number > 0). An entry needs to be discarded when the file is 2 10* completely closed by the user. This last state is useful because it is 2 11* better not to discard the entry when it is completely closed until the 2 12* end of the current transaction, so that if the transaction is aborted, the 2 13* file need not be re-opened to apply the before images. A list of entries 2 14* to be discarded is maintained using the entry_state variable. 2 15* The file can be in one of three states: exists (file_state = 1), 2 16* does not exist (file_state = 0), and logically_deleted (file_state = 3). 2 17**/ 2 18 2 19 /* HISTORY: 2 20*Written by Jeffrey D. Ives, 10/11/82. 2 21* (Original design by Andre Bensoussan, 01/28/82.) 2 22*Modified: 2 23*10/05/83 Jeffrey D. Ives: Added fields for lock advice and expanded seg_nums. 2 24*07/12/84 by Matthew Pierret: Re-named proc_ad to file_access_info. 2 25*12/17/84 by Matthew Pierret: Changed post_transaction_actions sub-structure 2 26* to state, with entry_state (replacing thread) and the new 2 27* file_state. Added a DESCRIPTION section. Added constants for 2 28* possible file_state values. 2 29**/ 2 30 2 31 /* format: style2,^inddcls,dclind5 */ 2 32 2 33 dcl 1 file_access_info aligned based (file_access_info_ptr), 2 34 2 state aligned, 2 35 3 entry_state fixed bin (17) unal, 2 36 3 file_state fixed bin (17) unal, 2 37 2 uid bit (36), 2 38 2 blocking_factor fixed bin (17) unal, 2 39 2 ring_brackets unal, 2 40 3 write fixed bin (3) unsigned unal, 2 41 3 read fixed bin (3) unsigned unal, 2 42 3 mbz_rb fixed bin (3) unsigned unal, 2 43 2 integrity_switches unal, 2 44 3 record_time_modified 2 45 bit (1) unal, /* record time modified in ci_header and trailer */ 2 46 3 transaction bit (1) unal, /* permit access only during a transaction */ 2 47 3 lock bit (1) unal, /* lock control intervals before accessing them */ 2 48 3 bj bit (1) unal, /* put undo records in the before journal */ 2 49 3 aj bit (1) unal, /* put redo records in the after journal */ 2 50 3 mbz_is bit (4) unal, 2 51 2 last_transaction_id 2 52 bit (36), 2 53 2 msf_ptr ptr unal, 2 54 2 pn_tbl_idx fixed bin (17) unal, 2 55 2 lock_advice fixed bin (17) unal, 2 56 2 opens fixed bin (17) unal, 2 57 2 seg_0_num bit (18) unal, 2 58 2 seg_nums (27) fixed bin (12) uns unal; 2 59 2 60 2 61 dcl file_access_info_ptr ptr init (null ()); 2 62 2 63 dcl ( 2 64 FILE_ACCESS_INFO_IN_USE 2 65 init (-1), 2 66 FILE_ACCESS_INFO_NOT_IN_USE 2 67 init (0), 2 68 FILE_DOES_NOT_EXIST init (0), 2 69 FILE_EXISTS init (1), 2 70 FILE_LOGICALLY_DELETED init (3) 2 71 ) fixed bin internal static options (constant); 2 72 2 73 2 74 /* END INCLUDE FILE: dm_fm_file_access_info.incl.pl1 */ 320 321 3 1 /* BEGIN INCLUDE FILE: dm_fm_file_access_tbl.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* 3 5* This include file contains the file_access_table structure. This 3 6* is a per-process table which contains one entry for each file which the 3 7* process has open. The table is set up during per-process initialization 3 8* and is pointed to by fm_data_$file_access_table_ptr. The bounds limit 3 9* on the array of entries is abritrary and can be changed. 3 10**/ 3 11 3 12 /* HISTORY: 3 13*Written by Jeffrey D. Ives, 10/11/82. 3 14* (01/28/82 Andre Bensoussan, Design.) 3 15*Modified: 3 16*07/11/84 by Matthew Pierret: Changed name of structure from proc_ad_tbl to 3 17* file_access_table. 3 18*11/07/84 by Matthew Pierret: Removed the un-used post_commit_actions element. 3 19* Removed the now-obsolete oid structure. It has been replaced by 3 20* file_oid in dm_fm_file_oid.incl.pl1. 3 21**/ 3 22 3 23 /* format: style2,ind3 */ 3 24 3 25 3 26 dcl fm_data_$file_access_table_ptr 3 27 ptr ext; 3 28 3 29 dcl 1 file_access_table aligned based (fm_data_$file_access_table_ptr), 3 30 2 h, 3 31 3 version char (8) aligned, 3 32 3 last_entry fixed bin, 3 33 3 post_transaction_actions 3 34 fixed bin, 3 35 3 mbz_1 (6) fixed bin (71), 3 36 2 e (1024) like file_access_info; 3 37 3 38 3 39 dcl FILE_ACCESS_TABLE_VERSION_1 3 40 init ("FileAT 1") char (8) aligned static options (constant); 3 41 3 42 /* END INCLUDE FILE: dm_fm_file_access_tbl.incl.pl1 */ 322 323 4 1 /* BEGIN INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 4 2 4 3 /* DESCRIPTION: 4 4* This include file contains the sys_pn_tbl structure, the 4 5* file_manager_'s System Pathname Table. Each file which can possibly 4 6* have a before image current must have an entry in this table. Every 4 7* time this table is modified it is force-written to disk, as its 4 8* correct contents are necessary for rolling back transactions by a 4 9* process other than the process which originally owned the transaction. 4 10* When an entry is inserted, it is force-written twice: the first time with 4 11* the entry filled in but with the "in_use" element set to indicate that the 4 12* entry is not yet in use; the second time with the "in_use" element set 4 13* to indicate that the entry is in use. This is done to avoid the possibility 4 14* of a failure while the entry is being written which could successfully 4 15* write the "in_use" but not all of the rest of the entry. "in_use" can have 4 16* one of three values: 0 - not in use; -1 - in use ; +1 - in use but the 4 17* file has been deleted. 4 18**/ 4 19 4 20 /* HISTORY: 4 21*Written by Jeffrey D. Ives, 10/11/82. 4 22* (Design by Andre Bensoussan and Jeffrey Ives.) 4 23*Modified: 4 24*10/30/84 by Matthew Pierret: Added DESCRIPTION and HISTORY sections, 4 25* *_IN_USE constants. Changed thread to in_use, pfuid to file_uid, 4 26* fsuid to file_system_uid. 4 27**/ 4 28 4 29 /* format: style2,ind3 */ 4 30 4 31 dcl fm_data_$sys_pn_tbl_name 4 32 char (32) ext; 4 33 dcl fm_data_$sys_pn_tbl_ptr 4 34 ptr ext; 4 35 4 36 dcl 1 sys_pn_tbl aligned based (fm_data_$sys_pn_tbl_ptr), 4 37 2 h, 4 38 3 version bit (36), 4 39 3 last_entry fixed bin, 4 40 3 lock fixed bin (71), 4 41 3 mbz (30) fixed bin (71), 4 42 2 e (4096), 4 43 3 in_use fixed bin, 4 44 3 open_count fixed bin, 4 45 3 file_uid bit (36), 4 46 3 file_system_uid bit (36), 4 47 2 paths (4096) char (168) unal; 4 48 4 49 dcl SYS_PN_TBL_VERSION_1 bit (36) aligned static options (constant) init ("162363353101"b3); 4 50 4 51 dcl ( 4 52 SPT_ENTRY_IN_USE init (-1), 4 53 SPT_ENTRY_IN_USE_BUT_DELETED 4 54 init (1), 4 55 SPT_ENTRY_NOT_IN_USE init (0) 4 56 ) fixed bin internal static options (constant); 4 57 4 58 /* END INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 324 325 5 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 5 2 5 3 /* format: ^indcom */ 5 4 5 5 /* DESCRIPTION: 5 6* These are the severity codes used by the dms daemon when calling its logger. 5 7* The severity is ranked thusly: 5 8* 5 9* severity log write situation 5 10* -------- --- ----- --------- 5 11* 0 no yes standard output, query, etc. 5 12* 1 yes yes fatal error, terminate dms daemon. 5 13* 2 yes yes nonfatal error. 5 14* 3 yes yes informative message. 5 15* 4 yes no log information only. 5 16**/ 5 17 5 18 /* HISTORY: 5 19* 5 20*Written by M. Pandolf, 10/06/82. 5 21*Modified: 5 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 5 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 5 24* dm_daemon_sv_codes as the severity codes for the DM log are not 5 25* restrained to the DM Daemon's use. 5 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 5 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 5 28**/ 5 29 5 30 /* format: style5 */ 5 31 5 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 5 33 options (constant) init (0); 5 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 5 35 options (constant) init (1); 5 36 dcl ERROR_SV fixed bin internal static 5 37 options (constant) init (2); 5 38 dcl INFORM_SV fixed bin internal static 5 39 options (constant) init (3); 5 40 dcl LOG_SV fixed bin internal static 5 41 options (constant) init (4); 5 42 5 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 326 327 328 end fm_open_by_uid_$open; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/05/00 1832.5 fm_open_by_uid_.pl1 >udd>sm>ds>w>ml>fm_open_by_uid_.pl1 318 1 01/07/85 1000.9 dm_fm_file_oid.incl.pl1 >ldd>incl>dm_fm_file_oid.incl.pl1 320 2 03/06/85 1131.2 dm_fm_file_access_info.incl.pl1 >ldd>incl>dm_fm_file_access_info.incl.pl1 322 3 01/07/85 1001.1 dm_fm_file_access_tbl.incl.pl1 >ldd>incl>dm_fm_file_access_tbl.incl.pl1 324 4 01/07/85 1000.8 dm_fm_sys_pn_tbl.incl.pl1 >ldd>incl>dm_fm_sys_pn_tbl.incl.pl1 326 5 03/06/85 1131.1 dm_log_sv_codes.incl.pl1 >ldd>incl>dm_log_sv_codes.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. DONT_PAD 000506 automatic bit(1) initial dcl 233 set ref 233* 240* FALSE constant bit(1) initial dcl 94 ref 157 LOG_SV 000031 constant fixed bin(17,0) initial dcl 5-40 set ref 242* MYNAME 000000 constant varying char(32) initial dcl 94 set ref 242* NO_NEW_LINE 000507 automatic bit(1) initial dcl 233 set ref 233* 240* TRUE constant bit(1) initial dcl 94 ref 148 addr builtin function dcl 85 ref 199 199 cleanup 000316 stack reference condition dcl 90 ref 188 273 304 code 000100 automatic fixed bin(35,0) dcl 70 set ref 165* 180* 181 181* 190* 191 191* 194* 197 270* 276* 281* 297* 307* 311 311* cu_$arg_list_ptr 000010 constant entry external dcl 107 ref 236 cu_$arg_ptr_rel 000012 constant entry external dcl 108 ref 237 cu_$level_get 000014 constant entry external dcl 110 ref 272 303 cu_$level_set 000016 constant entry external dcl 111 ref 273 274 279 304 305 309 dir_path 000101 automatic char(168) packed unaligned dcl 71 set ref 268* 276* 281* dm_error_$file_uid_arg_null 000044 external static fixed bin(35,0) dcl 134 set ref 170* dm_error_$file_uid_not_found 000046 external static fixed bin(35,0) dcl 136 set ref 176* dm_error_$fm_old_uidpn_ptr_null 000050 external static fixed bin(35,0) dcl 138 set ref 160* 300* dm_error_$fm_uid_fnd_wrong_file 000052 external static fixed bin(35,0) dcl 140 set ref 199* dm_misc_util_$log 000020 constant entry external dcl 112 ref 242 e 20 based structure array level 2 dcl 3-29 er_p_code parameter fixed bin(35,0) dcl 216 ref 213 218 error_table_$noentry 000054 external static fixed bin(35,0) dcl 142 ref 191 expand_pathname_ 000022 constant entry external dcl 113 ref 180 file_access_info based structure level 1 dcl 2-33 file_access_info_ptr 000324 automatic pointer initial dcl 2-61 set ref 2-61* file_access_table based structure level 1 dcl 3-29 file_access_table_idx based fixed bin(17,0) level 2 packed packed unaligned dcl 1-23 ref 199 199 file_dir 000153 automatic char(168) packed unaligned dcl 72 set ref 180* 190* file_name 000225 automatic char(32) packed unaligned dcl 73 set ref 180* 190* file_oid based structure level 1 dcl 1-23 file_path 000235 automatic char(168) packed unaligned dcl 74 set ref 173* 176 180* 181* 194* 199* file_uid 000307 automatic bit(36) dcl 75 set ref 168* 170 173* 176* 181* 194* 199 199* fm_create_open_$open 000024 constant entry external dcl 115 ref 190 fm_data_$file_access_table_ptr 000056 external static pointer dcl 3-26 ref 199 199 fm_data_$old_sys_pn_tbl_ptr 000042 external static pointer dcl 132 set ref 158 276* 281 300 307* 311* fm_data_$sys_pn_tbl_name 000060 external static char(32) packed unaligned dcl 4-31 set ref 181* 194* 199* 276* 281* 311* fm_data_$sys_pn_tbl_ptr 000062 external static pointer dcl 4-33 ref 149 fm_delete_close_$close 000026 constant entry external dcl 117 ref 252 fm_sys_pn_tbl_util_$get_path 000030 constant entry external dcl 118 ref 173 get_ring_ 000032 constant entry external dcl 121 ref 274 274 305 305 hcs_$initiate 000034 constant entry external dcl 122 ref 276 hcs_$terminate_noname 000036 constant entry external dcl 125 ref 307 ioa_$general_rs 000040 constant entry external dcl 126 ref 240 length builtin function dcl 85 ref 242 242 ler_arg_list_ptr 000100 automatic pointer dcl 227 set ref 236* 237* 240* ler_code based fixed bin(35,0) dcl 228 set ref 242* 245* ler_code_len 000104 automatic fixed bin(21,0) dcl 230 set ref 237* ler_code_ptr 000102 automatic pointer dcl 229 set ref 237* 242 245 ler_message_buffer 000106 automatic char(1024) packed unaligned dcl 232 set ref 240* 242 242 242 242 ler_message_len 000105 automatic fixed bin(21,0) dcl 231 set ref 240* 242 242 min builtin function dcl 85 ref 242 242 must_lock_sys_pn_tbl 000310 automatic bit(1) dcl 76 set ref 148* 157* 173* my_file_oid 000311 automatic bit(36) dcl 77 set ref 167* 186* 190* 191 199 199 208 252 252* 269* 298* null builtin function dcl 85 ref 160 281 300 2-61 p_code parameter fixed bin(35,0) dcl 66 set ref 56 154 165* 197* 218* 265 270* 294 297* p_dir_path parameter char(168) packed unaligned dcl 63 ref 265 268 p_file_oid parameter bit(36) dcl 65 set ref 56 154 167* 208* p_file_uid parameter bit(36) dcl 64 ref 56 154 168 saved_validation_level 000312 automatic fixed bin(17,0) initial dcl 78 set ref 78* 272* 273* 279* 303* 304* 309* substr builtin function dcl 85 ref 242 242 sys_pn_tbl_ptr 000314 automatic pointer dcl 79 set ref 149* 158* 160 173* uid 21 based bit(36) array level 3 dcl 3-29 set ref 199 199* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH_SV internal static fixed bin(17,0) initial dcl 5-34 ERROR_SV internal static fixed bin(17,0) initial dcl 5-36 FATAL_SV internal static fixed bin(17,0) initial dcl 5-34 FILE_ACCESS_INFO_IN_USE internal static fixed bin(17,0) initial dcl 2-63 FILE_ACCESS_INFO_NOT_IN_USE internal static fixed bin(17,0) initial dcl 2-63 FILE_ACCESS_TABLE_VERSION_1 internal static char(8) initial dcl 3-39 FILE_DOES_NOT_EXIST internal static fixed bin(17,0) initial dcl 2-63 FILE_EXISTS internal static fixed bin(17,0) initial dcl 2-63 FILE_LOGICALLY_DELETED internal static fixed bin(17,0) initial dcl 2-63 INFORM_SV internal static fixed bin(17,0) initial dcl 5-38 NO_ERROR_ARG_1 internal static bit(36) initial dcl 94 NO_ERROR_ARG_2 internal static char(1) initial packed unaligned dcl 94 NO_ERROR_ARG_3 internal static bit(36) initial dcl 94 NO_ERROR_ARG_4 internal static char(1) initial packed unaligned dcl 94 PRINT_SV internal static fixed bin(17,0) initial dcl 5-32 QUERY_SV internal static fixed bin(17,0) initial dcl 5-32 SPT_ENTRY_IN_USE internal static fixed bin(17,0) initial dcl 4-51 SPT_ENTRY_IN_USE_BUT_DELETED internal static fixed bin(17,0) initial dcl 4-51 SPT_ENTRY_NOT_IN_USE internal static fixed bin(17,0) initial dcl 4-51 SYS_PN_TBL_VERSION_1 internal static bit(36) initial dcl 4-49 sys_pn_tbl based structure level 1 dcl 4-36 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 001207 constant entry internal dcl 213 ref 170 191 245 FINISH 001405 constant entry internal dcl 249 ref 188 219 JOIN 000245 constant label dcl 165 ref 151 163 LOG_ERROR_RETURN 001231 constant entry internal dcl 224 ref 160 176 181 194 199 281 300 311 MAIN_RETURN 000610 constant label dcl 210 ref 220 end_of_crash_recovery 001023 constant entry external dcl 294 find_old_uid_pn_table 000615 constant entry external dcl 265 fm_open_by_uid_$open 000164 constant entry external dcl 56 open_after_crash 000206 constant entry external dcl 154 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2054 2140 1427 2064 Length 2500 1427 64 324 424 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fm_open_by_uid_$open 348 external procedure is an external procedure. on unit on line 188 64 on unit ERROR_RETURN 64 internal procedure is called by several nonquick procedures. LOG_ERROR_RETURN 378 internal procedure is declared options(variable). FINISH 72 internal procedure is called by several nonquick procedures. on unit on line 273 68 on unit on unit on line 304 68 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME LOG_ERROR_RETURN 000100 ler_arg_list_ptr LOG_ERROR_RETURN 000102 ler_code_ptr LOG_ERROR_RETURN 000104 ler_code_len LOG_ERROR_RETURN 000105 ler_message_len LOG_ERROR_RETURN 000106 ler_message_buffer LOG_ERROR_RETURN 000506 DONT_PAD LOG_ERROR_RETURN 000507 NO_NEW_LINE LOG_ERROR_RETURN fm_open_by_uid_$open 000100 code fm_open_by_uid_$open 000101 dir_path fm_open_by_uid_$open 000153 file_dir fm_open_by_uid_$open 000225 file_name fm_open_by_uid_$open 000235 file_path fm_open_by_uid_$open 000307 file_uid fm_open_by_uid_$open 000310 must_lock_sys_pn_tbl fm_open_by_uid_$open 000311 my_file_oid fm_open_by_uid_$open 000312 saved_validation_level fm_open_by_uid_$open 000314 sys_pn_tbl_ptr fm_open_by_uid_$open 000324 file_access_info_ptr fm_open_by_uid_$open THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cu_$arg_ptr_rel cu_$level_get cu_$level_set dm_misc_util_$log expand_pathname_ fm_create_open_$open fm_delete_close_$close fm_sys_pn_tbl_util_$get_path get_ring_ hcs_$initiate hcs_$terminate_noname ioa_$general_rs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$file_uid_arg_null dm_error_$file_uid_not_found dm_error_$fm_old_uidpn_ptr_null dm_error_$fm_uid_fnd_wrong_file error_table_$noentry fm_data_$file_access_table_ptr fm_data_$old_sys_pn_tbl_ptr fm_data_$sys_pn_tbl_name fm_data_$sys_pn_tbl_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 78 000152 2 61 000154 56 000160 148 000175 149 000177 151 000203 154 000204 157 000217 158 000220 160 000224 163 000244 165 000245 167 000247 168 000252 170 000254 173 000264 176 000301 180 000331 181 000355 186 000413 188 000414 190 000436 191 000463 194 000500 197 000534 199 000536 208 000605 210 000610 265 000611 268 000626 269 000633 270 000634 272 000636 273 000645 274 000671 276 000711 279 000754 281 000763 285 001017 294 001020 297 001034 298 001036 300 001037 303 001060 304 001067 305 001113 307 001133 309 001144 311 001153 316 001205 213 001206 218 001214 219 001220 220 001225 224 001230 233 001236 236 001240 237 001246 240 001270 242 001333 245 001373 247 001403 249 001404 252 001412 255 001426 ----------------------------------------------------------- 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