COMPILATION LISTING OF SEGMENT linus_scope_manager Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1526.4 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(86-01-08,Dupuis), approve(86-01-10,MCR7188), audit(86-07-23,GWMay), 9* install(86-07-29,MR12.0-1106): 10* Written - Al Dupuis - December 1984 as part of the rewrite of all linus 11* scope modules. 12* 2) change(86-01-08,Dupuis), approve(86-05-23,MCR7404), audit(86-07-23,GWMay), 13* install(86-07-29,MR12.0-1106): 14* Changed code so that del_scope and set_scope work as active requests. (SCP 15* 6287). 16* 3) change(86-10-03,Dupuis), approve(86-10-21,MCR7562), audit(86-10-22,Blair), 17* install(86-10-23,MR12.0-1199): 18* Changed the default wait time from 30 seconds to 19* linus_data_$lock_wait_time. 20* END HISTORY COMMENTS */ 21 22 /* format: off */ 23 24 /* This is the main level procedure called by ssu_ to implement the 25* linus set_scope and del_scope request. */ 26 27 linus_scope_manager: proc; 28 29 dcl sci_ptr_parm ptr parm; 30 dcl lcb_ptr_parm ptr parm; 31 32 call com_err_ (error_table_$badcall, 33 "linus_scope_manager", "^/This isn't a valid entry."); 34 35 return; 36 37 delete_scope: entry ( 38 39 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 40 lcb_ptr_parm /* input: ptr to the linus control block info structure */ 41 ); 42 43 the_entry_called = "delete_scope"; 44 call initialize; 45 46 on cleanup begin; 47 cleanup_has_been_signalled = ON; 48 call terminate; 49 end; 50 51 call housekeeping; 52 call process_delete_scope_args; 53 54 if delete_all_scope 55 then do; 56 call dsl_$dl_scope_all (lcb.db_index, code); 57 if code ^= 0 58 then call ssu_$abort_line (sci_ptr, code, 59 "^/Unable to delete all scope."); 60 else if active_request_flag 61 then return_value = "true"; 62 end; 63 else do; 64 call process_common_args; 65 if active_request_flag 66 then do; 67 error_codes (1) = mrds_error_$scope_not_found; 68 on sub_error_ call linus_stifle_mrds_sub_error (error_codes); 69 end; 70 call cu_$generate_call (dsl_$dl_scope, arg_list_ptr); 71 if active_request_flag 72 then revert sub_error_; 73 if scope_information.dsl_error_code ^= 0 74 then if scope_information.dsl_error_code = mrds_error_$scope_not_found & active_request_flag 75 then return_value = "false"; 76 else call ssu_$abort_line (sci_ptr, scope_information.dsl_error_code); 77 else if active_request_flag 78 then return_value = "true"; 79 end; 80 81 call terminate; 82 83 return; 84 85 set_scope: entry ( 86 87 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 88 lcb_ptr_parm /* input: ptr to the linus control block info structure */ 89 ); 90 91 the_entry_called = "set_scope"; 92 call initialize; 93 94 on cleanup begin; 95 cleanup_has_been_signalled = ON; 96 call terminate; 97 end; 98 99 call housekeeping; 100 call process_set_scope_args; 101 call process_common_args; 102 103 if active_request_flag 104 then do; 105 error_codes (1) = mrds_error_$db_busy; 106 on sub_error_ call linus_stifle_mrds_sub_error (error_codes); 107 end; 108 109 call cu_$generate_call (dsl_$set_scope, arg_list_ptr); 110 if scope_information.dsl_error_code ^= 0 111 then if scope_information.dsl_error_code = mrds_error_$db_busy & active_request_flag 112 then return_value = "false"; 113 else call ssu_$abort_line (sci_ptr, scope_information.dsl_error_code); 114 else if active_request_flag 115 then return_value = "true"; 116 117 call terminate; 118 119 return; 120 121 housekeeping: proc; 122 123 dcl h_code fixed bin (35); 124 125 call dsl_$get_scope_info (lcb.db_index, work_area_ptr, scope_ptr, h_code); 126 if h_code ^= 0 127 then call ssu_$abort_line (sci_ptr, h_code, 128 "^/Unable to get the scope information."); 129 130 call dsl_$get_pn (lcb.db_index, data_base_pathname, opening_mode, h_code); 131 if h_code ^= 0 132 then call ssu_$abort_line (sci_ptr, h_code, 133 "^/Unable to get the database pathname."); 134 135 if substr (opening_mode, 1, 9) = "exclusive" 136 then call ssu_$abort_line (sci_ptr, mrds_error_$unshared_opening); 137 else if the_entry_called = "set_scope" 138 then if scope_info.active_scopes > 0 139 then call ssu_$abort_line (sci_ptr, mrds_error_$scope_not_empty); 140 else; 141 else; 142 143 return; 144 145 end housekeeping; 146 147 initialize: proc; 148 149 sci_ptr = sci_ptr_parm; 150 lcb_ptr = lcb_ptr_parm; 151 152 call ssu_$return_arg (sci_ptr, number_of_args_supplied, 153 active_request_flag, return_value_ptr, return_value_length); 154 if active_request_flag 155 then return_value = ""; 156 157 if lcb.db_index = 0 158 then call ssu_$abort_line (sci_ptr, linus_error_$no_db); 159 160 work_area_ptr = lcb.general_work_area_ptr; 161 scope_ptr = null; 162 scope_information_ptr = null; 163 arg_list_ptr = null; 164 forced_retrieve_scope_info_ptr = null; 165 cleanup_has_been_signalled = OFF; 166 delete_all_scope = OFF; 167 wait_time = linus_data_$lock_wait_time; 168 169 arg_descriptor_ptr = addr (character_30_descriptor); 170 arg_descriptor.flag = ON; 171 arg_descriptor.type = char_dtype; 172 arg_descriptor.packed = ON; 173 arg_descriptor.number_dims = 0; 174 arg_descriptor.size = 30; 175 176 arg_descriptor_ptr = addr (fixed_bin_35_descriptor); 177 fixed_arg_descriptor.flag = ON; 178 fixed_arg_descriptor.type = real_fix_bin_1_dtype; 179 fixed_arg_descriptor.packed = OFF; 180 fixed_arg_descriptor.number_dims = 0; 181 fixed_arg_descriptor.scale = 0; 182 fixed_arg_descriptor.precision = 35; 183 184 return; 185 186 end initialize; 187 188 process_common_args: proc; 189 190 dcl pca_loop fixed bin; 191 dcl pca_scope_index fixed bin; 192 193 if mod (number_of_args_supplied, 3) ^= 0 194 then if the_entry_called = "set_scope" 195 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 196 SET_SCOPE_USAGE_MESSAGE); 197 else call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 198 DELETE_SCOPE_USAGE_MESSAGE); 199 else; 200 201 si_init_number_of_triplets = divide (number_of_args_supplied, 3, 17); 202 allocate scope_information in (work_area) set (scope_information_ptr); 203 scope_information.data_base_index = lcb.db_index; 204 scope_information.dsl_error_code = 0; 205 206 forced_retrieve_scope_info_ptr = lcb.force_retrieve_scope_info_ptr; 207 if the_entry_called = "set_scope" 208 then do; 209 if forced_retrieve_scope_info_ptr ^= null 210 then free forced_retrieve_scope_info; 211 frsi_init_number_of_relations = si_init_number_of_triplets; 212 allocate forced_retrieve_scope_info in (work_area) 213 set (forced_retrieve_scope_info_ptr); 214 forced_retrieve_scope_info.relations.name (*) = ""; 215 forced_retrieve_scope_info.relations.retrieve_scope_was_forced (*) = OFF; 216 lcb.force_retrieve_scope_info_ptr = forced_retrieve_scope_info_ptr; 217 end; 218 219 arg_list_arg_count = number_of_args_supplied 220 + ONE_FOR_DATA_BASE_INDEX_AND_ONE_FOR_ERROR_CODE; 221 if the_entry_called = "set_scope" 222 then arg_list_arg_count = arg_list_arg_count + ONE_FOR_THE_WAIT_TIME; 223 allocate arg_list in (work_area) set (arg_list_ptr); 224 arg_list_ptr -> arg_list.pad1 = OFF; 225 arg_list_ptr -> arg_list.call_type = Interseg_call_type; 226 arg_list_ptr -> arg_list.desc_count = arg_list_ptr -> arg_list.arg_count; 227 arg_list_ptr -> arg_list.pad2 = OFF; 228 arg_list_ptr -> arg_list.arg_ptrs (1) = addr (scope_information.data_base_index); 229 arg_list_ptr -> arg_list.desc_ptrs (1) = addr (fixed_bin_35_descriptor); 230 arg_list_ptr -> arg_list.arg_ptrs (arg_list_arg_count) = addr (scope_information.dsl_error_code); 231 arg_list_ptr -> arg_list.desc_ptrs (arg_list_arg_count) = addr (fixed_bin_35_descriptor); 232 if the_entry_called = "set_scope" 233 then do; 234 scope_information.wait_time = wait_time; 235 arg_list_ptr -> arg_list.arg_ptrs (arg_list_arg_count - 1) = addr (scope_information.wait_time); 236 arg_list_ptr -> arg_list.desc_ptrs (arg_list_arg_count - 1) = addr (fixed_bin_35_descriptor); 237 end; 238 239 pca_scope_index = 1; 240 241 do pca_loop = 1 to number_of_args_supplied by 3; 242 243 call ssu_$arg_ptr (sci_ptr, pca_loop, arg_ptr, arg_length); 244 scope_information.triplets.relation_name (pca_scope_index) 245 = check_relation_name (arg); 246 arg_list_ptr -> arg_list.arg_ptrs (pca_loop + 1) 247 = addr (scope_information.triplets.relation_name (pca_scope_index)); 248 arg_list_ptr -> arg_list.desc_ptrs (pca_loop + 1) 249 = addr (character_30_descriptor); 250 251 call ssu_$arg_ptr (sci_ptr, pca_loop + 1, arg_ptr, arg_length); 252 scope_information.triplets.permit_op (pca_scope_index) 253 = convert_scope_to_binary (arg, PERMITS); 254 arg_list_ptr -> arg_list.arg_ptrs (pca_loop + 2) 255 = addr (scope_information.triplets.permit_op (pca_scope_index)); 256 arg_list_ptr -> arg_list.desc_ptrs (pca_loop + 2) 257 = addr (fixed_bin_35_descriptor); 258 call force_retrieve_kludge_for_modify; 259 260 call ssu_$arg_ptr (sci_ptr, pca_loop + 2, arg_ptr, arg_length); 261 scope_information.triplets.prevent_op (pca_scope_index) 262 = convert_scope_to_binary (arg, PREVENTS); 263 arg_list_ptr -> arg_list.arg_ptrs (pca_loop + 3) 264 = addr (scope_information.triplets.prevent_op (pca_scope_index)); 265 arg_list_ptr -> arg_list.desc_ptrs (pca_loop + 3) 266 = addr (fixed_bin_35_descriptor); 267 pca_scope_index = pca_scope_index + 1; 268 269 end; 270 271 return; 272 273 check_relation_name: proc ( 274 275 crn_relation_name_parm) /* input: relation name */ 276 returns (char (30)); /* output: relation name */ 277 278 dcl crn_loop fixed bin; 279 dcl crn_relation_name char (30); 280 dcl crn_relation_name_parm char (*) parm; 281 282 if length (crn_relation_name_parm) > 30 283 then call ssu_$abort_line (sci_ptr, mrds_error_$rel_name_too_long, 284 "^/The table name ^a is invalid.", crn_relation_name_parm); 285 crn_relation_name = crn_relation_name_parm; 286 287 do crn_loop = 1 to scope_info.nfiles; 288 if crn_relation_name = scope_info.scope.sm_name (crn_loop) 289 then return (crn_relation_name); 290 end; 291 292 call ssu_$abort_line (sci_ptr, linus_error_$inv_table, 293 "^/The table ^a isn't a permanent table.", crn_relation_name); 294 295 end check_relation_name; 296 297 convert_scope_to_binary: proc ( 298 299 cstb_scope_parm, /* input: character version of scope */ 300 cstb_prevents_parm) /* input: on if this is a prevent */ 301 returns (fixed bin /* output: encoded version of scope */ 302 ); 303 304 dcl cstb_binary_scope fixed bin; 305 dcl cstb_prevents_parm bit (1) aligned parm; 306 dcl cstb_scope_parm char (*) parm; 307 dcl cstb_scope char (6) varying; 308 309 if length (cstb_scope_parm) > VALID_SCOPE_SETTINGS_LENGTH 310 then call ssu_$abort_line (sci_ptr, error_table_$bigarg, 311 "^/The maximum length ^a can be is ^d characters.", 312 cstb_scope_parm, VALID_SCOPE_SETTINGS_LENGTH); 313 cstb_scope = cstb_scope_parm; 314 if verify (cstb_scope, VALID_SCOPE_SETTINGS) ^= 0 315 then call ssu_$abort_line (sci_ptr, linus_error_$ill_scp_op, "^x^a", cstb_scope_parm); 316 if index (cstb_scope, NULL_CHARACTER) > 0 317 then if cstb_scope ^= NULL_CHARACTER 318 then call ssu_$abort_line (sci_ptr, linus_error_$ill_scp_op, 319 "^/The scope string ^a can't specify ""n"" in conjunction with other scopes.", cstb_scope); 320 if index (cstb_scope, UPDATE_CHARACTER) ^= 0 321 then if ^(cstb_scope = UPDATE_CHARACTER || RETRIEVE_CHARACTER 322 | cstb_scope = RETRIEVE_CHARACTER || UPDATE_CHARACTER 323 | cstb_scope = UPDATE_CHARACTER) 324 then call ssu_$abort_line (sci_ptr, linus_error_$ill_scp_op, 325 "^/The scope string ^a can only specify ""r"" in addition to ""u"".", cstb_scope); 326 327 if search (cstb_scope, UPDATE_CHARACTER) ^= 0 328 then if cstb_prevents_parm 329 then return (MODIFY_BINARY + STORE_BINARY + DELETE_BINARY); 330 else return (RETRIEVE_BINARY + MODIFY_BINARY + STORE_BINARY + DELETE_BINARY); 331 else; 332 333 cstb_binary_scope = 0; 334 if search (cstb_scope, RETRIEVE_CHARACTER) ^= 0 335 then cstb_binary_scope = RETRIEVE_BINARY; 336 if search (cstb_scope, MODIFY_CHARACTER) ^= 0 337 then if cstb_prevents_parm 338 then cstb_binary_scope = cstb_binary_scope + MODIFY_BINARY; 339 else cstb_binary_scope = RETRIEVE_BINARY + MODIFY_BINARY; 340 else; 341 if search (cstb_scope, DELETE_CHARACTER) ^= 0 342 then cstb_binary_scope = cstb_binary_scope + DELETE_BINARY; 343 if search (cstb_scope, STORE_CHARACTER) ^= 0 344 then cstb_binary_scope = cstb_binary_scope + STORE_BINARY; 345 346 return (cstb_binary_scope); 347 348 end convert_scope_to_binary; 349 350 force_retrieve_kludge_for_modify: proc; 351 352 dcl frkfm_loop fixed bin; 353 354 if the_entry_called = "set_scope" 355 then do; 356 forced_retrieve_scope_info.relations.name (pca_scope_index) 357 = scope_information.triplets.relation_name (pca_scope_index); 358 if index (arg, MODIFY_CHARACTER) > 0 & index (arg, RETRIEVE_CHARACTER) = 0 359 then forced_retrieve_scope_info.relations.retrieve_scope_was_forced (pca_scope_index) = ON; 360 else if arg = UPDATE_CHARACTER 361 then forced_retrieve_scope_info.relations.retrieve_scope_was_forced (pca_scope_index) = ON; 362 else; 363 return; 364 end; 365 366 if forced_retrieve_scope_info_ptr = null 367 then return; 368 369 do frkfm_loop = 1 to forced_retrieve_scope_info.number_of_relations_scope_is_set_for 370 while (forced_retrieve_scope_info.relations.name (frkfm_loop) 371 ^= scope_information.triplets.relation_name (pca_scope_index)); 372 end; 373 374 if frkfm_loop > forced_retrieve_scope_info.number_of_relations_scope_is_set_for 375 then call ssu_$abort_line (sci_ptr, linus_error_$inv_table, 376 "^/Scope hasn't been set for ^a.", 377 scope_information.triplets.relation_name (pca_scope_index)); 378 else; 379 380 if index (arg, RETRIEVE_CHARACTER) > 0 381 then if forced_retrieve_scope_info.relations.retrieve_scope_was_forced (frkfm_loop) 382 then call ssu_$abort_line (sci_ptr, linus_error_$r_scope_not_set, 383 "^/Retrieve scope can't be deleted for ^a because it's needed for modify.", 384 forced_retrieve_scope_info.relations.name (frkfm_loop)); 385 else; 386 else if arg = UPDATE_CHARACTER 387 then if ^forced_retrieve_scope_info.relations.retrieve_scope_was_forced (frkfm_loop) 388 then scope_information.triplets.permit_op (pca_scope_index) 389 = scope_information.triplets.permit_op (pca_scope_index) - RETRIEVE_BINARY; 390 else; 391 else; 392 393 return; 394 395 end force_retrieve_kludge_for_modify; 396 397 end process_common_args; 398 399 process_delete_scope_args: proc; 400 401 if number_of_args_supplied = 0 402 then call ssu_$abort_line (sci_ptr, error_table_$noarg, 403 DELETE_SCOPE_USAGE_MESSAGE); 404 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_length); 405 if arg = "*" 406 then do; 407 if number_of_args_supplied > 1 408 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 409 DELETE_SCOPE_USAGE_MESSAGE); 410 else delete_all_scope = ON; 411 end; 412 413 return; 414 415 end process_delete_scope_args; 416 417 process_set_scope_args: proc; 418 419 if number_of_args_supplied ^> 2 420 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 421 SET_SCOPE_USAGE_MESSAGE); 422 423 call ssu_$arg_ptr (sci_ptr, number_of_args_supplied - 1, arg_ptr, arg_length); 424 if arg = "-time" | arg = "-tm" 425 then do; 426 call ssu_$arg_ptr (sci_ptr, number_of_args_supplied, arg_ptr, arg_length); 427 if verify (arg, DIGITS) ^= 0 | arg_length > REASONABLE_NUMBER_OF_DIGITS 428 then call ssu_$abort_line (sci_ptr, error_table_$bad_conversion, 429 "^/The value ^a is not acceptable for a wait time.", arg); 430 wait_time = convert (wait_time, arg); 431 number_of_args_supplied = number_of_args_supplied - 2; 432 end; 433 434 return; 435 436 end process_set_scope_args; 437 438 terminate: proc; 439 440 if scope_ptr ^= null 441 then free scope_info; 442 if scope_information_ptr ^= null 443 then free scope_information; 444 if arg_list_ptr ^= null 445 then free arg_list_ptr -> arg_list; 446 447 if cleanup_has_been_signalled & the_entry_called = "set_scope" 448 & forced_retrieve_scope_info_ptr ^= null 449 then do; 450 free forced_retrieve_scope_info; 451 lcb.force_retrieve_scope_info_ptr = null; 452 end; 453 454 if active_request_flag 455 then if cleanup_has_been_signalled 456 then return_value = "false"; 457 458 return; 459 460 end terminate; 461 462 dcl DELETE_BINARY fixed bin internal static options (constant) init (4); 463 dcl DELETE_CHARACTER char (1) internal static options (constant) init ("d"); 464 dcl DELETE_SCOPE_USAGE_MESSAGE char (71) internal static options (constant) init ("^/Usage: ds table_1 {permit_1 prevent_1 ... table_n permit_n prevent_n}"); 465 dcl DIGITS char (10) internal static options (constant) init ("0123456789"); 466 467 dcl MODIFY_BINARY fixed bin internal static options (constant) init (8); 468 dcl MODIFY_CHARACTER char (1) internal static options (constant) init ("m"); 469 470 dcl NULL_CHARACTER char (1) internal static options (constant) init ("n"); 471 472 dcl OFF bit (1) aligned internal static options (constant) init ("0"b); 473 dcl ON bit (1) aligned internal static options (constant) init ("1"b); 474 dcl ONE_FOR_DATA_BASE_INDEX_AND_ONE_FOR_ERROR_CODE fixed bin internal static options (constant) init (2); 475 dcl ONE_FOR_THE_WAIT_TIME fixed bin internal static options (constant) init (1); 476 477 dcl PERMITS bit (1) aligned internal static options (constant) init ("0"b); 478 dcl PREVENTS bit (1) aligned internal static options (constant) init ("1"b); 479 480 dcl REASONABLE_NUMBER_OF_DIGITS fixed bin internal static options (constant) init (5); 481 dcl RETRIEVE_BINARY fixed bin internal static options (constant) init (1); 482 dcl RETRIEVE_CHARACTER char (1) internal static options (constant) init ("r"); 483 dcl SET_SCOPE_USAGE_MESSAGE char (85) internal static options (constant) init ("^/Usage: ss table_1 permit_1 prevent_1 {...table_n permit_n prevent_n {-control_arg}}"); 484 485 dcl STORE_BINARY fixed bin internal static options (constant) init (2); 486 dcl STORE_CHARACTER char (1) internal static options (constant) init ("s"); 487 488 dcl UPDATE_CHARACTER char (1) internal static options (constant) init ("u"); 489 490 dcl VALID_SCOPE_SETTINGS char (6) internal static options (constant) init ("dmnrsu"); 491 dcl VALID_SCOPE_SETTINGS_LENGTH fixed bin internal static options (constant) init (6); 492 493 dcl active_request_flag bit (1) aligned; 494 dcl addr builtin; 495 dcl arg char (arg_length) based (arg_ptr); 496 dcl arg_length fixed bin (21); 497 dcl arg_list_arg_count fixed bin; 498 dcl arg_list_ptr ptr; 499 dcl arg_ptr ptr; 500 501 dcl character_30_descriptor bit (36) aligned; 502 dcl cleanup condition; 503 dcl cleanup_has_been_signalled bit (1) aligned; 504 dcl code fixed bin (35); 505 dcl com_err_ entry() options(variable); 506 dcl convert builtin; 507 dcl cu_$generate_call entry (entry, ptr); 508 509 dcl data_base_pathname char (168); 510 dcl delete_all_scope bit (1) aligned; 511 dcl divide builtin; 512 dcl dsl_$dl_scope entry() options(variable); 513 dcl dsl_$dl_scope_all entry (fixed bin(35), fixed bin(35)); 514 dcl dsl_$get_pn entry (fixed bin (35), char (168), char (20), fixed bin (35)); 515 dcl dsl_$get_scope_info entry (fixed bin (35), ptr, ptr, fixed bin (35)); 516 dcl dsl_$set_scope entry() options(variable); 517 518 dcl error_codes (1) fixed bin (35); 519 dcl error_table_$bad_conversion fixed bin(35) ext static; 520 dcl error_table_$badcall fixed bin(35) ext static; 521 dcl error_table_$bigarg fixed bin(35) ext static; 522 dcl error_table_$inconsistent fixed bin(35) ext static; 523 dcl error_table_$noarg fixed bin(35) ext static; 524 525 dcl fixed builtin; 526 dcl fixed_bin_35_descriptor bit (36) aligned; 527 528 dcl index builtin; 529 530 dcl length builtin; 531 dcl linus_data_$lock_wait_time fixed bin (35) ext static; 532 dcl linus_error_$ill_scp_op fixed bin(35) ext static; 533 dcl linus_error_$inv_table fixed bin(35) ext static; 534 dcl linus_error_$no_db fixed bin(35) ext static; 535 dcl linus_error_$r_scope_not_set fixed bin(35) ext static; 536 dcl linus_stifle_mrds_sub_error entry ((*) fixed bin(35)); 537 538 dcl mod builtin; 539 dcl mrds_error_$db_busy fixed bin(35) ext static; 540 dcl mrds_error_$rel_name_too_long fixed bin(35) ext static; 541 dcl mrds_error_$scope_not_empty fixed bin(35) ext static; 542 dcl mrds_error_$scope_not_found fixed bin(35) ext static; 543 dcl mrds_error_$unshared_opening fixed bin(35) ext static; 544 545 dcl null builtin; 546 dcl number_of_args_supplied fixed bin; 547 548 dcl opening_mode char (20); 549 550 dcl rel builtin; 551 dcl return_value char (return_value_length) varying based (return_value_ptr); 552 dcl return_value_length fixed bin (21); 553 dcl return_value_ptr ptr; 554 555 dcl sci_ptr ptr; 556 dcl 1 scope_information aligned based (scope_information_ptr), 557 2 data_base_index fixed bin (35), 558 2 wait_time fixed bin (35), 559 2 dsl_error_code fixed bin (35), 560 2 number_of_triplets fixed bin, 561 2 triplets (si_init_number_of_triplets refer (scope_information.number_of_triplets)), 562 3 relation_name char (30) unaligned, 563 3 permit_op fixed bin (35), 564 3 prevent_op fixed bin (35); 565 dcl scope_information_ptr ptr; 566 dcl search builtin; 567 dcl si_init_number_of_triplets fixed bin; 568 dcl ssu_$abort_line entry() options(variable); 569 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 570 dcl ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)); 571 dcl sub_error_ condition; 572 dcl substr builtin; 573 dcl sys_info$max_seg_size fixed bin(35) ext static; 574 575 dcl the_entry_called char (12); 576 577 dcl verify builtin; 578 579 dcl wait_time fixed bin (35); 580 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 581 dcl work_area_ptr ptr; 582 1 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 1 2* 1 3* James R. Davis 10 May 79 */ 1 4 1 5 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 1 9* audit(86-07-15,Schroth): 1 10* added command_name_arglist declaration to allow the storage of the 1 11* command name given to the command processor 1 12* END HISTORY COMMENTS */ 1 13 1 14 dcl 1 arg_list aligned based, 1 15 2 header, 1 16 3 arg_count fixed bin (17) unsigned unal, 1 17 3 pad1 bit (1) unal, 1 18 3 call_type fixed bin (18) unsigned unal, 1 19 3 desc_count fixed bin (17) unsigned unal, 1 20 3 pad2 bit (19) unal, 1 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 1 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 1 23 1 24 1 25 dcl 1 command_name_arglist aligned based, 1 26 2 header, 1 27 3 arg_count fixed bin (17) unsigned unal, 1 28 3 pad1 bit (1) unal, 1 29 3 call_type fixed bin (18) unsigned unal, 1 30 3 desc_count fixed bin (17) unsigned unal, 1 31 3 mbz bit(1) unal, 1 32 3 has_command_name bit(1) unal, 1 33 3 pad2 bit (17) unal, 1 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 1 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 1 36 2 name, 1 37 3 command_name_ptr pointer, 1 38 3 command_name_length fixed bin (21); 1 39 1 40 1 41 1 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 1 43 2 header, 1 44 3 arg_count fixed bin (17) unsigned unal, 1 45 3 pad1 bit (1) unal, 1 46 3 call_type fixed bin (18) unsigned unal, 1 47 3 desc_count fixed bin (17) unsigned unal, 1 48 3 pad2 bit (19) unal, 1 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 1 50 2 envptr ptr, 1 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 1 52 1 53 1 54 dcl ( 1 55 Quick_call_type init (0), 1 56 Interseg_call_type init (4), 1 57 Envptr_supplied_call_type 1 58 init (8) 1 59 ) fixed bin (18) unsigned unal int static options (constant); 1 60 1 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 1 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 1 63* an argument list of the proper size in the user's stack 1 64* 1 65**/ 1 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 583 584 2 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 2 2* 2 3* James R. Davis 1 Mar 79 */ 2 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 2 5 2 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 2 7 2 flag bit (1) unal, 2 8 2 type fixed bin (6) unsigned unal, 2 9 2 packed bit (1) unal, 2 10 2 number_dims fixed bin (4) unsigned unal, 2 11 2 size fixed bin (24) unsigned unal; 2 12 2 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 2 14 2 flag bit (1) unal, 2 15 2 type fixed bin (6) unsigned unal, 2 16 2 packed bit (1) unal, 2 17 2 number_dims fixed bin (4) unsigned unal, 2 18 2 scale fixed bin (11) unal, 2 19 2 precision fixed bin (12) unsigned unal; 2 20 2 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 2 22 2 flag bit (1) unal, /* = "1"b */ 2 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 2 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 2 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 2 26 2 size bit (24) unal, 2 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 2 28 3 low fixed bin (35), 2 29 3 high fixed bin (35), 2 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 2 31 2 real_type fixed bin (18) unsigned unal, 2 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 2 33 2 34 dcl arg_descriptor_ptr ptr; 2 35 2 36 dcl extended_arg_type fixed bin init (58); 2 37 2 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 585 586 3 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 3 7* install(86-07-29,MR12.0-1106): 3 8* Added general_work_area_ptr and renamed sfr_ptr to 3 9* force_retrieve_scope_ptr. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* HISTORY: 3 14* 3 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 3 16* 3 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 3 18* a part of the attribute level control work. 3 19* 3 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 3 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 3 22* scope information. 3 23* 3 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 3 25* retaining various vcpu times to be collected when in timing mode. The 3 26* times to be collected are: LINUS parsing time, LINUS processing time, and 3 27* MRDS processing time. 3 28* 3 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 3 30* part of the line numbering implementation. This allows for possible later 3 31* LINUS control of the build defaults. 3 32* 3 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 3 34* information is now retained by ssu_. Removed parse_timer as no longer 3 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 3 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 3 37* 3 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 3 39* subsystem_invocation_level, and selection_expression_identifier. 3 40* 3 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 3 42* table_control_info_ptr. 3 43* 3 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 3 45* 3 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 3 47* 3 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 3 49* 3 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 3 51**/ 3 52 3 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 3 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 3 55 2 rb_len fixed bin (21), /* length of request buffer */ 3 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 3 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 3 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 3 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 3 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 3 61 2 test_flag bit (1) unal, /* on if in test mode */ 3 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 3 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 3 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 3 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 3 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 3 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 3 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 3 69 2 reserved bit (27) unal, 3 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 3 71 2 rb_ptr ptr, /* ptr to request buffer */ 3 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 3 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 3 74 2 ttn_ptr ptr, /* pointer to table info structure */ 3 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 3 76 2 lv_ptr ptr, /* pointer linus variables */ 3 77 2 si_ptr ptr, /* pointer to select_info structure */ 3 78 2 setfi_ptr ptr, /* pointer to set function information */ 3 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 3 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 3 81 2 lit_ptr ptr, /* pointer to literal pool */ 3 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 3 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 3 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 3 85* (MR7.0) */ 3 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 3 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 3 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 3 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 3 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 3 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 3 92* for current lila expression */ 3 93 2 unused_timer float bin (63), /* future expansion */ 3 94 2 request_time float bin (63), /* How much request time was spent 3 95* in LINUS. (-1 = user has just enabled 3 96* timing, do not report) */ 3 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 3 98 2 build_increment fixed bin, /* default increment for build mode */ 3 99 2 build_start fixed bin, /* default start count for build mode */ 3 100 2 linus_version char (4), /* current version of LINUS */ 3 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 3 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 3 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 3 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 3 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 3 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 3 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 3 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 3 109 2 word_pad (6) bit (36) unal, 3 110 /* procedures that will be optionally */ 3 111 /* replaced by the user. Saved so they */ 3 112 /* can be reinstated if desired. */ 3 113 2 ssu_abort_line entry options (variable), 3 114 2 ssu_post_request_line variable entry (ptr), 3 115 2 ssu_pre_request_line variable entry (ptr), 3 116 3 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 3 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 3 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 3 120 3 121 dcl lcb_ptr ptr; 3 122 3 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 587 588 4 1 /* BEGIN INCLUDE FILE linus_forced_scope_info.incl.pl1 */ 4 2 4 3 /* 4 4* This include file is to keep track of scope that must be forced, 4 5* and then later changed back to what it originally was. 4 6**/ 4 7 /****^ HISTORY COMMENTS: 4 8* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 4 9* install(86-07-29,MR12.0-1106): 4 10* Written: Al Dupuis - 01/23/85. 4 11* END HISTORY COMMENTS */ 4 12 4 13 dcl 1 forced_retrieve_scope_info aligned based (forced_retrieve_scope_info_ptr), 4 14 2 number_of_relations_scope_is_set_for fixed bin, 4 15 2 relations (frsi_init_number_of_relations refer 4 16 (forced_retrieve_scope_info.number_of_relations_scope_is_set_for)), 4 17 3 name char (32) unaligned, 4 18 3 retrieve_scope_was_forced bit (1) unaligned; 4 19 4 20 dcl forced_retrieve_scope_info_ptr ptr; 4 21 dcl frsi_init_number_of_relations fixed bin; 4 22 4 23 /* END INCLUDE FILE linus_forced_scope_info.incl.pl1 */ 589 590 5 1 /* BEGIN mdbm_scope_info.incl.pl1 -- odf 8/8/78 */ 5 2 5 3 /* WARNING 5 4* If the scope_info or scope_flags structure is changed then the 5 5* mrds_data_ item saved_res_version MUST be incremented to invalidate 5 6* all existing saved resultants 5 7**/ 5 8 5 9 /* Modified by Jim Gray - - 80-11-17, to add back store/delete/modify permissions */ 5 10 5 11 /* 80-12-10 Jim Gray : change name of store to append_tuple, delete to delete_tuple, 5 12* modify to modify_attr, retrieve to read_attr, remvoe update, put level 4 5 13* qualifiers for permit/prevent modes and to put pads in standard format */ 5 14 5 15 /* 80-12-11 Jim Gray : added submodel version of file/rel name for convenience */ 5 16 5 17 /* 80-12-22 Jim Gray : added like referenced structure so linus_scope_data.incl 5 18* could make use of it for compatibility. */ 5 19 5 20 /* 81-1-11 Jim Gray : added touched bit to scope_flags, so that 5 21* the fact that null scope has been set can be displayed */ 5 22 5 23 /* 85-04-14 Thanh Nguyen: Made scope_flags to be aligned so we could access the 5 24* prevent flags from any pointer which directly pointed to scope_flags itself 5 25* (i.e rm_rel_info.scope_flags_ptr). */ 5 26 5 27 /* this structure is to be allocated in the mrds_dbcb.incl.pl1 static area, 5 28* and is used to maintain the scope mechanism for file access. 5 29* It contains the scope permit/prevent operations that this user 5 30* has set in his view for this opening instance. */ 5 31 5 32 dcl 1 scope_info aligned based (scope_ptr), /* array of scope tuples for this user */ 5 33 2 mbz1 bit (144), /* Reserved for future use */ 5 34 2 nfiles fixed bin, /* Number of scope tuples in user's scope */ 5 35 2 active_scopes fixed bin, /* number of scopes currently active for a given user */ 5 36 2 scope (max_file_init refer (scope_info.nfiles)), /* defines user's scope of access to files */ 5 37 3 name char (30) aligned, /* filename */ 5 38 3 sm_name char (32), /* name of file(rel) in submodel */ 5 39 3 flags like scope_flags ; 5 40 5 41 5 42 declare 1 scope_flags aligned based, /* common layout of scope flag bits */ 5 43 2 permits, /* modes to permit this user */ 5 44 3 read_attr bit (1) unal, /* read_attr access to this file in scope */ 5 45 3 append_tuple bit (1) unal, /* append_tuple concnrrency permission */ 5 46 3 delete_tuple bit (1) unal, /* delete_tuple concurrency permission on rel */ 5 47 3 modify_attr bit (1) unal, /* modify_attr concurrency permission */ 5 48 3 mbz2 bit (10) unal, /* for expansion of permit ops */ 5 49 2 prevents, /* modes to be denyed to other users */ 5 50 3 read_attr bit (1) unal, /* on if user has prevent on read_attr for this file */ 5 51 3 append_tuple bit (1) unal, /* prevent of append_tuple concurrency */ 5 52 3 delete_tuple bit (1) unal, /* prevent of delete_tuple concurrency */ 5 53 3 modify_attr bit (1) unal, /* prevent of modify_attr concurrency */ 5 54 3 mbz3 bit (10) unal, /* for future prevent concurrency modes */ 5 55 2 touched bit (1) unal, /* on => scope set for this relation */ 5 56 2 mbz4 bit (7) unal ; /* for future flags */ 5 57 5 58 dcl max_file_init fixed bin; /* nbr. of files in data base */ 5 59 dcl scope_ptr ptr init (null ()); /* points to scope_info array */ 5 60 dcl scope_rdy bit (6) unal init ("000011"b) int static options (constant); /* scope file ready modes (5 or 6) */ 5 61 dcl scope_rdy_array (6) bit (1) unal based; /* array format of scope_rdy string */ 5 62 5 63 /* END mdbm_scope_info.incl.pl1 */ 591 592 6 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 6 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 6 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 6 8* Objects of this type are PASCAL string types. 6 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 6 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 6 11* Added the new C types. 6 12* END HISTORY COMMENTS */ 6 13 6 14 /* This include file defines mnemonic names for the Multics 6 15* standard descriptor types, using both pl1 and cobol terminology. 6 16* PG 780613 6 17* JRD 790530 6 18* JRD 791016 6 19* MBW 810731 6 20* TGO 830614 Add hex types. 6 21* Modified June 83 JMAthane to add PASCAL data types 6 22* TGO 840120 Add float dec extended and generic, float binary generic 6 23**/ 6 24 6 25 dcl (real_fix_bin_1_dtype init (1), 6 26 real_fix_bin_2_dtype init (2), 6 27 real_flt_bin_1_dtype init (3), 6 28 real_flt_bin_2_dtype init (4), 6 29 cplx_fix_bin_1_dtype init (5), 6 30 cplx_fix_bin_2_dtype init (6), 6 31 cplx_flt_bin_1_dtype init (7), 6 32 cplx_flt_bin_2_dtype init (8), 6 33 real_fix_dec_9bit_ls_dtype init (9), 6 34 real_flt_dec_9bit_dtype init (10), 6 35 cplx_fix_dec_9bit_ls_dtype init (11), 6 36 cplx_flt_dec_9bit_dtype init (12), 6 37 pointer_dtype init (13), 6 38 offset_dtype init (14), 6 39 label_dtype init (15), 6 40 entry_dtype init (16), 6 41 structure_dtype init (17), 6 42 area_dtype init (18), 6 43 bit_dtype init (19), 6 44 varying_bit_dtype init (20), 6 45 char_dtype init (21), 6 46 varying_char_dtype init (22), 6 47 file_dtype init (23), 6 48 real_fix_dec_9bit_ls_overp_dtype init (29), 6 49 real_fix_dec_9bit_ts_overp_dtype init (30), 6 50 real_fix_bin_1_uns_dtype init (33), 6 51 real_fix_bin_2_uns_dtype init (34), 6 52 real_fix_dec_9bit_uns_dtype init (35), 6 53 real_fix_dec_9bit_ts_dtype init (36), 6 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 6 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 6 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 6 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 6 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 6 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 6 60 real_flt_dec_4bit_bytealigned_dtype init (44), 6 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 6 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 6 63 real_flt_hex_1_dtype init (47), 6 64 real_flt_hex_2_dtype init (48), 6 65 cplx_flt_hex_1_dtype init (49), 6 66 cplx_flt_hex_2_dtype init (50), 6 67 c_typeref_dtype init (54), 6 68 c_enum_dtype init (55), 6 69 c_enum_const_dtype init (56), 6 70 c_union_dtype init (57), 6 71 algol68_straight_dtype init (59), 6 72 algol68_format_dtype init (60), 6 73 algol68_array_descriptor_dtype init (61), 6 74 algol68_union_dtype init (62), 6 75 6 76 cobol_comp_6_dtype init (1), 6 77 cobol_comp_7_dtype init (1), 6 78 cobol_display_ls_dtype init (9), 6 79 cobol_structure_dtype init (17), 6 80 cobol_char_string_dtype init (21), 6 81 cobol_display_ls_overp_dtype init (29), 6 82 cobol_display_ts_overp_dtype init (30), 6 83 cobol_display_uns_dtype init (35), 6 84 cobol_display_ts_dtype init (36), 6 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 6 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 6 87 cobol_comp_5_uns_dtype init (40), 6 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 6 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 6 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 6 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 6 92 cplx_flt_dec_generic_dtype init (84), 6 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 6 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 6 95 6 96 dcl (ft_integer_dtype init (1), 6 97 ft_real_dtype init (3), 6 98 ft_double_dtype init (4), 6 99 ft_complex_dtype init (7), 6 100 ft_complex_double_dtype init (8), 6 101 ft_external_dtype init (16), 6 102 ft_logical_dtype init (19), 6 103 ft_char_dtype init (21), 6 104 ft_hex_real_dtype init (47), 6 105 ft_hex_double_dtype init (48), 6 106 ft_hex_complex_dtype init (49), 6 107 ft_hex_complex_double_dtype init (50) 6 108 ) fixed bin internal static options (constant); 6 109 6 110 dcl (algol68_short_int_dtype init (1), 6 111 algol68_int_dtype init (1), 6 112 algol68_long_int_dtype init (2), 6 113 algol68_real_dtype init (3), 6 114 algol68_long_real_dtype init (4), 6 115 algol68_compl_dtype init (7), 6 116 algol68_long_compl_dtype init (8), 6 117 algol68_bits_dtype init (19), 6 118 algol68_bool_dtype init (19), 6 119 algol68_char_dtype init (21), 6 120 algol68_byte_dtype init (21), 6 121 algol68_struct_struct_char_dtype init (22), 6 122 algol68_struct_struct_bool_dtype init (20) 6 123 ) fixed bin internal static options (constant); 6 124 6 125 dcl (label_constant_runtime_dtype init (24), 6 126 int_entry_runtime_dtype init (25), 6 127 ext_entry_runtime_dtype init (26), 6 128 ext_procedure_runtime_dtype init (27), 6 129 picture_runtime_dtype init (63) 6 130 ) fixed bin internal static options (constant); 6 131 6 132 dcl (pascal_integer_dtype init (1), 6 133 pascal_real_dtype init (4), 6 134 pascal_label_dtype init (24), 6 135 pascal_internal_procedure_dtype init (25), 6 136 pascal_exportable_procedure_dtype init (26), 6 137 pascal_imported_procedure_dtype init (27), 6 138 pascal_typed_pointer_type_dtype init (64), 6 139 pascal_char_dtype init (65), 6 140 pascal_boolean_dtype init (66), 6 141 pascal_record_file_type_dtype init (67), 6 142 pascal_record_type_dtype init (68), 6 143 pascal_set_dtype init (69), 6 144 pascal_enumerated_type_dtype init (70), 6 145 pascal_enumerated_type_element_dtype init (71), 6 146 pascal_enumerated_type_instance_dtype init (72), 6 147 pascal_user_defined_type_dtype init (73), 6 148 pascal_user_defined_type_instance_dtype init (74), 6 149 pascal_text_file_dtype init (75), 6 150 pascal_procedure_type_dtype init (76), 6 151 pascal_variable_formal_parameter_dtype init (77), 6 152 pascal_value_formal_parameter_dtype init (78), 6 153 pascal_entry_formal_parameter_dtype init (79), 6 154 pascal_parameter_procedure_dtype init (80), 6 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 6 156 6 157 6 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 593 594 595 end linus_scope_manager; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.1 linus_scope_manager.pl1 >special_ldd>install>MR12.2-1184>linus_scope_manager.pl1 583 1 08/05/86 0856.8 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 585 2 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 587 3 07/29/86 1148.4 linus_lcb.incl.pl1 >ldd>include>linus_lcb.incl.pl1 589 4 07/29/86 1148.4 linus_forced_scope_info.incl.pl1 >ldd>include>linus_forced_scope_info.incl.pl1 591 5 04/18/85 1628.1 mdbm_scope_info.incl.pl1 >ldd>include>mdbm_scope_info.incl.pl1 593 6 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.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. DELETE_BINARY constant fixed bin(17,0) initial dcl 462 ref 327 330 341 DELETE_CHARACTER constant char(1) initial packed unaligned dcl 463 ref 341 DELETE_SCOPE_USAGE_MESSAGE 000034 constant char(71) initial packed unaligned dcl 464 set ref 197* 401* 407* DIGITS 000031 constant char(10) initial packed unaligned dcl 465 ref 427 Interseg_call_type constant fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 ref 225 MODIFY_BINARY constant fixed bin(17,0) initial dcl 467 ref 327 330 336 339 MODIFY_CHARACTER constant char(1) initial packed unaligned dcl 468 ref 336 358 NULL_CHARACTER 005451 constant char(1) initial packed unaligned dcl 470 ref 316 316 OFF constant bit(1) initial dcl 472 ref 165 166 179 215 224 227 ON 000030 constant bit(1) initial dcl 473 ref 47 95 170 172 177 358 360 410 ONE_FOR_DATA_BASE_INDEX_AND_ONE_FOR_ERROR_CODE constant fixed bin(17,0) initial dcl 474 ref 219 ONE_FOR_THE_WAIT_TIME constant fixed bin(17,0) initial dcl 475 ref 221 PERMITS 000104 constant bit(1) initial dcl 477 set ref 252* PREVENTS 000030 constant bit(1) initial dcl 478 set ref 261* REASONABLE_NUMBER_OF_DIGITS constant fixed bin(17,0) initial dcl 480 ref 427 RETRIEVE_BINARY constant fixed bin(17,0) initial dcl 481 ref 330 334 339 386 RETRIEVE_CHARACTER constant char(1) initial packed unaligned dcl 482 ref 320 320 334 358 380 SET_SCOPE_USAGE_MESSAGE 000002 constant char(85) initial packed unaligned dcl 483 set ref 193* 419* STORE_BINARY constant fixed bin(17,0) initial dcl 485 ref 327 330 343 STORE_CHARACTER constant char(1) initial packed unaligned dcl 486 ref 343 UPDATE_CHARACTER 005450 constant char(1) initial packed unaligned dcl 488 ref 320 320 320 320 327 360 386 VALID_SCOPE_SETTINGS 000000 constant char(6) initial packed unaligned dcl 490 ref 314 VALID_SCOPE_SETTINGS_LENGTH 000110 constant fixed bin(17,0) initial dcl 491 set ref 309 309* active_request_flag 000100 automatic bit(1) dcl 493 set ref 60 65 71 73 77 103 110 114 152* 154 454 active_scopes 5 based fixed bin(17,0) level 2 dcl 5-32 ref 137 addr builtin function dcl 494 ref 169 176 228 229 230 231 235 236 246 248 254 256 263 265 arg based char packed unaligned dcl 495 set ref 244* 252* 261* 358 358 360 380 386 405 424 424 427 427* 430 arg_count based fixed bin(17,0) level 3 packed packed unsigned unaligned dcl 1-14 set ref 223* 226 229 231 236 248 256 265 444 444 arg_descriptor based structure level 1 dcl 2-6 arg_descriptor_ptr 000232 automatic pointer dcl 2-34 set ref 169* 170 171 172 173 174 176* 177 178 179 180 181 182 arg_length 000101 automatic fixed bin(21,0) dcl 496 set ref 243* 244 244 251* 252 252 260* 261 261 358 358 360 380 386 404* 405 423* 424 424 426* 427 427 427 427 430 arg_list based structure level 1 dcl 1-14 set ref 223 444 arg_list_arg_count 000102 automatic fixed bin(17,0) dcl 497 set ref 219* 221* 221 223 223 223 230 231 235 236 arg_list_ptr 000104 automatic pointer dcl 498 set ref 70* 109* 163* 223* 224 225 226 226 227 228 229 230 231 235 236 246 248 254 256 263 265 444 444 arg_ptr 000106 automatic pointer dcl 499 set ref 243* 244 251* 252 260* 261 358 358 360 380 386 404* 405 423* 424 424 426* 427 427 430 arg_ptrs 2 based pointer array level 2 dcl 1-14 set ref 228* 230* 235* 246* 254* 263* call_type 0(18) based fixed bin(18,0) level 3 packed packed unsigned unaligned dcl 1-14 set ref 225* char_dtype constant fixed bin(17,0) initial dcl 6-25 ref 171 character_30_descriptor 000110 automatic bit(36) dcl 501 set ref 169 248 cleanup 000112 stack reference condition dcl 502 ref 46 94 cleanup_has_been_signalled 000120 automatic bit(1) dcl 503 set ref 47* 95* 165* 447 454 code 000121 automatic fixed bin(35,0) dcl 504 set ref 56* 57 57* com_err_ 000010 constant entry external dcl 505 ref 32 convert builtin function dcl 506 ref 430 crn_loop 000304 automatic fixed bin(17,0) dcl 278 set ref 287* 288* crn_relation_name 000305 automatic char(30) packed unaligned dcl 279 set ref 285* 288 288 292* crn_relation_name_parm parameter char packed unaligned dcl 280 set ref 273 282 282* 285 cstb_binary_scope 000324 automatic fixed bin(17,0) dcl 304 set ref 333* 334* 336* 336 339* 341* 341 343* 343 346 cstb_prevents_parm parameter bit(1) dcl 305 ref 297 327 336 cstb_scope 000325 automatic varying char(6) dcl 307 set ref 313* 314 316 316 316* 320 320 320 320 320* 327 334 336 341 343 cstb_scope_parm parameter char packed unaligned dcl 306 set ref 297 309 309* 313 314* cu_$generate_call 000012 constant entry external dcl 507 ref 70 109 data_base_index based fixed bin(35,0) level 2 dcl 556 set ref 203* 228 data_base_pathname 000122 automatic char(168) packed unaligned dcl 509 set ref 130* db_index based fixed bin(35,0) level 2 dcl 3-53 set ref 56* 125* 130* 157 203 delete_all_scope 000174 automatic bit(1) dcl 510 set ref 54 166* 410* desc_count 1 based fixed bin(17,0) level 3 packed packed unsigned unaligned dcl 1-14 set ref 226* desc_ptrs based pointer array level 2 dcl 1-14 set ref 229* 231* 236* 248* 256* 265* divide builtin function dcl 511 ref 201 dsl_$dl_scope 000014 constant entry external dcl 512 ref 70 70 dsl_$dl_scope_all 000016 constant entry external dcl 513 ref 56 dsl_$get_pn 000020 constant entry external dcl 514 ref 130 dsl_$get_scope_info 000022 constant entry external dcl 515 ref 125 dsl_$set_scope 000024 constant entry external dcl 516 ref 109 109 dsl_error_code 2 based fixed bin(35,0) level 2 dcl 556 set ref 73 73 76* 110 110 113* 204* 230 error_codes 000175 automatic fixed bin(35,0) array dcl 518 set ref 67* 68* 105* 106* error_table_$bad_conversion 000026 external static fixed bin(35,0) dcl 519 set ref 427* error_table_$badcall 000030 external static fixed bin(35,0) dcl 520 set ref 32* error_table_$bigarg 000032 external static fixed bin(35,0) dcl 521 set ref 309* error_table_$inconsistent 000034 external static fixed bin(35,0) dcl 522 set ref 193* 197* 407* 419* error_table_$noarg 000036 external static fixed bin(35,0) dcl 523 set ref 401* extended_arg_type 000234 automatic fixed bin(17,0) initial dcl 2-36 set ref 2-36* fixed_arg_descriptor based structure level 1 dcl 2-13 fixed_bin_35_descriptor 000176 automatic bit(36) dcl 526 set ref 176 229 231 236 256 265 flag based bit(1) level 2 in structure "fixed_arg_descriptor" packed packed unaligned dcl 2-13 in procedure "linus_scope_manager" set ref 177* flag based bit(1) level 2 in structure "arg_descriptor" packed packed unaligned dcl 2-6 in procedure "linus_scope_manager" set ref 170* force_retrieve_scope_info_ptr 30 based pointer level 2 dcl 3-53 set ref 206 216* 451* forced_retrieve_scope_info based structure level 1 dcl 4-13 set ref 209 212 450 forced_retrieve_scope_info_ptr 000240 automatic pointer dcl 4-20 set ref 164* 206* 209 209 212* 214 215 216 356 358 360 366 369 369 374 380 380 386 447 450 frkfm_loop 000336 automatic fixed bin(17,0) dcl 352 set ref 369* 369* 374 380 380 386 frsi_init_number_of_relations 000242 automatic fixed bin(17,0) dcl 4-21 set ref 211* 212 212 general_work_area_ptr 116 based pointer level 2 dcl 3-53 ref 160 h_code 000254 automatic fixed bin(35,0) dcl 123 set ref 125* 126 126* 130* 131 131* header based structure level 2 dcl 1-14 index builtin function dcl 528 ref 316 320 358 358 380 lcb based structure level 1 dcl 3-53 lcb_ptr 000236 automatic pointer dcl 3-121 set ref 56 125 130 150* 157 160 203 206 216 451 lcb_ptr_parm parameter pointer dcl 30 ref 37 85 150 length builtin function dcl 530 ref 282 309 linus_data_$lock_wait_time 000040 external static fixed bin(35,0) dcl 531 ref 167 linus_error_$ill_scp_op 000042 external static fixed bin(35,0) dcl 532 set ref 314* 316* 320* linus_error_$inv_table 000044 external static fixed bin(35,0) dcl 533 set ref 292* 374* linus_error_$no_db 000046 external static fixed bin(35,0) dcl 534 set ref 157* linus_error_$r_scope_not_set 000050 external static fixed bin(35,0) dcl 535 set ref 380* linus_stifle_mrds_sub_error 000052 constant entry external dcl 536 ref 68 106 mod builtin function dcl 538 ref 193 mrds_error_$db_busy 000054 external static fixed bin(35,0) dcl 539 ref 105 110 mrds_error_$rel_name_too_long 000056 external static fixed bin(35,0) dcl 540 set ref 282* mrds_error_$scope_not_empty 000060 external static fixed bin(35,0) dcl 541 set ref 137* mrds_error_$scope_not_found 000062 external static fixed bin(35,0) dcl 542 ref 67 73 mrds_error_$unshared_opening 000064 external static fixed bin(35,0) dcl 543 set ref 135* name 1 based char(32) array level 3 packed packed unaligned dcl 4-13 set ref 214* 356* 369 380* nfiles 4 based fixed bin(17,0) level 2 dcl 5-32 ref 287 440 null builtin function dcl 545 ref 5-59 161 162 163 164 209 366 440 442 444 447 451 number_dims 0(08) based fixed bin(4,0) level 2 in structure "fixed_arg_descriptor" packed packed unsigned unaligned dcl 2-13 in procedure "linus_scope_manager" set ref 180* number_dims 0(08) based fixed bin(4,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 2-6 in procedure "linus_scope_manager" set ref 173* number_of_args_supplied 000177 automatic fixed bin(17,0) dcl 546 set ref 152* 193 201 219 241 401 407 419 423 426* 431* 431 number_of_relations_scope_is_set_for based fixed bin(17,0) level 2 dcl 4-13 set ref 209 212* 214 215 369 374 450 number_of_triplets 3 based fixed bin(17,0) level 2 dcl 556 set ref 202* 442 opening_mode 000200 automatic char(20) packed unaligned dcl 548 set ref 130* 135 packed 0(07) based bit(1) level 2 in structure "fixed_arg_descriptor" packed packed unaligned dcl 2-13 in procedure "linus_scope_manager" set ref 179* packed 0(07) based bit(1) level 2 in structure "arg_descriptor" packed packed unaligned dcl 2-6 in procedure "linus_scope_manager" set ref 172* pad1 0(17) based bit(1) level 3 packed packed unaligned dcl 1-14 set ref 224* pad2 1(17) based bit(19) level 3 packed packed unaligned dcl 1-14 set ref 227* pca_loop 000272 automatic fixed bin(17,0) dcl 190 set ref 241* 243* 246 248 251 254 256 260 263 265* pca_scope_index 000273 automatic fixed bin(17,0) dcl 191 set ref 239* 244 246 252 254 261 263 267* 267 356 356 358 360 369 374 386 386 permit_op 14 based fixed bin(35,0) array level 3 dcl 556 set ref 252* 254 386* 386 precision 0(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 2-13 set ref 182* prevent_op 15 based fixed bin(35,0) array level 3 dcl 556 set ref 261* 263 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 6-25 ref 178 relation_name 4 based char(30) array level 3 packed packed unaligned dcl 556 set ref 244* 246 356 369 374* relations 1 based structure array level 2 dcl 4-13 retrieve_scope_was_forced 11 based bit(1) array level 3 packed packed unaligned dcl 4-13 set ref 215* 358* 360* 380 386 return_value based varying char dcl 551 set ref 60* 73* 77* 110* 114* 154* 454* return_value_length 000205 automatic fixed bin(21,0) dcl 552 set ref 60 73 77 110 114 152* 154 454 return_value_ptr 000206 automatic pointer dcl 553 set ref 60 73 77 110 114 152* 154 454 scale 0(12) based fixed bin(11,0) level 2 packed packed unaligned dcl 2-13 set ref 181* sci_ptr 000210 automatic pointer dcl 555 set ref 57* 76* 113* 126* 131* 135* 137* 149* 152* 157* 193* 197* 243* 251* 260* 282* 292* 309* 314* 316* 320* 374* 380* 401* 404* 407* 419* 423* 426* 427* sci_ptr_parm parameter pointer dcl 29 ref 37 85 149 scope 6 based structure array level 2 dcl 5-32 scope_flags based structure level 1 dcl 5-42 scope_info based structure level 1 dcl 5-32 ref 440 scope_information based structure level 1 dcl 556 set ref 202 442 scope_information_ptr 000212 automatic pointer dcl 565 set ref 73 73 76 110 110 113 162* 202* 203 204 228 230 234 235 244 246 252 254 261 263 356 369 374 386 386 442 442 scope_ptr 000244 automatic pointer initial dcl 5-59 set ref 5-59* 125* 137 161* 287 288 440 440 search builtin function dcl 566 ref 327 334 336 341 343 si_init_number_of_triplets 000214 automatic fixed bin(17,0) dcl 567 set ref 201* 202 202 211 size 0(12) based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 2-6 set ref 174* sm_name 16 based char(32) array level 3 dcl 5-32 ref 288 ssu_$abort_line 000066 constant entry external dcl 568 ref 57 76 113 126 131 135 137 157 193 197 282 292 309 314 316 320 374 380 401 407 419 427 ssu_$arg_ptr 000070 constant entry external dcl 569 ref 243 251 260 404 423 426 ssu_$return_arg 000072 constant entry external dcl 570 ref 152 sub_error_ 000216 stack reference condition dcl 571 ref 68 71 106 substr builtin function dcl 572 ref 135 the_entry_called 000224 automatic char(12) packed unaligned dcl 575 set ref 43* 91* 137 193 207 221 232 354 447 triplets 4 based structure array level 2 dcl 556 type 0(01) based fixed bin(6,0) level 2 in structure "fixed_arg_descriptor" packed packed unsigned unaligned dcl 2-13 in procedure "linus_scope_manager" set ref 178* type 0(01) based fixed bin(6,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 2-6 in procedure "linus_scope_manager" set ref 171* verify builtin function dcl 577 ref 314 427 wait_time 1 based fixed bin(35,0) level 2 in structure "scope_information" dcl 556 in procedure "linus_scope_manager" set ref 234* 235 wait_time 000227 automatic fixed bin(35,0) dcl 579 in procedure "linus_scope_manager" set ref 167* 234 430* 430 work_area based area dcl 580 ref 202 212 223 work_area_ptr 000230 automatic pointer dcl 581 set ref 125* 160* 202 212 223 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Envptr_supplied_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 Quick_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 6-25 area_dtype internal static fixed bin(17,0) initial dcl 6-25 arg_list_with_envptr based structure level 1 dcl 1-42 bit_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 6-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 6-25 c_union_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 6-25 command_name_arglist based structure level 1 dcl 1-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 entry_dtype internal static fixed bin(17,0) initial dcl 6-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 extended_arg_descriptor based structure level 1 dcl 2-21 file_dtype internal static fixed bin(17,0) initial dcl 6-25 fixed builtin function dcl 525 ft_char_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 6-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_dtype internal static fixed bin(17,0) initial dcl 6-25 max_file_init automatic fixed bin(17,0) dcl 5-58 offset_dtype internal static fixed bin(17,0) initial dcl 6-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 pointer_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 rel builtin function dcl 550 scope_rdy internal static bit(6) initial packed unaligned dcl 5-60 scope_rdy_array based bit(1) array packed unaligned dcl 5-61 structure_dtype internal static fixed bin(17,0) initial dcl 6-25 sys_info$max_seg_size external static fixed bin(35,0) dcl 573 varying_bit_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 6-25 NAMES DECLARED BY EXPLICIT CONTEXT. check_relation_name 002224 constant entry internal dcl 273 ref 244 convert_scope_to_binary 002362 constant entry internal dcl 297 ref 252 261 delete_scope 000445 constant entry external dcl 37 force_retrieve_kludge_for_modify 002773 constant entry internal dcl 350 ref 258 housekeeping 001121 constant entry internal dcl 121 ref 51 99 initialize 001277 constant entry internal dcl 147 ref 44 92 linus_scope_manager 000400 constant entry external dcl 27 process_common_args 001431 constant entry internal dcl 188 ref 64 101 process_delete_scope_args 003246 constant entry internal dcl 399 ref 52 process_set_scope_args 003347 constant entry internal dcl 417 ref 100 set_scope 000725 constant entry external dcl 85 terminate 003531 constant entry internal dcl 438 ref 48 81 96 117 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6046 6142 5454 6056 Length 6550 5454 74 371 371 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_scope_manager 700 external procedure is an external procedure. on unit on line 46 64 on unit on unit on line 68 70 on unit on unit on line 94 64 on unit on unit on line 106 70 on unit housekeeping internal procedure shares stack frame of external procedure linus_scope_manager. initialize internal procedure shares stack frame of external procedure linus_scope_manager. process_common_args internal procedure shares stack frame of external procedure linus_scope_manager. check_relation_name internal procedure shares stack frame of external procedure linus_scope_manager. convert_scope_to_binary internal procedure shares stack frame of external procedure linus_scope_manager. force_retrieve_kludge_for_modify internal procedure shares stack frame of external procedure linus_scope_manager. process_delete_scope_args internal procedure shares stack frame of external procedure linus_scope_manager. process_set_scope_args internal procedure shares stack frame of external procedure linus_scope_manager. terminate 65 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_scope_manager 000100 active_request_flag linus_scope_manager 000101 arg_length linus_scope_manager 000102 arg_list_arg_count linus_scope_manager 000104 arg_list_ptr linus_scope_manager 000106 arg_ptr linus_scope_manager 000110 character_30_descriptor linus_scope_manager 000120 cleanup_has_been_signalled linus_scope_manager 000121 code linus_scope_manager 000122 data_base_pathname linus_scope_manager 000174 delete_all_scope linus_scope_manager 000175 error_codes linus_scope_manager 000176 fixed_bin_35_descriptor linus_scope_manager 000177 number_of_args_supplied linus_scope_manager 000200 opening_mode linus_scope_manager 000205 return_value_length linus_scope_manager 000206 return_value_ptr linus_scope_manager 000210 sci_ptr linus_scope_manager 000212 scope_information_ptr linus_scope_manager 000214 si_init_number_of_triplets linus_scope_manager 000224 the_entry_called linus_scope_manager 000227 wait_time linus_scope_manager 000230 work_area_ptr linus_scope_manager 000232 arg_descriptor_ptr linus_scope_manager 000234 extended_arg_type linus_scope_manager 000236 lcb_ptr linus_scope_manager 000240 forced_retrieve_scope_info_ptr linus_scope_manager 000242 frsi_init_number_of_relations linus_scope_manager 000244 scope_ptr linus_scope_manager 000254 h_code housekeeping 000272 pca_loop process_common_args 000273 pca_scope_index process_common_args 000304 crn_loop check_relation_name 000305 crn_relation_name check_relation_name 000324 cstb_binary_scope convert_scope_to_binary 000325 cstb_scope convert_scope_to_binary 000336 frkfm_loop force_retrieve_kludge_for_modify THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mdfx1 signal_op enable_op ext_entry int_entry any_to_any_truncate_op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$generate_call dsl_$dl_scope dsl_$dl_scope_all dsl_$get_pn dsl_$get_scope_info dsl_$set_scope linus_stifle_mrds_sub_error ssu_$abort_line ssu_$arg_ptr ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_conversion error_table_$badcall error_table_$bigarg error_table_$inconsistent error_table_$noarg linus_data_$lock_wait_time linus_error_$ill_scp_op linus_error_$inv_table linus_error_$no_db linus_error_$r_scope_not_set mrds_error_$db_busy mrds_error_$rel_name_too_long mrds_error_$scope_not_empty mrds_error_$scope_not_found mrds_error_$unshared_opening LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 36 000371 5 59 000373 27 000377 32 000406 35 000440 37 000441 43 000453 44 000457 46 000460 47 000474 48 000477 49 000504 51 000505 52 000506 54 000507 56 000511 57 000522 60 000551 62 000565 64 000566 65 000567 67 000572 68 000575 70 000623 71 000640 73 000644 76 000666 77 000703 81 000716 83 000722 85 000723 91 000733 92 000736 94 000737 95 000753 96 000756 97 000763 99 000764 100 000765 101 000766 103 000767 105 000772 106 000775 109 001023 110 001040 113 001063 114 001100 117 001114 119 001120 121 001121 125 001122 126 001137 130 001165 131 001202 135 001230 137 001252 143 001276 147 001277 149 001300 150 001304 152 001307 154 001326 157 001332 160 001351 161 001354 162 001356 163 001357 164 001360 165 001361 166 001362 167 001363 169 001366 170 001370 171 001372 172 001376 173 001400 174 001404 176 001406 177 001410 178 001412 179 001416 180 001420 181 001424 182 001426 184 001430 188 001431 193 001432 197 001464 201 001505 202 001510 203 001521 204 001523 206 001524 207 001527 209 001533 211 001544 212 001546 214 001557 215 001575 216 001614 219 001617 221 001622 223 001627 224 001645 225 001647 226 001651 227 001655 228 001657 229 001661 230 001667 231 001674 232 001705 234 001711 235 001714 236 001720 239 001734 241 001736 243 001745 244 001762 246 002005 248 002014 251 002030 252 002050 254 002102 256 002107 258 002123 260 002124 261 002144 263 002176 265 002203 267 002217 269 002220 271 002223 273 002224 282 002235 285 002271 287 002277 288 002307 290 002324 292 002326 295 002356 297 002362 309 002373 313 002433 314 002445 316 002510 320 002557 327 002646 330 002670 333 002673 334 002674 336 002711 339 002733 341 002735 343 002752 346 002767 350 002773 354 002774 356 003000 358 003014 360 003044 363 003052 366 003053 369 003060 372 003103 374 003105 380 003145 385 003221 386 003222 393 003245 399 003246 401 003247 404 003272 405 003311 407 003317 410 003344 413 003346 417 003347 419 003350 423 003374 424 003414 426 003426 427 003443 430 003515 431 003525 434 003527 438 003530 440 003536 442 003551 444 003564 447 003601 450 003614 451 003621 454 003625 458 003643 ----------------------------------------------------------- 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