COMPILATION LISTING OF SEGMENT bj_report_err Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0938.2 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* format: style4,indattr,ifthenstmt,ifthen,^indcomtxt,idind33 */ 8 9 bj_report_err: 10 procedure (p_code, p_caller_name); 11 12 /* DESCRIPTION 13* 14* The gateway through which before journal manager support routines 15* tell before journal manager subroutine interfaces that an error has 16* occurred. this procedure will make the error code available to the 17* before journal manager in a global basis, log the error in the system 18* log, and either return to the before journal manager interface 19* procedure or signal an error. the intelligence needed to decide 20* whether or not to signal an error resides in this procedure. 21* 22* Arguments: 23* 24* p_code - INPUT, standard status code of error 25* p_caller_name - INPUT, name of support routine that took the error 26**/ 27 28 /* HISTORY 29*Written by M. Pandolf, 05/24/83. 30*Modified: 31*12/06/83 by L. A. Newcomb: Renamed before_journal_manager_static_ to 32* bjm_data_ and moved some cells from dm_data_ to bjm_data_. 33*02/05/85 by Stanford Cox: Added trailing "_" to transaction_bj_full_ condition. 34*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 35**/ 36 37 /* copy the error code into a externally available location */ 38 39 bjm_data_$bj_code = p_code; 40 41 /* log the error in the data management log. we assume errors are few */ 42 43 call dm_misc_util_$log (LOG_SV, p_code, p_caller_name, 44 "When called by ^a in transaction ^o.", 45 bjm_data_$bj_operation, dm_data_$current_txn_id); 46 47 /* 48* this next portion of code sends the error in one of two directions: either 49* a non standard return is made to a predefined location or a condition is 50* signalled. there is no slick way to test and branch - the error code must 51* be checked to see if it is one of those requiring a signal. 52**/ 53 54 if p_code = dm_error_$bj_journal_full 55 then do; 56 57 call FILL_SIGNAL_STRUCTURE (); 58 call signal_ ("transaction_bj_full_", null (), addr (my_signal_structure)); 59 60 end; 61 62 else do; 63 64 goto bjm_data_$bj_exit_err; 65 66 end; 67 68 69 70 /* INTERNAL PROCEDURE */ 71 72 FILL_SIGNAL_STRUCTURE: 73 procedure (); 74 75 my_signal_structure.length = size (my_signal_structure); 76 my_signal_structure.version = 1; 77 my_signal_structure.action_flags.cant_restart = "1"b; 78 my_signal_structure.action_flags.default_restart = "0"b; 79 my_signal_structure.action_flags.quiet_restart = "0"b; 80 my_signal_structure.action_flags.support_signal = "0"b; 81 my_signal_structure.action_flags.pad = ""b; 82 my_signal_structure.info_string = ""; 83 my_signal_structure.status_code = p_code; 84 85 return; 86 87 end FILL_SIGNAL_STRUCTURE; 88 89 90 91 /* DECLARATIONS */ 92 93 /* Parameters */ 94 95 dcl p_code fixed bin (35) parameter; 96 dcl p_caller_name char (*); 97 98 /* Automatic */ 99 100 dcl 1 my_signal_structure aligned like condition_info_header; 101 102 /* Static, External */ 103 104 dcl dm_data_$current_txn_id bit (36) aligned external static; 105 dcl dm_error_$bj_journal_full fixed bin (35) ext static; 106 107 /* Entry */ 108 109 dcl dm_misc_util_$log entry () options (variable); 110 dcl signal_ entry () options (variable); 111 112 /* Builtin */ 113 114 dcl null builtin; 115 dcl size builtin; 116 117 /* Include Files */ 118 119 1 1 /* BEGIN INCLUDE FILE dm_bj_global_error_info.incl.pl1 */ 1 2 1 3 /* Originally found in before journal primitives written by */ 1 4 /* A. Bensoussan. Gathered into an include file for ease of use. */ 1 5 /* See the bjm_data_.alm source for details of use. */ 1 6 1 7 /* HISTORY: 1 8*Written by Mike Pandolf, 07/14/82. 1 9*Modified: 1 10*12/06/83 by L. A. Newcomb: Renamed before_journal_manager_static_ to 1 11* bjm_data_ and moved some cells from dm_data_ to bjm_data_. 1 12**/ 1 13 1 14 /* format: style4,indattr,ifthenstmt,ifthen,^indcomtxt,idind33 */ 1 15 dcl bjm_data_$bj_operation char (32) external static; 1 16 1 17 dcl bjm_data_$bj_exit_err label variable external; 1 18 1 19 dcl bjm_data_$bj_code fixed bin (35) external; 1 20 1 21 dcl bjm_data_$bj_default_error_label label external static; 1 22 1 23 1 24 /* END INCLUDE FILE dm_bj_global_error_info.incl.pl1 */ 120 121 2 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 2 2 2 3 /* format: ^indcom */ 2 4 2 5 /* DESCRIPTION: 2 6* These are the severity codes used by the dms daemon when calling its logger. 2 7* The severity is ranked thusly: 2 8* 2 9* severity log write situation 2 10* -------- --- ----- --------- 2 11* 0 no yes standard output, query, etc. 2 12* 1 yes yes fatal error, terminate dms daemon. 2 13* 2 yes yes nonfatal error. 2 14* 3 yes yes informative message. 2 15* 4 yes no log information only. 2 16**/ 2 17 2 18 /* HISTORY: 2 19* 2 20*Written by M. Pandolf, 10/06/82. 2 21*Modified: 2 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 2 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 2 24* dm_daemon_sv_codes as the severity codes for the DM log are not 2 25* restrained to the DM Daemon's use. 2 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 2 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 2 28**/ 2 29 2 30 /* format: style5 */ 2 31 2 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 2 33 options (constant) init (0); 2 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 2 35 options (constant) init (1); 2 36 dcl ERROR_SV fixed bin internal static 2 37 options (constant) init (2); 2 38 dcl INFORM_SV fixed bin internal static 2 39 options (constant) init (3); 2 40 dcl LOG_SV fixed bin internal static 2 41 options (constant) init (4); 2 42 2 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 122 123 3 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 3 2 /* format: style2 */ 3 3 3 4 declare condition_info_header_ptr 3 5 pointer; 3 6 declare 1 condition_info_header 3 7 aligned based (condition_info_header_ptr), 3 8 2 length fixed bin, /* length in words of this structure */ 3 9 2 version fixed bin, /* version number of this structure */ 3 10 2 action_flags aligned, /* tell handler how to proceed */ 3 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 3 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 3 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 3 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 3 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 3 16 3 pad bit (32) unaligned, 3 17 2 info_string char (256) varying, /* may contain printable message */ 3 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 3 19 3 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 124 125 126 127 end bj_report_err; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.1 bj_report_err.pl1 >spec>on>7192.pbf-04/04/85>bj_report_err.pl1 120 1 01/07/85 0857.3 dm_bj_global_error_info.incl.pl1 >ldd>include>dm_bj_global_error_info.incl.pl1 122 2 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>dm_log_sv_codes.incl.pl1 124 3 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.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. LOG_SV 000000 constant fixed bin(17,0) initial dcl 2-40 set ref 43* action_flags 2 000100 automatic structure level 2 dcl 100 bjm_data_$bj_code 000024 external static fixed bin(35,0) dcl 1-19 set ref 39* bjm_data_$bj_exit_err 000022 external static label variable dcl 1-17 ref 64 bjm_data_$bj_operation 000020 external static char(32) unaligned dcl 1-15 set ref 43* cant_restart 2 000100 automatic bit(1) level 3 packed unaligned dcl 100 set ref 77* condition_info_header based structure level 1 dcl 3-6 default_restart 2(01) 000100 automatic bit(1) level 3 packed unaligned dcl 100 set ref 78* dm_data_$current_txn_id 000010 external static bit(36) dcl 104 set ref 43* dm_error_$bj_journal_full 000012 external static fixed bin(35,0) dcl 105 ref 54 dm_misc_util_$log 000014 constant entry external dcl 109 ref 43 info_string 3 000100 automatic varying char(256) level 2 dcl 100 set ref 82* length 000100 automatic fixed bin(17,0) level 2 dcl 100 set ref 75* my_signal_structure 000100 automatic structure level 1 dcl 100 set ref 58 58 75 null builtin function dcl 114 ref 58 58 p_caller_name parameter char unaligned dcl 96 set ref 9 43* p_code parameter fixed bin(35,0) dcl 95 set ref 9 39 43* 54 83 pad 2(04) 000100 automatic bit(32) level 3 packed unaligned dcl 100 set ref 81* quiet_restart 2(02) 000100 automatic bit(1) level 3 packed unaligned dcl 100 set ref 79* signal_ 000016 constant entry external dcl 110 ref 58 size builtin function dcl 115 ref 75 status_code 104 000100 automatic fixed bin(35,0) level 2 dcl 100 set ref 83* support_signal 2(03) 000100 automatic bit(1) level 3 packed unaligned dcl 100 set ref 80* version 1 000100 automatic fixed bin(17,0) level 2 dcl 100 set ref 76* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH_SV internal static fixed bin(17,0) initial dcl 2-34 ERROR_SV internal static fixed bin(17,0) initial dcl 2-36 FATAL_SV internal static fixed bin(17,0) initial dcl 2-34 INFORM_SV internal static fixed bin(17,0) initial dcl 2-38 PRINT_SV internal static fixed bin(17,0) initial dcl 2-32 QUERY_SV internal static fixed bin(17,0) initial dcl 2-32 bjm_data_$bj_default_error_label external static label variable dcl 1-21 condition_info_header_ptr automatic pointer dcl 3-4 NAMES DECLARED BY EXPLICIT CONTEXT. FILL_SIGNAL_STRUCTURE 000157 constant entry internal dcl 72 ref 57 bj_report_err 000036 constant entry external dcl 9 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 58 58 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 322 350 206 332 Length 602 206 26 216 113 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bj_report_err 182 external procedure is an external procedure. FILL_SIGNAL_STRUCTURE internal procedure shares stack frame of external procedure bj_report_err. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bj_report_err 000100 my_signal_structure bj_report_err THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return tra_label_var ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dm_misc_util_$log signal_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bjm_data_$bj_code bjm_data_$bj_exit_err bjm_data_$bj_operation dm_data_$current_txn_id dm_error_$bj_journal_full LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000032 39 000051 43 000054 54 000113 57 000120 58 000121 60 000153 64 000154 127 000156 72 000157 75 000160 76 000162 77 000164 78 000166 79 000170 80 000172 81 000174 82 000176 83 000177 85 000202 ----------------------------------------------------------- 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