COMPILATION LISTING OF SEGMENT enter_lss Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 02/07/84 1207.5 mst Tue 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 enter_lss: procedure options (variable); 12 13 /* This command forces the command processor to transform commands using 14* a LSS command table. 15* 16* Usage: enter_lss {table path} 17* 18* Written by C. Hornig, October 1979 19* Modified by C Spitzer. Jan 1984. attempt to verify the goodness of the 20* command list. 21**/ 22 23 dcl 1 lss_header based (lssp) aligned, 24 2 ratio fixed bin (17), 25 2 interval fixed bin (17), 26 2 number_of_names fixed bin (71), 27 2 names (lss_header.number_of_names) char (32) aligned, 28 2 pointers (lss_header.number_of_names) aligned, 29 3 where fixed bin (17), 30 3 length fixed bin (17); 31 32 dcl 1 lss based (lssp) aligned, 33 2 ratio fixed bin (17), 34 2 interval fixed bin (17), 35 2 number_of_names fixed bin (71), 36 2 names (lss.number_of_names) char (32) aligned, 37 2 pointers (lss.number_of_names) aligned, 38 3 where fixed bin (17), 39 3 length fixed bin (17), 40 2 paths char (path_length) aligned; 41 42 dcl ME char (9) init ("enter_lss") static options (constant); 43 44 dcl com_err_ entry options (variable); 45 dcl command_processor_$setup_lss entry (pointer); 46 dcl cu_$arg_count entry returns (fixed bin); 47 dcl cu_$arg_ptr entry (fixed bin, pointer, fixed bin (24), fixed bin (35)); 48 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 49 dcl initiate_file_ entry (char(*), char(*), bit(*), ptr, fixed bin(24), fixed bin(35)); 50 dcl start_governor_ entry (fixed bin, fixed bin); 51 dcl pathname_ entry (char(*), char(*)) returns(char(168)); 52 53 dcl fixedoverflow condition; 54 55 dcl (currentsize, divide, null) builtin; 56 57 dcl bit_count fixed bin (24); 58 dcl path_length fixed bin (21); 59 dcl dirname char (168); 60 dcl ename char (32); 61 dcl ap ptr; 62 dcl al fixed bin (24); 63 dcl argument character (al) based (ap); 64 dcl code fixed bin (35); 65 dcl lssp ptr; 66 dcl i fixed bin; 67 68 /* * * * * * * * * * ENTER_LSS * * * * * * * * * */ 69 70 if cu_$arg_count () ^= 1 then do; /* program misused */ 71 call com_err_ (0, ME, "Usage: enter_lss {table pathname}"); 72 return; 73 end; 74 75 call cu_$arg_ptr (1, ap, al, code); /* get the taBle path */ 76 if code ^= 0 then do; 77 call com_err_ (code, ME); 78 return; 79 end; 80 81 call expand_pathname_ (argument, dirname, ename, code); 82 if code ^= 0 then do; /* bad pathname */ 83 call com_err_ (code, ME, "^a.", argument); 84 return; 85 end; 86 call initiate_file_ (dirname, ename,"100"b, lssp, bit_count, code); /* initiate the LSS */ 87 if lssp = null () then do; 88 call com_err_ (code, ME, "Initiating ^a.", pathname_ (dirname, ename)); 89 return; 90 end; 91 92 on fixedoverflow goto bad_input_segment; 93 if lss.number_of_names * 9 > divide (bit_count, 36, 21, 0) 94 then goto bad_input_segment; /* 9 is the size in words of 1 entry in lss */ 95 96 path_length = divide (bit_count, 9, 21, 0) - (currentsize (lss_header)*4); 97 do i = 1 to lss.number_of_names; 98 if lss.where (i) + lss.length (i) > path_length + 1 then do; 99 bad_input_segment: call com_err_ (0, ME, "The input command list is not a validly compiled LSS table. ^a", pathname_ (dirname, ename)); 100 return; 101 end; 102 end; 103 104 revert fixedoverflow; 105 106 call command_processor_$setup_lss (lssp); /* tell the CP */ 107 call start_governor_ (lss.ratio, lss.interval); /* enforce the governor */ 108 end enter_lss; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/07/84 1207.5 enter_lss.pl1 >special_ldd>on>6683>enter_lss.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. ME 000000 constant char(9) initial unaligned dcl 42 set ref 71* 77* 83* 88* 99* al 000174 automatic fixed bin(24,0) dcl 62 set ref 75* 81 81 83 83 ap 000172 automatic pointer dcl 61 set ref 75* 81 83 argument based char unaligned dcl 63 set ref 81* 83* bit_count 000106 automatic fixed bin(24,0) dcl 57 set ref 86* 93 96 code 000175 automatic fixed bin(35,0) dcl 64 set ref 75* 76 77* 81* 82 83* 86* 88* com_err_ 000010 constant entry external dcl 44 ref 71 77 83 88 99 command_processor_$setup_lss 000012 constant entry external dcl 45 ref 106 cu_$arg_count 000014 constant entry external dcl 46 ref 70 cu_$arg_ptr 000016 constant entry external dcl 47 ref 75 currentsize builtin function dcl 55 ref 96 dirname 000110 automatic char(168) unaligned dcl 59 set ref 81* 86* 88* 88* 99* 99* divide builtin function dcl 55 ref 93 96 ename 000162 automatic char(32) unaligned dcl 60 set ref 81* 86* 88* 88* 99* 99* expand_pathname_ 000020 constant entry external dcl 48 ref 81 fixedoverflow 000100 stack reference condition dcl 53 ref 92 104 i 000200 automatic fixed bin(17,0) dcl 66 set ref 97* 98 98* initiate_file_ 000022 constant entry external dcl 49 ref 86 interval 1 based fixed bin(17,0) level 2 dcl 32 set ref 107* length based fixed bin(17,0) array level 3 dcl 32 ref 98 lss based structure level 1 dcl 32 lss_header based structure level 1 dcl 23 ref 96 lssp 000176 automatic pointer dcl 65 set ref 86* 87 93 96 96 96 97 98 98 98 98 106* 107 107 null builtin function dcl 55 ref 87 number_of_names 2 based fixed bin(71,0) level 2 in structure "lss_header" dcl 23 in procedure "enter_lss" ref 96 96 number_of_names 2 based fixed bin(71,0) level 2 in structure "lss" dcl 32 in procedure "enter_lss" ref 93 97 98 98 path_length 000107 automatic fixed bin(21,0) dcl 58 set ref 96* 98 pathname_ 000026 constant entry external dcl 51 ref 88 88 99 99 pointers based structure array level 2 dcl 32 ratio based fixed bin(17,0) level 2 dcl 32 set ref 107* start_governor_ 000024 constant entry external dcl 50 ref 107 where based fixed bin(17,0) array level 3 dcl 32 ref 98 NAMES DECLARED BY EXPLICIT CONTEXT. bad_input_segment 000504 constant label dcl 99 ref 92 93 enter_lss 000070 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 730 760 603 740 Length 1140 603 30 144 124 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME enter_lss 252 external procedure is an external procedure. on unit on line 92 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME enter_lss 000106 bit_count enter_lss 000107 path_length enter_lss 000110 dirname enter_lss 000162 ename enter_lss 000172 ap enter_lss 000174 al enter_lss 000175 code enter_lss 000176 lssp enter_lss 000200 i enter_lss THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return tra_ext mpfx2 enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_processor_$setup_lss cu_$arg_count cu_$arg_ptr expand_pathname_ initiate_file_ pathname_ start_governor_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000067 70 000075 71 000106 72 000133 75 000134 76 000153 77 000155 78 000172 81 000173 82 000223 83 000225 84 000257 86 000260 87 000317 88 000323 89 000374 92 000375 93 000414 96 000427 97 000445 98 000456 99 000504 100 000555 102 000556 104 000560 106 000561 107 000570 108 000602 ----------------------------------------------------------- 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