COMPILATION LISTING OF SEGMENT as_meter_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1254.0 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4 */ 13 as_meter_: proc (a_tcpu, a_tidle, a_uidle, a_respons, a_wspage, a_thrash, a_avelig, a_avquln); 14 15 16 /* AS_METER_ - procedure to obtain system metering figures for answering service. 17* 18* This program copies the header of the SST and the header of TC_DATA 19* from ring 0 and derives some useful figures from the data. 20* 21* It also reads the configuration deck and sets data about the configuration 22* into a special data base. 23* 24* It also contains entry points used for metering answering srvice resource usage: asmt_(init enter exit exit_values). 25**/ 26 27 /* * Modification history: 28* * 71-02-15, THVV: Based on the "tcm" command by Webber 29* * 77-04-12, THVV: Modified to use ring 0 defs and to flush core and AST 30* * 77-08-21, B. Greenberg: Modified for syserr log scan. 31* * 80-03-02, Tom Casey: Modified to add metering of answering 32* * service resource usage. 33* * 80-11-10, Richard Lamson: Modified to fix untimely death of 34* * core flush mechanism 35* * 81-01-10, E. N. Kittlitz: Modified to only count ON CPUs as ON. 36* * 81-02-21, J. Bongiovanni: Modified for system virtual time 37* * 81-06-05, T. Casey: Modified for MR9.0 to meter the cost of 38* * doing the answering service metering. 39* * 81-07-23, T. Casey: Modified for MR9.0 to fix bug in handling 40* * of recursive entries. 41* * 81-08-17, T. Casey: Modified for AS11.6, MR9.0, to change 42* * switches in asmt from bit to fixed bin. 43* * 81-11-20, E. N. Kittlitz: Modified for user_table_entry conversion. 44* * 82-05-01, E. N. Kittlitz: Modified for new AS initialization. 45* * 83-06-08, E. N. Kittlitz: Modified to use config_. 46* * 84-01-20, BIM: Removed PML support. 47* * 84-10-18, Allen Ball: Modified to reflect in syserr messages 48* * that there is no more `FDUMP`s. 49* * 84-11-11, W. Olin Sibert: Moved syserr log segment damage scan 50* * mechanism to syserr_log_man_ 51**/ 52 53 /****^ HISTORY COMMENTS: 54* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 55* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 56* Correct error message documentation. 57* 2) change(87-04-27,GDixon), approve(87-07-13,MCR7741), 58* audit(87-07-21,Brunelle), install(87-08-04,MR12.1-1055): 59* Upgraded for change to answer_table.incl.pl1. 60* 3) change(87-07-23,Brunelle), approve(87-07-23,MCR7741), 61* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 62* Changed to use sys_log_constants constants on sys_log_ calls. 63* END HISTORY COMMENTS */ 64 65 /* DECLARATIONS */ 66 67 /* Parameters */ 68 69 dcl a_tcpu fixed bin (71); /* total cpu time available */ 70 dcl a_tidle fixed bin (71); /* total idle time */ 71 dcl a_uidle fixed bin (71); /* "usable" idle (exclude mp idle) */ 72 dcl a_respons float bin; /* estimated response in secs */ 73 dcl a_wspage fixed bin; /* number of working-set pages */ 74 dcl a_thrash float bin; 75 dcl a_avelig float bin; 76 dcl a_avquln float bin; /* average queue lth */ 77 dcl slot_no fixed bin; 78 dcl a_pf fixed bin; 79 dcl a_vcpu fixed bin (71); 80 dcl a_rt fixed bin (71); 81 82 /* Automatic */ 83 84 /* binary */ 85 dcl damage_count fixed bin (35); 86 dcl delta_pf fixed bin (34); 87 dcl delta_real_time fixed bin (71); 88 dcl delta_vcpu fixed bin (71); 89 dcl dump_lth fixed bin; 90 dcl ec fixed bin (35); 91 dcl i fixed bin; 92 dcl now fixed bin (71); 93 dcl pf fixed bin; 94 dcl sst_buffer (512) fixed bin; 95 dcl steps fixed bin (35); 96 dcl vcpu fixed bin (71); 97 dcl (factor, pre_calls, post_calls, temp) float bin; 98 99 /* bit */ 100 dcl return_values bit (1) aligned; 101 dcl (dump_valid, dump_valid_355) bit (1); 102 103 /* char */ 104 dcl crashid char (8) aligned; 105 dcl dtstr char (16); 106 dcl me char (12); 107 dcl (dump_ename, dump_ename_355) char (32) aligned; 108 dcl err_msg char (256); 109 110 /* ptr */ 111 dcl asmtep ptr init (null); 112 dcl sstp3 ptr; 113 dcl (sstp2, tcdp2) ptr; 114 115 116 /* Based */ 117 118 dcl asteps (0:3) fixed bin (35) based aligned; 119 dcl double fixed bin (71) based aligned; 120 dcl 1 level (0:3) based aligned, 121 2 (ausedp, no_aste) fixed bin (17) unal; 122 dcl scaled fixed bin (35, 18) based aligned; 123 dcl single fixed bin (35) based aligned; 124 dcl words128 (128) fixed bin based; 125 126 /* Builtin */ 127 128 dcl (addr, addrel, clock, divide, hbound, length, null, ptr, substr) builtin; 129 130 131 /* Entries */ 132 133 dcl as_dump_ entry (char (*)); 134 dcl config_$find entry (char (4) aligned, ptr); 135 dcl cpu_time_and_paging_ entry (fixed bin, fixed bin (71), fixed bin); 136 dcl date_time_ entry (fixed bin (71), char (*)); 137 dcl get_wdir_ entry returns (char (168) aligned); 138 dcl hcs_$make_seg entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (5), ptr, fixed bin (35)); 139 dcl hcs_$truncate_seg entry (ptr, fixed bin, fixed bin (35)); 140 dcl hphcs_$flush_ast_pool entry (fixed bin); 141 dcl hphcs_$flush_core entry (); 142 dcl hphcs_$get_fdump_num entry (fixed bin, bit (1), char (32) aligned, bit (1), char (32) aligned, fixed bin (35)); 143 dcl ioa_$rsnnl entry options (variable); /* ctl_str,ret_str,ret_len,...other args ... */ 144 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 145 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 146 dcl phcs_$ring_0_peek entry (ptr, ptr, fixed bin); 147 dcl ring0_get_$definition entry (ptr, char (*), char (*), fixed bin (18), fixed bin, fixed bin (35)); 148 dcl ring0_get_$segptr entry (char (*), char (*), ptr, fixed bin (35)); 149 dcl sub_err_ entry () options (variable); 150 dcl sys_log_ entry options (variable); 151 dcl sys_log_$error_log entry options (variable); 152 dcl syserr_log_man_$as_copy_log entry (); 153 dcl timer_manager_$alarm_wakeup entry (fixed bin (71), bit (2), fixed bin (71)); 154 155 /* External static */ 156 157 dcl error_table_$out_of_sequence fixed bin (35) ext static; 158 dcl sys_info$max_seg_size fixed bin (35) ext; 159 160 /* Internal static */ 161 162 /* binary - SST and TCM offsets */ 163 164 dcl SSTasteps_loc fixed bin (18) static init (0); 165 dcl SSTdamage_ct_loc fixed bin (18) static init (0); 166 dcl SSTlevel_loc fixed bin (18) static init (0); 167 dcl SSTnused_loc fixed bin (18) static init (0); 168 dcl SSTpost_purge_calls_loc fixed bin (18) static init (0); 169 dcl SSTpre_page_calls_loc fixed bin (18) static init (0); 170 dcl SSTpre_page_size_loc fixed bin (18) static init (0); 171 dcl SSTthrashing_loc fixed bin (18) static init (0); 172 dcl TCMave_eligible_loc fixed bin (18) static init (0); 173 dcl TCMavequeue_loc fixed bin (18) static init (0); 174 dcl TCMdelta_vcpu_loc fixed bin (18) static init (0); 175 dcl TCMidle_loc fixed bin (18) static init (0); 176 dcl TCMprocessor_time_loc fixed bin (18) static init (0); 177 dcl TCMresponse_count_loc fixed bin (18) static init (0); 178 dcl TCMresponse_time_loc fixed bin (18) static init (0); 179 dcl TCMsystem_virtual_time_loc fixed bin (18) static init (0); 180 dcl TCMworking_set_addend_loc fixed bin (18) static init (0); 181 dcl TCMworking_set_factor_loc fixed bin (18) static init (0); 182 dcl TCMzero_idle_loc fixed bin (18) static init (0); 183 184 /* binary - other */ 185 dcl MILLION fixed bin (21) static options (constant) init (1000000); 186 dcl MAX fixed bin int static init (1); /* Maximum number of entries. */ 187 dcl OFFSET fixed bin (71) static options (constant) init (300000000); /* 5 mins */ 188 dcl core_flush_channel fixed bin (71) static; 189 dcl core_flush_time fixed bin (71) static; /* relative seconds */ 190 dcl disable_metering bit (1) aligned int static init ("1"b); 191 dcl old_ast_steps (0:3) fixed bin (35) static init ((4) 0); 192 dcl old_damage_count fixed bin (35) static; 193 dcl (ncpu, nmem) fixed bin static; 194 195 /* bit */ 196 dcl asmt_initialized bit (1) aligned int static init (""b); 197 dcl debug_sw bit (1) aligned int static init (""b); /* take asdump on asmt errors, if on */ 198 199 /* ptr */ 200 dcl statp ptr int static init (null); /* pointer to data segment */ 201 dcl tcdp ptr int static; 202 dcl xsstp ptr int static; 203 204 205 /* INCLUDE FILES are at the end, after all the code, but before the message documentation. */ 206 207 /* MAIN ENTRY POINT as_meter_: proc (eight arguments - see first page) */ 208 209 a_tcpu, a_tidle, a_uidle = 0; 210 a_respons, a_thrash, a_avelig, a_avquln = 0e0; 211 a_wspage = 0; 212 if disable_metering then return; 213 214 statistics.index = statistics.index + 1; 215 if statistics.index > MAX then do; 216 statistics.index = 1; 217 statistics.wrapped = statistics.wrapped + 1; 218 end; 219 220 tcdp2 = addr (statistics.tcdata_contents (statistics.index, 1)); 221 sstp2 = addr (statistics.sst_contents (statistics.index, 1)); 222 sstp3 = addr (sst_buffer); 223 224 call phcs_$ring_0_peek (xsstp, sstp3, 512); 225 sstp2 -> words128 = sstp3 -> words128; 226 call phcs_$ring_0_peek (tcdp, tcdp2, 256); 227 228 a_tcpu = addrel (tcdp2, TCMprocessor_time_loc) -> double - addrel (tcdp2, TCMdelta_vcpu_loc) -> double; 229 a_tidle = addrel (tcdp2, TCMidle_loc) -> double; 230 a_uidle = addrel (tcdp2, TCMzero_idle_loc) -> double; 231 232 factor = addrel (tcdp2, TCMworking_set_factor_loc) -> scaled; 233 pre_calls = addrel (sstp3, SSTpre_page_calls_loc) -> single; 234 temp = addrel (sstp3, SSTpre_page_size_loc) -> single; 235 if factor = 0e0 then a_wspage = 0; 236 else a_wspage = temp / factor - pre_calls * addrel (tcdp2, TCMworking_set_addend_loc) -> single; 237 temp = addrel (sstp3, SSTthrashing_loc) -> single; 238 post_calls = addrel (sstp3, SSTpost_purge_calls_loc) -> single; 239 if post_calls = 0e0 then a_thrash = 0e0; 240 else a_thrash = temp / post_calls; 241 242 a_avelig = addrel (tcdp2, TCMave_eligible_loc) -> scaled; 243 a_avquln = addrel (tcdp2, TCMavequeue_loc) -> scaled; 244 245 temp = addrel (tcdp2, TCMresponse_time_loc) -> double / 262144e0; 246 if addrel (tcdp2, TCMresponse_count_loc) -> single = 0 then a_respons = 0e0; 247 else a_respons = temp / addrel (tcdp2, TCMresponse_count_loc) -> single; 248 249 /* This section fills in some of the header items in the stat_seg block. */ 250 251 call read_deck; 252 253 statistics.time_of = clock (); 254 statistics.time (statistics.index) = statistics.time_of; 255 statistics.sysid (statistics.index) = substr (whotab.sysid, 1, length (statistics.sysid (statistics.index))); 256 statistics.uptime (statistics.index) = whotab.timeup; 257 ansp = as_data_$ansp; 258 statistics.units (statistics.index) = anstbl.n_units; 259 statistics.users (statistics.index) = anstbl.n_users; 260 statistics.erfno (statistics.index) = ""; /* System is running now. */ 261 statistics.crashtime (statistics.index) = 0; 262 statistics.ncpu (statistics.index) = ncpu; 263 statistics.kmem (statistics.index) = nmem; 264 statistics.kbulk (statistics.index) = 0; 265 call phcs_$ring_0_peek (ptr (tcdp, TCMsystem_virtual_time_loc), 266 addr (statistics.system_virtual_time (statistics.index)), 2); 267 268 269 /* Check if any AST pool has low steps and force update_vtoce's if needed. */ 270 if ^debug_sw then do; 271 do i = 0 to 3; 272 steps = addrel (sstp3, SSTasteps_loc) -> asteps (i); 273 if (steps - old_ast_steps (i)) < addrel (sstp3, SSTlevel_loc) -> level (i).no_aste 274 then call hphcs_$flush_ast_pool (i); 275 old_ast_steps (i) = steps; 276 end; 277 278 call scan_syserr_log; 279 end; 280 281 return; 282 283 /* ADDITIONAL ENTRY POINTS, IN ALPHABETIC ORDER */ 284 285 asmt_debug: entry; /* to turn debug_sw on and off */ 286 287 debug_sw = ^debug_sw; 288 call sys_log_ (SL_LOG, "as_meter_: debug switch turned ^[ON^;OFF^].", debug_sw); 289 return; 290 291 asmt_init: entry; /* Initialize A.S. resource usage metering */ 292 293 if ^sc_stat_$Multics_typed | sc_stat_$Go_typed then 294 call sub_err_ (error_table_$out_of_sequence, "as_meter_$asmt_init", "s"); 295 asmt_initialized = "0"b; /* not up until we're done */ 296 debug_sw = as_data_$debug_flag; 297 now = clock (); /* read clock */ 298 call cpu_time_and_paging_ (pf, vcpu, (0)); /* and meters */ 299 call hcs_$make_seg ((get_wdir_ ()), "as_meter_table", "", 1010b, asmtp, ec); 300 if asmtp = null then do; 301 call sys_log_$error_log (SL_LOG, ec, "as_meter_$asmt_init", 302 "Unable to get pointer to as_meter_table; performance metering disabled."); 303 return; 304 end; 305 call hcs_$truncate_seg (asmtp, (0), ec); /* zero everything in it */ 306 if ec ^= 0 then do; 307 call sys_log_$error_log (SL_LOG, ec, "as_meter_$asmt_init", 308 "Unable to truncate as_meter_table; performance metering disabled."); 309 return; 310 end; 311 312 asmt.version = ASMT_VERSION_1; /* initialize it */ 313 asmt.startup_clock = now; /* remember when we did so */ 314 asmt.startup_vcpu = vcpu; /* and remember how much was used before meters were turned on */ 315 asmt.startup_pf = pf; 316 317 /* Meter cost of calls to asmt entry points */ 318 asmt.asmt_count = asmt.asmt_count + 1; 319 asmt.asmt_real_time = asmt.asmt_real_time + 320 (clock () - asmt.startup_clock); 321 call cpu_time_and_paging_ (pf, vcpu, (0)); 322 asmt.asmt_vcpu = asmt.asmt_vcpu + 323 (vcpu - asmt.startup_vcpu); 324 asmt.asmt_pf = asmt.asmt_pf + 325 (pf - asmt.startup_pf); 326 327 asmt_initialized = "1"b; 328 329 return; 330 331 asmt_ptr: entry returns (ptr); /* to save other procs the trouble of initiating as_meter_table */ 332 333 return (asmtp); 334 335 as_meter_init: entry (atlu, ancrash, anxt_update, aintv); 336 337 dcl atlu fixed bin (71), /* time of last update in prev run (return) */ 338 ancrash fixed bin, /* Number of users thought to be on at crash. */ 339 anxt_update fixed bin (71), /* time of next accounting update */ 340 aintv fixed bin (71); /* interval in seconds */ 341 342 whotab.erfno = ""; /* Assume didn't crash */ 343 debug_sw = as_data_$debug_flag; 344 if ^debug_sw then do; 345 call hphcs_$get_fdump_num (dump_lth, dump_valid, dump_ename, dump_valid_355, dump_ename_355, ec); 346 if ec = 0 then 347 if dump_valid then do; /* Was a dump taken? */ 348 crashid = substr (dump_ename, 15); /* Yes. Get dump ID */ 349 whotab.erfno = crashid; 350 if ancrash = 0 then ancrash = 1; /* Make sure crash is noted, if a dump was taken. */ 351 call sys_log_ (SL_LOG, "as_meter_: DUMP number is ^a", crashid); 352 end; 353 end; 354 whotab.lastsd = atlu; /* Initialize whotab. */ 355 if ancrash ^= 0 then /* Were there any users who didn't log out? */ 356 if whotab.erfno = "" then /* Yes. So we crashed. Was there a dump? */ 357 whotab.erfno = "crash"; /* No. Just indicate crash. */ 358 359 call ring0_get_$segptr ("", "sst", xsstp, ec); /* Locate the config info.. */ 360 if ec ^= 0 then call error ("sst"); 361 call ring0_get_$segptr ("", "tc_data", tcdp, ec); 362 if ec ^= 0 then call error ("tc_data"); 363 364 call getloc (xsstp, "asteps", SSTasteps_loc); 365 call getloc (xsstp, "damaged_ct", SSTdamage_ct_loc); 366 call getloc (xsstp, "level", SSTlevel_loc); 367 call getloc (xsstp, "nused", SSTnused_loc); 368 call getloc (xsstp, "post_purge_calls", SSTpost_purge_calls_loc); 369 call getloc (xsstp, "pre_page_calls", SSTpre_page_calls_loc); 370 call getloc (xsstp, "pre_page_size", SSTpre_page_size_loc); 371 call getloc (xsstp, "thrashing", SSTthrashing_loc); 372 call getloc (tcdp, "ave_eligible", TCMave_eligible_loc); 373 call getloc (tcdp, "avequeue", TCMavequeue_loc); 374 call getloc (tcdp, "delta_vcpu", TCMdelta_vcpu_loc); 375 call getloc (tcdp, "idle", TCMidle_loc); 376 call getloc (tcdp, "processor_time", TCMprocessor_time_loc); 377 call getloc (tcdp, "response_count", TCMresponse_count_loc); 378 call getloc (tcdp, "response_time", TCMresponse_time_loc); 379 call getloc (tcdp, "system_virtual_time", TCMsystem_virtual_time_loc); 380 call getloc (tcdp, "working_set_addend", TCMworking_set_addend_loc); 381 call getloc (tcdp, "working_set_factor", TCMworking_set_factor_loc); 382 call getloc (tcdp, "zero_idle", TCMzero_idle_loc); 383 384 call read_deck; /* Get config, for first maxu auto call. */ 385 386 call hcs_$make_seg ((get_wdir_ ()), "stat_seg", "", 1011b, statp, ec); 387 if statp = null then call error ("stat_seg"); 388 if statistics.time_of > atlu then atlu = statistics.time_of; 389 whotab.lastsd = atlu; /* Might be better figure. */ 390 391 if statistics.index = 0 then statistics.index = 1;/* Stat_seg did not exist before */ 392 statistics.erfno (statistics.index) = whotab.erfno; /* Patch up last entry before crash. */ 393 statistics.crashtime (statistics.index) = whotab.lastsd; 394 MAX = divide (sys_info$max_seg_size - STAT_header_lth, STAT_entry_lth, 17, 0); 395 396 /* Get initial values for AST steps */ 397 398 sstp3 = addr (sst_buffer); 399 call phcs_$ring_0_peek (xsstp, sstp3, 512); 400 do i = 0 to 3; 401 old_ast_steps (i) = addrel (sstp3, SSTasteps_loc) -> asteps (i); 402 end; 403 404 call ipc_$create_ev_chn (core_flush_channel, ec); 405 if ec ^= 0 then call error ("flush evchn"); 406 call ipc_$decl_ev_call_chn (core_flush_channel, core_flush, null, CORE_FLUSH_PRIO, ec); 407 if ec ^= 0 then call error ("flush call chn"); 408 core_flush_time = anxt_update - OFFSET + aintv * MILLION; 409 call timer_manager_$alarm_wakeup (core_flush_time, "00"b, core_flush_channel); 410 if ^debug_sw then 411 call hphcs_$flush_core; /* get ball rolling */ 412 core_flush_time = aintv; /* do it every so often */ 413 414 old_damage_count = 0; 415 416 if ^debug_sw then 417 call scan_syserr_log; 418 419 disable_metering = "0"b; /* Turn on the metering. */ 420 421 bust_out: return; 422 423 as_meter_stop: entry; 424 425 disable_metering = "1"b; 426 return; 427 428 core_flush: entry (dataptr); 429 430 dcl dataptr ptr; 431 432 call timer_manager_$alarm_wakeup (core_flush_time, "11"b, core_flush_channel); 433 if ^debug_sw then 434 call hphcs_$flush_core; 435 436 return; 437 438 /* This entry point is called at the beginning of execution of a subsystem whose usage is being metered. */ 439 440 enter: entry (slot_no); 441 442 me = "enter"; 443 444 if ^asmt_initialized then return; /* don't fault if called before initialization */ 445 446 if slot_no <= 0 | slot_no > hbound (asmt.entry, 1) then do; 447 bad_slot: call ioa_$rsnnl ("as_meter_$^a: called with slot_no=^d.", err_msg, (0), me, slot_no); 448 call error_print; 449 return; 450 end; 451 452 now = clock (); /* read clock */ 453 call cpu_time_and_paging_ (pf, vcpu, (0)); /* and meters */ 454 455 asmt.update_in_progress = 1; /* so as_meters command can detect an inconsistent copy */ 456 457 asmtep = addr (asmt.entry (slot_no)); /* get ptr to table entry for this subsystem */ 458 459 if asmte.entered > 0 then do; /* if subsystem is already entered */ 460 if substr (recursion_possible, slot_no, 1) then do; /* if recursive calls to it are legal */ 461 asmt.global_entered = asmt.global_entered + 1; /* just increment the various entry counters */ 462 asmte.entered = asmte.entered + 1; 463 asmte.entry_count = asmte.entry_count + 1; 464 asmte.recursive_entry_count = asmte.recursive_entry_count + 1; 465 goto finish_update; /* and leave without changing the usage values */ 466 end; 467 468 /* Probably the subsystem took a fault and never called the exit entry point. Complain and then clean up. */ 469 470 call date_time_ (asmte.update_clock, dtstr); /* format time of original entry */ 471 call ioa_$rsnnl ("as_meter_$enter: called with slot_no ^d already entered at ^a.", err_msg, (0), slot_no, dtstr); 472 call error_print; 473 if asmte.x ^= 0 then do; /* clear x values, if any */ 474 asmte.x_vcpu = 0; 475 asmte.x_real_time = 0; 476 asmte.x_pf = 0; 477 asmte.x = 0; 478 end; 479 asmt.global_entered = asmt.global_entered - 1; 480 asmte.entered = 0; 481 end; 482 483 else do; /* Normal case: subsystem not presently entered */ 484 asmt.global_entered = asmt.global_entered + 1; /* count subsystems presently entered */ 485 asmte.entered = 1; /* mark this subsystem as entered */ 486 asmte.entry_count = asmte.entry_count + 1; /* count entries to this subsystem */ 487 asmte.entry_pf = pf; /* remember page faults at entry */ 488 asmte.entry_vcpu = vcpu; /* and vcpu */ 489 end; 490 491 asmte.update_clock = now; /* record time of this update */ 492 493 finish_update: /* come here to finish update */ 494 asmt.latest_clock = now; /* remember current time in header */ 495 asmt.latest_vcpu = vcpu; /* and also current usage figures */ 496 asmt.latest_pf = pf; 497 498 /* Meter the cost of calls to asmt entry points */ 499 asmt.asmt_count = asmt.asmt_count + 1; 500 asmt.asmt_real_time = asmt.asmt_real_time + 501 (clock () - asmt.latest_clock); 502 call cpu_time_and_paging_ (pf, vcpu, (0)); 503 asmt.asmt_vcpu = asmt.asmt_vcpu + 504 (vcpu - asmt.latest_vcpu); 505 asmt.asmt_pf = asmt.asmt_pf + 506 (pf - asmt.latest_pf); 507 508 asmt.update_in_progress = 0; /* mark table as consistent now */ 509 510 return; 511 512 exit: entry (slot_no); 513 514 me = "exit"; 515 return_values = ""b; /* don't try to return the usage values */ 516 goto exit_common; 517 518 519 /* This entry point is like the above, but it also returns the computed usage values to the caller. */ 520 521 exit_values: entry (slot_no, a_pf, a_vcpu, a_rt); 522 523 me = "exit_values"; 524 return_values = "1"b; /* return the computed usage values to the caller */ 525 a_pf, a_vcpu, a_rt = 0; /* zero return values; don't return garbage if there's an error */ 526 527 exit_common: 528 529 if ^asmt_initialized then return; 530 531 if slot_no <= 0 | slot_no > hbound (asmt.entry, 1) then goto bad_slot; 532 533 now = clock (); 534 call cpu_time_and_paging_ (pf, vcpu, (0)); 535 asmt.update_in_progress = 1; /* mark table as temporarily inconsistent */ 536 537 asmtep = addr (asmt.entry (slot_no)); /* get pointer to table entry for this subsystem */ 538 539 if asmte.entered <= 0 then do; 540 call ioa_$rsnnl ("as_meter_$^a: called with slot_no ^d not entered (^d).", 541 err_msg, (0), me, slot_no, asmte.entered); 542 call error_print; 543 end; 544 545 else do; 546 asmte.entered = asmte.entered - 1; /* decrement recursive call counter */ 547 548 if asmt.global_entered <= 0 then do; /* and, unless there is an error */ 549 call ioa_$rsnnl ("as_meter_$^a: called (for slot_no ^d) with global_entered = ^d", 550 err_msg, (0), me, slot_no, asmt.global_entered); 551 call error_print; 552 asmt.global_entered = 0; 553 end; 554 else asmt.global_entered = asmt.global_entered - 1; /* decrement global entry counter */ 555 556 557 if asmte.entered = 0 then do; /* if subsystem is no longer entered, update its meters */ 558 559 delta_real_time = now - asmte.update_clock; /* compute values of usage during this entry */ 560 delta_vcpu = vcpu - asmte.entry_vcpu; 561 delta_pf = pf - asmte.entry_pf; 562 563 asmte.update_clock = now; /* remember time of update */ 564 565 asmte.tot_real_time = asmte.tot_real_time + delta_real_time; /* update total values */ 566 asmte.tot_vcpu = asmte.tot_vcpu + delta_vcpu; 567 asmte.tot_pf = asmte.tot_pf + delta_pf; 568 569 if return_values then do; /* if caller wants usage values, return the total figures */ 570 a_rt = delta_real_time; 571 a_vcpu = delta_vcpu; 572 a_pf = delta_pf; 573 end; 574 575 if asmte.x ^= 0 then do; /* if we must exclude the usage charged to called subsystems */ 576 delta_real_time = delta_real_time - asmte.x_real_time; /* do it now */ 577 delta_vcpu = delta_vcpu - asmte.x_vcpu; 578 delta_pf = delta_pf - asmte.x_pf; 579 580 asmte.x_real_time = 0; /* clear the x values */ 581 asmte.x_vcpu = 0; 582 asmte.x_pf = 0; 583 asmte.x = 0; /* remember that there are no x values */ 584 end; 585 586 asmte.real_time = asmte.real_time + delta_real_time; /* update the "this subsystem only" meters */ 587 asmte.vcpu = asmte.vcpu + delta_vcpu; 588 asmte.pf = asmte.pf + delta_pf; 589 590 if asmt.global_entered > 0 then /* if other subsystems are entered, record the usage that we just 591* metered, so we can deduct it from their usage when they exit */ 592 do i = 1 to hbound (asmt.entry, 1);/* scan for entered subsystems */ 593 594 asmtep = addr (asmt.entry (i)); /* NOTE that we just clobbered asmtep */ 595 if asmte.entered > 0 then do; /* if this subsystem is presently entered */ 596 asmte.x_real_time = asmte.x_real_time + delta_real_time; 597 asmte.x_vcpu = asmte.x_vcpu + delta_vcpu; 598 asmte.x_pf = asmte.x_pf + delta_pf; 599 asmte.x = 1; /* remember that this subsystem has x values */ 600 end; 601 end; /* end global_entered > 0 */ 602 end; /* end update of subsystem's meters */ 603 end; /* end subsystem was entered */ 604 605 goto finish_update; 606 607 read_config: entry (a_ncpu, a_kmem, a_kbulk); 608 609 dcl (a_ncpu, a_kmem, a_kbulk) fixed bin; 610 611 call read_deck; /* Find out current configuration. */ 612 a_ncpu = ncpu; 613 a_kmem = nmem; 614 a_kbulk = 0; /* someday we'll take out bulk */ 615 616 return; 617 618 /* INTERNAL PROCEDURES, IN ALPHABETIC ORDER */ 619 620 error: proc (id); 621 622 dcl id char (*); 623 624 call sys_log_$error_log (SL_LOG_BEEP, ec, "as_meter_", "Problem getting ""^a"". Metering disabled.", id); 625 go to bust_out; 626 627 end error; 628 629 error_print: proc; /* called on errors in asmt entry points */ 630 631 call sys_log_ (SL_LOG_SILENT, "^a", err_msg); 632 if debug_sw then 633 call as_dump_ (err_msg); 634 return; 635 636 end error_print; 637 638 getloc: proc (p, name, locn); 639 640 dcl p ptr, name char (*), locn fixed bin (18); 641 dcl offset fixed bin (18); 642 643 call ring0_get_$definition (p, "", name, offset, (0), ec); 644 if ec ^= 0 then call error (name); 645 locn = offset; 646 647 end getloc; 648 649 read_deck: proc; 650 651 ncpu, nmem = 0; 652 cpu_cardp, mem_cardp = null; 653 do while ("1"b); 654 call config_$find ("cpu", cpu_cardp); 655 if cpu_cardp = null then go to found_all_cpus; 656 if cpu_card.state = "on" then ncpu = ncpu + 1; 657 end; 658 found_all_cpus: 659 if ncpu = 0 then call error ("config_deck"); /* config_ couldn't find a cpu card */ 660 do while ("1"b); 661 call config_$find ("mem", mem_cardp); 662 if mem_cardp = null then return; 663 if mem_card.state = "on" then nmem = nmem + mem_card.size; 664 end; 665 666 end read_deck; 667 668 scan_syserr_log: proc; 669 670 /* Get all seg/vol damage messages from last time till now */ 671 /* We rely on syserr_log_man_ to interpret them and spit them out */ 672 673 damage_count = addrel (sstp3, SSTdamage_ct_loc) -> single; 674 if damage_count > old_damage_count 675 then call syserr_log_man_$as_copy_log (); 676 677 old_damage_count = damage_count; 678 679 end scan_syserr_log; 680 681 /* format: off */ 682 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The answer table has one entry per "login instance" whether completed or */ 1 6 /* not. It is connected to the Channel Definition Table by the pointer */ 1 7 /* "channel". The header is used mostly by dialup_. */ 1 8 /* */ 1 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 1 10 /* */ 1 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 12 1 13 /****^ HISTORY COMMENTS: 1 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 15* Replace anstbl.incl.pl1. 1 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 1 17* Add anstbl.session_uid_counter. 1 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 1 19* Add anstbl.message_update_time and named constants for values of 1 20* anstbl.session, and to make all padding explicit. 1 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 1 22* Change "entry" to a placeholder so as not to require 1 23* user_table_entry.incl.pl1. 1 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 1 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 1 26* Added the flag login_server_present which indicates whether a login 1 27* server request has been received. This is used to determine whether 1 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 1 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 1 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 1 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 32* A) Moved constants for ute.pw_flags.mask_ctl into 1 33* user_table_entry.incl.pl1. 1 34* B) Added common table header to all user tables. 1 35* END HISTORY COMMENTS */ 1 36 1 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 38 /* */ 1 39 /* The anstbl structure below is divided into sections. Each section begins */ 1 40 /* with a comment describing the elements in the section. Elements are */ 1 41 /* placed within a section, based upon their function or the programs that */ 1 42 /* use them. Each section begins on a double word and is an even number of */ 1 43 /* words long. */ 1 44 /* */ 1 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 46 1 47 1 48 1 49 /* format: style4 */ 1 50 1 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 1 52 1 53 dcl ansp ptr automatic init (null); 1 54 1 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 1 56 2 header like ut_header, /* Header common to all user tables. */ 1 57 1 58 /* Counter elements. */ 1 59 2 nlin fixed bin, /* number of active lines */ 1 60 2 mxlin fixed bin, /* maximum number of active lines */ 1 61 2 n_users fixed bin, /* number of logged-in users */ 1 62 2 max_users fixed bin, /* maximum number of users allowed */ 1 63 2 n_units fixed bin, /* number of logged in units */ 1 64 2 max_units fixed bin, /* maximum number of units */ 1 65 2 n_sessions fixed bin, /* number of Multics sessions */ 1 66 2 n_pad fixed bin, 1 67 1 68 /* Name elements. */ 1 69 2 sysdir char (64) unal, /* name of main system control directory */ 1 70 2 as_tty char (8) unal, /* name of main answering service device. */ 1 71 1 72 /* Login elements. */ 1 73 2 login_word char (8) unal, /* login word if special_session=1 */ 1 74 2 session char (8) unal, /* session indicator */ 1 75 2 special_message char (128) unal, /* message to be printed for special session */ 1 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 1 77 2 message_lng fixed bin, /* length of special message */ 1 78 2 login_pad fixed bin, 1 79 1 80 /* Table update elements. */ 1 81 2 lock_count fixed bin, /* global lock for all system control tables */ 1 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 1 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 1 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 1 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 1 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 1 87 2 update_pad fixed bin, 1 88 1 89 /* dialup_ data values. */ 1 90 2 current_time fixed bin (71), /* Time of last transaction */ 1 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 1 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 1 93 1 94 /* load_ctl_ elements. */ 1 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 1 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 1 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 1 98 /* load_ctl_ load leveling desired response range: */ 1 99 2 response_high fixed bin, /* bad if user response time slower than this */ 1 100 2 response_low fixed bin, /* bad if user response time faster than this */ 1 101 2 load_ctl_pad fixed bin, 1 102 1 103 /* Login server request server data. */ 1 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 1 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 1 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 1 107 1 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 1 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 1 110 3 contents (UTE_SIZE) fixed bin; 1 111 1 112 /* constants */ 1 113 1 114 /* values for anstbl.session */ 1 115 1 116 dcl (AT_NORMAL init ("normal "), 1 117 AT_SPECIAL init ("special "), 1 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 1 119 1 120 dcl UTE_SIZE fixed bin internal static initial (300); 1 121 1 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 682 683 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 2 2 2 3 /* format: style4 */ 2 4 2 5 /* This file must be kept in sync with as_data_.alm */ 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 2 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 2 10* Remove references to the 963 and 029 preaccess commands and remove support 2 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 2 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 2 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 14* Add references to as_data_ entrypoints added for Login Server. 2 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 2 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 17* Added new user signal field of inacrcvd (14) to handle inactivity response 2 18* from user. 2 19* END HISTORY COMMENTS */ 2 20 2 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 2 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 2 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 2 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 2 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 2 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 2 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 2 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 2 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 2 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 2 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 2 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 2 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 2 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 2 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 2 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 2 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 2 38 dcl as_data_$g115_dim char (32) ext static; 2 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 2 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 2 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 2 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 2 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 2 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 2 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 2 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 2 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 2 48 dcl as_data_$request_priority fixed bin ext static; 2 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 2 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 2 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 2 52 dcl as_data_$satp ptr ext static; /* SAT */ 2 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 2 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 2 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 2 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 2 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 2 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 2 59 dcl as_data_$version char (8) ext static; /* AS version */ 2 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 2 61 2 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 2 63 2 n_login_args fixed bin, 2 64 2 pad fixed bin, 2 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 2 66 2 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 2 68 2 n_signals fixed bin, 2 69 2 pad fixed bin, 2 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 2 71 2 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 2 73 2 n_system_signals fixed bin, 2 74 2 pad fixed bin, 2 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 2 76 2 77 dcl as_data_$login_words fixed bin ext static aligned, 2 78 /* interactive login words */ 2 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 2 80 2 n_words fixed bin, 2 81 2 pad fixed bin, 2 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 2 83 2 84 dcl as_data_$debug_flag bit (1) aligned external static; 2 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 2 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 2 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 2 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 2 89 2 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 683 684 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 3 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 7* Removed ansp, autp and dutp from this include file, adding them to 3 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 3 9* daemon_user_table.incl.pl1. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* This include file requires as_data_.incl.pl1 */ 3 14 3 15 /* format: style4 */ 3 16 3 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 3 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 3 19 dcl asmtp ptr defined (as_data_$asmtp); 3 20 dcl devtabp ptr defined (as_data_$devtabp); 3 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 3 22 dcl mgtp ptr defined (as_data_$mgtp); 3 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 3 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 3 25 dcl sat_htp ptr defined (as_data_$sat_htp); 3 26 dcl satp ptr defined (as_data_$satp); 3 27 dcl scdtp ptr defined (as_data_$cdtp); 3 28 dcl sysdir char (168) defined (as_data_$sysdir); 3 29 dcl whoptr ptr defined (as_data_$whoptr); 3 30 3 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 684 685 /* BEGIN INCLUDE FILE as_meter_numbers.incl.pl1 */ 4 2 4 3 /* These are the names and numbers of the slots in as_meter_table 4 4* (see as_meter_table.incl.pl1). 4 5* 4 6* Written March 1980 by Tom Casey 4 7* Modified June 1981 by T. Casey for MR9.0 to add ABS_TRYLOG_METER. 4 8**/ 4 9 4 10 4 11 /****^ HISTORY COMMENTS: 4 12* 1) change(86-01-31,Herbst), approve(87-07-21,MCR7694), 4 13* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 4 14* A) Add NETUP_METER. 4 15* B) Add AS_METER_NAMES array. 4 16* END HISTORY COMMENTS */ 4 17 4 18 4 19 dcl ASINIT_METER fixed bin int static options (constant) init (1); /* as_init_, parts 1 and 2 */ 4 20 dcl DIALUP_METER fixed bin int static options (constant) init (2); /* dialup_ */ 4 21 dcl DUM_METER fixed bin int static options (constant) init (3); /* daemon_user_manager_ */ 4 22 dcl AUM_METER fixed bin int static options (constant) init (4); /* absentee_user_manager_ */ 4 23 dcl AU_METER fixed bin int static options (constant) init (5); /* absentee_utility_ */ 4 24 dcl CPG_METER fixed bin int static options (constant) init (6); /* cpg_ */ 4 25 dcl DPG_METER fixed bin int static options (constant) init (7); /* dpg_ */ 4 26 dcl ACCTUP_METER fixed bin int static options (constant) init (8); /* accounting updates */ 4 27 dcl INSTALL_METER fixed bin int static options (constant) init (9); /* installs (up_sysctl_) */ 4 28 dcl ABSQ_METER fixed bin int static options (constant) init (10); /* absentee queue reads and writes */ 4 29 dcl MSGCORD_METER fixed bin int static options (constant) init (11); /* message coordinator */ 4 30 dcl COMMAND_METER fixed bin int static options (constant) init (12); /* operator commands, other than admin */ 4 31 dcl SAC_METER fixed bin int static options (constant) init (13); /* sac (send_admin_command handling) */ 4 32 dcl ADMIN_METER fixed bin int static options (constant) init (14); /* admin mode */ 4 33 dcl SSU_METER fixed bin int static options (constant) init (15); /* system_start_up.ec, parts 1, 2, and 3 */ 4 34 dcl FIXPDT_METER fixed bin int static options (constant) init (16); /* cleanup of PDTs after crash (act_ctl_$init) */ 4 35 dcl ABS_TRYLOG_METER fixed bin int static options (constant) init (17); /* attempts to login absentees via call lg_ctl_ 4 36* (the attempts might fail because of load control limits) */ 4 37 dcl NETUP_METER fixed bin int static options (constant) init (18); /* a call to network_accounting_update_ */ 4 38 4 39 dcl recursion_possible bit (18) int static options (constant) init ("000000000011000000"b); /* 11 & 12 (MSGCORD and COMMAND) */ 4 40 4 41 /* Bit length of recursion_possible equals highest slot number given above. */ 4 42 4 43 dcl AS_METER_NAMES (18) char (8) int static options (constant) init ( 4 44 "ASINIT", "DIALUP", "DUM", "AUM", "AU", 4 45 "CPG", "DPG", "ACCTUP", "INSTALL", "ABSQ", 4 46 "MSGCORD", "COMMAND", "SAC", "ADMIN", "SSU", 4 47 "FIXPDT", "TRYABSLG", "NETUP"); 4 48 4 49 /* END INCLUDE FILE as_meter_numbers.incl.pl1 */ 685 686 /* BEGIN INCLUDE FILE as_meter_table.incl.pl1 */ 5 2 5 3 /* This include file describes the segment as_meter_table, normally found in >sc1. 5 4* 5 5* This segment contains meters of the resources used by various subsystems of the 5 6* answering service. Real time, virtual cpu time, and page faults are metered. 5 7* In addition, there are counters of various events of interest, such as logins. 5 8* Care is taken to avoid double counting in cases of recursive entry to a subsystem, 5 9* or cases where one subsystem calls another and both are being metered. 5 10* 5 11* Updates to this segment are made primarily by as_meter_, whose enter and exit 5 12* entry points are called by the subsystems just after entry and just before exit. 5 13* In addition, some procedures keep a pointer to this segment and update it directly. 5 14* This segment is printed by the as_meters command; this can be done by any 5 15* process that has read access to this segment. 5 16* 5 17* The segment is truncated and reinitialized at each startup. 5 18* Each entry in the table is permanently assigned to a particular subsystem. 5 19* The assignments are defined in as_meter_numbers.incl.pl1. 5 20* 5 21* Several variables are declared fixed bin (34). The intention is to avoid the 5 22* generation of code that does double word arithmetic when adding to these variables. 5 23* 5 24* The two switches (asmt.update_in_progress and asmte.x) are declared fixed bin so that the as_meters command can 5 25* implement the -reset option by means of a structure subtraction statement (rather than individual subtraction 5 26* statements for all variables in the structure except the two switches), and be able to be compiled 5 27* with no warnings. For that reason, any new switches should be declared fixed bin. 5 28* 5 29* Written March 1980 by Tom Casey 5 30* Modified May 1981 by T. Casey to add cells to meter cost of doing this metering. 5 31* Modified June 1981 by T. Casey for MR9.0 to add 17th entry for TRYLOG_ABS_METER. 5 32* Modified August 1981 by T. Casey for MR9.0 to change the switches from bit to fixed bin. 5 33**/ 5 34 5 35 5 36 /****^ HISTORY COMMENTS: 5 37* 1) change(86-11-13,Herbst), approve(87-07-21,MCR7694), 5 38* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 5 39* Changed to determine number of as_meter slots (entries) based upon the 5 40* variable hbound(AS_METER_NAMES,1) which is declared in 5 41* as_meter_numbers.incl.pl1. 5 42* END HISTORY COMMENTS */ 5 43 5 44 5 45 dcl ASMT_VERSION_1 fixed bin int static options (constant) init (1); 5 46 5 47 dcl 1 asmt aligned based (asmtp), 5 48 2 version fixed bin, 5 49 2 update_in_progress fixed bin, /* table is inconsistent when this word is ^=0 */ 5 50 2 startup_clock fixed bin (71), /* time at startup */ 5 51 2 latest_clock fixed bin (71), /* time at latest metering update */ 5 52 2 startup_vcpu fixed bin (71), /* vcpu used prior to startup */ 5 53 2 latest_vcpu fixed bin (71), /* current total vcpu usage of initializer process */ 5 54 2 startup_pf fixed bin (34), /* page faults taken prior to startup */ 5 55 2 latest_pf fixed bin (34), /* current total page faults taken by initializer process */ 5 56 2 global_entered fixed bin, /* count of subsystems entered but not yet exited */ 5 57 2 logins (3) fixed bin, /* count of interactive, absentee, and daemon logins */ 5 58 2 logouts (3) fixed bin, /* count of interactive, absentee, and daemon logouts */ 5 59 2 asmt_count fixed bin (34), /* count of calls to asmt entry points */ 5 60 2 asmt_real_time fixed bin (71), /* real time spent in those entry points */ 5 61 2 asmt_vcpu fixed bin (71), /* virtual cpu time spent in those entry points */ 5 62 2 asmt_pf fixed bin (34), /* page faults taken while in those entry points */ 5 63 2 asmt_pad (7) fixed bin, /* pad header to 32 words */ 5 64 2 entry (hbound(AS_METER_NAMES,1)) aligned like asmte; /* 32 word entries */ 5 65 5 66 dcl 1 asmte aligned based (asmtep), 5 67 2 entered fixed bin (34), /* if nonzero, subsystem has been entered but not yet exited */ 5 68 2 entry_count fixed bin (34), /* total entries to subsystem in this bootload */ 5 69 2 update_clock fixed bin (71), /* time of entry or exit (whichever has happened last) */ 5 70 2 tot_real_time fixed bin (71), /* total real time in subsystem, including called subsystems */ 5 71 2 real_time fixed bin (71), /* real time in subsystem, excluding called subsystems */ 5 72 2 x_real_time fixed bin (71), /* exclude this from tot_real to get real, at next exit */ 5 73 2 entry_vcpu fixed bin (71), /* vcpu usage at entry to subsystem */ 5 74 2 tot_vcpu fixed bin (71), /* total vcpu used in subsystem, including called subsystems */ 5 75 2 vcpu fixed bin (71), /* vcpu used in subsystem, excluding called subsystems */ 5 76 2 x_vcpu fixed bin (71), /* exclude this from tot_vcpu to get vcpu, at next exit */ 5 77 2 entry_pf fixed bin (34), /* page faults at entry to subsystem */ 5 78 2 tot_pf fixed bin (34), /* total page faults in subsystem, including called subsystems */ 5 79 2 pf fixed bin (34), /* page faults in subsystem, excluding called subsystems */ 5 80 2 x_pf fixed bin (34), /* exclude this from tot_pf to get pf, at next exit */ 5 81 2 x fixed bin, /* ^=0 if subsystem has nonzero x values at the moment */ 5 82 2 recursive_entry_count fixed bin (34), /* number of entries that were recursive */ 5 83 2 asmte_pad (8) fixed bin; /* pad entry to 32 words */ 5 84 5 85 /* END INCLUDE FILE as_meter_table.incl.pl1 */ 686 687 /* BEGIN INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 6 2 6 3 /* This include file defines the priorities of all of the event channels used by the answering service. 6 4* 6 5* They are declared as named constants. They are used in calls to ipc_$decl_ev_call_chn. 6 6* The names correspond to the functions of the event call handlers. 6 7* For brevity in names, MC means message coordinator, and LOGIN includes logout as well. 6 8* 6 9* The comment on each constant lists the procedure(s) that use it to set event channel priorities. 6 10* See the code in those procedures for information on the handlers themselves 6 11* (which are entry variables in some cases, and thus could not be documented in this file). 6 12* 6 13* The priorities range from zero (highest) to 22 (lowest used by the answering service). 6 14* 6 15* The event wait channel on which the A.S. goes blocked awaiting input on the initializer console has highest 6 16* of all priorities, set by as_init_ calling ipc_$set_wait_prior. 6 17* 6 18* Written June 1981 by T. Casey for MR9.0 6 19* Modified 1984-10-15 BIM for sac -> as_request. 6 20* as_request is above login, since sac is important and 6 21* dial requests for already logged in users can take 6 22* first dibs over new logins. 6 23**/ 6 24 6 25 dcl MC_PRIO fixed bin int static options (constant) init (1); /* mc_commands_, mc_con_rec_, mc_util_, mrd_tester */ 6 26 dcl SYSERR_COPY_PRIO fixed bin int static options (constant) init (2); /* syserr_log_man_ */ 6 27 dcl SHUTDOWN_PRIO fixed bin int static options (constant) init (3); /* admin */ 6 28 dcl ACCT_UPDATE_PRIO fixed bin int static options (constant) init (4); /* act_ctl_ */ 6 29 dcl DAEMON_LOGIN_PRIO fixed bin int static options (constant) init (8); /* daemon_user_manager_ */ 6 30 dcl AS_REQUEST_PRIO fixed bin int static options (constant) init (7); /* as_request_ */ 6 31 dcl INSTALL_PRIO fixed bin int static options (constant) init (8); /* up_sysctl_ */ 6 32 dcl INT_LOGIN_PRIO fixed bin int static options (constant) init (8); /* asu_, dialup_, ftp_dialup_ */ 6 33 dcl MPX_LOAD_PRIO fixed bin int static options (constant) init (11); 6 34 /* as_vip7760_mpx_, as_mcs_mpx_, as_ibm3270_mpx_, as_hasp_mpx_ */ 6 35 dcl ABS_DEFER_PRIO fixed bin int static options (constant) init (19); /* absentee_utility_ */ 6 36 dcl ABS_LOGIN_PRIO fixed bin int static options (constant) init (20); /* abentee_user_manager_ */ 6 37 dcl CORE_FLUSH_PRIO fixed bin int static options (constant) init (22); /* as_meter_ */ 6 38 6 39 /* END INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 687 688 /* BEGIN INCLUDE FILE ... config_cpu_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 7 2 /* format: style4 */ 7 3 7 4 dcl cpu_cardp pointer; /* pointer to CPU card */ 7 5 7 6 dcl 1 cpu_card aligned based (cpu_cardp), /* CPU card declaration */ 7 7 2 word char (4), /* "cpu" */ 7 8 2 tag fixed bin (3), /* CPU tag from switches, plus one */ 7 9 2 port fixed bin (3), /* Controller port for CPU */ 7 10 2 state char (4), /* "on", "off", "shut", or "test" */ 7 11 2 type char (4), /* "l68", "dps", "dps8" */ 7 12 7 13 2 model fixed bin, /* 60., 80., or 70. */ 7 14 2 cache_size fixed bin, /* either 0. 2. 8. 16. or 32. */ 7 15 2 expander_port fixed bin (3), /* If present, indicates expander sub-port */ 7 16 7 17 2 pad (7) bit (36) aligned, /* Pad to 15 fields */ 7 18 7 19 2 type_word aligned, 7 20 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 7 21 3 pad1 bit (4) unaligned, 7 22 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 7 23 7 24 dcl CPU_CARD_WORD char (4) aligned internal static options (constant) init ("cpu"); 7 25 7 26 /* END INCLUDE FILE ... config_cpu_card.incl.pl1 */ 688 689 /* BEGIN INCLUDE FILE ... config_mem_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 8 2 8 3 dcl mem_cardp pointer; /* pointer to MEM card */ 8 4 8 5 dcl 1 mem_card aligned based (mem_cardp), /* MEM card declaration */ 8 6 2 word char (4), /* "mem" */ 8 7 2 tag fixed bin (3), /* One more than module port to which controller is attached */ 8 8 2 size fixed bin (18), /* Number of pages in memory controller */ 8 9 2 state char (4), /* State: "on" or "off" */ 8 10 8 11 2 pad (11) bit (36) aligned, /* Pad to 15 fields */ 8 12 8 13 2 type_word aligned, 8 14 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 8 15 3 pad1 bit (4) unaligned, 8 16 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 8 17 8 18 dcl MEM_CARD_WORD char (4) aligned internal static options (constant) init ("mem"); 8 19 8 20 /* END INCLUDE FILE ... config_mem_card.incl.pl1 */ 689 690 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 9 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 9 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 9 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 9 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 9 10* Reorganized by type of data to improve readability. 9 11* END HISTORY COMMENTS */ 9 12 9 13 9 14 /* ACCESS NAMES */ 9 15 dcl ( 9 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 9 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 9 18 ) char(32) ext static; 9 19 9 20 /* PATHNAMES */ 9 21 dcl ( 9 22 sc_stat_$info_dir, /* admin info segs directory */ 9 23 sc_stat_$log_dir, /* as log segs directory */ 9 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 9 25 sc_stat_$sysdir /* system control directory */ 9 26 ) char(168) ext static; 9 27 9 28 /* OTHER CHAR STRINGS */ 9 29 dcl ( 9 30 sc_stat_$master_channel /* Master TTY channel. */ 9 31 ) char(6) aligned ext static; 9 32 9 33 /* LABELS */ 9 34 dcl ( 9 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 9 36 /* ssu_$null_label unless */ 9 37 /* admin_listener is active. */ 9 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 9 39 /* attributable to a particular */ 9 40 /* command. */ 9 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 9 42 ) label variable ext static; 9 43 9 44 /* POINTERS TO */ 9 45 dcl ( 9 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 9 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 9 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 9 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 9 50 /* by sys_log_. */ 9 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 9 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 9 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 9 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 9 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 9 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 9 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 9 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 9 59 ) ptr ext static; 9 60 9 61 /* SWITCHES */ 9 62 dcl ( 9 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 9 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 9 65 sc_stat_$Multics, /* TRUE after answering service started */ 9 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 9 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 9 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 9 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 9 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 9 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 9 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 9 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 9 74 /* if PNT not yet available. */ 9 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 9 76 sc_stat_$test_mode, /* TRUE if in test environment */ 9 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 9 78 /* by operator signed on system console*/ 9 79 ) bit(1) aligned ext static; 9 80 9 81 9 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 690 691 /* BEGIN INCLUDE FILE ... stat_seg.incl.pl1 - answering service statistics */ 10 2 10 3 dcl 1 statistics based (statp) aligned, /* Filled in by "as_meter_" periodically. */ 10 4 2 time_of fixed bin (71), /* Time of sample. */ 10 5 2 index fixed bin, /* Index of current slot */ 10 6 2 wrapped fixed bin, /* Incremented every time we wrap around */ 10 7 2 pad (4) fixed bin, 10 8 2 array (652), /* Array of sample bins */ 10 9 3 time fixed bin (71), /* Sample time */ 10 10 3 sysid char (8), /* Current system ID */ 10 11 3 uptime fixed bin (71), /* Time of bootload */ 10 12 3 units fixed bin, /* Number of load units */ 10 13 3 users fixed bin, /* Number of users */ 10 14 3 erfno char (8), /* ERF number from last crash */ 10 15 3 crashtime fixed bin (71), /* Time of crash. */ 10 16 3 ncpu fixed bin (5) unal, /* Current # of CPU's */ 10 17 3 pad2 bit (30) unal, 10 18 3 kmem fixed bin (17) unal, /* Current # of pages of main core */ 10 19 3 kbulk fixed bin (17) unal, /* Current # of pages of paging dev */ 10 20 3 system_virtual_time fixed bin (71), /* Cumulative virtual cpu time */ 10 21 3 tcdata_contents (256) fixed bin, /* Copy of header of ring 0 tc_data */ 10 22 3 sst_contents (128) fixed bin; /* Copy of header of ring 0 sst */ 10 23 10 24 dcl STAT_header_lth fixed bin int static init (8); /* Lth in words for stat_seg header. */ 10 25 dcl STAT_entry_lth fixed bin int static init (400); /* Length in words for stat_seg entry. */ 10 26 10 27 /* END INCLUDE FILE ... stat_seg.incl.pl1 */ 691 692 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 11 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 7* Added sl_info structure and associated named constants for use in calling 11 8* sys_log_$general. 11 9* END HISTORY COMMENTS */ 11 10 11 11 11 12 /* format: style4 */ 11 13 11 14 dcl ( 11 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 11 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 11 17 SL_TYPE init (-1), /* type message */ 11 18 SL_LOG_SILENT init (0), /* log message */ 11 19 SL_LOG init (1), /* log & type message */ 11 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 11 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 11 22 ) fixed bin internal static options (constant); 11 23 11 24 dcl 1 sl_info aligned automatic, 11 25 2 version char(8), /* structure version */ 11 26 2 arg_list_ptr ptr, /* arg_list with values */ 11 27 2 loc, 11 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 11 29 /* These flags control where the corresponding data item is found.*/ 11 30 /* -1: data appears in the corresponding structure element below */ 11 31 /* 0: data is not present anywhere */ 11 32 /* +N: data is Nth item in argument list pointed to by */ 11 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 11 34 /* corresponding structure element. */ 11 35 /* if data = +N: */ 11 36 /* argN is data_ptr, argN+1 is data_len */ 11 37 /* if ioa_msg = +N: */ 11 38 /* argN+1, ... argLAST are arguments substituted into the */ 11 39 /* ioa_msg control string. The formatted msg is returned. */ 11 40 2 flags, 11 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 11 42 3 flags_pad bit(35) unal, 11 43 2 mode fixed bin, /* as-mode, command-mode */ 11 44 2 severity fixed bin, /* error severity */ 11 45 2 code fixed bin(35), /* error table code */ 11 46 2 caller char(65) varying, /* caller refname$entryname*/ 11 47 2 data, /* binary data ptr/length */ 11 48 3 data_ptr ptr, 11 49 3 data_lth fixed bin(21), 11 50 2 class char(10) varying, /* binary data class */ 11 51 2 ioa_msg char(500) varying; /* formatted message text */ 11 52 11 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 54 /* */ 11 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 11 56 /* their data types should be as shown in the structure above, except that */ 11 57 /* character strings should be char(*) nonvarying. */ 11 58 /* */ 11 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 60 11 61 /* value for sl_info.version */ 11 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 11 63 11 64 /* values for sl_info.mode */ 11 65 dcl (SL_INFO_as_mode init(1), 11 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 11 67 11 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 11 69 dcl (SL_INFO_arg_given_in_structure init(-1), 11 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 11 71 11 72 11 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 74 /* */ 11 75 /* The following static structures are commonly used in the Login Server */ 11 76 /* user control software. */ 11 77 /* */ 11 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 79 11 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 11 81 11 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 11 83 2 version char(8) init ("sl_info1"), 11 84 2 arg_list_ptr ptr init (null), 11 85 2 loc, 11 86 3 (mode init (-1), 11 87 severity init ( 1), 11 88 code init ( 2), 11 89 caller init (-1), 11 90 data init ( 0), 11 91 class init ( 0), 11 92 ioa_msg init ( 3)) fixed bin, 11 93 2 flags, 11 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 95 3 flags_pad bit(35) unal init ("0"b), 11 96 2 mode fixed bin init ( 1), 11 97 2 severity fixed bin init ( 0), 11 98 2 code fixed bin(35) init ( 0), 11 99 2 caller char(65) varying init (""), 11 100 2 data, 11 101 3 data_ptr ptr init (null), 11 102 3 data_lth fixed bin(21) init ( 0), 11 103 2 class char(10) varying init (""), 11 104 2 ioa_msg char(500) varying init (""); 11 105 11 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 11 107 11 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 11 109 2 version char(8) init ("sl_info1"), 11 110 2 arg_list_ptr ptr init (null), 11 111 2 loc, 11 112 3 (mode init (-1), 11 113 severity init ( 1), 11 114 code init ( 0), 11 115 caller init (-1), 11 116 data init ( 0), 11 117 class init ( 0), 11 118 ioa_msg init ( 2)) fixed bin, 11 119 2 flags, 11 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 121 3 flags_pad bit(35) unal init ("0"b), 11 122 2 mode fixed bin init ( 1), 11 123 2 severity fixed bin init ( 0), 11 124 2 code fixed bin(35) init ( 0), 11 125 2 caller char(65) varying init (""), 11 126 2 data, 11 127 3 data_ptr ptr init (null), 11 128 3 data_lth fixed bin(21) init ( 0), 11 129 2 class char(10) varying init (""), 11 130 2 ioa_msg char(500) varying init (""); 11 131 11 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 11 133 11 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 11 135 2 version char(8) init ("sl_info1"), 11 136 2 arg_list_ptr ptr init (null), 11 137 2 loc, 11 138 3 (mode init (-1), 11 139 severity init ( 1), 11 140 code init ( 0), 11 141 caller init (-1), 11 142 data init ( 0), 11 143 class init ( 0), 11 144 ioa_msg init ( 2)) fixed bin, 11 145 2 flags, 11 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 11 147 3 flags_pad bit(35) unal init ("0"b), 11 148 2 mode fixed bin init ( 1), 11 149 2 severity fixed bin init ( 0), 11 150 2 code fixed bin(35) init ( 0), 11 151 2 caller char(65) varying init (""), 11 152 2 data, 11 153 3 data_ptr ptr init (null), 11 154 3 data_lth fixed bin(21) init ( 0), 11 155 2 class char(10) varying init (""), 11 156 2 ioa_msg char(500) varying init (""); 11 157 11 158 11 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 11 160 11 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 11 162 2 version char(8) init ("sl_info1"), 11 163 2 arg_list_ptr ptr init (null), 11 164 2 loc, 11 165 3 (mode init (-1), 11 166 severity init ( 1), 11 167 code init ( 2), 11 168 caller init (-1), 11 169 data init ( 0), 11 170 class init ( 0), 11 171 ioa_msg init ( 4)) fixed bin, 11 172 2 flags, 11 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 174 3 flags_pad bit(35) unal init ("0"b), 11 175 2 mode fixed bin init ( 1), 11 176 2 severity fixed bin init ( 0), 11 177 2 code fixed bin(35) init ( 0), 11 178 2 caller char(65) varying init (""), 11 179 2 data, 11 180 3 data_ptr ptr init (null), 11 181 3 data_lth fixed bin(21) init ( 0), 11 182 2 class char(10) varying init (""), 11 183 2 ioa_msg char(500) varying init (""); 11 184 11 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 11 186 11 187 dcl 1 sl_info_code_msg aligned int static options(constant), 11 188 2 version char(8) init ("sl_info1"), 11 189 2 arg_list_ptr ptr init (null), 11 190 2 loc, 11 191 3 (mode init (-1), 11 192 severity init (-1), 11 193 code init ( 1), 11 194 caller init (-1), 11 195 data init ( 0), 11 196 class init ( 0), 11 197 ioa_msg init ( 2)) fixed bin, 11 198 2 flags, 11 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 200 3 flags_pad bit(35) unal init ("0"b), 11 201 2 mode fixed bin init ( 1), 11 202 2 severity fixed bin init ( 0), 11 203 2 code fixed bin(35) init ( 0), 11 204 2 caller char(65) varying init (""), 11 205 2 data, 11 206 3 data_ptr ptr init (null), 11 207 3 data_lth fixed bin(21) init ( 0), 11 208 2 class char(10) varying init (""), 11 209 2 ioa_msg char(500) varying init (""); 11 210 11 211 11 212 /* Syntax: call Trace (ioa_ctl, args); */ 11 213 11 214 dcl 1 sl_info_msg aligned int static options(constant), 11 215 2 version char(8) init ("sl_info1"), 11 216 2 arg_list_ptr ptr init (null), 11 217 2 loc, 11 218 3 (mode init (-1), 11 219 severity init (-1), 11 220 code init ( 0), 11 221 caller init (-1), 11 222 data init ( 0), 11 223 class init ( 0), 11 224 ioa_msg init ( 1)) fixed bin, 11 225 2 flags, 11 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 11 227 3 flags_pad bit(35) unal init ("0"b), 11 228 2 mode fixed bin init ( 1), 11 229 2 severity fixed bin init ( 0), 11 230 2 code fixed bin(35) init ( 0), 11 231 2 caller char(65) varying init (""), 11 232 2 data, 11 233 3 data_ptr ptr init (null), 11 234 3 data_lth fixed bin(21) init ( 0), 11 235 2 class char(10) varying init (""), 11 236 2 ioa_msg char(500) varying init (""); 11 237 11 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 692 693 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* This include file declares the header shared by the answer_table, */ 12 6 /* absentee_user_table and daemon_user_table include files. */ 12 7 /* */ 12 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 9 12 10 /****^ HISTORY COMMENTS: 12 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 12 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 13* Initial coding. 12 14* END HISTORY COMMENTS */ 12 15 12 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 12 17 2 header_version fixed bin, /* version of the header (3) */ 12 18 2 entry_version fixed bin, /* version of user table entries */ 12 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 12 20 2 header_length fixed bin, /* length of the header */ 12 21 2 max_size fixed bin, /* max number of entries in this table */ 12 22 2 current_size fixed bin, /* actual size of table (in entries) */ 12 23 2 number_free fixed bin, /* number of free entries in the table. */ 12 24 2 first_free fixed bin, /* index of first entry in the free list. */ 12 25 2 as_procid bit (36), /* process ID of user table manager process */ 12 26 2 ut_header_pad fixed bin; 12 27 12 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 693 694 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 13 2 13 3 /* Modified 740723 by PG to add security info */ 13 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 13 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 13 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 13 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 13 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 13 9 13 10 dcl 1 whotab based (whoptr) aligned, 13 11 2 mxusers fixed bin, /* max. number of users on system */ 13 12 2 n_users fixed bin, /* current number of users */ 13 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 13 14 2 n_units fixed bin, /* current load */ 13 15 2 timeup fixed bin (71), /* time system was started */ 13 16 2 session char (8), /* AS state, same as anstbl.session */ 13 17 2 nextsd fixed bin (71), /* time we will shutdown */ 13 18 2 until fixed bin (71), /* projected time we start up again */ 13 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 13 20 2 erfno char (8), /* if a crash, the error number */ 13 21 2 obsolete_why char (32), /* reason for last shutdown */ 13 22 2 installation_id char (32), /* name of installation */ 13 23 2 obsolete_message char (32), /* message for all users */ 13 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 13 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 13 26 2 max_abs_users fixed bin, /* max number of absentee users */ 13 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 13 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 13 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 13 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 13 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 13 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 13 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 13 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 13 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 13 36 2 pad1 bit (9) unal, 13 37 2 pad (3) fixed bin, 13 38 2 version fixed bin, /* structure version */ 13 39 2 header_size fixed bin, /* length of header in words */ 13 40 2 entry_size fixed bin, /* length of entry in words */ 13 41 /* laste_adjust is used only by Answering Service programs */ 13 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 13 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 13 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 13 45 13 46 /* whotab header extension: The header is extended from 64 words by 13 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 13 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 13 49* present. This allows existing programs to function with old definitions of 13 50* whotab. Obviously no new header field can be more than 31 contiguous words in 13 51* length. In the Answering Service, all programs using whotab must be compiled 13 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 13 53 13 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 13 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 13 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 13 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 13 58 2 abs_control, /* see absentee_user_table */ 13 59 3 mnbz bit (1) unal, /* must not be zero */ 13 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 13 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 13 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 13 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 13 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 13 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 13 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 13 67 3 control_pad bit (23) unal, 13 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 13 69 2 installation_request_pid bit (36), /* installation process identifier */ 13 70 2 sysid char (32), /* current system name */ 13 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 13 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 13 73 2 message char (124), /* message for all users */ 13 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 13 75 2 why char (124), /* reason for last shutdown */ 13 76 2 e (1000), /* offset 240o */ 13 77 3 active fixed bin, /* nonzero means logged in */ 13 78 3 person char (28) aligned, /* person name */ 13 79 3 project char (28), /* project id */ 13 80 3 anon fixed bin, /* 1 if anonymous user */ 13 81 3 padding fixed bin (71), 13 82 3 timeon fixed bin (71), /* time of login */ 13 83 3 units fixed bin, /* load units */ 13 84 3 stby fixed bin, /* 1 if stby */ 13 85 3 idcode char (4), /* tty id code */ 13 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 13 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 13 88 3 group char (8), /* party-line group */ 13 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 13 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 13 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 13 92 3 pad2 bit (33) unal, 13 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 13 94 3 process_authorization bit (72); /* access authorization of process */ 13 95 13 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 13 97 13 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 694 695 696 /* format: on */ 697 698 /* BEGIN MESSAGE DOCUMENTATION 699* 700* Message: 701* as_meter_: FDUMP number is NNN 702* 703* S: as (severity1) 704* 705* T: $init 706* 707* M: The system is coming up after a crash. There is a dump, 708* created by the bce dump command, in the DUMP partition. Usually, 709* system_start_up.ec copies this dump into the directory >dumps. 710* 711* A: Follow site instructions concerning the processing of 712* online dumps. The normal procedure is to log in Print_Dump.SysDaemon 713* and request that it process the dump. 714* 715* 716* Message: 717* as_meter_: Problem getting "ITEM". Metering disabled. 718* 719* S: as (severity2) 720* 721* T: $init 722* 723* M: The metering module cannot obtain a pointer to the ring 0 724* hardcore data item ITEM, used in calculating system usage. Metering 725* figures are scrambled, but the system should be able to run. 726* 727* A: $inform 728* 729* END MESSAGE DOCUMENTATION */ 730 731 end as_meter_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1222.6 as_meter_.pl1 >special_ldd>install>MR12.1-1054>as_meter_.pl1 682 1 08/04/87 1210.2 answer_table.incl.pl1 >spec>install>1056>answer_table.incl.pl1 683 2 08/04/87 1154.5 as_data_.incl.pl1 >spec>install>1056>as_data_.incl.pl1 684 3 08/04/87 1140.5 as_data_definitions_.incl.pl1 >spec>install>1056>as_data_definitions_.incl.pl1 685 4 08/04/87 1140.5 as_meter_numbers.incl.pl1 >spec>install>1056>as_meter_numbers.incl.pl1 686 5 08/04/87 1140.5 as_meter_table.incl.pl1 >spec>install>1056>as_meter_table.incl.pl1 687 6 01/21/85 0912.2 as_wakeup_priorities.incl.pl1 >ldd>include>as_wakeup_priorities.incl.pl1 688 7 10/14/83 0957.2 config_cpu_card.incl.pl1 >ldd>include>config_cpu_card.incl.pl1 689 8 05/08/81 1853.6 config_mem_card.incl.pl1 >ldd>include>config_mem_card.incl.pl1 690 9 08/04/87 1139.2 sc_stat_.incl.pl1 >spec>install>1056>sc_stat_.incl.pl1 691 10 07/23/81 1735.0 stat_seg.incl.pl1 >ldd>include>stat_seg.incl.pl1 692 11 08/04/87 1139.0 sys_log_constants.incl.pl1 >spec>install>1056>sys_log_constants.incl.pl1 693 12 08/04/87 1138.0 user_table_header.incl.pl1 >spec>install>1056>user_table_header.incl.pl1 694 13 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.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. ASMT_VERSION_1 constant fixed bin(17,0) initial dcl 5-45 ref 312 AS_METER_NAMES 000001 constant char(8) initial array unaligned dcl 4-43 ref 446 531 590 CORE_FLUSH_PRIO 000000 constant fixed bin(17,0) initial dcl 6-37 set ref 406* MAX 000033 internal static fixed bin(17,0) initial dcl 186 set ref 215 394* MILLION 000050 constant fixed bin(21,0) initial dcl 185 ref 408 OFFSET 000046 constant fixed bin(71,0) initial dcl 187 ref 408 SL_LOG 000125 constant fixed bin(17,0) initial dcl 11-14 set ref 288* 301* 307* 351* SL_LOG_BEEP 000124 constant fixed bin(17,0) initial dcl 11-14 set ref 624* SL_LOG_SILENT 000046 constant fixed bin(17,0) initial dcl 11-14 set ref 631* SSTasteps_loc 000010 internal static fixed bin(18,0) initial dcl 164 set ref 272 364* 401 SSTdamage_ct_loc 000011 internal static fixed bin(18,0) initial dcl 165 set ref 365* 673 SSTlevel_loc 000012 internal static fixed bin(18,0) initial dcl 166 set ref 273 366* SSTnused_loc 000013 internal static fixed bin(18,0) initial dcl 167 set ref 367* SSTpost_purge_calls_loc 000014 internal static fixed bin(18,0) initial dcl 168 set ref 238 368* SSTpre_page_calls_loc 000015 internal static fixed bin(18,0) initial dcl 169 set ref 233 369* SSTpre_page_size_loc 000016 internal static fixed bin(18,0) initial dcl 170 set ref 234 370* SSTthrashing_loc 000017 internal static fixed bin(18,0) initial dcl 171 set ref 237 371* STAT_entry_lth 004716 constant fixed bin(17,0) initial dcl 10-25 ref 394 STAT_header_lth constant fixed bin(17,0) initial dcl 10-24 ref 394 TCMave_eligible_loc 000020 internal static fixed bin(18,0) initial dcl 172 set ref 242 372* TCMavequeue_loc 000021 internal static fixed bin(18,0) initial dcl 173 set ref 243 373* TCMdelta_vcpu_loc 000022 internal static fixed bin(18,0) initial dcl 174 set ref 228 374* TCMidle_loc 000023 internal static fixed bin(18,0) initial dcl 175 set ref 229 375* TCMprocessor_time_loc 000024 internal static fixed bin(18,0) initial dcl 176 set ref 228 376* TCMresponse_count_loc 000025 internal static fixed bin(18,0) initial dcl 177 set ref 246 247 377* TCMresponse_time_loc 000026 internal static fixed bin(18,0) initial dcl 178 set ref 245 378* TCMsystem_virtual_time_loc 000027 internal static fixed bin(18,0) initial dcl 179 set ref 265 265 379* TCMworking_set_addend_loc 000030 internal static fixed bin(18,0) initial dcl 180 set ref 236 380* TCMworking_set_factor_loc 000031 internal static fixed bin(18,0) initial dcl 181 set ref 232 381* TCMzero_idle_loc 000032 internal static fixed bin(18,0) initial dcl 182 set ref 230 382* a_avelig parameter float bin(27) dcl 75 set ref 13 210* 242* a_avquln parameter float bin(27) dcl 76 set ref 13 210* 243* a_kbulk parameter fixed bin(17,0) dcl 609 set ref 607 614* a_kmem parameter fixed bin(17,0) dcl 609 set ref 607 613* a_ncpu parameter fixed bin(17,0) dcl 609 set ref 607 612* a_pf parameter fixed bin(17,0) dcl 78 set ref 521 525* 572* a_respons parameter float bin(27) dcl 72 set ref 13 210* 246* 247* a_rt parameter fixed bin(71,0) dcl 80 set ref 521 525* 570* a_tcpu parameter fixed bin(71,0) dcl 69 set ref 13 209* 228* a_thrash parameter float bin(27) dcl 74 set ref 13 210* 239* 240* a_tidle parameter fixed bin(71,0) dcl 70 set ref 13 209* 229* a_uidle parameter fixed bin(71,0) dcl 71 set ref 13 209* 230* a_vcpu parameter fixed bin(71,0) dcl 79 set ref 521 525* 571* a_wspage parameter fixed bin(17,0) dcl 73 set ref 13 211* 235* 236* addr builtin function dcl 128 ref 220 221 222 265 265 398 457 537 594 addrel builtin function dcl 128 ref 228 228 229 230 232 233 234 236 237 238 242 243 245 246 247 272 273 401 673 aintv parameter fixed bin(71,0) dcl 337 ref 335 408 412 ancrash parameter fixed bin(17,0) dcl 337 set ref 335 350 350* 355 ansp 001272 automatic pointer initial dcl 1-53 set ref 257* 258 259 1-53* anstbl based structure level 1 dcl 1-55 anxt_update parameter fixed bin(71,0) dcl 337 ref 335 408 array 10 based structure array level 2 dcl 10-3 as_data_$ansp 000136 external static pointer dcl 2-26 ref 257 as_data_$asmtp 000140 external static pointer dcl 2-30 ref 299 299 300 300 305 305 312 312 313 313 314 314 315 315 318 318 318 318 319 319 319 319 319 319 322 322 322 322 322 322 324 324 324 324 324 324 333 333 446 446 455 455 457 457 461 461 461 461 479 479 479 479 484 484 484 484 493 493 495 495 496 496 499 499 499 499 500 500 500 500 500 500 503 503 503 503 503 503 505 505 505 505 505 505 508 508 531 531 535 535 537 537 548 548 549 549 552 552 554 554 554 554 590 590 590 590 594 594 as_data_$debug_flag 000144 external static bit(1) dcl 2-84 ref 296 343 as_data_$whoptr 000142 external static pointer dcl 2-60 ref 255 255 256 256 342 342 349 349 354 354 355 355 355 355 389 389 392 392 393 393 as_dump_ 000060 constant entry external dcl 133 ref 632 asmt based structure level 1 dcl 5-47 asmt_count 23 based fixed bin(34,0) level 2 dcl 5-47 set ref 318* 318 499* 499 asmt_initialized 000050 internal static bit(1) initial dcl 196 set ref 295* 327* 444 527 asmt_pf 30 based fixed bin(34,0) level 2 dcl 5-47 set ref 324* 324 505* 505 asmt_real_time 24 based fixed bin(71,0) level 2 dcl 5-47 set ref 319* 319 500* 500 asmt_vcpu 26 based fixed bin(71,0) level 2 dcl 5-47 set ref 322* 322 503* 503 asmte based structure level 1 dcl 5-66 asmtep 001262 automatic pointer initial dcl 111 set ref 111* 457* 459 462 462 463 463 464 464 470 473 474 475 476 477 480 485 486 486 487 488 491 537* 539 540 546 546 557 559 560 561 563 565 565 566 566 567 567 575 576 577 578 580 581 582 583 586 586 587 587 588 588 594* 595 596 596 597 597 598 598 599 asmtp defined pointer dcl 3-19 set ref 299* 300 305* 312 313 314 315 318 318 319 319 319 322 322 322 324 324 324 333 446 455 457 461 461 479 479 484 484 493 495 496 499 499 500 500 500 503 503 503 505 505 505 508 531 535 537 548 549 552 554 554 590 590 594 asteps based fixed bin(35,0) array dcl 118 ref 272 401 atlu parameter fixed bin(71,0) dcl 337 set ref 335 354 388 388* 389 clock builtin function dcl 128 ref 253 297 319 452 500 533 config_$find 000062 constant entry external dcl 134 ref 654 661 core_flush_channel 000034 internal static fixed bin(71,0) dcl 188 set ref 404* 406* 409* 432* core_flush_time 000036 internal static fixed bin(71,0) dcl 189 set ref 408* 409* 412* 432* cpu_card based structure level 1 dcl 7-6 cpu_cardp 001274 automatic pointer dcl 7-4 set ref 652* 654* 655 656 cpu_time_and_paging_ 000064 constant entry external dcl 135 ref 298 321 453 502 534 crashid 001130 automatic char(8) dcl 104 set ref 348* 349 351* crashtime 22 based fixed bin(71,0) array level 3 dcl 10-3 set ref 261* 393* damage_count 000100 automatic fixed bin(35,0) dcl 85 set ref 673* 674 677 dataptr parameter pointer dcl 430 ref 428 date_time_ 000066 constant entry external dcl 136 ref 470 debug_sw 000051 internal static bit(1) initial dcl 197 set ref 270 287* 287 288* 296* 343* 344 410 416 433 632 delta_pf 000101 automatic fixed bin(34,0) dcl 86 set ref 561* 567 572 578* 578 588 598 delta_real_time 000102 automatic fixed bin(71,0) dcl 87 set ref 559* 565 570 576* 576 586 596 delta_vcpu 000104 automatic fixed bin(71,0) dcl 88 set ref 560* 566 571 577* 577 587 597 disable_metering 000040 internal static bit(1) initial dcl 190 set ref 212 419* 425* divide builtin function dcl 128 ref 394 double based fixed bin(71,0) dcl 119 ref 228 228 229 230 245 dtstr 001132 automatic char(16) unaligned dcl 105 set ref 470* 471* dump_ename 001141 automatic char(32) dcl 107 set ref 345* 348 dump_ename_355 001151 automatic char(32) dcl 107 set ref 345* dump_lth 000106 automatic fixed bin(17,0) dcl 89 set ref 345* dump_valid 001125 automatic bit(1) unaligned dcl 101 set ref 345* 346 dump_valid_355 001126 automatic bit(1) unaligned dcl 101 set ref 345* ec 000107 automatic fixed bin(35,0) dcl 90 set ref 299* 301* 305* 306 307* 345* 346 359* 360 361* 362 386* 404* 405 406* 407 624* 643* 644 entered based fixed bin(34,0) level 2 dcl 5-66 set ref 459 462* 462 480* 485* 539 540* 546* 546 557 595 entry 40 based structure array level 2 dcl 5-47 set ref 446 457 531 537 590 594 entry_count 1 based fixed bin(34,0) level 2 dcl 5-66 set ref 463* 463 486* 486 entry_pf 22 based fixed bin(34,0) level 2 dcl 5-66 set ref 487* 561 entry_vcpu 12 based fixed bin(71,0) level 2 dcl 5-66 set ref 488* 560 erfno 16 based char(8) level 2 in structure "whotab" dcl 13-10 in procedure "as_meter_" set ref 342* 349* 355 355* 392 erfno 20 based char(8) array level 3 in structure "statistics" dcl 10-3 in procedure "as_meter_" set ref 260* 392* err_msg 001161 automatic char(256) unaligned dcl 108 set ref 447* 471* 540* 549* 631* 632* error_table_$out_of_sequence 000132 external static fixed bin(35,0) dcl 157 set ref 293* factor 001120 automatic float bin(27) dcl 97 set ref 232* 235 236 get_wdir_ 000070 constant entry external dcl 137 ref 299 386 global_entered 14 based fixed bin(17,0) level 2 dcl 5-47 set ref 461* 461 479* 479 484* 484 548 549* 552* 554* 554 590 hbound builtin function dcl 128 ref 446 446 531 531 590 590 hcs_$make_seg 000072 constant entry external dcl 138 ref 299 386 hcs_$truncate_seg 000074 constant entry external dcl 139 ref 305 hphcs_$flush_ast_pool 000076 constant entry external dcl 140 ref 273 hphcs_$flush_core 000100 constant entry external dcl 141 ref 410 433 hphcs_$get_fdump_num 000102 constant entry external dcl 142 ref 345 i 000110 automatic fixed bin(17,0) dcl 91 set ref 271* 272 273 273 273* 275* 400* 401 401* 590* 594* id parameter char unaligned dcl 622 set ref 620 624* index 2 based fixed bin(17,0) level 2 dcl 10-3 set ref 214* 214 215 216* 220 221 254 255 255 256 258 259 260 261 262 263 264 265 265 391 391* 392 393 ioa_$rsnnl 000104 constant entry external dcl 143 ref 447 471 540 549 ipc_$create_ev_chn 000106 constant entry external dcl 144 ref 404 ipc_$decl_ev_call_chn 000110 constant entry external dcl 145 ref 406 kbulk 25(18) based fixed bin(17,0) array level 3 packed unaligned dcl 10-3 set ref 264* kmem 25 based fixed bin(17,0) array level 3 packed unaligned dcl 10-3 set ref 263* lastsd 14 based fixed bin(71,0) level 2 dcl 13-10 set ref 354* 389* 393 latest_clock 4 based fixed bin(71,0) level 2 dcl 5-47 set ref 493* 500 latest_pf 13 based fixed bin(34,0) level 2 dcl 5-47 set ref 496* 505 latest_vcpu 10 based fixed bin(71,0) level 2 dcl 5-47 set ref 495* 503 length builtin function dcl 128 ref 255 level based structure array level 1 dcl 120 locn parameter fixed bin(18,0) dcl 640 set ref 638 645* me 001136 automatic char(12) unaligned dcl 106 set ref 442* 447* 514* 523* 540* 549* mem_card based structure level 1 dcl 8-5 mem_cardp 001276 automatic pointer dcl 8-3 set ref 652* 661* 662 663 663 n_units 16 based fixed bin(17,0) level 2 dcl 1-55 ref 258 n_users 14 based fixed bin(17,0) level 2 dcl 1-55 ref 259 name parameter char unaligned dcl 640 set ref 638 643* 644* ncpu 24 based fixed bin(5,0) array level 3 in structure "statistics" packed unaligned dcl 10-3 in procedure "as_meter_" set ref 262* ncpu 000046 internal static fixed bin(17,0) dcl 193 in procedure "as_meter_" set ref 262 612 651* 656* 656 658 nmem 000047 internal static fixed bin(17,0) dcl 193 set ref 263 613 651* 663* 663 no_aste 0(18) based fixed bin(17,0) array level 2 packed unaligned dcl 120 ref 273 now 000112 automatic fixed bin(71,0) dcl 92 set ref 297* 313 452* 491 493 533* 559 563 null builtin function dcl 128 ref 111 300 387 406 406 1-53 652 655 662 offset 001324 automatic fixed bin(18,0) dcl 641 set ref 643* 645 old_ast_steps 000041 internal static fixed bin(35,0) initial array dcl 191 set ref 273 275* 401* old_damage_count 000045 internal static fixed bin(35,0) dcl 192 set ref 414* 674 677* p parameter pointer dcl 640 set ref 638 643* pf 000114 automatic fixed bin(17,0) dcl 93 in procedure "as_meter_" set ref 298* 315 321* 324 453* 487 496 502* 505 534* 561 pf 24 based fixed bin(34,0) level 2 in structure "asmte" dcl 5-66 in procedure "as_meter_" set ref 588* 588 phcs_$ring_0_peek 000112 constant entry external dcl 146 ref 224 226 265 399 post_calls 001122 automatic float bin(27) dcl 97 set ref 238* 239 240 pre_calls 001121 automatic float bin(27) dcl 97 set ref 233* 236 ptr builtin function dcl 128 ref 265 265 real_time 6 based fixed bin(71,0) level 2 dcl 5-66 set ref 586* 586 recursion_possible 004717 constant bit(18) initial unaligned dcl 4-39 ref 460 recursive_entry_count 27 based fixed bin(34,0) level 2 dcl 5-66 set ref 464* 464 return_values 001124 automatic bit(1) dcl 100 set ref 515* 524* 569 ring0_get_$definition 000114 constant entry external dcl 147 ref 643 ring0_get_$segptr 000116 constant entry external dcl 148 ref 359 361 sc_stat_$Go_typed 000146 external static bit(1) dcl 9-62 ref 293 sc_stat_$Multics_typed 000150 external static bit(1) dcl 9-62 ref 293 scaled based fixed bin(35,18) dcl 122 ref 232 242 243 single based fixed bin(35,0) dcl 123 ref 233 234 236 237 238 246 247 673 size 2 based fixed bin(18,0) level 2 dcl 8-5 ref 663 slot_no parameter fixed bin(17,0) dcl 77 set ref 440 446 446 447* 457 460 471* 512 521 531 531 537 540* 549* sst_buffer 000115 automatic fixed bin(17,0) array dcl 94 set ref 222 398 sst_contents 430 based fixed bin(17,0) array level 3 dcl 10-3 set ref 221 sstp2 001266 automatic pointer dcl 113 set ref 221* 225 sstp3 001264 automatic pointer dcl 112 set ref 222* 224* 225 233 234 237 238 272 273 398* 399* 401 673 startup_clock 2 based fixed bin(71,0) level 2 dcl 5-47 set ref 313* 319 startup_pf 12 based fixed bin(34,0) level 2 dcl 5-47 set ref 315* 324 startup_vcpu 6 based fixed bin(71,0) level 2 dcl 5-47 set ref 314* 322 state 3 based char(4) level 2 in structure "mem_card" dcl 8-5 in procedure "as_meter_" ref 663 state 3 based char(4) level 2 in structure "cpu_card" dcl 7-6 in procedure "as_meter_" ref 656 statistics based structure level 1 dcl 10-3 statp 000052 internal static pointer initial dcl 200 set ref 214 214 215 216 217 217 220 220 221 221 253 254 254 254 255 255 255 255 256 256 258 258 259 259 260 260 261 261 262 262 263 263 264 264 265 265 265 265 386* 387 388 388 391 391 392 392 393 393 steps 001115 automatic fixed bin(35,0) dcl 95 set ref 272* 273 275 sub_err_ 000120 constant entry external dcl 149 ref 293 substr builtin function dcl 128 ref 255 348 460 sys_info$max_seg_size 000134 external static fixed bin(35,0) dcl 158 ref 394 sys_log_ 000122 constant entry external dcl 150 ref 288 351 631 sys_log_$error_log 000124 constant entry external dcl 151 ref 301 307 624 syserr_log_man_$as_copy_log 000126 constant entry external dcl 152 ref 674 sysid 121 based char(32) level 2 in structure "whotab" dcl 13-10 in procedure "as_meter_" ref 255 sysid 12 based char(8) array level 3 in structure "statistics" dcl 10-3 in procedure "as_meter_" set ref 255* 255 system_virtual_time 26 based fixed bin(71,0) array level 3 dcl 10-3 set ref 265 265 tcdata_contents 30 based fixed bin(17,0) array level 3 dcl 10-3 set ref 220 tcdp 000054 internal static pointer dcl 201 set ref 226* 265 265 361* 372* 373* 374* 375* 376* 377* 378* 379* 380* 381* 382* tcdp2 001270 automatic pointer dcl 113 set ref 220* 226* 228 228 229 230 232 236 242 243 245 246 247 temp 001123 automatic float bin(27) dcl 97 set ref 234* 236 237* 240 245* 247 time 10 based fixed bin(71,0) array level 3 dcl 10-3 set ref 254* time_of based fixed bin(71,0) level 2 dcl 10-3 set ref 253* 254 388 388 timer_manager_$alarm_wakeup 000130 constant entry external dcl 153 ref 409 432 timeup 4 based fixed bin(71,0) level 2 dcl 13-10 ref 256 tot_pf 23 based fixed bin(34,0) level 2 dcl 5-66 set ref 567* 567 tot_real_time 4 based fixed bin(71,0) level 2 dcl 5-66 set ref 565* 565 tot_vcpu 14 based fixed bin(71,0) level 2 dcl 5-66 set ref 566* 566 units 16 based fixed bin(17,0) array level 3 dcl 10-3 set ref 258* update_clock 2 based fixed bin(71,0) level 2 dcl 5-66 set ref 470* 491* 559 563* update_in_progress 1 based fixed bin(17,0) level 2 dcl 5-47 set ref 455* 508* 535* uptime 14 based fixed bin(71,0) array level 3 dcl 10-3 set ref 256* users 17 based fixed bin(17,0) array level 3 dcl 10-3 set ref 259* ut_header based structure level 1 dcl 12-16 vcpu 16 based fixed bin(71,0) level 2 in structure "asmte" dcl 5-66 in procedure "as_meter_" set ref 587* 587 vcpu 001116 automatic fixed bin(71,0) dcl 96 in procedure "as_meter_" set ref 298* 314 321* 322 453* 488 495 502* 503 534* 560 version based fixed bin(17,0) level 2 dcl 5-47 set ref 312* whoptr defined pointer dcl 3-29 ref 255 256 342 349 354 355 355 389 392 393 whotab based structure level 1 dcl 13-10 words128 based fixed bin(17,0) array dcl 124 set ref 225* 225 wrapped 3 based fixed bin(17,0) level 2 dcl 10-3 set ref 217* 217 x 26 based fixed bin(17,0) level 2 dcl 5-66 set ref 473 477* 575 583* 599* x_pf 25 based fixed bin(34,0) level 2 dcl 5-66 set ref 476* 578 582* 598* 598 x_real_time 10 based fixed bin(71,0) level 2 dcl 5-66 set ref 475* 576 580* 596* 596 x_vcpu 20 based fixed bin(71,0) level 2 dcl 5-66 set ref 474* 577 581* 597* 597 xsstp 000056 internal static pointer dcl 202 set ref 224* 359* 364* 365* 366* 367* 368* 369* 370* 371* 399* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSQ_METER internal static fixed bin(17,0) initial dcl 4-28 ABS_DEFER_PRIO internal static fixed bin(17,0) initial dcl 6-35 ABS_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 6-36 ABS_TRYLOG_METER internal static fixed bin(17,0) initial dcl 4-35 ACCTUP_METER internal static fixed bin(17,0) initial dcl 4-26 ACCT_UPDATE_PRIO internal static fixed bin(17,0) initial dcl 6-28 ADMIN_METER internal static fixed bin(17,0) initial dcl 4-32 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 1-51 ASINIT_METER internal static fixed bin(17,0) initial dcl 4-19 AS_REQUEST_PRIO internal static fixed bin(17,0) initial dcl 6-30 AT_NORMAL internal static char(8) initial unaligned dcl 1-116 AT_SHUTDOWN internal static char(8) initial unaligned dcl 1-116 AT_SPECIAL internal static char(8) initial unaligned dcl 1-116 AUM_METER internal static fixed bin(17,0) initial dcl 4-22 AU_METER internal static fixed bin(17,0) initial dcl 4-23 COMMAND_METER internal static fixed bin(17,0) initial dcl 4-30 CPG_METER internal static fixed bin(17,0) initial dcl 4-24 CPU_CARD_WORD internal static char(4) initial dcl 7-24 DAEMON_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 6-29 DIALUP_METER internal static fixed bin(17,0) initial dcl 4-20 DPG_METER internal static fixed bin(17,0) initial dcl 4-25 DUM_METER internal static fixed bin(17,0) initial dcl 4-21 FIXPDT_METER internal static fixed bin(17,0) initial dcl 4-34 INSTALL_METER internal static fixed bin(17,0) initial dcl 4-27 INSTALL_PRIO internal static fixed bin(17,0) initial dcl 6-31 INT_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 6-32 MC_PRIO internal static fixed bin(17,0) initial dcl 6-25 MEM_CARD_WORD internal static char(4) initial dcl 8-18 MPX_LOAD_PRIO internal static fixed bin(17,0) initial dcl 6-33 MSGCORD_METER internal static fixed bin(17,0) initial dcl 4-29 NETUP_METER internal static fixed bin(17,0) initial dcl 4-37 SAC_METER internal static fixed bin(17,0) initial dcl 4-31 SHUTDOWN_PRIO internal static fixed bin(17,0) initial dcl 6-27 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 11-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 11-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 11-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 11-65 SL_INFO_version_1 internal static char(8) initial unaligned dcl 11-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 11-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 11-14 SSU_METER internal static fixed bin(17,0) initial dcl 4-33 SYSERR_COPY_PRIO internal static fixed bin(17,0) initial dcl 6-26 UTE_SIZE internal static fixed bin(17,0) initial dcl 1-120 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 13-96 as_data_$BS external static char(1) dcl 2-21 as_data_$CR external static char(1) dcl 2-22 as_data_$abs_dim external static char(32) unaligned dcl 2-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 2-24 as_data_$acsdir external static char(168) unaligned dcl 2-25 as_data_$as_procid external static bit(36) dcl 2-27 as_data_$as_ring external static fixed bin(3,0) dcl 2-28 as_data_$as_tty automatic char(6) unaligned dcl 2-29 as_data_$autp external static pointer dcl 2-31 as_data_$buzzardp external static pointer dcl 2-32 as_data_$cdtp external static pointer dcl 2-33 as_data_$default_weight external static fixed bin(35,0) dcl 2-34 as_data_$devtabp external static pointer dcl 2-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 2-36 as_data_$dutp external static pointer dcl 2-37 as_data_$g115_dim external static char(32) unaligned dcl 2-38 as_data_$lct_initialized external static bit(1) dcl 2-39 as_data_$lct_size external static fixed bin(17,0) dcl 2-40 as_data_$login_args external static structure level 1 dcl 2-62 as_data_$login_words external static fixed bin(17,0) dcl 2-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 2-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 2-87 as_data_$ls_message_buffer_ptr external static pointer dcl 2-88 as_data_$ls_request_server_info_ptr external static pointer dcl 2-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 2-41 as_data_$mgtp external static pointer dcl 2-42 as_data_$mrd_dim external static char(32) unaligned dcl 2-43 as_data_$ntty_dim external static char(32) unaligned dcl 2-44 as_data_$pdtdir external static char(168) unaligned dcl 2-45 as_data_$pit_ptr external static pointer dcl 2-46 as_data_$rcpdir external static char(168) unaligned dcl 2-47 as_data_$request_priority external static fixed bin(17,0) dcl 2-48 as_data_$rs_ptrs external static pointer array dcl 2-49 as_data_$rtdtp external static pointer dcl 2-50 as_data_$sat_htp external static pointer dcl 2-51 as_data_$satp external static pointer dcl 2-52 as_data_$signal_types external static structure level 1 dcl 2-67 as_data_$suffix external static char(2) array unaligned dcl 2-53 as_data_$sysdir external static char(168) unaligned dcl 2-54 as_data_$system_signal_types external static structure level 1 dcl 2-72 as_data_$teens_suffix external static char(2) array unaligned dcl 2-55 as_data_$terminet_tabs_string external static varying char(144) dcl 2-56 as_data_$tty_dim external static char(32) unaligned dcl 2-57 as_data_$update_priority external static fixed bin(17,0) dcl 2-58 as_data_$version external static char(8) unaligned dcl 2-59 as_data_login_words based structure level 1 dcl 2-77 as_procid defined bit(36) dcl 3-17 as_tty based char(6) unaligned dcl 3-18 devtabp defined pointer dcl 3-20 ip defined pointer dcl 3-21 mgtp defined pointer dcl 3-22 pdtdir based char(168) unaligned dcl 3-23 rs_ptrs based pointer array dcl 3-24 sat_htp defined pointer dcl 3-25 satp defined pointer dcl 3-26 sc_stat_$Go external static bit(1) dcl 9-62 sc_stat_$Multics external static bit(1) dcl 9-62 sc_stat_$Star_typed external static bit(1) dcl 9-62 sc_stat_$admin_listener_exit_label external static label variable dcl 9-34 sc_stat_$admin_listener_switch external static bit(1) dcl 9-62 sc_stat_$admin_log_iocb external static pointer dcl 9-45 sc_stat_$admin_log_write_ptr external static pointer dcl 9-45 sc_stat_$admin_sci_ptr external static pointer dcl 9-45 sc_stat_$as_log_write_ptr external static pointer dcl 9-45 sc_stat_$did_part1 external static bit(1) dcl 9-62 sc_stat_$did_part2 external static bit(1) dcl 9-62 sc_stat_$did_part3 external static bit(1) dcl 9-62 sc_stat_$exec_access_name external static char(32) unaligned dcl 9-15 sc_stat_$info_dir external static char(168) unaligned dcl 9-21 sc_stat_$initzer_ttyp external static pointer dcl 9-45 sc_stat_$log_dir external static char(168) unaligned dcl 9-21 sc_stat_$master_abort_label external static label variable dcl 9-34 sc_stat_$master_channel external static char(6) dcl 9-29 sc_stat_$master_iocb external static pointer dcl 9-45 sc_stat_$master_sci_ptr external static pointer dcl 9-45 sc_stat_$mc_acs_dir external static char(168) unaligned dcl 9-21 sc_stat_$mc_ansp external static pointer dcl 9-45 sc_stat_$mc_iocb external static pointer dcl 9-45 sc_stat_$mc_is_on external static bit(1) dcl 9-62 sc_stat_$no_operator_login external static bit(1) dcl 9-62 sc_stat_$shutdown_typed external static bit(1) dcl 9-62 sc_stat_$sv1_iocb external static pointer dcl 9-45 sc_stat_$sv2_iocb external static pointer dcl 9-45 sc_stat_$sv3_iocb external static pointer dcl 9-45 sc_stat_$sysdir external static char(168) unaligned dcl 9-21 sc_stat_$system_shutdown_label external static label variable dcl 9-34 sc_stat_$test_mode external static bit(1) dcl 9-62 sc_stat_$unidentified_access_name external static char(32) unaligned dcl 9-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 9-62 scdtp defined pointer dcl 3-27 sl_info automatic structure level 1 dcl 11-24 sl_info_code_msg internal static structure level 1 dcl 11-187 sl_info_msg internal static structure level 1 dcl 11-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 11-161 sl_info_sev_code_msg internal static structure level 1 dcl 11-82 sl_info_sev_coded_msg internal static structure level 1 dcl 11-134 sl_info_sev_msg internal static structure level 1 dcl 11-108 sysdir defined char(168) unaligned dcl 3-28 NAMES DECLARED BY EXPLICIT CONTEXT. as_meter_ 000507 constant entry external dcl 13 as_meter_init 001656 constant entry external dcl 335 as_meter_stop 003250 constant entry external dcl 423 asmt_debug 001173 constant entry external dcl 285 asmt_init 001243 constant entry external dcl 291 asmt_ptr 001626 constant entry external dcl 331 bad_slot 003376 constant label dcl 447 ref 531 bust_out 003240 constant label dcl 421 ref 625 core_flush 003274 constant entry external dcl 428 ref 406 406 enter 003343 constant entry external dcl 440 error 004314 constant entry internal dcl 620 ref 360 362 387 405 407 644 658 error_print 004371 constant entry internal dcl 629 ref 448 472 542 551 exit 003701 constant entry external dcl 512 exit_common 003745 constant label dcl 527 ref 516 exit_values 003723 constant entry external dcl 521 finish_update 003616 constant label dcl 493 ref 465 605 found_all_cpus 004562 constant label dcl 658 ref 655 getloc 004432 constant entry internal dcl 638 ref 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 read_config 004265 constant entry external dcl 607 read_deck 004523 constant entry internal dcl 649 ref 251 384 611 scan_syserr_log 004627 constant entry internal dcl 668 ref 278 416 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5372 5544 4720 5402 Length 6406 4720 152 625 451 50 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_meter_ 940 external procedure is an external procedure. error internal procedure shares stack frame of external procedure as_meter_. error_print internal procedure shares stack frame of external procedure as_meter_. getloc internal procedure shares stack frame of external procedure as_meter_. read_deck internal procedure shares stack frame of external procedure as_meter_. scan_syserr_log internal procedure shares stack frame of external procedure as_meter_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 SSTasteps_loc as_meter_ 000011 SSTdamage_ct_loc as_meter_ 000012 SSTlevel_loc as_meter_ 000013 SSTnused_loc as_meter_ 000014 SSTpost_purge_calls_loc as_meter_ 000015 SSTpre_page_calls_loc as_meter_ 000016 SSTpre_page_size_loc as_meter_ 000017 SSTthrashing_loc as_meter_ 000020 TCMave_eligible_loc as_meter_ 000021 TCMavequeue_loc as_meter_ 000022 TCMdelta_vcpu_loc as_meter_ 000023 TCMidle_loc as_meter_ 000024 TCMprocessor_time_loc as_meter_ 000025 TCMresponse_count_loc as_meter_ 000026 TCMresponse_time_loc as_meter_ 000027 TCMsystem_virtual_time_loc as_meter_ 000030 TCMworking_set_addend_loc as_meter_ 000031 TCMworking_set_factor_loc as_meter_ 000032 TCMzero_idle_loc as_meter_ 000033 MAX as_meter_ 000034 core_flush_channel as_meter_ 000036 core_flush_time as_meter_ 000040 disable_metering as_meter_ 000041 old_ast_steps as_meter_ 000045 old_damage_count as_meter_ 000046 ncpu as_meter_ 000047 nmem as_meter_ 000050 asmt_initialized as_meter_ 000051 debug_sw as_meter_ 000052 statp as_meter_ 000054 tcdp as_meter_ 000056 xsstp as_meter_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_meter_ 000100 damage_count as_meter_ 000101 delta_pf as_meter_ 000102 delta_real_time as_meter_ 000104 delta_vcpu as_meter_ 000106 dump_lth as_meter_ 000107 ec as_meter_ 000110 i as_meter_ 000112 now as_meter_ 000114 pf as_meter_ 000115 sst_buffer as_meter_ 001115 steps as_meter_ 001116 vcpu as_meter_ 001120 factor as_meter_ 001121 pre_calls as_meter_ 001122 post_calls as_meter_ 001123 temp as_meter_ 001124 return_values as_meter_ 001125 dump_valid as_meter_ 001126 dump_valid_355 as_meter_ 001130 crashid as_meter_ 001132 dtstr as_meter_ 001136 me as_meter_ 001141 dump_ename as_meter_ 001151 dump_ename_355 as_meter_ 001161 err_msg as_meter_ 001262 asmtep as_meter_ 001264 sstp3 as_meter_ 001266 sstp2 as_meter_ 001270 tcdp2 as_meter_ 001272 ansp as_meter_ 001274 cpu_cardp as_meter_ 001276 mem_cardp as_meter_ 001324 offset getloc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return_mac fl2_to_fx1 mpfx2 signal_op ext_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_dump_ config_$find cpu_time_and_paging_ date_time_ get_wdir_ hcs_$make_seg hcs_$truncate_seg hphcs_$flush_ast_pool hphcs_$flush_core hphcs_$get_fdump_num ioa_$rsnnl ipc_$create_ev_chn ipc_$decl_ev_call_chn phcs_$ring_0_peek ring0_get_$definition ring0_get_$segptr sub_err_ sys_log_ sys_log_$error_log syserr_log_man_$as_copy_log timer_manager_$alarm_wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$asmtp as_data_$debug_flag as_data_$whoptr error_table_$out_of_sequence sc_stat_$Go_typed sc_stat_$Multics_typed sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 111 000473 1 53 000475 13 000500 209 000517 210 000524 211 000531 212 000532 214 000544 215 000546 216 000551 217 000553 220 000554 221 000560 222 000562 224 000564 225 000600 226 000605 228 000622 229 000635 230 000642 232 000647 233 000657 234 000665 235 000673 236 000677 237 000713 238 000721 239 000727 240 000733 242 000735 243 000745 245 000755 246 000767 247 001000 251 001005 253 001006 254 001011 255 001017 256 001025 257 001027 258 001032 259 001035 260 001042 261 001050 262 001052 263 001056 264 001062 265 001065 270 001107 271 001113 272 001117 273 001126 275 001154 276 001160 278 001162 281 001163 285 001172 287 001203 288 001210 289 001233 291 001242 293 001253 295 001310 296 001312 297 001314 298 001316 299 001332 300 001406 301 001413 303 001450 305 001457 306 001472 307 001474 309 001532 312 001541 313 001545 314 001550 315 001552 318 001554 319 001555 321 001561 322 001575 324 001604 327 001612 329 001614 331 001623 333 001635 335 001651 342 001666 343 001674 344 001676 345 001677 346 001717 348 001724 349 001727 350 001735 351 001742 354 001765 355 001773 359 002006 360 002034 361 002043 362 002072 364 002101 365 002124 366 002151 367 002174 368 002217 369 002246 370 002275 371 002324 372 002352 373 002377 374 002422 375 002450 376 002473 377 002522 378 002551 379 002600 380 002624 381 002653 382 002677 384 002724 386 002725 387 002775 388 003007 389 003015 391 003021 392 003026 393 003035 394 003037 398 003050 399 003052 400 003066 401 003073 402 003102 404 003104 405 003115 406 003127 407 003154 408 003167 409 003201 410 003215 412 003225 414 003231 416 003232 419 003236 421 003240 423 003247 425 003260 426 003263 428 003272 432 003304 433 003321 436 003331 440 003340 442 003353 444 003356 446 003370 447 003376 448 003434 449 003435 452 003444 453 003446 455 003462 457 003467 459 003474 460 003476 461 003504 462 003505 463 003506 464 003507 465 003510 470 003511 471 003525 472 003563 473 003564 474 003567 475 003571 476 003572 477 003573 479 003574 480 003601 481 003602 484 003603 485 003604 486 003606 487 003607 488 003611 491 003613 493 003616 495 003623 496 003625 499 003627 500 003630 502 003637 503 003652 505 003661 508 003667 510 003670 512 003677 514 003711 515 003714 516 003715 521 003716 523 003733 524 003736 525 003740 527 003745 531 003757 533 003765 534 003767 535 004003 537 004010 539 004015 540 004017 542 004057 543 004060 546 004061 548 004063 549 004065 551 004124 552 004125 553 004131 554 004132 557 004134 559 004136 560 004142 561 004145 563 004150 565 004152 566 004155 567 004160 569 004162 570 004164 571 004167 572 004171 575 004173 576 004175 577 004200 578 004203 580 004205 581 004207 582 004210 583 004211 586 004212 587 004215 588 004220 590 004222 594 004235 595 004242 596 004244 597 004247 598 004252 599 004254 601 004256 605 004260 607 004261 611 004275 612 004276 613 004302 614 004304 616 004305 620 004314 624 004325 625 004370 629 004371 631 004372 632 004415 634 004431 638 004432 643 004443 644 004503 645 004517 647 004522 649 004523 651 004524 652 004527 654 004532 655 004545 656 004551 657 004561 658 004562 661 004574 662 004607 663 004614 664 004625 666 004626 668 004627 673 004630 674 004636 677 004644 679 004647 ----------------------------------------------------------- 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