COMPILATION LISTING OF SEGMENT send_daemon_command Compiled by: Multics PL/I Compiler, Release 33c, of October 25, 1990 Compiled at: ACTC Technologies Inc. Compiled on: 91-12-12_2132.90_Thu_mst Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1991 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(91-03-11,Vu), approve(91-03-11,MCR8242), audit(91-12-06,Zimmerman), 13* install(91-12-12,MR12.5-1008): 14* Confusing error message for the command send_daemon_command 15* END HISTORY COMMENTS */ 16 17 18 /* format: style2 */ 19 20 send_daemon_command: 21 procedure options (variable); 22 23 /**** Created 1985-02-19, BIM, from send_admin_command */ 24 /**** Modified 1985-03-14, E. Swenson, to allow passing of login arguments */ 25 /**** Modified 1985-04-03, E. Swenson to use keywords. */ 26 27 /* Entries */ 28 29 dcl com_err_ entry () options (variable); 30 dcl com_err_$suppress_name entry () options (variable); 31 dcl cu_$arg_list_ptr entry returns (ptr); 32 dcl ssu_$abort_line entry () options (variable); 33 dcl ssu_$standalone_invocation 34 entry (ptr, char (*), char (*), ptr, entry, fixed bin (35)); 35 dcl ssu_$destroy_invocation 36 entry (ptr); 37 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin (21)); 38 dcl ssu_$arg_count entry (ptr, fixed bin); 39 40 dcl send_as_request_$block entry (pointer, fixed binary, bit (72) aligned, bit (72) aligned, 41 fixed binary (35)); 42 43 /* Automatic */ 44 45 dcl al fixed bin (21); 46 dcl ap pointer; 47 dcl code fixed bin (35); 48 dcl argx fixed bin; 49 dcl arg_count fixed bin; 50 dcl first_request_argument fixed bin; 51 dcl reply_bits bit (72) aligned; 52 dcl sci_ptr pointer; 53 dcl stringx fixed bin (21); 54 dcl argument char (al) based (ap) unal; 55 dcl source_seen bit (1) aligned; 56 dcl a_action fixed bin; 57 dcl a_source_name char (32); 58 dcl a_user_name char (32); 59 dcl a_project_name char (32); 60 dcl 1 flags aligned, 61 2 brief bit; 62 63 /* Constant */ 64 65 dcl MAX_LENGTH fixed bin init (20000) int static options (constant); 66 dcl ME char (32) init ("send_daemon_command") int static options (constant); 67 68 /* Builtin */ 69 70 dcl addr builtin; 71 dcl after builtin; 72 dcl before builtin; 73 dcl byte builtin; 74 dcl currentsize builtin; 75 dcl index builtin; 76 dcl max builtin; 77 dcl null builtin; 78 dcl substr builtin; 79 80 /* External */ 81 82 dcl error_table_$badopt fixed bin (35) ext static; 83 dcl error_table_$bigarg fixed bin (35) ext static; 84 dcl error_table_$insufficient_access 85 fixed bin (35) ext static; 86 dcl error_table_$noarg fixed bin (35) ext static; 87 88 /* Conditions */ 89 90 dcl cleanup condition; 91 92 93 /* Program */ 94 95 sci_ptr = null (); 96 asr_daemon_command_info_ptr = null (); 97 on cleanup call clean_up; 98 99 call ssu_$standalone_invocation (sci_ptr, ME, "1.0", cu_$arg_list_ptr (), SSU_ABORT, code); 100 if code ^= 0 101 then do; 102 call com_err_ (code, ME, "Failed to create ssu_ invocation."); 103 return; 104 end; 105 106 call ssu_$arg_count (sci_ptr, arg_count); 107 if arg_count = 0 108 then do; 109 call com_err_$suppress_name (0, ME, 110 "Usage: send_daemon_command (login|logout|reply|quit) source_name {arguments}"); 111 go to ABORT; 112 end; 113 114 /**** First argument to send_daemon_command is an action keyword. This 115* is a required, positional argument. The existence of this argument 116* has already been determined by the above check. */ 117 118 call ssu_$arg_ptr (sci_ptr, 1, ap, al); 119 120 if argument = "login" 121 then a_action = ASR_DC_LOGIN; 122 else if argument = "logout" 123 then a_action = ASR_DC_LOGOUT; 124 else if argument = "reply" 125 then a_action = ASR_DC_REPLY; 126 else if argument = "quit" 127 then a_action = ASR_DC_QUIT; 128 else call ssu_$abort_line (sci_ptr, 0, "Invalid keyword ^a.", argument); 129 130 /**** We next parse all control arguments to the send_daemon_command 131* command. The end of the control arguments is signalled by an 132* argument which does not begin with a "-". This argument must 133* be the source_id. */ 134 135 a_user_name, a_project_name = ""; 136 flags = "0"b; /* aggregate */ 137 138 source_seen = "0"b; /* not yet */ 139 first_request_argument = -1; /* none found yet */ 140 141 do argx = 2 to arg_count while (first_request_argument = -1); 142 call ssu_$arg_ptr (sci_ptr, argx, ap, al); 143 if index (argument, "-") ^= 1 /* non-control */ 144 then do; 145 if ^source_seen 146 then do; 147 a_source_name = argument; 148 source_seen = "1"b; 149 end; 150 else first_request_argument = argx; 151 end; 152 else if argument = "-brief" 153 then flags.brief = "1"b; 154 else if argument = "-long" 155 then flags.brief = "0"b; 156 else call ssu_$abort_line (sci_ptr, error_table_$badopt, "^a", argument); 157 end; 158 159 160 if ^source_seen 161 then call ssu_$abort_line (sci_ptr, error_table_$noarg, "No source_name specified."); 162 163 if a_action = ASR_DC_LOGIN 164 then /* login */ 165 if first_request_argument = -1 166 then /* didn't say who */ 167 call ssu_$abort_line (sci_ptr, error_table_$noarg, "User.Project must be specified."); 168 else do; 169 call ssu_$arg_ptr (sci_ptr, first_request_argument, ap, al); 170 171 a_user_name = before (argument, "."); 172 a_project_name = after (argument, "."); 173 if a_user_name = "" | a_project_name = "" | index (a_user_name, ".") > 0 174 | index (a_project_name, ".") > 0 175 then call ssu_$abort_line (sci_ptr, error_table_$badopt, 176 "^/Usage: ^a login channel User.Project", ME); 177 /**** The Personid.Projectid argument did not really count as a request 178* argument. Update things to reflect this. */ 179 180 first_request_argument = first_request_argument + 1; 181 if first_request_argument > arg_count 182 then first_request_argument = -1; 183 end; 184 185 if first_request_argument = -1 & a_action = ASR_DC_REPLY 186 then call ssu_$abort_line (sci_ptr, error_table_$noarg, "No reply command line given."); 187 188 asr_dc_length = 0; 189 if first_request_argument ^= -1 190 then do; 191 if (a_action = ASR_DC_QUIT | a_action = ASR_DC_LOGOUT) 192 then call ssu_$abort_line (sci_ptr, 0, "No additional arguments are valid for logout or quit."); 193 194 /**** Establish length of command line */ 195 196 do argx = first_request_argument to arg_count; 197 call ssu_$arg_ptr (sci_ptr, argx, (null ()), al); 198 asr_dc_length = asr_dc_length + al + 1; 199 /* space on the end */ 200 end; 201 202 if a_action ^= ASR_DC_REPLY 203 then /* leave room for the NL */ 204 asr_dc_length = asr_dc_length - 1; 205 asr_dc_length = max (0, asr_dc_length); 206 207 if asr_dc_length > MAX_LENGTH 208 then call ssu_$abort_line (sci_ptr, error_table_$bigarg, 209 "Command line exceeds ^d characters in length.", MAX_LENGTH); 210 end; 211 212 asr_daemon_command_info_ptr = null (); 213 allocate asr_daemon_command_info; 214 asr_daemon_command_info.header.version = as_request_version_1; 215 asr_daemon_command_info.header.type = ASR_DAEMON_COMMAND; 216 asr_daemon_command_info.version = ASR_DC_INFO_VERSION_1; 217 asr_daemon_command_info.action_code = a_action; 218 asr_daemon_command_info.command = ""; 219 asr_daemon_command_info.source_name = a_source_name; 220 asr_daemon_command_info.user_name = a_user_name; 221 asr_daemon_command_info.project_name = a_project_name; 222 223 if first_request_argument ^= -1 224 then do; 225 stringx = 1; 226 do argx = first_request_argument to arg_count; 227 call ssu_$arg_ptr (sci_ptr, argx, ap, al); 228 if argx < arg_count 229 then do; 230 substr (asr_daemon_command_info.command, stringx, al + 1) = argument || " "; 231 stringx = stringx + al + 1; 232 end; 233 else if a_action = ASR_DC_REPLY 234 then substr (asr_daemon_command_info.command, stringx, al + 1) = argument || byte (10); 235 else substr (asr_daemon_command_info.command, stringx, al) = argument; 236 end; 237 end; 238 239 call send_as_request_$block (asr_daemon_command_info_ptr, currentsize (asr_daemon_command_info), (""b), 240 reply_bits, code); 241 242 if code ^= 0 243 then call ssu_$abort_line (sci_ptr, code, "Failed to send request to answering service."); 244 245 asr_reply_dc_ptr = addr (reply_bits); 246 if asr_reply_daemon_command.code ^= 0 247 then do; 248 if asr_reply_daemon_command.no_access_to_daemon 249 then call ssu_$abort_line (sci_ptr, error_table_$insufficient_access, "On daemon source ""^a"".", 250 a_source_name); 251 else if asr_reply_daemon_command.command_refused 252 then call ssu_$abort_line (sci_ptr, error_table_$insufficient_access, "Cannot send daemon commands."); 253 else if asr_reply_daemon_command.no_such_daemon 254 then call ssu_$abort_line (sci_ptr, 0, "No daemon logged in over daemon source ""^a"".", 255 a_source_name); 256 else call ssu_$abort_line (sci_ptr, asr_reply_daemon_command.code); 257 end; 258 259 call clean_up (); 260 return; 261 262 SSU_ABORT: 263 procedure (); 264 265 goto ABORT; 266 end SSU_ABORT; 267 ABORT: 268 call clean_up (); 269 return; 270 271 clean_up: 272 procedure (); 273 274 call ssu_$destroy_invocation (sci_ptr); 275 if asr_daemon_command_info_ptr ^= null 276 then free asr_daemon_command_info; 277 return; 278 end clean_up; 279 280 /* format: off */ 281 /* Begin include file asr_daemon_command.incl.pl1 BIM 1985-02-18 */ 1 2 /* format: style4 */ 1 3 /* AS request structure for daemon commands. */ 1 4 1 5 dcl asr_daemon_command_info_ptr pointer; 1 6 dcl 1 asr_daemon_command_info aligned based (asr_daemon_command_info_ptr), 1 7 2 header aligned like as_request_header, 1 8 2 version char (8), 1 9 2 action_code fixed bin, 1 10 2 user_name char (32) unaligned, 1 11 2 project_name char (32) unaligned, 1 12 2 source_name char (32) unaligned, 1 13 2 pad (10) bit (36) aligned, /* avoid adding after refer */ 1 14 2 command_length fixed bin (21), 1 15 2 command char (asr_dc_length refer (asr_daemon_command_info.command_length)) unaligned; /* login control args here on login */ 1 16 1 17 dcl asr_dc_length fixed bin (21); 1 18 dcl ASR_DC_INFO_VERSION_1 char (8) init ("asrdc001") int static options (constant); 1 19 1 20 dcl (ASR_DC_LOGIN init (1), 1 21 ASR_DC_LOGOUT init (2), 1 22 ASR_DC_QUIT init (3), 1 23 ASR_DC_REPLY init (4)) fixed bin int static options (constant); 1 24 1 25 declare asr_reply_dc_ptr pointer; 1 26 dcl 1 asr_reply_daemon_command aligned based (asr_reply_dc_ptr), 1 27 2 code fixed bin (35), 1 28 2 flags aligned, 1 29 3 command_refused bit (1) unaligned, /* validate_daemon_commands OFF and no access to sac */ 1 30 3 no_such_daemon bit (1) unaligned, /* nobody home */ 1 31 3 no_access_to_daemon bit (1) unaligned, /* validate_daemon_commands ON and no access to the specific victim */ 1 32 3 pad bit (33) unaligned; 1 33 1 34 /* END INCLUDE FILE ... asr_daemon_command.incl.pl1 */ 281 282 /* BEGIN INCLUDE FILE ... as_request_header.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* Answering Service request information. 2 5**/ 2 6 2 7 2 8 /****^ HISTORY COMMENTS: 2 9* 1) change(00-01-01,JRandom), approve(), audit(), install(): 2 10* Written by someone, at sometime. 2 11* 2) change(84-09-10,Tague), approve(), audit(), install(): 2 12* R. Michael Tague: Added ASR_BUMP_USER request. 2 13* 3) change(84-10-04,Margulies), approve(), audit(), install(): 2 14* BIM: ASR_ADMIN_COMMAND. 2 15* 4) change(85-01-23,Swenson), approve(), audit(), install(): 2 16* E. Swenson for ASR_NOTE_PNT_CHANGE. 2 17* 5) change(85-02-18,Margulies), approve(), audit(), install(): 2 18* BIM: ASR_DAEMON_COMMAND, ASR_COM_CHANNEL_INFO 2 19* 6) change(85-12-12,Lippard), approve(85-12-30,MCR7326), 2 20* audit(86-10-27,GDixon), install(86-10-28,MR12.0-1200): 2 21* Jim Lippard: Added ASR_ABS_COMMAND request. 2 22* END HISTORY COMMENTS */ 2 23 2 24 2 25 /* format: style4 */ 2 26 2 27 dcl as_request_version_1 fixed bin internal static initial (1) options (constant); 2 28 2 29 dcl ( 2 30 ASR_FIRST_TYPE initial (1), 2 31 ASR_DIAL_SERVER initial (1), 2 32 ASR_DIAL_OUT initial (2), 2 33 ASR_FPE_CAUSES_LOGOUT initial (3), 2 34 ASR_FPE_CAUSES_NEW_PROC initial (4), 2 35 ASR_PROC_TERM_NOTIFY initial (5), 2 36 ASR_BUMP_USER initial (6), 2 37 ASR_ADMIN_COMMAND initial (7), 2 38 ASR_NOTE_PNT_CHANGE initial (8), 2 39 ASR_DAEMON_COMMAND initial (9), 2 40 ASR_COM_CHANNEL_INFO initial (10), 2 41 ASR_ABS_COMMAND initial (11), 2 42 ASR_LAST_TYPE initial (11) 2 43 ) fixed bin internal static options (constant); 2 44 2 45 dcl ASR_DEFER_IN_ADMIN_MODE (1:11) bit (1) int static options (constant) 2 46 init ((6) (1) "0"b, "1"b, (4) (1) "0"b); 2 47 2 48 dcl ASR_REQUEST_NAMES (1:11) int static options (constant) 2 49 char (40) init ( 2 50 "Dial request", 2 51 "Dial out request", 2 52 "Logout on fatal process error", 2 53 "New process on fatal process error", 2 54 "Monitor process terminations", 2 55 "Bump user", 2 56 "Execute admin command", 2 57 "Note PNT change", 2 58 "Daemon command", 2 59 "Communications channel info", 2 60 "Absentee command"); 2 61 2 62 dcl 1 as_request_header based aligned, 2 63 2 version fixed bin, /* version number */ 2 64 2 type fixed bin, /* what to do */ 2 65 2 reply_channel fixed bin (71); /* who to tell */ 2 66 2 67 2 68 /* END INCLUDE FILE ... as_request_header.incl.pl1 */ 282 283 284 end send_daemon_command; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/12/91 2132.9 send_daemon_command.pl1 >spec>install>1008>send_daemon_command.pl1 281 1 03/08/85 0852.6 asr_daemon_command.incl.pl1 >ldd>incl>asr_daemon_command.incl.pl1 282 2 10/30/86 2010.5 as_request_header.incl.pl1 >ldd>incl>as_request_header.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. ASR_DAEMON_COMMAND constant fixed bin(17,0) initial dcl 2-29 ref 215 ASR_DC_INFO_VERSION_1 000000 constant char(8) initial packed unaligned dcl 1-18 ref 216 ASR_DC_LOGIN constant fixed bin(17,0) initial dcl 1-20 ref 120 163 ASR_DC_LOGOUT constant fixed bin(17,0) initial dcl 1-20 ref 122 191 ASR_DC_QUIT constant fixed bin(17,0) initial dcl 1-20 ref 126 191 ASR_DC_REPLY constant fixed bin(17,0) initial dcl 1-20 ref 124 185 202 233 MAX_LENGTH 000012 constant fixed bin(17,0) initial dcl 65 set ref 207 207* ME 000002 constant char(32) initial packed unaligned dcl 66 set ref 99* 102* 109* 173* a_action 000116 automatic fixed bin(17,0) dcl 56 set ref 120* 122* 124* 126* 163 185 191 191 202 217 233 a_project_name 000137 automatic char(32) packed unaligned dcl 59 set ref 135* 172* 173 173 221 a_source_name 000117 automatic char(32) packed unaligned dcl 57 set ref 147* 219 248* 253* a_user_name 000127 automatic char(32) packed unaligned dcl 58 set ref 135* 171* 173 173 220 action_code 6 based fixed bin(17,0) level 2 dcl 1-6 set ref 217* addr builtin function dcl 70 ref 245 after builtin function dcl 71 ref 172 al 000100 automatic fixed bin(21,0) dcl 45 set ref 118* 120 122 124 126 128 128 142* 143 147 152 154 156 156 169* 171 172 197* 198 227* 230 230 231 233 233 235 235 ap 000102 automatic pointer dcl 46 set ref 118* 120 122 124 126 128 142* 143 147 152 154 156 169* 171 172 227* 230 233 235 arg_count 000106 automatic fixed bin(17,0) dcl 49 set ref 106* 107 141 181 196 226 228 argument based char packed unaligned dcl 54 set ref 120 122 124 126 128* 143 147 152 154 156* 171 172 230 233 235 argx 000105 automatic fixed bin(17,0) dcl 48 set ref 141* 142* 150* 196* 197* 226* 227* 228* as_request_header based structure level 1 dcl 2-62 as_request_version_1 constant fixed bin(17,0) initial dcl 2-27 ref 214 asr_daemon_command_info based structure level 1 dcl 1-6 set ref 213 239 239 275 asr_daemon_command_info_ptr 000156 automatic pointer dcl 1-5 set ref 96* 212* 213* 214 215 216 217 218 219 220 221 230 233 235 239* 239 239 275 275 asr_dc_length 000160 automatic fixed bin(21,0) dcl 1-17 set ref 188* 198* 198 202* 202 205* 205 207 213 213 asr_reply_daemon_command based structure level 1 dcl 1-26 asr_reply_dc_ptr 000162 automatic pointer dcl 1-25 set ref 245* 246 248 251 253 256 before builtin function dcl 72 ref 171 brief 000147 automatic bit(1) level 2 dcl 60 set ref 152* 154* byte builtin function dcl 73 ref 233 cleanup 000150 stack reference condition dcl 90 ref 97 code 000104 automatic fixed bin(35,0) dcl 47 in procedure "send_daemon_command" set ref 99* 100 102* 239* 242 242* code based fixed bin(35,0) level 2 in structure "asr_reply_daemon_command" dcl 1-26 in procedure "send_daemon_command" set ref 246 256* com_err_ 000010 constant entry external dcl 29 ref 102 com_err_$suppress_name 000012 constant entry external dcl 30 ref 109 command 52 based char level 2 packed packed unaligned dcl 1-6 set ref 218* 230* 233* 235* command_length 51 based fixed bin(21,0) level 2 dcl 1-6 set ref 213* 218 230 233 235 239 239 275 command_refused 1 based bit(1) level 3 packed packed unaligned dcl 1-26 ref 251 cu_$arg_list_ptr 000014 constant entry external dcl 31 ref 99 99 currentsize builtin function dcl 74 ref 239 239 error_table_$badopt 000032 external static fixed bin(35,0) dcl 82 set ref 156* 173* error_table_$bigarg 000034 external static fixed bin(35,0) dcl 83 set ref 207* error_table_$insufficient_access 000036 external static fixed bin(35,0) dcl 84 set ref 248* 251* error_table_$noarg 000040 external static fixed bin(35,0) dcl 86 set ref 160* 163* 185* first_request_argument 000107 automatic fixed bin(17,0) dcl 50 set ref 139* 141 150* 163 169* 180* 180 181 181* 185 189 196 223 226 flags 000147 automatic structure level 1 dcl 60 in procedure "send_daemon_command" set ref 136* flags 1 based structure level 2 in structure "asr_reply_daemon_command" dcl 1-26 in procedure "send_daemon_command" header based structure level 2 dcl 1-6 index builtin function dcl 75 ref 143 173 173 max builtin function dcl 76 ref 205 no_access_to_daemon 1(02) based bit(1) level 3 packed packed unaligned dcl 1-26 ref 248 no_such_daemon 1(01) based bit(1) level 3 packed packed unaligned dcl 1-26 ref 253 null builtin function dcl 77 ref 95 96 197 212 275 project_name 17 based char(32) level 2 packed packed unaligned dcl 1-6 set ref 221* reply_bits 000110 automatic bit(72) dcl 51 set ref 239* 245 sci_ptr 000112 automatic pointer dcl 52 set ref 95* 99* 106* 118* 128* 142* 156* 160* 163* 169* 173* 185* 191* 197* 207* 227* 242* 248* 251* 253* 256* 274* send_as_request_$block 000030 constant entry external dcl 40 ref 239 source_name 27 based char(32) level 2 packed packed unaligned dcl 1-6 set ref 219* source_seen 000115 automatic bit(1) dcl 55 set ref 138* 145 148* 160 ssu_$abort_line 000016 constant entry external dcl 32 ref 128 156 160 163 173 185 191 207 242 248 251 253 256 ssu_$arg_count 000026 constant entry external dcl 38 ref 106 ssu_$arg_ptr 000024 constant entry external dcl 37 ref 118 142 169 197 227 ssu_$destroy_invocation 000022 constant entry external dcl 35 ref 274 ssu_$standalone_invocation 000020 constant entry external dcl 33 ref 99 stringx 000114 automatic fixed bin(21,0) dcl 53 set ref 225* 230 231* 231 233 235 substr builtin function dcl 78 set ref 230* 233* 235* type 1 based fixed bin(17,0) level 3 dcl 1-6 set ref 215* user_name 7 based char(32) level 2 packed packed unaligned dcl 1-6 set ref 220* version 4 based char(8) level 2 in structure "asr_daemon_command_info" dcl 1-6 in procedure "send_daemon_command" set ref 216* version based fixed bin(17,0) level 3 in structure "asr_daemon_command_info" dcl 1-6 in procedure "send_daemon_command" set ref 214* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ASR_ABS_COMMAND internal static fixed bin(17,0) initial dcl 2-29 ASR_ADMIN_COMMAND internal static fixed bin(17,0) initial dcl 2-29 ASR_BUMP_USER internal static fixed bin(17,0) initial dcl 2-29 ASR_COM_CHANNEL_INFO internal static fixed bin(17,0) initial dcl 2-29 ASR_DEFER_IN_ADMIN_MODE internal static bit(1) initial array packed unaligned dcl 2-45 ASR_DIAL_OUT internal static fixed bin(17,0) initial dcl 2-29 ASR_DIAL_SERVER internal static fixed bin(17,0) initial dcl 2-29 ASR_FIRST_TYPE internal static fixed bin(17,0) initial dcl 2-29 ASR_FPE_CAUSES_LOGOUT internal static fixed bin(17,0) initial dcl 2-29 ASR_FPE_CAUSES_NEW_PROC internal static fixed bin(17,0) initial dcl 2-29 ASR_LAST_TYPE internal static fixed bin(17,0) initial dcl 2-29 ASR_NOTE_PNT_CHANGE internal static fixed bin(17,0) initial dcl 2-29 ASR_PROC_TERM_NOTIFY internal static fixed bin(17,0) initial dcl 2-29 ASR_REQUEST_NAMES internal static char(40) initial array packed unaligned dcl 2-48 NAMES DECLARED BY EXPLICIT CONTEXT. ABORT 001772 constant label dcl 267 ref 111 265 SSU_ABORT 002000 constant entry internal dcl 262 ref 99 99 clean_up 002011 constant entry internal dcl 271 ref 97 259 267 send_daemon_command 000261 constant entry external dcl 20 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2252 2314 2044 2262 Length 2556 2044 42 226 206 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME send_daemon_command 167 external procedure is an external procedure. on unit on line 97 64 on unit SSU_ABORT 64 internal procedure is assigned to an entry variable. clean_up 68 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME send_daemon_command 000100 al send_daemon_command 000102 ap send_daemon_command 000104 code send_daemon_command 000105 argx send_daemon_command 000106 arg_count send_daemon_command 000107 first_request_argument send_daemon_command 000110 reply_bits send_daemon_command 000112 sci_ptr send_daemon_command 000114 stringx send_daemon_command 000115 source_seen send_daemon_command 000116 a_action send_daemon_command 000117 a_source_name send_daemon_command 000127 a_user_name send_daemon_command 000137 a_project_name send_daemon_command 000147 flags send_daemon_command 000156 asr_daemon_command_info_ptr send_daemon_command 000160 asr_dc_length send_daemon_command 000162 asr_reply_dc_ptr send_daemon_command THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name cu_$arg_list_ptr send_as_request_$block ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$destroy_invocation ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$bigarg error_table_$insufficient_access error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000260 95 000266 96 000270 97 000271 99 000313 100 000363 102 000365 103 000411 106 000412 107 000423 109 000425 111 000452 118 000453 120 000472 122 000503 124 000512 126 000521 128 000530 135 000567 136 000575 138 000576 139 000577 141 000601 142 000614 143 000631 145 000645 147 000647 148 000653 149 000655 150 000656 151 000660 152 000661 154 000670 156 000676 157 000730 160 000732 163 000760 169 001013 171 001030 172 001042 173 001060 180 001142 181 001143 185 001150 188 001202 189 001203 191 001206 196 001240 197 001247 198 001266 200 001272 202 001274 205 001301 207 001306 212 001340 213 001342 214 001353 215 001355 216 001357 217 001362 218 001364 219 001370 220 001373 221 001376 223 001401 225 001404 226 001406 227 001415 228 001432 230 001435 231 001466 232 001473 233 001474 235 001534 236 001544 239 001546 242 001575 245 001623 246 001625 248 001627 251 001663 253 001713 256 001750 259 001765 260 001771 267 001772 269 001776 262 001777 265 002005 271 002010 274 002016 275 002025 277 002041 ----------------------------------------------------------- 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