COMPILATION LISTING OF SEGMENT create_dm_file Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0935.0 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 4* * * 5* *********************************************************** */ 6 /* DESCRIPTION: 7* 8* 9*Syntax: create_dm_file PATH {-control_args} 10* 11* 12*Function: This command creates an empty Data Management file. 13* 14* 15*Arguments: 16*PATH 17* is the pathname of the Data Management file to be created. 18* 19* 20*Control arguments: 21*-protected, -prot 22* makes the dmf protected. All references to a protected dmf must be 23* done with a transaction in progress. (DEFAULT) 24*-unprotected, -unprot, -not_protected, -nprot 25* makes the dmf unprotected. An unprotected dmf can be accessed 26* outside of a transaction. 27*-concurrency, -conc 28* makes the dmf automatically protected from concurrent access 29* conflicts. This implies the dmf is protected. (DEFAULT) 30*-no_concurrency, -nconc 31* makes the dmf unprotected from concurrent access conflicts. This 32* option implies the dmf is protected. 33*-rollback, -rlb 34* makes the dmf protected from transaction interruptions (user, 35* process, or system-caused), by supporting the rolling-back of all 36* modifications made to the dmf by the interrupted transaction. This 37* option implies the dmf is protected. (DEFAULT) 38* 39* 40*-no_rollback, -nrlb 41* makes the dmf unprotected with respect to transaction interruptions. 42* This option implies that the dmf is protected. 43*-ring_brackets W {R}, -rb W {R} 44* sets the extended write ring bracket to W and the extended read ring 45* bracket to R. The extended write ring bracket must be less than or 46* equal to the extended read ring bracket, i.e. W <= R. 47* 48* 49*Notes: When two mutually exclusive options are given, the rightmost 50*one on the command line is used, and the leftmost is ignored. The 51*-unprotected option is mutually exclusive with the -protected, 52*-rollback, -no_rollback, -concurrency and -no_concurrency options. 53* 54**/ 55 56 /* HISTORY: 57* 58*Written by Lindsey L. Spratt, 12/02/84. 59*Modified: 60*12/05/84 by Lindsey L. Spratt: Changed to use the FCI_*_BRACKET_IDX constants 61* in the dm_file_create_info incl file. Fixed to destroy the 62* standalone invocation. 63*01/10/85 by Lindsey L. Spratt: Added the default_control_argument_idx var to 64* allow the pathname to be provided at any point in the command 65* line. Dcl'ed some builtins. Changed to use ssu_$arg_count 66* instead of ssu_$return_arg. 67*01/23/85 by Lindsey L. Spratt: Removed the dcl of 68* error_table_$active_function. 69*03/19/85 by S. Cox: Added dm_not_available_ handler. 70**/ 71 /* format: style2,ind3 */ 72 73 create_dm_file: 74 proc (); 75 76 /* START OF DECLARATIONS */ 77 /* Automatic */ 78 79 dcl accept_control_argument 80 bit (1) aligned init (NO); 81 dcl arg_idx fixed bin; 82 dcl arg_len fixed bin (21); 83 dcl arg_list_ptr ptr init (null); 84 dcl arg_ptr ptr; 85 dcl code fixed bin (35); 86 dcl control_argument_idx fixed bin; 87 dcl current_transaction_id bit (36) aligned init ("0"b); 88 dcl current_transaction_is_defined_by_this_command 89 bit (1) aligned init (NO); 90 dcl default_control_argument_idx 91 fixed bin init (-1); 92 dcl dir_path char (168) init (UNSET_DIR_PATH); 93 dcl entry_name char (32) init (""); 94 dcl force_interpretation_as_argument 95 bit (1) aligned init (NO); 96 dcl is_active_function bit (1) aligned init (NO); 97 dcl 1 local_file_create_info 98 aligned like file_create_info; 99 dcl number_of_args fixed bin; 100 dcl return_arg_len fixed bin (21) init (0); 101 dcl return_arg_ptr ptr init (null); 102 dcl sci_ptr ptr init (null); 103 dcl this_is_a_standalone_invocation 104 bit (1) aligned init (YES); 105 dcl validation_level fixed bin init (0); 106 107 /* Based */ 108 109 dcl arg char (arg_len) based (arg_ptr); 110 111 /* Builtin */ 112 113 dcl (addr, hbound, index, null, substr) 114 builtin; 115 116 /* Condition */ 117 118 dcl (cleanup, dm_not_available_) 119 condition; 120 121 /* Constant */ 122 123 dcl ( 124 YES init ("1"b), 125 NO init ("0"b), 126 SUCCESS_EXIT init ("1"b), 127 FAILURE_EXIT init ("0"b) 128 ) bit (1) aligned internal static options (constant); 129 dcl DEFAULT_BJ init ("0"b) bit (36) internal static options (constant); 130 131 dcl UNSET_DIR_PATH init ("= 0 & accept_control_argument = NO 229 then call REPORT_MISSING_ARGUMENT (control_argument_idx); 230 231 232 if local_file_create_info.protected = YES 233 then 234 do; 235 call transaction_manager_$get_current_txn_id (current_transaction_id, code); 236 if code = 0 237 then current_transaction_is_defined_by_this_command = NO; 238 else if code = dm_error_$no_current_transaction 239 then 240 do; 241 current_transaction_is_defined_by_this_command = YES; 242 call transaction_manager_$begin_txn (TM_NORMAL_MODE, DEFAULT_BJ, current_transaction_id, code); 243 if code ^= 0 244 then call ssu_$abort_line (sci_ptr, code, 245 "^/Unable to begin a transaction (which is necessary to create a data management file)."); 246 end; 247 else call ssu_$abort_line (sci_ptr, code, 248 "^/Unable to determine if there is a transaction in progress in this process."); 249 end; 250 251 call file_manager_$create (dir_path, entry_name, addr (local_file_create_info), code); 252 if code ^= 0 253 then call ssu_$abort_line (sci_ptr, code, "^/Unable to create the data management file ^a.", 254 pathname_ (dir_path, entry_name)); 255 256 call FINISH (SUCCESS_EXIT); 257 258 MAIN_RETURN: 259 return; 260 261 ABORT_ENTRY: 262 procedure (); 263 call CLEANUP (); 264 go to MAIN_RETURN; 265 end ABORT_ENTRY; 266 267 268 CLEANUP: 269 proc (); 270 call FINISH (FAILURE_EXIT); 271 end CLEANUP; 272 273 FINISH: 274 procedure (f_p_exit_type); 275 dcl f_p_exit_type bit (1) aligned parm; 276 277 call ssu_$destroy_invocation (sci_ptr); 278 279 if current_transaction_is_defined_by_this_command = YES 280 then if f_p_exit_type = FAILURE_EXIT 281 then call transaction_manager_$abort_txn (current_transaction_id, (0)); 282 else call transaction_manager_$commit_txn (current_transaction_id, (0)); 283 end FINISH; 284 285 286 287 PROCESS_ARGUMENT: 288 proc (pa_p_arg, pa_p_control_argument_idx, pa_p_accept_control_argument); 289 290 dcl pa_p_arg char (*) parm; 291 dcl pa_p_control_argument_idx 292 fixed bin parm; 293 dcl pa_p_accept_control_argument 294 bit (1) aligned parm; 295 296 dcl pa_code fixed bin (35); 297 298 pa_code = 0; 299 300 goto ARGUMENT (pa_p_control_argument_idx); 301 ARGUMENT (-1): 302 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, "^/The argument ""^a"" is out of place.", arg); 303 return; 304 305 ARGUMENT (15): /* -ring_brackets */ 306 ARGUMENT (16): /* -rb */ 307 local_file_create_info.ring_brackets (FCI_WRITE_BRACKET_IDX) = 308 CONVERT_RING_BRACKET (validation_level, "current validation level", "write", arg); 309 local_file_create_info.ring_brackets (FCI_READ_BRACKET_IDX) = 310 local_file_create_info.ring_brackets (FCI_WRITE_BRACKET_IDX); 311 312 pa_p_accept_control_argument = YES; 313 pa_p_control_argument_idx = 17; 314 return; 315 316 ARGUMENT (17): /* The read ring bracket, optional. */ 317 local_file_create_info.ring_brackets (FCI_READ_BRACKET_IDX) = 318 CONVERT_RING_BRACKET ((local_file_create_info.ring_brackets (FCI_WRITE_BRACKET_IDX)), "write bracket", "read", 319 arg); 320 321 pa_p_accept_control_argument = YES; 322 pa_p_control_argument_idx = default_control_argument_idx; 323 return; 324 325 ARGUMENT (18): /* -pathname */ 326 ARGUMENT (19): /* -pn */ 327 call expand_pathname_ (arg, dir_path, entry_name, code); 328 if code ^= 0 329 then call ssu_$abort_line (sci_ptr, code, "^/Unable to expand the pathname of the data management file, ^a.", arg); 330 331 pa_p_control_argument_idx = default_control_argument_idx; 332 pa_p_accept_control_argument = YES; 333 return; 334 335 end PROCESS_ARGUMENT; 336 337 PROCESS_CONTROL_ARGUMENT: 338 proc (pca_p_arg, pca_p_control_argument_idx, pca_p_accept_control_argument, pca_p_force_interpretation_as_argument); 339 340 341 dcl pca_p_arg char (*) parm; 342 dcl pca_p_control_argument_idx 343 fixed bin parm; 344 dcl pca_p_accept_control_argument 345 bit (1) aligned parm; 346 dcl pca_p_force_interpretation_as_argument 347 bit (1) aligned parm; 348 349 350 pca_p_control_argument_idx = CONTROL_ARGUMENT_INDEX (pca_p_arg); 351 pca_p_accept_control_argument = YES; 352 pca_p_force_interpretation_as_argument = NO; 353 354 go to CONTROL_ARGUMENT (pca_p_control_argument_idx); 355 356 CONTROL_ARGUMENT (-1): /* not a control argument */ 357 call ssu_$abort_line (sci_ptr, error_table_$badopt, pca_p_arg); 358 359 CONTROL_ARGUMENT (1): /* -protected */ 360 CONTROL_ARGUMENT (2): /* -prot */ 361 local_file_create_info.protected = YES; 362 363 pca_p_control_argument_idx = default_control_argument_idx; 364 pca_p_accept_control_argument = YES; 365 return; 366 367 368 CONTROL_ARGUMENT (3): /* -not_protected */ 369 CONTROL_ARGUMENT (4): /* -nprot */ 370 CONTROL_ARGUMENT (5): /* -unprotected */ 371 CONTROL_ARGUMENT (6): /* -unprot */ 372 local_file_create_info.protected = NO; 373 374 pca_p_control_argument_idx = default_control_argument_idx; 375 pca_p_accept_control_argument = YES; 376 return; 377 378 379 CONTROL_ARGUMENT (7): /* -rollback */ 380 CONTROL_ARGUMENT (8): /* -rlb */ 381 local_file_create_info.protected = YES; 382 local_file_create_info.no_rollback = NO; 383 384 pca_p_control_argument_idx = default_control_argument_idx; 385 pca_p_accept_control_argument = YES; 386 return; 387 388 389 CONTROL_ARGUMENT (9): /* -no_rollback */ 390 CONTROL_ARGUMENT (10): /* -nrlb */ 391 local_file_create_info.protected = YES; 392 local_file_create_info.no_rollback = YES; 393 394 pca_p_control_argument_idx = default_control_argument_idx; 395 pca_p_accept_control_argument = YES; 396 return; 397 398 399 CONTROL_ARGUMENT (11): /* -concurrency */ 400 CONTROL_ARGUMENT (12): /* -conc */ 401 local_file_create_info.protected = YES; 402 local_file_create_info.no_concurrency = NO; 403 404 pca_p_control_argument_idx = default_control_argument_idx; 405 pca_p_accept_control_argument = YES; 406 return; 407 408 409 CONTROL_ARGUMENT (13): /* -no_concurrency */ 410 CONTROL_ARGUMENT (14): /* -nconc */ 411 local_file_create_info.protected = YES; 412 local_file_create_info.no_concurrency = YES; 413 414 pca_p_control_argument_idx = default_control_argument_idx; 415 pca_p_accept_control_argument = YES; 416 return; 417 418 419 CONTROL_ARGUMENT (15): /* -ring_brackets */ 420 CONTROL_ARGUMENT (16): /* -rb */ 421 pca_p_accept_control_argument = NO; 422 return; 423 424 425 CONTROL_ARGUMENT (18): /* -pathname */ 426 CONTROL_ARGUMENT (19): /* -pn */ 427 pca_p_accept_control_argument = NO; 428 return; 429 430 431 end PROCESS_CONTROL_ARGUMENT; 432 433 434 CONTROL_ARGUMENT_INDEX: 435 proc (cai_p_arg) returns (fixed bin); 436 437 dcl cai_p_arg char (*); 438 dcl cai_control_argument_idx 439 fixed bin; 440 441 do cai_control_argument_idx = 1 to hbound (CONTROL_ARGUMENT, 1) 442 while (CONTROL_ARGUMENT (cai_control_argument_idx) ^= cai_p_arg); 443 end; 444 if cai_control_argument_idx > hbound (CONTROL_ARGUMENT, 1) 445 then return (-1); 446 else return (cai_control_argument_idx); 447 448 end CONTROL_ARGUMENT_INDEX; 449 450 REPORT_MISSING_ARGUMENT: 451 proc (rma_p_control_argument_idx); 452 453 dcl rma_p_control_argument_idx 454 fixed bin parm; 455 456 if rma_p_control_argument_idx = PATHNAME_CONTROL_ARGUMENT_IDX 457 then call ssu_$abort_line (sci_ptr, error_table_$noarg, 458 "The first argument to this command must be the pathname of the data management file to be created."); 459 else call ssu_$abort_line (sci_ptr, error_table_$noarg, "^a must be followed by a^[n^] ^a.", 460 CONTROL_ARGUMENT (rma_p_control_argument_idx), 461 (index ("aeiouh", substr (ARGUMENT_TYPE (rma_p_control_argument_idx), 1, 1)) > 0), 462 ARGUMENT_TYPE (rma_p_control_argument_idx)); 463 464 end REPORT_MISSING_ARGUMENT; 465 466 467 CONVERT_RING_BRACKET: 468 proc (crb_p_minimum_ring, crb_p_minimum_ring_name, crb_p_ring_bracket_name, crb_p_ring_number_string) 469 returns (fixed bin (3)); 470 dcl crb_p_minimum_ring fixed bin (17) parm; 471 dcl crb_p_minimum_ring_name 472 char (*); 473 dcl crb_p_ring_bracket_name 474 char (*); 475 dcl crb_p_ring_number_string 476 char (*); 477 478 dcl crb_code fixed bin (35) init (0); 479 dcl crb_ring_bracket fixed bin (35) init (0); 480 481 crb_ring_bracket = cv_dec_check_ (crb_p_ring_number_string, crb_code); 482 if crb_code ^= 0 483 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, "^/Unable to convert the ring bracket ""^a"".", arg); 484 485 if crb_ring_bracket < crb_p_minimum_ring 486 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, "^/The specified ^a bracket, ^d, is too low. 487 It must be greater than or equal to the ^a, ^d.", crb_p_ring_bracket_name, crb_ring_bracket, crb_p_minimum_ring_name, 488 crb_p_minimum_ring); 489 else if crb_ring_bracket > 7 490 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, "^/The specified ^a bracket, ^d, is too high. 491 It must be less than or equal to 7.", crb_p_ring_bracket_name, crb_ring_bracket); 492 493 return (crb_ring_bracket); 494 end CONVERT_RING_BRACKET; 495 1 1 /* BEGIN INCLUDE FILE: dm_file_create_info.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* This include file contains the declaration of the file_create_info 1 5* structure. This structure is used to specify to file_manager_ 1 6* attributes a file is to have. 1 7**/ 1 8 1 9 /* HISTORY: 1 10*Written by Jeffery D. Ives, 09/16/82. 1 11* (Original concept by Lindsey L. Spratt.) 1 12*Modified: 1 13*06/15/84 by Matthew Pierret: Added ring_brackets. Changed to a char (8) 1 14* version. 1 15*11/07/84 by Matthew Pierret: Extended mbz_3 to by one word to cover the 1 16* gap caused by the double-word alignment of mbz_2. 1 17**/ 1 18 1 19 /* format: style2,ind3 */ 1 20 1 21 dcl 1 file_create_info aligned based (file_create_info_ptr), 1 22 2 version char (8) aligned, 1 23 2 ci_size_in_bytes fixed bin (35) init (4096), 1 24 /* control interval physical size, must be 4096 */ 1 25 2 blocking_factor fixed bin init (255), /* # of cis in each msf seg, must be 64 or 255 */ 1 26 2 flags unal, 1 27 3 protected bit (1) unal init ("1"b), 1 28 /* protected against inconsistency */ 1 29 3 no_concurrency bit (1) unal init ("0"b), 1 30 /* don't protect against concurrent access */ 1 31 3 no_rollback bit (1) unal init ("0"b), 1 32 /* don't protect against system failure */ 1 33 3 mbz_1 bit (15) unal init ("0"b), 1 34 /* must be zero for future compatability */ 1 35 2 ring_brackets (2) fixed bin (3) unal init (0, 0), 1 36 /* write bracket is first element, read bracket is second */ 1 37 2 mbz_3 bit (46) unal init ("0"b), 1 38 /* must be zero for future compatability */ 1 39 2 mbz_2 (30) fixed bin (71); /* must be zero for future compatability */ 1 40 1 41 dcl file_create_info_ptr ptr; 1 42 1 43 dcl FILE_CREATE_INFO_VERSION_2 1 44 char (8) aligned static options (constant) init ("FileCr 2"); 1 45 dcl ( 1 46 FCI_WRITE_BRACKET_IDX init (1), 1 47 FCI_READ_BRACKET_IDX init (2) 1 48 ) internal static options (constant); 1 49 1 50 /* ************ END OF INCLUDE FILE: dm_file_create_info.incl.pl1 ********** */ 496 497 2 1 /* START OF: dm_tm_modes.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* HISTORY: 2 4* 2 5*Designed by Matthew C. Pierret, 01/26/82. 2 6*Coded by Jeffrey D. Ives, 04/30/82. 2 7*Modified: 2 8*10/18/82 by Steve Herbst: Names changed. 2 9*01/19/83 by Steve Herbst: Added (LOWEST HIGHEST)_MODE. 2 10**/ 2 11 2 12 dcl (LOWEST_MODE init (1), 2 13 HIGHEST_MODE init (8)) fixed bin int static options (constant); 2 14 2 15 dcl TM_NORMAL_MODE fixed bin static options (constant) init (1); 2 16 dcl TM_STATISTICAL_MODE fixed bin static options (constant) init (2); 2 17 dcl TM_READ_ONLY_MODE fixed bin static options (constant) init (3); 2 18 dcl TM_NEVER_WRITE_MODE fixed bin static options (constant) init (4); 2 19 dcl TM_TEST_NORMAL_MODE fixed bin static options (constant) init (5); 2 20 dcl TM_TEST_STATISTICAL_MODE fixed bin static options (constant) init (6); 2 21 dcl TM_TEST_READ_ONLY_MODE fixed bin static options (constant) init (7); 2 22 dcl TM_TEST_NEVER_WRITE_MODE fixed bin static options (constant) init (8); 2 23 2 24 /* END OF: dm_tm_modes.incl.pl1 * * * * * * * * * * * * * * * * */ 498 499 end create_dm_file; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0824.8 create_dm_file.pl1 >spec>on>7192.pbf-04/04/85>create_dm_file.pl1 496 1 01/07/85 0901.1 dm_file_create_info.incl.pl1 >ldd>include>dm_file_create_info.incl.pl1 498 2 01/07/85 0900.0 dm_tm_modes.incl.pl1 >ldd>include>dm_tm_modes.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. ARGUMENT_TYPE 000557 constant varying char(64) initial array dcl 135 set ref 459 459* CONTROL_ARGUMENT 000054 constant varying char(64) initial array dcl 142 set ref 441 441 444 459* DEFAULT_BJ 001377 constant bit(36) initial unaligned dcl 129 set ref 242* FAILURE_EXIT 001377 constant bit(1) initial dcl 123 set ref 270* 279 FCI_READ_BRACKET_IDX constant fixed bin(17,0) initial dcl 1-45 ref 309 316 FCI_WRITE_BRACKET_IDX constant fixed bin(17,0) initial dcl 1-45 ref 305 309 316 FILE_CREATE_INFO_VERSION_2 000052 constant char(8) initial dcl 1-43 ref 192 NO constant bit(1) initial dcl 123 ref 79 88 94 96 196 197 228 236 352 368 382 402 419 425 PATHNAME_CONTROL_ARGUMENT_IDX constant fixed bin(17,0) initial dcl 148 ref 213 456 SUCCESS_EXIT 001356 constant bit(1) initial dcl 123 set ref 256* TM_NORMAL_MODE 001400 constant fixed bin(17,0) initial dcl 2-15 set ref 242* UNSET_DIR_PATH 001266 constant char(168) initial unaligned dcl 131 ref 92 YES constant bit(1) initial dcl 123 ref 103 195 214 220 222 232 241 279 312 321 332 351 359 364 375 379 385 389 392 395 399 405 409 412 415 accept_control_argument 000100 automatic bit(1) initial dcl 79 set ref 79* 214* 220* 222 222* 228 addr builtin function dcl 113 ref 251 251 arg based char unaligned dcl 109 set ref 220 220* 222* 301* 305* 316* 325* 328* 482* arg_idx 000101 automatic fixed bin(17,0) dcl 81 set ref 217* 219* arg_len 000102 automatic fixed bin(21,0) dcl 82 set ref 219* 220 220 220 222 222 301 301 305 305 316 316 325 325 328 328 482 482 arg_list_ptr 000104 automatic pointer initial dcl 83 set ref 83* 203* 204* arg_ptr 000106 automatic pointer dcl 84 set ref 219* 220 220 222 301 305 316 325 328 482 blocking_factor 3 000202 automatic fixed bin(17,0) initial level 2 dcl 97 set ref 97* 194* cai_control_argument_idx 000360 automatic fixed bin(17,0) dcl 438 set ref 441* 441* 444 446 cai_p_arg parameter char unaligned dcl 437 ref 434 441 ci_size_in_bytes 2 000202 automatic fixed bin(35,0) initial level 2 dcl 97 set ref 97* 193* cleanup 000314 stack reference condition dcl 118 ref 188 code 000110 automatic fixed bin(35,0) dcl 85 set ref 204* 235* 236 238 242* 243 243* 247* 251* 252 252* 325* 328 328* control_argument_idx 000111 automatic fixed bin(17,0) dcl 86 set ref 215* 220* 222* 225* 228 228* crb_code 000376 automatic fixed bin(35,0) initial dcl 478 set ref 478* 481* 482 crb_p_minimum_ring parameter fixed bin(17,0) dcl 470 set ref 467 485 485* crb_p_minimum_ring_name parameter char unaligned dcl 471 set ref 467 485* crb_p_ring_bracket_name parameter char unaligned dcl 473 set ref 467 485* 489* crb_p_ring_number_string parameter char unaligned dcl 475 set ref 467 481* crb_ring_bracket 000377 automatic fixed bin(35,0) initial dcl 479 set ref 479* 481* 485 485* 489 489* 493 cu_$arg_list_ptr 000010 constant entry external dcl 153 ref 203 cu_$level_get 000012 constant entry external dcl 154 ref 190 current_transaction_id 000112 automatic bit(36) initial dcl 87 set ref 87* 235* 242* 279* 282* current_transaction_is_defined_by_this_command 000113 automatic bit(1) initial dcl 88 set ref 88* 236* 241* 279 cv_dec_check_ 000014 constant entry external dcl 155 ref 481 default_control_argument_idx 000114 automatic fixed bin(17,0) initial dcl 90 set ref 90* 213* 215 322 331 363 374 384 394 404 414 dir_path 000115 automatic char(168) initial unaligned dcl 92 set ref 92* 251* 252* 252* 325* dm_error_$no_current_transaction 000046 external static fixed bin(35,0) dcl 178 ref 238 dm_error_$system_not_initialized 000050 external static fixed bin(35,0) dcl 178 set ref 206* dm_not_available_ 000322 stack reference condition dcl 118 ref 206 entry_name 000167 automatic char(32) initial unaligned dcl 93 set ref 93* 251* 252* 252* 325* error_table_$bad_arg 000052 external static fixed bin(35,0) dcl 178 set ref 301* 482* 485* 489* error_table_$badopt 000054 external static fixed bin(35,0) dcl 178 set ref 356* error_table_$noarg 000056 external static fixed bin(35,0) dcl 178 set ref 210* 456* 459* expand_pathname_ 000016 constant entry external dcl 156 ref 325 f_p_exit_type parameter bit(1) dcl 275 ref 273 279 file_create_info based structure level 1 dcl 1-21 file_manager_$create 000020 constant entry external dcl 157 ref 251 flags 4 000202 automatic structure level 2 packed unaligned dcl 97 force_interpretation_as_argument 000177 automatic bit(1) initial dcl 94 set ref 94* 220 222* hbound builtin function dcl 113 ref 441 444 index builtin function dcl 113 ref 220 459 is_active_function 000200 automatic bit(1) initial dcl 96 set ref 96* local_file_create_info 000202 automatic structure level 1 dcl 97 set ref 251 251 mbz_1 4(03) 000202 automatic bit(15) initial level 3 packed unaligned dcl 97 set ref 97* 198* mbz_2 6 000202 automatic fixed bin(71,0) array level 2 dcl 97 set ref 201* mbz_3 4(26) 000202 automatic bit(46) initial level 2 packed unaligned dcl 97 set ref 97* 200* myname 001262 constant char(14) initial unaligned dcl 133 set ref 204* 206* 210* no_concurrency 4(01) 000202 automatic bit(1) initial level 3 packed unaligned dcl 97 set ref 97* 196* 402* 412* no_rollback 4(02) 000202 automatic bit(1) initial level 3 packed unaligned dcl 97 set ref 97* 197* 382* 392* null builtin function dcl 113 ref 83 101 102 number_of_args 000304 automatic fixed bin(17,0) dcl 99 set ref 208* 210 217 pa_code 000342 automatic fixed bin(35,0) dcl 296 set ref 298* pa_p_accept_control_argument parameter bit(1) dcl 293 set ref 287 312* 321* 332* pa_p_arg parameter char unaligned dcl 290 ref 287 pa_p_control_argument_idx parameter fixed bin(17,0) dcl 291 set ref 287 300 313* 322* 331* pathname_ 000022 constant entry external dcl 158 ref 252 252 pca_p_accept_control_argument parameter bit(1) dcl 344 set ref 337 351* 364* 375* 385* 395* 405* 415* 419* 425* pca_p_arg parameter char unaligned dcl 341 set ref 337 350* 356* pca_p_control_argument_idx parameter fixed bin(17,0) dcl 342 set ref 337 350* 354 363* 374* 384* 394* 404* 414* pca_p_force_interpretation_as_argument parameter bit(1) dcl 346 set ref 337 352* protected 4 000202 automatic bit(1) initial level 3 packed unaligned dcl 97 set ref 97* 195* 232 359* 368* 379* 389* 399* 409* return_arg_len 000305 automatic fixed bin(21,0) initial dcl 100 set ref 100* return_arg_ptr 000306 automatic pointer initial dcl 101 set ref 101* ring_brackets 4(18) 000202 automatic fixed bin(3,0) initial array level 2 packed unaligned dcl 97 set ref 97* 97* 199* 305* 309* 309 316* 316 rma_p_control_argument_idx parameter fixed bin(17,0) dcl 453 ref 450 456 459 459 459 sci_ptr 000310 automatic pointer initial dcl 102 set ref 102* 204* 206* 208* 210* 219* 243* 247* 252* 277* 301* 328* 356* 456* 459* 482* 485* 489* ssu_$abort_line 000024 constant entry external dcl 159 ref 206 210 243 247 252 301 328 356 456 459 482 485 489 ssu_$arg_count 000030 constant entry external dcl 161 ref 208 ssu_$arg_ptr 000026 constant entry external dcl 160 ref 219 ssu_$destroy_invocation 000032 constant entry external dcl 162 ref 277 ssu_$standalone_invocation 000034 constant entry external dcl 164 ref 204 substr builtin function dcl 113 ref 459 this_is_a_standalone_invocation 000312 automatic bit(1) initial dcl 103 set ref 103* transaction_manager_$abort_txn 000036 constant entry external dcl 166 ref 279 transaction_manager_$begin_txn 000040 constant entry external dcl 168 ref 242 transaction_manager_$commit_txn 000042 constant entry external dcl 170 ref 282 transaction_manager_$get_current_txn_id 000044 constant entry external dcl 172 ref 235 validation_level 000313 automatic fixed bin(17,0) initial dcl 105 set ref 105* 190* 199 305* version 000202 automatic char(8) level 2 dcl 97 set ref 192* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. HIGHEST_MODE internal static fixed bin(17,0) initial dcl 2-12 LOWEST_MODE internal static fixed bin(17,0) initial dcl 2-12 TM_NEVER_WRITE_MODE internal static fixed bin(17,0) initial dcl 2-18 TM_READ_ONLY_MODE internal static fixed bin(17,0) initial dcl 2-17 TM_STATISTICAL_MODE internal static fixed bin(17,0) initial dcl 2-16 TM_TEST_NEVER_WRITE_MODE internal static fixed bin(17,0) initial dcl 2-22 TM_TEST_NORMAL_MODE internal static fixed bin(17,0) initial dcl 2-19 TM_TEST_READ_ONLY_MODE internal static fixed bin(17,0) initial dcl 2-21 TM_TEST_STATISTICAL_MODE internal static fixed bin(17,0) initial dcl 2-20 file_create_info_ptr automatic pointer dcl 1-41 NAMES DECLARED BY EXPLICIT CONTEXT. ABORT_ENTRY 002655 constant entry internal dcl 261 ref 204 204 ARGUMENT 000000 constant label array(-1:19) dcl 301 ref 300 ARG_PROCESSING_LOOP 002271 constant label dcl 217 CLEANUP 002673 constant entry internal dcl 268 ref 188 263 CONTROL_ARGUMENT 000025 constant label array(-1:19) dcl 356 ref 354 CONTROL_ARGUMENT_INDEX 003447 constant entry internal dcl 434 ref 350 CONVERT_RING_BRACKET 003622 constant entry internal dcl 467 ref 305 316 FINISH 002711 constant entry internal dcl 273 ref 256 270 MAIN_RETURN 002653 constant label dcl 258 ref 264 PROCESS_ARGUMENT 002763 constant entry internal dcl 287 ref 220 PROCESS_CONTROL_ARGUMENT 003301 constant entry internal dcl 337 ref 222 REPORT_MISSING_ARGUMENT 003513 constant entry internal dcl 450 ref 225 228 create_dm_file 001715 constant entry external dcl 73 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4370 4450 4054 4400 Length 4734 4054 60 250 313 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME create_dm_file 594 external procedure is an external procedure. on unit on line 188 64 on unit on unit on line 206 84 on unit ABORT_ENTRY 64 internal procedure is assigned to an entry variable. CLEANUP 70 internal procedure is called by several nonquick procedures. FINISH 76 internal procedure is called by several nonquick procedures. PROCESS_ARGUMENT internal procedure shares stack frame of external procedure create_dm_file. PROCESS_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure create_dm_file. CONTROL_ARGUMENT_INDEX internal procedure shares stack frame of external procedure create_dm_file. REPORT_MISSING_ARGUMENT internal procedure shares stack frame of external procedure create_dm_file. CONVERT_RING_BRACKET internal procedure shares stack frame of external procedure create_dm_file. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME create_dm_file 000100 accept_control_argument create_dm_file 000101 arg_idx create_dm_file 000102 arg_len create_dm_file 000104 arg_list_ptr create_dm_file 000106 arg_ptr create_dm_file 000110 code create_dm_file 000111 control_argument_idx create_dm_file 000112 current_transaction_id create_dm_file 000113 current_transaction_is_defined_by_this_command create_dm_file 000114 default_control_argument_idx create_dm_file 000115 dir_path create_dm_file 000167 entry_name create_dm_file 000177 force_interpretation_as_argument create_dm_file 000200 is_active_function create_dm_file 000202 local_file_create_info create_dm_file 000304 number_of_args create_dm_file 000305 return_arg_len create_dm_file 000306 return_arg_ptr create_dm_file 000310 sci_ptr create_dm_file 000312 this_is_a_standalone_invocation create_dm_file 000313 validation_level create_dm_file 000342 pa_code PROCESS_ARGUMENT 000360 cai_control_argument_idx CONTROL_ARGUMENT_INDEX 000376 crb_code CONVERT_RING_BRACKET 000377 crb_ring_bracket CONVERT_RING_BRACKET THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cu_$level_get cv_dec_check_ expand_pathname_ file_manager_$create pathname_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$destroy_invocation ssu_$standalone_invocation transaction_manager_$abort_txn transaction_manager_$begin_txn transaction_manager_$commit_txn transaction_manager_$get_current_txn_id THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$no_current_transaction dm_error_$system_not_initialized error_table_$bad_arg error_table_$badopt error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 73 001714 79 001722 83 001723 87 001725 88 001726 90 001727 92 001731 93 001734 94 001737 96 001740 97 001741 100 001775 101 001776 102 002000 103 002001 105 002003 188 002004 190 002026 192 002035 193 002037 194 002041 195 002043 196 002045 197 002047 198 002051 199 002053 200 002073 201 002076 203 002111 204 002120 206 002157 208 002221 210 002232 213 002264 214 002266 215 002270 217 002271 219 002301 220 002316 222 002362 225 002415 226 002417 228 002421 232 002430 235 002434 236 002445 238 002451 241 002454 242 002456 243 002472 246 002520 247 002521 251 002544 252 002573 256 002645 258 002653 261 002654 263 002662 264 002667 268 002672 270 002700 271 002707 273 002710 277 002716 279 002725 282 002750 283 002762 287 002763 298 002774 300 002775 301 003000 303 003033 305 003034 309 003105 312 003111 313 003114 314 003116 316 003117 321 003200 322 003203 323 003205 325 003206 328 003236 331 003273 332 003276 333 003300 337 003301 350 003312 351 003330 352 003333 354 003334 356 003336 359 003360 363 003362 364 003365 365 003367 368 003370 374 003372 375 003374 376 003376 379 003377 382 003401 384 003403 385 003405 386 003407 389 003410 392 003412 394 003414 395 003416 396 003420 399 003421 402 003423 404 003425 405 003427 406 003431 409 003432 412 003434 414 003436 415 003440 416 003442 419 003443 422 003444 425 003445 428 003446 434 003447 441 003460 443 003477 444 003501 446 003510 450 003513 456 003515 459 003545 464 003621 467 003622 478 003645 479 003646 481 003647 482 003671 485 003726 489 003777 493 004035 ----------------------------------------------------------- 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