COMPILATION LISTING OF SEGMENT gm_error_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/12/82 1250.2 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 gm_error_: proc (code, seg_name, symbol_ptr, header_ptr, arg_error_message, line_ptr, 12 fatal_error_occurred, terminator_was_just_processed, fini_was_found, fseg_ptr, iocb_ptr); 13 14 /* argument declarations */ 15 16 dcl code fixed bin (35), /* error code */ 17 seg_name char (32) aligned, /* name of segment for which error occurred */ 18 symbol_ptr ptr, /* pointer to current header symbol */ 19 header_ptr ptr, /* pointer to header */ 20 arg_error_message char (*), /* error message */ 21 line_ptr ptr, /* pointer to line in output file */ 22 fatal_error_occurred bit (1), /* fatal error flag */ 23 terminator_was_just_processed bit (1), /* indicates whether or not header must be parsed */ 24 fini_was_found bit (1), /* on at finding "fini" in header */ 25 fseg_ptr ptr, /* pointer to initiated segment */ 26 iocb_ptr ptr; 27 28 /* program declarations */ 29 30 dcl (addr, null, substr) builtin; 31 32 dcl line char (95) based (line_ptr), /* mask for modifying line in output file */ 33 error_message char (100) varying; /* error message */ 34 35 36 dcl (char_index, char_num) fixed bin (17), /* for printing current header line */ 37 cur_ptr ptr, /* pointer to current header line */ 38 cur_line char (char_num) based (cur_ptr), /* current line mask */ 39 header (100000) char (1) based; 40 41 dcl num_chars_read fixed bin (17), /* characters read in header parse */ 42 symbol_is_a_break fixed bin (1), /* returned from parse_file_ */ 43 eof_was_found fixed bin (1), /* ditto */ 44 45 46 symbol char (num_chars_read)based (symbol_ptr); /* mask for looking at current symbol */ 47 48 /* external entries */ 49 50 dcl com_err_ entry options (variable), 51 hcs_$terminate_noname entry (ptr, fixed bin (35)), 52 ioa_ entry options (variable), 53 parse_file_$parse_file_cur_line ext entry (fixed bin, fixed bin), 54 parse_file_$parse_file_ptr ext entry (ptr, fixed bin, fixed bin (1), fixed bin (1)), 55 iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 56 57 /* */ 58 /* set the error message */ 59 error_message = arg_error_message; 60 61 BEGIN: 62 63 64 call com_err_ (code, "generate_mst", error_message); 65 66 code = 0; 67 error_message = ""; 68 69 if seg_name ^= "" then do; 70 call ioa_ ("Last segment name encountered in header was ^a", seg_name); 71 if symbol_ptr ^= null then do; 72 call parse_file_$parse_file_cur_line (char_index, char_num); 73 cur_ptr = addr (header_ptr -> header (char_index)); 74 call ioa_ ("current line is ^/^a", cur_line); 75 end; 76 end; 77 78 if iocb_ptr ^= null then do; 79 line_ptr -> line = "******"; /* blank out line and fill in stars */ 80 substr (line_ptr -> line, 43) = error_message; 81 call iox_$put_chars (iocb_ptr, line_ptr, 500, code); 82 end; 83 84 if (fatal_error_occurred) then return; 85 86 if fseg_ptr ^= null then do; /* terminate the initiated segment */ 87 call hcs_$terminate_noname (fseg_ptr, code); 88 if code ^= 0 then do; /* fatal error */ 89 error_message = "Unable to terminate found segment."; 90 fatal_error_occurred = "1"b; 91 go to BEGIN; 92 end; 93 else fseg_ptr = null; 94 end; 95 96 if (fini_was_found) then return; 97 if (terminator_was_just_processed) then return; 98 99 else if symbol_ptr ^= null then do; /* find "end" statement or terminator */ 100 ERR_LOOP: 101 call parse_file_$parse_file_ptr (symbol_ptr, num_chars_read, symbol_is_a_break, eof_was_found); 102 if symbol = "fini" then do; 103 fini_was_found = "1"b; 104 return; 105 end; 106 107 if eof_was_found = 1 then do; /* fatal error */ 108 fatal_error_occurred = "1"b; 109 error_message = "Physical end of header reached before end statement."; 110 go to BEGIN; 111 end; 112 113 if symbol = "end" then do; 114 terminator_was_just_processed = "1"b; 115 return; 116 end; 117 118 go to ERR_LOOP; 119 120 end; 121 122 return; 123 124 end gm_error_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/12/82 1113.6 gm_error_.pl1 >spec>on>11/12/82>gm_error_.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. addr builtin function dcl 30 ref 73 arg_error_message parameter char unaligned dcl 16 ref 11 59 char_index 000132 automatic fixed bin(17,0) dcl 36 set ref 72* 73 char_num 000133 automatic fixed bin(17,0) dcl 36 set ref 72* 74 74 code parameter fixed bin(35,0) dcl 16 set ref 11 61* 66* 81* 87* 88 com_err_ 000010 constant entry external dcl 50 ref 61 cur_line based char unaligned dcl 36 set ref 74* cur_ptr 000134 automatic pointer dcl 36 set ref 73* 74 eof_was_found 000140 automatic fixed bin(1,0) dcl 41 set ref 100* 107 error_message 000100 automatic varying char(100) dcl 32 set ref 59* 61* 67* 80 89* 109* fatal_error_occurred parameter bit(1) unaligned dcl 16 set ref 11 84 90* 108* fini_was_found parameter bit(1) unaligned dcl 16 set ref 11 96 103* fseg_ptr parameter pointer dcl 16 set ref 11 86 87* 93* hcs_$terminate_noname 000012 constant entry external dcl 50 ref 87 header based char(1) array unaligned dcl 36 set ref 73 header_ptr parameter pointer dcl 16 ref 11 73 ioa_ 000014 constant entry external dcl 50 ref 70 74 iocb_ptr parameter pointer dcl 16 set ref 11 78 81* iox_$put_chars 000022 constant entry external dcl 50 ref 81 line based char(95) unaligned dcl 32 set ref 79* 80* line_ptr parameter pointer dcl 16 set ref 11 79 80 81* null builtin function dcl 30 ref 71 78 86 93 99 num_chars_read 000136 automatic fixed bin(17,0) dcl 41 set ref 100* 102 113 parse_file_$parse_file_cur_line 000016 constant entry external dcl 50 ref 72 parse_file_$parse_file_ptr 000020 constant entry external dcl 50 ref 100 seg_name parameter char(32) dcl 16 set ref 11 69 70* substr builtin function dcl 30 set ref 80* symbol based char unaligned dcl 41 ref 102 113 symbol_is_a_break 000137 automatic fixed bin(1,0) dcl 41 set ref 100* symbol_ptr parameter pointer dcl 16 set ref 11 71 99 100* 102 113 terminator_was_just_processed parameter bit(1) unaligned dcl 16 set ref 11 97 114* NAMES DECLARED BY EXPLICIT CONTEXT. BEGIN 000126 constant label dcl 61 ref 91 110 ERR_LOOP 000372 constant label dcl 100 ref 118 gm_error_ 000102 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 560 604 455 570 Length 756 455 24 136 103 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gm_error_ 126 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gm_error_ 000100 error_message gm_error_ 000132 char_index gm_error_ 000133 char_num gm_error_ 000134 cur_ptr gm_error_ 000136 num_chars_read gm_error_ 000137 symbol_is_a_break gm_error_ 000140 eof_was_found gm_error_ 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_ hcs_$terminate_noname ioa_ iox_$put_chars parse_file_$parse_file_cur_line parse_file_$parse_file_ptr NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000072 59 000115 61 000126 66 000154 67 000156 69 000157 70 000164 71 000204 72 000211 73 000222 74 000232 78 000255 79 000262 80 000267 81 000273 84 000312 86 000320 87 000324 88 000335 89 000340 90 000345 91 000351 93 000352 96 000354 97 000361 99 000366 100 000372 102 000410 103 000420 104 000424 107 000425 108 000430 109 000434 110 000441 113 000442 114 000446 115 000452 118 000453 122 000454 ----------------------------------------------------------- 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