COMPILATION LISTING OF SEGMENT as_send_user_mail_ 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 1628.5 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* as_send_user_mail_ -- as utility to send mail to user */ 7 /* format: style2,idind30 */ 8 9 /**** NOTE: This does NOT validate the user's access to deliver 10* mail to the destination. Clients of this should not 11* set Destination to other than "" unless they are willing 12* to use the AS's full access in delivering. 13* 14* Also note that this does not yet send interactive messages 15* at all. Until the mail system can do without headers on 16* interactive messages, this seems required. */ 17 18 as_send_user_mail_: 19 procedure (Caller, Destination, Group_id, Subject, Message, Access_class, Sender); 20 21 declare ( 22 Caller, /* for error messages */ 23 Destination, /* preferred destination */ 24 Group_id, /* user name used to construct possible default destinations */ 25 Subject, 26 Message, 27 Sender 28 ) char (*); 29 declare Access_class bit (72) aligned; 30 declare code fixed bin (35); 31 32 declare mlsys_utils_$send_message_to_recipient 33 entry (char (*), char (*), fixed bin, char (*), char (*), 34 bit (72) aligned, char (*) varying, fixed bin (35)); 35 36 declare sys_log_$error_log entry options (variable); 37 38 declare mlsys_et_$message_delivered fixed bin (35) ext static; 39 declare mlsys_et_$message_queued fixed bin (35) ext static; 40 declare mlsys_et_$message_queued_and_delivered 41 fixed bin (35) ext static; 42 43 44 if Destination ^= "" 45 then do; 46 call try_delivery (Destination, code); 47 if code ^= 0 48 then call sys_log_$error_log (SL_LOG_SILENT, code, Caller, 49 "Failed to deliver mail to requested destination ^a.", Destination); 50 else return; /* all done */ 51 end; 52 53 call try_delivery (before (Group_id, "."), code); /* try for mail table */ 54 if code ^= 0 55 then call try_delivery (substr (Group_id, 1, length (rtrim (Group_id)) - 2 /* tag */), code); 56 if code ^= 0 57 then call sys_log_$error_log (SL_LOG_SILENT, code, Caller, "Failed to deliver mail to user ^a.", Group_id); 58 return; 59 60 try_delivery: 61 procedure (addr, code); 62 63 declare addr char (*); 64 declare code fixed bin (35); 65 66 call mlsys_utils_$send_message_to_recipient (Sender, addr, ORDINARY_DELIVERY, Subject, Message, Access_class, 67 (""), code); 68 if code = mlsys_et_$message_delivered | code = mlsys_et_$message_queued 69 | code = mlsys_et_$message_queued_and_delivered 70 then code = 0; 71 return; 72 end try_delivery; 73 74 75 1 1 /* BEGIN INCLUDE FILE ... mlsys_deliver_info.incl.pl1 */ 1 2 /* Created: June 1983 by G. Palter */ 1 3 1 4 /* Options for the mail_system_$deliver_message and mail_system_$redistribute_message entrypoints */ 1 5 1 6 dcl 1 deliver_options aligned based (deliver_options_ptr), 1 7 2 version character (8) unaligned, 1 8 2 delivery_mode fixed binary, /* deliver as an ordinary/interactive/express message */ 1 9 2 queueing_mode fixed binary, /* when to queue the message */ 1 10 2 queued_notification_mode fixed binary, /* when to notify sender about queued mail success/failure */ 1 11 2 flags, 1 12 3 abort bit (1) unaligned, /* ON => don't send it if any fatal errors are detected */ 1 13 3 send_if_empty bit (1) unaligned, /* ON => send the message even if its body is empty */ 1 14 3 recipient_notification bit (1) unaligned, /* ON => send "You have mail." notification */ 1 15 3 acknowledge bit (1) unaligned, /* ON => request ACK message when recipients read it */ 1 16 3 queue_mailing_lists bit (1) unaligned, /* ON => always queue the message for mailing lists */ 1 17 3 mbz bit (31) unaligned; /* must be set to ""b by the caller */ 1 18 1 19 dcl DELIVER_OPTIONS_VERSION_2 character (8) static options (constant) initial ("mlsdlo02"); 1 20 1 21 dcl deliver_options_ptr pointer; 1 22 1 23 /* Defined modes of delivery */ 1 24 1 25 dcl (ORDINARY_DELIVERY initial (1), /* send as an ordinary message */ 1 26 INTERACTIVE_DELIVERY initial (2), /* send as an interactive message */ 1 27 EXPRESS_DELIVERY initial (3)) /* send as an express interactive message; ie: deliver the 1 28* message only if the user is logged in */ 1 29 fixed binary static options (constant); 1 30 1 31 /* Defined modes for queuing mail on transient errors */ 1 32 1 33 dcl (NEVER_QUEUE initial (1), /* never queue: convert into a fatal error */ 1 34 QUEUE_FOREIGN_WHEN_NEEDED initial (2), /* never queue local mail; queue foreign mail on error */ 1 35 QUEUE_WHEN_NEEDED initial (3), /* queue all mail on any transient error */ 1 36 ALWAYS_QUEUE_FOREIGN initial (4), /* queue local mail on error; always queue foreign mail */ 1 37 ALWAYS_QUEUE initial (5)) /* always queue all mail */ 1 38 fixed binary static options (constant); 1 39 1 40 /* Defined modes of notification of success/failure to deliver queued mail */ 1 41 1 42 dcl (NEVER_NOTIFY initial (1), /* never notify the sender */ 1 43 NOTIFY_ON_ERROR initial (2), /* notify the sender only if it can not be delivered */ 1 44 ALWAYS_NOTIFY initial (3)) /* always notify the sender */ 1 45 fixed binary static options (constant); 1 46 1 47 /* Definition of the recipients of a message and the results of the attempted transmission */ 1 48 1 49 dcl 1 recipients_info aligned based (recipients_info_ptr), 1 50 2 header, 1 51 3 version character (8) unaligned, 1 52 3 area_ptr pointer, /* -> area for following structures; null => system free */ 1 53 3 expanded_recipients_result_list_ptr pointer, /* set -> expanded_recipients_result_list (if any) */ 1 54 3 n_recipients fixed binary, /* set to total # of recipients after expanding lists */ 1 55 3 n_unique_recipients fixed binary, /* set to total # of unique recipients */ 1 56 3 n_failed_recipients fixed binary, /* set to # of recipients that failed or would fail */ 1 57 3 n_lists fixed binary, /* # of address lists of recipients */ 1 58 2 lists (recipients_info_n_lists refer (recipients_info.n_lists)), 1 59 3 address_list_ptr pointer, /* -> an address list containing recipients */ 1 60 3 recipients_result_list_ptr pointer; /* set -> recipients_result_list for this address list */ 1 61 1 62 dcl RECIPIENTS_INFO_VERSION_2 character (8) static options (constant) initial ("mlsrcpt2"); 1 63 1 64 dcl (recipients_info_ptr, recipients_result_list_ptr, expanded_recipients_result_list_ptr) pointer; 1 65 1 66 dcl (recipients_info_n_lists, recipients_result_list_n_addresses, expanded_recipients_result_list_n_entries) 1 67 fixed binary; /* used to allocate these structures */ 1 68 1 69 1 70 /* Data structure returned by the mail system recording the results of the mailing for one of the input address lists */ 1 71 1 72 dcl 1 recipients_result_list aligned based (recipients_result_list_ptr), 1 73 2 n_addresses fixed binary, /* set to # of address in corresponding address list */ 1 74 2 pad bit (36), 1 75 2 results (recipients_result_list_n_addresses refer (recipients_result_list.n_addresses)), 1 76 3 code fixed binary (35), /* set to describe results of attempted delivery */ 1 77 3 expanded_list_info, /* set to identify any failing addresses found in the 1 78* expansion of this address ... */ 1 79 4 first_entry_idx fixed binary (18) unaligned unsigned, 1 80 /* ... index of first such address in structure below ... */ 1 81 4 n_entries fixed binary (18) unaligned unsigned,/* ... # of such addresses there for this address */ 1 82 3 duplicate_info, /* set to identify the prior address (if any) for which this 1 83* is a duplicate ... */ 1 84 4 list_idx fixed binary (18) unaligned unsigned, /* ... in which list ... */ 1 85 4 address_idx fixed binary (18) unaligned unsigned, /* ... and which address in that list */ 1 86 3 explanation character (128) varying; /* explanation associated with a fatal error or the message 1 87* being queued due to a transient error */ 1 88 1 89 1 90 /* Describes fatal or transient errors for those recipients which are part of mailing lists of named groups in one of the 1 91* caller's address lists */ 1 92 1 93 dcl 1 expanded_recipients_result_list aligned based (expanded_recipients_result_list_ptr), 1 94 2 n_entries fixed binary, /* set to # of failing expanded recipients */ 1 95 2 pad bit (36), 1 96 2 entries (expanded_recipients_result_list_n_entries refer (expanded_recipients_result_list.n_entries)), 1 97 3 address_ptr pointer, /* -> the failing address from the list/group */ 1 98 3 code fixed binary (35), /* set to describe why delivery failed */ 1 99 3 parent_address, /* set to identify the original recipient of whose expansion 1 100* this address is a part ... */ 1 101 4 list_idx fixed binary (18) unaligned unsigned, /* ... in which list ... */ 1 102 4 address_idx fixed binary (18) unaligned unsigned, /* ... and which address in that list */ 1 103 3 explanation character (128) varying; /* explanation associated with a fatal error or the message 1 104* being queued due to a transient error */ 1 105 1 106 /* END INCLUDE FILE ... mlsys_deliver_info.incl.pl1 */ 76 2 1 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 2 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 2 7* Added sl_info structure and associated named constants for use in calling 2 8* sys_log_$general. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* format: style4 */ 2 13 2 14 dcl ( 2 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 2 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 2 17 SL_TYPE init (-1), /* type message */ 2 18 SL_LOG_SILENT init (0), /* log message */ 2 19 SL_LOG init (1), /* log & type message */ 2 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 2 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 2 22 ) fixed bin internal static options (constant); 2 23 2 24 dcl 1 sl_info aligned automatic, 2 25 2 version char(8), /* structure version */ 2 26 2 arg_list_ptr ptr, /* arg_list with values */ 2 27 2 loc, 2 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 2 29 /* These flags control where the corresponding data item is found.*/ 2 30 /* -1: data appears in the corresponding structure element below */ 2 31 /* 0: data is not present anywhere */ 2 32 /* +N: data is Nth item in argument list pointed to by */ 2 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 2 34 /* corresponding structure element. */ 2 35 /* if data = +N: */ 2 36 /* argN is data_ptr, argN+1 is data_len */ 2 37 /* if ioa_msg = +N: */ 2 38 /* argN+1, ... argLAST are arguments substituted into the */ 2 39 /* ioa_msg control string. The formatted msg is returned. */ 2 40 2 flags, 2 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 2 42 3 flags_pad bit(35) unal, 2 43 2 mode fixed bin, /* as-mode, command-mode */ 2 44 2 severity fixed bin, /* error severity */ 2 45 2 code fixed bin(35), /* error table code */ 2 46 2 caller char(65) varying, /* caller refname$entryname*/ 2 47 2 data, /* binary data ptr/length */ 2 48 3 data_ptr ptr, 2 49 3 data_lth fixed bin(21), 2 50 2 class char(10) varying, /* binary data class */ 2 51 2 ioa_msg char(500) varying; /* formatted message text */ 2 52 2 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 54 /* */ 2 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 2 56 /* their data types should be as shown in the structure above, except that */ 2 57 /* character strings should be char(*) nonvarying. */ 2 58 /* */ 2 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 60 2 61 /* value for sl_info.version */ 2 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 2 63 2 64 /* values for sl_info.mode */ 2 65 dcl (SL_INFO_as_mode init(1), 2 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 2 67 2 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 2 69 dcl (SL_INFO_arg_given_in_structure init(-1), 2 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 2 71 2 72 2 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 74 /* */ 2 75 /* The following static structures are commonly used in the Login Server */ 2 76 /* user control software. */ 2 77 /* */ 2 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 79 2 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 2 81 2 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 2 83 2 version char(8) init ("sl_info1"), 2 84 2 arg_list_ptr ptr init (null), 2 85 2 loc, 2 86 3 (mode init (-1), 2 87 severity init ( 1), 2 88 code init ( 2), 2 89 caller init (-1), 2 90 data init ( 0), 2 91 class init ( 0), 2 92 ioa_msg init ( 3)) fixed bin, 2 93 2 flags, 2 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 2 95 3 flags_pad bit(35) unal init ("0"b), 2 96 2 mode fixed bin init ( 1), 2 97 2 severity fixed bin init ( 0), 2 98 2 code fixed bin(35) init ( 0), 2 99 2 caller char(65) varying init (""), 2 100 2 data, 2 101 3 data_ptr ptr init (null), 2 102 3 data_lth fixed bin(21) init ( 0), 2 103 2 class char(10) varying init (""), 2 104 2 ioa_msg char(500) varying init (""); 2 105 2 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 2 107 2 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 2 109 2 version char(8) init ("sl_info1"), 2 110 2 arg_list_ptr ptr init (null), 2 111 2 loc, 2 112 3 (mode init (-1), 2 113 severity init ( 1), 2 114 code init ( 0), 2 115 caller init (-1), 2 116 data init ( 0), 2 117 class init ( 0), 2 118 ioa_msg init ( 2)) fixed bin, 2 119 2 flags, 2 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 2 121 3 flags_pad bit(35) unal init ("0"b), 2 122 2 mode fixed bin init ( 1), 2 123 2 severity fixed bin init ( 0), 2 124 2 code fixed bin(35) init ( 0), 2 125 2 caller char(65) varying init (""), 2 126 2 data, 2 127 3 data_ptr ptr init (null), 2 128 3 data_lth fixed bin(21) init ( 0), 2 129 2 class char(10) varying init (""), 2 130 2 ioa_msg char(500) varying init (""); 2 131 2 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 2 133 2 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 2 135 2 version char(8) init ("sl_info1"), 2 136 2 arg_list_ptr ptr init (null), 2 137 2 loc, 2 138 3 (mode init (-1), 2 139 severity init ( 1), 2 140 code init ( 0), 2 141 caller init (-1), 2 142 data init ( 0), 2 143 class init ( 0), 2 144 ioa_msg init ( 2)) fixed bin, 2 145 2 flags, 2 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 2 147 3 flags_pad bit(35) unal init ("0"b), 2 148 2 mode fixed bin init ( 1), 2 149 2 severity fixed bin init ( 0), 2 150 2 code fixed bin(35) init ( 0), 2 151 2 caller char(65) varying init (""), 2 152 2 data, 2 153 3 data_ptr ptr init (null), 2 154 3 data_lth fixed bin(21) init ( 0), 2 155 2 class char(10) varying init (""), 2 156 2 ioa_msg char(500) varying init (""); 2 157 2 158 2 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 2 160 2 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 2 162 2 version char(8) init ("sl_info1"), 2 163 2 arg_list_ptr ptr init (null), 2 164 2 loc, 2 165 3 (mode init (-1), 2 166 severity init ( 1), 2 167 code init ( 2), 2 168 caller init (-1), 2 169 data init ( 0), 2 170 class init ( 0), 2 171 ioa_msg init ( 4)) fixed bin, 2 172 2 flags, 2 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 2 174 3 flags_pad bit(35) unal init ("0"b), 2 175 2 mode fixed bin init ( 1), 2 176 2 severity fixed bin init ( 0), 2 177 2 code fixed bin(35) init ( 0), 2 178 2 caller char(65) varying init (""), 2 179 2 data, 2 180 3 data_ptr ptr init (null), 2 181 3 data_lth fixed bin(21) init ( 0), 2 182 2 class char(10) varying init (""), 2 183 2 ioa_msg char(500) varying init (""); 2 184 2 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 2 186 2 187 dcl 1 sl_info_code_msg aligned int static options(constant), 2 188 2 version char(8) init ("sl_info1"), 2 189 2 arg_list_ptr ptr init (null), 2 190 2 loc, 2 191 3 (mode init (-1), 2 192 severity init (-1), 2 193 code init ( 1), 2 194 caller init (-1), 2 195 data init ( 0), 2 196 class init ( 0), 2 197 ioa_msg init ( 2)) fixed bin, 2 198 2 flags, 2 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 2 200 3 flags_pad bit(35) unal init ("0"b), 2 201 2 mode fixed bin init ( 1), 2 202 2 severity fixed bin init ( 0), 2 203 2 code fixed bin(35) init ( 0), 2 204 2 caller char(65) varying init (""), 2 205 2 data, 2 206 3 data_ptr ptr init (null), 2 207 3 data_lth fixed bin(21) init ( 0), 2 208 2 class char(10) varying init (""), 2 209 2 ioa_msg char(500) varying init (""); 2 210 2 211 2 212 /* Syntax: call Trace (ioa_ctl, args); */ 2 213 2 214 dcl 1 sl_info_msg aligned int static options(constant), 2 215 2 version char(8) init ("sl_info1"), 2 216 2 arg_list_ptr ptr init (null), 2 217 2 loc, 2 218 3 (mode init (-1), 2 219 severity init (-1), 2 220 code init ( 0), 2 221 caller init (-1), 2 222 data init ( 0), 2 223 class init ( 0), 2 224 ioa_msg init ( 1)) fixed bin, 2 225 2 flags, 2 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 2 227 3 flags_pad bit(35) unal init ("0"b), 2 228 2 mode fixed bin init ( 1), 2 229 2 severity fixed bin init ( 0), 2 230 2 code fixed bin(35) init ( 0), 2 231 2 caller char(65) varying init (""), 2 232 2 data, 2 233 3 data_ptr ptr init (null), 2 234 3 data_lth fixed bin(21) init ( 0), 2 235 2 class char(10) varying init (""), 2 236 2 ioa_msg char(500) varying init (""); 2 237 2 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 77 78 end as_send_user_mail_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1540.6 as_send_user_mail_.pl1 >special_ldd>install>MR12.1-1054>as_send_user_mail_.pl1 76 1 10/27/83 2104.2 mlsys_deliver_info.incl.pl1 >ldd>include>mlsys_deliver_info.incl.pl1 77 2 08/04/87 1139.0 sys_log_constants.incl.pl1 >spec>install>1056>sys_log_constants.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. Access_class parameter bit(72) dcl 29 set ref 18 66* Caller parameter char unaligned dcl 21 set ref 18 47* 56* Destination parameter char unaligned dcl 21 set ref 18 44 46* 47* Group_id parameter char unaligned dcl 21 set ref 18 53 53 54 54 54 54 56* Message parameter char unaligned dcl 21 set ref 18 66* ORDINARY_DELIVERY 000011 constant fixed bin(17,0) initial dcl 1-25 set ref 66* SL_LOG_SILENT 000005 constant fixed bin(17,0) initial dcl 2-14 set ref 47* 56* Sender parameter char unaligned dcl 21 set ref 18 66* Subject parameter char unaligned dcl 21 set ref 18 66* addr parameter char unaligned dcl 63 set ref 60 66* code parameter fixed bin(35,0) dcl 64 in procedure "try_delivery" set ref 60 66* 68 68 68 68* code 000100 automatic fixed bin(35,0) dcl 30 in procedure "as_send_user_mail_" set ref 46* 47 47* 53* 54 54* 56 56* mlsys_et_$message_delivered 000014 external static fixed bin(35,0) dcl 38 ref 68 mlsys_et_$message_queued 000016 external static fixed bin(35,0) dcl 39 ref 68 mlsys_et_$message_queued_and_delivered 000020 external static fixed bin(35,0) dcl 40 ref 68 mlsys_utils_$send_message_to_recipient 000010 constant entry external dcl 32 ref 66 sys_log_$error_log 000012 constant entry external dcl 36 ref 47 56 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALWAYS_NOTIFY internal static fixed bin(17,0) initial dcl 1-42 ALWAYS_QUEUE internal static fixed bin(17,0) initial dcl 1-33 ALWAYS_QUEUE_FOREIGN internal static fixed bin(17,0) initial dcl 1-33 DELIVER_OPTIONS_VERSION_2 internal static char(8) initial unaligned dcl 1-19 EXPRESS_DELIVERY internal static fixed bin(17,0) initial dcl 1-25 INTERACTIVE_DELIVERY internal static fixed bin(17,0) initial dcl 1-25 NEVER_NOTIFY internal static fixed bin(17,0) initial dcl 1-42 NEVER_QUEUE internal static fixed bin(17,0) initial dcl 1-33 NOTIFY_ON_ERROR internal static fixed bin(17,0) initial dcl 1-42 QUEUE_FOREIGN_WHEN_NEEDED internal static fixed bin(17,0) initial dcl 1-33 QUEUE_WHEN_NEEDED internal static fixed bin(17,0) initial dcl 1-33 RECIPIENTS_INFO_VERSION_2 internal static char(8) initial unaligned dcl 1-62 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 2-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 2-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 2-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 2-65 SL_INFO_version_1 internal static char(8) initial unaligned dcl 2-62 SL_LOG internal static fixed bin(17,0) initial dcl 2-14 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 2-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 2-14 SL_TYPE internal static fixed bin(17,0) initial dcl 2-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 2-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 2-14 deliver_options based structure level 1 dcl 1-6 deliver_options_ptr automatic pointer dcl 1-21 expanded_recipients_result_list based structure level 1 dcl 1-93 expanded_recipients_result_list_n_entries automatic fixed bin(17,0) dcl 1-66 expanded_recipients_result_list_ptr automatic pointer dcl 1-64 recipients_info based structure level 1 dcl 1-49 recipients_info_n_lists automatic fixed bin(17,0) dcl 1-66 recipients_info_ptr automatic pointer dcl 1-64 recipients_result_list based structure level 1 dcl 1-72 recipients_result_list_n_addresses automatic fixed bin(17,0) dcl 1-66 recipients_result_list_ptr automatic pointer dcl 1-64 sl_info automatic structure level 1 dcl 2-24 sl_info_code_msg internal static structure level 1 dcl 2-187 sl_info_msg internal static structure level 1 dcl 2-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 2-161 sl_info_sev_code_msg internal static structure level 1 dcl 2-82 sl_info_sev_coded_msg internal static structure level 1 dcl 2-134 sl_info_sev_msg internal static structure level 1 dcl 2-108 NAMES DECLARED BY EXPLICIT CONTEXT. as_send_user_mail_ 000046 constant entry external dcl 18 try_delivery 000340 constant entry internal dcl 60 ref 46 53 54 NAMES DECLARED BY CONTEXT OR IMPLICATION. before builtin function ref 53 53 length builtin function ref 54 54 rtrim builtin function ref 54 54 substr builtin function ref 54 54 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 562 604 441 572 Length 1024 441 22 203 121 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_send_user_mail_ 122 external procedure is an external procedure. try_delivery 100 internal procedure is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_send_user_mail_ 000100 code as_send_user_mail_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_int_this_desc return_mac shorten_stack ext_entry_desc int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. mlsys_utils_$send_message_to_recipient sys_log_$error_log THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. mlsys_et_$message_delivered mlsys_et_$message_queued mlsys_et_$message_queued_and_delivered LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000040 44 000112 46 000121 47 000135 50 000176 53 000177 54 000232 56 000275 58 000336 60 000337 66 000353 68 000426 71 000440 ----------------------------------------------------------- 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