COMPILATION LISTING OF SEGMENT lfree_name Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1722.0 mst Mon 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 lfree_name: lfn: procedure (path); 12 13 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 /* */ 15 /* N__a_m_e_s: lfree_name, lfn */ 16 /* */ 17 /* This command is part of the Multics Installation System (MIS). It frees the */ 18 /* entryname portion of its pathname argument so that this entryname may be used */ 19 /* on another segment. If the final component of the entryname is "._n" where n is an */ 20 /* integer, then the name is freed by adding one to _n. Otherwise, the entryname is */ 21 /* freed by appending a component of ".1" to the name. */ 22 /* */ 23 /* E__n_t_r_i_e_s: lfree_name, lfn */ 24 /* */ 25 /* This entry frees an entryname. */ 26 /* */ 27 /* U__s_a_g_e */ 28 /* */ 29 /* lfree_name path_name */ 30 /* */ 31 /* 1) path_name is the absolute or relative path name of the directory entryname */ 32 /* which is to be freed. (Input) */ 33 /* */ 34 /* E__n_t_r_i_e_s: lfree_name$restore, lfn$restore */ 35 /* */ 36 /* This entry point restores an entryname which has been freed to its original value.*/ 37 /* */ 38 /* U__s_a_g_e */ 39 /* */ 40 /* lfree_name$restore path_name */ 41 /* */ 42 /* 1) path_name is the original absolute or relative path name of the directory */ 43 /* entryname which is to be restored. (Input) */ 44 /* */ 45 /* S__t_a_t_u_s */ 46 /* */ 47 /* 1) Created: Jan, 1973 by G. C. Dixon */ 48 /* */ 49 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 50 51 52 dcl /* parameter */ 53 path char(*); /* pathname of the entryname to be freed. */ 54 55 dcl /* automatic variables */ 56 Nargs fixed bin, /* number of input arguments we were passed. */ 57 code fixed bin(35), /* a status code. */ 58 dir char(168) aligned, /* directory portion of path. */ 59 e fixed bin, /* entry point indicator. */ 60 entry char(32) aligned; /* entry portion of path. */ 61 62 dcl /* entries and builtin functions */ 63 addr builtin, 64 com_err_ entry options (variable), 65 cu_$arg_count entry (fixed bin), 66 expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin(35)), 67 length builtin, 68 upd_free_name_ entry (char(*) aligned, char(*) aligned, fixed bin(35)), 69 upd_free_name_$restore entry (char(*) aligned, char(*) aligned, fixed bin(35)); 70 71 dcl /* static variables */ 72 ep (2) char(18) aligned int static init ( 73 "lfree_name", 74 "lfree_name$restore"), 75 error_table_$wrong_no_of_args fixed bin(35) ext static; 76 77 e = 1; /* set entry point indicator. */ 78 go to common; 79 80 restore: entry (path); /* restore name entry point. */ 81 e = 2; /* set entry point indicator. */ 82 83 common: call cu_$arg_count (Nargs); /* make sure we were passed 1 argument. */ 84 if Nargs ^= 1 then 85 go to wrong_no_of_args; 86 call expand_path_ (addr(path), length(path), addr(dir), addr(entry), code); 87 if code ^= 0 then /* convert relative path to absolute one. */ 88 go to err; 89 go to call(e); /* make call appropo to our entry point. */ 90 91 call(1): call upd_free_name_ (dir, entry, code); 92 go to join; 93 call(2): call upd_free_name_$restore (dir, entry, code); /* free or restore the entryname, as appropo */ 94 95 join: if code ^= 0 then 96 go to err; 97 return; 98 99 wrong_no_of_args: 100 call com_err_ (error_table_$wrong_no_of_args, (ep(e)), 101 "^/Calling sequence is:^-^a ", (ep(e))); 102 return; 103 104 err: call com_err_ (code, (ep(e)), "^a", path); 105 106 107 end lfree_name; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1513.2 lfree_name.pl1 >dumps>old>recomp>lfree_name.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. Nargs 000100 automatic fixed bin(17,0) dcl 55 set ref 83* 84 addr builtin function dcl 62 ref 86 86 86 86 86 86 code 000101 automatic fixed bin(35,0) dcl 55 set ref 86* 87 91* 93* 95 104* com_err_ 000010 constant entry external dcl 62 ref 99 104 cu_$arg_count 000012 constant entry external dcl 62 ref 83 dir 000102 automatic char(168) dcl 55 set ref 86 86 91* 93* e 000154 automatic fixed bin(17,0) dcl 55 set ref 77* 81* 89 99 99 104 entry 000155 automatic char(32) dcl 55 set ref 86 86 91* 93* ep 000002 constant char(18) initial array dcl 71 ref 99 99 104 error_table_$wrong_no_of_args 000022 external static fixed bin(35,0) dcl 71 set ref 99* expand_path_ 000014 constant entry external dcl 62 ref 86 length builtin function dcl 62 ref 86 86 path parameter char unaligned dcl 52 set ref 11 11 80 86 86 86 86 104* upd_free_name_ 000016 constant entry external dcl 62 ref 91 upd_free_name_$restore 000020 constant entry external dcl 62 ref 93 NAMES DECLARED BY EXPLICIT CONTEXT. call 000000 constant label array(2) dcl 91 ref 89 common 000113 constant label dcl 83 set ref 78 err 000271 constant label dcl 104 ref 87 95 join 000224 constant label dcl 95 ref 92 lfn 000040 constant entry external dcl 11 lfree_name 000056 constant entry external dcl 11 restore 000076 constant entry external dcl 80 wrong_no_of_args 000227 constant label dcl 99 ref 84 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 442 466 332 452 Length 642 332 24 140 107 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lfn 180 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lfn 000100 Nargs lfn 000101 code lfn 000102 dir lfn 000154 e lfn 000155 entry lfn THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count expand_path_ upd_free_name_ upd_free_name_$restore THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000035 77 000071 78 000073 80 000074 81 000111 83 000113 84 000122 86 000125 87 000155 89 000157 91 000161 92 000202 93 000203 95 000224 97 000226 99 000227 102 000270 104 000271 107 000331 ----------------------------------------------------------- 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