COMPILATION LISTING OF SEGMENT dm_send_request 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.0 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8*dm_send_request provides a mechanism for Data Management administrators to 9*send DM Daemon requests over the DM Daemon's request channel. These requests 10*are internal requests used by the DM system and usually originate from ring 2 11*DM code. Probably the most useful request for a DM administrator is the kill 12*request. This request clears the Transaction Definition Table of a specified 13*transaction without rolling back or commiting the transaction. 14**/ 15 16 /* HISTORY: 17* 18*Written by R. Michael Tague, 01/21/85. 19*Modified: 20*02/14/85 by R. Michael Tague: Added a copyright notice, a description, and 21* declared a few builtins. 22*03/19/85 by R. Michael Tague: Changed to use keyword instead of control 23* arguments as ammended by the MCR board. 24**/ 25 26 /* format: style5,^indcomtxt */ 27 28 dm_send_request: 29 proc (); 30 31 /* START OF DECLARATIONS */ 32 /* Automatic */ 33 34 dcl accept_keyword_argument bit (1) aligned init ("0"b); 35 dcl arg_idx fixed bin; 36 dcl arg_len fixed bin (21); 37 dcl arg_list_ptr ptr init (null); 38 dcl arg_ptr ptr; 39 dcl code fixed bin (35); 40 dcl keyword_argument_idx fixed bin; 41 dcl force_interpretation_as_argument 42 bit (1) aligned init (NO); 43 dcl is_active_function bit (1) aligned init (NO); 44 dcl number_of_args fixed bin; 45 dcl return_arg_len fixed bin (21) init (0); 46 dcl return_arg_ptr ptr init (null); 47 dcl sci_ptr ptr init (null); 48 dcl this_is_a_standalone_invocation 49 bit (1) aligned init (YES); 50 51 dcl operation_index fixed bin init (-1); 52 dcl tdt_index fixed bin init (0); 53 dcl transaction_id_fixed_bin_36 54 fixed bin (36) init (0); 55 56 /* Based */ 57 58 dcl arg char (arg_len) based (arg_ptr); 59 dcl 1 transaction_id based ( 60 addr (transaction_id_fixed_bin_36)), 61 2 pad bit (36) aligned, 62 2 transaction_id_bit_36 63 bit (36) aligned; 64 /* Builtin */ 65 66 dcl (addr, bin, hbound, index, null, substr) 67 builtin; 68 dcl (cleanup, conversion, size) 69 condition; 70 71 /* Constant */ 72 73 dcl ( 74 YES init ("1"b), 75 NO init ("0"b) 76 ) bit (1) aligned internal static 77 options (constant); 78 dcl myname init ("dm_send_request") 79 char (15) internal static 80 options (constant); 81 82 83 dcl ARGUMENT_TYPE (12) internal static 84 options (constant) char (64) 85 varying 86 init ("", "", "tdt index (decimal)", 87 "tdt index (decimal)", 88 "transaction ID (decimal)", 89 "transaction ID (decimal)", "", "", "", 90 "", "transaction ID (decimal)", 91 "transaction ID (decimal)"); 92 dcl KEYWORD_ARGUMENT (12) internal static 93 options (constant) char (64) 94 varying 95 init ("adjust_tdt", "adjtdt", 96 "adjust_tdt_entry", "adjtdte", 97 "adjust_txn", "adjtxn", "new_proc", 98 "new_process_notifications", "notify", 99 "shutdown", "kill_txn", "kill"); 100 101 dcl ( 102 ADJUST_TDT init (1), 103 ADJUST_TDT_ENTRY init (2), 104 ADJUST_TXN init (3), 105 NEW_PROC init (4), 106 NEW_PROCESS_NOTIFICATIONS 107 init (5), 108 SHUTDOWN init (6), 109 KILL_TXN init (7) 110 ) internal static options (constant) 111 fixed bin; 112 113 114 /* Entry */ 115 116 dcl cu_$arg_list_ptr entry (ptr); 117 dcl cv_dec_check_ entry (char (*), fixed bin (35)) 118 returns (fixed bin (35)); 119 dcl dm_admin_util_$send_adjust_tdt 120 entry (fixed bin (35)); 121 dcl dm_admin_util_$send_adjust_tdt_entry 122 entry (bit (36) aligned, fixed bin, 123 fixed bin (35)); 124 dcl dm_admin_util_$send_adjust_txn 125 entry (bit (36) aligned, fixed bin, 126 fixed bin (35)); 127 dcl dm_admin_util_$send_new_proc 128 entry (fixed bin (35)); 129 dcl dm_admin_util_$send_new_process_notifies 130 entry (fixed bin (35)); 131 dcl dm_admin_util_$send_shutdown 132 entry (fixed bin (35)); 133 dcl dm_admin_util_$send_kill_txn 134 entry (bit (36) aligned, fixed bin (35)) 135 ; 136 dcl ssu_$abort_line entry () options (variable); 137 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, 138 fixed bin (21)); 139 dcl ssu_$destroy_invocation entry (ptr); 140 dcl ssu_$return_arg entry (ptr, fixed bin, bit (1) aligned, 141 ptr, fixed bin (21)); 142 dcl ssu_$standalone_invocation 143 entry (ptr, char (*), char (*), ptr, 144 entry, fixed bin (35)); 145 146 /* External */ 147 148 dcl ( 149 error_table_$active_function, 150 error_table_$bad_arg, 151 error_table_$noarg 152 ) fixed bin (35) external; 153 154 /* END OF DECLARATIONS */ 155 call cu_$arg_list_ptr (arg_list_ptr); 156 call ssu_$standalone_invocation (sci_ptr, myname, "", arg_list_ptr, 157 ABORT_ENTRY, code); 158 159 on cleanup call CLEANUP (); 160 161 call ssu_$return_arg (sci_ptr, number_of_args, is_active_function, 162 return_arg_ptr, return_arg_len); 163 164 if is_active_function then 165 call ssu_$abort_line (sci_ptr, error_table_$active_function, 166 myname); 167 168 accept_keyword_argument = YES; 169 keyword_argument_idx = -1; 170 171 if number_of_args < 1 then 172 call ssu_$abort_line (sci_ptr, error_table_$noarg, 173 "^/Usage: ^a KEYWORD {value}^/Keywords:^/ adjust_tdt, adjtdt^/ adjust_tdt_entry, adjtdte^/ adjust_txn, adjtxn^/ new_proc^/ new_process_notifications, notify^/ shutdown^/ kill_txn, kill", 174 myname); 175 ARG_PROCESSING_LOOP: 176 do arg_idx = 1 to number_of_args; 177 call ssu_$arg_ptr (sci_ptr, arg_idx, arg_ptr, arg_len); 178 if KEYWORD_ARGUMENT_INDEX (arg) = -1 179 | force_interpretation_as_argument = YES then 180 call PROCESS_ARGUMENT (arg, keyword_argument_idx, 181 accept_keyword_argument); 182 else if accept_keyword_argument = YES then 183 call PROCESS_KEYWORD_ARGUMENT (arg, 184 keyword_argument_idx, accept_keyword_argument, 185 force_interpretation_as_argument); 186 else 187 call REPORT_MISSING_ARGUMENT (keyword_argument_idx); 188 if keyword_argument_idx = -1 & accept_keyword_argument = YES 189 then 190 goto DO_OPERATION (operation_index); 191 else 192 goto SKIP_OPERATION; 193 194 DO_OPERATION (1): /* ADJUST_TDT */ 195 call dm_admin_util_$send_adjust_tdt (code); 196 goto FINISH_OPERATION; 197 DO_OPERATION (2): /* ADJUST_TDT_ENTRY */ 198 call dm_admin_util_$send_adjust_tdt_entry (""b, tdt_index, code) 199 ; 200 goto FINISH_OPERATION; 201 DO_OPERATION (3): /* ADJUST_TXN */ 202 call dm_admin_util_$send_adjust_txn (transaction_id 203 .transaction_id_bit_36, 0, code); 204 goto FINISH_OPERATION; 205 DO_OPERATION (4): /* NEW_PROC */ 206 call dm_admin_util_$send_new_proc (code); 207 goto FINISH_OPERATION; 208 DO_OPERATION (5): /* NEW_PROCESS_NOTIFICATIONS */ 209 call dm_admin_util_$send_new_process_notifies (code); 210 goto FINISH_OPERATION; 211 DO_OPERATION (6): /* SHUTDOWN */ 212 call dm_admin_util_$send_shutdown (code); 213 goto FINISH_OPERATION; 214 DO_OPERATION (7): /* KILL_TXN */ 215 call dm_admin_util_$send_kill_txn (transaction_id 216 .transaction_id_bit_36, code); 217 goto FINISH_OPERATION; 218 FINISH_OPERATION: 219 if code ^= 0 then 220 call ssu_$abort_line (sci_ptr, code); 221 SKIP_OPERATION: 222 end ARG_PROCESSING_LOOP; 223 224 if keyword_argument_idx >= 0 & accept_keyword_argument = NO then 225 call REPORT_MISSING_ARGUMENT (keyword_argument_idx); 226 call RETURN (); 227 228 MAIN_RETURN: 229 return; 230 231 RETURN: 232 proc (); 233 call FINISH (); 234 goto MAIN_RETURN; 235 end RETURN; 236 237 ABORT_ENTRY: 238 procedure (); 239 call CLEANUP (); 240 go to MAIN_RETURN; 241 end ABORT_ENTRY; 242 243 CLEANUP: 244 procedure (); 245 call FINISH (); 246 end CLEANUP; 247 248 FINISH: 249 proc (); 250 call ssu_$destroy_invocation (sci_ptr); 251 end FINISH; 252 253 PROCESS_ARGUMENT: 254 proc (pa_p_arg, pa_p_keyword_argument_idx, pa_p_accept_keyword_argument) 255 ; 256 257 dcl pa_p_arg char (*) parm; 258 dcl pa_p_keyword_argument_idx 259 fixed bin parm; 260 dcl pa_p_accept_keyword_argument 261 bit (1) aligned parm; 262 263 dcl pa_code fixed bin (35); 264 265 pa_code = 0; 266 267 goto ARGUMENT (pa_p_keyword_argument_idx); 268 ARGUMENT (-1): 269 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 270 "^/The argument ""^a"" is out of place.", arg); 271 return; 272 ARGUMENT (3): /* adjust_tdt_entry */ 273 ARGUMENT (4): /* adjtdte */ 274 on size 275 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 276 "^/Transaction index too large."); 277 tdt_index = cv_dec_check_ (arg, pa_code); 278 revert size; 279 if pa_code ^= 0 then 280 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 281 "^/Transaction index must be a positive decimal integer."); 282 283 keyword_argument_idx = -1; 284 accept_keyword_argument = YES; 285 return; 286 287 ARGUMENT (5): /* adjust_txn */ 288 ARGUMENT (6): /* adjtxn */ 289 on size 290 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 291 "^/Transaction ID too large."); 292 on conversion 293 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 294 "^/Transaction ID must be positive decimal integer."); 295 transaction_id_fixed_bin_36 = bin (arg, 36); 296 revert conversion; 297 revert size; 298 299 keyword_argument_idx = -1; 300 accept_keyword_argument = YES; 301 return; 302 303 ARGUMENT (11): /* kill_txn */ 304 ARGUMENT (12): /* kill */ 305 on size 306 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 307 "^/Transaction ID too large."); 308 on conversion 309 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 310 "^/Transaction ID must be positive decimal integer."); 311 transaction_id_fixed_bin_36 = bin (arg, 36); 312 revert conversion; 313 revert size; 314 315 keyword_argument_idx = -1; 316 accept_keyword_argument = YES; 317 return; 318 319 end PROCESS_ARGUMENT; 320 321 PROCESS_KEYWORD_ARGUMENT: 322 proc (pca_p_arg, pca_p_keyword_argument_idx, 323 pca_p_accept_keyword_argument, 324 pca_p_force_interpretation_as_argument); 325 326 327 dcl pca_p_arg char (*) parm; 328 dcl pca_p_keyword_argument_idx 329 fixed bin parm; 330 dcl pca_p_accept_keyword_argument 331 bit (1) aligned parm; 332 dcl pca_p_force_interpretation_as_argument 333 bit (1) aligned parm; 334 335 pca_p_keyword_argument_idx = KEYWORD_ARGUMENT_INDEX (pca_p_arg); 336 pca_p_accept_keyword_argument = YES; 337 pca_p_force_interpretation_as_argument = NO; 338 339 go to KEYWORD_ARGUMENT (pca_p_keyword_argument_idx); 340 341 KEYWORD_ARGUMENT (-1): /* not a keyword argument */ 342 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, pca_p_arg); 343 344 KEYWORD_ARGUMENT (1): /* adjust_tdt */ 345 KEYWORD_ARGUMENT (2): /* adjtdt */ 346 operation_index = ADJUST_TDT; 347 348 pca_p_keyword_argument_idx = -1; 349 pca_p_accept_keyword_argument = YES; 350 return; 351 352 KEYWORD_ARGUMENT (3): /* adjust_tdt_entry */ 353 KEYWORD_ARGUMENT (4): /* adjtdte */ 354 operation_index = ADJUST_TDT_ENTRY; 355 356 pca_p_accept_keyword_argument = NO; 357 return; 358 359 360 KEYWORD_ARGUMENT (5): /* adjust_txn */ 361 KEYWORD_ARGUMENT (6): /* adjtxn */ 362 operation_index = ADJUST_TXN; 363 364 pca_p_accept_keyword_argument = NO; 365 return; 366 367 368 KEYWORD_ARGUMENT (7): /* new_proc */ 369 operation_index = NEW_PROC; 370 371 pca_p_keyword_argument_idx = -1; 372 pca_p_accept_keyword_argument = YES; 373 return; 374 375 376 KEYWORD_ARGUMENT (8): /* new_process_notifications */ 377 KEYWORD_ARGUMENT (9): /* notify */ 378 operation_index = NEW_PROCESS_NOTIFICATIONS; 379 380 pca_p_keyword_argument_idx = -1; 381 pca_p_accept_keyword_argument = YES; 382 return; 383 384 385 KEYWORD_ARGUMENT (10): /* shutdown */ 386 operation_index = SHUTDOWN; 387 388 pca_p_keyword_argument_idx = -1; 389 pca_p_accept_keyword_argument = YES; 390 return; 391 392 393 KEYWORD_ARGUMENT (11): /* kill_txn */ 394 KEYWORD_ARGUMENT (12): /* kill */ 395 operation_index = KILL_TXN; 396 397 pca_p_accept_keyword_argument = NO; 398 return; 399 400 401 end PROCESS_KEYWORD_ARGUMENT; 402 403 404 KEYWORD_ARGUMENT_INDEX: 405 proc (cai_p_arg) returns (fixed bin); 406 407 dcl cai_p_arg char (*); 408 dcl cai_keyword_argument_idx 409 fixed bin; 410 411 do cai_keyword_argument_idx = 1 to hbound (KEYWORD_ARGUMENT, 1) 412 while (KEYWORD_ARGUMENT (cai_keyword_argument_idx) ^= cai_p_arg); 413 end; 414 if cai_keyword_argument_idx > hbound (KEYWORD_ARGUMENT, 1) then 415 return (-1); 416 else 417 return (cai_keyword_argument_idx); 418 419 end KEYWORD_ARGUMENT_INDEX; 420 421 REPORT_MISSING_ARGUMENT: 422 proc (rma_p_keyword_argument_idx); 423 dcl rma_p_keyword_argument_idx 424 fixed bin parm; 425 426 call ssu_$abort_line (sci_ptr, error_table_$noarg, 427 "^a must be followed by a^[n^] ^a.", 428 KEYWORD_ARGUMENT (rma_p_keyword_argument_idx), 429 ( 430 index ("aeiouh", 431 substr (ARGUMENT_TYPE (rma_p_keyword_argument_idx), 1, 1)) > 0), 432 ARGUMENT_TYPE (rma_p_keyword_argument_idx)); 433 end REPORT_MISSING_ARGUMENT; 434 435 end dm_send_request; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0824.8 dm_send_request.pl1 >spec>on>7192.pbf-04/04/85>dm_send_request.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. ADJUST_TDT constant fixed bin(17,0) initial dcl 101 ref 344 ADJUST_TDT_ENTRY constant fixed bin(17,0) initial dcl 101 ref 352 ADJUST_TXN constant fixed bin(17,0) initial dcl 101 ref 360 ARGUMENT_TYPE 000357 constant varying char(64) initial array dcl 83 set ref 426 426* KEYWORD_ARGUMENT 000043 constant varying char(64) initial array dcl 92 set ref 411 411 414 426* KILL_TXN constant fixed bin(17,0) initial dcl 101 ref 393 NEW_PROC constant fixed bin(17,0) initial dcl 101 ref 368 NEW_PROCESS_NOTIFICATIONS constant fixed bin(17,0) initial dcl 101 ref 376 NO constant bit(1) initial dcl 73 ref 41 43 224 337 356 364 397 SHUTDOWN constant fixed bin(17,0) initial dcl 101 ref 385 YES constant bit(1) initial dcl 73 ref 48 168 178 182 188 284 300 316 336 349 372 381 389 accept_keyword_argument 000100 automatic bit(1) initial dcl 34 set ref 34* 168* 178* 182 182* 188 224 284* 300* 316* addr builtin function dcl 66 ref 201 214 arg based char unaligned dcl 58 set ref 178* 178* 182* 268* 277* 295 311 arg_idx 000101 automatic fixed bin(17,0) dcl 35 set ref 175* 177* arg_len 000102 automatic fixed bin(21,0) dcl 36 set ref 177* 178 178 178 178 182 182 268 268 277 277 295 311 arg_list_ptr 000104 automatic pointer initial dcl 37 set ref 37* 155* 156* arg_ptr 000106 automatic pointer dcl 38 set ref 177* 178 178 182 268 277 295 311 bin builtin function dcl 66 ref 295 311 cai_keyword_argument_idx 000162 automatic fixed bin(17,0) dcl 408 set ref 411* 411* 414 416 cai_p_arg parameter char unaligned dcl 407 ref 404 411 cleanup 000130 stack reference condition dcl 68 ref 159 code 000110 automatic fixed bin(35,0) dcl 39 set ref 156* 194* 197* 201* 205* 208* 211* 214* 218 218* conversion 000000 stack reference condition dcl 68 ref 292 296 308 312 cu_$arg_list_ptr 000010 constant entry external dcl 116 ref 155 cv_dec_check_ 000012 constant entry external dcl 117 ref 277 dm_admin_util_$send_adjust_tdt 000014 constant entry external dcl 119 ref 194 dm_admin_util_$send_adjust_tdt_entry 000016 constant entry external dcl 121 ref 197 dm_admin_util_$send_adjust_txn 000020 constant entry external dcl 124 ref 201 dm_admin_util_$send_kill_txn 000030 constant entry external dcl 133 ref 214 dm_admin_util_$send_new_proc 000022 constant entry external dcl 127 ref 205 dm_admin_util_$send_new_process_notifies 000024 constant entry external dcl 129 ref 208 dm_admin_util_$send_shutdown 000026 constant entry external dcl 131 ref 211 error_table_$active_function 000044 external static fixed bin(35,0) dcl 148 set ref 164* error_table_$bad_arg 000046 external static fixed bin(35,0) dcl 148 set ref 268* 272* 279* 287* 292* 303* 308* 341* error_table_$noarg 000050 external static fixed bin(35,0) dcl 148 set ref 171* 426* force_interpretation_as_argument 000112 automatic bit(1) initial dcl 41 set ref 41* 178 182* hbound builtin function dcl 66 ref 411 414 index builtin function dcl 66 ref 426 is_active_function 000113 automatic bit(1) initial dcl 43 set ref 43* 161* 164 keyword_argument_idx 000111 automatic fixed bin(17,0) dcl 40 set ref 169* 178* 182* 186* 188 224 224* 283* 299* 315* myname 000673 constant char(15) initial unaligned dcl 78 set ref 156* 164* 171* null builtin function dcl 66 ref 37 46 47 number_of_args 000114 automatic fixed bin(17,0) dcl 44 set ref 161* 171 175 operation_index 000123 automatic fixed bin(17,0) initial dcl 51 set ref 51* 188 344* 352* 360* 368* 376* 385* 393* pa_code 000100 automatic fixed bin(35,0) dcl 263 set ref 265* 277* 279 pa_p_accept_keyword_argument parameter bit(1) dcl 260 ref 253 pa_p_arg parameter char unaligned dcl 257 ref 253 pa_p_keyword_argument_idx parameter fixed bin(17,0) dcl 258 ref 253 267 pca_p_accept_keyword_argument parameter bit(1) dcl 330 set ref 321 336* 349* 356* 364* 372* 381* 389* 397* pca_p_arg parameter char unaligned dcl 327 set ref 321 335* 341* pca_p_force_interpretation_as_argument parameter bit(1) dcl 332 set ref 321 337* pca_p_keyword_argument_idx parameter fixed bin(17,0) dcl 328 set ref 321 335* 339 348* 371* 380* 388* return_arg_len 000115 automatic fixed bin(21,0) initial dcl 45 set ref 45* 161* return_arg_ptr 000116 automatic pointer initial dcl 46 set ref 46* 161* rma_p_keyword_argument_idx parameter fixed bin(17,0) dcl 423 ref 421 426 426 426 sci_ptr 000120 automatic pointer initial dcl 47 set ref 47* 156* 161* 164* 171* 177* 218* 250* 268* 272* 279* 287* 292* 303* 308* 341* 426* size 000000 stack reference condition dcl 68 ref 272 278 287 297 303 313 ssu_$abort_line 000032 constant entry external dcl 136 ref 164 171 218 268 272 279 287 292 303 308 341 426 ssu_$arg_ptr 000034 constant entry external dcl 137 ref 177 ssu_$destroy_invocation 000036 constant entry external dcl 139 ref 250 ssu_$return_arg 000040 constant entry external dcl 140 ref 161 ssu_$standalone_invocation 000042 constant entry external dcl 142 ref 156 substr builtin function dcl 66 ref 426 tdt_index 000124 automatic fixed bin(17,0) initial dcl 52 set ref 52* 197* 277* this_is_a_standalone_invocation 000122 automatic bit(1) initial dcl 48 set ref 48* transaction_id based structure level 1 unaligned dcl 59 transaction_id_bit_36 1 based bit(36) level 2 dcl 59 set ref 201* 214* transaction_id_fixed_bin_36 000126 automatic fixed bin(36,0) initial dcl 53 set ref 53* 201 214 295* 311* NAMES DECLARED BY EXPLICIT CONTEXT. ABORT_ENTRY 001650 constant entry internal dcl 237 ref 156 156 ARGUMENT 000007 constant label array(-1:12) dcl 268 ref 267 ARG_PROCESSING_LOOP 001331 constant label dcl 175 CLEANUP 001666 constant entry internal dcl 243 ref 159 239 DO_OPERATION 000000 constant label array(7) dcl 194 ref 188 FINISH 001702 constant entry internal dcl 248 ref 233 245 FINISH_OPERATION 001607 constant label dcl 218 ref 196 200 204 207 210 213 217 KEYWORD_ARGUMENT 000025 constant label array(-1:12) dcl 341 ref 339 KEYWORD_ARGUMENT_INDEX 002520 constant entry internal dcl 404 ref 178 335 MAIN_RETURN 001640 constant label dcl 228 ref 234 240 PROCESS_ARGUMENT 001720 constant entry internal dcl 253 ref 178 PROCESS_KEYWORD_ARGUMENT 002373 constant entry internal dcl 321 ref 182 REPORT_MISSING_ARGUMENT 002565 constant entry internal dcl 421 ref 186 224 RETURN 001641 constant entry internal dcl 231 ref 226 SKIP_OPERATION 001626 constant label dcl 221 ref 191 dm_send_request 001114 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 3176 3250 2653 3206 Length 3504 2653 52 217 322 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_send_request 270 external procedure is an external procedure. on unit on line 159 64 on unit RETURN internal procedure shares stack frame of external procedure dm_send_request. ABORT_ENTRY 64 internal procedure is assigned to an entry variable. CLEANUP 64 internal procedure is called by several nonquick procedures. FINISH 68 internal procedure is called by several nonquick procedures. PROCESS_ARGUMENT 280 internal procedure enables or reverts conditions. on unit on line 272 86 on unit on unit on line 287 86 on unit on unit on line 292 92 on unit on unit on line 303 86 on unit on unit on line 308 92 on unit PROCESS_KEYWORD_ARGUMENT internal procedure shares stack frame of external procedure dm_send_request. KEYWORD_ARGUMENT_INDEX internal procedure shares stack frame of external procedure dm_send_request. REPORT_MISSING_ARGUMENT internal procedure shares stack frame of external procedure dm_send_request. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME PROCESS_ARGUMENT 000100 pa_code PROCESS_ARGUMENT dm_send_request 000100 accept_keyword_argument dm_send_request 000101 arg_idx dm_send_request 000102 arg_len dm_send_request 000104 arg_list_ptr dm_send_request 000106 arg_ptr dm_send_request 000110 code dm_send_request 000111 keyword_argument_idx dm_send_request 000112 force_interpretation_as_argument dm_send_request 000113 is_active_function dm_send_request 000114 number_of_args dm_send_request 000115 return_arg_len dm_send_request 000116 return_arg_ptr dm_send_request 000120 sci_ptr dm_send_request 000122 this_is_a_standalone_invocation dm_send_request 000123 operation_index dm_send_request 000124 tdt_index dm_send_request 000126 transaction_id_fixed_bin_36 dm_send_request 000162 cai_keyword_argument_idx KEYWORD_ARGUMENT_INDEX THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable ext_entry int_entry int_entry_desc any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cv_dec_check_ dm_admin_util_$send_adjust_tdt dm_admin_util_$send_adjust_tdt_entry dm_admin_util_$send_adjust_txn dm_admin_util_$send_kill_txn dm_admin_util_$send_new_proc dm_admin_util_$send_new_process_notifies dm_admin_util_$send_shutdown ssu_$abort_line ssu_$arg_ptr ssu_$destroy_invocation ssu_$return_arg ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 28 001113 34 001121 37 001122 41 001124 43 001125 45 001126 46 001127 47 001130 48 001131 51 001133 52 001135 53 001136 155 001140 156 001146 159 001205 161 001227 164 001246 168 001272 169 001274 171 001276 175 001331 177 001341 178 001356 182 001433 186 001466 188 001470 191 001501 194 001502 196 001511 197 001512 200 001527 201 001530 204 001544 205 001545 207 001554 208 001555 210 001564 211 001565 213 001574 214 001575 217 001606 218 001607 221 001626 224 001630 226 001637 228 001640 231 001641 233 001642 234 001646 237 001647 239 001655 240 001662 243 001665 245 001673 246 001700 248 001701 250 001707 251 001716 253 001717 265 001733 267 001734 268 001737 271 001772 272 001773 277 002035 278 002064 279 002065 283 002113 284 002116 285 002120 287 002121 292 002163 295 002225 296 002236 297 002237 299 002240 300 002243 301 002245 303 002246 308 002310 311 002352 312 002363 313 002364 315 002365 316 002370 317 002372 321 002373 335 002404 336 002422 337 002425 339 002426 341 002430 344 002452 348 002454 349 002457 350 002461 352 002462 356 002464 357 002465 360 002466 364 002470 365 002471 368 002472 371 002474 372 002476 373 002477 376 002500 380 002502 381 002504 382 002505 385 002506 388 002510 389 002512 390 002513 393 002514 397 002516 398 002517 404 002520 411 002531 413 002551 414 002553 416 002562 421 002565 426 002567 433 002644 ----------------------------------------------------------- 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