COMPILATION LISTING OF SEGMENT bjm_close Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0939.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This procedure is the interface into the close operation of before 10* journal manager. The actual steps in closing are embodied in the 11* procedure bj_close_oid. This was implemented so that other bjm 12* primitives can call the close code without worry about a recursion error. 13* 14* This procedure locks the PST as per the requirement of bj_close_oid. 15**/ 16 17 /* HISTORY: 18*Written by Mike Pandolf, 07/06/82. 19*Modified: 20*08/24/82 by M. Pandolf: to separate code fom wrapper. 21*11/11/82 by M. Pandolf: to use standard entry and exit protocol. 22*11/21/82 by M. Pandolf: to lock the PST before calling bj_close_oid. 23*04/06/83 by A. Bensoussan: to add the entry point $after_recovery. 24*12/06/83 by L. A. Newcomb: Renamed before_journal_manager_static_ to 25* bjm_data_ and moved some cells from dm_data_ to bjm_data_. 26*10/22/84 by M. Sharpe: to convert to use "call ERROR_RETURN (code)" 27* convention, to clean up format and variable names, to 28* reset bjm_data_$bj_exit_err to bjm_data_$default_error_label 29*03/19/85 by Steve Herbst: Fixed to initialize bjm_data_$bj_code. 30**/ 31 32 /* format: style4,indattr,ifthenstmt,ifthen,^indcomtxt,idind33 */ 33 34 bjm_close: 35 procedure (p_bj_oid, p_code); 36 37 38 /* DECLARATIONS */ 39 40 /* Parameter */ 41 42 dcl p_bj_oid bit (36) aligned parameter; /* OID of before journal to be closed */ 43 dcl p_code fixed bin (35) parameter; /* standard system status code */ 44 45 46 /* Automatic */ 47 48 dcl close_after_recovery bit(1); 49 50 51 /* Condition */ 52 53 dcl cleanup condition; 54 55 56 /* Constant */ 57 58 dcl ME char (12) internal static options (constant) init ("bjm_close"); 59 60 61 62 /* Entry */ 63 64 dcl bj_cleanup_tables$handler entry (fixed bin(35)); 65 dcl bj_close_oid entry (bit(36) aligned); 66 dcl bj_close_oid$after_recovery entry (bit(36) aligned); 67 dcl bj_pst_lock entry (); 68 dcl bj_pst_lock$unlock entry (); 69 70 /* External Static */ 71 72 dcl dm_error_$bj_recursive_invoc fixed bin (35) external static; 73 74 75 /* Standard entry point */ 76 77 close_after_recovery = "0"b; 78 goto COMMON; 79 80 81 after_recovery: entry (p_bj_oid, p_code); 82 83 close_after_recovery = "1"b; 84 goto COMMON; 85 86 COMMON: 87 88 /* initially set status code */ 89 90 p_code = 0; 91 92 /* set up before journal error recovery environment */ 93 94 if bjm_data_$bj_operation = "" 95 then bjm_data_$bj_operation = ME; 96 else do; 97 p_code = dm_error_$bj_recursive_invoc; 98 goto MAIN_RETURN; 99 end; 100 101 on cleanup call CLEANUP; 102 103 bjm_data_$bj_exit_err = nonlocal_error_exit; 104 bjm_data_$bj_code = 0; 105 106 /* call the support routine */ 107 108 call bj_pst_lock (); 109 110 if close_after_recovery = "0"b 111 then call bj_close_oid (p_bj_oid); 112 else call bj_close_oid$after_recovery (p_bj_oid); 113 114 call bj_pst_lock$unlock (); 115 116 /* simple return */ 117 118 bjm_data_$bj_operation = ""; 119 120 bjm_data_$bj_exit_err = 121 bjm_data_$bj_default_error_label; 122 123 MAIN_RETURN: 124 return; 125 126 nonlocal_error_exit: 127 call ERROR_RETURN (bjm_data_$bj_code); 128 129 130 /* INTERNAL PROCEDURES */ 131 132 ERROR_RETURN: 133 procedure (error_code); 134 135 dcl error_code fixed bin (35); 136 137 call CLEANUP; 138 p_code = error_code; 139 goto MAIN_RETURN; 140 141 end ERROR_RETURN; 142 143 144 145 CLEANUP: procedure (); 146 147 dcl cleanup_code fixed bin (35); 148 149 call bj_cleanup_tables$handler (cleanup_code); 150 151 bjm_data_$bj_operation = ""; 152 bjm_data_$bj_exit_err = 153 bjm_data_$bj_default_error_label; 154 155 return; 156 157 end CLEANUP; 158 159 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 */ 160 161 162 163 end bjm_close; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.1 bjm_close.pl1 >spec>on>7192.pbf-04/04/85>bjm_close.pl1 160 1 01/07/85 0857.3 dm_bj_global_error_info.incl.pl1 >ldd>include>dm_bj_global_error_info.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. ME 000000 constant char(12) initial unaligned dcl 58 ref 94 bj_cleanup_tables$handler 000010 constant entry external dcl 64 ref 149 bj_close_oid 000012 constant entry external dcl 65 ref 110 bj_close_oid$after_recovery 000014 constant entry external dcl 66 ref 112 bj_pst_lock 000016 constant entry external dcl 67 ref 108 bj_pst_lock$unlock 000020 constant entry external dcl 68 ref 114 bjm_data_$bj_code 000030 external static fixed bin(35,0) dcl 1-19 set ref 104* 126* bjm_data_$bj_default_error_label 000032 external static label variable dcl 1-21 ref 120 152 bjm_data_$bj_exit_err 000026 external static label variable dcl 1-17 set ref 103* 120* 152* bjm_data_$bj_operation 000024 external static char(32) unaligned dcl 1-15 set ref 94 94* 118* 151* cleanup 000102 stack reference condition dcl 53 ref 101 cleanup_code 000100 automatic fixed bin(35,0) dcl 147 set ref 149* close_after_recovery 000100 automatic bit(1) unaligned dcl 48 set ref 77* 83* 110 dm_error_$bj_recursive_invoc 000022 external static fixed bin(35,0) dcl 72 ref 97 error_code parameter fixed bin(35,0) dcl 135 ref 132 138 p_bj_oid parameter bit(36) dcl 42 set ref 34 81 110* 112* p_code parameter fixed bin(35,0) dcl 43 set ref 34 81 86* 97* 138* NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 000200 constant entry internal dcl 145 ref 101 137 COMMON 000035 constant label dcl 86 ref 78 84 ERROR_RETURN 000164 constant entry internal dcl 132 ref 126 MAIN_RETURN 000153 constant label dcl 123 ref 98 139 after_recovery 000025 constant entry external dcl 81 bjm_close 000014 constant entry external dcl 34 nonlocal_error_exit 000154 constant label dcl 126 ref 103 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 406 442 227 416 Length 650 227 34 171 156 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bjm_close 88 external procedure is an external procedure. on unit on line 101 64 on unit ERROR_RETURN internal procedure shares stack frame of external procedure bjm_close. CLEANUP 70 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEANUP 000100 cleanup_code CLEANUP bjm_close 000100 close_after_recovery bjm_close THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out call_int_this call_int_other return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bj_cleanup_tables$handler bj_close_oid bj_close_oid$after_recovery bj_pst_lock bj_pst_lock$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bjm_data_$bj_code bjm_data_$bj_default_error_label bjm_data_$bj_exit_err bjm_data_$bj_operation dm_error_$bj_recursive_invoc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 34 000010 77 000021 78 000022 81 000023 83 000032 84 000034 86 000035 94 000037 97 000051 98 000053 101 000054 103 000076 104 000103 108 000104 110 000110 112 000123 114 000133 118 000140 120 000145 123 000153 126 000154 163 000163 132 000164 137 000166 138 000172 139 000176 145 000177 149 000205 151 000213 152 000220 155 000226 ----------------------------------------------------------- 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