COMPILATION LISTING OF SEGMENT test_io_daemon Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1657.6 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 /* command interface for IOD testing */ 12 /* format: style2 */ 13 14 /* History: 15* Coded Fall 1980 Benson I. Margulies 16**/ 17 18 test_io_daemon: 19 procedure options (variable); 20 21 declare iod_overseer_$test_path 22 entry (char (*), char (*)); 23 declare cu_$arg_count entry (fixed bin, fixed bin (35)); 24 declare cu_$arg_ptr entry (fixed bin, pointer, fixed bin (21), fixed bin (35)); 25 declare com_err_ entry options (variable); 26 declare absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 27 declare expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 28 declare n_args fixed bin; 29 declare code fixed bin (35); 30 declare dir char (168); 31 declare entryname char (32); 32 declare got_pn bit (1); 33 declare got_dr bit (1); 34 declare current_argument fixed bin; 35 declare arg_ptr pointer; 36 declare arg_len fixed bin (21); 37 declare argument char (arg_len) based (arg_ptr); 38 39 declare ME char (14) init ("test_io_daemon") int static options (constant); 40 declare Default_entryname char (32) init ("iod_tables") int static options (constant); 41 42 declare ( 43 error_table_$noarg, 44 error_table_$badopt, 45 error_table_$too_many_args, 46 error_table_$inconsistent 47 ) fixed bin (35) ext static; 48 49 call cu_$arg_count (n_args, code); 50 if code ^= 0 51 then do; 52 call com_err_ (code, ME); 53 return; 54 end; 55 if n_args = 0 56 then do; 57 call com_err_ (0, ME, "Usage: test_io_daemon {IOD_TABLE_PATH} {-directory TEST_DIR_PATH}."); 58 return; 59 end; 60 got_pn, got_dr = ""b; 61 current_argument = 0; 62 do while (current_argument < n_args); 63 current_argument = current_argument + 1; 64 call cu_$arg_ptr (current_argument, arg_ptr, arg_len, (0)); 65 /* we know how many arguments */ 66 if index (argument, "-") ^= 1 67 then do; /* noncontrol */ 68 if got_pn 69 then do; 70 call com_err_ (error_table_$too_many_args, ME, 71 "Only one pathname may be given, ^a was in error.", argument); 72 return; 73 end; 74 if got_dr 75 then goto pn_and_dr_given; 76 77 call expand_pathname_ (argument, dir, entryname, code); 78 if code ^= 0 79 then do; 80 call com_err_ (code, ME, "^a.", argument); 81 return; 82 end; 83 got_pn = "1"b; 84 end; /* only one possible noncontrol */ 85 else do; /* control argument */ 86 if argument = "-directory" | argument = "-dr" 87 then do; 88 if got_dr 89 then do; 90 call com_err_ (error_table_$inconsistent, ME, 91 "-directory may only be given once."); 92 return; 93 end; 94 if got_pn 95 then do; 96 pn_and_dr_given: 97 call com_err_ (error_table_$inconsistent, ME, 98 "-directory may not be given with a pathname."); 99 return; 100 end; 101 102 if current_argument = n_args 103 then do; 104 call com_err_ (error_table_$noarg, ME, 105 "A directory pathname must be given with ^a.", argument); 106 return; 107 end; 108 current_argument = current_argument + 1; 109 call cu_$arg_ptr (current_argument, arg_ptr, arg_len, (0)); 110 if substr (argument, 1, 1) = "-" 111 then do; /* no path */ 112 call com_err_ (error_table_$noarg, ME, 113 "A pathname must be given following -directory. Control argument ^a was in error." 114 , argument); 115 return; 116 end; 117 call absolute_pathname_ (argument, dir, code); 118 if code ^= 0 119 then do; 120 call com_err_ (code, ME, "^a", argument); 121 return; 122 end; 123 entryname = Default_entryname; 124 got_dr = "1"b; 125 end; /* processing -dir */ 126 else do; /* bad control arg */ 127 call com_err_ (error_table_$badopt, ME, "Control argument ^a not recognized.", argument); 128 return; 129 end; 130 end; /* control args */ 131 end; /* arg loop */ 132 call iod_overseer_$test_path (dir, entryname); 133 return; 134 end test_io_daemon; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1507.4 test_io_daemon.pl1 >dumps>old>recomp>test_io_daemon.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. Default_entryname 000000 constant char(32) initial unaligned dcl 40 ref 123 ME 000010 constant char(14) initial unaligned dcl 39 set ref 52* 57* 70* 80* 90* 96* 104* 112* 120* 127* absolute_pathname_ 000020 constant entry external dcl 26 ref 117 arg_len 000172 automatic fixed bin(21,0) dcl 36 set ref 64* 66 70 70 77 77 80 80 86 86 104 104 109* 110 112 112 117 117 120 120 127 127 arg_ptr 000170 automatic pointer dcl 35 set ref 64* 66 70 77 80 86 86 104 109* 110 112 117 120 127 argument based char unaligned dcl 37 set ref 66 70* 77* 80* 86 86 104* 110 112* 117* 120* 127* code 000101 automatic fixed bin(35,0) dcl 29 set ref 49* 50 52* 77* 78 80* 117* 118 120* com_err_ 000016 constant entry external dcl 25 ref 52 57 70 80 90 96 104 112 120 127 cu_$arg_count 000012 constant entry external dcl 23 ref 49 cu_$arg_ptr 000014 constant entry external dcl 24 ref 64 109 current_argument 000166 automatic fixed bin(17,0) dcl 34 set ref 61* 62 63* 63 64* 102 108* 108 109* dir 000102 automatic char(168) unaligned dcl 30 set ref 77* 117* 132* entryname 000154 automatic char(32) unaligned dcl 31 set ref 77* 123* 132* error_table_$badopt 000026 external static fixed bin(35,0) dcl 42 set ref 127* error_table_$inconsistent 000032 external static fixed bin(35,0) dcl 42 set ref 90* 96* error_table_$noarg 000024 external static fixed bin(35,0) dcl 42 set ref 104* 112* error_table_$too_many_args 000030 external static fixed bin(35,0) dcl 42 set ref 70* expand_pathname_ 000022 constant entry external dcl 27 ref 77 got_dr 000165 automatic bit(1) unaligned dcl 33 set ref 60* 74 88 124* got_pn 000164 automatic bit(1) unaligned dcl 32 set ref 60* 68 83* 94 iod_overseer_$test_path 000010 constant entry external dcl 21 ref 132 n_args 000100 automatic fixed bin(17,0) dcl 28 set ref 49* 55 62 102 NAMES DECLARED BY EXPLICIT CONTEXT. pn_and_dr_given 000511 constant label dcl 96 ref 74 test_io_daemon 000172 constant entry external dcl 18 NAMES DECLARED BY CONTEXT OR IMPLICATION. index builtin function ref 66 substr builtin function ref 110 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1156 1212 1020 1166 Length 1400 1020 34 152 135 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME test_io_daemon 210 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME test_io_daemon 000100 n_args test_io_daemon 000101 code test_io_daemon 000102 dir test_io_daemon 000154 entryname test_io_daemon 000164 got_pn test_io_daemon 000165 got_dr test_io_daemon 000166 current_argument test_io_daemon 000170 arg_ptr test_io_daemon 000172 arg_len test_io_daemon 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. absolute_pathname_ com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_ iod_overseer_$test_path THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$noarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000171 49 000177 50 000207 52 000211 53 000226 55 000227 57 000231 58 000256 60 000257 61 000261 62 000262 63 000265 64 000266 66 000304 68 000320 70 000322 72 000355 74 000356 77 000360 78 000410 80 000412 81 000444 83 000445 84 000447 86 000450 88 000460 90 000462 92 000506 94 000507 96 000511 99 000535 102 000536 104 000541 106 000574 108 000575 109 000576 110 000614 112 000621 115 000654 117 000655 118 000701 120 000703 121 000735 123 000736 124 000741 125 000743 127 000744 128 000777 131 001000 132 001001 133 001016 ----------------------------------------------------------- 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