COMPILATION LISTING OF SEGMENT fm_sys_pn_tbl_rename Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 05/08/85 1048.8 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This routine renames a pathname in the file_manager_'s System 10* Pathname Table (sys_pn_tbl). This routine locks and unlocks the 11* sys_pn_tbl, so if the caller already has the sys_pn_tbl locked and wishes 12* it to stay locked, the must lock the sys_pn_tbl after this routine 13* returns. The caller must also have set the validation level 14* appropriately. 15* 16* The current transaction must have obtained an exclusive (X) lock on 17* the file being renamed. This guarantees that there are no outstanding 18* before images against the file other than those held by the current 19* transaction (actually, a share (S) lock might be sufficient). 20* 21* If we are unable to find the file in the sys_pn_tbl at the 22* p_sys_pn_tbl_idx location, we search the sys_pn_tbl for the file uid to 23* get the index. If the file's uid is not in the table, it is a fatal 24* error. 25**/ 26 27 /* HISTORY: 28* 29*Written by Matthew, 10/29/84. 30*Modified: 31*01/10/85 by Matthew C. Pierret: Changed myname to MYNAME. Added ERROR_RETURN 32* and MAKE_MESSAGE routines. Made to call fm_error_util_$signal via 33* ERROR_RETURN if the call to lock_manager_$unlock_fast in the 34* normal execution path fails, but to only log and continue if in 35* FINISH (the cleanup on-unit handler). 36*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 37*03/14/85 by Matthew C. Pierret: Changed to only try to unlock the sys_pn_tbl 38* lock once and only if the lock was validly obtained. In this 39* context, valid means the lock was previously not held (lock_code 40* is 0) or the lock was held by a dead process (lock_code is 41* dm_error_$fast_lock_invalid_reset). It is invalid if the lock was 42* previously held by this process. 43*05/02/85 by Lee A. Newcomb: Changed to search the sys_pn_tbl by uid if the 44* entry located by p_sys_pn_tbl_idx is not the file we expected; 45* this is required for recovery to work correctly. 46**/ 47 /* format: style2,ind3 */ 48 49 fm_sys_pn_tbl_rename: 50 proc (p_file_uid, p_sys_pn_tbl_idx, p_new_name); 51 52 /* START OF DECLARATIONS */ 53 /* Parameter */ 54 55 dcl p_file_uid bit (36) aligned; /*unique id of the DM file*/ 56 dcl p_sys_pn_tbl_idx fixed bin (17); /*index of entry in sys_pn_tbl*/ 57 dcl p_new_name char (32); /*new entry name of file*/ 58 59 /* Automatic */ 60 61 dcl absolute_path char (168); 62 dcl dir_path char (168); 63 dcl entry_name char (32); 64 dcl code fixed bin (35) init (0); 65 dcl file_uid bit (36) aligned init (""b); 66 dcl lock_code fixed bin (35) init (LOCK_NOT_YET_ATTEMPTED); 67 dcl sys_pn_tbl_idx fixed bin init (-1); 68 dcl unlock_code fixed bin (35) init (UNLOCK_NOT_YET_ATTEMPTED); 69 70 /* Based */ 71 /* Builtin */ 72 73 dcl (addr, length, min, substr) 74 builtin; 75 76 /* Condition */ 77 78 dcl cleanup condition; 79 80 /* Constant */ 81 82 dcl MYNAME init ("fm_sys_pn_tbl_rename") char (32) varying internal static options (constant); 83 dcl LOCK_WAIT_TIME init (1e9) fixed bin (71) internal static options (constant); 84 dcl (LOCK_NOT_YET_ATTEMPTED, UNLOCK_NOT_YET_ATTEMPTED) 85 fixed bin (35) init (-1) internal static options (constant); 86 87 /* Entry */ 88 89 dcl cu_$arg_list_ptr entry (ptr); 90 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 91 dcl dm_misc_util_$log entry options (variable); 92 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 93 dcl fm_error_util_$signal entry options (variable); 94 dcl hcs_$force_write entry (ptr, bit (36), fixed bin (35)); 95 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, 96 bit (1) aligned); 97 dcl lock_manager_$lock_fast 98 entry (ptr, fixed bin (71), fixed bin (35)); 99 dcl lock_manager_$unlock_fast 100 entry (ptr, fixed bin (35)); 101 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 102 103 /* External */ 104 105 dcl ( 106 dm_error_$fast_lock_invalid_reset, 107 dm_error_$file_uid_not_found, 108 dm_error_$fm_sys_pne_clobbered 109 ) ext fixed bin (35); 110 111 /* END OF DECLARATIONS */ 112 113 114 file_uid = p_file_uid; 115 sys_pn_tbl_idx = p_sys_pn_tbl_idx; 116 117 on cleanup call FINISH (); 118 119 call lock_manager_$lock_fast (addr (sys_pn_tbl.h.lock), LOCK_WAIT_TIME, lock_code); 120 if lock_code ^= 0 & lock_code ^= dm_error_$fast_lock_invalid_reset 121 then call ERROR_RETURN (lock_code, " Unable to lock ^a.", fm_data_$sys_pn_tbl_name); 122 123 if sys_pn_tbl.e (sys_pn_tbl_idx).in_use = 0 | sys_pn_tbl.e (sys_pn_tbl_idx).file_uid ^= file_uid 124 then 125 GET_SYS_PN_TBL_INDEX: 126 do; 127 128 /* following loop stops when the UID is found in active entry. */ 129 /* This is based on the UID search loop in fm_sys_pn_tbl_insert. */ 130 do sys_pn_tbl_idx = lbound (sys_pn_tbl.e, 1) to sys_pn_tbl.h.last_entry 131 while (sys_pn_tbl.e (sys_pn_tbl_idx).file_uid ^= file_uid 132 | sys_pn_tbl.e (sys_pn_tbl_idx).in_use = SPT_ENTRY_NOT_IN_USE); 133 end; 134 if sys_pn_tbl_idx > sys_pn_tbl.h.last_entry 135 then call ERROR_RETURN (dm_error_$file_uid_not_found, "Unable to re-name file with unique id ^w.", file_uid); 136 end GET_SYS_PN_TBL_INDEX; 137 138 absolute_path = sys_pn_tbl.paths (sys_pn_tbl_idx); 139 call expand_pathname_ (absolute_path, dir_path, entry_name, code); 140 if code ^= 0 141 then call ERROR_RETURN (code, " Unable to expand ^a entry ^d: ^a.", fm_data_$sys_pn_tbl_name, sys_pn_tbl_idx, 142 sys_pn_tbl.paths (sys_pn_tbl_idx)); 143 144 sys_pn_tbl.paths (sys_pn_tbl_idx) = pathname_ (dir_path, p_new_name); 145 146 call hcs_$force_write (fm_data_$sys_pn_tbl_ptr, ""b, code); 147 if code ^= 0 148 then call ERROR_RETURN (code, " Unable to force-write ^a (^p).", fm_data_$sys_pn_tbl_name, fm_data_$sys_pn_tbl_ptr) 149 ; 150 151 call lock_manager_$unlock_fast (addr (sys_pn_tbl.h.lock), unlock_code); 152 if unlock_code ^= 0 153 then call ERROR_RETURN (unlock_code, " Unable to unlock ^a.", fm_data_$sys_pn_tbl_name); 154 155 return; 156 157 158 ERROR_RETURN: 159 proc options (variable); 160 161 162 dcl er_arg_list_ptr ptr; 163 dcl er_code fixed bin (35) based (er_code_ptr); 164 dcl er_code_ptr ptr; 165 dcl er_code_len fixed bin (21); 166 167 call cu_$arg_list_ptr (er_arg_list_ptr); 168 call cu_$arg_ptr_rel (1, er_code_ptr, er_code_len, (0), er_arg_list_ptr); 169 call fm_error_util_$signal (er_code, MYNAME, FM_ACTION_CANT_RESTART | FM_ACTION_LOG, LOG_SV, 170 MAKE_MESSAGE (er_arg_list_ptr)); 171 172 /* fm_error_util_$signal never returns, however FINISH will be invoked when 173* the stack is unwound. */ 174 175 end ERROR_RETURN; 176 177 MAKE_MESSAGE: 178 proc (mm_p_arg_list_ptr) returns (char (*)); 179 180 dcl mm_p_arg_list_ptr ptr; 181 dcl mm_message_len fixed bin (21); 182 dcl mm_message_buffer char (1024); 183 dcl (DONT_PAD, NO_NEW_LINE) 184 init ("0"b) bit (1) aligned; 185 186 call ioa_$general_rs (mm_p_arg_list_ptr, 2, 3, mm_message_buffer, mm_message_len, DONT_PAD, NO_NEW_LINE); 187 188 return (substr (mm_message_buffer, 1, min (length (mm_message_buffer), mm_message_len))); 189 190 end MAKE_MESSAGE; 191 192 193 FINISH: 194 proc (); 195 196 197 if (lock_code = 0 | lock_code = dm_error_$fast_lock_invalid_reset) & unlock_code = UNLOCK_NOT_YET_ATTEMPTED 198 then 199 do; 200 call lock_manager_$unlock_fast (addr (sys_pn_tbl.h.lock), unlock_code); 201 if unlock_code ^= 0 202 then call dm_misc_util_$log (LOG_SV, unlock_code, MYNAME, " Unable to unlock ^a during cleanup.", 203 fm_data_$sys_pn_tbl_name); 204 end; 205 206 return; 207 208 end FINISH; 209 1 1 /* ******* BEGIN INCLUDE FILE dm_fm_sub_error_flags.incl.pl1 ******** */ 1 2 1 3 /* format: style2,ind3 */ 1 4 1 5 /* HISTORY: 1 6*Written by Matthew Pierret, 07/02/83. 1 7*Modified: 1 8**/ 1 9 1 10 dcl 1 fm_error_flags aligned based, 1 11 2 action unal, 1 12 3 cant_restart bit (1) unal, 1 13 3 default_restart bit (1) unal, 1 14 3 quiet_restart bit (1) unal, 1 15 3 support_signal bit (1) unal, 1 16 3 mbz_1 bit (14) unal, 1 17 2 log unal, 1 18 3 system bit (1) unal, 1 19 3 mbz_2 bit (1) unal, 1 20 2 mbz_3 bit (16) unal; 1 21 1 22 dcl ( 1 23 FM_ACTION_CANT_RESTART init ("1000"b || (32)"0"b), 1 24 FM_ACTION_CAN_RESTART init ("0000"b || (32)"0"b), 1 25 FM_ACTION_DEFAULT_RESTART 1 26 init ("0100"b || (32)"0"b), 1 27 FM_ACTION_QUIET_RESTART 1 28 init ("0010"b || (32)"0"b), 1 29 FM_ACTION_LOG init ((18)"0"b || "10"b || (16)"0"b) 1 30 ) bit (36) aligned internal static options (constant); 1 31 1 32 /* ********* END INCLUDE FILE dm_fm_sub_error_flags.incl.pl1 ******** */ 210 211 2 1 /* BEGIN INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* This include file contains the sys_pn_tbl structure, the 2 5* file_manager_'s System Pathname Table. Each file which can possibly 2 6* have a before image current must have an entry in this table. Every 2 7* time this table is modified it is force-written to disk, as its 2 8* correct contents are necessary for rolling back transactions by a 2 9* process other than the process which originally owned the transaction. 2 10* When an entry is inserted, it is force-written twice: the first time with 2 11* the entry filled in but with the "in_use" element set to indicate that the 2 12* entry is not yet in use; the second time with the "in_use" element set 2 13* to indicate that the entry is in use. This is done to avoid the possibility 2 14* of a failure while the entry is being written which could successfully 2 15* write the "in_use" but not all of the rest of the entry. "in_use" can have 2 16* one of three values: 0 - not in use; -1 - in use ; +1 - in use but the 2 17* file has been deleted. 2 18**/ 2 19 2 20 /* HISTORY: 2 21*Written by Jeffrey D. Ives, 10/11/82. 2 22* (Design by Andre Bensoussan and Jeffrey Ives.) 2 23*Modified: 2 24*10/30/84 by Matthew Pierret: Added DESCRIPTION and HISTORY sections, 2 25* *_IN_USE constants. Changed thread to in_use, pfuid to file_uid, 2 26* fsuid to file_system_uid. 2 27**/ 2 28 2 29 /* format: style2,ind3 */ 2 30 2 31 dcl fm_data_$sys_pn_tbl_name 2 32 char (32) ext; 2 33 dcl fm_data_$sys_pn_tbl_ptr 2 34 ptr ext; 2 35 2 36 dcl 1 sys_pn_tbl aligned based (fm_data_$sys_pn_tbl_ptr), 2 37 2 h, 2 38 3 version bit (36), 2 39 3 last_entry fixed bin, 2 40 3 lock fixed bin (71), 2 41 3 mbz (30) fixed bin (71), 2 42 2 e (4096), 2 43 3 in_use fixed bin, 2 44 3 open_count fixed bin, 2 45 3 file_uid bit (36), 2 46 3 file_system_uid bit (36), 2 47 2 paths (4096) char (168) unal; 2 48 2 49 dcl SYS_PN_TBL_VERSION_1 bit (36) aligned static options (constant) init ("162363353101"b3); 2 50 2 51 dcl ( 2 52 SPT_ENTRY_IN_USE init (-1), 2 53 SPT_ENTRY_IN_USE_BUT_DELETED 2 54 init (1), 2 55 SPT_ENTRY_NOT_IN_USE init (0) 2 56 ) fixed bin internal static options (constant); 2 57 2 58 /* END INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 212 213 3 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 3 2 3 3 /* format: ^indcom */ 3 4 3 5 /* DESCRIPTION: 3 6* These are the severity codes used by the dms daemon when calling its logger. 3 7* The severity is ranked thusly: 3 8* 3 9* severity log write situation 3 10* -------- --- ----- --------- 3 11* 0 no yes standard output, query, etc. 3 12* 1 yes yes fatal error, terminate dms daemon. 3 13* 2 yes yes nonfatal error. 3 14* 3 yes yes informative message. 3 15* 4 yes no log information only. 3 16**/ 3 17 3 18 /* HISTORY: 3 19* 3 20*Written by M. Pandolf, 10/06/82. 3 21*Modified: 3 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 3 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 3 24* dm_daemon_sv_codes as the severity codes for the DM log are not 3 25* restrained to the DM Daemon's use. 3 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 3 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 3 28**/ 3 29 3 30 /* format: style5 */ 3 31 3 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 3 33 options (constant) init (0); 3 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 3 35 options (constant) init (1); 3 36 dcl ERROR_SV fixed bin internal static 3 37 options (constant) init (2); 3 38 dcl INFORM_SV fixed bin internal static 3 39 options (constant) init (3); 3 40 dcl LOG_SV fixed bin internal static 3 41 options (constant) init (4); 3 42 3 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 214 215 216 end fm_sys_pn_tbl_rename; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/08/85 1037.4 fm_sys_pn_tbl_rename.pl1 >special_ldd>online>dm.5.5-05/08/85>fm_sys_pn_tbl_rename.pl1 210 1 01/07/85 0858.8 dm_fm_sub_error_flags.incl.pl1 >ldd>include>dm_fm_sub_error_flags.incl.pl1 212 2 01/07/85 0900.8 dm_fm_sys_pn_tbl.incl.pl1 >ldd>include>dm_fm_sys_pn_tbl.incl.pl1 214 3 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>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 000501 automatic bit(1) initial dcl 183 set ref 183* 186* FM_ACTION_CANT_RESTART constant bit(36) initial dcl 1-22 ref 169 FM_ACTION_LOG constant bit(36) initial dcl 1-22 ref 169 LOCK_NOT_YET_ATTEMPTED constant fixed bin(35,0) initial dcl 84 ref 66 LOCK_WAIT_TIME 000000 constant fixed bin(71,0) initial dcl 83 set ref 119* LOG_SV 000031 constant fixed bin(17,0) initial dcl 3-40 set ref 169* 201* MYNAME 000002 constant varying char(32) initial dcl 82 set ref 169* 201* NO_NEW_LINE 000502 automatic bit(1) initial dcl 183 set ref 183* 186* SPT_ENTRY_NOT_IN_USE constant fixed bin(17,0) initial dcl 2-51 ref 130 UNLOCK_NOT_YET_ATTEMPTED 001060 constant fixed bin(35,0) initial dcl 84 ref 68 197 absolute_path 000100 automatic char(168) unaligned dcl 61 set ref 138* 139* addr builtin function dcl 73 ref 119 119 151 151 200 200 cleanup 000242 stack reference condition dcl 78 ref 117 code 000234 automatic fixed bin(35,0) initial dcl 64 set ref 64* 139* 140 140* 146* 147 147* cu_$arg_list_ptr 000010 constant entry external dcl 89 ref 167 cu_$arg_ptr_rel 000012 constant entry external dcl 90 ref 168 dir_path 000152 automatic char(168) unaligned dcl 62 set ref 139* 144* dm_error_$fast_lock_invalid_reset 000034 external static fixed bin(35,0) dcl 105 ref 120 197 dm_error_$file_uid_not_found 000036 external static fixed bin(35,0) dcl 105 set ref 134* dm_misc_util_$log 000014 constant entry external dcl 91 ref 201 e 100 based structure array level 2 dcl 2-36 ref 130 entry_name 000224 automatic char(32) unaligned dcl 63 set ref 139* er_arg_list_ptr 000100 automatic pointer dcl 162 set ref 167* 168* 169* er_code based fixed bin(35,0) dcl 163 set ref 169* er_code_len 000104 automatic fixed bin(21,0) dcl 165 set ref 168* er_code_ptr 000102 automatic pointer dcl 164 set ref 168* 169 expand_pathname_ 000016 constant entry external dcl 92 ref 139 file_uid 000235 automatic bit(36) initial dcl 65 in procedure "fm_sys_pn_tbl_rename" set ref 65* 114* 123 130 134* file_uid 102 based bit(36) array level 3 in structure "sys_pn_tbl" dcl 2-36 in procedure "fm_sys_pn_tbl_rename" ref 123 130 fm_data_$sys_pn_tbl_name 000040 external static char(32) unaligned dcl 2-31 set ref 120* 140* 147* 152* 201* fm_data_$sys_pn_tbl_ptr 000042 external static pointer dcl 2-33 set ref 119 119 123 123 130 130 130 130 134 138 140 144 146* 147* 151 151 200 200 fm_error_util_$signal 000020 constant entry external dcl 93 ref 169 h based structure level 2 dcl 2-36 hcs_$force_write 000022 constant entry external dcl 94 ref 146 in_use 100 based fixed bin(17,0) array level 3 dcl 2-36 ref 123 130 ioa_$general_rs 000024 constant entry external dcl 95 ref 186 last_entry 1 based fixed bin(17,0) level 3 dcl 2-36 ref 130 134 length builtin function dcl 73 ref 188 lock 2 based fixed bin(71,0) level 3 dcl 2-36 set ref 119 119 151 151 200 200 lock_code 000236 automatic fixed bin(35,0) initial dcl 66 set ref 66* 119* 120 120 120* 197 197 lock_manager_$lock_fast 000026 constant entry external dcl 97 ref 119 lock_manager_$unlock_fast 000030 constant entry external dcl 99 ref 151 200 min builtin function dcl 73 ref 188 mm_message_buffer 000101 automatic char(1024) unaligned dcl 182 set ref 186* 188 188 mm_message_len 000100 automatic fixed bin(21,0) dcl 181 set ref 186* 188 mm_p_arg_list_ptr parameter pointer dcl 180 set ref 177 186* p_file_uid parameter bit(36) dcl 55 ref 49 114 p_new_name parameter char(32) unaligned dcl 57 set ref 49 144* p_sys_pn_tbl_idx parameter fixed bin(17,0) dcl 56 ref 49 115 pathname_ 000032 constant entry external dcl 101 ref 144 paths 40100 based char(168) array level 2 packed unaligned dcl 2-36 set ref 138 140* 144* substr builtin function dcl 73 ref 188 sys_pn_tbl based structure level 1 dcl 2-36 sys_pn_tbl_idx 000237 automatic fixed bin(17,0) initial dcl 67 set ref 67* 115* 123 123 130* 130 130* 134 138 140* 140 144 unlock_code 000240 automatic fixed bin(35,0) initial dcl 68 set ref 68* 151* 152 152* 197 200* 201 201* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH_SV internal static fixed bin(17,0) initial dcl 3-34 ERROR_SV internal static fixed bin(17,0) initial dcl 3-36 FATAL_SV internal static fixed bin(17,0) initial dcl 3-34 FM_ACTION_CAN_RESTART internal static bit(36) initial dcl 1-22 FM_ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-22 FM_ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-22 INFORM_SV internal static fixed bin(17,0) initial dcl 3-38 PRINT_SV internal static fixed bin(17,0) initial dcl 3-32 QUERY_SV internal static fixed bin(17,0) initial dcl 3-32 SPT_ENTRY_IN_USE internal static fixed bin(17,0) initial dcl 2-51 SPT_ENTRY_IN_USE_BUT_DELETED internal static fixed bin(17,0) initial dcl 2-51 SYS_PN_TBL_VERSION_1 internal static bit(36) initial dcl 2-49 dm_error_$fm_sys_pne_clobbered external static fixed bin(35,0) dcl 105 fm_error_flags based structure level 1 dcl 1-10 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 000572 constant entry internal dcl 158 ref 120 134 140 147 152 FINISH 000771 constant entry internal dcl 193 ref 117 GET_SYS_PN_TBL_INDEX 000253 constant label dcl 123 MAKE_MESSAGE 000703 constant entry internal dcl 177 ref 169 fm_sys_pn_tbl_rename 000125 constant entry external dcl 49 NAME DECLARED BY CONTEXT OR IMPLICATION. lbound builtin function ref 130 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1316 1362 1061 1326 Length 1650 1061 44 252 235 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fm_sys_pn_tbl_rename 254 external procedure is an external procedure. on unit on line 117 110 on unit ERROR_RETURN 112 internal procedure is declared options(variable). MAKE_MESSAGE 356 internal procedure uses returns(char(*)) or returns(bit(*)). FINISH internal procedure shares stack frame of on unit on line 117. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR_RETURN 000100 er_arg_list_ptr ERROR_RETURN 000102 er_code_ptr ERROR_RETURN 000104 er_code_len ERROR_RETURN MAKE_MESSAGE 000100 mm_message_len MAKE_MESSAGE 000101 mm_message_buffer MAKE_MESSAGE 000501 DONT_PAD MAKE_MESSAGE 000502 NO_NEW_LINE MAKE_MESSAGE fm_sys_pn_tbl_rename 000100 absolute_path fm_sys_pn_tbl_rename 000152 dir_path fm_sys_pn_tbl_rename 000224 entry_name fm_sys_pn_tbl_rename 000234 code fm_sys_pn_tbl_rename 000235 file_uid fm_sys_pn_tbl_rename 000236 lock_code fm_sys_pn_tbl_rename 000237 sys_pn_tbl_idx fm_sys_pn_tbl_rename 000240 unlock_code fm_sys_pn_tbl_rename THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return enable shorten_stack ext_entry int_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cu_$arg_ptr_rel dm_misc_util_$log expand_pathname_ fm_error_util_$signal hcs_$force_write ioa_$general_rs lock_manager_$lock_fast lock_manager_$unlock_fast pathname_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$fast_lock_invalid_reset dm_error_$file_uid_not_found 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 49 000121 64 000132 65 000133 66 000134 67 000136 68 000140 114 000142 115 000145 117 000147 119 000165 120 000204 123 000237 130 000253 133 000275 134 000277 138 000330 139 000342 140 000365 144 000430 146 000456 147 000473 151 000525 152 000542 155 000570 158 000571 167 000577 168 000605 169 000627 175 000700 177 000702 183 000710 186 000712 188 000755 193 000771 197 000772 200 001003 201 001020 206 001057 ----------------------------------------------------------- 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