COMPILATION LISTING OF SEGMENT vrm_meter Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1432.7 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 vrm_meter: vrmm: proc; 8 9 if saved_meter_seg_ptr = null then do; 10 call get_temp_segment_ (PROC_NAME, saved_meter_seg_ptr, code); 11 if code ^= 0 then call error (code, "^/Getting temp segment"); 12 meter_info_ptr = saved_meter_seg_ptr; 13 meter_info.work_area = empty (); /* Make it an area */ 14 15 meter_info.meter_on = "1"b; 16 meter_info.all_sw = "1"b; 17 meter_info.num_rels = 0; 18 end; 19 else meter_info_ptr = saved_meter_seg_ptr; 20 21 22 print_long_sw = "0"b; 23 reset_sw = "0"b; 24 delete_sw = "0"b; 25 print_sw = "0"b; 26 list_sw = "0"b; 27 meter_on_sw = "0"b; /* Default */ 28 on_arg = "0"b; 29 meter_sw = "0"b; 30 all_rel_arg = "0"b; 31 all_rel_sw = "0"b; 32 reset_all_sw = "1"b; /* Default */ 33 reset_sw = "0"b; 34 35 call cu_$arg_count (nargs, code); 36 if code ^= 0 then call error (code, "^/Getting arg count"); 37 38 if nargs < 1 then call error (error_table_$wrong_no_of_args, 39 "^/vrmm -list_meters^23t| -lsm ^/^7x-reset_meters^23t| -rsm ^/^7x-print_meters^23t| -prm ^/^7x-meter^23t| -mt ^/^7x-delete_meters^23t| -dlm ^/"); 40 41 do n = 1 to nargs; 42 43 call get_arg (n); 44 45 if substr (arg, 1, 1) = "-" then do; /* Check control arg */ 46 47 48 if arg = "-list_meters" | arg = "-lsm" | arg = "-ls" then do; 49 list_sw = "1"b; 50 call process_list_args (n); 51 end; 52 53 else if arg = "-mt" | arg = "-meter" then do; 54 meter_sw = "1"b; 55 call process_meter_args (n); 56 end; 57 58 else if arg = "-reset_meters" | arg = "-rsm" | arg = "-rs" then do; 59 reset_sw = "1"b; 60 call process_reset_args (n); 61 end; 62 63 else if arg = "-print_meters" | arg = "-pm" | arg = "-prm" then do; 64 print_sw = "1"b; 65 call process_print_args (n); 66 end; 67 68 else if arg = "-delete_meters" | arg = "-dlm" | arg = "-dl" then do; 69 delete_sw = "1"b; 70 call process_delete_args (n); 71 end; 72 73 else call error (error_table_$bad_subr_arg, arg); 74 75 end; /* Check control args */ 76 else call error (error_table_$bad_arg, arg); 77 end; /* END do n = 1 to nargs */ 78 79 if meter_sw then call meter; 80 if list_sw then call list; 81 if print_sw then call print; 82 if reset_sw then call reset; 83 if delete_sw then call delete; 84 85 exit: return; 86 87 88 /* * * * * * * * * * std_args * * * * * * * * * * * * * * * * * * * * */ 89 90 std_args: proc (sn, arg_str_ptr, used_sw); 91 92 dcl sn fixed bin parameter; /* Arg number */ 93 dcl arg_str_ptr ptr parameter; /* Argument structure to be used */ 94 dcl used_sw bit (1) parameter; 95 96 std_arg_ptr = arg_str_ptr; 97 98 used_sw = "0"b; 99 100 if arg = "-all" | arg = "-a" then do; 101 std_arg.all_sw = "1"b; 102 used_sw = "1"b; 103 sn = sn + 1; 104 end; 105 106 107 else if arg = "-path" | arg = "-pn" then do; 108 sn = sn + 1; 109 used_sw = "1"b; 110 if sn + 1 > nargs then call error (error_table_$noarg, 111 "^/A pathname missing following " || arg || "."); 112 113 call get_arg (sn + 1); 114 if substr (arg, 1, 1) = "-" then call error (error_table_$bad_arg, 115 "^/Expected pathname missing following -path control arg."); 116 else do; 117 call get_path_desc (arg, addr (std_arg)); 118 std_arg.desc_sw = "1"b; 119 end; 120 sn = sn + 1; 121 end; /* END -path */ 122 123 124 end std_args; 125 126 process_list_args: proc (ln); 127 128 dcl ln fixed bin parameter; 129 130 unspec (list_arg) = "0"b; 131 132 if ln + 1 > nargs then do; 133 list_arg.all_sw = "1"b; 134 return; 135 end; 136 137 list_args_done = "0"b; 138 139 do while (^list_args_done); 140 141 if ln + 1 <= nargs then call get_arg (ln + 1); 142 else return; 143 144 if substr (arg, 1, 1) = "-" then do; 145 call std_args (ln, addr (list_arg), arg_used); 146 list_args_done = ^arg_used; 147 end; 148 else list_args_done = "1"b; 149 end; 150 151 end process_list_args; 152 153 process_meter_args: proc (mn); 154 155 dcl mn fixed bin parameter; 156 157 unspec (meter_arg) = "0"b; 158 159 if mn + 1 > nargs then return; 160 161 meter_args_done = "0"b; 162 163 do while (^meter_args_done); 164 165 if mn + 1 <= nargs then call get_arg (mn + 1); 166 else return; 167 168 if substr (arg, 1, 1) = "-" then do; 169 170 used_it_sw = "0"b; 171 call std_args (mn, addr (meter_arg), used_it_sw); 172 if used_it_sw then meter_args_done = "0"b; 173 174 else if arg = "-on" then do; 175 on_arg = "1"b; 176 meter_on_sw = "1"b; 177 mn = mn + 1; 178 end; 179 else if arg = "-off" then do; 180 on_arg = "1"b; 181 meter_on_sw = "0"b; 182 mn = mn + 1; 183 end; 184 185 else meter_args_done = "1"b; 186 end; 187 else meter_args_done = "1"b; 188 end; 189 190 end process_meter_args; 191 192 /* * * * * * * * * * * * * * process_delete_args * * * * * * * * * * */ 193 194 process_delete_args: proc (dn); 195 196 dcl dn fixed bin parameter; 197 198 unspec (delete_arg) = "0"b; 199 200 if dn + 1 > nargs then do; 201 delete_arg.all_sw = "1"b; 202 return; 203 end; 204 205 delete_args_done = "0"b; 206 207 do while (^delete_args_done); 208 209 if dn + 1 <= nargs then call get_arg (dn + 1); 210 else return; 211 212 if substr (arg, 1, 1) = "-" then do; 213 call std_args (dn, addr (delete_arg), arg_used); 214 delete_args_done = ^arg_used; 215 end; 216 else delete_args_done = "1"b; 217 end; 218 219 end process_delete_args; 220 221 process_reset_args: proc (rn); 222 223 dcl rn fixed bin parameter; 224 225 unspec (reset_arg) = "0"b; 226 227 if rn + 1 > nargs then do; 228 reset_arg.all_sw = "1"b; 229 return; 230 end; 231 232 reset_args_done = "0"b; 233 234 do while (^reset_args_done); 235 236 if rn + 1 <= nargs then call get_arg (rn + 1); 237 else return; 238 239 if substr (arg, 1, 1) = "-" then do; 240 call std_args (rn, addr (reset_arg), arg_used); 241 reset_args_done = ^arg_used; 242 end; 243 else reset_args_done = "1"b; 244 end; 245 246 end process_reset_args; 247 248 process_print_args: proc (dn); 249 250 dcl dn fixed bin parameter; 251 252 print_search_stat_sw = "0"b; 253 print_search_stat_arg_sw = "0"b; 254 print_last_call_arg_sw = "0"b; 255 print_last_call_sw = "0"b; 256 print_total_sw = "0"b; 257 print_total_arg_sw = "0"b; 258 print_long_sw = "0"b; 259 260 unspec (meter_arg) = "0"b; 261 262 if dn + 1 > nargs then do; 263 print_long_sw = "1"b; 264 return; 265 end; 266 267 print_args_done = "0"b; 268 269 do while (^print_args_done); 270 271 if dn + 1 <= nargs then call get_arg (dn + 1); 272 else return; 273 274 if substr (arg, 1, 1) = "-" then do; 275 276 used_it_sw = "0"b; 277 call std_args (dn, addr (print_arg), used_it_sw); 278 if used_it_sw then print_args_done = "0"b; 279 280 else if arg = "-last_call" | arg = "-last" then do; 281 print_last_call_arg_sw = "1"b; 282 print_last_call_sw = "1"b; 283 dn = dn + 1; 284 end; 285 286 else if arg = "-total" | arg = "-tt" then do; 287 print_total_sw = "1"b; 288 print_total_arg_sw = "1"b; 289 dn = dn + 1; 290 end; 291 292 else if arg = "-search" | arg = "-sch" then do; 293 print_search_stat_sw = "1"b; 294 print_search_stat_arg_sw = "1"b; 295 dn = dn + 1; 296 end; 297 298 else if arg = "-long" | arg = "-lg" then do; 299 print_long_sw = "1"b; 300 dn = dn + 1; 301 end; 302 303 else if arg = "-brief" | arg = "-bf" then do; 304 print_long_sw = "0"b; 305 dn = dn + 1; 306 end; 307 308 else print_args_done = "1"b; 309 end; 310 else print_args_done = "1"b; 311 end; 312 313 end process_print_args; 314 315 add_meter: entry (I_cursor_ptr, O_meter_ptr, O_code); 316 317 dcl I_cursor_ptr ptr parameter; /* Pointer to vrm_cursor to be added */ 318 dcl O_meter_ptr ptr parameter; /* Pointer to vrm_meter */ 319 dcl O_code fixed bin (35) parameter; /* Error code */ 320 321 322 O_code = 0; 323 O_meter_ptr = null; 324 325 meter_info_ptr = saved_meter_seg_ptr; 326 327 vrm_cursor_ptr = I_cursor_ptr; 328 329 vrm_open_info_ptr = vrm_cursor.open_info_ptr; 330 vrm_rel_desc_ptr = vrm_cursor.vrm_relation_desc_ptr; 331 332 call get_path_desc (rtrim (vrm_open_info.database_dir_path) || ">" || 333 vrm_open_info.relation_name, addr (meter_arg)); 334 335 x = locate_uid_in_rel_list (meter_arg.path_desc.uid, 0); 336 337 if x = 0 then do; 338 if ^meter_info.meter_on then goto add_meter_exit; 339 340 meter_arg.path_desc.dir = vrm_open_info.database_dir_path; 341 meter_arg.path_desc.ent = vrm_open_info.relation_name; 342 meter_arg.path_desc.uid = vrm_open_info.file_uid; 343 call add_rel_list_ent (addr (meter_arg), x); 344 end; 345 346 call add_meter_entry (x, vrm_cursor_ptr, vrm_meter_ptr, code); 347 if code = 0 then O_meter_ptr = vrm_meter_ptr; 348 else O_code = code; 349 /* end; */ 350 351 add_meter_exit: return; 352 353 add_rel_list_ent: proc (I_arg_ptr, O_rl_ix); 354 355 dcl I_arg_ptr ptr parameter; 356 dcl O_rl_ix fixed bin parameter; 357 dcl rl_ix fixed bin; 358 359 std_arg_ptr = I_arg_ptr; 360 361 if meter_info.num_rels = MAX_RELS then 362 call sub_error (error_table_$too_many_names); 363 O_rl_ix, rl_ix = meter_info.num_rels + 1; 364 meter_info.num_rels = rl_ix; 365 366 meter_info.rel_info (rl_ix).rel_name = std_arg.path_desc.ent; 367 meter_info.rel_info (rl_ix).rel_dir = std_arg.path_desc.dir; 368 meter_info.rel_info (rl_ix).number_meters = 0; 369 meter_info.rel_info (rl_ix).uid = std_arg.path_desc.uid; 370 meter_info.rel_info (rl_ix).meter_ptrs (*) = null; 371 372 end add_rel_list_ent; 373 374 add_meter_entry: proc (I_ame_rel_list_ix, I_ame_cursor_ptr, O_vrm_meter_ptr, O_code); 375 376 377 dcl I_ame_cursor_ptr ptr parameter; 378 dcl I_ame_rel_list_ix fixed bin parameter; 379 dcl O_vrm_meter_ptr ptr parameter; 380 dcl O_code fixed bin (35) parameter; 381 382 383 O_vrm_meter_ptr = null; 384 O_code = 0; 385 386 387 rx = I_ame_rel_list_ix; 388 389 if meter_info.rel_info (rx).number_meters > 4 then O_code = error_table_$too_many_names; 390 else do; 391 392 allocate vrm_meter in (meter_info.work_area) set (vrm_meter_ptr); 393 394 meter_info.rel_info (rx).number_meters = meter_info.rel_info (rx).number_meters + 1; 395 vrm_meter.cursor_name = ltrim (char (meter_info.rel_info (rx).number_meters)); 396 vrm_meter.meter_start_time = clock; 397 vrm_meter.switches.metering = "0"b; 398 vrm_meter.last_call_stats = 0; 399 vrm_meter.total_stats = 0; 400 401 meter_info.rel_info (rx).meter_ptrs (meter_info.rel_info (rx).number_meters) = vrm_meter_ptr; 402 403 vrm_meter.cursor_ptr = I_ame_cursor_ptr;/* May be null */ 404 O_vrm_meter_ptr = vrm_meter_ptr; 405 406 end; 407 408 409 end add_meter_entry; 410 411 412 delete_rel_list_ent: proc (I_rel_ix); 413 414 dcl I_rel_ix fixed bin parameter; 415 416 rx = I_rel_ix; 417 418 if meter_info.num_rels < rx then return; 419 420 do mx = 1 to meter_info.rel_info (rx).number_meters; 421 422 vrm_meter_ptr = meter_info.rel_info (rx).meter_ptrs (mx); 423 424 if vrm_meter.cursor_ptr ^= null then do; 425 vrm_meter.cursor_ptr -> vrm_cursor.meter_sw = "0"b; 426 vrm_meter.cursor_ptr -> vrm_cursor.meter_ptr = null; 427 end; 428 free vrm_meter in (meter_info.work_area); 429 430 end; 431 432 do dx = rx to meter_info.num_rels - 1; 433 meter_info.rel_info (dx) = meter_info.rel_info (dx + 1); 434 end; 435 436 meter_info.num_rels = meter_info.num_rels - 1; 437 438 end delete_rel_list_ent; 439 440 441 442 /* * * * * * * * * * * * * meter * * * * * * * * * * * * * * * */ 443 444 meter: proc; 445 446 if ^meter_arg.all_sw & ^meter_arg.desc_sw & ^on_arg then do; 447 meter_arg.all_sw = "1"b; 448 meter_on_sw = "1"b; 449 end; 450 451 if ^meter_arg.desc_sw then meter_arg.all_sw = "1"b; 452 453 if ^on_arg then meter_on_sw = "1"b; 454 455 if meter_on_sw then meter_starting_time = clock; 456 457 if meter_arg.all_sw then do; /* Turn um all on */ 458 459 if meter_arg.desc_sw then 460 call error (error_table_$bad_arg, 461 "^/ The -all and -path control arguments cannot be used together."); 462 463 meter_info.all_sw = meter_on_sw; 464 meter_info.meter_on = meter_on_sw; 465 if meter_on_sw then call vrm_create_cursor$metering_on; 466 else call vrm_create_cursor$metering_off; 467 468 do i = 1 to meter_info.num_rels; 469 470 do c = 1 to meter_info.rel_info (i).number_meters; 471 472 vrm_meter_ptr = meter_info.rel_info (i).meter_ptrs (c); 473 474 vrm_meter.switches.metering = meter_on_sw; 475 if vrm_meter.cursor_ptr ^= null then 476 vrm_meter.cursor_ptr -> vrm_cursor.switches.meter_sw = meter_on_sw; 477 if meter_on_sw & vrm_meter.meter_start_time = 0 then 478 vrm_meter.meter_start_time = meter_starting_time; 479 480 481 end; /* END do c = 1 to */ 482 end; /* END do i = 1 to */ 483 484 end; /* END if meter_all */ 485 486 else do; /* Meter specific one */ 487 x = 0; 488 489 if meter_arg.desc_sw then do; 490 x = locate_uid_in_rel_list (meter_arg.path_desc.uid, 1); 491 if x ^= 0 then do; 492 493 do c = 1 to meter_info.rel_info (x).number_meters; 494 495 vrm_meter_ptr = meter_info.rel_info (x).meter_ptrs (c); 496 497 vrm_meter.switches.metering = meter_on_sw; 498 if vrm_meter.cursor_ptr ^= null then do; 499 vrm_meter.switches.metering = meter_on_sw; 500 vrm_meter.cursor_ptr -> vrm_cursor.switches.meter_sw = 501 meter_on_sw; 502 end; 503 504 505 end; /* END do c = 1 to */ 506 507 end; /* END if x ^= 0 then do; */ 508 else do; 509 510 call add_rel_list_ent (addr (meter_arg), x); 511 512 513 call add_meter_entry (x, null, vrm_meter_ptr, code); 514 if code ^= 0 then 515 call error (code, "Adding meter cursor name: " || meter_arg.relation_name); 516 vrm_meter.switches.metering = "1"b; 517 518 519 520 end; /* END do while (x ^= 0 ) */ 521 522 end; /* if meter_arg.desc_sw then do */ 523 524 end; /* END else do */ 525 526 end meter; 527 528 /* * * * * * * * * * * * * * list * * * * * * * * * * * * * * */ 529 530 list: proc; 531 532 if ^list_arg.desc_sw then list_arg.all_sw = "1"b; 533 534 if list_arg.all_sw then do; 535 536 if list_arg.desc_sw then 537 call error (error_table_$bad_arg, 538 "^/ The -all and -path control arguments cannot be used together."); 539 540 if meter_info.all_sw & meter_info.meter_on then 541 call ioa_ ("^/^-New cursors will be metered.^/"); 542 543 544 else if ^meter_info.meter_on then 545 call ioa_ ("^/^-New cursors will not be metered.^/"); 546 547 548 if meter_info.num_rels < 1 then 549 call ioa_ ("^-None have been specified.^/"); 550 551 else do l = 1 to meter_info.num_rels; 552 553 call list_display (l); 554 555 end; 556 end; /* END if list_arg.all_sw */ 557 558 else do; /* Meter specific one */ 559 listed_one = "0"b; 560 x = 1; 561 do while (x ^= 0 & x <= meter_info.num_rels); 562 563 if list_arg.desc_sw then 564 x = locate_uid_in_rel_list (list_arg.path_desc.uid, x); 565 566 if x ^= 0 then do; 567 call list_display (x); 568 x = x + 1; 569 end; 570 571 end; /* END do while (x ^= 0 ) */ 572 if ^listed_one then 573 call ioa_ ("Specified meter to be listed does not exists."); 574 end; /* END else do */ 575 576 call ioa_ (""); 577 578 list_display: proc (ml); 579 580 dcl ld fixed bin; 581 dcl ml fixed bin parameter; 582 583 list_path = get_shortest_path_ (meter_info.rel_info (ml).rel_dir); 584 585 call ioa_ ("RELATION:^20t^a>^a", list_path, 586 meter_info.rel_info (ml).rel_name); 587 588 if meter_info.rel_info (ml).number_meters = 0 then do; /* Nothing to display */ 589 590 call ioa_ ("^20tNo cursors defined for this relation.^/"); 591 return; 592 end; 593 594 do ld = 1 to meter_info.rel_info (ml).number_meters; 595 596 vrm_meter_ptr = meter_info.rel_info (ml).meter_ptrs (ld); 597 598 if vrm_meter.switches.metering then 599 data = "Metering ON "; 600 else data = "Metering OFF "; 601 602 if vrm_meter.last_call_stats.last_time_of_stats = 0 then 603 data = data || "No meters"; 604 else do; 605 call format_time (vrm_meter.last_call_stats.last_time_of_stats, time); 606 data = data || "Last meter time was " || time; 607 end; 608 609 call ioa_ ("^5xCURSOR:^20t^a ^a", vrm_meter.cursor_name, data); 610 611 listed_one = "1"b; 612 613 end; /* do ld = 1 to meter_list.number_meters */ 614 615 616 end list_display; 617 618 end list; 619 620 /* * * * * * * * * * * * print * * * * * * * * * * * * * */ 621 print: proc; 622 623 if print_long_sw then do; 624 print_total_sw = "1"b; 625 print_last_call_sw = "1"b; 626 print_search_stat_sw = "1"b; 627 end; 628 629 printed_one = "0"b; 630 if ^print_total_sw & ^print_last_call_sw then 631 print_last_call_sw = "1"b; 632 633 if ^print_arg.desc_sw then print_arg.all_sw = "1"b; 634 635 if print_arg.all_sw then do; /* Display um all */ 636 637 do i = 1 to meter_info.num_rels; 638 639 last_print_path = ""; 640 641 do c = 1 to meter_info.rel_info (i).number_meters; 642 643 vrm_meter_ptr = meter_info.rel_info (i).meter_ptrs (c); 644 call print_stats (i, vrm_meter_ptr); 645 646 end; /* END do c = 1 to */ 647 end; /* END do i = 1 to */ 648 649 end; /* END if print_arg.all_sw */ 650 else do; /* Specific realtion */ 651 x = 1; 652 653 do while (x ^= 0 & x <= meter_info.num_rels); 654 655 if print_arg.desc_sw then 656 x = locate_uid_in_rel_list (print_arg.path_desc.uid, x); 657 658 if x ^= 0 then do; 659 last_print_path = ""; 660 661 do c = 1 to meter_info.rel_info (x).number_meters; 662 663 call print_stats (x, meter_info.rel_info (x).meter_ptrs (c)); 664 end; 665 666 x = x + 1; 667 end; /* END x ^= 0 */ 668 669 end; /* END do while x ^= 0 */ 670 end; /* END Specific relation */ 671 if ^printed_one then call ioa_ ("^/No meters were found."); 672 673 end print; 674 675 /* * * * * * * * * * * print_stats * * * * * * * * * * * * * * */ 676 677 print_stats: proc (I_rel_ix, I_meter_ptr); 678 679 dcl I_rel_ix fixed bin parameter; 680 dcl I_meter_ptr ptr parameter; 681 682 vrm_meter_ptr = I_meter_ptr; 683 684 if vrm_meter.last_call_stats.last_time_of_stats = 0 then return; 685 686 print_path = get_shortest_path_ (meter_info.rel_info (I_rel_ix).rel_dir); 687 688 print_path = rtrim (print_path) || ">" || 689 meter_info.rel_info (I_rel_ix).rel_name; 690 691 if last_print_path ^= print_path then do; 692 call ioa_ ("^/RELATION:^22t^a", print_path); 693 last_print_path = print_path; 694 end; 695 696 printed_one = "1"b; 697 698 if print_last_call_sw then lc = "1"b; 699 else lc = "0"b; 700 if print_total_sw then do; 701 tt = "1"b; 702 if lc then tot_ptr = addr (s.s2); 703 else tot_ptr = addr (s.s1); 704 end; 705 else tt = "0"b; 706 707 call print_the_meters; 708 709 end print_stats; 710 711 /* * * * * * * * * * * * * * * * print_the_meters * * * * * * * * * * * */ 712 713 print_the_meters: proc; 714 715 call ioa_ ("^/ METERS FOR CURSOR:^32t^a^/", vrm_meter.cursor_name); 716 717 s = ""; 718 if lc then last = "LAST CALL METERS"; 719 if tt then tot = " TOTAL METERS"; 720 721 call ioa_ ("^a^/", string (s)); 722 723 s = ""; 724 s.h = "Metering time:"; 725 if lc then 726 call format_time (vrm_meter.last_call_stats.last_time_of_stats, last); 727 if tt then 728 call format_time (vrm_meter.meter_start_time, tot); 729 call ioa_ ("^a", string (s)); 730 731 732 s = ""; 733 s.h = "VCPU (seconds):"; 734 if lc then 735 call format_vcpu (vrm_meter.last_call_stats.vcpu_time, last); 736 if tt then 737 call format_vcpu (vrm_meter.total_stats.vcpu_time, tot); 738 call ioa_ ("^a", string (s)); 739 740 741 s = ""; 742 s.h = "Page faults:"; 743 if lc then 744 call format_val (vrm_meter.last_call_stats.page_faults, last); 745 if tt then 746 call format_val (vrm_meter.total_stats.page_faults, tot); 747 call ioa_ ("^a", string (s)); 748 749 750 s = ""; 751 s.h = "Number times locked:"; 752 if lc then 753 call format_val (vrm_meter.last_call_stats.number_times_locked, last); 754 if tt then 755 call format_val (vrm_meter.total_stats.number_times_locked, tot); 756 call ioa_ ("^a", string (s)); 757 758 759 s = ""; 760 s.h = "Number times used:"; 761 if lc then 762 call format_val (vrm_meter.last_call_stats.number_times_used, last); 763 if tt then 764 call format_val (vrm_meter.total_stats.number_times_used, tot); 765 call ioa_ ("^a^/", string (s)); 766 767 768 if print_search_stat_sw then do; 769 770 if (lc & vrm_meter.last_call_stats.seek_heads ^= 0) | tt then do; 771 s = ""; 772 s.h = "Regular seek heads:"; 773 if lc then 774 call format_val (vrm_meter.last_call_stats.seek_heads, last); 775 if tt then 776 call format_val (vrm_meter.total_stats.seek_heads, tot); 777 call ioa_ ("^a", string (s)); 778 end; 779 780 781 if (lc & vrm_meter.last_call_stats.special_seek_heads ^= 0) | tt then do; 782 783 s = ""; 784 s.h = "Special seek heads:"; 785 if lc then 786 call format_val (vrm_meter.last_call_stats.special_seek_heads, last); 787 if tt then 788 call format_val (vrm_meter.total_stats.special_seek_heads, tot); 789 call ioa_ ("^a", string (s)); 790 791 end; 792 793 794 if (lc & vrm_meter.last_call_stats.keys_read ^= 0) | tt then do; 795 796 s = ""; 797 s.h = "Keys read:"; 798 if lc then 799 call format_val (vrm_meter.last_call_stats.keys_read, last); 800 if tt then 801 call format_val (vrm_meter.total_stats.keys_read, tot); 802 call ioa_ ("^a", string (s)); 803 end; 804 805 806 if (lc & vrm_meter.last_call_stats.keys_compared ^= 0) | tt then do; 807 808 s = ""; 809 s.h = "Keys comparisons:"; 810 if lc then 811 call format_val (vrm_meter.last_call_stats.keys_compared, last); 812 if tt then 813 call format_val (vrm_meter.total_stats.keys_compared, tot); 814 call ioa_ ("^a", string (s)); 815 end; 816 817 818 if (lc & vrm_meter.last_call_stats.key_hits ^= 0) | tt then do; 819 820 s = ""; 821 s.h = "Key hits:"; 822 if lc then 823 call format_val (vrm_meter.last_call_stats.key_hits, last); 824 if tt then 825 call format_val (vrm_meter.total_stats.key_hits, tot); 826 call ioa_ ("^a", string (s)); 827 end; 828 829 830 831 s = ""; 832 s.h = "Upper limit found:"; 833 if lc then do; 834 if vrm_meter.last_call_stats.upper_limit_found_count > 0 then 835 last = "YES"; 836 else last = "NO"; 837 end; 838 if tt then 839 call format_val (vrm_meter.total_stats.upper_limit_found_count, tot); 840 call ioa_ ("^a", string (s)); 841 842 843 844 if (lc & vrm_meter.last_call_stats.num_times_search_called ^= 0) | tt then do; 845 846 s = ""; 847 s.h = "Search called:"; 848 if lc then 849 call format_val (vrm_meter.last_call_stats.num_times_search_called, last); 850 if tt then 851 call format_val (vrm_meter.total_stats.num_times_search_called, tot); 852 call ioa_ ("^a", string (s)); 853 end; 854 855 856 if (lc & vrm_meter.last_call_stats.records_searched ^= 0) | tt then do; 857 858 s = ""; 859 s.h = "Records searched:"; 860 if lc then 861 call format_val (vrm_meter.last_call_stats.records_searched, last); 862 if tt then 863 call format_val (vrm_meter.total_stats.records_searched, tot); 864 call ioa_ ("^a", string (s)); 865 end; 866 867 868 if (lc & vrm_meter.last_call_stats.non_key_compares ^= 0) | tt then do; 869 870 s = ""; 871 s.h = "Non-key compares:"; 872 if lc then 873 call format_val (vrm_meter.last_call_stats.non_key_compares, last); 874 if tt then 875 call format_val (vrm_meter.total_stats.non_key_compares, tot); 876 call ioa_ ("^a", string (s)); 877 end; 878 879 880 if (lc & vrm_meter.last_call_stats.non_key_hits ^= 0) | tt then do; 881 882 s = ""; 883 s.h = "Non-key hits:"; 884 if lc then 885 call format_val (vrm_meter.last_call_stats.non_key_hits, last); 886 if tt then 887 call format_val (vrm_meter.total_stats.non_key_hits, tot); 888 call ioa_ ("^a", string (s)); 889 end; 890 891 892 893 s = ""; 894 s.h = "Items returned:"; 895 if lc then 896 call format_val (vrm_meter.last_call_stats.number_items_returned, last); 897 if tt then 898 call format_val (vrm_meter.total_stats.number_items_returned, tot); 899 call ioa_ ("^a", string (s)); 900 901 s = ""; 902 s.h = "Tuples deleted:"; 903 if lc then 904 call format_val (vrm_meter.last_call_stats.number_tuples_deleted, last); 905 if tt then 906 call format_val (vrm_meter.total_stats.number_tuples_deleted, tot); 907 call ioa_ ("^a", string (s)); 908 909 s = ""; 910 s.h = "Tuples modified:"; 911 if lc then 912 call format_val (vrm_meter.last_call_stats.number_tuples_modified, last); 913 if tt then 914 call format_val (vrm_meter.total_stats.number_tuples_modified, tot); 915 call ioa_ ("^a", string (s)); 916 917 918 s = ""; 919 s.h = "Tuples stored:"; 920 if lc then 921 call format_val (vrm_meter.last_call_stats.number_tuples_stored, last); 922 if tt then 923 call format_val (vrm_meter.total_stats.number_tuples_stored, tot); 924 call ioa_ ("^a^/", string (s)); 925 926 end; /* END if print_search_stat_sw */ 927 928 format_val: proc (v_in, v_out); 929 930 dcl v_in fixed bin (70) parameter; 931 dcl v_out char (20) parameter; 932 dcl v_out_len fixed bin (21); 933 934 call ioa_$rsnnl ("^d", v_out, v_out_len, v_in); 935 936 end format_val; 937 938 format_vcpu: proc (in_vcpu, out_vcpu); 939 940 dcl in_vcpu float bin (63) parameter; 941 dcl out_vcpu char (20) parameter; 942 dcl out_vcpu_len fixed bin (21); 943 dcl temp char (12); 944 945 call ioa_$rsnnl ("^12.5f", temp, out_vcpu_len, in_vcpu); 946 out_vcpu = ltrim (temp); 947 948 end format_vcpu; 949 950 end print_the_meters; 951 952 /* * * * * * * * * * * * * * * * format_time * * * * * * * * * * * * * */ 953 954 format_time: proc (in_time, out_time); 955 956 dcl in_time fixed bin (71) parameter; 957 dcl out_time char (20) parameter; 958 959 zone = ""; 960 961 call decode_clock_value_$date_time (in_time, month, 962 dom, year, hour, minute, second, micro_sec, dow, zone, code); 963 if code ^= 0 then call error (code, "Converting clock"); 964 965 tm.hr = hour; 966 tm.min = minute; 967 tm.sec = second; 968 tm.micro = micro_sec; 969 970 out_time = string (tm); 971 972 end format_time; 973 974 975 /* * * * * * * * * * * * * * reset * * * * * * * * * * * * * * */ 976 977 reset: proc; 978 979 meter_starting_time = clock; 980 981 if ^reset_arg.all_sw & ^reset_arg.desc_sw then 982 call error (error_table_$noarg, "^/No relation or cursor specified to be reset."); 983 984 985 if ^reset_arg.desc_sw then reset_arg.all_sw = "1"b; 986 987 if reset_arg.all_sw then do; 988 989 if reset_arg.desc_sw then 990 call error (error_table_$bad_arg, "^/ The -all and -path control arguments cannot be used together."); 991 992 993 if meter_info.num_rels < 1 then /* Nothing to reset */ 994 call ioa_ ("^/There are no meters to reset."); 995 996 else do r = 1 to meter_info.num_rels; 997 998 do c = 1 to meter_info.rel_info (r).number_meters; 999 1000 call reset_the_meter (meter_info.rel_info (r).meter_ptrs (c)); 1001 end; 1002 1003 end; /* END do r = 1 to meter_info.num_rels */ 1004 end; /* if reset_arg.all_sw then do */ 1005 1006 else do; /* Specific relation */ 1007 reset_one = "0"b; 1008 1009 x = 1; 1010 do while (x ^= 0 & x <= meter_info.num_rels); 1011 1012 if reset_arg.desc_sw then 1013 x = locate_uid_in_rel_list (reset_arg.path_desc.uid, x); 1014 1015 if x ^= 0 then do; 1016 1017 1018 do c = 1 to meter_info.rel_info (x).number_meters; 1019 1020 call reset_the_meter (meter_info.rel_info (x).meter_ptrs (c)); 1021 end; 1022 1023 x = x + 1; 1024 end; 1025 1026 end; /* END do while (x ^= 0 ) */ 1027 if ^reset_one then 1028 call ioa_ ("^/Specified meter to be reset does not exists.^/"); 1029 end; /* END else do */ 1030 1031 end reset; 1032 1033 reset_the_meter: proc (I_meter_ptr); 1034 1035 dcl I_meter_ptr ptr parameter; 1036 1037 vrm_meter_ptr = I_meter_ptr; 1038 1039 vrm_meter.meter_start_time = meter_starting_time; 1040 vrm_meter.last_call_stats = 0; 1041 vrm_meter.total_stats = 0; 1042 reset_one = "1"b; 1043 1044 end reset_the_meter; 1045 1046 delete: proc; 1047 1048 if ^delete_arg.all_sw & ^delete_arg.desc_sw then 1049 call error (error_table_$noarg, "^/No relation or cursor specified to be deleted."); 1050 1051 1052 if delete_arg.all_sw then do; 1053 1054 if delete_arg.desc_sw then 1055 call error (error_table_$bad_arg, "^/ The -all and -path control arguments cannot be used together."); 1056 1057 1058 if meter_info.num_rels < 1 then /* Nothing to delete */ 1059 call ioa_ ("^/There are no meters to delete."); 1060 1061 else do r = 1 to meter_info.num_rels; 1062 1063 call delete_rel_list_ent (r); 1064 end; /* END do r = 1 to meter_info.num_rels */ 1065 end; /* if delete_arg.all_sw then do */ 1066 1067 else do; /* Specific relation */ 1068 deleted_one = "0"b; 1069 1070 if delete_arg.desc_sw then do; 1071 x = locate_uid_in_rel_list (delete_arg.path_desc.uid, 1); 1072 if x ^= 0 then do; 1073 1074 call delete_rel_list_ent (x); 1075 deleted_one = "1"b; 1076 1077 1078 end; /* if x ^= 0 then do; */ 1079 end; /* END if delete_arg.desc_sw then do; */ 1080 1081 else do i = 1 to meter_info.num_rels; 1082 1083 1084 call delete_the_meter (i); 1085 1086 end; /* END do i = 1 to rel_list */ 1087 1088 1089 1090 if ^deleted_one then 1091 call ioa_ ("Specified meter to be deleted does not exists.^/"); 1092 end; /* END else do */ 1093 1094 end delete; 1095 1096 delete_the_meter: proc (I_dx); 1097 1098 1099 dcl I_dx fixed bin parameter; 1100 dcl di fixed bin; 1101 1102 dx = I_dx; 1103 1104 1105 do di = 1 to meter_info.rel_info (dx).number_meters; 1106 1107 1108 meter_ptr = meter_info.rel_info (dx).meter_ptrs (di); 1109 1110 if vrm_meter.cursor_ptr ^= null then do; 1111 vrm_cursor_ptr = vrm_meter.cursor_ptr; 1112 vrm_cursor.switches.meter_sw = "0"b; 1113 vrm_cursor.meter_ptr = null; 1114 end; 1115 1116 free vrm_meter in (meter_info.work_area); 1117 1118 deleted_one = "1"b; 1119 end; 1120 1121 end delete_the_meter; 1122 1123 1124 /* * * * * * * * * * * * * * locate_uid_in_rel_list * * * * * * * * */ 1125 1126 locate_uid_in_rel_list: proc (search_uid, start_index) returns (fixed bin); 1127 1128 1129 dcl start_index fixed bin parameter; /* place to start i rel_list table */ 1130 dcl return_value fixed bin; 1131 dcl s fixed bin; 1132 dcl sx fixed bin; 1133 dcl search_uid bit (36) aligned parameter; 1134 1135 return_value = 0; 1136 if start_index = 0 then sx = 1; 1137 else sx = start_index; 1138 1139 1140 do s = sx to meter_info.num_rels while (return_value = 0); 1141 1142 if meter_info.rel_info (s).uid = search_uid then return_value = s; 1143 1144 end; 1145 1146 return (return_value); 1147 1148 end locate_uid_in_rel_list; 1149 1150 1151 /* * * * * * * * * * * * * * * * * * * * error * * * * * * * * * * */ 1152 1153 error: proc (cd, err_msg); 1154 1155 dcl cd fixed bin (35) parameter; 1156 dcl com_err_ entry () options (variable); 1157 dcl err_msg char (*) parameter; 1158 1159 call com_err_ (cd, PROC_NAME, err_msg); 1160 goto exit; 1161 end error; 1162 1163 1164 1165 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1166 1167 sub_error: proc (err_cd); 1168 1169 dcl err_cd fixed bin (35); 1170 1171 O_code = err_cd; 1172 1173 end sub_error; 1174 1175 1176 /* * * * * * * * * * * * * * * get_path_desc * * * * * * * * * * * * */ 1177 1178 get_path_desc: proc (in_path, gpd_arg_ptr); 1179 1180 dcl in_path char (*) parameter; 1181 dcl gpd_arg_ptr ptr parameter; 1182 1183 std_arg_ptr = gpd_arg_ptr; 1184 1185 call expand_pathname_ (in_path, std_arg.path_desc.dir, std_arg.path_desc.ent, code); 1186 if code ^= 0 then call error (code, in_path); 1187 1188 call hcs_$status_long (std_arg.path_desc.dir, 1189 std_arg.path_desc.ent, 1, addr (sb), null, code); 1190 if code ^= 0 then call error (code, rtrim (std_arg.path_desc.dir) || ">" || std_arg.path_desc.ent); 1191 1192 if sb.short.type = Link then call error (error_table_$link, in_path); 1193 1194 else if sb.short.type = Directory then do; 1195 if sb.long.bit_count = 0 then 1196 call error (error_table_$dirseg, in_path); 1197 end; 1198 1199 std_arg.path_desc.uid = sb.long.uid; 1200 1201 end get_path_desc; 1202 1203 get_arg: proc (arg_num); 1204 1205 dcl arg_num fixed bin parameter; 1206 1207 call cu_$arg_ptr (arg_num, arg_ptr, arg_len, code); 1208 if code ^= 0 then call error (code, "Getting arg number " || ltrim (char (n))); 1209 1210 end get_arg; 1211 1212 1213 1214 1215 1216 1 1 /* BEGIN INCLUDE vrm_meter_man.incl.pl1 */ 1 2 1 3 dcl meter_info_ptr ptr; /* Pointer vrm_metering temp segment */ 1 4 1 5 dcl 1 meter_info aligned based (meter_info_ptr), 1 6 2 all_sw bit (1) unal, /* ON = meter all 1 7* OFF = Meter only relation in list */ 1 8 2 meter_on bit (1) unal, /* ON = metering is being done */ 1 9 2 mbz bit (34) unal, 1 10 2 num_rels fixed bin, /* Number of relations in list */ 1 11 2 rel_info (MAX_RELS), /* Relations being metered */ 1 12 3 rel_name char (32), /* Name of relation */ 1 13 3 rel_dir char (168) unal, /* Relation superior directory path */ 1 14 3 uid bit (36) aligned, /* Unique id if msf dir of relation */ 1 15 3 number_meters fixed bin, /* Number pof meter in this list */ 1 16 3 meter_ptrs (5) ptr, /* Pointers to meter statistics */ 1 17 1 18 1 19 2 work_area area (sys_info$max_seg_size - fixed (rel (addr (meter_info.work_area))) - 1); 1 20 1 21 dcl MAX_RELS fixed bin int static options (constant) init (40); 1 22 1 23 /* END INCLUDE vrm_meter_man.incl.pl1 */ 1217 1218 2 1 /* BEGIN INCLUDE vrm_meter.incl.pl1 */ 2 2 2 3 dcl vrm_meter_ptr pointer; 2 4 2 5 dcl 1 vrm_meter aligned based (vrm_meter_ptr), 2 6 2 cursor_name char (32), /* Name of cursor */ 2 7 2 meter_start_time fixed bin (71), 2 8 2 switches, 2 9 3 metering bit (1) unal, /* On = meter being done */ 2 10 3 mbz bit (35) unal, 2 11 2 cursor_ptr ptr, /* Pointer to vrm_cursor structure */ 2 12 2 last_call_stats like statistics, 2 13 2 total_stats like statistics; 2 14 2 15 dcl 1 statistics based, /* Used in like above */ 2 16 2 last_time_of_stats fixed bin (71), /* Last clock value for stats taken */ 2 17 2 vcpu_time float bin (63), /* The vcpu for this cursor */ 2 18 2 page_faults fixed bin (70), /* Page faults for this cursor */ 2 19 2 number_times_locked fixed bin (70), /* Number of time a lock was set */ 2 20 2 number_times_used fixed bin (70), /* Number of time cursor was used */ 2 21 2 num_times_search_called fixed bin (70), /* Number of time vrm_search was called */ 2 22 2 records_searched fixed bin (70), /* The records searched */ 2 23 2 seek_heads fixed bin (70), /* The seek heads done for key searches */ 2 24 2 special_seek_heads fixed bin (70), /* The seek heads done for key searches */ 2 25 2 keys_read fixed bin (70), /* The keys read by key search */ 2 26 2 keys_compared fixed bin (70), /* The keys compared in key search */ 2 27 2 key_hits fixed bin (70), /* The key hits for key search */ 2 28 2 non_key_compares fixed bin (70), /* The non_key compares done for this cursor */ 2 29 2 non_key_hits fixed bin (70), /* The non_key hits for this cursor */ 2 30 2 upper_limit_found_count fixed bin (70), /* The number of times upper limit was exceeded */ 2 31 2 number_items_returned fixed bin (70), /* Number of tuples or tid returned */ 2 32 2 number_tuples_deleted fixed bin (70), /* Number of tuples deleted */ 2 33 2 number_tuples_modified fixed bin (70), /* Number of tuples modified */ 2 34 2 number_tuples_stored fixed bin (70); /* Number of tuples stored */ 2 35 2 36 /* END INCLUDE vrm_meter.incl.pl1 */ 1219 1220 3 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 3 2 3 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 3 4 3 5 /* This include file contains branch and link structures returned by 3 6* hcs_$status_ and hcs_$status_long. */ 3 7 3 8 dcl 1 status_branch aligned based (status_ptr), 3 9 2 short aligned, 3 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 3 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 3 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 3 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 3 14 3 dtu bit (36) unaligned, /* date/time last used */ 3 15 3 mode bit (5) unaligned, /* caller's effective access */ 3 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 3 17 3 pad1 bit (8) unaligned, 3 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 3 19 3 20 /* Limit of information returned by hcs_$status_ */ 3 21 3 22 2 long aligned, 3 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 3 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 3 25 3 lvid bit (36) unaligned, /* logical volume ID */ 3 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 3 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 3 28 3 pad2 bit (8) unaligned, 3 29 3 copy_switch bit (1) unaligned, /* copy switch */ 3 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 3 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 3 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 3 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 3 34 3 pad3 bit (5) unaligned, 3 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 3 36 3 uid bit (36) unaligned; /* unique ID */ 3 37 3 38 dcl 1 status_link aligned based (status_ptr), 3 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 3 40 2 nnames fixed bin (16) unaligned unsigned, 3 41 2 names_relp bit (18) unaligned, 3 42 2 dtem bit (36) unaligned, 3 43 2 dtd bit (36) unaligned, 3 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 3 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 3 46 3 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 3 48 based (pointer (status_area_ptr, status_branch.names_relp)), 3 49 /* array of names returned */ 3 50 status_pathname character (status_link.pathname_length) aligned 3 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 3 52 /* link target path */ 3 53 status_area_ptr pointer, 3 54 status_ptr pointer; 3 55 3 56 dcl (Link initial (0), 3 57 Segment initial (1), 3 58 Directory initial (2)) fixed bin internal static options (constant); 3 59 /* values for type fields declared above */ 3 60 3 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 1221 1222 4 1 /* BEGIN INCLUDE vrm_cursor.incl.pl1 */ 4 2 4 3 /* 83-05-26 Roger Lackey : Modifyed for relation cursors */ 4 4 4 5 dcl vrm_cursor_ptr pointer; /* Pointer to this structure */ 4 6 4 7 dcl 1 vrm_cursor aligned based (vrm_cursor_ptr), /* vfile relation manager cursor */ 4 8 2 opening_id bit (36) aligned, /* ID of opening associated with this cursor */ 4 9 2 debug_sw unal, /* Undefined MBZ */ 4 10 3 trace_open bit (1) unal, /* Show opening of iocb cursor creation time */ 4 11 3 pad bit (35) unal, 4 12 2 switches, 4 13 3 shared bit (1) unal, /* Other processes can use this relation */ 4 14 3 meter_sw bit (1) unal, /* On = Keep meters for this cursor */ 4 15 3 pad bit (7) unal, /* Unsed */ 4 16 2 opening_mode fixed bin, /* Opening mode for this cursor (8 = KSQR 10 = KSQU) */ 4 17 2 open_info_ptr pointer, /* Pointer to parent opening info structure */ 4 18 2 vrm_relation_desc_ptr pointer, /* Pointer to parent rel desc */ 4 19 2 iocb_ptr pointer, /* Pointer to attach iocb */ 4 20 2 secondary_iocb_ptr ptr, /* Second iocb_ptr used by vrmu_search */ 4 21 2 search_list_ptr ptr, /* Pointer to search_list */ 4 22 2 search_keys_ptr ptr, /* Pointer to search_keys array */ 4 23 2 meter_ptr pointer, /* Pointer metering str if metering is on or null */ 4 24 2 vrm_iocb_list_block_ptr pointer, /* Pointer to vrm_iocb_list_block that contains this cursors iocb */ 4 25 2 vrm_iocb_list_block_iocbs_ix fixed bin; /* Index into list_block.iocbs for location of iocb */ 4 26 4 27 4 28 /* END INCLUDE vrm_cursor.incl.pl1 */ 1223 1224 5 1 /* BEGIN INCLUDE vrm_open_info.incl.pl1 */ 5 2 5 3 /* R. Harvey 82-11-02 5 4* 82-09-82 Roger Lackey: added iocb_list_ptr */ 5 5 5 6 dcl 1 vrm_open_info aligned based (vrm_open_info_ptr), /* Vfile relation description */ 5 7 2 version char (8), /* Version number of this structure */ 5 8 2 opening_id bit (36) aligned, /* Opening id associated with this desc */ 5 9 2 file_uid bit (36) aligned, /* Unique id of msf dir */ 5 10 2 number_of_openings fixed bin, /* Number of separate calls to vrm$open */ 5 11 2 switches, 5 12 3 shared bit (1) unal, /* Open relation in shared mode */ 5 13 3 pad bit (35) unal init ("0"b), /* Unused must be zero */ 5 14 2 database_dir_path char (168) varying, /* Absolute path of database */ 5 15 2 relation_name char (30) varying, /* Name of relation */ 5 16 2 relation_model_ptr pointer, /* Pointer to the relation_model in the relation itself or a temp seg */ 5 17 2 com_ptr pointer, /* Temp seg for cursors and scratch space */ 5 18 2 iocb_list_ptr pointer, /* Pointer to first vrm_iocb_list_block */ 5 19 2 primary_key_info_ptr pointer, /* Special case collection info ptr */ 5 20 2 number_of_index_collections fixed bin, /* Count of index collections (include primary key) */ 5 21 2 index_collection (voi_no_of_index_collections 5 22 refer (vrm_open_info.number_of_index_collections)), 5 23 3 id bit (36), 5 24 3 info_ptr ptr unal; /* Points to more detailed info */ 5 25 5 26 5 27 dcl VRM_OPEN_INFO_VERSION_1 char (8) int static options (constant) init (" 1"); 5 28 dcl vrm_open_info_ptr ptr; 5 29 dcl voi_no_of_index_collections fixed bin; 5 30 5 31 /* END INCLUDE vrm_open_info.incl.pl1 */ 1225 1226 6 1 /* BEGIN INCLUDE vrm_collection_info.incl.pl1 */ 6 2 6 3 /* R. Harvey 82-11-02 */ 6 4 6 5 6 6 dcl 1 vrm_collection_info aligned based (vrm_collection_info_ptr), 6 7 /* Index collection description */ 6 8 2 record_id unal, 6 9 3 header bit (4) unal, /* collection type */ 6 10 3 id bit (8) unal, /* index id */ 6 11 2 unique bit (1) unal, 6 12 2 primary_key bit (1) unal, /* This is the MRDS primary key collection */ 6 13 2 pad bit (26) unal, 6 14 2 number_of_attributes 6 15 fixed bin, 6 16 2 attribute (vci_no_of_attributes refer (vrm_collection_info.number_of_attributes)), 6 17 3 attr_index fixed bin, /* Attribute number in relation description */ 6 18 3 key_offset fixed bin, /* Offset within key in bits */ 6 19 3 key_bit_len fixed bin ; /* Length of key in bits */ 6 20 6 21 dcl vrm_collection_info_ptr 6 22 ptr; 6 23 dcl vci_no_of_attributes fixed bin; 6 24 dcl vrm_collection_header_type 6 25 bit (4) unal int static options (constant) init ("1100"b); 6 26 dcl VRM_COLLECTION_KEY_HEAD char (16) int static options (constant) init ("@collection_info"); 6 27 6 28 /* END INCLUDE vrm_collection_info.incl.pl1 */ 1227 1228 7 1 /* BEGIN INCLUDE vrm_rel_desc.incl.pl1 */ 7 2 7 3 /* 83-05-26 Roger Lackey : Added vrm_attr_info.key_head bit for relation_cursors */ 7 4 7 5 dcl 1 vrm_rel_desc based (vrm_rel_desc_ptr), 7 6 2 record_id bit (12) unal, /* Distinguish us from tuples and collection records */ 7 7 2 version char (8), /* Version of this structure */ 7 8 2 file_id bit (7), /* Value of file id from model */ 7 9 2 rel_id bit (12), /* Relation id */ 7 10 2 switches, 7 11 3 MRDS_compatible bit (1) unal, /* For pre-relation_manager_ MRDS */ 7 12 3 stationary_records 7 13 bit (1) unal, /* On = stationary */ 7 14 3 indexed bit (1) unal, /* This relation has attributes with secondary indices */ 7 15 3 pad bit (33) unal, 7 16 2 var_offset fixed bin (35), /* Position of first varying attr */ 7 17 2 maximum_data_length 7 18 fixed bin (35), /* Maximum size of tuple in characters */ 7 19 2 number_primary_key_attrs 7 20 fixed bin, /* Number of attributes which make up the primary key */ 7 21 2 number_sec_indexes fixed bin, /* Number of attributes which have a secondary index */ 7 22 2 last_var_attr_no fixed bin, /* Attr index of last varying attribute */ 7 23 2 number_var_attrs fixed bin, /* Number of varying attributes */ 7 24 2 number_attrs fixed bin, /* Number of attribute in rel */ 7 25 2 attr (vrd_no_of_attrs /* Description of each attribute */ 7 26 refer (vrm_rel_desc.number_attrs)) aligned like vrm_attr_info; 7 27 7 28 dcl 1 vrm_attr_info based (vrm_attr_info_ptr), 7 29 /* Attribute specific info */ 7 30 2 name char (32), /* Name of the attribute */ 7 31 2 descriptor bit (36) aligned, /* domain descriptor */ 7 32 2 varying bit (1) unal, /* ON = This is a varying string */ 7 33 2 key_head bit (1) unal, /* ON = This attr can be a keyhead */ 7 34 2 primary_key_attr bit (1) unal, /* ON = This is a primary key attribute */ 7 35 2 pad bit (15) unal, /* unused */ 7 36 2 index_collextion_ix fixed bin (17) unal, /* Index into vrm_open_info.index_collection array if key_head is on */ 7 37 2 bit_length fixed bin (35), /* Maximum bit length of tuple */ 7 38 2 bit_offset fixed bin (35); /* Offset in tuple if fixed, index to offset in tuple if varying */ 7 39 7 40 7 41 dcl vrm_rel_desc_ptr pointer; 7 42 dcl vrd_no_of_attrs fixed bin; 7 43 dcl VRM_REL_DESC_RECORD_ID bit (12) unal int static options (constant) init ("100000000000"b); 7 44 dcl VRM_REL_DESC_VERSION_1 char (8) int static options (constant) init (" 1"); 7 45 dcl vrm_attr_info_ptr pointer; 7 46 dcl VRM_REL_DESC_KEY char (256) varying int static options (constant) init ("@relation_description"); 7 47 7 48 /* END INCLUDE vrm_rel_desc.incl.pl1 */ 1229 1230 1231 dcl 1 sb like status_branch; 1232 1233 dcl 1 s, 1234 2 indent char (4) unal, 1235 2 h char (27) unal, 1236 2 s1 char (20) unal, 1237 2 pad2 char (2) unal, 1238 2 s2 char (20) unal; 1239 1240 1241 dcl std_arg_ptr ptr; 1242 1243 dcl 1 std_arg aligned based (std_arg_ptr), 1244 2 all_sw bit (1) unal, 1245 2 desc_sw bit (1) unal, 1246 2 pad bit (34) unal, 1247 2 relation_name char (32) unal, 1248 2 path_desc unal, 1249 3 dir char (168), 1250 3 ent char (32), 1251 3 uid bit (36) aligned; 1252 1253 1254 dcl 1 meter_arg aligned like std_arg; 1255 dcl 1 list_arg aligned like std_arg; 1256 dcl 1 print_arg aligned like std_arg; 1257 dcl 1 delete_arg aligned like std_arg; 1258 dcl 1 reset_arg aligned like std_arg; 1259 1260 1261 dcl 1 tm, 1262 2 hr pic "z9" unal, 1263 2 colon char (1) init (":") unal, 1264 2 min pic "99" unal, 1265 2 blak char (2) init (" ") unal, 1266 2 sec pic "z9" unal, 1267 2 dot char (1) init ("."), 1268 2 micro pic "999999" unal; 1269 1270 dcl addr builtin; 1271 dcl all_rel_arg bit (1); 1272 dcl all_rel_sw bit (1); 1273 dcl arg char (arg_len) based (arg_ptr); 1274 dcl arg_len fixed bin (21); 1275 dcl arg_ptr ptr; 1276 dcl arg_used bit (1); 1277 dcl c fixed bin; 1278 dcl char builtin; 1279 dcl clock builtin; 1280 dcl code fixed bin (35); 1281 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 1282 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 1283 dcl data char (70) varying; 1284 dcl deleted_one bit (1); 1285 dcl delete_args_done bit (1); 1286 dcl delete_sw bit (1); 1287 dcl dom fixed bin; 1288 dcl dow fixed bin; 1289 dcl dx fixed bin; 1290 dcl empty builtin; 1291 dcl error_table_$bad_arg fixed bin (35) ext static; 1292 dcl error_table_$bad_subr_arg fixed bin (35) ext static; 1293 dcl error_table_$dirseg fixed bin (35) ext static; 1294 dcl error_table_$link fixed bin (35) ext static; 1295 dcl error_table_$noarg fixed bin (35) ext static; 1296 dcl error_table_$too_many_names fixed bin (35) ext static; 1297 dcl error_table_$wrong_no_of_args fixed bin (35) ext static; 1298 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 1299 dcl fixed builtin; 1300 dcl get_shortest_path_ entry (char (*)) returns (char (168)); 1301 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 1302 dcl hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 1303 dcl hour fixed bin; 1304 dcl i fixed bin; 1305 dcl ioa_ entry () options (variable); 1306 dcl ioa_$rsnnl entry () options (variable); 1307 dcl l fixed bin; 1308 dcl last char (20) unal based (addr (s.s1)); 1309 dcl last_print_path char (168); 1310 dcl lc bit (1); 1311 dcl listed_one bit (1); 1312 dcl list_args_done bit (1); 1313 dcl list_path char (168); 1314 dcl list_sw bit (1); 1315 dcl ltrim builtin; 1316 dcl meter_args_done bit (1); 1317 dcl meter_on_sw bit (1) aligned; 1318 dcl meter_starting_time fixed bin (71); 1319 dcl meter_sw bit (1); 1320 dcl micro_sec fixed bin (71); 1321 dcl minute fixed bin; 1322 dcl month fixed bin; 1323 dcl mx fixed bin; 1324 dcl n fixed bin; 1325 dcl nargs fixed bin; 1326 dcl null builtin; 1327 dcl on_arg bit (1); 1328 dcl printed_one bit (1); 1329 dcl print_args_done bit (1); 1330 dcl print_last_call_arg_sw bit (1); 1331 dcl print_last_call_sw bit (1); 1332 dcl print_long_sw bit (1); 1333 dcl print_path char (168); 1334 dcl print_search_stat_arg_sw bit (1); 1335 dcl print_search_stat_sw bit (1); 1336 dcl print_sw bit (1); 1337 dcl print_total_arg_sw bit (1); 1338 dcl print_total_sw bit (1); 1339 dcl PROC_NAME char (12) int static options (constant) init ("vrm_meter"); 1340 dcl r fixed bin; 1341 dcl rel builtin; 1342 dcl reset_all_sw bit (1); 1343 dcl reset_args_done bit (1); 1344 dcl reset_one bit (1); 1345 dcl reset_sw bit (1); 1346 dcl rtrim builtin; 1347 dcl rx fixed bin; 1348 dcl saved_meter_seg_ptr ptr int static init (null ()); 1349 dcl second fixed bin; 1350 dcl string builtin; 1351 dcl substr builtin; 1352 dcl sys_info$max_seg_size fixed bin (35) ext static; 1353 dcl time char (20); 1354 dcl tot char (20) unal based (tot_ptr); 1355 dcl tot_ptr ptr; 1356 dcl tt bit (1); 1357 dcl unspec builtin; 1358 dcl used_it_sw bit (1); 1359 dcl vrm_create_cursor$metering_off entry; 1360 dcl vrm_create_cursor$metering_on entry; 1361 dcl x fixed bin; 1362 dcl year fixed bin; 1363 dcl zone char (3); 1364 1365 1366 dcl decode_clock_value_$date_time entry (fixed bin (71), fixed bin, 1367 fixed bin, fixed bin, fixed bin, 1368 fixed bin, fixed bin, 1369 fixed bin (71), fixed bin, 1370 char (3), fixed bin (35)); 1371 1372 1373 1374 end vrm_meter; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0933.8 vrm_meter.pl1 >special_ldd>online>mrds_install>vrm_meter.pl1 1217 1 10/14/83 1609.1 vrm_meter_man.incl.pl1 >ldd>include>vrm_meter_man.incl.pl1 1219 2 10/14/83 1609.1 vrm_meter.incl.pl1 >ldd>include>vrm_meter.incl.pl1 1221 3 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 1223 4 10/14/83 1609.1 vrm_cursor.incl.pl1 >ldd>include>vrm_cursor.incl.pl1 1225 5 10/14/83 1609.1 vrm_open_info.incl.pl1 >ldd>include>vrm_open_info.incl.pl1 1227 6 10/14/83 1609.1 vrm_collection_info.incl.pl1 >ldd>include>vrm_collection_info.incl.pl1 1229 7 10/14/83 1609.1 vrm_rel_desc.incl.pl1 >ldd>include>vrm_rel_desc.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. Directory constant fixed bin(17,0) initial dcl 3-56 ref 1194 I_ame_cursor_ptr parameter pointer dcl 377 ref 374 403 I_ame_rel_list_ix parameter fixed bin(17,0) dcl 378 ref 374 387 I_arg_ptr parameter pointer dcl 355 ref 353 359 I_cursor_ptr parameter pointer dcl 317 ref 315 327 I_dx parameter fixed bin(17,0) dcl 1099 ref 1096 1102 I_meter_ptr parameter pointer dcl 680 in procedure "print_stats" ref 677 682 I_meter_ptr parameter pointer dcl 1035 in procedure "reset_the_meter" ref 1033 1037 I_rel_ix parameter fixed bin(17,0) dcl 414 in procedure "delete_rel_list_ent" ref 412 416 I_rel_ix parameter fixed bin(17,0) dcl 679 in procedure "print_stats" ref 677 686 688 Link constant fixed bin(17,0) initial dcl 3-56 ref 1192 MAX_RELS constant fixed bin(17,0) initial dcl 1-21 ref 13 13 361 392 428 1116 O_code parameter fixed bin(35,0) dcl 380 in procedure "add_meter_entry" set ref 374 384* 389* O_code parameter fixed bin(35,0) dcl 319 in procedure "vrmm" set ref 315 322* 348* 1171* O_meter_ptr parameter pointer dcl 318 set ref 315 323* 347* O_rl_ix parameter fixed bin(17,0) dcl 356 set ref 353 363* O_vrm_meter_ptr parameter pointer dcl 379 set ref 374 383* 404* PROC_NAME 000000 constant char(12) initial unaligned dcl 1339 set ref 10* 1159* addr builtin function dcl 1270 ref 13 117 117 145 145 171 171 213 213 240 240 277 277 332 332 343 343 510 510 702 703 718 725 734 743 752 761 773 785 798 810 822 834 836 848 860 872 884 895 903 911 920 1188 1188 all_rel_arg 000632 automatic bit(1) unaligned dcl 1271 set ref 30* all_rel_sw 000633 automatic bit(1) unaligned dcl 1272 set ref 31* all_sw 000152 automatic bit(1) level 2 in structure "meter_arg" packed unaligned dcl 1254 in procedure "vrmm" set ref 446 447* 451* 457 all_sw based bit(1) level 2 in structure "meter_info" packed unaligned dcl 1-5 in procedure "vrmm" set ref 16* 463* 540 all_sw based bit(1) level 2 in structure "std_arg" packed unaligned dcl 1243 in procedure "vrmm" set ref 101* all_sw 000532 automatic bit(1) level 2 in structure "reset_arg" packed unaligned dcl 1258 in procedure "vrmm" set ref 228* 981 985* 987 all_sw 000342 automatic bit(1) level 2 in structure "print_arg" packed unaligned dcl 1256 in procedure "vrmm" set ref 633* 635 all_sw 000436 automatic bit(1) level 2 in structure "delete_arg" packed unaligned dcl 1257 in procedure "vrmm" set ref 201* 1048 1052 all_sw 000246 automatic bit(1) level 2 in structure "list_arg" packed unaligned dcl 1255 in procedure "vrmm" set ref 133* 532* 534 arg based char unaligned dcl 1273 set ref 45 48 48 48 53 53 58 58 58 63 63 63 68 68 68 73* 76* 100 100 107 107 110 114 117* 144 168 174 179 212 239 274 280 280 286 286 292 292 298 298 303 303 arg_len 000634 automatic fixed bin(21,0) dcl 1274 set ref 45 48 48 48 53 53 58 58 58 63 63 63 68 68 68 73 73 76 76 100 100 107 107 110 114 117 117 144 168 174 179 212 239 274 280 280 286 286 292 292 298 298 303 303 1207* arg_num parameter fixed bin(17,0) dcl 1205 set ref 1203 1207* arg_ptr 000636 automatic pointer dcl 1275 set ref 45 48 48 48 53 53 58 58 58 63 63 63 68 68 68 73 76 100 100 107 107 110 114 117 144 168 174 179 212 239 274 280 280 286 286 292 292 298 298 303 303 1207* arg_str_ptr parameter pointer dcl 93 ref 90 96 arg_used 000640 automatic bit(1) unaligned dcl 1276 set ref 145* 146 213* 214 240* 241 bit_count 7(12) 000112 automatic fixed bin(24,0) level 3 packed unsigned unaligned dcl 1231 set ref 1195 blak 1(09) 000626 automatic char(2) initial level 2 packed unaligned dcl 1261 set ref 1261* c 000641 automatic fixed bin(17,0) dcl 1277 set ref 470* 472* 493* 495* 641* 643* 661* 663* 998* 1000* 1018* 1020* cd parameter fixed bin(35,0) dcl 1155 set ref 1153 1159* char builtin function dcl 1278 ref 395 1208 clock builtin function dcl 1279 ref 396 455 979 code 000642 automatic fixed bin(35,0) dcl 1280 set ref 10* 11 11* 35* 36 36* 346* 347 348 513* 514 514* 961* 963 963* 1185* 1186 1186* 1188* 1190 1190* 1207* 1208 1208* colon 0(18) 000626 automatic char(1) initial level 2 packed unaligned dcl 1261 set ref 1261* com_err_ 000060 constant entry external dcl 1156 ref 1159 cu_$arg_count 000012 constant entry external dcl 1281 ref 35 cu_$arg_ptr 000014 constant entry external dcl 1282 ref 1207 cursor_name based char(32) level 2 dcl 2-5 set ref 395* 609* 715* cursor_ptr 14 based pointer level 2 dcl 2-5 set ref 403* 424 425 426 475 475 498 500 1110 1111 data 000643 automatic varying char(70) dcl 1283 set ref 598* 600* 602* 602 606* 606 609* database_dir_path 6 based varying char(168) level 2 dcl 5-6 ref 332 340 decode_clock_value_$date_time 000056 constant entry external dcl 1366 ref 961 delete_arg 000436 automatic structure level 1 dcl 1257 set ref 198* 213 213 delete_args_done 000667 automatic bit(1) unaligned dcl 1285 set ref 205* 207 214* 216* delete_sw 000670 automatic bit(1) unaligned dcl 1286 set ref 24* 69* 83 deleted_one 000666 automatic bit(1) unaligned dcl 1284 set ref 1068* 1075* 1090 1118* desc_sw 0(01) based bit(1) level 2 in structure "std_arg" packed unaligned dcl 1243 in procedure "vrmm" set ref 118* desc_sw 0(01) 000532 automatic bit(1) level 2 in structure "reset_arg" packed unaligned dcl 1258 in procedure "vrmm" set ref 981 985 989 1012 desc_sw 0(01) 000152 automatic bit(1) level 2 in structure "meter_arg" packed unaligned dcl 1254 in procedure "vrmm" set ref 446 451 459 489 desc_sw 0(01) 000342 automatic bit(1) level 2 in structure "print_arg" packed unaligned dcl 1256 in procedure "vrmm" set ref 633 655 desc_sw 0(01) 000436 automatic bit(1) level 2 in structure "delete_arg" packed unaligned dcl 1257 in procedure "vrmm" set ref 1048 1054 1070 desc_sw 0(01) 000246 automatic bit(1) level 2 in structure "list_arg" packed unaligned dcl 1255 in procedure "vrmm" set ref 532 536 563 di 001416 automatic fixed bin(17,0) dcl 1100 set ref 1105* 1108* dir 11 based char(168) level 3 in structure "std_arg" packed unaligned dcl 1243 in procedure "vrmm" set ref 367 1185* 1188* 1190 dir 11 000152 automatic char(168) level 3 in structure "meter_arg" packed unaligned dcl 1254 in procedure "vrmm" set ref 340* dn parameter fixed bin(17,0) dcl 250 in procedure "process_print_args" set ref 248 262 271 271 277* 283* 283 289* 289 295* 295 300* 300 305* 305 dn parameter fixed bin(17,0) dcl 196 in procedure "process_delete_args" set ref 194 200 209 209 213* dom 000671 automatic fixed bin(17,0) dcl 1287 set ref 961* dot 2(09) 000626 automatic char(1) initial level 2 packed unaligned dcl 1261 set ref 1261* dow 000672 automatic fixed bin(17,0) dcl 1288 set ref 961* dx 000673 automatic fixed bin(17,0) dcl 1289 set ref 432* 433 433* 1102* 1105 1108 empty builtin function dcl 1290 ref 13 ent 63 based char(32) level 3 in structure "std_arg" packed unaligned dcl 1243 in procedure "vrmm" set ref 366 1185* 1188* 1190 ent 63 000152 automatic char(32) level 3 in structure "meter_arg" packed unaligned dcl 1254 in procedure "vrmm" set ref 341* err_cd parameter fixed bin(35,0) dcl 1169 ref 1167 1171 err_msg parameter char unaligned dcl 1157 set ref 1153 1159* error_table_$bad_arg 000016 external static fixed bin(35,0) dcl 1291 set ref 76* 114* 459* 536* 989* 1054* error_table_$bad_subr_arg 000020 external static fixed bin(35,0) dcl 1292 set ref 73* error_table_$dirseg 000022 external static fixed bin(35,0) dcl 1293 set ref 1195* error_table_$link 000024 external static fixed bin(35,0) dcl 1294 set ref 1192* error_table_$noarg 000026 external static fixed bin(35,0) dcl 1295 set ref 110* 981* 1048* error_table_$too_many_names 000030 external static fixed bin(35,0) dcl 1296 set ref 361* 389 error_table_$wrong_no_of_args 000032 external static fixed bin(35,0) dcl 1297 set ref 38* expand_pathname_ 000034 constant entry external dcl 1298 ref 1185 file_uid 3 based bit(36) level 2 dcl 5-6 ref 342 fixed builtin function dcl 1299 ref 13 get_shortest_path_ 000036 constant entry external dcl 1300 ref 583 686 get_temp_segment_ 000040 constant entry external dcl 1301 ref 10 gpd_arg_ptr parameter pointer dcl 1181 ref 1178 1183 h 1 000124 automatic char(27) level 2 packed unaligned dcl 1233 set ref 724* 733* 742* 751* 760* 772* 784* 797* 809* 821* 832* 847* 859* 871* 883* 894* 902* 910* 919* hcs_$status_long 000042 constant entry external dcl 1302 ref 1188 hour 000674 automatic fixed bin(17,0) dcl 1303 set ref 961* 965 hr 000626 automatic picture(2) level 2 packed unaligned dcl 1261 set ref 965* i 000675 automatic fixed bin(17,0) dcl 1304 set ref 468* 470 472* 637* 641 643 644* 1081* 1084* in_path parameter char unaligned dcl 1180 set ref 1178 1185* 1186* 1192* 1195* in_time parameter fixed bin(71,0) dcl 956 set ref 954 961* in_vcpu parameter float bin(63) dcl 940 set ref 938 945* ioa_ 000044 constant entry external dcl 1305 ref 540 544 548 572 576 585 590 609 671 692 715 721 729 738 747 756 765 777 789 802 814 826 840 852 864 876 888 899 907 915 924 993 1027 1058 1090 ioa_$rsnnl 000046 constant entry external dcl 1306 ref 934 945 key_hits 44 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 818 822* key_hits 112 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 824* keys_compared 42 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 806 810* keys_compared 110 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 812* keys_read 40 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 794 798* keys_read 106 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 800* l 000676 automatic fixed bin(17,0) dcl 1307 set ref 551* 553* last based char(20) unaligned dcl 1308 set ref 718* 725* 734* 743* 752* 761* 773* 785* 798* 810* 822* 834* 836* 848* 860* 872* 884* 895* 903* 911* 920* last_call_stats 16 based structure level 2 dcl 2-5 set ref 398* 1040* last_print_path 000677 automatic char(168) unaligned dcl 1309 set ref 639* 659* 691 693* last_time_of_stats 16 based fixed bin(71,0) level 3 dcl 2-5 set ref 602 605* 684 725* lc 000751 automatic bit(1) unaligned dcl 1310 set ref 698* 699* 702 718 725 734 743 752 761 770 773 781 785 794 798 806 810 818 822 833 844 848 856 860 868 872 880 884 895 903 911 920 ld 001300 automatic fixed bin(17,0) dcl 580 set ref 594* 596* list_arg 000246 automatic structure level 1 dcl 1255 set ref 130* 145 145 list_args_done 000753 automatic bit(1) unaligned dcl 1312 set ref 137* 139 146* 148* list_path 000754 automatic char(168) unaligned dcl 1313 set ref 583* 585* list_sw 001026 automatic bit(1) unaligned dcl 1314 set ref 26* 49* 80 listed_one 000752 automatic bit(1) unaligned dcl 1311 set ref 559* 572 611* ln parameter fixed bin(17,0) dcl 128 set ref 126 132 141 141 145* long 4 000112 automatic structure level 2 dcl 1231 ltrim builtin function dcl 1315 ref 395 946 1208 meter_arg 000152 automatic structure level 1 dcl 1254 set ref 157* 171 171 260* 332 332 343 343 510 510 meter_args_done 001027 automatic bit(1) unaligned dcl 1316 set ref 161* 163 172* 185* 187* meter_info based structure level 1 dcl 1-5 meter_info_ptr 000100 automatic pointer dcl 1-3 set ref 12* 13 13 15 16 17 19* 325* 338 361 363 364 366 367 368 369 370 389 392 394 394 395 401 401 418 420 422 428 432 433 433 436 436 463 464 468 470 472 493 495 540 540 544 548 551 561 583 585 588 594 596 637 641 643 653 661 663 686 688 993 996 998 1000 1010 1018 1020 1058 1061 1081 1105 1108 1116 1140 1142 meter_on 0(01) based bit(1) level 2 packed unaligned dcl 1-5 set ref 15* 338 464* 540 544 meter_on_sw 001030 automatic bit(1) dcl 1317 set ref 27* 176* 181* 448* 453* 455 463 464 465 474 475 477 497 499 500 meter_ptr 20 based pointer level 2 dcl 4-7 set ref 426* 1108* 1113* meter_ptrs 66 based pointer array level 3 dcl 1-5 set ref 370* 401* 422 472 495 596 643 663* 1000* 1020* 1108 meter_start_time 10 based fixed bin(71,0) level 2 dcl 2-5 set ref 396* 477 477* 727* 1039* meter_starting_time 001032 automatic fixed bin(71,0) dcl 1318 set ref 455* 477 979* 1039 meter_sw 2(01) based bit(1) level 3 in structure "vrm_cursor" packed unaligned dcl 4-7 in procedure "vrmm" set ref 425* 475* 500* 1112* meter_sw 001034 automatic bit(1) unaligned dcl 1319 in procedure "vrmm" set ref 29* 54* 79 metering 12 based bit(1) level 3 packed unaligned dcl 2-5 set ref 397* 474* 497* 499* 516* 598 micro 2(18) 000626 automatic picture(6) level 2 packed unaligned dcl 1261 set ref 968* micro_sec 001036 automatic fixed bin(71,0) dcl 1320 set ref 961* 968 min 0(27) 000626 automatic picture(2) level 2 packed unaligned dcl 1261 set ref 966* minute 001040 automatic fixed bin(17,0) dcl 1321 set ref 961* 966 ml parameter fixed bin(17,0) dcl 581 ref 578 583 585 588 594 596 mn parameter fixed bin(17,0) dcl 155 set ref 153 159 165 165 171* 177* 177 182* 182 month 001041 automatic fixed bin(17,0) dcl 1322 set ref 961* mx 001042 automatic fixed bin(17,0) dcl 1323 set ref 420* 422* n 001043 automatic fixed bin(17,0) dcl 1324 set ref 41* 43* 50* 55* 60* 65* 70* 1208 nargs 001044 automatic fixed bin(17,0) dcl 1325 set ref 35* 38 41 110 132 141 159 165 200 209 227 236 262 271 non_key_compares 46 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 868 872* non_key_compares 114 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 874* non_key_hits 50 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 880 884* non_key_hits 116 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 886* null builtin function dcl 1326 ref 9 323 370 383 424 426 475 498 513 513 1110 1113 1188 1188 num_rels 1 based fixed bin(17,0) level 2 dcl 1-5 set ref 17* 361 363 364* 418 432 436* 436 468 548 551 561 637 653 993 996 1010 1058 1061 1081 1140 num_times_search_called 30 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 844 848* num_times_search_called 76 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 850* number_items_returned 122 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 897* number_items_returned 54 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 895* number_meters 65 based fixed bin(17,0) array level 3 dcl 1-5 set ref 368* 389 394* 394 395 401 420 470 493 588 594 641 661 998 1018 1105 number_times_locked 72 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 754* number_times_locked 24 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 752* number_times_used 74 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 763* number_times_used 26 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 761* number_tuples_deleted 56 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 903* number_tuples_deleted 124 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 905* number_tuples_modified 126 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 913* number_tuples_modified 60 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 911* number_tuples_stored 130 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 922* number_tuples_stored 62 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 920* on_arg 001045 automatic bit(1) unaligned dcl 1327 set ref 28* 175* 180* 446 453 open_info_ptr 4 based pointer level 2 dcl 4-7 ref 329 out_time parameter char(20) unaligned dcl 957 set ref 954 970* out_vcpu parameter char(20) unaligned dcl 941 set ref 938 946* out_vcpu_len 001346 automatic fixed bin(21,0) dcl 942 set ref 945* page_faults 70 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 745* page_faults 22 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 743* path_desc 11 000152 automatic structure level 2 in structure "meter_arg" unaligned dcl 1254 in procedure "vrmm" path_desc 11 based structure level 2 in structure "std_arg" unaligned dcl 1243 in procedure "vrmm" path_desc 11 000532 automatic structure level 2 in structure "reset_arg" unaligned dcl 1258 in procedure "vrmm" path_desc 11 000246 automatic structure level 2 in structure "list_arg" unaligned dcl 1255 in procedure "vrmm" path_desc 11 000436 automatic structure level 2 in structure "delete_arg" unaligned dcl 1257 in procedure "vrmm" path_desc 11 000342 automatic structure level 2 in structure "print_arg" unaligned dcl 1256 in procedure "vrmm" print_arg 000342 automatic structure level 1 dcl 1256 set ref 277 277 print_args_done 001047 automatic bit(1) unaligned dcl 1329 set ref 267* 269 278* 308* 310* print_last_call_arg_sw 001050 automatic bit(1) unaligned dcl 1330 set ref 254* 281* print_last_call_sw 001051 automatic bit(1) unaligned dcl 1331 set ref 255* 282* 625* 630 630* 698 print_long_sw 001052 automatic bit(1) unaligned dcl 1332 set ref 22* 258* 263* 299* 304* 623 print_path 001053 automatic char(168) unaligned dcl 1333 set ref 686* 688* 688 691 692* 693 print_search_stat_arg_sw 001125 automatic bit(1) unaligned dcl 1334 set ref 253* 294* print_search_stat_sw 001126 automatic bit(1) unaligned dcl 1335 set ref 252* 293* 626* 768 print_sw 001127 automatic bit(1) unaligned dcl 1336 set ref 25* 64* 81 print_total_arg_sw 001130 automatic bit(1) unaligned dcl 1337 set ref 257* 288* print_total_sw 001131 automatic bit(1) unaligned dcl 1338 set ref 256* 287* 624* 630 700 printed_one 001046 automatic bit(1) unaligned dcl 1328 set ref 629* 671 696* r 001132 automatic fixed bin(17,0) dcl 1340 set ref 996* 998 1000* 1061* 1063* records_searched 100 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 862* records_searched 32 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 856 860* rel builtin function dcl 1341 ref 13 rel_dir 12 based char(168) array level 3 packed unaligned dcl 1-5 set ref 367* 583* 686* rel_info 2 based structure array level 2 dcl 1-5 set ref 433* 433 rel_name 2 based char(32) array level 3 dcl 1-5 set ref 366* 585* 688 relation_name 1 000152 automatic char(32) level 2 in structure "meter_arg" packed unaligned dcl 1254 in procedure "vrmm" set ref 514 relation_name 61 based varying char(30) level 2 in structure "vrm_open_info" dcl 5-6 in procedure "vrmm" ref 332 341 reset_all_sw 001133 automatic bit(1) unaligned dcl 1342 set ref 32* reset_arg 000532 automatic structure level 1 dcl 1258 set ref 225* 240 240 reset_args_done 001134 automatic bit(1) unaligned dcl 1343 set ref 232* 234 241* 243* reset_one 001135 automatic bit(1) unaligned dcl 1344 set ref 1007* 1027 1042* reset_sw 001136 automatic bit(1) unaligned dcl 1345 set ref 23* 33* 59* 82 return_value 001426 automatic fixed bin(17,0) dcl 1130 set ref 1135* 1140 1142* 1146 rl_ix 001230 automatic fixed bin(17,0) dcl 357 set ref 363* 364 366 367 368 369 370 rn parameter fixed bin(17,0) dcl 223 set ref 221 227 236 236 240* rtrim builtin function dcl 1346 ref 332 688 1190 rx 001137 automatic fixed bin(17,0) dcl 1347 set ref 387* 389 394 394 395 401 401 416* 418 420 422 432 s 001427 automatic fixed bin(17,0) dcl 1131 in procedure "locate_uid_in_rel_list" set ref 1140* 1142 1142* s 000124 automatic structure level 1 packed unaligned dcl 1233 in procedure "vrmm" set ref 717* 721 721 723* 729 729 732* 738 738 741* 747 747 750* 756 756 759* 765 765 771* 777 777 783* 789 789 796* 802 802 808* 814 814 820* 826 826 831* 840 840 846* 852 852 858* 864 864 870* 876 876 882* 888 888 893* 899 899 901* 907 907 909* 915 915 918* 924 924 s1 7(27) 000124 automatic char(20) level 2 packed unaligned dcl 1233 set ref 703 718 725 734 743 752 761 773 785 798 810 822 834 836 848 860 872 884 895 903 911 920 s2 15(09) 000124 automatic char(20) level 2 packed unaligned dcl 1233 set ref 702 saved_meter_seg_ptr 000010 internal static pointer initial dcl 1348 set ref 9 10* 12 19 325 sb 000112 automatic structure level 1 unaligned dcl 1231 set ref 1188 1188 search_uid parameter bit(36) dcl 1133 ref 1126 1142 sec 1(27) 000626 automatic picture(2) level 2 packed unaligned dcl 1261 set ref 967* second 001140 automatic fixed bin(17,0) dcl 1349 set ref 961* 967 seek_heads 102 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 775* seek_heads 34 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 770 773* short 000112 automatic structure level 2 dcl 1231 sn parameter fixed bin(17,0) dcl 92 set ref 90 103* 103 108* 108 110 113 120* 120 special_seek_heads 36 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 781 785* special_seek_heads 104 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 787* start_index parameter fixed bin(17,0) dcl 1129 ref 1126 1136 1137 statistics based structure level 1 unaligned dcl 2-15 status_branch based structure level 1 dcl 3-8 std_arg based structure level 1 dcl 1243 set ref 117 117 std_arg_ptr 000150 automatic pointer dcl 1241 set ref 96* 101 117 117 118 359* 366 367 369 1183* 1185 1185 1188 1188 1190 1190 1199 string builtin function dcl 1350 ref 721 721 729 729 738 738 747 747 756 756 765 765 777 777 789 789 802 802 814 814 826 826 840 840 852 852 864 864 876 876 888 888 899 899 907 907 915 915 924 924 970 substr builtin function dcl 1351 ref 45 114 144 168 212 239 274 switches 12 based structure level 2 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" switches 2 based structure level 2 in structure "vrm_cursor" dcl 4-7 in procedure "vrmm" sx 001430 automatic fixed bin(17,0) dcl 1132 set ref 1136* 1137* 1140 sys_info$max_seg_size 000050 external static fixed bin(35,0) dcl 1352 ref 13 temp 001347 automatic char(12) unaligned dcl 943 set ref 945* 946 time 001141 automatic char(20) unaligned dcl 1353 set ref 605* 606 tm 000626 automatic structure level 1 packed unaligned dcl 1261 set ref 970 tot based char(20) unaligned dcl 1354 set ref 719* 727* 736* 745* 754* 763* 775* 787* 800* 812* 824* 838* 850* 862* 874* 886* 897* 905* 913* 922* tot_ptr 001146 automatic pointer dcl 1355 set ref 702* 703* 719 727 736 745 754 763 775 787 800 812 824 838 850 862 874 886 897 905 913 922 total_stats 64 based structure level 2 dcl 2-5 set ref 399* 1041* tt 001150 automatic bit(1) unaligned dcl 1356 set ref 701* 705* 719 727 736 745 754 763 770 775 781 787 794 800 806 812 818 824 838 844 850 856 862 868 874 880 886 897 905 913 922 type 000112 automatic fixed bin(2,0) level 3 packed unsigned unaligned dcl 1231 set ref 1192 1194 uid 73 000342 automatic bit(36) level 3 in structure "print_arg" dcl 1256 in procedure "vrmm" set ref 655* uid 64 based bit(36) array level 3 in structure "meter_info" dcl 1-5 in procedure "vrmm" set ref 369* 1142 uid 73 based bit(36) level 3 in structure "std_arg" dcl 1243 in procedure "vrmm" set ref 369 1199* uid 11 000112 automatic bit(36) level 3 in structure "sb" packed unaligned dcl 1231 in procedure "vrmm" set ref 1199 uid 73 000246 automatic bit(36) level 3 in structure "list_arg" dcl 1255 in procedure "vrmm" set ref 563* uid 73 000532 automatic bit(36) level 3 in structure "reset_arg" dcl 1258 in procedure "vrmm" set ref 1012* uid 73 000152 automatic bit(36) level 3 in structure "meter_arg" dcl 1254 in procedure "vrmm" set ref 335* 342* 490* uid 73 000436 automatic bit(36) level 3 in structure "delete_arg" dcl 1257 in procedure "vrmm" set ref 1071* unspec builtin function dcl 1357 set ref 130* 157* 198* 225* 260* upper_limit_found_count 120 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 838* upper_limit_found_count 52 based fixed bin(70,0) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 834 used_it_sw 001151 automatic bit(1) unaligned dcl 1358 set ref 170* 171* 172 276* 277* 278 used_sw parameter bit(1) unaligned dcl 94 set ref 90 98* 102* 109* v_in parameter fixed bin(70,0) dcl 930 set ref 928 934* v_out parameter char(20) unaligned dcl 931 set ref 928 934* v_out_len 001336 automatic fixed bin(21,0) dcl 932 set ref 934* vcpu_time 66 based float bin(63) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 736* vcpu_time 20 based float bin(63) level 3 in structure "vrm_meter" dcl 2-5 in procedure "vrmm" set ref 734* vrm_attr_info based structure level 1 unaligned dcl 7-28 vrm_create_cursor$metering_off 000052 constant entry external dcl 1359 ref 466 vrm_create_cursor$metering_on 000054 constant entry external dcl 1360 ref 465 vrm_cursor based structure level 1 dcl 4-7 vrm_cursor_ptr 000104 automatic pointer dcl 4-5 set ref 327* 329 330 346* 1108 1111* 1112 1113 vrm_meter based structure level 1 dcl 2-5 set ref 392 428 1116 vrm_meter_ptr 000102 automatic pointer dcl 2-3 set ref 346* 347 392* 395 396 397 398 399 401 403 404 422* 424 425 426 428 472* 474 475 475 477 477 495* 497 498 499 500 513* 516 596* 598 602 605 609 643* 644* 682* 684 715 725 727 734 736 743 745 752 754 761 763 770 773 775 781 785 787 794 798 800 806 810 812 818 822 824 834 838 844 848 850 856 860 862 868 872 874 880 884 886 895 897 903 905 911 913 920 922 1037* 1039 1040 1041 1110 1111 1116 vrm_open_info based structure level 1 dcl 5-6 vrm_open_info_ptr 000106 automatic pointer dcl 5-28 set ref 329* 332 332 340 341 342 vrm_rel_desc_ptr 000110 automatic pointer dcl 7-41 set ref 330* vrm_relation_desc_ptr 6 based pointer level 2 dcl 4-7 ref 330 work_area based area level 2 dcl 1-5 set ref 13* 13 392 428 1116 x 001152 automatic fixed bin(17,0) dcl 1361 set ref 335* 337 343* 346* 487* 490* 491 493 495 510* 513* 560* 561 561 563* 563* 566 567* 568* 568 651* 653 653 655* 655* 658 661 663* 663 666* 666 1009* 1010 1010 1012* 1012* 1015 1018 1020 1023* 1023 1071* 1072 1074* year 001153 automatic fixed bin(17,0) dcl 1362 set ref 961* zone 001154 automatic char(3) unaligned dcl 1363 set ref 959* 961* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Segment internal static fixed bin(17,0) initial dcl 3-56 VRM_COLLECTION_KEY_HEAD internal static char(16) initial unaligned dcl 6-26 VRM_OPEN_INFO_VERSION_1 internal static char(8) initial unaligned dcl 5-27 VRM_REL_DESC_KEY internal static varying char(256) initial dcl 7-46 VRM_REL_DESC_RECORD_ID internal static bit(12) initial unaligned dcl 7-43 VRM_REL_DESC_VERSION_1 internal static char(8) initial unaligned dcl 7-44 status_area_ptr automatic pointer dcl 3-47 status_entry_names based char(32) array dcl 3-47 status_link based structure level 1 dcl 3-38 status_pathname based char dcl 3-47 status_ptr automatic pointer dcl 3-47 vci_no_of_attributes automatic fixed bin(17,0) dcl 6-23 voi_no_of_index_collections automatic fixed bin(17,0) dcl 5-29 vrd_no_of_attrs automatic fixed bin(17,0) dcl 7-42 vrm_attr_info_ptr automatic pointer dcl 7-45 vrm_collection_header_type internal static bit(4) initial unaligned dcl 6-24 vrm_collection_info based structure level 1 dcl 6-6 vrm_collection_info_ptr automatic pointer dcl 6-21 vrm_rel_desc based structure level 1 unaligned dcl 7-5 NAMES DECLARED BY EXPLICIT CONTEXT. add_meter 001401 constant entry external dcl 315 add_meter_entry 002623 constant entry internal dcl 374 ref 346 513 add_meter_exit 001545 constant label dcl 351 ref 338 add_rel_list_ent 002535 constant entry internal dcl 353 ref 343 510 delete 007545 constant entry internal dcl 1046 ref 83 delete_rel_list_ent 003003 constant entry internal dcl 412 ref 1063 1074 delete_the_meter 007726 constant entry internal dcl 1096 ref 1084 error 010043 constant entry internal dcl 1153 ref 11 36 38 73 76 110 114 459 514 536 963 981 989 1048 1054 1186 1190 1192 1195 1208 exit 001374 constant label dcl 85 set ref 1160 format_time 007077 constant entry internal dcl 954 ref 605 725 727 format_val 006772 constant entry internal dcl 928 ref 743 745 752 754 761 763 773 775 785 787 798 800 810 812 822 824 838 848 850 860 862 872 874 884 886 895 897 903 905 911 913 920 922 format_vcpu 007025 constant entry internal dcl 938 ref 734 736 get_arg 010404 constant entry internal dcl 1203 ref 43 113 141 165 209 236 271 get_path_desc 010111 constant entry internal dcl 1178 ref 117 332 list 003411 constant entry internal dcl 530 ref 80 list_display 003620 constant entry internal dcl 578 ref 553 567 locate_uid_in_rel_list 010000 constant entry internal dcl 1126 ref 335 490 563 655 1012 1071 meter 003101 constant entry internal dcl 444 ref 79 print 004073 constant entry internal dcl 621 ref 81 print_stats 004263 constant entry internal dcl 677 ref 644 663 print_the_meters 004445 constant entry internal dcl 713 ref 707 process_delete_args 002151 constant entry internal dcl 194 ref 70 process_list_args 001745 constant entry internal dcl 126 ref 50 process_meter_args 002033 constant entry internal dcl 153 ref 55 process_print_args 002325 constant entry internal dcl 248 ref 65 process_reset_args 002237 constant entry internal dcl 221 ref 60 reset 007222 constant entry internal dcl 977 ref 82 reset_the_meter 007457 constant entry internal dcl 1033 ref 1000 1020 std_args 001546 constant entry internal dcl 90 ref 145 171 213 240 277 sub_error 010102 constant entry internal dcl 1167 ref 361 vrm_meter 000747 constant entry external dcl 7 vrmm 000737 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11222 11304 10726 11232 Length 11704 10726 62 363 274 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vrmm 1366 external procedure is an external procedure. std_args internal procedure shares stack frame of external procedure vrmm. process_list_args internal procedure shares stack frame of external procedure vrmm. process_meter_args internal procedure shares stack frame of external procedure vrmm. process_delete_args internal procedure shares stack frame of external procedure vrmm. process_reset_args internal procedure shares stack frame of external procedure vrmm. process_print_args internal procedure shares stack frame of external procedure vrmm. add_rel_list_ent internal procedure shares stack frame of external procedure vrmm. add_meter_entry internal procedure shares stack frame of external procedure vrmm. delete_rel_list_ent internal procedure shares stack frame of external procedure vrmm. meter internal procedure shares stack frame of external procedure vrmm. list internal procedure shares stack frame of external procedure vrmm. list_display internal procedure shares stack frame of external procedure vrmm. print internal procedure shares stack frame of external procedure vrmm. print_stats internal procedure shares stack frame of external procedure vrmm. print_the_meters internal procedure shares stack frame of external procedure vrmm. format_val internal procedure shares stack frame of external procedure vrmm. format_vcpu internal procedure shares stack frame of external procedure vrmm. format_time internal procedure shares stack frame of external procedure vrmm. reset internal procedure shares stack frame of external procedure vrmm. reset_the_meter internal procedure shares stack frame of external procedure vrmm. delete internal procedure shares stack frame of external procedure vrmm. delete_the_meter internal procedure shares stack frame of external procedure vrmm. locate_uid_in_rel_list internal procedure shares stack frame of external procedure vrmm. error 80 internal procedure is called during a stack extension. sub_error internal procedure shares stack frame of external procedure vrmm. get_path_desc 117 internal procedure is called during a stack extension. get_arg internal procedure shares stack frame of external procedure vrmm. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 saved_meter_seg_ptr vrmm STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vrmm 000100 meter_info_ptr vrmm 000102 vrm_meter_ptr vrmm 000104 vrm_cursor_ptr vrmm 000106 vrm_open_info_ptr vrmm 000110 vrm_rel_desc_ptr vrmm 000112 sb vrmm 000124 s vrmm 000150 std_arg_ptr vrmm 000152 meter_arg vrmm 000246 list_arg vrmm 000342 print_arg vrmm 000436 delete_arg vrmm 000532 reset_arg vrmm 000626 tm vrmm 000632 all_rel_arg vrmm 000633 all_rel_sw vrmm 000634 arg_len vrmm 000636 arg_ptr vrmm 000640 arg_used vrmm 000641 c vrmm 000642 code vrmm 000643 data vrmm 000666 deleted_one vrmm 000667 delete_args_done vrmm 000670 delete_sw vrmm 000671 dom vrmm 000672 dow vrmm 000673 dx vrmm 000674 hour vrmm 000675 i vrmm 000676 l vrmm 000677 last_print_path vrmm 000751 lc vrmm 000752 listed_one vrmm 000753 list_args_done vrmm 000754 list_path vrmm 001026 list_sw vrmm 001027 meter_args_done vrmm 001030 meter_on_sw vrmm 001032 meter_starting_time vrmm 001034 meter_sw vrmm 001036 micro_sec vrmm 001040 minute vrmm 001041 month vrmm 001042 mx vrmm 001043 n vrmm 001044 nargs vrmm 001045 on_arg vrmm 001046 printed_one vrmm 001047 print_args_done vrmm 001050 print_last_call_arg_sw vrmm 001051 print_last_call_sw vrmm 001052 print_long_sw vrmm 001053 print_path vrmm 001125 print_search_stat_arg_sw vrmm 001126 print_search_stat_sw vrmm 001127 print_sw vrmm 001130 print_total_arg_sw vrmm 001131 print_total_sw vrmm 001132 r vrmm 001133 reset_all_sw vrmm 001134 reset_args_done vrmm 001135 reset_one vrmm 001136 reset_sw vrmm 001137 rx vrmm 001140 second vrmm 001141 time vrmm 001146 tot_ptr vrmm 001150 tt vrmm 001151 used_it_sw vrmm 001152 x vrmm 001153 year vrmm 001154 zone vrmm 001230 rl_ix add_rel_list_ent 001300 ld list_display 001336 v_out_len format_val 001346 out_vcpu_len format_vcpu 001347 temp format_vcpu 001416 di delete_the_meter 001426 return_value locate_uid_in_rel_list 001427 s locate_uid_in_rel_list 001430 sx locate_uid_in_rel_list THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return tra_ext shorten_stack ext_entry int_entry_desc alloc_based free_based empty clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr decode_clock_value_$date_time expand_pathname_ get_shortest_path_ get_temp_segment_ hcs_$status_long ioa_ ioa_$rsnnl vrm_create_cursor$metering_off vrm_create_cursor$metering_on THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bad_subr_arg error_table_$dirseg error_table_$link error_table_$noarg error_table_$too_many_names error_table_$wrong_no_of_args sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1261 000726 7 000736 9 000755 10 000762 11 001002 12 001023 13 001026 15 001045 16 001047 17 001051 18 001053 19 001054 22 001056 23 001057 24 001060 25 001061 26 001062 27 001063 28 001064 29 001065 30 001066 31 001067 32 001070 35 001072 36 001103 38 001127 41 001152 43 001161 45 001163 48 001170 49 001205 50 001207 51 001211 53 001212 54 001222 55 001224 56 001226 58 001227 59 001243 60 001245 61 001247 63 001250 64 001264 65 001266 66 001270 68 001271 69 001305 70 001307 71 001311 73 001312 75 001332 76 001333 77 001353 79 001355 80 001360 81 001363 82 001366 83 001371 85 001374 315 001375 322 001407 323 001411 325 001413 327 001416 329 001421 330 001423 332 001425 335 001503 337 001507 338 001511 340 001514 341 001521 342 001525 343 001527 346 001533 347 001535 348 001543 351 001545 90 001546 96 001550 98 001553 100 001557 101 001571 102 001573 103 001576 104 001577 107 001600 108 001610 109 001611 110 001614 113 001662 114 001671 117 001717 118 001740 120 001742 124 001744 126 001745 130 001747 132 001752 133 001756 134 001760 137 001761 139 001762 141 001764 142 001777 144 002000 145 002005 146 002022 147 002026 148 002027 149 002031 151 002032 153 002033 157 002035 159 002040 161 002045 163 002046 165 002050 166 002063 168 002064 170 002071 171 002072 172 002107 174 002114 175 002122 176 002124 177 002125 178 002127 179 002130 180 002134 181 002136 182 002137 183 002141 185 002142 186 002144 187 002145 188 002147 190 002150 194 002151 198 002153 200 002156 201 002162 202 002164 205 002165 207 002166 209 002170 210 002203 212 002204 213 002211 214 002226 215 002232 216 002233 217 002235 219 002236 221 002237 225 002241 227 002244 228 002250 229 002252 232 002253 234 002254 236 002256 237 002271 239 002272 240 002277 241 002314 242 002320 243 002321 244 002323 246 002324 248 002325 252 002327 253 002330 254 002331 255 002332 256 002333 257 002334 258 002335 260 002336 262 002341 263 002345 264 002347 267 002350 269 002351 271 002354 272 002367 274 002370 276 002375 277 002377 278 002414 280 002421 281 002433 282 002435 283 002436 284 002440 286 002441 287 002451 288 002453 289 002454 290 002456 292 002457 293 002467 294 002471 295 002472 296 002474 298 002475 299 002505 300 002507 301 002511 303 002512 304 002522 305 002523 306 002525 308 002526 309 002530 310 002531 311 002533 313 002534 353 002535 359 002537 361 002542 363 002555 364 002563 366 002564 367 002572 368 002576 369 002577 370 002601 372 002622 374 002623 383 002625 384 002627 387 002630 389 002632 392 002644 394 002654 395 002657 396 002706 397 002710 398 002712 399 002740 401 002766 403 002773 404 003000 409 003002 412 003003 416 003005 418 003007 420 003013 422 003023 424 003034 425 003040 426 003043 428 003045 430 003050 432 003052 433 003063 434 003073 436 003075 438 003100 444 003101 446 003102 447 003111 448 003113 451 003115 453 003122 455 003126 457 003132 459 003135 463 003160 464 003164 465 003171 466 003201 468 003206 470 003217 472 003231 474 003242 475 003246 477 003260 481 003266 482 003270 484 003272 487 003273 489 003274 490 003277 491 003303 493 003305 495 003317 497 003330 498 003334 500 003340 505 003346 507 003350 510 003351 513 003355 514 003361 516 003405 526 003410 530 003411 532 003412 534 003417 536 003422 540 003445 544 003472 548 003510 551 003531 553 003537 555 003541 556 003543 559 003544 560 003545 561 003547 563 003555 566 003562 567 003564 568 003566 571 003567 572 003570 576 003606 618 003617 578 003620 583 003622 585 003644 588 003676 590 003705 591 003721 594 003722 596 003731 598 003743 600 003754 602 003761 605 003776 606 004006 607 004041 609 004042 611 004066 613 004070 616 004072 621 004073 623 004074 624 004076 625 004100 626 004101 629 004102 630 004103 633 004111 635 004116 637 004121 639 004131 641 004134 643 004145 644 004156 646 004160 647 004162 649 004164 651 004165 653 004167 655 004175 658 004202 659 004204 661 004207 663 004221 664 004240 666 004242 669 004243 671 004244 673 004262 677 004263 682 004265 684 004270 686 004273 688 004315 691 004362 692 004367 693 004407 696 004412 698 004414 699 004421 700 004422 701 004424 702 004426 703 004435 704 004441 705 004442 707 004443 709 004444 713 004445 715 004446 717 004465 718 004503 719 004510 721 004516 723 004540 724 004546 725 004551 727 004566 729 004601 732 004623 733 004641 734 004644 736 004661 738 004674 741 004716 742 004734 743 004737 745 004754 747 004767 750 005011 751 005027 752 005032 754 005047 756 005062 759 005104 760 005122 761 005125 763 005142 765 005155 768 005177 770 005201 771 005210 772 005226 773 005231 775 005246 777 005261 781 005303 783 005312 784 005330 785 005333 787 005350 789 005363 794 005405 796 005414 797 005432 798 005435 800 005452 802 005465 806 005507 808 005516 809 005534 810 005537 812 005554 814 005567 818 005611 820 005620 821 005636 822 005641 824 005656 826 005671 831 005713 832 005731 833 005734 834 005736 836 005745 838 005750 840 005763 844 006005 846 006014 847 006032 848 006035 850 006052 852 006065 856 006107 858 006116 859 006134 860 006137 862 006154 864 006167 868 006211 870 006220 871 006236 872 006241 874 006256 876 006271 880 006313 882 006322 883 006340 884 006343 886 006360 888 006373 893 006415 894 006433 895 006436 897 006453 899 006466 901 006510 902 006526 903 006531 905 006546 907 006561 909 006603 910 006621 911 006624 913 006641 915 006654 918 006676 919 006714 920 006717 922 006734 924 006747 950 006771 928 006772 934 006774 936 007024 938 007025 945 007027 946 007057 948 007076 954 007077 959 007101 961 007103 963 007136 965 007160 966 007167 967 007176 968 007205 970 007214 972 007221 977 007222 979 007223 981 007225 985 007250 987 007255 989 007260 993 007303 996 007324 998 007333 1000 007345 1001 007362 1003 007364 1004 007366 1007 007367 1009 007370 1010 007372 1012 007377 1015 007404 1018 007406 1020 007417 1021 007434 1023 007436 1026 007437 1027 007440 1031 007456 1033 007457 1037 007461 1039 007464 1040 007466 1041 007514 1042 007542 1044 007544 1046 007545 1048 007546 1052 007571 1054 007574 1058 007617 1061 007640 1063 007647 1064 007651 1065 007653 1068 007654 1070 007655 1071 007660 1072 007664 1074 007666 1075 007670 1079 007672 1081 007673 1084 007703 1086 007705 1090 007707 1094 007725 1096 007726 1102 007730 1105 007732 1108 007743 1110 007755 1111 007762 1112 007764 1113 007766 1116 007770 1118 007773 1119 007775 1121 007777 1126 010000 1135 010002 1136 010003 1137 010010 1140 010011 1142 010023 1144 010034 1146 010036 1153 010042 1159 010056 1160 010077 1167 010102 1171 010104 1173 010107 1178 010110 1183 010124 1185 010131 1186 010155 1188 010177 1190 010244 1192 010323 1194 010352 1195 010354 1199 010377 1201 010403 1203 010404 1207 010406 1208 010423 1210 010477 ----------------------------------------------------------- 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