COMPILATION LISTING OF SEGMENT trace_tables_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 10/23/84 1251.4 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* 7* This program manages the trace and watch tables and the tab (trace 8* attributes) structures. The tables are not simple arrays. To promote 9* efficient update, each consists of two stacks, one at each end of a large 10* storage array. Entrypoints in trace_catch_ are used to access and update 11* the tables. 12* 13* Written: May 1984 by Jeffrey D. Ives. 14**/ 15 /* format: style2,ifthendo,^indnoniterdo,thendo,^inditerdo,indproc,ind2,dclind5,idind32 */ 16 17 18 trace_tables_: 19 procedure (); 20 signal error; 21 22 23 /* INITIALIZE */ 24 25 initialize: 26 entry (); 27 28 allocate tt in (trace_storage); 29 call INIT_TABLE_HEADER (tt.h, dim (tt.e, 1)); 30 trace_catch_$tt_ptr = tt_ptr; 31 32 allocate stt in (trace_storage); 33 call INIT_TABLE_HEADER (stt.h, dim (stt.e, 1)); 34 trace_$stt_ptr = stt_ptr; 35 36 allocate wt in (trace_storage); 37 call INIT_TABLE_HEADER (wt.h, dim (wt.e, 1)); 38 trace_catch_$wt_ptr = wt_ptr; 39 40 allocate swt in (trace_storage); 41 call INIT_TABLE_HEADER (swt.h, dim (swt.e, 1)); 42 trace_$swt_ptr = swt_ptr; 43 44 return; 45 46 47 INIT_TABLE_HEADER: 48 proc (table_header_o, table_dim_i); 49 dcl 1 table_header_o like table_header aligned parm; 50 dcl table_dim_i fixed bin parm; 51 unspec (table_header_o) = ""b; 52 table_header_o.version = TT_VERSION_3; 53 table_header_o.max_count = table_dim_i; 54 table_header_o.idx.high = table_dim_i; 55 return; 56 end INIT_TABLE_HEADER; 57 58 /* TRANSACTION BEGIN */ 59 60 transaction_begin: 61 entry (); 62 63 if trace_catch_$tt_ptr -> tt.h.version ^= TT_VERSION_3 64 then signal error; 65 if trace_$stt_ptr -> tt.h.version ^= TT_VERSION_3 | trace_$stt_ptr -> tt.h.count ^= 0 66 then signal error; 67 68 if trace_catch_$wt_ptr -> wt.h.version ^= TT_VERSION_3 69 then signal error; 70 if trace_$swt_ptr -> wt.h.version ^= TT_VERSION_3 | trace_$swt_ptr -> wt.h.count ^= 0 71 then signal error; 72 73 return; 74 75 76 /* TRANSACTION BEGIN FORCE is the same as TRANSACTION END */ 77 78 transaction_begin_force: /* TRANSACTION END */ 79 transaction_end: 80 entry (); 81 stt_ptr = trace_$stt_ptr; 82 if stt.h.count = -1 83 then stt.h.count = 0; /* "*" case */ 84 else 85 do stt_idx = 0 to stt.h.count - 1; 86 te = trace_catch_$table_remove (stt_ptr, 0); /* Removing the 0th one is the most efficient. */ 87 unspec (tte) = unspec (te); 88 call FREE_TAB (tte.trace_attributes_ptr); 89 end; 90 swt_ptr = trace_$swt_ptr; 91 if swt.h.count = -1 92 then swt.h.count = 0; /* "*" case */ 93 else 94 do swt_idx = 0 to swt.h.count - 1; 95 te = trace_catch_$table_remove (swt_ptr, 0); 96 end; 97 return; 98 99 100 /* ADD SPECIFIED ENTRYPOINTS */ 101 102 add_specified_eps: 103 entry (n_added_o, n_updated_o); 104 tt_ptr = trace_catch_$tt_ptr; 105 stt_ptr = trace_$stt_ptr; 106 n_added = 0; 107 n_updated = 0; 108 if stt.h.count < 0 109 then 110 do tt_idx = 0 to tt.h.count - 1; /* "*" case */ 111 te = trace_catch_$table_get (tt_ptr, tt_idx); 112 call UPDATE_TTE (te); 113 end; 114 else 115 do stt_idx = 0 to stt.h.count - 1; 116 te = trace_catch_$table_get (stt_ptr, stt_idx); 117 call UPDATE_TTE (te); 118 end; 119 n_added_o = n_added; 120 n_updated_o = n_updated; 121 return; 122 123 UPDATE_TTE: 124 proc (te_i); 125 dcl 1 te_i like te aligned parm; 126 unspec (tte) = unspec (te_i); 127 tab_ptr = tte.trace_attributes_ptr; 128 tt_idx = trace_catch_$table_seek (tt_ptr, te.key); 129 if tt_idx < 0 130 then do; /* Add it. */ 131 if tab.translator_id >= 0 /* If it can be traced. */ 132 then do; 133 if ^trace_parameters_$update_parameters (tab.parms_ptr) 134 then signal error; 135 end; 136 tab.reference_count = tab.reference_count + 1; 137 tt_idx = trace_catch_$table_add (tt_ptr, te); 138 if tt_idx < 0 139 then signal error; 140 n_added = n_added + 1; 141 end; 142 else do; /* Update it. */ 143 if tab.translator_id >= 0 /* If it can be traced. */ 144 then do; 145 if trace_parameters_$update_parameters (tab.parms_ptr) 146 then n_updated = n_updated + 1; 147 end; 148 end; 149 end UPDATE_TTE; 150 151 152 /* ADD SPECIFIED LOCATIONS */ 153 154 add_specified_locs: 155 entry (n_added_o, n_updated_o); 156 wt_ptr = trace_catch_$wt_ptr; 157 swt_ptr = trace_$swt_ptr; 158 159 n_added = 0; 160 n_updated = 0; 161 if swt.h.count < 0 162 then 163 do wt_idx = 0 to wt.h.count - 1; /* "*" case */ 164 te = trace_catch_$table_get (wt_ptr, wt_idx); 165 unspec (wte) = unspec (te); 166 if wte.old_value ^= wte.location_ptr -> based_value 167 then do; 168 call trace_catch_$table_put_data (wt_ptr, wt_idx, wte.location_ptr -> based_value); 169 n_updated = n_updated + 1; 170 end; 171 end; 172 else 173 do swt_idx = 0 to swt.h.count - 1; 174 te = trace_catch_$table_get (swt_ptr, swt_idx); 175 unspec (wte) = unspec (te); 176 wte.old_value = wte.location_ptr -> based_value; 177 wt_idx = trace_catch_$table_seek (wt_ptr, te.key); 178 if wt_idx < 0 179 then do; /* Add it. */ 180 unspec (te) = unspec (wte); 181 wt_idx = trace_catch_$table_add (wt_ptr, te); 182 if wt_idx < 0 183 then signal error; 184 n_added = n_added + 1; 185 end; 186 else do; /* Update it. */ 187 te = trace_catch_$table_get (wt_ptr, wt_idx); 188 if te.data ^= wte.old_value 189 then do; 190 call trace_catch_$table_put_data (wt_ptr, wt_idx, wte.old_value); 191 n_updated = n_updated + 1; 192 end; 193 end; 194 end; 195 196 n_added_o = n_added; 197 n_updated_o = n_updated; 198 return; 199 200 201 /* REMOVE SPECIFIED ENTRYPOINTS */ 202 203 remove_specified_eps: 204 entry (n_removed_o); 205 tt_ptr = trace_catch_$tt_ptr; 206 stt_ptr = trace_$stt_ptr; 207 n_removed = 0; 208 if stt.h.count < 0 209 then do; /* "*" case */ 210 trace_$stt_ptr = null (); /* Switch tables. */ 211 stt.h.count = 0; 212 trace_catch_$tt_ptr = stt_ptr; 213 trace_$stt_ptr = tt_ptr; 214 n_removed = tt.h.count; 215 do tt_idx = 0 to tt.h.count - 1; /* Remove the meters. */ 216 te = trace_catch_$table_get (tt_ptr, tt_idx); 217 unspec (tte) = unspec (te); 218 tab_ptr = tte.trace_attributes_ptr; 219 trace_catch_$removed = trace_catch_$removed + tab.local; 220 end; 221 end; 222 else 223 do stt_idx = 0 to stt.h.count - 1; 224 te = trace_catch_$table_get (stt_ptr, stt_idx); 225 tt_idx = trace_catch_$table_seek (tt_ptr, te.key); 226 if tt_idx >= 0 227 then do; /* Remove it. */ 228 unspec (tte) = unspec (te); 229 te = trace_catch_$table_remove (tt_ptr, tt_idx); 230 if unspec (te) ^= unspec (tte) 231 then signal error; 232 tab_ptr = tte.trace_attributes_ptr; 233 trace_catch_$removed = trace_catch_$removed + tab.local; 234 call FREE_TAB (tab_ptr); 235 n_removed = n_removed + 1; 236 end; 237 end; 238 239 n_removed_o = n_removed; 240 return; 241 242 243 /* REMOVE SPECIFIED LOCATIONS */ 244 245 remove_specified_locs: 246 entry (n_removed_o); 247 wt_ptr = trace_catch_$wt_ptr; 248 swt_ptr = trace_$swt_ptr; 249 n_removed = 0; 250 if swt.h.count < 0 251 then do; /* "*" case */ 252 trace_$swt_ptr = null (); /* Switch them. */ 253 swt.h.count = 0; 254 trace_catch_$wt_ptr = swt_ptr; 255 trace_$swt_ptr = wt_ptr; 256 n_removed = wt.h.count; 257 end; 258 else 259 do swt_idx = 0 to swt.h.count - 1; 260 te = trace_catch_$table_get (swt_ptr, swt_idx); 261 wt_idx = trace_catch_$table_seek (wt_ptr, te.key); 262 if wt_idx >= 0 263 then do; /* Remove it. */ 264 unspec (wte) = unspec (te); 265 te = trace_catch_$table_remove (wt_ptr, wt_idx); 266 if unspec (te.key) ^= unspec (wte.location_ptr) 267 then signal error; 268 n_removed = n_removed + 1; 269 end; 270 end; 271 272 n_removed_o = n_removed; 273 return; 274 275 276 /* TURN ON AND OFF SPECIFIED ENTRYPOINTS */ 277 278 turn_on_specified_eps: 279 entry (n_turned_o); 280 what_we_want = "1"b; 281 go to ON_OFF_JOIN; 282 283 284 turn_off_specified_eps: 285 entry (n_turned_o); 286 what_we_want = "0"b; 287 go to ON_OFF_JOIN; 288 289 290 ON_OFF_JOIN: 291 tt_ptr = trace_catch_$tt_ptr; 292 stt_ptr = trace_$stt_ptr; 293 294 n_turned = 0; 295 if stt.h.count < 0 296 then 297 do tt_idx = 0 to tt.h.count - 1; /* "*" case */ 298 te = trace_catch_$table_get (tt_ptr, tt_idx); 299 unspec (tte) = unspec (te); 300 tab_ptr = tte.trace_attributes_ptr; 301 if tab.on ^= what_we_want 302 then do; /* Turn it. */ 303 tab.on = what_we_want; 304 n_turned = n_turned + 1; 305 end; 306 end; 307 else 308 do stt_idx = 0 to stt.h.count - 1; 309 te = trace_catch_$table_get (stt_ptr, stt_idx); 310 tt_idx = trace_catch_$table_seek (tt_ptr, te.key); 311 if tt_idx >= 0 /* If it is in the table... */ 312 then do; 313 unspec (tte) = unspec (te); 314 tab_ptr = tte.trace_attributes_ptr; 315 if tab.on ^= what_we_want 316 then do; /* Turn it. */ 317 tab.on = what_we_want; 318 n_turned = n_turned + 1; 319 end; 320 end; 321 end; 322 323 n_turned_o = n_turned; 324 return; 325 326 /* METERS */ 327 328 329 entrypoint_counts: 330 entry (tt_idx_i) returns (1 aligned like counts); 331 tt_idx = tt_idx_i; 332 tt_ptr = trace_catch_$tt_ptr; 333 if tt_idx < 0 | tt_idx >= tt.h.count 334 then signal error; 335 te = trace_catch_$table_get (tt_ptr, tt_idx); 336 unspec (tte) = unspec (te); 337 tab_ptr = tte.trace_attributes_ptr; 338 return (tab.cts); 339 340 341 entrypoint_global_meters: 342 entry (tt_idx_i) returns (1 like meters aligned); 343 tt_idx = tt_idx_i; 344 tt_ptr = trace_catch_$tt_ptr; 345 if tt_idx < 0 | tt_idx >= tt.h.count 346 then signal error; 347 te = trace_catch_$table_get (tt_ptr, tt_idx); 348 unspec (tte) = unspec (te); 349 tab_ptr = tte.trace_attributes_ptr; 350 return (tab.global); 351 352 353 entrypoint_local_meters: 354 entry (tt_idx_i) returns (1 like meters aligned); 355 tt_idx = tt_idx_i; 356 tt_ptr = trace_catch_$tt_ptr; 357 if tt_idx < 0 | tt_idx >= tt.h.count 358 then signal error; 359 te = trace_catch_$table_get (tt_ptr, tt_idx); 360 unspec (tte) = unspec (te); 361 tab_ptr = tte.trace_attributes_ptr; 362 return (tab.local); 363 364 365 metered: 366 entry () returns (1 like meters aligned); 367 return (trace_catch_$metered); 368 369 370 removed: 371 entry () returns (1 like meters aligned); 372 return (trace_catch_$removed); 373 374 375 reset_meters: 376 entry (); 377 tt_ptr = trace_catch_$tt_ptr; 378 do tt_idx = 0 to tt.h.count - 1; 379 te = trace_catch_$table_get (tt_ptr, tt_idx); 380 unspec (tte) = unspec (te); 381 tab_ptr = tte.trace_attributes_ptr; 382 tab.cts.calls = 0; 383 tab.cts.max_level = 0; 384 tab.local = 0; 385 tab.global = 0; 386 end; 387 trace_catch_$removed = 1; 388 trace_catch_$metered = 1; 389 return; 390 391 /* ENTRYPOINTS */ 392 393 394 entrypoint_index: 395 entry (entry_ptr_i) returns (fixed bin); 396 te.key = unspec (entry_ptr_i); 397 return (trace_catch_$table_seek (trace_catch_$tt_ptr, te.key)); 398 399 400 entrypoint_name: 401 entry (tt_idx_i) returns (char (256) var); 402 tt_idx = tt_idx_i; 403 tt_ptr = trace_catch_$tt_ptr; 404 if tt_idx < 0 | tt_idx >= tt.h.count 405 then return ("entrypoint not in trace table"); 406 te = trace_catch_$table_get (tt_ptr, tt_idx); 407 unspec (tte) = unspec (te); 408 tab_ptr = tte.trace_attributes_ptr; 409 if before (tab.name, "$") = after (tab.name, "$") 410 then return (before (tab.name, "$")); 411 else return (tab.name); 412 413 414 entrypoint_ptr: 415 entry (tt_idx_i) returns (ptr); 416 tt_idx = tt_idx_i; 417 tt_ptr = trace_catch_$tt_ptr; 418 if tt_idx < 0 | tt_idx >= tt.h.count 419 then signal error; 420 te = trace_catch_$table_get (tt_ptr, tt_idx); 421 unspec (tte) = unspec (te); 422 return (tte.entry_ptr); 423 424 425 entrypoint_seg_path: 426 entry (tt_idx_i) returns (char (256) var); 427 tt_idx = tt_idx_i; 428 tt_ptr = trace_catch_$tt_ptr; 429 if tt_idx < 0 | tt_idx >= tt.h.count 430 then signal error; 431 te = trace_catch_$table_get (tt_ptr, tt_idx); 432 unspec (tte) = unspec (te); 433 return (trace_entrypoints_$get_path_name (tte.entry_ptr)); 434 435 436 entrypoint_status: 437 entry (tt_idx_i) returns (char (32) var); 438 tt_idx = tt_idx_i; 439 tt_ptr = trace_catch_$tt_ptr; 440 if tt_idx < 0 | tt_idx >= tt.h.count 441 then signal error; 442 te = trace_catch_$table_get (tt_ptr, tt_idx); 443 unspec (tte) = unspec (te); 444 tab_ptr = tte.trace_attributes_ptr; 445 if tab.translator_id < 0 446 then return ("cannot be traced"); 447 if tab.translator_id = 1 448 then if ^trace_$alm () 449 then return ("off because -alm off"); 450 if tab.on 451 then return ("on"); 452 else return ("off"); 453 454 455 function: 456 entry (tt_idx_i) returns (bit aligned); 457 tt_idx = tt_idx_i; 458 tt_ptr = trace_catch_$tt_ptr; 459 if tt_idx < 0 | tt_idx >= tt.h.count 460 then signal error; 461 te = trace_catch_$table_get (tt_ptr, tt_idx); 462 unspec (tte) = unspec (te); 463 tab_ptr = tte.trace_attributes_ptr; 464 return (tab.function); 465 466 467 num_entrypoints: 468 entry () returns (fixed bin); 469 return (trace_catch_$tt_ptr -> tt.h.count); 470 471 472 num_specified_entrypoints: 473 entry () returns (fixed bin); 474 stt_ptr = trace_$stt_ptr; 475 if stt.h.count < 0 476 then stt_ptr = trace_catch_$tt_ptr; /* "*" case */ 477 return (stt.h.count); 478 479 480 parameters_ptr: 481 entry (tt_idx_i) returns (ptr); 482 tt_idx = tt_idx_i; 483 tt_ptr = trace_catch_$tt_ptr; 484 if tt_idx < 0 | tt_idx >= tt.h.count 485 then signal error; 486 te = trace_catch_$table_get (tt_ptr, tt_idx); 487 unspec (tte) = unspec (te); 488 tab_ptr = tte.trace_attributes_ptr; 489 return (tab.parms_ptr); 490 491 492 specified_entrypoint_index: 493 entry (stt_idx_i) returns (fixed bin); 494 stt_idx = stt_idx_i; 495 stt_ptr = trace_$stt_ptr; 496 tt_ptr = trace_catch_$tt_ptr; 497 if stt.h.count < 0 498 then return (stt_idx); /* "*" case */ 499 if stt_idx < 0 | stt_idx >= stt.h.count 500 then signal error; 501 te = trace_catch_$table_get (stt_ptr, stt_idx); 502 tt_idx = trace_catch_$table_seek (tt_ptr, te.key); 503 return (tt_idx); 504 505 506 translator_id: 507 entry (tt_idx_i) returns (ptr); 508 tt_idx = tt_idx_i; 509 tt_ptr = trace_catch_$tt_ptr; 510 if tt_idx < 0 | tt_idx >= tt.h.count 511 then signal error; 512 te = trace_catch_$table_get (tt_ptr, tt_idx); 513 unspec (tte) = unspec (te); 514 tab_ptr = tte.trace_attributes_ptr; 515 return (tab.translator_id); 516 517 /* LOCATIONS */ 518 519 520 location_ptr: 521 entry (wt_idx_i) returns (ptr); 522 wt_idx = wt_idx_i; 523 wt_ptr = trace_catch_$wt_ptr; 524 if wt_idx < 0 | wt_idx >= wt.h.count 525 then signal error; 526 te = trace_catch_$table_get (wt_ptr, wt_idx); 527 unspec (wte) = unspec (te); 528 return (wte.location_ptr); 529 530 531 location_seg_path: 532 entry (wt_idx_i) returns (char (256) var); 533 wt_idx = wt_idx_i; 534 wt_ptr = trace_catch_$wt_ptr; 535 if wt_idx < 0 | wt_idx >= wt.h.count 536 then signal error; 537 te = trace_catch_$table_get (wt_ptr, wt_idx); 538 unspec (wte) = unspec (te); 539 return (trace_entrypoints_$get_path_name (wte.location_ptr)); 540 541 542 location_values: 543 entry (wt_idx_i) returns (1 aligned like watch_values); 544 wt_idx = wt_idx_i; 545 wt_ptr = trace_catch_$wt_ptr; 546 if wt_idx < 0 | wt_idx >= wt.h.count 547 then signal error; 548 te = trace_catch_$table_get (wt_ptr, wt_idx); 549 unspec (wte) = unspec (te); 550 my_watch_values.old = wte.old_value; 551 my_watch_values.new = wte.location_ptr -> based_value; 552 return (my_watch_values); 553 554 555 num_locations: 556 entry () returns (fixed bin); 557 return (trace_catch_$wt_ptr -> wt.h.count); 558 559 560 num_specified_locations: 561 entry () returns (fixed bin); 562 swt_ptr = trace_$swt_ptr; 563 wt_ptr = trace_catch_$wt_ptr; 564 if swt.h.count >= 0 565 then return (swt.h.count); 566 else return (wt.h.count); /* "*" case */ 567 568 569 specified_location_index: 570 entry (swt_idx_i) returns (fixed bin); 571 swt_idx = swt_idx_i; 572 swt_ptr = trace_$swt_ptr; 573 wt_ptr = trace_catch_$wt_ptr; 574 if swt.h.count < 0 575 then return (swt_idx); /* "*" case */ 576 if swt_idx < 0 | swt_idx >= swt.h.count 577 then signal error; 578 te = trace_catch_$table_get (swt_ptr, swt_idx); 579 wt_idx = trace_catch_$table_seek (wt_ptr, te.key); 580 return (wt_idx); 581 582 583 specify_locations: 584 entry (char256var_i); 585 swt_ptr = trace_$swt_ptr; 586 if char256var_i = "*" 587 then do; 588 if swt.h.count > 0 589 then 590 LOCATIONS_STAR_ERROR: 591 call sub_err_ (ZERO, trace_$me (), ACTION_CANT_RESTART, null (), rv, 592 "If you specify *, you cannot specify any other locations."); 593 swt.h.count = -1; 594 end; 595 else do; 596 if swt.h.count < 0 597 then go to LOCATIONS_STAR_ERROR; 598 wte.location_ptr = addrel (cv_ptr_ ((char256var_i), code), 0); 599 if wte.location_ptr = null () /* Addrel zeros the bit offset. */ 600 then call sub_err_ (code, trace_$me (), ACTION_CANT_RESTART, null (), rv, 601 "I could not convert ""^a"" to a pointer value.", char256var_i); 602 wte.old_value = wte.location_ptr -> based_value; /* See if we blow up trying to reference it. */ 603 unspec (te) = unspec (wte); 604 swt_idx = trace_catch_$table_add (swt_ptr, te); 605 end; 606 return; 607 608 609 specify_changed_locations: 610 entry (); 611 wt_ptr = trace_catch_$wt_ptr; 612 swt_ptr = trace_$swt_ptr; 613 if swt.h.count < 0 614 then ; /* "*" case */ 615 else 616 do wt_idx = 0 to wt.h.count - 1; 617 te = trace_catch_$table_get (wt_ptr, wt_idx); 618 unspec (wte) = unspec (te); 619 te.data = wte.location_ptr -> based_value; 620 if te.data ^= wte.old_value 621 then swt_idx = trace_catch_$table_add (swt_ptr, te); 622 end; 623 return; 624 625 626 627 /* MISCELLANEOUS */ 628 629 630 add_entrypoint: /* Called from trace_entrypoints_$add_entrypoint. */ 631 entry (entry_ptr_i, entry_name_i, translator_id_i, function_i) returns (fixed bin); 632 tt_ptr = trace_catch_$tt_ptr; 633 if tt.h.count = tt.h.max_count 634 then return (null ()); 635 call ALLOCATE_TAB (entry_name_i, translator_id_i, function_i); 636 if tab.translator_id >= 0 /* -1 means don't trace. */ 637 then do; 638 if ^trace_parameters_$update_parameters (tab.parms_ptr) 639 then signal error; 640 end; 641 tte.entry_ptr = entry_ptr_i; 642 tte.trace_attributes_ptr = tab_ptr; 643 unspec (te) = unspec (tte); 644 tab.reference_count = tab.reference_count + 1; 645 tt_idx = trace_catch_$table_add (tt_ptr, te); 646 if tt_idx < 0 647 then signal error; 648 return (tt_idx); 649 650 651 specify_all_entrypoints: 652 entry (); 653 stt_ptr = trace_$stt_ptr; 654 if stt.h.count > 0 655 then call sub_err_ (ZERO, trace_$me (), ACTION_CANT_RESTART, null (), rv, 656 "If you specify all entrypoints, you cannot specify any particular entrypoints."); 657 stt.h.count = -1; 658 return; 659 660 661 specify_entrypoint: /* Called from trace_entrypoints_$specify_entrypoints. */ 662 entry (entry_ptr_i, entry_name_i, translator_id_i, function_i); 663 stt_ptr = trace_$stt_ptr; 664 tt_ptr = trace_catch_$tt_ptr; 665 if stt.h.count < 0 666 then call /* "*" case */ 667 sub_err_ (ZERO, trace_$me (), ACTION_CANT_RESTART, null (), rv, 668 "If you specify *, you cannot specify any other entrypoints."); 669 if trace_catch_$table_seek (stt_ptr, unspec (entry_ptr_i)) >= 0 670 then return; 671 if stt.h.count = stt.h.max_count 672 then call sub_err_ (ZERO, trace_$me (), ACTION_CANT_RESTART, null (), rv, 673 "You have specified too many entrypoints. The limit is ^d.", stt.h.max_count); 674 tt_idx = trace_catch_$table_seek (tt_ptr, unspec (entry_ptr_i)); 675 if tt_idx >= 0 676 then do; 677 te = trace_catch_$table_get (tt_ptr, tt_idx); 678 unspec (tte) = unspec (te); 679 tab_ptr = tte.trace_attributes_ptr; 680 end; 681 else do; 682 tte.entry_ptr = entry_ptr_i; 683 call ALLOCATE_TAB (entry_name_i, translator_id_i, function_i); 684 tte.trace_attributes_ptr = tab_ptr; 685 unspec (te) = unspec (tte); 686 end; 687 tab.reference_count = tab.reference_count + 1; 688 stt_idx = trace_catch_$table_add (stt_ptr, te); 689 if stt_idx < 0 690 then signal error; 691 return; 692 693 /* SUBROUTINES */ 694 695 696 ALLOCATE_TAB: 697 proc (entry_name_i, translator_id_i, function_i); 698 dcl entry_name_i char (65) var parm; 699 dcl translator_id_i fixed bin parm; 700 dcl function_i bit aligned parm; 701 tab_name_length = length (entry_name_i); 702 if tab_name_length > 65 703 then signal error; 704 allocate tab in (trace_storage); 705 unspec (tab) = ""b; 706 tab.version = TAB_VERSION_3; 707 tab.parms_ptr = null (); 708 tab.on = "1"b; 709 tab.translator_id = translator_id_i; 710 tab.function = function_i; 711 tab.name_length = tab_name_length; 712 tab.name = entry_name_i; 713 end ALLOCATE_TAB; 714 715 716 FREE_TAB: 717 proc (tab_ptr_io); 718 dcl tab_ptr_io ptr unal parm; 719 dcl tp ptr unal; 720 tp = tab_ptr_io; 721 if tp = null () 722 then return; 723 tab_ptr_io = null (); 724 if tp -> tab.version ^= TAB_VERSION_3 725 then signal error; 726 tp -> tab.reference_count = tp -> tab.reference_count - 1; 727 if tp -> tab.reference_count < 0 728 then signal error; 729 if tp -> tab.reference_count > 0 730 then return; 731 if tp -> tab.parms_ptr ^= null () 732 then call trace_parameters_$free_parameters (tp -> tab.parms_ptr); 733 free tp -> tab; 734 end FREE_TAB; 735 736 /* START OF DECLARATIONS */ 737 /* format: ^insnl,^delnl */ 738 739 /* Parameters */ 740 741 dcl char256var_i char (256) var parm; 742 dcl entry_name_i char (65) var parm; 743 dcl entry_ptr_i ptr unal parm; 744 dcl function_i bit aligned parm; 745 dcl n_added_o fixed bin parm; 746 dcl n_removed_o fixed bin parm; 747 dcl n_turned_o fixed bin parm; 748 dcl n_updated_o fixed bin parm; 749 dcl stt_idx_i fixed bin parm; 750 dcl swt_idx_i fixed bin parm; 751 dcl translator_id_i fixed bin parm; 752 dcl tt_idx_i fixed bin parm; 753 dcl wt_idx_i fixed bin parm; 754 755 756 /* Automatic */ 757 758 dcl code fixed bin (35); 759 dcl entry_ptr ptr unal; 760 dcl n_added fixed bin; 761 dcl n_removed fixed bin; 762 dcl n_turned fixed bin; 763 dcl n_updated fixed bin; 764 dcl rv fixed bin (35); 765 dcl stt_idx fixed bin; 766 dcl swt_idx fixed bin; 767 dcl tt_idx fixed bin; 768 dcl wt_idx fixed bin; 769 dcl what_we_want bit aligned; 770 771 dcl 1 te aligned, 772 2 key bit (36), 773 2 data bit (36); 774 775 dcl 1 tte aligned, 776 3 entry_ptr ptr unal, 777 3 trace_attributes_ptr ptr unal; 778 779 dcl 1 wte aligned, 780 3 location_ptr ptr unal, 781 3 old_value bit (36); 782 783 dcl 1 my_watch_values like watch_values aligned; 784 785 /* Static */ 786 787 dcl ZERO fixed bin (35) static options (constant) init (0); 788 789 790 /* Conditions */ 791 792 dcl error condition; 793 794 795 /* Based */ 796 797 dcl based_value bit (36) aligned based; 798 dcl trace_storage area based (trace_catch_$trace_storage_ptr); 799 800 dcl TAB_VERSION_3 char (8) aligned static options (constant) init ("TraceTB3"); 801 dcl tab_name_length fixed bin; 802 dcl tab_ptr ptr unal; 803 dcl 1 tab aligned based (tab_ptr), 804 2 version char (8), 805 2 reference_count fixed bin, 806 2 parms_ptr ptr unal, 807 2 cts like counts, 808 2 local like meters, 809 2 on bit, 810 2 global like meters, 811 2 translator_id fixed bin, 812 2 function bit, 813 2 name_length fixed bin, 814 2 name char (tab_name_length refer (tab.name_length)) unal; 815 816 dcl 1 table_header aligned based, 817 2 version char (8), /* "TraceTT3" */ 818 2 max_count fixed bin, 819 2 count fixed bin, 820 2 idx, /* Must be double word aligned. */ 821 3 low fixed bin, 822 3 high fixed bin, 823 2 working_storage fixed bin (71); /* For trace_catch_ */ 824 825 826 dcl TT_VERSION_3 char (8) aligned static options (constant) init ("TraceTT3"); 827 dcl tt_ptr ptr; 828 dcl 1 tt aligned based (tt_ptr), 829 2 h like table_header, 830 2 e (0:9999) fixed bin (66); 831 832 dcl stt_ptr ptr; 833 dcl 1 stt like tt aligned based (stt_ptr); 834 835 dcl wt_ptr ptr; 836 dcl 1 wt aligned based (wt_ptr), 837 2 h like table_header, 838 2 e (0:1023) fixed bin (66); 839 840 dcl swt_ptr ptr; 841 dcl 1 swt like wt aligned based (swt_ptr); 842 843 844 /* External Variables */ 845 846 dcl trace_catch_$trace_storage_ptr ptr ext; 847 dcl trace_catch_$tt_ptr ptr ext; 848 dcl trace_catch_$wt_ptr ptr ext; 849 dcl 1 trace_catch_$metered like meters aligned ext; 850 dcl 1 trace_catch_$removed like meters aligned ext; 851 852 dcl trace_$stt_ptr ptr ext; 853 dcl trace_$swt_ptr ptr ext; 854 855 856 /* External Entries */ 857 858 dcl cv_ptr_ entry (char (*), fixed bin (35)) returns (ptr); 859 dcl sub_err_ entry () options (variable); 860 dcl trace_catch_$table_add entry (ptr, 1 like te aligned) returns (fixed bin); 861 dcl trace_catch_$table_get entry (ptr, fixed bin) returns (1 like te aligned); 862 dcl trace_catch_$table_put_data entry (ptr, fixed bin, bit (36) aligned); 863 dcl trace_catch_$table_remove entry (ptr, fixed bin) returns (1 like te aligned); 864 dcl trace_catch_$table_seek entry (ptr, bit (36) aligned) returns (fixed bin); 865 dcl trace_entrypoints_$get_path_name entry (ptr unal) returns (char (256) var); 866 dcl trace_parameters_$free_parameters entry (ptr unal); 867 dcl trace_parameters_$update_parameters entry (ptr unal) returns (bit aligned); 868 869 870 /* format: insnl,delnl */ 871 /* END OF DECLARATIONS */ 872 873 /* START OF INCLUDE FILES */ 874 875 1 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 1 2 /* format: style3 */ 1 3 1 4 /* These constants are to be used for the flags argument of sub_err_ */ 1 5 /* They are just "string (condition_info_header.action_flags)" */ 1 6 1 7 declare ( 1 8 ACTION_CAN_RESTART init (""b), 1 9 ACTION_CANT_RESTART init ("1"b), 1 10 ACTION_DEFAULT_RESTART 1 11 init ("01"b), 1 12 ACTION_QUIET_RESTART 1 13 init ("001"b), 1 14 ACTION_SUPPORT_SIGNAL 1 15 init ("0001"b) 1 16 ) bit (36) aligned internal static options (constant); 1 17 1 18 /* End include file */ 876 877 2 1 /* START OF: trace_interface.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 /* Written: May 1984 by Jeffrey D. Ives. */ 2 3 /* format: style2,^inddcls,^indnoniterdo,^inditerdo,dclind5,idind35 */ 2 4 2 5 /* IDENTIFICATION */ 2 6 2 7 dcl trace_$me entry () returns (char (32)); 2 8 dcl trace_$version entry () returns (char (32)); 2 9 2 10 /* TRANSACTIONS */ 2 11 2 12 dcl trace_$transaction_begin entry (fixed bin (71)) returns (bit aligned); 2 13 dcl trace_$transaction_begin_force entry (fixed bin (71)); 2 14 dcl trace_$transaction_end entry (fixed bin (71)) returns (bit aligned); 2 15 2 16 /* ACTIONS */ 2 17 2 18 dcl trace_$update_default_parms entry () returns (bit aligned); 2 19 dcl trace_$update_global_parms entry () returns (bit aligned); 2 20 dcl trace_$add_specified_eps entry (fixed bin, fixed bin); 2 21 dcl trace_$add_specified_locs entry (fixed bin, fixed bin); 2 22 dcl trace_$remove_specified_eps entry (fixed bin); 2 23 dcl trace_$remove_specified_locs entry (fixed bin); 2 24 dcl trace_$turn_on_specified_eps entry (fixed bin); 2 25 dcl trace_$turn_off_specified_eps entry (fixed bin); 2 26 2 27 /* CONVERSION */ 2 28 2 29 dcl trace_$cv_inout_to_bits entry (char (8) aligned) returns (bit (2) aligned); 2 30 dcl trace_$cv_bits_to_inout entry (bit (2) aligned) returns (char (8) aligned); 2 31 dcl trace_$cv_n_to_number entry (char (16)) returns (fixed bin (34)); 2 32 dcl trace_$cv_onoff_to_bit entry (char (8) aligned) returns (bit aligned); 2 33 dcl trace_$cv_bit_to_onoff entry (bit aligned) returns (char (8) aligned); 2 34 dcl trace_$cv_entry_name_to_spp entry (char (256) var, ptr) returns (1 like stop_proc aligned); 2 35 dcl trace_$cv_file_path_to_osw entry (char (256) var, ptr) returns (1 like output_switch aligned); 2 36 dcl trace_$cv_stream_name_to_osw entry (char (32) var) returns (1 like output_switch aligned); 2 37 2 38 /* METERS */ 2 39 2 40 dcl trace_$entrypoint_counts entry (fixed bin) returns (1 aligned like counts); 2 41 dcl trace_$entrypoint_global_meters entry (fixed bin) returns (1 like meters aligned); 2 42 dcl trace_$entrypoint_local_meters entry (fixed bin) returns (1 like meters aligned); 2 43 dcl trace_$metered entry () returns (1 like meters aligned); 2 44 dcl trace_$removed entry () returns (1 like meters aligned); 2 45 dcl trace_$reset_meters entry (); 2 46 2 47 /* ENTRYPOINTS */ 2 48 2 49 dcl trace_$entrypoint_index entry (ptr unal) returns (fixed bin); 2 50 dcl trace_$entrypoint_name entry (fixed bin) returns (char (65) var); 2 51 dcl trace_$entrypoint_ptr entry (fixed bin) returns (ptr); 2 52 dcl trace_$entrypoint_seg_path entry (fixed bin) returns (char (256) var); 2 53 dcl trace_$entrypoint_status entry (fixed bin) returns (char (32) var); 2 54 dcl trace_$function entry (fixed bin) returns (bit aligned); 2 55 dcl trace_$num_entrypoints entry () returns (fixed bin); 2 56 dcl trace_$num_specified_entrypoints entry () returns (fixed bin); 2 57 dcl trace_$specified_entrypoint_index entry (fixed bin) returns (fixed bin); 2 58 dcl trace_$specify_entrypoints entry (char (256) var, ptr); 2 59 dcl trace_$translator_id entry (fixed bin) returns (fixed bin); 2 60 2 61 /* LOCATIONS */ 2 62 2 63 dcl trace_$location_ptr entry (fixed bin) returns (ptr); 2 64 dcl trace_$location_seg_path entry (fixed bin) returns (char (256) var); 2 65 dcl trace_$location_values entry (fixed bin) returns (1 aligned like watch_values); 2 66 dcl trace_$num_locations entry () returns (fixed bin); 2 67 dcl trace_$num_specified_locations entry () returns (fixed bin); 2 68 dcl trace_$specified_location_index entry (fixed bin) returns (fixed bin); 2 69 dcl trace_$specify_locations entry (char (256) var); 2 70 dcl trace_$specify_changed_locations entry (); 2 71 2 72 /* EVENT BUFFER */ 2 73 2 74 dcl trace_$buffer_counts entry (fixed bin (34), fixed bin (34)); 2 75 dcl trace_$buffer_event entry (fixed bin (34), fixed bin, char (2), ptr unal, 1 like counts aligned, 1 like meters aligned); 2 76 dcl trace_$buffer_event_header entry (fixed bin (34)) returns (char (256) var); 2 77 dcl trace_$buffer_event_string entry (fixed bin (34)) returns (char (256) var); 2 78 dcl trace_$buffer_ptr entry () returns (ptr unal); 2 79 2 80 /* TRACE PARAMETERS */ 2 81 2 82 dcl trace_$arguments entry (fixed bin) returns (bit (2) aligned); 2 83 dcl trace_$set_arguments entry (bit (2) aligned); 2 84 dcl trace_$call entry (fixed bin) returns (char (256) var); 2 85 dcl trace_$set_call entry (char (256) var); 2 86 dcl trace_$every entry (fixed bin) returns (fixed bin (34)); 2 87 dcl trace_$set_every entry (fixed bin (34)); 2 88 dcl trace_$first entry (fixed bin) returns (fixed bin (34)); 2 89 dcl trace_$set_first entry (fixed bin (34)); 2 90 dcl trace_$high entry (fixed bin) returns (fixed bin (34)); 2 91 dcl trace_$set_high entry (fixed bin (34)); 2 92 dcl trace_$last entry (fixed bin) returns (fixed bin (34)); 2 93 dcl trace_$set_last entry (fixed bin (34)); 2 94 dcl trace_$low entry (fixed bin) returns (fixed bin (34)); 2 95 dcl trace_$set_low entry (fixed bin (34)); 2 96 dcl trace_$new_high entry (fixed bin) returns (bit aligned); 2 97 dcl trace_$set_new_high entry (bit aligned); 2 98 dcl trace_$parms_string entry (fixed bin, bit aligned) returns (char (256) var); 2 99 dcl trace_$parms_specified entry () returns (bit aligned); 2 100 dcl trace_$stop entry (fixed bin) returns (bit (2) aligned); 2 101 dcl trace_$set_stop entry (bit (2) aligned); 2 102 dcl trace_$stop_every entry (fixed bin) returns (fixed bin (34)); 2 103 dcl trace_$set_stop_every entry (fixed bin (34)); 2 104 dcl trace_$stop_low entry (fixed bin) returns (fixed bin (34)); 2 105 dcl trace_$set_stop_low entry (fixed bin (34)); 2 106 dcl trace_$trace entry (fixed bin) returns (bit (2) aligned); 2 107 dcl trace_$set_trace entry (bit (2) aligned); 2 108 2 109 /* GLOBAL PARAMETERS */ 2 110 2 111 dcl trace_$alm entry () returns (bit aligned); 2 112 dcl trace_$set_alm entry (bit aligned); 2 113 dcl trace_$automatic entry () returns (bit aligned); 2 114 dcl trace_$set_automatic entry (bit aligned); 2 115 dcl trace_$buffer entry () returns (bit aligned); 2 116 dcl trace_$set_buffer entry (bit aligned); 2 117 dcl trace_$calibrate entry () returns (bit aligned); 2 118 dcl trace_$set_calibrate entry (bit aligned); 2 119 dcl trace_$compensation entry (fixed bin) returns (1 aligned like compensation); 2 120 dcl trace_$set_compensation entry (fixed bin, 1 aligned like compensation); 2 121 dcl trace_$enabled entry () returns (bit aligned); 2 122 dcl trace_$set_enabled entry (bit aligned); 2 123 dcl trace_$global_parms_string entry () returns (char (256) var); 2 124 dcl trace_$long entry () returns (bit aligned); 2 125 dcl trace_$set_long entry (bit aligned); 2 126 dcl trace_$meter entry () returns (bit aligned); 2 127 dcl trace_$set_meter entry (bit aligned); 2 128 dcl trace_$output_switch entry () returns (1 like output_switch aligned); 2 129 dcl trace_$set_output_switch entry (1 like output_switch aligned); 2 130 dcl trace_$signals entry () returns (bit aligned); 2 131 dcl trace_$set_signals entry (bit aligned); 2 132 dcl trace_$stop_proc entry () returns (1 like stop_proc); 2 133 dcl trace_$set_stop_proc entry (1 like stop_proc); 2 134 dcl trace_$stop_routine entry () returns (entry); 2 135 dcl trace_$set_stop_routine entry (entry); 2 136 dcl trace_$trace_routine entry () returns (entry); 2 137 dcl trace_$set_trace_routine entry (entry); 2 138 dcl trace_$loud entry () returns (bit aligned); 2 139 dcl trace_$set_loud entry (bit aligned); 2 140 2 141 /* MISCELLANEOUS */ 2 142 2 143 dcl trace_$in_trace entry () returns (bit aligned); 2 144 2 145 /* STRUCTURES AND CONSTANTS */ 2 146 2 147 dcl 1 watch_values aligned, 2 148 2 old bit (36), 2 149 2 new bit (36); 2 150 2 151 dcl 1 counts aligned, 2 152 2 calls fixed bin (53), /* total number of calls */ 2 153 2 level fixed bin (34), /* current recursion level */ 2 154 2 max_level fixed bin (34); /* max ever recursion level */ 2 155 2 156 2 157 dcl 1 meters aligned, 2 158 2 real_time fixed bin (53), /* The total amount of real time metered. */ 2 159 2 vcpu_time fixed bin (53), /* The total amount of virtual cpu time metered. */ 2 160 2 page_faults fixed bin (34); /* The total number of page faults metered. */ 2 161 2 162 dcl 1 output_switch aligned based, 2 163 2 iocb_ptr ptr, 2 164 2 stream_name char (32) var, 2 165 2 file_path char (256) var; 2 166 2 167 dcl 1 stop_proc aligned based, 2 168 2 entry_value entry (), 2 169 2 entry_name char (256) var; 2 170 2 171 dcl 1 compensation aligned, 2 172 2 real_time fixed bin (53), 2 173 2 vcpu_time fixed bin (53); 2 174 2 175 dcl ( 2 176 COMPENSATION_FROM_ENTRY_TO_ENTRY init (1), 2 177 COMPENSATION_FROM_ENTRY_TO_RETURN init (2), 2 178 COMPENSATION_FROM_RETURN_TO_ENTRY init (3), 2 179 COMPENSATION_FROM_RETURN_TO_RETURN init (4) 2 180 ) static options (constant); 2 181 2 182 /* END OF: trace_interface.incl.pl1 * * * * * * * * * * * * * * * * */ 878 879 880 end trace_tables_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/23/84 1219.2 trace_tables_.pl1 >special_ldd>online>6972-10/23/84>trace_tables_.pl1 876 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 878 2 10/23/84 1226.2 trace_interface.incl.pl1 >special_ldd>online>6972-10/23/84>trace_interface.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. ACTION_CANT_RESTART 000016 constant bit(36) initial dcl 1-7 set ref 588* 599* 654* 665* 671* TAB_VERSION_3 000002 constant char(8) initial dcl 800 ref 706 724 TT_VERSION_3 000000 constant char(8) initial dcl 826 ref 52 63 65 68 70 ZERO 000026 constant fixed bin(35,0) initial dcl 787 set ref 588* 654* 665* 671* based_value based bit(36) dcl 797 set ref 166 168* 176 551 602 619 calls 4 based fixed bin(53,0) level 3 dcl 803 set ref 382* char256var_i parameter varying char(256) dcl 741 set ref 583 586 598 599* code 000100 automatic fixed bin(35,0) dcl 758 set ref 598* 599* compensation 000160 automatic structure level 1 dcl 2-171 count 3 based fixed bin(17,0) level 3 in structure "stt" dcl 833 in procedure "trace_tables_" set ref 82 82* 84 108 114 208 211* 222 295 307 475 477 497 499 654 657* 665 671 count 3 based fixed bin(17,0) level 3 in structure "swt" dcl 841 in procedure "trace_tables_" set ref 91 91* 93 161 172 250 253* 258 564 564 574 576 588 593* 596 613 count 3 based fixed bin(17,0) level 3 in structure "tt" dcl 828 in procedure "trace_tables_" set ref 65 108 214 215 295 333 345 357 378 404 418 429 440 459 469 484 510 633 count 3 based fixed bin(17,0) level 3 in structure "wt" dcl 836 in procedure "trace_tables_" set ref 70 161 256 524 535 546 557 566 615 counts 000146 automatic structure level 1 dcl 2-151 cts 4 based structure level 2 dcl 803 set ref 338 cv_ptr_ 000026 constant entry external dcl 858 ref 598 data 1 000114 automatic bit(36) level 2 dcl 771 set ref 188 619* 620 e 10 based fixed bin(66,0) array level 2 in structure "swt" dcl 841 in procedure "trace_tables_" ref 41 41 e 10 based fixed bin(66,0) array level 2 in structure "stt" dcl 833 in procedure "trace_tables_" ref 33 33 e 10 based fixed bin(66,0) array level 2 in structure "tt" dcl 828 in procedure "trace_tables_" ref 29 29 e 10 based fixed bin(66,0) array level 2 in structure "wt" dcl 836 in procedure "trace_tables_" ref 37 37 entry_name_i parameter varying char(65) dcl 742 in procedure "trace_tables_" set ref 630 635* 661 683* entry_name_i parameter varying char(65) dcl 698 in procedure "ALLOCATE_TAB" ref 696 701 712 entry_ptr 000116 automatic pointer level 2 packed unaligned dcl 775 set ref 422 433* 641* 682* entry_ptr_i parameter pointer unaligned dcl 743 ref 394 396 630 641 661 669 669 674 674 682 error 000124 stack reference condition dcl 792 ref 20 63 65 68 70 133 138 182 230 266 333 345 357 418 429 440 459 484 499 510 524 535 546 576 638 646 689 702 724 727 function 24 based bit(1) level 2 dcl 803 set ref 464 710* function_i parameter bit(1) dcl 700 in procedure "ALLOCATE_TAB" ref 696 710 function_i parameter bit(1) dcl 744 in procedure "trace_tables_" set ref 630 635* 661 683* global 16 based structure level 2 dcl 803 set ref 350 385* h based structure level 2 in structure "wt" dcl 836 in procedure "trace_tables_" set ref 37* h based structure level 2 in structure "stt" dcl 833 in procedure "trace_tables_" set ref 33* h based structure level 2 in structure "swt" dcl 841 in procedure "trace_tables_" set ref 41* h based structure level 2 in structure "tt" dcl 828 in procedure "trace_tables_" set ref 29* high 5 parameter fixed bin(17,0) level 3 dcl 49 set ref 54* idx 4 parameter structure level 2 dcl 49 key 000114 automatic bit(36) level 2 dcl 771 set ref 128* 177* 225* 261* 266 310* 396* 397* 502* 579* local 10 based structure level 2 dcl 803 set ref 219 233 362 384* location_ptr 000120 automatic pointer level 2 packed unaligned dcl 779 set ref 166 168 176 266 528 539* 551 598* 599 602 619 max_count 2 parameter fixed bin(17,0) level 2 in structure "table_header_o" dcl 49 in procedure "INIT_TABLE_HEADER" set ref 53* max_count 2 based fixed bin(17,0) level 3 in structure "stt" dcl 833 in procedure "trace_tables_" set ref 671 671* max_count 2 based fixed bin(17,0) level 3 in structure "tt" dcl 828 in procedure "trace_tables_" set ref 633 max_level 7 based fixed bin(34,0) level 3 dcl 803 set ref 383* meters 000152 automatic structure level 1 dcl 2-157 my_watch_values 000122 automatic structure level 1 dcl 783 set ref 552 n_added 000101 automatic fixed bin(17,0) dcl 760 set ref 106* 119 140* 140 159* 184* 184 196 n_added_o parameter fixed bin(17,0) dcl 745 set ref 102 119* 154 196* n_removed 000102 automatic fixed bin(17,0) dcl 761 set ref 207* 214* 235* 235 239 249* 256* 268* 268 272 n_removed_o parameter fixed bin(17,0) dcl 746 set ref 203 239* 245 272* n_turned 000103 automatic fixed bin(17,0) dcl 762 set ref 294* 304* 304 318* 318 323 n_turned_o parameter fixed bin(17,0) dcl 747 set ref 278 284 323* n_updated 000104 automatic fixed bin(17,0) dcl 763 set ref 107* 120 145* 145 160* 169* 169 191* 191 197 n_updated_o parameter fixed bin(17,0) dcl 748 set ref 102 120* 154 197* name 26 based char level 2 packed unaligned dcl 803 set ref 409 409 409 411 712* name_length 25 based fixed bin(17,0) level 2 dcl 803 set ref 409 409 409 411 704* 705 711* 712 733 new 1 000122 automatic bit(36) level 2 dcl 783 set ref 551* old 000122 automatic bit(36) level 2 dcl 783 set ref 550* old_value 1 000120 automatic bit(36) level 2 dcl 779 set ref 166 176* 188 190* 550 602* 620 on 15 based bit(1) level 2 dcl 803 set ref 301 303* 315 317* 450 708* output_switch based structure level 1 dcl 2-162 parms_ptr 3 based pointer level 2 packed unaligned dcl 803 set ref 133* 145* 489 638* 707* 731 731* reference_count 2 based fixed bin(17,0) level 2 dcl 803 set ref 136* 136 644* 644 687* 687 726* 726 727 729 rv 000105 automatic fixed bin(35,0) dcl 764 set ref 588* 599* 654* 665* 671* stop_proc based structure level 1 dcl 2-167 stt based structure level 1 dcl 833 set ref 32 stt_idx 000106 automatic fixed bin(17,0) dcl 765 set ref 84* 114* 116* 222* 224* 307* 309* 494* 497 499 499 501* 688* 689 stt_idx_i parameter fixed bin(17,0) dcl 749 ref 492 494 stt_ptr 000136 automatic pointer dcl 832 set ref 32* 33 33 33 34 81* 82 82 84 86* 105* 108 114 116* 206* 208 211 212 222 224* 292* 295 307 309* 474* 475 475* 477 495* 497 499 501* 653* 654 657 663* 665 669* 671 671 671 688* sub_err_ 000030 constant entry external dcl 859 ref 588 599 654 665 671 swt based structure level 1 dcl 841 set ref 40 swt_idx 000107 automatic fixed bin(17,0) dcl 766 set ref 93* 172* 174* 258* 260* 571* 574 576 576 578* 604* 620* swt_idx_i parameter fixed bin(17,0) dcl 750 ref 569 571 swt_ptr 000142 automatic pointer dcl 840 set ref 40* 41 41 41 42 90* 91 91 93 95* 157* 161 172 174* 248* 250 253 254 258 260* 562* 564 564 572* 574 576 578* 585* 588 593 596 604* 612* 613 620* tab based structure level 1 dcl 803 set ref 704 705* 733 tab_name_length 000132 automatic fixed bin(17,0) dcl 801 set ref 701* 702 704 704 711 tab_ptr 000133 automatic pointer unaligned dcl 802 set ref 127* 131 133 136 136 143 145 218* 219 232* 233 234* 300* 301 303 314* 315 317 337* 338 349* 350 361* 362 381* 382 383 384 385 408* 409 409 409 411 444* 445 447 450 463* 464 488* 489 514* 515 636 638 642 644 644 679* 684 687 687 704* 705 706 707 708 709 710 711 712 tab_ptr_io parameter pointer unaligned dcl 718 set ref 716 720 723* table_dim_i parameter fixed bin(17,0) dcl 50 ref 47 53 54 table_header based structure level 1 dcl 816 table_header_o parameter structure level 1 dcl 49 set ref 47 51* te 000114 automatic structure level 1 dcl 771 set ref 86* 87 95* 111* 112* 116* 117* 137* 164* 165 174* 175 180* 181* 187* 216* 217 224* 228 229* 230 260* 264 265* 298* 299 309* 313 335* 336 347* 348 359* 360 379* 380 406* 407 420* 421 431* 432 442* 443 461* 462 486* 487 501* 512* 513 526* 527 537* 538 548* 549 578* 603* 604* 617* 618 620* 643* 645* 677* 678 685* 688* te_i parameter structure level 1 dcl 125 ref 123 126 tp 000254 automatic pointer unaligned dcl 719 set ref 720* 721 724 726 726 727 729 731 731 733 trace_$alm 000054 constant entry external dcl 2-111 ref 447 trace_$me 000052 constant entry external dcl 2-7 ref 588 588 599 599 654 654 665 665 671 671 trace_$stt_ptr 000022 external static pointer dcl 852 set ref 34* 65 65 81 105 206 210* 213* 292 474 495 653 663 trace_$swt_ptr 000024 external static pointer dcl 853 set ref 42* 70 70 90 157 248 252* 255* 562 572 585 612 trace_attributes_ptr 1 000116 automatic pointer level 2 packed unaligned dcl 775 set ref 88* 127 218 232 300 314 337 349 361 381 408 444 463 488 514 642* 679 684* trace_catch_$metered 000016 external static structure level 1 dcl 849 set ref 367 388* trace_catch_$removed 000020 external static structure level 1 dcl 850 set ref 219* 219 233* 233 372 387* trace_catch_$table_add 000032 constant entry external dcl 860 ref 137 181 604 620 645 688 trace_catch_$table_get 000034 constant entry external dcl 861 ref 111 116 164 174 187 216 224 260 298 309 335 347 359 379 406 420 431 442 461 486 501 512 526 537 548 578 617 677 trace_catch_$table_put_data 000036 constant entry external dcl 862 ref 168 190 trace_catch_$table_remove 000040 constant entry external dcl 863 ref 86 95 229 265 trace_catch_$table_seek 000042 constant entry external dcl 864 ref 128 177 225 261 310 397 502 579 669 674 trace_catch_$trace_storage_ptr 000010 external static pointer dcl 846 ref 28 32 36 40 704 trace_catch_$tt_ptr 000012 external static pointer dcl 847 set ref 30* 63 104 205 212* 290 332 344 356 377 397* 403 417 428 439 458 469 475 483 496 509 632 664 trace_catch_$wt_ptr 000014 external static pointer dcl 848 set ref 38* 68 156 247 254* 523 534 545 557 563 573 611 trace_entrypoints_$get_path_name 000044 constant entry external dcl 865 ref 433 539 trace_parameters_$free_parameters 000046 constant entry external dcl 866 ref 731 trace_parameters_$update_parameters 000050 constant entry external dcl 867 ref 133 145 638 trace_storage based area(1024) dcl 798 ref 28 32 36 40 704 translator_id 23 based fixed bin(17,0) level 2 dcl 803 set ref 131 143 445 447 515 636 709* translator_id_i parameter fixed bin(17,0) dcl 751 in procedure "trace_tables_" set ref 630 635* 661 683* translator_id_i parameter fixed bin(17,0) dcl 699 in procedure "ALLOCATE_TAB" ref 696 709 tt based structure level 1 dcl 828 set ref 28 tt_idx 000110 automatic fixed bin(17,0) dcl 767 set ref 108* 111* 128* 129 137* 138 215* 216* 225* 226 229* 295* 298* 310* 311 331* 333 333 335* 343* 345 345 347* 355* 357 357 359* 378* 379* 402* 404 404 406* 416* 418 418 420* 427* 429 429 431* 438* 440 440 442* 457* 459 459 461* 482* 484 484 486* 502* 503 508* 510 510 512* 645* 646 648 674* 675 677* tt_idx_i parameter fixed bin(17,0) dcl 752 ref 329 331 341 343 353 355 400 402 414 416 425 427 436 438 455 457 480 482 506 508 tt_ptr 000134 automatic pointer dcl 827 set ref 28* 29 29 29 30 104* 108 111* 128* 137* 205* 213 214 215 216* 225* 229* 290* 295 298* 310* 332* 333 335* 344* 345 347* 356* 357 359* 377* 378 379* 403* 404 406* 417* 418 420* 428* 429 431* 439* 440 442* 458* 459 461* 483* 484 486* 496* 502* 509* 510 512* 632* 633 633 645* 664* 674* 677* tte 000116 automatic structure level 1 dcl 775 set ref 87* 126* 217* 228* 230 299* 313* 336* 348* 360* 380* 407* 421* 432* 443* 462* 487* 513* 643 678* 685 version based char(8) level 3 in structure "tt" dcl 828 in procedure "trace_tables_" set ref 63 65 version based char(8) level 3 in structure "wt" dcl 836 in procedure "trace_tables_" set ref 68 70 version parameter char(8) level 2 in structure "table_header_o" dcl 49 in procedure "INIT_TABLE_HEADER" set ref 52* version based char(8) level 2 in structure "tab" dcl 803 in procedure "trace_tables_" set ref 706* 724 watch_values 000144 automatic structure level 1 dcl 2-147 what_we_want 000112 automatic bit(1) dcl 769 set ref 280* 286* 301 303 315 317 wt based structure level 1 dcl 836 set ref 36 wt_idx 000111 automatic fixed bin(17,0) dcl 768 set ref 161* 164* 168* 177* 178 181* 182 187* 190* 261* 262 265* 522* 524 524 526* 533* 535 535 537* 544* 546 546 548* 579* 580 615* 617* wt_idx_i parameter fixed bin(17,0) dcl 753 ref 520 522 531 533 542 544 wt_ptr 000140 automatic pointer dcl 835 set ref 36* 37 37 37 38 156* 161 164* 168* 177* 181* 187* 190* 247* 255 256 261* 265* 523* 524 526* 534* 535 537* 545* 546 548* 563* 566 573* 579* 611* 615 617* wte 000120 automatic structure level 1 dcl 779 set ref 165* 175* 180 264* 527* 538* 549* 603 618* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 1-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 1-7 COMPENSATION_FROM_ENTRY_TO_ENTRY internal static fixed bin(17,0) initial dcl 2-175 COMPENSATION_FROM_ENTRY_TO_RETURN internal static fixed bin(17,0) initial dcl 2-175 COMPENSATION_FROM_RETURN_TO_ENTRY internal static fixed bin(17,0) initial dcl 2-175 COMPENSATION_FROM_RETURN_TO_RETURN internal static fixed bin(17,0) initial dcl 2-175 entry_ptr automatic pointer unaligned dcl 759 trace_$add_specified_eps 000000 constant entry external dcl 2-20 trace_$add_specified_locs 000000 constant entry external dcl 2-21 trace_$arguments 000000 constant entry external dcl 2-82 trace_$automatic 000000 constant entry external dcl 2-113 trace_$buffer 000000 constant entry external dcl 2-115 trace_$buffer_counts 000000 constant entry external dcl 2-74 trace_$buffer_event 000000 constant entry external dcl 2-75 trace_$buffer_event_header 000000 constant entry external dcl 2-76 trace_$buffer_event_string 000000 constant entry external dcl 2-77 trace_$buffer_ptr 000000 constant entry external dcl 2-78 trace_$calibrate 000000 constant entry external dcl 2-117 trace_$call 000000 constant entry external dcl 2-84 trace_$compensation 000000 constant entry external dcl 2-119 trace_$cv_bit_to_onoff 000000 constant entry external dcl 2-33 trace_$cv_bits_to_inout 000000 constant entry external dcl 2-30 trace_$cv_entry_name_to_spp 000000 constant entry external dcl 2-34 trace_$cv_file_path_to_osw 000000 constant entry external dcl 2-35 trace_$cv_inout_to_bits 000000 constant entry external dcl 2-29 trace_$cv_n_to_number 000000 constant entry external dcl 2-31 trace_$cv_onoff_to_bit 000000 constant entry external dcl 2-32 trace_$cv_stream_name_to_osw 000000 constant entry external dcl 2-36 trace_$enabled 000000 constant entry external dcl 2-121 trace_$entrypoint_counts 000000 constant entry external dcl 2-40 trace_$entrypoint_global_meters 000000 constant entry external dcl 2-41 trace_$entrypoint_index 000000 constant entry external dcl 2-49 trace_$entrypoint_local_meters 000000 constant entry external dcl 2-42 trace_$entrypoint_name 000000 constant entry external dcl 2-50 trace_$entrypoint_ptr 000000 constant entry external dcl 2-51 trace_$entrypoint_seg_path 000000 constant entry external dcl 2-52 trace_$entrypoint_status 000000 constant entry external dcl 2-53 trace_$every 000000 constant entry external dcl 2-86 trace_$first 000000 constant entry external dcl 2-88 trace_$function 000000 constant entry external dcl 2-54 trace_$global_parms_string 000000 constant entry external dcl 2-123 trace_$high 000000 constant entry external dcl 2-90 trace_$in_trace 000000 constant entry external dcl 2-143 trace_$last 000000 constant entry external dcl 2-92 trace_$location_ptr 000000 constant entry external dcl 2-63 trace_$location_seg_path 000000 constant entry external dcl 2-64 trace_$location_values 000000 constant entry external dcl 2-65 trace_$long 000000 constant entry external dcl 2-124 trace_$loud 000000 constant entry external dcl 2-138 trace_$low 000000 constant entry external dcl 2-94 trace_$meter 000000 constant entry external dcl 2-126 trace_$metered 000000 constant entry external dcl 2-43 trace_$new_high 000000 constant entry external dcl 2-96 trace_$num_entrypoints 000000 constant entry external dcl 2-55 trace_$num_locations 000000 constant entry external dcl 2-66 trace_$num_specified_entrypoints 000000 constant entry external dcl 2-56 trace_$num_specified_locations 000000 constant entry external dcl 2-67 trace_$output_switch 000000 constant entry external dcl 2-128 trace_$parms_specified 000000 constant entry external dcl 2-99 trace_$parms_string 000000 constant entry external dcl 2-98 trace_$remove_specified_eps 000000 constant entry external dcl 2-22 trace_$remove_specified_locs 000000 constant entry external dcl 2-23 trace_$removed 000000 constant entry external dcl 2-44 trace_$reset_meters 000000 constant entry external dcl 2-45 trace_$set_alm 000000 constant entry external dcl 2-112 trace_$set_arguments 000000 constant entry external dcl 2-83 trace_$set_automatic 000000 constant entry external dcl 2-114 trace_$set_buffer 000000 constant entry external dcl 2-116 trace_$set_calibrate 000000 constant entry external dcl 2-118 trace_$set_call 000000 constant entry external dcl 2-85 trace_$set_compensation 000000 constant entry external dcl 2-120 trace_$set_enabled 000000 constant entry external dcl 2-122 trace_$set_every 000000 constant entry external dcl 2-87 trace_$set_first 000000 constant entry external dcl 2-89 trace_$set_high 000000 constant entry external dcl 2-91 trace_$set_last 000000 constant entry external dcl 2-93 trace_$set_long 000000 constant entry external dcl 2-125 trace_$set_loud 000000 constant entry external dcl 2-139 trace_$set_low 000000 constant entry external dcl 2-95 trace_$set_meter 000000 constant entry external dcl 2-127 trace_$set_new_high 000000 constant entry external dcl 2-97 trace_$set_output_switch 000000 constant entry external dcl 2-129 trace_$set_signals 000000 constant entry external dcl 2-131 trace_$set_stop 000000 constant entry external dcl 2-101 trace_$set_stop_every 000000 constant entry external dcl 2-103 trace_$set_stop_low 000000 constant entry external dcl 2-105 trace_$set_stop_proc 000000 constant entry external dcl 2-133 trace_$set_stop_routine 000000 constant entry external dcl 2-135 trace_$set_trace 000000 constant entry external dcl 2-107 trace_$set_trace_routine 000000 constant entry external dcl 2-137 trace_$signals 000000 constant entry external dcl 2-130 trace_$specified_entrypoint_index 000000 constant entry external dcl 2-57 trace_$specified_location_index 000000 constant entry external dcl 2-68 trace_$specify_changed_locations 000000 constant entry external dcl 2-70 trace_$specify_entrypoints 000000 constant entry external dcl 2-58 trace_$specify_locations 000000 constant entry external dcl 2-69 trace_$stop 000000 constant entry external dcl 2-100 trace_$stop_every 000000 constant entry external dcl 2-102 trace_$stop_low 000000 constant entry external dcl 2-104 trace_$stop_proc 000000 constant entry external dcl 2-132 trace_$stop_routine 000000 constant entry external dcl 2-134 trace_$trace 000000 constant entry external dcl 2-106 trace_$trace_routine 000000 constant entry external dcl 2-136 trace_$transaction_begin 000000 constant entry external dcl 2-12 trace_$transaction_begin_force 000000 constant entry external dcl 2-13 trace_$transaction_end 000000 constant entry external dcl 2-14 trace_$translator_id 000000 constant entry external dcl 2-59 trace_$turn_off_specified_eps 000000 constant entry external dcl 2-25 trace_$turn_on_specified_eps 000000 constant entry external dcl 2-24 trace_$update_default_parms 000000 constant entry external dcl 2-18 trace_$update_global_parms 000000 constant entry external dcl 2-19 trace_$version 000000 constant entry external dcl 2-8 NAMES DECLARED BY EXPLICIT CONTEXT. ALLOCATE_TAB 012646 constant entry internal dcl 696 ref 635 683 FREE_TAB 012732 constant entry internal dcl 716 ref 88 234 INIT_TABLE_HEADER 012514 constant entry internal dcl 47 ref 29 33 37 41 LOCATIONS_STAR_ERROR 011037 constant label dcl 588 ref 596 ON_OFF_JOIN 002073 constant label dcl 290 ref 281 287 UPDATE_TTE 012532 constant entry internal dcl 123 ref 112 117 add_entrypoint 011445 constant entry external dcl 630 add_specified_eps 000745 constant entry external dcl 102 add_specified_locs 001115 constant entry external dcl 154 entrypoint_counts 002274 constant entry external dcl 329 entrypoint_global_meters 002434 constant entry external dcl 341 entrypoint_index 003307 constant entry external dcl 394 entrypoint_local_meters 002576 constant entry external dcl 353 entrypoint_name 003512 constant entry external dcl 400 entrypoint_ptr 004374 constant entry external dcl 414 entrypoint_seg_path 004476 constant entry external dcl 425 entrypoint_status 004777 constant entry external dcl 436 function 005322 constant entry external dcl 455 initialize 000261 constant entry external dcl 25 location_ptr 007104 constant entry external dcl 520 location_seg_path 007206 constant entry external dcl 531 location_values 007507 constant entry external dcl 542 metered 002741 constant entry external dcl 365 num_entrypoints 005533 constant entry external dcl 467 num_locations 007621 constant entry external dcl 555 num_specified_entrypoints 005746 constant entry external dcl 472 num_specified_locations 010034 constant entry external dcl 560 parameters_ptr 006155 constant entry external dcl 480 remove_specified_eps 001410 constant entry external dcl 203 remove_specified_locs 001661 constant entry external dcl 245 removed 003046 constant entry external dcl 370 reset_meters 003152 constant entry external dcl 375 specified_entrypoint_index 006263 constant entry external dcl 492 specified_location_index 010414 constant entry external dcl 569 specify_all_entrypoints 011764 constant entry external dcl 651 specify_changed_locations 011310 constant entry external dcl 609 specify_entrypoint 012115 constant entry external dcl 661 specify_locations 011012 constant entry external dcl 583 trace_tables_ 000245 constant entry external dcl 18 transaction_begin 000441 constant entry external dcl 60 transaction_begin_force 000572 constant entry external dcl 78 transaction_end 000561 constant entry external dcl 78 translator_id 006660 constant entry external dcl 506 turn_off_specified_eps 002062 constant entry external dcl 284 turn_on_specified_eps 002046 constant entry external dcl 278 NAMES DECLARED BY CONTEXT OR IMPLICATION. addrel builtin function ref 598 after builtin function ref 409 before builtin function ref 409 409 dim builtin function ref 29 29 33 33 37 37 41 41 length builtin function ref 701 null builtin function ref 210 252 588 588 599 599 599 633 654 654 665 665 671 671 707 721 723 731 unspec builtin function set ref 51* 87 87 126* 126 165* 165 175* 175 180* 180 217* 217 228* 228 230 230 264* 264 266 266 299* 299 313* 313 336* 336 348* 348 360* 360 380* 380 396 407* 407 421* 421 432* 432 443* 443 462* 462 487* 487 513* 513 527* 527 538* 538 549* 549 603* 603 618* 618 643* 643 669 669 674 674 678* 678 685* 685 705* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 13742 14020 13044 13752 Length 14474 13044 56 437 675 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME trace_tables_ 732 external procedure is an external procedure. INIT_TABLE_HEADER internal procedure shares stack frame of external procedure trace_tables_. UPDATE_TTE internal procedure shares stack frame of external procedure trace_tables_. ALLOCATE_TAB internal procedure shares stack frame of external procedure trace_tables_. FREE_TAB internal procedure shares stack frame of external procedure trace_tables_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME trace_tables_ 000100 code trace_tables_ 000101 n_added trace_tables_ 000102 n_removed trace_tables_ 000103 n_turned trace_tables_ 000104 n_updated trace_tables_ 000105 rv trace_tables_ 000106 stt_idx trace_tables_ 000107 swt_idx trace_tables_ 000110 tt_idx trace_tables_ 000111 wt_idx trace_tables_ 000112 what_we_want trace_tables_ 000114 te trace_tables_ 000116 tte trace_tables_ 000120 wte trace_tables_ 000122 my_watch_values trace_tables_ 000132 tab_name_length trace_tables_ 000133 tab_ptr trace_tables_ 000134 tt_ptr trace_tables_ 000136 stt_ptr trace_tables_ 000140 wt_ptr trace_tables_ 000142 swt_ptr trace_tables_ 000144 watch_values trace_tables_ 000146 counts trace_tables_ 000152 meters trace_tables_ 000160 compensation trace_tables_ 000254 tp FREE_TAB THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return signal shorten_stack ext_entry any_to_any_tr alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_ptr_ sub_err_ trace_$alm trace_$me trace_catch_$table_add trace_catch_$table_get trace_catch_$table_put_data trace_catch_$table_remove trace_catch_$table_seek trace_entrypoints_$get_path_name trace_parameters_$free_parameters trace_parameters_$update_parameters THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. trace_$stt_ptr trace_$swt_ptr trace_catch_$metered trace_catch_$removed trace_catch_$trace_storage_ptr trace_catch_$tt_ptr trace_catch_$wt_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000244 20 000254 25 000257 28 000270 29 000277 30 000310 32 000313 33 000322 34 000333 36 000336 37 000345 38 000356 40 000361 41 000370 42 000401 44 000404 60 000440 63 000450 65 000462 68 000476 70 000510 73 000524 78 000560 81 000601 82 000605 84 000613 86 000621 87 000637 88 000641 89 000643 90 000645 91 000651 93 000657 95 000665 96 000703 97 000705 102 000741 104 000754 105 000760 106 000763 107 000764 108 000765 111 001001 112 001016 113 001020 114 001023 116 001031 117 001046 118 001050 119 001052 120 001055 121 001057 154 001113 156 001124 157 001130 159 001133 160 001134 161 001135 164 001151 165 001166 166 001170 168 001175 169 001210 171 001211 172 001214 174 001223 175 001240 176 001242 177 001245 178 001260 180 001262 181 001264 182 001277 184 001304 185 001305 187 001306 188 001323 190 001326 191 001341 194 001342 196 001344 197 001347 198 001351 203 001405 205 001417 206 001423 207 001426 208 001427 210 001432 211 001434 212 001435 213 001436 214 001440 215 001442 216 001451 217 001466 218 001470 219 001472 220 001505 221 001507 222 001510 224 001517 225 001534 226 001547 228 001551 229 001553 230 001570 232 001576 233 001600 234 001613 235 001615 237 001616 239 001620 240 001623 245 001657 247 001670 248 001674 249 001677 250 001700 252 001703 253 001705 254 001706 255 001707 256 001711 257 001713 258 001714 260 001723 261 001740 262 001753 264 001755 265 001757 266 001774 268 002002 270 002003 272 002005 273 002010 278 002044 280 002055 281 002057 284 002060 286 002071 287 002072 290 002073 292 002077 294 002102 295 002103 298 002117 299 002134 300 002136 301 002140 303 002145 304 002147 306 002150 307 002153 309 002161 310 002176 311 002211 313 002213 314 002215 315 002217 317 002224 318 002226 321 002227 323 002231 324 002234 329 002270 331 002303 332 002306 333 002312 335 002321 336 002336 337 002340 338 002342 341 002427 343 002446 344 002451 345 002455 347 002464 348 002501 349 002503 350 002505 353 002573 355 002610 356 002613 357 002617 359 002626 360 002643 361 002645 362 002647 365 002735 367 002753 370 003043 372 003060 375 003150 377 003161 378 003165 379 003175 380 003212 381 003214 382 003216 383 003221 384 003222 385 003225 386 003230 387 003232 388 003241 389 003247 394 003303 396 003321 397 003326 400 003505 402 003521 403 003524 404 003530 406 003600 407 003615 408 003617 409 003621 411 004117 414 004367 416 004403 417 004406 418 004412 420 004421 421 004436 422 004440 425 004473 427 004505 428 004510 429 004514 431 004523 432 004540 433 004542 436 004772 438 005006 439 005011 440 005015 442 005024 443 005041 444 005043 445 005045 447 005116 450 005202 452 005251 455 005315 457 005331 458 005334 459 005340 461 005347 462 005364 463 005366 464 005370 467 005530 469 005545 472 005743 474 005760 475 005764 477 005772 480 006152 482 006164 483 006167 484 006173 486 006202 487 006217 488 006221 489 006223 492 006260 494 006275 495 006300 496 006304 497 006307 499 006451 501 006461 502 006476 503 006511 506 006655 508 006667 509 006672 510 006676 512 006705 513 006722 514 006724 515 006726 520 007101 522 007113 523 007116 524 007122 526 007131 527 007146 528 007150 531 007203 533 007215 534 007220 535 007224 537 007233 538 007250 539 007252 542 007502 544 007515 545 007520 546 007524 548 007533 549 007550 550 007552 551 007554 552 007557 555 007616 557 007633 560 010031 562 010046 563 010052 564 010055 566 010231 569 010411 571 010426 572 010431 573 010435 574 010440 576 010602 578 010612 579 010627 580 010642 583 011006 585 011021 586 011025 588 011034 593 011107 594 011112 596 011113 598 011116 599 011151 602 011233 603 011236 604 011240 606 011253 609 011307 611 011317 612 011323 613 011326 615 011332 617 011343 618 011360 619 011362 620 011365 622 011402 623 011404 630 011440 632 011457 633 011463 635 011522 636 011535 638 011541 641 011560 642 011570 643 011572 644 011574 645 011576 646 011611 648 011616 651 011762 653 011773 654 011777 657 012051 658 012054 661 012110 663 012124 664 012130 665 012133 669 012205 671 012263 674 012344 675 012364 677 012366 678 012403 679 012405 680 012407 682 012410 683 012420 684 012432 685 012434 687 012436 688 012440 689 012453 691 012460 47 012514 51 012516 52 012522 53 012525 54 012527 55 012531 123 012532 126 012534 127 012540 128 012542 129 012555 131 012557 133 012562 136 012601 137 012603 138 012616 140 012623 141 012624 143 012625 145 012630 149 012645 696 012646 701 012650 702 012653 704 012660 705 012675 706 012704 707 012707 708 012711 709 012714 710 012717 711 012722 712 012724 713 012731 716 012732 720 012734 721 012743 723 012746 724 012753 726 012764 727 012767 729 012774 731 013000 733 013012 734 013021 ----------------------------------------------------------- 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