COMPILATION LISTING OF SEGMENT bj_error_util_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0936.9 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9**/ 10 11 /* HISTORY: 12* 13*Written by Matthew Pierret, 07/02/84. 14*Modified: 15*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 16**/ 17 18 /* format: style2,ind3 */ 19 20 bj_error_util_$signal: 21 procedure (); 22 23 24 /* START OF DECLARATIONS */ 25 /* Parameter */ 26 27 dcl p_code fixed bin (35) based (p_code_ptr); 28 /* is a standard system error code. */ 29 dcl p_signalling_program_name 30 char (pspn_length) based (p_signalling_program_name_ptr); 31 dcl p_bj_error_flags_string 32 bit (36) aligned based (p_bj_error_flags_ptr); 33 dcl p_severity fixed bin (17) based (p_severity_ptr); 34 35 /* Automatic */ 36 37 dcl arg_count fixed bin init (-1); 38 dcl arg_list_ptr ptr init (null); 39 dcl p_code_ptr ptr init (null); 40 dcl p_signalling_program_name_ptr 41 ptr init (null); 42 dcl p_bj_error_flags_ptr ptr init (null); 43 dcl p_severity_ptr ptr init (null); 44 dcl pspn_length fixed bin (21) init (-1); 45 46 dcl code fixed bin (35) init (0); 47 48 dcl prev_error_object_ptr ptr init (null); 49 dcl message_buffer_ptr ptr init (null); 50 dcl message_length fixed bin (21) init (-1); 51 52 dcl (pad_sw, nl_sw) bit (1) aligned; 53 54 dcl 1 my_bj_sub_error_info aligned like bj_sub_error_info; 55 56 dcl 1 my_condition_info aligned like condition_info; 57 58 /* Based */ 59 60 dcl message_buffer char (sys_info$max_seg_size * 4) based (message_buffer_ptr); 61 dcl message char (message_length) based (message_buffer_ptr); 62 63 /* Builtin */ 64 65 dcl (addr, length, max, min, null, rtrim, substr) 66 builtin; 67 68 /* Condition */ 69 70 dcl (any_other, cleanup) condition; 71 72 /* Constant */ 73 74 dcl myname init ("bj_error_util_") char (32) varying internal static options (constant); 75 dcl ( 76 CODE_ARGUMENT_IDX init (1), 77 SIGNALLING_PROGRAM_NAME_ARGUMENT_IDX 78 init (2), 79 BJ_ERROR_FLAGS_ARGUMENT_IDX 80 init (3), 81 SEVERITY_ARGUMENT_IDX init (4), 82 FIRST_MESSAGE_ARGUMENT_IDX 83 init (5), 84 NUMBER_OF_REQUIRED_ARGUMENTS 85 init (4), 86 DEFAULT_SEVERITY init (0) 87 ) fixed bin internal static options (constant); 88 dcl NON_ACTION_FLAGS_MASK init ((18)"1"b || (18)"0"b) bit (36) aligned internal static options (constant); 89 90 /* Entry */ 91 92 dcl hcs_$create_branch_ entry (char (*), char (*), ptr, fixed bin (35)); 93 dcl cu_$arg_list_ptr entry (ptr); 94 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 95 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 96 dcl cu_$cp entry (ptr, fixed bin (21), fixed bin (35)); 97 dcl dm_misc_util_$log entry () options (variable); 98 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 99 dcl get_dm_dir_ entry () returns (char (168)); 100 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 101 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, 102 bit (1) aligned); 103 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 104 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 105 dcl signal_ entry () options (variable); 106 dcl sub_err_ entry () options (variable); 107 dcl unique_chars_ entry (bit (*)) returns (char (15)); 108 109 /* External */ 110 111 dcl dm_error_$programming_error 112 fixed bin (35) ext; 113 dcl ( 114 error_table_$fatal_error, 115 error_table_$unimplemented_version 116 ) fixed bin (35) ext; 117 dcl sys_info$max_seg_size fixed bin (35) ext; 118 119 /* END OF DECLARATIONS */ 120 121 /* format: ^indblkcom,indcomtxt */ 122 123 /* This "entry point" is actually the main procedure statement above. 124* 125* signal: 126* entry (); 127**/ 128 129 /**** Get pointer to this routine's arg_list */ 130 131 call cu_$arg_list_ptr (arg_list_ptr); 132 call cu_$arg_count (arg_count, (0)); 133 134 if arg_count < NUMBER_OF_REQUIRED_ARGUMENTS 135 then call 136 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 137 "^/^10xThis entry requires at least ^d arguments.^/^10xOnly ^d arguments were received.", 138 (NUMBER_OF_REQUIRED_ARGUMENTS), arg_count); 139 140 /**** Set the parameter values. */ 141 142 call cu_$arg_ptr (CODE_ARGUMENT_IDX, p_code_ptr, (0), (0)); 143 call cu_$arg_ptr (SIGNALLING_PROGRAM_NAME_ARGUMENT_IDX, p_signalling_program_name_ptr, (0), (0)); 144 call cu_$arg_ptr (BJ_ERROR_FLAGS_ARGUMENT_IDX, p_bj_error_flags_ptr, (0), (0)); 145 call cu_$arg_ptr (SEVERITY_ARGUMENT_IDX, p_severity_ptr, (0), (0)); 146 147 /**** Setup message buffer in a temporary segment. ****/ 148 149 on cleanup call FINISH (); 150 151 call get_temp_segment_ ((myname), message_buffer_ptr, code); 152 if code ^= 0 153 then call 154 sub_err_ (code, myname, ACTION_CANT_RESTART, null, 0, 155 "^/^10xAn attempt to acquire a temporary segment failed while^/^10xpreparing error message."); 156 157 call 158 ioa_$general_rs (arg_list_ptr, FIRST_MESSAGE_ARGUMENT_IDX, FIRST_MESSAGE_ARGUMENT_IDX + 1, message_buffer, 159 message_length, pad_sw, nl_sw); 160 161 unspec (my_bj_sub_error_info) = ""b; 162 bj_sub_error_info_ptr = addr (my_bj_sub_error_info); 163 164 bj_sub_error_info.header.version = BJ_SUB_ERROR_INFO_VERSION_100; 165 bj_sub_error_info.header.length = size (bj_sub_error_info); 166 bj_sub_error_info.header.status_code = p_code; 167 string (bj_sub_error_info.header.action_flags) = p_bj_error_flags_string & NON_ACTION_FLAGS_MASK; 168 bj_sub_error_info.header.action_flags.support_signal = "1"b; 169 170 bj_sub_error_info.module_name = p_signalling_program_name; 171 172 if message_length <= 256 173 then 174 do; 175 bj_sub_error_info.header.info_string = message; 176 bj_sub_error_info.message_length = message_length; 177 bj_sub_error_info.message_ptr = addr (bj_sub_error_info.header.info_string); 178 end; 179 else 180 do; 181 bj_sub_error_info.header.info_string = ""; 182 bj_sub_error_info.message_length = message_length; 183 bj_sub_error_info.message_ptr = message_buffer_ptr; 184 end; 185 186 187 /**** Log message if requested. */ 188 189 if p_bj_error_flags_ptr -> bj_error_flags.log.system 190 then call 191 dm_misc_util_$log (max (DEFAULT_SEVERITY, p_severity), bj_sub_error_info.header.status_code, 192 (bj_sub_error_info.module_name), message); 193 194 195 196 /**** Signal bj_sub_error_ condition. */ 197 198 call signal_ ("bj_sub_error_", null, bj_sub_error_info_ptr, null); 199 200 do while (bj_sub_error_info.header.action_flags.cant_restart); 201 /* If user can't hack return */ 202 call signal_ ("illegal_return", null, bj_sub_error_info_ptr, null); 203 end; 204 205 call FINISH (); 206 207 return; 208 209 FINISH: 210 proc (); 211 212 if message_buffer_ptr ^= null 213 then call release_temp_segment_ ((myname), message_buffer_ptr, (0)); 214 215 end FINISH; 216 217 get_code: 218 entry () returns (fixed bin (35)); 219 220 bj_sub_error_info_ptr = GET_ERROR_INFO_PTR (); 221 222 return (bj_sub_error_info.header.status_code); 223 224 225 226 227 get_message: 228 entry () returns (char (*)); 229 230 bj_sub_error_info_ptr = GET_ERROR_INFO_PTR (); 231 232 message_length = bj_sub_error_info.message_length; 233 message_buffer_ptr = bj_sub_error_info.message_ptr; 234 235 return (message); 236 237 238 GET_ERROR_INFO_PTR: 239 proc () returns (ptr); 240 241 dcl geip_code fixed bin (35) init (0); 242 243 condition_info_ptr = addr (my_condition_info); 244 call find_condition_info_ ((null), condition_info_ptr, geip_code); 245 if geip_code ^= 0 246 then call sub_err_ (geip_code, myname, ACTION_CANT_RESTART, null, 0, "^/Attempt to find condition info failed."); 247 if condition_info_ptr = null 248 then call 249 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 250 "^/^10xThis entry was invoked to handle a ^a condition,^/^10xbut no condition info exists.", 251 BJ_SUB_ERROR_CONDITION_NAME); 252 if condition_info.condition_name ^= BJ_SUB_ERROR_CONDITION_NAME 253 then call 254 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null (), 0, 255 "^/^10xThis entry was invoked to handle a ^a condition,^/^10xbut the current condition is ^a.", 256 BJ_SUB_ERROR_CONDITION_NAME, condition_info.condition_name); 257 if condition_info.info_ptr = null 258 then call 259 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null (), 0, 260 "^/The condition_info.info_ptr variable is not set."); 261 262 if condition_info.info_ptr -> bj_sub_error_info.header.version ^= BJ_SUB_ERROR_INFO_VERSION_100 263 then call 264 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 265 "^/Expected version ^d of the bj_sub_error_info structure; received ^d.", BJ_SUB_ERROR_INFO_VERSION_100, 266 condition_info.info_ptr -> bj_sub_error_info.header.version); 267 268 return (condition_info.info_ptr); 269 270 271 end GET_ERROR_INFO_PTR; 272 1 1 /* ****** BEGIN INCLUDE FILE dm_bj_sub_error_info.incl.pl1 ******** */ 1 2 1 3 /* format: style2 */ 1 4 1 5 /* HISTORY: 1 6*Written by Matthew Pierret, 07/02/83. 1 7*Modified: 1 8**/ 1 9 1 10 dcl 1 bj_sub_error_info aligned based (bj_sub_error_info_ptr), 1 11 2 header like condition_info_header, 1 12 2 module_name char (32) varying, 1 13 2 message_ptr ptr, /* Only used if header.info_string is too small */ 1 14 2 message_length fixed bin (24); 1 15 1 16 dcl bj_sub_error_info_ptr ptr init (null); 1 17 dcl BJ_SUB_ERROR_INFO_VERSION_100 1 18 fixed bin (35) init (100) internal static options (constant); 1 19 dcl BJ_SUB_ERROR_CONDITION_NAME 1 20 init ("bj_sub_error_") char (32) varying internal static options (constant); 1 21 1 22 /* ******** END INCLUDE FILE dm_bj_sub_error_info.incl.pl1 ******** */ 273 274 2 1 /* ******* BEGIN INCLUDE FILE dm_bj_sub_error_flags.incl.pl1 ******** */ 2 2 2 3 /* format: style2,ind3 */ 2 4 2 5 /* HISTORY: 2 6*Written by Matthew Pierret, 07/02/83. 2 7*Modified: 2 8**/ 2 9 2 10 dcl 1 bj_error_flags aligned based, 2 11 2 action unal, 2 12 3 cant_restart bit (1) unal, 2 13 3 default_restart bit (1) unal, 2 14 3 quiet_restart bit (1) unal, 2 15 3 support_signal bit (1) unal, 2 16 3 mbz_1 bit (14) unal, 2 17 2 log, 2 18 3 system bit (1) unal, 2 19 3 mbz_2 bit (1) unal, 2 20 2 mbz_3 bit (16) unal; 2 21 2 22 dcl ( 2 23 BJ_ACTION_CANT_RESTART init ("1000"b || (32)"0"b), 2 24 BJ_ACTION_CAN_RESTART init ("0000"b || (32)"0"b), 2 25 BJ_ACTION_DEFAULT_RESTART 2 26 init ("0100"b || (32)"0"b), 2 27 BJ_ACTION_QUIET_RESTART 2 28 init ("0010"b || (32)"0"b), 2 29 BJ_ACTION_LOG init ((18)"0"b || "10"b || (16)"0"b) 2 30 ) bit (36) aligned internal static options (constant); 2 31 2 32 /* ********* END INCLUDE FILE dm_bj_sub_error_flags.incl.pl1 ******** */ 275 276 3 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 3 2 3 3 /* Structure for find_condition_info_. 3 4* 3 5* Written 1-Mar-79 by M. N. Davidoff. 3 6**/ 3 7 3 8 /* automatic */ 3 9 3 10 declare condition_info_ptr pointer; 3 11 3 12 /* based */ 3 13 3 14 declare 1 condition_info aligned based (condition_info_ptr), 3 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 3 16 2 version fixed binary, /* Must be 1 */ 3 17 2 condition_name char (32) varying, /* name of condition */ 3 18 2 info_ptr pointer, /* pointer to the condition data structure */ 3 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 3 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 3 21 2 flags unaligned, 3 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 3 23 3 pad1 bit (35), 3 24 2 pad2 bit (36), 3 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 3 26 2 pad3 (4) bit (36); 3 27 3 28 /* internal static */ 3 29 3 30 declare condition_info_version_1 3 31 fixed binary internal static options (constant) initial (1); 3 32 3 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 277 278 4 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 4 2 /* format: style2 */ 4 3 4 4 declare condition_info_header_ptr 4 5 pointer; 4 6 declare 1 condition_info_header 4 7 aligned based (condition_info_header_ptr), 4 8 2 length fixed bin, /* length in words of this structure */ 4 9 2 version fixed bin, /* version number of this structure */ 4 10 2 action_flags aligned, /* tell handler how to proceed */ 4 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 4 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 4 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 4 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 4 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 4 16 3 pad bit (32) unaligned, 4 17 2 info_string char (256) varying, /* may contain printable message */ 4 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 4 19 4 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 279 280 5 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 5 2 /* format: style3 */ 5 3 5 4 /* These constants are to be used for the flags argument of sub_err_ */ 5 5 /* They are just "string (condition_info_header.action_flags)" */ 5 6 5 7 declare ( 5 8 ACTION_CAN_RESTART init (""b), 5 9 ACTION_CANT_RESTART init ("1"b), 5 10 ACTION_DEFAULT_RESTART 5 11 init ("01"b), 5 12 ACTION_QUIET_RESTART 5 13 init ("001"b), 5 14 ACTION_SUPPORT_SIGNAL 5 15 init ("0001"b) 5 16 ) bit (36) aligned internal static options (constant); 5 17 5 18 /* End include file */ 281 282 283 end bj_error_util_$signal; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.0 bj_error_util_.pl1 >spec>on>7192.pbf-04/04/85>bj_error_util_.pl1 273 1 01/07/85 0857.9 dm_bj_sub_error_info.incl.pl1 >ldd>include>dm_bj_sub_error_info.incl.pl1 275 2 01/07/85 0857.9 dm_bj_sub_error_flags.incl.pl1 >ldd>include>dm_bj_sub_error_flags.incl.pl1 277 3 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 279 4 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 281 5 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 000035 constant bit(36) initial dcl 5-7 set ref 134* 152* 245* 247* 252* 257* 262* BJ_ERROR_FLAGS_ARGUMENT_IDX 000013 constant fixed bin(17,0) initial dcl 75 set ref 144* BJ_SUB_ERROR_CONDITION_NAME 000000 constant varying char(32) initial dcl 1-19 set ref 247* 252 252* BJ_SUB_ERROR_INFO_VERSION_100 000011 constant fixed bin(35,0) initial dcl 1-17 set ref 164 262 262* CODE_ARGUMENT_IDX 000056 constant fixed bin(17,0) initial dcl 75 set ref 142* DEFAULT_SEVERITY constant fixed bin(17,0) initial dcl 75 ref 189 189 FIRST_MESSAGE_ARGUMENT_IDX 000012 constant fixed bin(17,0) initial dcl 75 set ref 157* 157 NON_ACTION_FLAGS_MASK constant bit(36) initial dcl 88 ref 167 NUMBER_OF_REQUIRED_ARGUMENTS constant fixed bin(17,0) initial dcl 75 ref 134 134 SEVERITY_ARGUMENT_IDX 000041 constant fixed bin(17,0) initial dcl 75 set ref 145* SIGNALLING_PROGRAM_NAME_ARGUMENT_IDX 000051 constant fixed bin(17,0) initial dcl 75 set ref 143* action_flags 2 based structure level 3 dcl 1-10 set ref 167* addr builtin function dcl 65 ref 162 177 243 arg_count 000100 automatic fixed bin(17,0) initial dcl 37 set ref 37* 132* 134 134* arg_list_ptr 000102 automatic pointer initial dcl 38 set ref 38* 131* 157* bj_error_flags based structure level 1 dcl 2-10 bj_sub_error_info based structure level 1 dcl 1-10 set ref 165 bj_sub_error_info_ptr 000310 automatic pointer initial dcl 1-16 set ref 162* 164 165 165 166 167 168 170 175 176 177 177 181 182 183 189 189 198* 200 202* 220* 222 230* 232 233 1-16* cant_restart 2 based bit(1) level 4 packed unaligned dcl 1-10 set ref 200 cleanup 000302 stack reference condition dcl 70 ref 149 code 000115 automatic fixed bin(35,0) initial dcl 46 set ref 46* 151* 152 152* condition_info based structure level 1 dcl 3-14 condition_info_header based structure level 1 dcl 4-6 condition_info_ptr 000312 automatic pointer dcl 3-10 set ref 243* 244* 247 252 252 257 262 262 268 condition_name 3 based varying char(32) level 2 dcl 3-14 set ref 252 252* cu_$arg_count 000012 constant entry external dcl 94 ref 132 cu_$arg_list_ptr 000010 constant entry external dcl 93 ref 131 cu_$arg_ptr 000014 constant entry external dcl 95 ref 142 143 144 145 dm_error_$programming_error 000034 external static fixed bin(35,0) dcl 111 set ref 134* 247* 252* 257* 262* dm_misc_util_$log 000016 constant entry external dcl 97 ref 189 find_condition_info_ 000020 constant entry external dcl 98 ref 244 geip_code 000324 automatic fixed bin(35,0) initial dcl 241 set ref 241* 244* 245 245* get_temp_segment_ 000022 constant entry external dcl 100 ref 151 header based structure level 2 dcl 1-10 info_ptr 14 based pointer level 2 dcl 3-14 ref 257 262 262 268 info_string 3 based varying char(256) level 3 dcl 1-10 set ref 175* 177 181* ioa_$general_rs 000024 constant entry external dcl 101 ref 157 length based fixed bin(17,0) level 3 dcl 1-10 set ref 165* log 1 based structure level 2 dcl 2-10 max builtin function dcl 65 ref 189 189 message based char unaligned dcl 61 set ref 175 189* 235 message_buffer based char unaligned dcl 60 set ref 157* message_buffer_ptr 000120 automatic pointer initial dcl 49 set ref 49* 151* 157 175 183 189 212 212* 233* 235 message_length 000122 automatic fixed bin(21,0) initial dcl 50 in procedure "bj_error_util_$signal" set ref 50* 157* 172 175 176 182 189 189 232* 235 message_length 120 based fixed bin(24,0) level 2 in structure "bj_sub_error_info" dcl 1-10 in procedure "bj_error_util_$signal" set ref 176* 182* 232 message_ptr 116 based pointer level 2 dcl 1-10 set ref 177* 183* 233 module_name 105 based varying char(32) level 2 dcl 1-10 set ref 170* 189 my_bj_sub_error_info 000126 automatic structure level 1 dcl 54 set ref 161* 162 my_condition_info 000250 automatic structure level 1 dcl 56 set ref 243 myname 000014 constant varying char(32) initial dcl 74 set ref 134* 151 152* 212 245* 247* 252* 257* 262* nl_sw 000124 automatic bit(1) dcl 52 set ref 157* null builtin function dcl 65 ref 38 39 40 42 43 48 49 134 134 152 152 198 198 198 198 202 202 202 202 1-16 212 244 245 245 247 247 247 252 252 257 257 257 262 262 p_bj_error_flags_ptr 000110 automatic pointer initial dcl 42 set ref 42* 144* 167 189 p_bj_error_flags_string based bit(36) dcl 31 ref 167 p_code based fixed bin(35,0) dcl 27 ref 166 p_code_ptr 000104 automatic pointer initial dcl 39 set ref 39* 142* 166 p_severity based fixed bin(17,0) dcl 33 ref 189 189 p_severity_ptr 000112 automatic pointer initial dcl 43 set ref 43* 145* 189 189 p_signalling_program_name based char unaligned dcl 29 ref 170 p_signalling_program_name_ptr 000106 automatic pointer initial dcl 40 set ref 40* 143* 170 pad_sw 000123 automatic bit(1) dcl 52 set ref 157* prev_error_object_ptr 000116 automatic pointer initial dcl 48 set ref 48* pspn_length 000114 automatic fixed bin(21,0) initial dcl 44 set ref 44* 170 release_temp_segment_ 000026 constant entry external dcl 104 ref 212 signal_ 000030 constant entry external dcl 105 ref 198 202 status_code 104 based fixed bin(35,0) level 3 dcl 1-10 set ref 166* 189* 222 sub_err_ 000032 constant entry external dcl 106 ref 134 152 245 247 252 257 262 support_signal 2(03) based bit(1) level 4 packed unaligned dcl 1-10 set ref 168* sys_info$max_seg_size 000036 external static fixed bin(35,0) dcl 117 ref 157 157 system 1 based bit(1) level 3 packed unaligned dcl 2-10 ref 189 version 1 based fixed bin(17,0) level 3 dcl 1-10 set ref 164* 262 262* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 5-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 5-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 5-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 5-7 BJ_ACTION_CANT_RESTART internal static bit(36) initial dcl 2-22 BJ_ACTION_CAN_RESTART internal static bit(36) initial dcl 2-22 BJ_ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 2-22 BJ_ACTION_LOG internal static bit(36) initial dcl 2-22 BJ_ACTION_QUIET_RESTART internal static bit(36) initial dcl 2-22 any_other 000000 stack reference condition dcl 70 condition_info_header_ptr automatic pointer dcl 4-4 condition_info_version_1 internal static fixed bin(17,0) initial dcl 3-30 cu_$cp 000000 constant entry external dcl 96 error_table_$fatal_error external static fixed bin(35,0) dcl 113 error_table_$unimplemented_version external static fixed bin(35,0) dcl 113 get_dm_dir_ 000000 constant entry external dcl 99 hcs_$create_branch_ 000000 constant entry external dcl 92 length builtin function dcl 65 min builtin function dcl 65 pathname_ 000000 constant entry external dcl 103 rtrim builtin function dcl 65 substr builtin function dcl 65 unique_chars_ 000000 constant entry external dcl 107 NAMES DECLARED BY EXPLICIT CONTEXT. FINISH 001321 constant entry internal dcl 209 ref 149 205 GET_ERROR_INFO_PTR 001365 constant entry internal dcl 238 ref 220 230 bj_error_util_$signal 000337 constant entry external dcl 20 get_code 001176 constant entry external dcl 217 get_message 001250 constant entry external dcl 227 NAMES DECLARED BY CONTEXT OR IMPLICATION. size builtin function ref 165 string builtin function ref 167 unspec builtin function ref 161 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2174 2234 1750 2204 Length 2550 1750 40 300 224 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bj_error_util_$signal 584 external procedure is an external procedure. on unit on line 149 64 on unit FINISH 82 internal procedure is called by several nonquick procedures. GET_ERROR_INFO_PTR internal procedure shares stack frame of external procedure bj_error_util_$signal. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bj_error_util_$signal 000100 arg_count bj_error_util_$signal 000102 arg_list_ptr bj_error_util_$signal 000104 p_code_ptr bj_error_util_$signal 000106 p_signalling_program_name_ptr bj_error_util_$signal 000110 p_bj_error_flags_ptr bj_error_util_$signal 000112 p_severity_ptr bj_error_util_$signal 000114 pspn_length bj_error_util_$signal 000115 code bj_error_util_$signal 000116 prev_error_object_ptr bj_error_util_$signal 000120 message_buffer_ptr bj_error_util_$signal 000122 message_length bj_error_util_$signal 000123 pad_sw bj_error_util_$signal 000124 nl_sw bj_error_util_$signal 000126 my_bj_sub_error_info bj_error_util_$signal 000250 my_condition_info bj_error_util_$signal 000310 bj_sub_error_info_ptr bj_error_util_$signal 000312 condition_info_ptr bj_error_util_$signal 000324 geip_code GET_ERROR_INFO_PTR THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return signal enable shorten_stack ext_entry ext_entry_desc int_entry return_chars_eis any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr dm_misc_util_$log find_condition_info_ get_temp_segment_ ioa_$general_rs release_temp_segment_ signal_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$programming_error sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 37 000312 38 000314 39 000316 40 000317 42 000320 43 000321 44 000322 46 000324 48 000325 49 000327 50 000330 1 16 000332 20 000336 131 000347 132 000356 134 000370 142 000447 143 000466 144 000505 145 000524 149 000543 151 000565 152 000615 157 000663 161 000730 162 000733 164 000735 165 000737 166 000741 167 000743 168 000746 170 000750 172 000761 175 000764 176 000774 177 000776 178 001000 181 001001 182 001002 183 001003 189 001005 198 001056 200 001113 202 001120 203 001154 205 001155 207 001161 217 001173 220 001206 222 001210 227 001245 230 001257 232 001261 233 001264 235 001266 209 001320 212 001326 215 001363 238 001365 241 001367 243 001370 244 001372 245 001407 247 001454 252 001526 257 001606 262 001656 268 001735 ----------------------------------------------------------- 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