COMPILATION LISTING OF SEGMENT l_names Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/12/82 1245.4 mst Fri 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 /* MCR 4232 Add name l_names 12/13/79 S. Herbst */ 12 13 l_names: lnames: proc; 14 15 /* This procedure either copies ($copy) or moves ($move) all 16* the additional names from one segment to another designated 17* segment. A copy is obviously impossible within a directory. 18* Any number of pairs of arguments is allowed and the =-convention 19* is followed in the second argument of a pair. 20* 21* Karolyn Martin 5/30/69 */ 22 /* modified by M. Weaver 9 April 1970 6:35 PM -- recoded into PL/I */ 23 /* last modified by M. Weaver 31 December 1970 */ 24 25 26 27 dcl (copy, errsw) bit (1) aligned, 28 (lng, i, n) fixed bin, 29 (dir1, dir2) char (168), 30 (en1, en2, qent) char (32), 31 ap ptr; 32 dcl name char (lng) based (ap); 33 dcl whoami char (32); 34 dcl code fixed bin (35); 35 dcl type fixed bin (2); 36 dcl bitcnt fixed bin (24); 37 dcl addr builtin; 38 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 39 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 40 dcl com_err_ entry options (variable); 41 dcl error_table_$namedup external fixed bin (35); 42 dcl error_table_$segnamedup external fixed bin (35); 43 dcl get_wdir_ entry returns (char (168)); 44 dcl hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)); 45 dcl installation_tools_$copy_names_ entry 46 (char (*), char (*), char (*), char (*), char (*), bit (1) aligned, fixed bin (35)); 47 dcl installation_tools_$move_names_ entry 48 (char (*), char (*), char (*), char (*), char (*), bit (1) aligned, fixed bin (35)); 49 dcl get_equal_name_ entry (char (*), char (*), char (32), fixed bin (35)), 50 cu_$arg_count entry (fixed bin); 51 52 copy: entry; 53 54 /* The additional names are to be left on the original segment. */ 55 56 copy = "1"b; 57 whoami = "l_names$copy"; 58 go to work; 59 60 move: entry; 61 62 /* The additional names are to be removed from the original segment. */ 63 64 copy = "0"b; 65 whoami = "l_names$move"; 66 67 work: call cu_$arg_count (n); 68 if n = 0 then return; 69 70 /* The following master loop processes each pair of arguments completely 71* unless some error code is returned by the file system. */ 72 73 pairs: do i = 1 to n by 2; 74 75 /* get first arg */ 76 call cu_$arg_ptr (i, ap, lng, code); 77 if code ^= 0 then do; 78 err1: call com_err_ (code, whoami, "arg ^d", i); 79 go to next_pair; 80 end; 81 call expand_pathname_ (name, dir1, en1, code); 82 if code ^= 0 then go to err1; 83 84 /* get second arg */ 85 if i = n then do; 86 en2 = en1; /* have odd no. of args */ 87 dir2 = get_wdir_ (); 88 end; 89 else do; 90 call cu_$arg_ptr (i+1, ap, lng, code); 91 if code ^= 0 then do; 92 err2: call com_err_ (code, whoami, "arg ^d", i); 93 go to next_pair; 94 end; 95 call expand_pathname_ (name, dir2, qent, code); 96 if code ^= 0 then go to err2; 97 call get_equal_name_ (en1, qent, en2, code); 98 if code ^= 0 then go to err2; 99 end; 100 101 102 /* Does target segment exist?? */ 103 104 call hcs_$status_minf (dir2, en2, 0, type, bitcnt, code); 105 if code ^= 0 then go to errseg2; 106 107 /* If so, then move the names. */ 108 109 if copy then do; 110 call installation_tools_$copy_names_ (dir1, en1, dir2, en2, whoami, errsw, code); 111 if code ^= 0 then do; /* if there's an error */ 112 com_err: if code ^= error_table_$namedup then if code ^= error_table_$segnamedup then do; 113 if ^errsw then call com_err_ (code, whoami, "^a>^a", dir1, en1); 114 else do; 115 errseg2: call com_err_ (code, whoami, "^a>^a", dir2, en2); 116 go to next_pair; 117 end; 118 end; 119 end; 120 end; 121 122 123 else do; 124 call installation_tools_$move_names_ (dir1, en1, dir2, en2, whoami, errsw, code); 125 if code ^= 0 then go to com_err; 126 end; 127 128 129 next_pair: end pairs; 130 131 end l_names; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/12/82 1112.6 l_names.pl1 >spec>on>11/12/82>l_names.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. ap 000262 automatic pointer dcl 27 set ref 76* 81 90* 95 bitcnt 000276 automatic fixed bin(24,0) dcl 36 set ref 104* code 000274 automatic fixed bin(35,0) dcl 34 set ref 76* 77 78* 81* 82 90* 91 92* 95* 96 97* 98 104* 105 110* 111 112 112 113* 115* 124* 125 com_err_ 000014 constant entry external dcl 40 ref 78 92 113 115 copy 000100 automatic bit(1) dcl 27 set ref 56* 64* 109 cu_$arg_count 000034 constant entry external dcl 49 ref 67 cu_$arg_ptr 000010 constant entry external dcl 38 ref 76 90 dir1 000105 automatic char(168) unaligned dcl 27 set ref 81* 110* 113* 124* dir2 000157 automatic char(168) unaligned dcl 27 set ref 87* 95* 104* 110* 115* 124* en1 000231 automatic char(32) unaligned dcl 27 set ref 81* 86 97* 110* 113* 124* en2 000241 automatic char(32) unaligned dcl 27 set ref 86* 97* 104* 110* 115* 124* error_table_$namedup 000016 external static fixed bin(35,0) dcl 41 ref 112 error_table_$segnamedup 000020 external static fixed bin(35,0) dcl 42 ref 112 errsw 000101 automatic bit(1) dcl 27 set ref 110* 113 124* expand_pathname_ 000012 constant entry external dcl 39 ref 81 95 get_equal_name_ 000032 constant entry external dcl 49 ref 97 get_wdir_ 000022 constant entry external dcl 43 ref 87 hcs_$status_minf 000024 constant entry external dcl 44 ref 104 i 000103 automatic fixed bin(17,0) dcl 27 set ref 73* 76* 78* 85 90 92* installation_tools_$copy_names_ 000026 constant entry external dcl 45 ref 110 installation_tools_$move_names_ 000030 constant entry external dcl 47 ref 124 lng 000102 automatic fixed bin(17,0) dcl 27 set ref 76* 81 81 90* 95 95 n 000104 automatic fixed bin(17,0) dcl 27 set ref 67* 68 73 85 name based char unaligned dcl 32 set ref 81* 95* qent 000251 automatic char(32) unaligned dcl 27 set ref 95* 97* type 000275 automatic fixed bin(2,0) dcl 35 set ref 104* whoami 000264 automatic char(32) unaligned dcl 33 set ref 57* 65* 78* 92* 110* 113* 115* 124* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 37 NAMES DECLARED BY EXPLICIT CONTEXT. com_err 000462 constant label dcl 112 ref 125 copy 000045 constant entry external dcl 52 err1 000130 constant label dcl 78 ref 82 err2 000251 constant label dcl 92 ref 96 98 errseg2 000525 constant label dcl 115 ref 105 l_names 000036 constant entry external dcl 13 lnames 000027 constant entry external dcl 13 move 000061 constant entry external dcl 60 next_pair 000621 constant label dcl 129 ref 79 93 116 pairs 000103 constant label dcl 73 work 000072 constant label dcl 67 ref 58 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1006 1044 625 1016 Length 1232 625 36 151 161 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lnames 284 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lnames 000100 copy lnames 000101 errsw lnames 000102 lng lnames 000103 i lnames 000104 n lnames 000105 dir1 lnames 000157 dir2 lnames 000231 en1 lnames 000241 en2 lnames 000251 qent lnames 000262 ap lnames 000264 whoami lnames 000274 code lnames 000275 type lnames 000276 bitcnt lnames THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_ get_equal_name_ get_wdir_ hcs_$status_minf installation_tools_$copy_names_ installation_tools_$move_names_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$namedup error_table_$segnamedup LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000026 52 000043 56 000052 57 000054 58 000057 60 000060 64 000066 65 000067 67 000072 68 000101 73 000103 76 000111 77 000126 78 000130 79 000157 81 000160 82 000210 85 000212 86 000215 87 000220 88 000227 90 000230 91 000247 92 000251 93 000300 95 000301 96 000331 97 000333 98 000356 104 000360 105 000416 109 000420 110 000422 111 000460 112 000462 113 000470 115 000525 116 000557 120 000560 124 000561 125 000617 129 000621 131 000624 ----------------------------------------------------------- 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