COMPILATION LISTING OF SEGMENT checker_print_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 06/04/84 1253.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 12 /* CHECKER_PRINT_ - Output Routine for the MST Checker. 13* Initial coding - T. Skinner, June 10, 1969 14* Revised by N. I. Morris, October 1, 1969 15* iox'ed November 2, 1976 by N. I. Morris */ 16 17 /* Modified BIM 8/82 new checker */ 18 19 checker_print_: procedure options (variable); 20 1 1 /* Begin include file checker_dcls_.incl.pl1 BIM 7/82 */ 1 2 /* Modified for loaded by Keith Loepere, December 1983 */ 1 3 /* format: style3,idind30 */ 1 4 1 5 dcl checker_data_$temp_ptrs (4) ptr external static; 1 6 dcl checker_data_$slt_ptr ptr external static; 1 7 dcl checker_data_$area_ptr ptr external static; 1 8 dcl checker_area area (sys_info$max_seg_size) based (checker_data_$area_ptr); 1 9 1 10 dcl checker_data_$name_table_ptr ptr external static; 1 11 dcl checker_data_$buffer_ptr ptr external static; 1 12 dcl checker_data_$meter_ptr ptr external static; 1 13 1 14 dcl checker_data_$input_iocbp ptr ext static; 1 15 dcl checker_data_$output_iocbp ptr ext static; 1 16 1 17 1 18 dcl checker_data_$last_wired_collection 1 19 fixed bin external static; 1 20 dcl checker_data_$last_text_wired_collection 1 21 fixed bin external static; 1 22 dcl checker_data_$last_supervisor_collection 1 23 fixed bin external static; 1 24 1 25 dcl 1 checker_data_$collection_names (0:10) external static, 1 26 2 major fixed bin, 1 27 2 minor fixed bin; 1 28 1 29 dcl checker_data_$loaded (0:10) external static bit (1) aligned; 1 30 1 31 dcl checker_data_$n_temp_ptrs fixed bin external static; 1 32 1 33 dcl checker_data_$severity fixed bin external static; 1 34 1 35 dcl 1 meters aligned based (checker_data_$meter_ptr), 1 36 2 sizes aligned, 1 37 3 wired_ai_linkage_size fixed bin, 1 38 3 paged_ai_linkage_size fixed bin, 1 39 3 wired_wi_linkage_size fixed bin, 1 40 3 paged_wi_linkage_size fixed bin, 1 41 3 wired_as_linkage_size fixed bin, 1 42 3 paged_as_linkage_size fixed bin, 1 43 3 wired_ws_linkage_size fixed bin, 1 44 3 paged_ws_linkage_size fixed bin, 1 45 3 wired_definitions_size fixed bin, 1 46 3 paged_definitions_size fixed bin, 1 47 2 wired_nt_size fixed bin, 1 48 2 paged_nt_size fixed bin, 1 49 2 overflown aligned, 1 50 3 (wired_ai_linkage, paged_ai_linkage, wired_wi_linkage, 1 51 paged_wi_linkage, wired_as_linkage, paged_as_linkage, 1 52 wired_ws_linkage, paged_ws_linkage, 1 53 wired_definitions, paged_definitions, 1 54 wired_nt, paged_nt, 1 55 wired_storage) bit (1) unaligned, 1 56 2 counts aligned, 1 57 3 wired_sdw_count fixed bin, 1 58 3 paged_sdw_count fixed bin, 1 59 3 wired_slte_count fixed bin, 1 60 3 paged_slte_count fixed bin, 1 61 2 wired_nt_used fixed bin, 1 62 2 paged_nt_used fixed bin, 1 63 2 used aligned, 1 64 3 wired_ai_linkage_used fixed bin, 1 65 3 paged_ai_linkage_used fixed bin, 1 66 3 wired_wi_linkage_used fixed bin, 1 67 3 paged_wi_linkage_used fixed bin, 1 68 3 wired_as_linkage_used fixed bin, 1 69 3 paged_as_linkage_used fixed bin, 1 70 3 wired_ws_linkage_used fixed bin, 1 71 3 paged_ws_linkage_used fixed bin, 1 72 3 wired_definitions_used fixed bin, 1 73 3 paged_definitions_used fixed bin, 1 74 2 per_collection (0:10) aligned, 1 75 3 read bit (1) aligned, 1 76 3 mark aligned, 1 77 4 major fixed bin, 1 78 4 minor fixed bin, 1 79 3 first_segment fixed bin (18), 1 80 3 last_segment fixed bin (18), 1 81 3 segment_count fixed bin (17), 1 82 3 words_used fixed bin (35), /* for wired */ 1 83 3 pages_used fixed bin (35), /* for paged */ 1 84 3 wired_pages_used fixed bin (35), /* for both! */ 1 85 3 perm_segment_count fixed bin, /* stay forever */ 1 86 3 temp_segment_count fixed bin, /* one collection */ 1 87 3 init_segment_count fixed bin, /* all of initialization */ 1 88 3 user_ring_segment_count fixed bin, 1 89 3 user_ring_segment_pages fixed bin, 1 90 3 ai_linkage_used fixed bin, 1 91 3 wi_linkage_used fixed bin, 1 92 3 as_linkage_used fixed bin, 1 93 3 ws_linkage_used fixed bin, 1 94 3 definitions_used fixed bin, 1 95 3 name_table_used fixed bin, 1 96 2 per_segment (0:1024) aligned, 1 97 3 collection fixed bin, 1 98 3 next fixed bin (18), 1 99 3 link_ptr pointer unaligned, 1 100 3 defs_ptr pointer unaligned; 1 101 1 102 declare segment_links_ptr pointer; 1 103 declare 1 segment_links aligned based (segment_links_ptr), 1 104 2 n_links fixed bin, 1 105 2 per_link (a_n_links refer (segment_links.n_links)) aligned, 1 106 3 expression_relps fixed bin (18) uns unal, 1 107 3 modifiers bit (6) unal; 1 108 1 109 /* rel pointers into def section stored in area */ 1 110 1 111 declare a_n_links fixed bin; 1 112 1 113 declare segment_defs_ptr pointer; 1 114 declare 1 segment_defs based (segment_defs_ptr) aligned, 1 115 2 length fixed bin, 1 116 2 definitions (a_defs_length refer (segment_defs.length)) bit (36) aligned; 1 117 1 118 declare a_defs_length fixed bin; 1 119 1 120 declare (CHECKER_WARNING init (1), /* */ 1 121 CHECKER_ERROR init (2), /* */ 1 122 CHECKER_SEVERE init (3), /* */ 1 123 CHECKER_FATAL init (4)) fixed bin int static options (constant); 1 124 1 125 declare ERROR_NAMES (1:4) char (16) init ("WARNING", "ERROR", "SEVERE ERROR", "FATAL ERROR") int static options (constant); 1 126 1 127 /* End include file checker_dcls_.incl.pl1 */ 21 22 23 24 dcl iox_$error_output ptr ext static; 25 dcl check_mst_severity_ fixed bin external; 26 27 dcl checker_data_$time_string char (24) static; 28 dcl com_err_ entry () options (variable); 29 dcl ioa_ entry options (variable); 30 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 31 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 32 33 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, bit (1) aligned); 34 dcl ioa_$rsnnl entry() options (variable); 35 dcl ioa_$ioa_switch entry () options (variable); 36 dcl cu_$arg_list_ptr entry returns (pointer); 37 dcl date_time_ entry (fixed bin (71), char (*)); 38 dcl error_table_$fatal_error fixed bin(35) ext static; 39 dcl (cs, ff) fixed bin; 40 dcl (output_buffer, file_message) char (136); 41 dcl message char (100) aligned; 42 dcl segname char (32); 43 dcl prefix char (24); 44 dcl severity fixed bin; 45 dcl based_fb fixed bin based; 46 dcl based_fb_35 fixed bin (35) based; 47 dcl ap pointer; 48 dcl al fixed bin (21); 49 dcl argument char (al) based (ap); 50 dcl code fixed bin (35); 51 dcl error_switch bit (1) aligned; 52 dcl term_switch bit (1) aligned; 53 54 dcl (clock, max, rtrim) builtin; 55 56 dcl checker_fatal_error_ condition; 57 58 59 error_switch = "0"b; 60 cs = 1; /* control arg */ 61 ff = 2; /* first substitute arg */ 62 go to COMMON; 63 64 error: 65 entry options (variable); 66 67 /* call checker_print_$error (SEVERITY, CODE, segname, cs, arg1 ... argn); */ 68 69 term_switch = "0"b; 70 go to ERROR_COMMON; 71 72 error_term: 73 entry options (variable); 74 75 term_switch = "1"b; /* Print only on terminal */ 76 ERROR_COMMON: 77 error_switch = "1"b; 78 cs = 4; 79 ff = 5; 80 81 call cu_$arg_ptr (1, ap, (0), (0)); 82 severity = ap -> based_fb; 83 call cu_$arg_ptr (2, ap, (0), (0)); 84 code = ap -> based_fb_35; 85 call cu_$arg_ptr (3, ap, al, (0)); 86 segname = argument; 87 COMMON: 88 89 output_buffer = ""; 90 call ioa_$general_rs (cu_$arg_list_ptr (), cs, ff, output_buffer, (0), "1"b, "0"b); 91 92 if ^error_switch 93 then do; 94 if output_buffer ^= "" 95 then call ioa_$ioa_switch (checker_data_$output_iocbp, "^a", output_buffer); 96 return; 97 end; 98 99 prefix = ERROR_NAMES (severity); 100 101 message = ""; 102 if code ^= 0 103 then call convert_status_code_ (code, (8)" ", message); 104 105 if ^term_switch 106 then call ioa_$ioa_switch (checker_data_$output_iocbp, 107 "***** ^a: ^a ^a", prefix, message, output_buffer); 108 109 check_mst_severity_ = max (check_mst_severity_, severity); 110 if severity <= checker_data_$severity 111 then return; /* No print on terminal */ 112 call ioa_$ioa_switch (iox_$error_output, ""); 113 call ioa_$ioa_switch (iox_$error_output, 114 "^a ^a: ^a ^a", prefix, segname, message, output_buffer); 115 return; 116 117 page: 118 entry; 119 call ioa_$ioa_switch (checker_data_$output_iocbp, "^|"); 120 return; 121 122 skip: 123 entry; 124 call ioa_$ioa_switch (checker_data_$output_iocbp, ""); 125 return; 126 127 init: entry; 128 check_mst_severity_ = 0; 129 return; 130 131 final: 132 entry; 133 if check_mst_severity_ > 2 134 then call com_err_ (error_table_$fatal_error, "check_mst", 135 "Errors of severity 3 encountered."); 136 return; 137 end checker_print_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/04/84 1242.1 checker_print_.pl1 >spec>temp>bce>on>checker_print_.pl1 21 1 06/01/84 1103.1 checker_dcls_.incl.pl1 >spec>temp>bce>on>checker_dcls_.incl.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. ERROR_NAMES 000000 constant char(16) initial array unaligned dcl 1-125 ref 99 al 000216 automatic fixed bin(21,0) dcl 48 set ref 85* 86 ap 000214 automatic pointer dcl 47 set ref 81* 82 83* 84 85* 86 argument based char unaligned dcl 49 ref 86 based_fb based fixed bin(17,0) dcl 45 ref 82 based_fb_35 based fixed bin(35,0) dcl 46 ref 84 check_mst_severity_ 000016 external static fixed bin(17,0) dcl 25 set ref 109* 109 128* 133 checker_data_$output_iocbp 000010 external static pointer dcl 1-15 set ref 94* 105* 119* 124* checker_data_$severity 000012 external static fixed bin(17,0) dcl 1-33 ref 110 code 000217 automatic fixed bin(35,0) dcl 50 set ref 84* 102 102* com_err_ 000020 constant entry external dcl 28 ref 133 convert_status_code_ 000022 constant entry external dcl 30 ref 102 cs 000100 automatic fixed bin(17,0) dcl 39 set ref 60* 78* 90* cu_$arg_list_ptr 000032 constant entry external dcl 36 ref 90 90 cu_$arg_ptr 000024 constant entry external dcl 31 ref 81 83 85 error_switch 000220 automatic bit(1) dcl 51 set ref 59* 76* 92 error_table_$fatal_error 000034 external static fixed bin(35,0) dcl 38 set ref 133* ff 000101 automatic fixed bin(17,0) dcl 39 set ref 61* 79* 90* ioa_$general_rs 000026 constant entry external dcl 33 ref 90 ioa_$ioa_switch 000030 constant entry external dcl 35 ref 94 105 112 113 119 124 iox_$error_output 000014 external static pointer dcl 24 set ref 112* 113* max builtin function dcl 54 ref 109 message 000144 automatic char(100) dcl 41 set ref 101* 102* 105* 113* output_buffer 000102 automatic char(136) unaligned dcl 40 set ref 87* 90* 94 94* 105* 113* prefix 000205 automatic char(24) unaligned dcl 43 set ref 99* 105* 113* segname 000175 automatic char(32) unaligned dcl 42 set ref 86* 113* severity 000213 automatic fixed bin(17,0) dcl 44 set ref 82* 99 109 110 term_switch 000221 automatic bit(1) dcl 52 set ref 69* 75* 105 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CHECKER_ERROR internal static fixed bin(17,0) initial dcl 1-120 CHECKER_FATAL internal static fixed bin(17,0) initial dcl 1-120 CHECKER_SEVERE internal static fixed bin(17,0) initial dcl 1-120 CHECKER_WARNING internal static fixed bin(17,0) initial dcl 1-120 a_defs_length automatic fixed bin(17,0) dcl 1-118 a_n_links automatic fixed bin(17,0) dcl 1-111 checker_area based area dcl 1-8 checker_data_$area_ptr external static pointer dcl 1-7 checker_data_$buffer_ptr external static pointer dcl 1-11 checker_data_$collection_names external static structure array level 1 unaligned dcl 1-25 checker_data_$input_iocbp external static pointer dcl 1-14 checker_data_$last_supervisor_collection external static fixed bin(17,0) dcl 1-22 checker_data_$last_text_wired_collection external static fixed bin(17,0) dcl 1-20 checker_data_$last_wired_collection external static fixed bin(17,0) dcl 1-18 checker_data_$loaded external static bit(1) array dcl 1-29 checker_data_$meter_ptr external static pointer dcl 1-12 checker_data_$n_temp_ptrs external static fixed bin(17,0) dcl 1-31 checker_data_$name_table_ptr external static pointer dcl 1-10 checker_data_$slt_ptr external static pointer dcl 1-6 checker_data_$temp_ptrs external static pointer array dcl 1-5 checker_data_$time_string internal static char(24) unaligned dcl 27 checker_fatal_error_ 000000 stack reference condition dcl 56 clock builtin function dcl 54 date_time_ 000000 constant entry external dcl 37 file_message automatic char(136) unaligned dcl 40 ioa_ 000000 constant entry external dcl 29 ioa_$rsnnl 000000 constant entry external dcl 34 meters based structure level 1 dcl 1-35 rtrim builtin function dcl 54 segment_defs based structure level 1 dcl 1-114 segment_defs_ptr automatic pointer dcl 1-113 segment_links based structure level 1 dcl 1-103 segment_links_ptr automatic pointer dcl 1-102 NAMES DECLARED BY EXPLICIT CONTEXT. COMMON 000227 constant label dcl 87 ref 62 ERROR_COMMON 000126 constant label dcl 76 ref 70 checker_print_ 000073 constant entry external dcl 19 error 000107 constant entry external dcl 64 error_term 000117 constant entry external dcl 72 final 000602 constant entry external dcl 131 init 000571 constant entry external dcl 127 page 000517 constant entry external dcl 117 skip 000545 constant entry external dcl 122 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1060 1116 643 1070 Length 1334 643 36 202 214 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME checker_print_ 206 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME checker_print_ 000100 cs checker_print_ 000101 ff checker_print_ 000102 output_buffer checker_print_ 000144 message checker_print_ 000175 segname checker_print_ 000205 prefix checker_print_ 000213 severity checker_print_ 000214 ap checker_print_ 000216 al checker_print_ 000217 code checker_print_ 000220 error_switch checker_print_ 000221 term_switch checker_print_ 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_ convert_status_code_ cu_$arg_list_ptr cu_$arg_ptr ioa_$general_rs ioa_$ioa_switch THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. check_mst_severity_ checker_data_$output_iocbp checker_data_$severity error_table_$fatal_error iox_$error_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000072 59 000100 60 000101 61 000103 62 000105 64 000106 69 000114 70 000115 72 000116 75 000124 76 000126 78 000130 79 000132 81 000134 82 000155 83 000157 84 000200 85 000202 86 000222 87 000227 90 000232 92 000305 94 000307 96 000336 99 000337 101 000345 102 000350 105 000367 109 000426 110 000434 112 000437 113 000453 115 000515 117 000516 119 000524 120 000543 122 000544 124 000552 125 000567 127 000570 128 000576 129 000600 131 000601 133 000607 136 000642 ----------------------------------------------------------- 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