THIS FILE IS DAMAGED J&ֆQ5'/O)J$/N Q-.{O /(;UF]=bN ?j3-_G {0}E,4%z] z. N NQ5hԈrĀ,-B'H"}}6W&o! ZC~M0+X%aJ "R @eN,X( @?#?#QGàà P1ZQ5/Q5kQ5/Q5aV#iB# B#@ی/@'# HB#@~Q݄|)? arla/>j?8vMO ?x hwf]jiQN,? jpb0>j?Ix O$x h]iQBZMR12.5 QHo _x'dKIJr@Q9+"nI{n}rk8EKQBO~X /N^ Q-.{ML 8(;VP=-w ?j3-_G {0}F,6%z] z. QC>crU.,MB`'H"}}6W&o! 5W\{IJ+voOa " ] @eN,X(@?#?#QGàà P1ZQCԜQC#* char (32) varying internal static 75 options (constant); 76 77 /* Entry */ 78 79 dcl sub_err_ entry () options (variable); 80 81 /* External */ 82 83 dcl error_table_$unimplemented_version 84 ext fixed bin (35); 85 86 /* END OF DECLARATIONS */ 87 88 shutdown_info_1_ptr = p_shutdown_info_1_ptr; 89 shutdown_info_2_ptr = p_shutdown_info_2_ptr; 90 resultant_shutdown_info_ptr = p_resultant_shutdown_info_ptr; 91 92 call CHECK_VERSION (shutdown_info_1_ptr -> shutdown_info.version, 93 SHUTDOWN_INFO_VERSION_1, "shutdown_info"); 94 call CHECK_VERSION (shutdown_info_2_ptr -> shutdown_info.version, 95 SHUTDOWN_INFO_VERSION_1, "shutdown_info"); 96 call CHECK_VERSION (resultant_shutdown_info_ptr -> shutdown_info.version, 97 SHUTDOWN_INFO_VERSION_1, "shutdown_info"); 98 99 if unspec (shutdown_info_1_ptr -> shutdown_info.times) = ""b 100 then 101 TAKE_LATTER: /* 0:>0 or 0:0 case */ 102 resultant_shutdown_info_ptr -> shutdown_info.times = 103 shutdown_info_2_ptr -> shutdown_info.times; 104 else if unspec (shutdown_info_2_ptr -> shutdown_info.times) = ""b 105 then 106 TAKE_FORMER: /* >0:0 case */ 107 resultant_shutdown_info_ptr -> shutdown_info.times = 108 shutdown_info_1_ptr -> shutdown_info.times; 109 else 110 TAKE_LESSER: /* >0:>0 case */ 111 do; /* format: off */ 112 resultant_shutdown_info_ptr -> shutdown_info.times.user_warning_time = 113 min ( 114 shutdown_info_1_ptr -> shutdown_info.times.user_warning_time, 115 shutdown_info_2_ptr -> shutdown_info.times.user_warning_time); 116 117 resultant_shutdown_info_ptr -> shutdown_info.times.begin_shutdown_time = 118 min ( 119 shutdown_info_1_ptr -> shutdown_info.times.begin_shutdown_time, 120 shutdown_info_2_ptr -> shutdown_info.times.begin_shutdown_time); 121 122 resultant_shutdown_info_ptr -> shutdown_info.times.user_shutdown_time = 123 min ( 124 shutdown_info_1_ptr -> shutdown_info.times.user_shutdown_time, 125 shutdown_info_2_ptr -> shutdown_info.times.user_shutdown_time); 126 127 resultant_shutdown_info_ptr -> shutdown_info.times.user_bump_time = 128 min ( 129 shutdown_info_1_ptr -> shutdown_info.times.user_bump_time, 130 shutdown_info_2_ptr -> shutdown_info.times.user_bump_time); 131 132 resultant_shutdown_info_ptr -> shutdown_info.times.daemon_logout_time = 133 min ( 134 shutdown_info_1_ptr -> shutdown_info.times.daemon_logout_time, 135 shutdown_info_2_ptr -> shutdown_info.times.daemon_logout_time); 136 end TAKE_LESSER; /* format: on */ 137 138 if unspec (resultant_shutdown_info_ptr -> shutdown_info.times) 139 = unspec (shutdown_info_1_ptr -> shutdown_info.times) 140 then 141 KEEP_FORMER_TIMES: 142 do; 143 resultant_shutdown_info_ptr 144 -> shutdown_info.output_flags.times_have_changed = "0"b; 145 resultant_shutdown_info_ptr -> shutdown_info.reason = 146 shutdown_info_1_ptr -> shutdown_info.reason; 147 end KEEP_FORMER_TIMES; 148 else 149 TIMES_HAVE_CHANGED: 150 do; 151 resultant_shutdown_info_ptr 152 -> shutdown_info.output_flags.times_have_changed = "1"b; 153 resultant_shutdown_info_ptr -> shutdown_info.reason = 154 shutdown_info_2_ptr -> shutdown_info.reason; 155 end TIMES_HAVE_CHANGED; 156 157 if unspec (resultant_shutdown_info_ptr -> shutdown_info.times) = ""b 158 then 159 NO_TIMES_IN_EITHER_INFO: 160 resultant_shutdown_info_ptr -> shutdown_info.no_time_specified = "1"b; 161 162 return; 163 164 /* end dm_compare_shutdown_info; */ 165 166 CHECK_VERSION: 167 proc (cv_p_received_version, cv_p_expected_version, cv_p_structure_name); 168 dcl cv_p_received_version char (8) aligned; 169 dcl cv_p_expected_version char (8) aligned; 170 dcl cv_p_structure_name char (*); 171 172 if cv_p_received_version ^= cv_p_expected_version 173 then call sub_err_ (error_table_$unimplemented_version, myname, 174 ACTION_CANT_RESTART, null, 0, 175 "^/Expected version ^a of the ^a structure. 176 Received version ^d instead.", cv_p_expected_version, cv_p_structure_name, 177 cv_p_received_version); 178 179 end CHECK_VERSION; 180 1 1 /* ***** BEGIN INCLUDE FILE dm_shutdown_spec.incl.pl1 ***** */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* Contains the shutdown_spec structure and the shutdown_info 1 6* structure. The shutdown_spec structure a reason for a DM 1 7* shutdown, a set of times and a set of delays. Only times and 1 8* delays which explicitly specified are set, the others are equal to 1 9* 0. 1 10* 1 11* The shutdown_spec is processed with the result being a 1 12* shutdown_info structure. It contains a reason and a set of times. 1 13* The times are either those times specified in the shutdown_spec or 1 14* times calculated from those times using delays. The delays are 1 15* those specified in the shutdown_spec, or, if not specified, 1 16* default delays. Default delays are kept in dm_system_data. 1 17**/ 1 18 1 19 /* HISTORY: 1 20*Written by Matthew Pierret, 09/06/84. 1 21*Modified: 1 22**/ 1 23 1 24 /* format: style2,ind3 */ 1 25 dcl 1 shutdown_spec aligned based (shutdown_spec_ptr), 1 26 2 version char (8) aligned, 1 27 2 reason char (64), 1 28 2 times, 1 29 3 user_warning_time 1 30 fixed bin (71), 1 31 3 begin_shutdown_time 1 32 fixed bin (71), 1 33 3 user_shutdown_time 1 34 fixed bin (71), 1 35 3 user_bump_time fixed bin (71), 1 36 3 daemon_logout_time 1 37 fixed bin (71), 1 38 2 delays, 1 39 3 begin_shutdown_delay 1 40 fixed bin (71), 1 41 3 user_shutdown_delay 1 42 fixed bin (71), 1 43 3 user_bump_delay fixed bin (71), 1 44 3 daemon_logout_delay 1 45 fixed bin (71); 1 46 1 47 dcl shutdown_spec_ptr ptr; 1 48 dcl SHUTDOWN_SPEC_VERSION_1 1 49 init ("ShutSp 1") char (8) aligned internal static options (constant); 1 50 1 51 dcl 1 shutdown_info aligned based (shutdown_info_ptr), 1 52 2 version char (8) aligned, 1 53 2 reason char (64), 1 54 2 times like shutdown_spec.times, 1 55 2 output_flags aligned, 1 56 3 no_time_specified 1 57 bit (1) unal, 1 58 3 times_have_changed 1 59 bit (1) unal, 1 60 3 mbz bit (34) unal; 1 61 1 62 dcl shutdown_info_ptr ptr init (null ()); 1 63 dcl SHUTDOWN_INFO_VERSION_1 1 64 init ("ShutIn 1") char (8) aligned internal static options (constant); 1 65 1 66 /* ******* END INCLUDE FILE dm_shutdown_spec.incl.pl1 ***** */ 181 182 2 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 2 2 /* format: style3 */ 2 3 2 4 /* These constants are to be used for the flags argument of sub_err_ */ 2 5 /* They are just "string (condition_info_header.action_flags)" */ 2 6 2 7 declare ( 2 8 ACTION_CAN_RESTART init (""b), 2 9 ACTION_CANT_RESTART init ("1"b), 2 10 ACTION_DEFAULT_RESTART 2 11 init ("01"b), 2 12 ACTION_QUIET_RESTART 2 13 init ("001"b), 2 14 ACTION_SUPPORT_SIGNAL 2 15 init ("0001"b) 2 16 ) bit (36) aligned internal static options (constant); 2 17 2 18 /* End include file */ 183 184 end dm_compare_shutdown_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0758.4 dm_compare_shutdown_info.pl1 >spec>on>7138.pbf>dm_compare_shutdown_info.pl1 181 1 01/07/85 0859.8 dm_shutdown_spec.incl.pl1 >ldd>include>dm_shutdown_spec.incl.pl1 183 2 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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. ACTION_CANT_RESTART 000021 constant bit(36) initial dcl 2-7 set ref 172* SHUTDOWN_INFO_VERSION_1 000000 constant char(8) initial dcl 1-63 set ref 92* 94* 96* begin_shutdown_time 24 based fixed bin(71,0) level 3 dcl 1-51 set ref 117* 117 117 cv_p_expected_version parameter char(8) dcl 169 set ref 166 172 172* cv_p_received_version parameter char(8) dcl 168 set ref 166 172 172* cv_p_structure_name parameter char unaligned dcl 170 set ref 166 172* daemon_logout_time 32 based fixed bin(71,0) level 3 dcl 1-51 set ref 132* 132 132 error_table_$unimplemented_version 000012 external static fixed bin(35,0) dcl 83 set ref 172* myname 000002 constant varying char(32) initial dcl 73 set ref 172* no_time_specified 34 based bit(1) level 3 packed unaligned dcl 1-51 set ref 157* null builtin function dcl 69 ref 1-62 172 172 output_flags 34 based structure level 2 dcl 1-51 p_resultant_shutdown_info_ptr parameter pointer dcl 56 ref 47 90 p_shutdown_info_1_ptr parameter pointer dcl 54 ref 47 88 p_shutdown_info_2_ptr parameter pointer dcl 55 ref 47 89 reason 2 based char(64) level 2 dcl 1-51 set ref 145* 145 153* 153 resultant_shutdown_info_ptr 000104 automatic pointer dcl 63 set ref 90* 96 99 104 112 117 122 127 132 138 143 145 151 153 157 157 shutdown_info based structure level 1 dcl 1-51 shutdown_info_1_ptr 000100 automatic pointer dcl 61 set ref 88* 92 99 104 112 117 122 127 132 138 145 shutdown_info_2_ptr 000102 automatic pointer dcl 62 set ref 89* 94 99 104 112 117 122 127 132 153 shutdown_info_ptr 000106 automatic pointer initial dcl 1-62 set ref 1-62* shutdown_spec based structure level 1 dcl 1-25 sub_err_ 000010 constant entry external dcl 79 ref 172 times 22 based structure level 2 in structure "shutdown_info" dcl 1-51 in procedure "dm_compare_shutdown_info" set ref 99 99* 99 104 104* 104 138 138 157 times 22 based structure level 2 in structure "shutdown_spec" dcl 1-25 in procedure "dm_compare_shutdown_info" times_have_changed 34(01) based bit(1) level 3 packed unaligned dcl 1-51 set ref 143* 151* unspec builtin function dcl 69 ref 99 104 138 138 157 user_bump_time 30 based fixed bin(71,0) level 3 dcl 1-51 set ref 127* 127 127 user_shutdown_time 26 based fixed bin(71,0) level 3 dcl 1-51 set ref 122* 122 122 user_warning_time 22 based fixed bin(71,0) level 3 dcl 1-51 set ref 112* 112 112 version based char(8) level 2 dcl 1-51 set ref 92* 94* 96* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 2-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 2-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 2-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 2-7 SHUTDOWN_SPEC_VERSION_1 internal static char(8) initial dcl 1-48 shutdown_spec_ptr automatic pointer dcl 1-47 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000303 constant entry internal dcl 166 ref 92 94 96 KEEP_FORMER_TIMES 000260 constant label dcl 138 NO_TIMES_IN_EITHER_INFO 000300 constant label dcl 157 TAKE_FORMER 000214 constant label dcl 104 TAKE_LATTER 000201 constant label dcl 99 TAKE_LESSER 000221 constant label dcl 109 TIMES_HAVE_CHANGED 000266 constant label dcl 148 dm_compare_shutdown_info 000062 constant entry external dcl 47 NAME DECLARED BY CONTEXT OR IMPLICATION. min builtin function ref 112 117 122 127 132 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 462 476 406 472 Length 702 406 14 170 53 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_compare_shutdown_info 158 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure dm_compare_shutdown_info. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dm_compare_shutdown_info 000100 shutdown_info_1_ptr dm_compare_shutdown_info 000102 shutdown_info_2_ptr dm_compare_shutdown_info 000104 resultant_shutdown_info_ptr dm_compare_shutdown_info 000106 shutdown_info_ptr dm_compare_shutdown_info THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 47 000056 1 62 000067 88 000071 89 000075 90 000100 92 000103 94 000126 96 000151 99 000174 104 000207 112 000221 117 000227 122 000234 127 000241 132 000246 138 000253 143 000260 145 000262 147 000265 151 000266 153 000270 157 000274 162 000302 166 000303 172 000314 179 000404 ----------------------------------------------------------- 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