COMPILATION LISTING OF SEGMENT ls_report_subr_error_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1303.2 mst Tue Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(85-08-01,Coren), approve(87-06-26,MCR7679), audit(87-02-27,GDixon), 9* install(87-08-04,MR12.1-1055): 10* Initial coding. 11* 2) change(87-03-03,GDixon), approve(87-06-26,MCR7679), 12* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 13* A) Add a pnotice, sort declarations. 14* B) Add ls_report_error_ entrypoint. 15* 3) change(87-05-06,GDixon), approve(87-06-26,MCR7679), 16* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 17* Avoid recursion when ls_dump_ calls us, after we have called it. 18* 4) change(87-05-26,GDixon), approve(87-06-26,MCR7679), 19* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 20* A) Add take_dump parameter to ls_report_subr_error_ to restrict the 21* kinds of failures that cause dumps. 22* 5) change(87-06-26,GDixon), approve(87-06-26,MCR7679), 23* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 24* A) Don't report existence of lsdump when none was taken. 25* END HISTORY COMMENTS */ 26 27 /* format: style4,delnl,insnl,^ifthendo */ 28 ls_report_subr_error_: 29 procedure (a_code, a_caller_name, a_cp_info_ptr, a_subr_name, 30 a_tell_user, a_take_dump); 31 32 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 33 /* */ 34 /* */ 35 /* This subroutine, and its entrypoint ls_report_internal_error_, cause */ 36 /* messages to be written on the parent control point's error output switch */ 37 /* (thereby either alerting an operator or writing in an MC log, or both). */ 38 /* If the "tell_user" switch is on, they also write a message on the */ 39 /* connection. */ 40 /* */ 41 /* Since the current control point can't get at the parent's I/O switches, a */ 42 /* wakeup is sent to a handler in the parent control point, using the */ 43 /* ls_error_info structure. In order to avoid taking the current control */ 44 /* point and its attendent information out from under the handler, this */ 45 /* procedure blocks until the handler sends a wakeup over the */ 46 /* reply_event_channel to let us know that it's finished. */ 47 /* */ 48 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 49 50 51 /* PARAMETERS */ 52 53 dcl a_code fixed bin (35) parameter; 54 dcl a_caller_name char (*) parameter; 55 dcl a_cp_info_ptr pointer parameter; 56 dcl a_subr_name char (*) parameter; 57 dcl a_tell_user bit (1) aligned parameter; 58 dcl a_take_dump bit (1) aligned parameter; 59 dcl a_arg_list_ptr pointer parameter; 60 dcl a_ioa_ctl_str_no fixed bin parameter; 61 dcl a_ioa_args_no fixed bin parameter; 62 63 64 /* AUTOMATIC */ 65 66 dcl arg_list_ptr pointer; 67 dcl argl fixed bin (21); 68 dcl argp pointer; 69 dcl caller_message char (256); 70 dcl caller_message_len fixed bin (21); 71 dcl caller_message_val char (caller_message_len) based (addr (caller_message)); 72 dcl caller_name char (32); 73 dcl code fixed bin (35); 74 dcl dump_entryname char (32); 75 dcl error_message char (256) varying; 76 dcl event_message fixed bin (71); 77 dcl ipc_code fixed bin (35); 78 dcl long_message char (100) aligned; 79 dcl subr_name char (64); 80 dcl take_ls_dump bit (1) aligned; 81 dcl tell_user bit (1) aligned; 82 83 84 /* AUTOMATIC STRUCTURES */ 85 86 dcl 1 auto_event_wait_info aligned like event_wait_info; 87 88 89 /* BASED */ 90 91 dcl arg char (argl) based (argp); 92 dcl based_bit1 bit (1) based; 93 dcl based_fb35 fixed bin (35) based; 94 dcl based_ptr pointer based; 95 96 97 /* ENTRIES */ 98 99 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 100 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 101 dcl cu_$arg_list_ptr entry (ptr); 102 dcl get_process_id_ entry () returns (bit (36)); 103 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 104 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, bit (1) aligned); 105 dcl ipc_$block entry (ptr, ptr, fixed bin (35)); 106 dcl ls_dump_$report_error entry (char (*) var, ptr, char (32)); 107 dcl ls_message_$print_error entry options (variable); 108 109 /* CONSTANTS */ 110 111 dcl NL char (1) int static options (constant) init (" 112 "); 113 114 /* BUILTINS */ 115 116 dcl (addr, length, rtrim, unspec) builtin; 117 118 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 119 /* */ 120 /* ls_report_subr_error_: */ 121 /* This entrypoint reports errors in supporting subroutines called by the */ 122 /* login server. It takes a fixed number of arguments, one of which is */ 123 /* the name of the subroutine which returned the error. */ 124 /* */ 125 /* Syntax: call ls_report_subr_error_ (code, caller, ls_cp_info_ptr, */ 126 /* subroutine_name, tell_user, take_dump); */ 127 /* */ 128 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 129 130 take_ls_dump = a_take_dump; 131 code = a_code; 132 caller_name = a_caller_name; 133 ls_cp_info_ptr = a_cp_info_ptr; 134 subr_name = a_subr_name; 135 tell_user = a_tell_user; 136 137 call convert_status_code_ (code, (""), long_message); 138 error_message = rtrim (long_message); 139 error_message = error_message || " from "; 140 error_message = error_message || subr_name; 141 go to REPORT_JOIN; 142 143 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 144 /* */ 145 /* ls_report_internal_error_: */ 146 /* This entrypoint reports errors detected by the login server programs */ 147 /* themselves. */ 148 /* */ 149 /* Syntax: call ls_report_internal_error_ (code, caller, ls_cp_info_ptr, */ 150 /* tell_user, ioa_ctl_string, ioa_args...); */ 151 /* */ 152 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 153 154 ls_report_internal_error_: 155 entry options (variable); 156 157 take_ls_dump = "1"b; 158 call cu_$arg_ptr (1, argp, argl, (0)); 159 code = argp -> based_fb35; 160 161 call cu_$arg_ptr (2, argp, argl, (0)); 162 caller_name = arg; 163 164 call cu_$arg_ptr (3, argp, argl, (0)); 165 ls_cp_info_ptr = argp -> based_ptr; 166 167 call cu_$arg_ptr (4, argp, argl, (0)); 168 tell_user = argp -> based_bit1; 169 170 if code ^= 0 171 then call convert_status_code_ (code, (""), long_message); 172 else long_message = ""; 173 174 call cu_$arg_list_ptr (arg_list_ptr); 175 call ioa_$general_rs (arg_list_ptr, 5, 6, caller_message, caller_message_len, "0"b, "0"b); 176 177 error_message = rtrim (long_message); 178 error_message = error_message || " "; 179 error_message = error_message || caller_message_val; 180 go to REPORT_JOIN; 181 182 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 183 /* */ 184 /* ls_report_error_: */ 185 /* This entrypoint reports errors detected by the login server programs */ 186 /* themselves, and reported via an internal procedure of the caller. */ 187 /* Since the caller's internal error procedure takes a variable number of */ 188 /* arguments, it passes us a pointer to its argument list so we can */ 189 /* extract the ioa_ctl_str and ioa_args from that arg list. */ 190 /* */ 191 /* Syntax: call ls_report_internal_error_ (code, caller, ls_cp_info_ptr, */ 192 /* tell_user, arg_list_ptr, ioa_ctl_string_no, ioa_args_no...); */ 193 /* */ 194 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 195 196 ls_report_error_: 197 entry (a_code, a_caller_name, a_cp_info_ptr, a_tell_user, a_arg_list_ptr, a_ioa_ctl_str_no, a_ioa_args_no); 198 199 take_ls_dump = "1"b; 200 code = a_code; 201 caller_name = a_caller_name; 202 ls_cp_info_ptr = a_cp_info_ptr; 203 tell_user = a_tell_user; 204 arg_list_ptr = a_arg_list_ptr; 205 206 if code ^= 0 207 then call convert_status_code_ (code, (""), long_message); 208 else long_message = ""; 209 210 call ioa_$general_rs (arg_list_ptr, a_ioa_ctl_str_no, a_ioa_args_no, caller_message, caller_message_len, "0"b, 211 "0"b); 212 213 error_message = rtrim (long_message); 214 error_message = error_message || " "; 215 error_message = error_message || caller_message_val; 216 go to REPORT_JOIN; 217 218 REPORT_JOIN: 219 if tell_user 220 then call ls_message_$print_error (code, "Internal error."); 221 222 if take_ls_dump 223 then do; 224 call ls_dump_$report_error (rtrim (caller_name) || ": " || error_message, ls_cp_info_ptr, dump_entryname); 225 error_message = error_message || NL; 226 error_message = error_message || "See lsdump: "; 227 error_message = error_message || rtrim (dump_entryname); 228 end; 229 230 ls_error_info_ptr = ls_cp_info.error_info_ptr; 231 ls_error_info.caller_name = caller_name; 232 ls_error_info.error_message_length = length (error_message); 233 ls_error_info.error_message = error_message; 234 235 unspec (event_message) = unspec (ls_cp_info_ptr); 236 call hcs_$wakeup ((get_process_id_ ()), ls_cp_info.error_event_channel, event_message, ipc_code); 237 238 if ipc_code = 0 239 then do; /* wait for error handler to run so as not to destroy control point out from under it */ 240 event_wait_channel.channel_id (1) = ls_error_info.reply_event_channel; 241 call ipc_$block (addr (event_wait_channel), addr (auto_event_wait_info), ipc_code); 242 end; 243 return; 244 245 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 246 1 1 /* BEGIN INCLUDE FILE...ls_cp_info.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(85-04-01,Coren), approve(87-06-25,MCR7679), audit(87-03-05,GDixon), 1 5* install(87-08-04,MR12.1-1056): 1 6* Initial coding. 1 7* 2) change(87-03-05,GDixon), approve(87-06-25,MCR7679), 1 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 1 9* Add info directory paths to ls_cp_info structure. This allows them to 1 10* be changed while running in a test environment. 1 11* 3) change(87-06-25,GDixon), approve(87-06-25,MCR7679), 1 12* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 1 13* Add ls_cp_info.flags.call_probe to allow debug_mode messages without 1 14* stopping in probe. 1 15* END HISTORY COMMENTS */ 1 16 1 17 /* This include file describes the info structure passed to the initial 1 18* procedure of a login server control point that manages a particular 1 19* connection. 1 20**/ 1 21 1 22 dcl ls_cp_info_ptr pointer; 1 23 1 24 dcl 1 ls_cp_info aligned based (ls_cp_info_ptr), 1 25 2 version char (8), /* "lscpNNNN" */ 1 26 2 connection_desc_ptr pointer, /* points to ls_connection_desc */ 1 27 2 error_info_ptr pointer, /* pointer to ls_error_info structure */ 1 28 2 error_event_channel fixed bin (71), /* event channel for signalling errors in parent control point */ 1 29 2 connection_gone_event_channel fixed bin (71), /* event channel for telling parent that connection is gone */ 1 30 2 answer_table_ptr pointer, /* needed by validate_user_ */ 1 31 2 installation_parms_ptr pointer, /* likewise */ 1 32 2 flags, 1 33 3 debug_mode bit (1) unaligned, /* "1"b => debugging environment */ 1 34 3 call_probe bit (1) unaligned, /* "1"b => call probe when control point reports error */ 1 35 3 trace bit (1) unaligned, /* "1"b => make tracing calls */ 1 36 3 fault_recursion bit (1) unaligned, /* "1"b => cl_intermediary being entered for second time */ 1 37 3 no_io_switches bit (1) unaligned, /* "1"b => control point doesn't have separate I/O switches */ 1 38 3 pad bit (31) unaligned, 1 39 2 login_info_dir char (168) unal, /* info dir for login requests */ 1 40 2 connect_info_dir char (168) unal; /* info dir for connect requests */ 1 41 1 42 dcl LS_CP_INFO_V1 char (8) internal static options (constant) initial ("lscp0001"); 1 43 1 44 /* END INCLUDE FILE...ls_cp_info.incl.pl1 */ 247 248 2 1 /* BEGIN INCLUDE FILE...ls_error_info.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-04-01,Coren), approve(87-07-14,MCR7679), audit(87-03-18,GDixon), 2 5* install(87-08-04,MR12.1-1056): 2 6* Initial coding. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* This include file defines information to be passed by a login dialogue 2 10* control point to its parent in order for the latter to write an error 2 11* message. 2 12**/ 2 13 2 14 2 15 dcl ls_error_info_ptr pointer; 2 16 2 17 dcl 1 ls_error_info aligned based (ls_error_info_ptr), 2 18 2 version char (8), /* lseiNNNN */ 2 19 2 caller_name char (32), /* name of program that generated the error */ 2 20 2 reply_event_channel fixed bin (71), /* event channel over which to send wakeup after message has been printed */ 2 21 2 error_message_length fixed bin, /* length of significant part of error message */ 2 22 2 error_message char (256); 2 23 2 24 dcl LS_ERROR_INFO_V1 char (8) internal static options (constant) initial ("lsei0001"); 2 25 2 26 /* END INCLUDE FILE...ls_error_info.incl.pl1 */ 249 250 3 1 /* BEGIN INCLUDE FILE ... event_wait_channel.incl.pl1 */ 3 2 3 3 /* ipc_$block wait list with one channel 3 4* 3 5* Written 9-May-79 by M. N. Davidoff. 3 6**/ 3 7 3 8 declare 1 event_wait_channel aligned, 3 9 2 n_channels fixed bin initial (1), /* number of channels */ 3 10 2 pad bit (36), 3 11 2 channel_id (1) fixed bin (71); /* event channel to wait on */ 3 12 3 13 /* END INCLUDE FILE ... event_wait_channel.incl.pl1 */ 251 252 4 1 /* BEGIN INCLUDE FILE event_wait_info.incl.pl1 */ 4 2 4 3 /* T. Casey, May 1978 */ 4 4 4 5 dcl event_wait_info_ptr ptr; 4 6 4 7 dcl 1 event_wait_info aligned based (event_wait_info_ptr), /* argument structure filled in on return from ipc_$block */ 4 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 4 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 4 10 2 sender bit (36), /* process id of sender */ 4 11 2 origin, 4 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 4 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 4 14 2 channel_index fixed bin; /* index of this channel in the event wait list */ 4 15 4 16 /* END INCLUDE FILE event_wait_info.incl.pl1 */ 253 254 255 end ls_report_subr_error_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.9 ls_report_subr_error_.pl1 >special_ldd>install>MR12.1-1054>ls_report_subr_error_.pl1 247 1 08/04/87 1139.9 ls_cp_info.incl.pl1 >spec>install>1056>ls_cp_info.incl.pl1 249 2 08/04/87 1139.9 ls_error_info.incl.pl1 >spec>install>1056>ls_error_info.incl.pl1 251 3 06/29/79 1728.0 event_wait_channel.incl.pl1 >ldd>include>event_wait_channel.incl.pl1 253 4 06/29/79 1727.8 event_wait_info.incl.pl1 >ldd>include>event_wait_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. NL 001141 constant char(1) initial unaligned dcl 111 ref 225 a_arg_list_ptr parameter pointer dcl 59 ref 196 204 a_caller_name parameter char unaligned dcl 54 ref 28 132 196 201 a_code parameter fixed bin(35,0) dcl 53 ref 28 131 196 200 a_cp_info_ptr parameter pointer dcl 55 ref 28 133 196 202 a_ioa_args_no parameter fixed bin(17,0) dcl 61 set ref 196 210* a_ioa_ctl_str_no parameter fixed bin(17,0) dcl 60 set ref 196 210* a_subr_name parameter char unaligned dcl 56 ref 28 134 a_take_dump parameter bit(1) dcl 58 ref 28 130 a_tell_user parameter bit(1) dcl 57 ref 28 135 196 203 addr builtin function dcl 116 ref 179 215 241 241 241 241 arg based char unaligned dcl 91 ref 162 arg_list_ptr 000100 automatic pointer dcl 66 set ref 174* 175* 204* 210* argl 000102 automatic fixed bin(21,0) dcl 67 set ref 158* 161* 162 164* 167* argp 000104 automatic pointer dcl 68 set ref 158* 159 161* 162 164* 165 167* 168 auto_event_wait_info 000410 automatic structure level 1 dcl 86 set ref 241 241 based_bit1 based bit(1) unaligned dcl 92 ref 168 based_fb35 based fixed bin(35,0) dcl 93 ref 159 based_ptr based pointer dcl 94 ref 165 caller_message 000106 automatic char(256) unaligned dcl 69 set ref 175* 179 210* 215 caller_message_len 000206 automatic fixed bin(21,0) dcl 70 set ref 175* 179 210* 215 caller_message_val based char unaligned dcl 71 ref 179 215 caller_name 000207 automatic char(32) unaligned dcl 72 in procedure "ls_report_subr_error_" set ref 132* 162* 201* 224 231 caller_name 2 based char(32) level 2 in structure "ls_error_info" dcl 2-17 in procedure "ls_report_subr_error_" set ref 231* channel_id 2 000424 automatic fixed bin(71,0) array level 2 dcl 3-8 set ref 240* code 000217 automatic fixed bin(35,0) dcl 73 set ref 131* 137* 159* 170 170* 200* 206 206* 218* convert_status_code_ 000010 constant entry external dcl 99 ref 137 170 206 cu_$arg_list_ptr 000014 constant entry external dcl 101 ref 174 cu_$arg_ptr 000012 constant entry external dcl 100 ref 158 161 164 167 dump_entryname 000220 automatic char(32) unaligned dcl 74 set ref 224* 227 error_event_channel 6 based fixed bin(71,0) level 2 dcl 1-24 set ref 236* error_info_ptr 4 based pointer level 2 dcl 1-24 ref 230 error_message 000230 automatic varying char(256) dcl 75 in procedure "ls_report_subr_error_" set ref 138* 139* 139 140* 140 177* 178* 178 179* 179 213* 214* 214 215* 215 224 225* 225 226* 226 227* 227 232 233 error_message 15 based char(256) level 2 in structure "ls_error_info" dcl 2-17 in procedure "ls_report_subr_error_" set ref 233* error_message_length 14 based fixed bin(17,0) level 2 dcl 2-17 set ref 232* event_message 000332 automatic fixed bin(71,0) dcl 76 set ref 235* 236* event_wait_channel 000424 automatic structure level 1 dcl 3-8 set ref 241 241 event_wait_info based structure level 1 dcl 4-7 get_process_id_ 000016 constant entry external dcl 102 ref 236 hcs_$wakeup 000020 constant entry external dcl 103 ref 236 ioa_$general_rs 000022 constant entry external dcl 104 ref 175 210 ipc_$block 000024 constant entry external dcl 105 ref 241 ipc_code 000334 automatic fixed bin(35,0) dcl 77 set ref 236* 238 241* length builtin function dcl 116 ref 232 long_message 000335 automatic char(100) dcl 78 set ref 137* 138 170* 172* 177 206* 208* 213 ls_cp_info based structure level 1 dcl 1-24 ls_cp_info_ptr 000420 automatic pointer dcl 1-22 set ref 133* 165* 202* 224* 230 235 236 ls_dump_$report_error 000026 constant entry external dcl 106 ref 224 ls_error_info based structure level 1 dcl 2-17 ls_error_info_ptr 000422 automatic pointer dcl 2-15 set ref 230* 231 232 233 240 ls_message_$print_error 000030 constant entry external dcl 107 ref 218 n_channels 000424 automatic fixed bin(17,0) initial level 2 dcl 3-8 set ref 3-8* reply_event_channel 12 based fixed bin(71,0) level 2 dcl 2-17 ref 240 rtrim builtin function dcl 116 ref 138 177 213 224 227 subr_name 000366 automatic char(64) unaligned dcl 79 set ref 134* 140 take_ls_dump 000406 automatic bit(1) dcl 80 set ref 130* 157* 199* 222 tell_user 000407 automatic bit(1) dcl 81 set ref 135* 168* 203* 218 unspec builtin function dcl 116 set ref 235* 235 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LS_CP_INFO_V1 internal static char(8) initial unaligned dcl 1-42 LS_ERROR_INFO_V1 internal static char(8) initial unaligned dcl 2-24 event_wait_info_ptr automatic pointer dcl 4-5 NAMES DECLARED BY EXPLICIT CONTEXT. REPORT_JOIN 000671 constant label dcl 218 ref 141 180 216 ls_report_error_ 000477 constant entry external dcl 196 ls_report_internal_error_ 000200 constant entry external dcl 154 ls_report_subr_error_ 000043 constant entry external dcl 28 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1324 1356 1144 1334 Length 1646 1144 32 254 157 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ls_report_subr_error_ 342 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ls_report_subr_error_ 000100 arg_list_ptr ls_report_subr_error_ 000102 argl ls_report_subr_error_ 000104 argp ls_report_subr_error_ 000106 caller_message ls_report_subr_error_ 000206 caller_message_len ls_report_subr_error_ 000207 caller_name ls_report_subr_error_ 000217 code ls_report_subr_error_ 000220 dump_entryname ls_report_subr_error_ 000230 error_message ls_report_subr_error_ 000332 event_message ls_report_subr_error_ 000334 ipc_code ls_report_subr_error_ 000335 long_message ls_report_subr_error_ 000366 subr_name ls_report_subr_error_ 000406 take_ls_dump ls_report_subr_error_ 000407 tell_user ls_report_subr_error_ 000410 auto_event_wait_info ls_report_subr_error_ 000420 ls_cp_info_ptr ls_report_subr_error_ 000422 ls_error_info_ptr ls_report_subr_error_ 000424 event_wait_channel ls_report_subr_error_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp realloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_status_code_ cu_$arg_list_ptr cu_$arg_ptr get_process_id_ hcs_$wakeup ioa_$general_rs ipc_$block ls_dump_$report_error ls_message_$print_error NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 3 8 000031 28 000035 130 000067 131 000073 132 000075 133 000102 134 000105 135 000112 137 000115 138 000132 139 000152 140 000164 141 000176 154 000177 157 000206 158 000210 159 000230 161 000232 162 000252 164 000257 165 000277 167 000302 168 000322 170 000327 172 000347 174 000352 175 000361 177 000427 178 000447 179 000456 180 000470 196 000471 199 000516 200 000520 201 000523 202 000530 203 000533 204 000536 206 000541 208 000561 210 000564 213 000627 214 000647 215 000656 216 000670 218 000671 222 000714 224 000716 225 001001 226 001011 227 001023 230 001047 231 001052 232 001055 233 001057 235 001063 236 001065 238 001114 240 001116 241 001121 243 001140 ----------------------------------------------------------- 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