COMPILATION LISTING OF SEGMENT traffic_control_queue Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/22/85 1510.5 mst Tue Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* format: style4 */ 12 traffic_control_queue: tcq: proc; 13 14 15 /* 8/8/75 RE Mullen: mod for priority scheduler and "-all" arg */ 16 /* Modified 83-06-11 by S. G. Harris (UNCA) to fix required proc reporting. */ 17 /* Modified 83-09-08 by E. N. Kittlitz to eliminate sst references */ 18 /* Modified November 1984 by M. Pandolf to include hc_lock. */ 19 20 dcl wc fixed bin; 21 dcl APT_BASE fixed bin; 22 dcl WCTE_WORDS fixed bin; 23 dcl this fixed bin; 24 dcl ALL bit (1) aligned; 25 dcl type fixed bin; /* -1:3 = Demon,Intv,AbsQ1,AbsQ2,AbsQ3 */ 26 dcl cs char (16); 27 dcl name char (28); 28 dcl proj char (9); 29 dcl anon fixed bin; 30 dcl ltime fixed bin (71) static; 31 dcl a fixed bin; 32 dcl b fixed bin; 33 dcl c fixed bin; 34 dcl d fixed bin; 35 dcl e fixed bin; 36 dcl f fixed bin; 37 dcl h fixed bin; 38 dcl bb fixed bin; 39 dcl i fixed bin; 40 dcl j fixed bin; 41 dcl recent fixed bin; 42 dcl code fixed bin (35); 43 dcl temaxtime fixed bin; 44 dcl fg float bin; 45 dcl al fixed bin; 46 dcl ap ptr; 47 dcl ac fixed bin; 48 dcl tsdw fixed bin (71); 49 dcl tsdwp ptr; 50 51 dcl tcml fixed bin static init (0); 52 dcl tcmp0 ptr static; 53 dcl tempp ptr static; 54 dcl dsp0 ptr static; 55 dcl init bit (1) static init ("0"b); 56 dcl ms init (1000.e0) float bin static; 57 dcl sec init (1000000.e0) float bin static; 58 59 dcl statenames (0:6) char (1) int static options (constant) 60 init ("e", "x", "r", "w", "b", "s", "p"); 61 62 dcl 1 last (0:500) aligned static, /* saved from last call or zero */ 63 2 cpu fixed bin (71), 64 2 vcpu fixed bin (71), 65 2 pf fixed bin (35), 66 2 pid bit (36); 67 68 dcl ME char (21) static options (constant) init ("traffic_control_queue"); 69 70 dcl ring_zero_peek_ entry (ptr, ptr, fixed bin, fixed bin (35)); 71 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 72 dcl get_userid_ entry (bit (36), char (*), char (*), fixed bin, fixed bin, fixed bin (35)); 73 dcl ring0_get_$segptr entry (char (*), char (*), ptr, fixed bin (35)); 74 dcl ioa_ entry options (variable); 75 dcl com_err_ entry options (variable); 76 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 77 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 78 79 dcl arg char (al) based (ap); 80 81 dcl (addr, addrel, baseno, divide, float, ptr, rel, string, substr) builtin; 82 dcl (fixed, unspec) builtin; 83 84 85 86 tsdwp = addr (tsdw); 87 if ^init 88 then do; 89 call ring0_get_$segptr ("", "dseg", dsp0, code); 90 if code ^= 0 then call ERRPRINT ("dseg"); 91 call ring0_get_$segptr ("", "tc_data", tcmp0, code); 92 if code ^= 0 then call ERRPRINT ("tc_data"); 93 call hcs_$make_seg ("", "", "", 01010b, tempp, code); 94 if code ^= 0 then call ERRPRINT ("temp_seg"); 95 i = fixed (baseno (tcmp0)); 96 call ring_zero_peek_ (addr (dsp0 -> sdwa (i)), tsdwp, 2, code); 97 if code ^= 0 then call ERRPRINT ("dseg"); 98 tcml = (fixed (tsdwp -> sdw.bound, 14) + 1) * 16; 99 100 do i = 0 to 500; 101 last.pid (i) = ""b; /* will force rest of last(i) to zero lateer */ 102 end; 103 init = "1"b; 104 end; 105 tcmp = tempp; 106 107 108 109 ALL = ""b; /* default is not to print all px's */ 110 call cu_$arg_count (ac, code); /* see if any args */ 111 if code ^= 0 then do; 112 call com_err_ (code, ME); 113 return; 114 end; 115 if ac > 0 then do; 116 call cu_$arg_ptr (1, ap, al, code); 117 if code ^= 0 then call ERRPRINT ("first arg"); 118 if arg = "-all" | arg = "-a" then ALL = "1"b; 119 else do; 120 call ioa_ ("^a: Unrecognized option ignored -- ^a", ME, arg); 121 end; 122 end; 123 124 /* Grab metering data we need. */ 125 126 ac = 0; 127 again: 128 if ac > 0 then call ioa_ ("bad sample"); 129 call ring_zero_peek_ (tcmp0, tcmp, tcml, code); 130 if code ^= 0 then call ERRPRINT ("tc_data"); 131 call ring_zero_peek_ (tcmp0, tcmp, tcml, code); 132 if code ^= 0 then call ERRPRINT ("tc_data"); 133 ac = ac + 1; /* Count this retry . */ 134 if ac > 5 then do; /* Cheap insurance */ 135 /* happens when tc_data rudely redesigned */ 136 /* rare that pxss rethreading gives >1 bad samp. */ 137 call ioa_ ("^a: aborting, too many bad samples", ME); 138 return; 139 end; 140 141 142 /* Find the base of the APT. Guess if necessary .. */ 143 144 APT_BASE = fixed (tcm.apt_offset, 18); 145 if APT_BASE = 0 then APT_BASE = 256; /* old style tc_data */ 146 WCTE_WORDS = divide (APT_BASE - fixed (tcm.min_wct_index), 17, 17, 0); 147 148 149 /* Validate threading to see if we need another sample */ 150 151 if ^ct (tcmp, addr (tcm.ready_q_head), addr (tcm.ready_q_tail)) then go to again; 152 if tcm.realtime_q.sentinel ^= ""b then 153 if ^ct (tcmp, addr (tcm.realtime_q), addr (tcm.realtime_q)) then go to again; 154 if ^ct (tcmp, addr (tcm.interactive_q), addr (tcm.interactive_q)) then go to again; 155 wctep = addr (tcm.wcte (0)); 156 do i = 0 to 16; 157 if ^ct (tcmp, wctep, wctep) then go to again; 158 wctep = addrel (wctep, WCTE_WORDS); 159 end; 160 161 if ltime = 0 162 then ltime = tcm.last_time; 163 164 /* Print heading. First count processes whose state changed in last 15 seconds. */ 165 166 recent = 0; /* Clear counter. */ 167 aptep = addrel (tcmp, APT_BASE); 168 do i = 0 to tcm.apt_size - 1; 169 if tcm.last_time - state_change_time < 15000000 170 then recent = recent + 1; 171 aptep = addrel (aptep, tcm.apt_entry_size); 172 end; 173 a = float (tcm.avequeue); 174 b = float (tcm.last_time - ltime) / sec + .5e0; 175 call ioa_ ("avq = ^d, elapsed time = ^d sec, ^d active last 15 sec.^/^a", 176 a, b, recent, 177 "flags dtu dpf temax te ts ti tssc event d ws wc process"); 178 179 180 /* Print the eligible queue. */ 181 182 aptep = addrel (tcmp, tcm.eligible_q_head.fp); 183 elig_apt_loop: if aptep ^= addr (tcm.ready_q_tail) then do; 184 call PRINT_APTE; 185 aptep = addrel (tcmp, apte.thread.fp); 186 go to elig_apt_loop; 187 end; 188 189 /* Print the realtime queue. */ 190 191 if tcm.realtime_q.sentinel ^= "0"b then do; /* look in realtime queue */ 192 call ioa_ ("^/REALTIME QUEUE:"); 193 aptep = addrel (tcmp, tcm.realtime_q.fp); 194 dead_apt_loop: 195 if aptep ^= addr (tcm.realtime_q) then do; 196 call PRINT_APTE; 197 aptep = addrel (tcmp, apte.thread.fp); 198 go to dead_apt_loop; 199 end; 200 end; 201 202 203 204 205 /* Print the interactive queue. */ 206 207 if tcm.apt_offset ^= "0"b then do; /* look in interactvve queue */ 208 if tcm.deadline_mode ^= 0 then 209 call ioa_ ("^/DEADLINE QUEUE:"); /* processes with soft deadlines */ 210 else 211 call ioa_ ("^/INTERACTIVE QUEUE:"); 212 aptep = addrel (tcmp, tcm.interactive_q.fp); 213 int_apt_loop: 214 if aptep ^= addr (tcm.interactive_q) then do; 215 call PRINT_APTE; 216 aptep = addrel (tcmp, apte.thread.fp); 217 go to int_apt_loop; 218 end; 219 end; 220 221 222 223 224 /* Print per-workclass queues. */ 225 226 227 if tcm.apt_offset ^= "0"b then do; 228 wctep = addr (tcm.wcte (0)); 229 do this = 0 to 16; 230 231 aptep = addrel (tcmp, wct_entry.thread.fp); 232 if wct_entry.flags.defined then /* skip undefined */ 233 if tcm.deadline_mode = 0 then 234 if wct_entry.realtime = 0 then/* skip realtime as not threaded here unless bug */ 235 call ioa_ ("^/WORKCLASS^3d QUEUE: credits = ^5d ms.", this, divide (wct_entry.credits, 1000, 17, 0)); 236 wc_apt_loop: 237 if aptep ^= wctep then do; 238 call PRINT_APTE; 239 aptep = addrel (tcmp, apte.thread.fp); 240 go to wc_apt_loop; 241 end; 242 243 244 wctep = addrel (wctep, WCTE_WORDS); 245 end; 246 end; 247 248 /* Print unthreaded maybe. Make sure to remember usages in any case. */ 249 250 if ALL then 251 call ioa_ ("^/UNTHREADED:"); 252 253 do i = 0 to tcm.apt_size - 1; 254 aptep = ptr (tcmp, i * tcm.apt_entry_size + fixed (rel (addrel (tcmp, APT_BASE)))); 255 if ALL then 256 if unspec (apte.thread) = ""b & apte.state ^= ""b then call PRINT_APTE; 257 else if apte.idle then call PRINT_APTE; 258 259 last.cpu (i) = time_used_clock; 260 last.pf (i) = page_faults; 261 last.vcpu (i) = virtual_cpu_time; 262 last.pid (i) = processid; 263 end; 264 265 ltime = tcm.last_time; 266 call ioa_ ("^/"); /* White space builds readers. */ 267 return; 268 269 270 /* ----------------------------------------------------------------- */ 271 272 273 ct: proc (base, head, tail) returns (bit (1) aligned); 274 275 dcl (base, head, tail) ptr; 276 dcl (curr, prev, last) ptr; 277 dcl 1 tword aligned based (curr), 278 2 fp bit (18) unal, 279 2 bp bit (18) unal; 280 281 curr = head; 282 ct_next: 283 last = curr; 284 curr = addrel (base, tword.fp); /* step to next */ 285 prev = addrel (base, tword.bp); /* get backptr */ 286 if prev ^= last then return (""b); /* backptr not correct */ 287 if curr = tail then return ("1"b); /* have hit tail, all is well */ 288 go to ct_next; 289 290 end ct; 291 292 293 /* ----------------------------------------------------------------------- */ 294 295 296 297 298 299 300 PRINT_APTE: proc; /* format and print one apte */ 301 302 dcl procno fixed bin; 303 procno = 304 divide (fixed (rel (aptep)) - fixed (rel (addrel (tcmp, APT_BASE))), tcm.apt_entry_size, 17, 0); 305 306 dcl i fixed bin; 307 308 309 310 if fixed (apte.state) >= 0 311 & fixed (apte.state) <= 6 then cs = statenames (fixed (apte.state)); 312 else cs = "?"; 313 j = 2; 314 do i = 2 to 9, 13 to 15; 315 if substr (string (apte.flags), i, 1) 316 then do; 317 substr (cs, j, 1) = substr ("1WSPHLEIT456ADB", i, 1); 318 j = j + 1; 319 end; 320 end; 321 if ^apte.default_procs_required then do; 322 substr (cs, j, 1) = "("; 323 j = j + 1; 324 do i = 1 to 8; 325 if substr (apte.procs_required, i, 1) then do; 326 substr (cs, j, 1) = substr ("abcdefgh", i, 1); 327 j = j + 1; 328 end; 329 end; 330 substr (cs, j, 1) = ")"; 331 j = j + 1; 332 end; 333 334 335 if processid = last.pid (procno) | processid = ""b then 336 if time_used_clock >= last.cpu (procno) then 337 if page_faults >= last.pf (procno) then go to old_ok; 338 last.pf (procno) = 0; 339 last.cpu (procno) = 0; 340 last.vcpu (procno) = 0; 341 342 old_ok: 343 344 b = float (time_used_clock - last.cpu (procno) 345 ) / sec + .5e0; 346 c = float (page_faults - last.pf (procno)); /* delta page faults */ 347 if c < 0 348 then c = b; 349 if apte.idle then d = 0; 350 else d = float (te) / ms; 351 temaxtime = float (temax) / ms; 352 e = float (ts) / ms; 353 f = float (ti) / ms; 354 fg = float (tcm.last_time - apte.state_change_time) / sec; 355 if fg > 999e0 then fg = 999.999; 356 unspec (h) = wait_event; 357 bb = fixed (ws_size); 358 wc = gwcn (); 359 360 if apte.idle then name = "Idle"; 361 else do; 362 call get_userid_ ((processid), name, proj, type, anon, code); 363 if code ^= 0 then do; name = "not found"; type = 4; end; 364 end; 365 366 call ioa_ ("^8a^4d ^6d ^5d ^4d ^5d ^5d ^7.3f ^5o ^1d ^3d ^2d ^a", 367 cs, b, c, temaxtime, d, e, f, fg, h, 0, bb, wc, name); /* somebody can MCR deleting PD index, but not me */ 368 369 end PRINT_APTE; 370 371 372 373 374 /* -------------------------------------------------------- */ 375 376 377 gwcn: proc () returns (fixed bin); 378 dcl gwcn_fb fixed bin; 379 gwcn_fb = fixed (apte.wct_index, 18) - fixed (tcm.min_wct_index, 18); 380 if gwcn_fb < 0 then gwcn_fb = -1; else 381 if apte.wct_index = "0"b then gwcn_fb = 0; else 382 gwcn_fb = divide (gwcn_fb, WCTE_WORDS, 17, 0); 383 return (gwcn_fb); 384 end gwcn; 385 386 387 ERRPRINT: proc (err_clue); 388 389 dcl err_clue char (16) aligned; 390 391 call com_err_ (code, ME, "^a", err_clue); 392 go to MAIN_RETURN; /* go exit from tcq */ 393 394 end ERRPRINT; 395 396 397 MAIN_RETURN: return; /* Exit here from tcq */ 398 399 /* format: off */ 400 401 /* BEGIN INCLUDE FILE ... apte.incl.pl1 */ 1 2 1 3 /* Modified 1984-11-11 by E. Swenson for IPC event channel validation. */ 1 4 1 5 dcl aptep pointer; 1 6 1 7 dcl 1 apte based (aptep) aligned, /* APT entry declaration for an active (known) process */ 1 8 2 thread unaligned, /* List thread */ 1 9 3 fp bit (18), /* Forward pointer */ 1 10 3 bp bit (18), /* Backward pointer */ 1 11 2 flags unaligned, /* Flags and miscellaneous */ 1 12 3 mbz bit (1), /* This bit must be zero (sentinel bit) */ 1 13 3 wakeup_waiting bit (1), /* ON if process has received wakeup */ 1 14 3 stop_pending bit (1), /* ON if process has received stop connect */ 1 15 3 pre_empted bit (1), /* ON if process is being pre-empted by get_processor */ 1 16 3 hproc bit (1), /* ON if process is hardcore process */ 1 17 3 loaded bit (1), /* ON if required per-process pages are in memory and wired */ 1 18 3 eligible bit (1), /* ON if process is eligible */ 1 19 3 idle bit (1), /* ON if this is an idle process */ 1 20 3 interaction bit (1), /* ON if process has interacted recently */ 1 21 3 pre_empt_pending bit (1), /* ON if process has received pre-empt connect */ 1 22 3 default_procs_required bit (1), /* ON if apte.procs_required is system default */ 1 23 3 realtime_burst bit (1), /* ON if next eligibility is realtime */ 1 24 3 always_loaded bit (1), /* ON if process is not to be unloaded */ 1 25 3 dbr_loaded bit (1), /* ON if DBR is loaded on some CPU */ 1 26 3 being_loaded bit (1), /* ON if somebody loading this process */ 1 27 3 shared_stack_0 bit (1), /* ON if a shared stack_0 is assigned */ 1 28 3 page_wait_flag bit (1), /* flag ON if waiting for page */ 1 29 3 firstsw bit (1), /* OFF until process is intialized */ 1 30 3 state bit (18), /* execution state */ 1 31 2 page_faults fixed bin (35), /* total page faults for the process */ 1 32 2 processid bit (36), /* bit 0-17: offset of ATPE */ 1 33 /* bit 18-35: sequential number */ 1 34 2 te fixed bin (35), /* virtual time since eligibility award */ 1 35 2 ts fixed bin (35), /* virtual time since scheduling */ 1 36 2 ti fixed bin (35), /* virtual time since interaction */ 1 37 2 timax fixed bin (35), /* maximum value allowed for apte.ti */ 1 38 1 39 /* * * * * * * * */ 1 40 1 41 2 ipc_pointers unaligned, 1 42 3 event_thread bit (18), /* relative pointer to ITT list */ 1 43 3 pad3 bit (18), 1 44 2 ips_message bit (36), /* IPS signals pending */ 1 45 2 asteps unaligned, /* relative ASTE pointers */ 1 46 3 pds bit (18), /* PDS (per-process) */ 1 47 3 dseg bit (18), /* DSEG (per-process) */ 1 48 3 prds bit (18), /* PRDS (per-processor) */ 1 49 2 savex7 bit (18) unaligned, /* x7 at call to getwork (return point in pxss) */ 1 50 2 term_processid bit (36), /* process to send wakeup at temination */ 1 51 2 lock_id bit (36), /* File System unqieu ID associated with process */ 1 52 2 time_used_clock fixed bin (71), /* Total CPU time when process last lost CPU */ 1 53 1 54 /* * * * * * * * */ 1 55 1 56 2 wait_event bit (36) aligned, /* Event ID process awaiting */ 1 57 2 wct_index bit (18) unaligned, /* rel offset of WCTE */ 1 58 2 flags2 unaligned, 1 59 3 priority_scheduling bit (1), /* ON if guaranteed eligibility */ 1 60 3 special_wakeups bit (6), /* Special wakeup channels */ 1 61 3 pad7 bit (7), 1 62 3 batch bit (1), /* ON if absentee */ 1 63 3 pr_tag bit (3), /* CPU tag running or last run */ 1 64 2 state_change_time fixed bin (71), /* Time apte.state last changed */ 1 65 2 alarm_event fixed bin (71), /* wakeup event for alarm clock manager */ 1 66 2 alarm_time_thread bit (18) unaligned, /* thread of processes with pending alarms */ 1 67 2 alarm_time bit (54) unaligned, /* wakeup time for alarm */ 1 68 1 69 /* * * * * * */ 1 70 1 71 2 term_channel fixed bin (71), /* wakeup event for account overflow */ 1 72 2 ws_size fixed bin, /* working set estimate for the process */ 1 73 2 temax fixed bin (35), /* maximum eligibility slice (vcpu) */ 1 74 2 deadline fixed bin (71), /* time of next run */ 1 75 2 lock bit (18) unaligned, /* 0 => APTE locked, unlocked => return point of last unlock */ 1 76 2 unusable bit (18) unaligned, /* locking routines destroy */ 1 77 2 cpu_monitor fixed bin (35), /* if not 0, send wakeup to term_processid when virtual cpu 1 78* /* reaches this (units = 1/1024 sec) */ 1 79 2 paging_measure fixed bin (71), /* cumulative memory units */ 1 80 2 access_authorization bit (72), /* authorization of this process */ 1 81 2 dbr fixed bin (71), /* DBR value (constant since DSEG entry-held) */ 1 82 1 83 2 virtual_cpu_time fixed bin (71), /* cumulative virtual CPU time for the process */ 1 84 2 ittes_sent fixed bin (18), /* Unprocessed ITTs sent by this process */ 1 85 2 ittes_got fixed bin (18), /* Unprocessed ITTs received by this process */ 1 86 1 87 /* Cells used to drive and instrument finite-state model for response time 1 88* measurement. Maintained by meter_response_time */ 1 89 1 90 2 current_response_state fixed bin (17) unaligned, /* Process state in modle */ 1 91 2 pad18 bit (18) unaligned, 1 92 2 number_processing fixed bin (35), /* Number interactions */ 1 93 2 last_response_state_time fixed bin (71), /* Clock time at last response state change */ 1 94 2 total_processing_time fixed bin (71), /* Total interaction processing time */ 1 95 1 96 /* * * * * * */ 1 97 1 98 2 begin_interaction_vcpu fixed bin (71), /* Virtual cpu at beginning of last interaction */ 1 99 1 100 /* End of cells for finite-state model */ 1 101 1 102 2 saved_temax fixed bin (35), /* temax at eligibility award */ 1 103 2 procs_required bit (8) unaligned, /* bit mask of CPUs this process can run */ 1 104 2 pad4 bit (28) unaligned, 1 105 2 ipc_r_offset fixed bin (18) unsigned, 1 106 2 ipc_r_factor fixed bin (35) unsigned, 1 107 2 apad (10) fixed bin (35); 1 108 1 109 /* END INCLUDE FILE ... apte.incl.pl1 */ 401 402 /* BEGIN INCLUDE FILE ptw.incl.pl1 --- 09/13/74 for nss */ 2 2 2 3 dcl ptp ptr; /* pointer to either page table or page table word */ 2 4 2 5 dcl 1 ptw based (ptp) aligned, /* page table word */ 2 6 2 7 (2 add bit (18), /* address of page, type of which is defined by add_type */ 2 8 2 add_type bit (4), /* 0000=null, 1000=core, 0100=disk, 0010=pd, 0001=swap */ 2 9 2 first bit (1), /* the page has not yet been written out */ 2 10 2 processed bit (1), /* temporary used during post-purging and error signalling */ 2 11 2 pad1 bit (1), 2 12 2 unusable1 bit (1), /* can't be used because hardware resets this bit */ 2 13 2 phu bit (1), /* page has been used bit */ 2 14 2 phm1 bit (1), /* Cumulative OR of hardware phm's */ 2 15 2 nypd bit (1), /* must be moved to paging device */ 2 16 2 phm bit (1), /* page has been modified bit */ 2 17 2 phu1 bit (1), /* page has been used in the quantum */ 2 18 2 wired bit (1), /* page is to remain in core */ 2 19 2 os bit (1), /* page is out-of-service (I/O in progress) */ 2 20 2 df bit (1), /* directed fault if this is 0 (page not in core) */ 2 21 2 df_no bit (2)) unaligned; /* directed fault number for page faults */ 2 22 2 23 dcl 1 ptwa (0:255) based (ptp) aligned like ptw; /* page table */ 2 24 2 25 dcl ptwa_bits (0:255) based (ptp) bit (36) aligned; /* page table array as raw bits */ 2 26 2 27 dcl 1 mptw based (ptp) aligned, /* page table word while page is not in core */ 2 28 2 devadd bit (22) unaligned, /* device address where page resides */ 2 29 2 pad bit (14) unaligned; 2 30 2 31 dcl 1 mptwa (0 : 1) based (ptp) aligned, /* page table while pages are not in core */ 2 32 2 devadd bit (22) unaligned, /* device address where page resides */ 2 33 2 pad bit (14) unaligned; 2 34 2 35 dcl 1 atptw based (ptp) aligned, /* PL/I has problems on overlay-def based */ 2 36 2 add bit (18) unal, 2 37 2 (core, disk, pd, reserved) bit (1) unal, /* address types */ 2 38 2 pad bit (14) unal; 2 39 2 40 dcl 1 atptwa (0:255) based (ptp) aligned like atptw; 2 41 2 42 /* END INCLUDE FILE ptw.incl.pl1 */ 402 403 /* BEGIN INCLUDE FILE ... sdw.incl.pl1 ... last modified 12 May 1976 */ 3 2 3 3 dcl sdwp ptr; 3 4 3 5 dcl 1 sdw based (sdwp) aligned, /* Segment Descriptor Word */ 3 6 3 7 (2 add bit (24), /* main memory address of page table */ 3 8 2 (r1, r2, r3) bit (3), /* ring brackets for the segment */ 3 9 2 df bit (1), /* directed fault bit (0 => fault) */ 3 10 2 df_no bit (2), /* directed fault number */ 3 11 3 12 2 pad1 bit (1), 3 13 2 bound bit (14), /* boundary field (in 16 word blocks) */ 3 14 2 access, /* access bits */ 3 15 3 read bit (1), /* read permission bit */ 3 16 3 execute bit (1), /* execute permission bit */ 3 17 3 write bit (1), /* write permission bit */ 3 18 3 privileged bit (1), /* privileged bit */ 3 19 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 3 20 2 entry_bound_sw bit (1), /* if this is 0 the entry bound is checked by hardware */ 3 21 2 cache bit (1), /* cache enable bit */ 3 22 2 entry_bound bit (14)) unaligned; /* entry bound */ 3 23 3 24 dcl 1 sdwa (0: 1) based (sdwp) aligned like sdw; /* SDW array (descriptor segment) */ 3 25 3 26 /* END INCLUDE FILE sdw.incl.pl1 */ 403 404 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 4 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 4 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 4 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 4 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 4 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 4 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 4 8 4 9 dcl tcmp ptr; 4 10 4 11 dcl 1 tcm aligned based (tcmp), 4 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 4 13 2 cid2 fixed bin (18), 4 14 2 cid3 fixed bin (18), 4 15 2 cid4 fixed bin (18), 4 16 2 depth_count fixed bin (18), /* depth last process run */ 4 17 2 loadings fixed bin (18), /* number of process loadings */ 4 18 4 19 2 blocks fixed bin (18), /* number of calls to block */ 4 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 4 21 2 waits fixed bin (18), /* number of calls to wait */ 4 22 2 notifies fixed bin (18), /* number of calls to notify */ 4 23 2 schedulings fixed bin (18), 4 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 4 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 4 26 2 te_wait fixed bin (18), /* times te called from wait */ 4 27 4 28 2 te_block fixed bin (18), /* times te updated from block */ 4 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 4 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 4 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 4 32 2 idle fixed bin (71), /* total idle time */ 4 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 4 34 4 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 4 36 2 zero_idle fixed bin (71), /* zero idle time */ 4 37 2 last_time fixed bin (71), /* last time a process was run */ 4 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 4 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 4 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 4 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 4 42 2 processor_time fixed bin (71), /* total processor time on system */ 4 43 2 response_time fixed bin (71), /* estimate of response time */ 4 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 4 45 2 response_count fixed bin, /* count of response meters */ 4 46 2 eligible_count fixed bin, /* count of eligible meters */ 4 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 4 48 2 loading_idle fixed bin (71), /* loading_idle time */ 4 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 4 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 4 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 4 52 2 notify_check fixed bin, /* obsolete */ 4 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 4 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 4 55 2 end_of_time fixed bin (71), /* very large time */ 4 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 4 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 4 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 4 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 4 60 /* set this to >= half n_ttylines/fnp for safety */ 4 61 4 62 /* 100 octal */ 4 63 4 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 4 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 4 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 4 67 4 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 4 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 4 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 4 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 4 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 4 73 2 gp_done_count fixed bin (18), 4 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 4 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 4 76 2 nto_count fixed bin (18), /* number of times nto detected */ 4 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 4 78 2 nto_event bit (36), /* last event which NTO'd */ 4 79 2 page_notifies fixed bin (18), 4 80 2 notify_nobody_count fixed bin (18), 4 81 2 notify_nobody_event bit (36), 4 82 2 system_type fixed bin, /* used to be tcm.inter */ 4 83 4 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 4 85 4 86 /* 200 octal */ 4 87 4 88 2 wait (8), 4 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 4 90 3 count fixed bin (18), 4 91 4 92 2 ready (8), 4 93 3 time fixed bin (18), /* histogram of times in ready queue */ 4 94 3 count fixed bin (18), 4 95 4 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 4 97* all page faults */ 4 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 4 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 4 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 4 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 4 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 4 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 4 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 4 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 4 106 2 special_offsets unaligned, 4 107 3 apt_offset bit (18), 4 108 3 pad bit (18), 4 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 4 110 2 getwork_count fixed bin (18), /* total times through getwork */ 4 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 4 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 4 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 4 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 4 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 4 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 4 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 4 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 4 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 4 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 4 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 4 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 4 123 4 124 /* 300 octal */ 4 125 4 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 4 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 4 128 2 prds_length fixed bin (18), /* length of PRDS */ 4 129 2 pds_length fixed bin (18), /* length of PDS */ 4 130 2 lock fixed bin (18), /* process id generator lock */ 4 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 4 132 2 system_shutdown fixed bin (18), 4 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 4 134 4 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 4 136 2 last_eligible bit (18), /* last process to gain eligibility */ 4 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 4 138 2 apt_size fixed bin (18), /* number of APT entries */ 4 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 4 140 2 aht_size fixed bin (18), /* APT hash table size */ 4 141 2 itt_size fixed bin (18), /* number of ITT entries */ 4 142 4 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 4 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 4 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 4 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 4 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 4 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 4 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 4 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 4 151 4 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 4 153 2 dst_ptr ptr, /* pointer to device signal table */ 4 154 2 old_user ptr, /* last process to run (apt ptr ) */ 4 155 2 initialize_time fixed bin (71), /* time of initialization */ 4 156 4 157 2 init_event fixed bin (18), /* wait event during initialization */ 4 158 2 oldt fixed bin (18), /* timer reading from previous process */ 4 159 2 newt fixed bin (18), /* timer setting for new process */ 4 160 2 tefirst fixed bin (30), /* first eligible time */ 4 161 2 telast fixed bin (30), /* last eligible time */ 4 162 2 timax fixed bin (35), /* time in queue for lowest level */ 4 163 2 empty_q bit (18), /* thread of empty APT entries */ 4 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 4 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 4 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 4 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 4 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 4 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 4 170 2 min_eligible fixed bin (30), 4 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 4 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 4 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 4 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 4 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 4 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 4 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 4 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 4 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 4 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 4 181 2 max_channels fixed bin (18), /* num special channels per process */ 4 182 4 183 /* 400 octal */ 4 184 4 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 4 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 4 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 4 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 4 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 4 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 4 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 4 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 4 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 4 194 2 max_batch_elig fixed bin (35), 4 195 2 num_batch_elig fixed bin (35), 4 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 4 197 2 credits_scattered fixed bin (35), 4 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 4 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 4 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 4 201 2 mos_polling_interval fixed bin (35), /* for heals */ 4 202 2 mos_polling_time fixed bin (71), /* for heals */ 4 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 4 204 2 vcpu_response_bounds_size fixed bin (35), 4 205 2 meter_response_time_calls fixed bin (35), 4 206 2 meter_response_time_invalid fixed bin (35), 4 207 2 meter_response_time_overhead fixed bin (71), 4 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 4 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 4 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 4 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 4 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 4 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 4 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 4 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 4 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 4 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 4 218 4 219 /* Tuning Parameters for Stack Truncation */ 4 220 4 221 2 stk_truncate bit (1) aligned, 4 222 2 stk_truncate_always bit (1) aligned, 4 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 4 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 4 225 2 lock_error_severity fixed bin, /* syserr severity */ 4 226 4 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 4 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 4 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 4 230 2 volmap_polling_time fixed bin (71), 4 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 4 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 4 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 4 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 4 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 4 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 4 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 4 238 4 239 /* 500 octal */ 4 240 4 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 4 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 4 243 4 244 /* 1000 octal */ 4 245 4 246 2 pad7 (64) fixed bin (35), 4 247 4 248 /* 1100 octal */ 4 249 4 250 2 pad6 (8) fixed bin (35), 4 251 2 work_class_table aligned, /* array of per workclass information */ 4 252 3 wcte (0:16) aligned like wct_entry, 4 253 4 254 /* 3000 octal */ 4 255 4 256 2 apt fixed bin; 4 257 4 258 dcl wctep ptr; 4 259 4 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 4 261 2 thread unaligned, /* Ready list */ 4 262 3 fp bit (18), /* Head of ready list */ 4 263 3 bp bit (18), /* Tail of ready list */ 4 264 2 flags unaligned, 4 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 4 266 3 defined bit (1), 4 267 3 io_priority bit (1), 4 268 3 governed bit (1), 4 269 3 interactive_q bit (1), 4 270 3 pad bit (31), 4 271 2 credits fixed bin (35), /* Current worthiness of group */ 4 272 2 minf fixed bin (35), /* min fraction of cpu */ 4 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 4 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 4 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 4 276 2 resp1 fixed bin (71), 4 277 2 resp2 fixed bin (71), 4 278 2 quantum1 fixed bin (35), 4 279 2 quantum2 fixed bin (35), 4 280 2 rmeter1 fixed bin (71), 4 281 2 rmeter2 fixed bin (71), 4 282 2 rcount1 fixed bin (35), 4 283 2 rcount2 fixed bin (35), 4 284 2 realtime fixed bin (35), 4 285 2 purging fixed bin (35), 4 286 2 maxel fixed bin (35), 4 287 2 nel fixed bin (35), 4 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 4 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 4 290 2 total_think_time fixed bin (71), 4 291 2 total_queue_time fixed bin (71), 4 292 4 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 4 294 4 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 4 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 4 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 4 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 4 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 4 300 2 pad1 (4) fixed bin (35); 4 301 4 302 4 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 4 304 2 fp bit (18) unal, 4 305 2 bp bit (18) unal, 4 306 2 sentinel bit (36) aligned; 4 307 4 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 4 309 4 310 /* END INCLUDE FILE tcm.incl.pl1 */ 404 405 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 5 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 5 3* encourages name conflicts. 5 4* USE HC_FAST_LOCK INSTEAD! 5 5**/ 5 6 5 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 5 8 5 9 /* format: style3 */ 5 10 5 11 declare lock_ptr pointer; 5 12 declare 1 lock aligned based (lock_ptr), 5 13 2 pid bit (36) aligned, /* holder of lock */ 5 14 2 event bit (36) aligned, /* event associated with lock */ 5 15 2 flags aligned, 5 16 3 notify_sw bit (1) unaligned, 5 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 5 18 5 19 /* End include file hc_lock.incl.pl1 */ 405 406 407 end traffic_control_queue; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/22/85 1302.0 traffic_control_queue.pl1 >spec>temp>41-5>traffic_control_queue.pl1 401 1 01/06/85 1422.2 apte.incl.pl1 >ldd>include>apte.incl.pl1 402 2 05/03/78 1422.1 ptw.incl.pl1 >ldd>include>ptw.incl.pl1 403 3 09/14/76 0759.8 sdw.incl.pl1 >ldd>include>sdw.incl.pl1 404 4 01/22/85 1321.5 tcm.incl.pl1 >spec>temp>41-5>tcm.incl.pl1 405 5 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.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. ALL 000104 automatic bit(1) dcl 24 set ref 109* 118* 250 255 APT_BASE 000101 automatic fixed bin(17,0) dcl 21 set ref 144* 145 145* 146 167 254 303 ME 000000 constant char(21) initial unaligned dcl 68 set ref 112* 120* 137* 391* VCPU_RESPONSE_BOUNDS constant fixed bin(17,0) initial dcl 4-308 ref 155 228 WCTE_WORDS 000102 automatic fixed bin(17,0) dcl 22 set ref 146* 158 244 381 a 000125 automatic fixed bin(17,0) dcl 31 set ref 173* 175* ac 000146 automatic fixed bin(17,0) dcl 47 set ref 110* 115 126* 127 133* 133 134 addr builtin function dcl 81 ref 86 96 96 151 151 151 151 152 152 152 152 154 154 154 154 155 183 194 213 228 addrel builtin function dcl 81 ref 158 167 171 182 185 193 197 212 216 231 239 244 254 284 285 303 al 000143 automatic fixed bin(17,0) dcl 45 set ref 116* 118 118 120 120 anon 000124 automatic fixed bin(17,0) dcl 29 set ref 362* ap 000144 automatic pointer dcl 46 set ref 116* 118 118 120 apt_entry_size 327 based fixed bin(18,0) level 2 dcl 4-11 ref 171 254 303 apt_offset 253 based bit(18) level 3 packed unaligned dcl 4-11 ref 144 207 227 apt_size 313 based fixed bin(18,0) level 2 dcl 4-11 ref 168 253 apte based structure level 1 dcl 1-7 aptep 000154 automatic pointer dcl 1-5 set ref 167* 169 171* 171 182* 183 185* 185 193* 194 197* 197 212* 213 216* 216 231* 236 239* 239 254* 255 255 257 259 260 261 262 303 310 310 310 315 321 325 335 335 335 335 342 346 349 350 351 352 353 354 356 357 360 362 379 380 arg based char unaligned dcl 79 set ref 118 118 120* atptw based structure level 1 dcl 2-35 avequeue 16 based fixed bin(35,18) level 2 dcl 4-11 ref 173 b 000126 automatic fixed bin(17,0) dcl 32 set ref 174* 175* 342* 347 366* base parameter pointer dcl 275 ref 273 284 285 based_sentinel based structure level 1 dcl 4-303 baseno builtin function dcl 81 ref 95 bb 000134 automatic fixed bin(17,0) dcl 38 set ref 357* 366* bound 1(01) based bit(14) level 2 packed unaligned dcl 3-5 ref 98 bp 0(18) based bit(18) level 2 packed unaligned dcl 277 ref 285 c 000127 automatic fixed bin(17,0) dcl 33 set ref 346* 347 347* 366* code 000140 automatic fixed bin(35,0) dcl 42 set ref 89* 90 91* 92 93* 94 96* 97 110* 111 112* 116* 117 129* 130 131* 132 362* 363 391* com_err_ 005734 constant entry external dcl 75 ref 112 391 cpu 000024 internal static fixed bin(71,0) array level 2 dcl 62 set ref 259* 335 339* 342 credits 2 based fixed bin(35,0) level 2 dcl 4-260 ref 232 232 cs 000106 automatic char(16) unaligned dcl 26 set ref 310* 312* 317* 322* 326* 330* 366* cu_$arg_count 005736 constant entry external dcl 76 ref 110 cu_$arg_ptr 005740 constant entry external dcl 77 ref 116 curr 000172 automatic pointer dcl 276 set ref 281* 282 284* 284 285 287 d 000130 automatic fixed bin(17,0) dcl 34 set ref 349* 350* 366* deadline_mode 420 based fixed bin(35,0) level 2 dcl 4-11 ref 208 232 default_procs_required 1(10) based bit(1) level 3 packed unaligned dcl 1-7 ref 321 defined 1(01) based bit(1) level 3 packed unaligned dcl 4-260 ref 232 divide builtin function dcl 81 ref 146 232 232 303 381 dsp0 000020 internal static pointer dcl 54 set ref 89* 96 96 e 000131 automatic fixed bin(17,0) dcl 35 set ref 352* 366* eligible_q_head 350 based structure level 2 dcl 4-11 err_clue parameter char(16) dcl 389 set ref 387 391* f 000132 automatic fixed bin(17,0) dcl 36 set ref 353* 366* fg 000142 automatic float bin(27) dcl 44 set ref 354* 355 355* 366* fixed builtin function dcl 82 ref 95 98 144 146 254 303 303 310 310 310 357 379 379 flags 1 based structure level 2 in structure "apte" packed unaligned dcl 1-7 in procedure "tcq" ref 315 flags 1 based structure level 2 in structure "wct_entry" packed unaligned dcl 4-260 in procedure "tcq" float builtin function dcl 81 ref 173 174 342 346 350 351 352 353 354 fp 350 based bit(18) level 3 in structure "tcm" packed unaligned dcl 4-11 in procedure "tcq" ref 182 fp based bit(18) level 2 in structure "tword" packed unaligned dcl 277 in procedure "ct" ref 284 fp 330 based bit(18) level 3 in structure "tcm" packed unaligned dcl 4-11 in procedure "tcq" set ref 212 fp based bit(18) level 3 in structure "wct_entry" packed unaligned dcl 4-260 in procedure "tcq" ref 231 fp 314 based bit(18) level 3 in structure "tcm" packed unaligned dcl 4-11 in procedure "tcq" set ref 193 fp based bit(18) level 3 in structure "apte" packed unaligned dcl 1-7 in procedure "tcq" ref 185 197 216 239 get_userid_ 005726 constant entry external dcl 72 ref 362 gwcn_fb 000220 automatic fixed bin(17,0) dcl 378 set ref 379* 380 380* 380* 381* 381 383 h 000133 automatic fixed bin(17,0) dcl 37 set ref 356* 366* hcs_$make_seg 005724 constant entry external dcl 71 ref 93 head parameter pointer dcl 275 ref 273 281 i 000207 automatic fixed bin(17,0) dcl 306 in procedure "PRINT_APTE" set ref 314* 315 317* 324* 325 326* i 000135 automatic fixed bin(17,0) dcl 39 in procedure "tcq" set ref 95* 96 96 100* 101* 156* 168* 253* 254 259 260 261 262* idle 1(07) based bit(1) level 3 packed unaligned dcl 1-7 ref 257 349 360 init 000022 internal static bit(1) initial unaligned dcl 55 set ref 87 103* interactive_q 330 based structure level 2 dcl 4-11 set ref 154 154 154 154 213 ioa_ 005732 constant entry external dcl 74 ref 120 127 137 175 192 208 210 232 250 266 366 j 000136 automatic fixed bin(17,0) dcl 40 set ref 313* 317 318* 318 322 323* 323 326 327* 327 330 331* 331 last 000176 automatic pointer dcl 276 in procedure "ct" set ref 282* 286 last 000024 internal static structure array level 1 dcl 62 in procedure "tcq" last_time 34 based fixed bin(71,0) level 2 dcl 4-11 ref 161 169 174 265 354 lock based structure level 1 dcl 5-12 ltime 000010 internal static fixed bin(71,0) dcl 30 set ref 161 161* 174 265* min_wct_index 404 based bit(18) level 2 dcl 4-11 ref 146 379 ms constant float bin(27) initial dcl 56 ref 350 351 352 353 name 000112 automatic char(28) unaligned dcl 27 set ref 360* 362* 363* 366* page_faults 2 based fixed bin(35,0) level 2 dcl 1-7 ref 260 335 346 pf 4 000024 internal static fixed bin(35,0) array level 2 dcl 62 set ref 260* 335 338* 346 pid 5 000024 internal static bit(36) array level 2 dcl 62 set ref 101* 262* 335 prev 000174 automatic pointer dcl 276 set ref 285* 286 processid 3 based bit(36) level 2 dcl 1-7 ref 262 335 335 362 procno 000206 automatic fixed bin(17,0) dcl 302 set ref 303* 335 335 335 338 339 340 342 346 procs_required 63 based bit(8) level 2 packed unaligned dcl 1-7 ref 325 proj 000121 automatic char(9) unaligned dcl 28 set ref 362* ptr builtin function dcl 81 ref 254 ptw based structure level 1 dcl 2-5 ready_q_head 350 based bit level 2 dcl 4-11 set ref 151 151 ready_q_tail 352 based bit level 2 dcl 4-11 set ref 151 151 183 realtime 24 based fixed bin(35,0) level 2 dcl 4-260 ref 232 realtime_q 314 based structure level 2 dcl 4-11 set ref 152 152 152 152 194 recent 000137 automatic fixed bin(17,0) dcl 41 set ref 166* 169* 169 175* rel builtin function dcl 81 ref 254 303 303 ring0_get_$segptr 005730 constant entry external dcl 73 ref 89 91 ring_zero_peek_ 005722 constant entry external dcl 70 ref 96 129 131 sdw based structure level 1 dcl 3-5 sdwa based structure array level 1 dcl 3-24 set ref 96 96 sec 000010 constant float bin(27) initial dcl 57 ref 174 342 354 sentinel 315 based bit(36) level 3 dcl 4-11 set ref 152 191 special_offsets 253 based structure level 2 packed unaligned dcl 4-11 state 1(18) based bit(18) level 3 packed unaligned dcl 1-7 ref 255 310 310 310 state_change_time 22 based fixed bin(71,0) level 2 dcl 1-7 ref 169 354 statenames 000006 constant char(1) initial array unaligned dcl 59 ref 310 string builtin function dcl 81 ref 315 substr builtin function dcl 81 set ref 315 317* 317 322* 325 326* 326 330* tail parameter pointer dcl 275 ref 273 287 tcm based structure level 1 dcl 4-11 tcml 000012 internal static fixed bin(17,0) initial dcl 51 set ref 98* 129* 131* tcmp 000156 automatic pointer dcl 4-9 set ref 105* 129* 131* 144 146 151* 151 151 151 151 152 152* 152 152 152 152 154* 154 154 154 154 155 157* 161 167 168 169 171 173 174 182 182 183 185 191 193 193 194 197 207 208 212 212 213 216 227 228 231 232 239 253 254 254 254 265 303 303 354 379 tcmp0 000014 internal static pointer dcl 52 set ref 91* 95 129* 131* te 4 based fixed bin(35,0) level 2 dcl 1-7 ref 350 temax 33 based fixed bin(35,0) level 2 dcl 1-7 ref 351 temaxtime 000141 automatic fixed bin(17,0) dcl 43 set ref 351* 366* tempp 000016 internal static pointer dcl 53 set ref 93* 105 this 000103 automatic fixed bin(17,0) dcl 23 set ref 229* 232* thread based structure level 2 in structure "wct_entry" packed unaligned dcl 4-260 in procedure "tcq" thread based structure level 2 in structure "apte" packed unaligned dcl 1-7 in procedure "tcq" ref 255 ti 6 based fixed bin(35,0) level 2 dcl 1-7 ref 353 time_used_clock 16 based fixed bin(71,0) level 2 dcl 1-7 ref 259 335 342 ts 5 based fixed bin(35,0) level 2 dcl 1-7 ref 352 tsdw 000150 automatic fixed bin(71,0) dcl 48 set ref 86 tsdwp 000152 automatic pointer dcl 49 set ref 86* 96* 98 tword based structure level 1 dcl 277 type 000105 automatic fixed bin(17,0) dcl 25 set ref 362* 363* unspec builtin function dcl 82 set ref 255 356* vcpu 2 000024 internal static fixed bin(71,0) array level 2 dcl 62 set ref 261* 340* virtual_cpu_time 46 based fixed bin(71,0) level 2 dcl 1-7 ref 261 wait_event 20 based bit(36) level 2 dcl 1-7 ref 356 wc 000100 automatic fixed bin(17,0) dcl 20 set ref 358* 366* wct_entry based structure level 1 dcl 4-260 wct_index 21 based bit(18) level 2 packed unaligned dcl 1-7 ref 379 380 wcte based structure array level 3 dcl 4-11 set ref 155 228 wctep 000160 automatic pointer dcl 4-258 set ref 155* 157* 157* 158* 158 228* 231 232 232 232 232 236 244* 244 work_class_table based structure level 2 dcl 4-11 ws_size 32 based fixed bin(17,0) level 2 dcl 1-7 ref 357 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. atptwa based structure array level 1 dcl 2-40 lock_ptr automatic pointer dcl 5-11 mptw based structure level 1 dcl 2-27 mptwa based structure array level 1 dcl 2-31 ptp automatic pointer dcl 2-3 ptwa based structure array level 1 dcl 2-23 ptwa_bits based bit(36) array dcl 2-25 sdwp automatic pointer dcl 3-3 NAMES DECLARED BY EXPLICIT CONTEXT. ERRPRINT 002377 constant entry internal dcl 387 ref 90 92 94 97 117 130 132 MAIN_RETURN 001630 constant label dcl 397 ref 392 PRINT_APTE 001673 constant entry internal dcl 300 ref 184 196 215 238 255 257 again 000627 constant label dcl 127 ref 151 152 154 157 ct 001631 constant entry internal dcl 273 ref 151 152 154 157 ct_next 001636 constant label dcl 282 ref 288 dead_apt_loop 001261 constant label dcl 194 ref 198 elig_apt_loop 001216 constant label dcl 183 ref 186 gwcn 002345 constant entry internal dcl 377 ref 358 int_apt_loop 001347 constant label dcl 213 ref 217 old_ok 002064 constant label dcl 342 ref 335 tcq 000237 constant entry external dcl 12 traffic_control_queue 000246 constant entry external dcl 12 wc_apt_loop 001465 constant label dcl 236 ref 240 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2624 10566 2505 2634 Length 11072 2505 5742 270 117 5712 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tcq 342 external procedure is an external procedure. ct internal procedure shares stack frame of external procedure tcq. PRINT_APTE internal procedure shares stack frame of external procedure tcq. gwcn internal procedure shares stack frame of external procedure tcq. ERRPRINT internal procedure shares stack frame of external procedure tcq. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 ltime tcq 000012 tcml tcq 000014 tcmp0 tcq 000016 tempp tcq 000020 dsp0 tcq 000022 init tcq 000024 last tcq STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tcq 000100 wc tcq 000101 APT_BASE tcq 000102 WCTE_WORDS tcq 000103 this tcq 000104 ALL tcq 000105 type tcq 000106 cs tcq 000112 name tcq 000121 proj tcq 000124 anon tcq 000125 a tcq 000126 b tcq 000127 c tcq 000130 d tcq 000131 e tcq 000132 f tcq 000133 h tcq 000134 bb tcq 000135 i tcq 000136 j tcq 000137 recent tcq 000140 code tcq 000141 temaxtime tcq 000142 fg tcq 000143 al tcq 000144 ap tcq 000146 ac tcq 000150 tsdw tcq 000152 tsdwp tcq 000154 aptep tcq 000156 tcmp tcq 000160 wctep tcq 000172 curr ct 000174 prev ct 000176 last ct 000206 procno PRINT_APTE 000207 i PRINT_APTE 000220 gwcn_fb gwcn THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return fl2_to_fx1 ext_entry divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr get_userid_ hcs_$make_seg ioa_ ring0_get_$segptr ring_zero_peek_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 002432 aa 000002000000 002433 aa 000000000000 002434 aa 600000000041 002435 aa 000100000000 002436 aa 777777777777 002440 aa 000010000000 002441 aa 000000000000 002442 aa 600000000041 002443 aa 000156000000 002444 aa 600000000041 002445 aa 000160000000 002446 aa 600000000041 002447 aa 000160000000 002450 aa 600000000041 002451 aa 000257000000 002452 aa 000010000000 002453 aa 000000000000 002454 aa 600000000041 002455 aa 000156000000 002456 aa 600000000041 002457 aa 000312000000 002460 aa 600000000041 002461 aa 000254000000 002462 aa 600000000041 002463 aa 000257000000 002464 aa 000010000000 002465 aa 000000000000 002466 aa 600000000041 002467 aa 000156000000 002470 aa 600000000041 002471 aa 000254000000 002472 aa 600000000041 002473 aa 000312000000 002474 aa 600000000041 002475 aa 000257000000 002476 aa 000002000000 002477 aa 000000000000 002500 aa 600000000041 002501 aa 000232000000 000000 aa 164 162 141 146 traf 000001 aa 146 151 143 137 fic_ 000002 aa 143 157 156 164 cont 000003 aa 162 157 154 137 rol_ 000004 aa 161 165 145 165 queu 000005 aa 145 000 000 000 e 000006 aa 145 170 162 167 exrw 000007 aa 142 163 160 000 bsp 000010 aa 050750220000 000011 aa 524000000020 000012 aa 414000000033 000013 aa 526000000020 000014 aa 524000000063 000015 aa 526000000011 000016 aa 526000000034 000017 aa 514000000044 000020 aa 111 144 154 145 Idle 000021 aa 024763777575 000022 aa 024763400000 002502 aa 077 000 000 000 ? 000023 aa 524000000002 000024 aa 524000000015 000025 aa 524000000047 000026 aa 524000000024 000027 aa 524000000021 000030 aa 524000000111 000031 aa 524000000073 000032 aa 000071160700 000033 aa 524000000042 000034 aa 524000000012 000035 aa 526000000000 000036 aa 524000000045 002504 aa 055 141 000 000 -a 000037 aa 055 141 154 154 -all 000040 aa 526000000025 000041 aa 404000000005 000042 aa 524000000007 000043 aa 404000000043 000044 aa 464000000000 000045 aa 524000000004 000046 aa 144 163 145 147 dseg 000047 aa 524000000000 002503 aa 000000000021 000050 aa 404000000021 000051 aa 514000000001 000052 aa 000000000000 000053 aa 000000000000 000054 aa 141 142 143 144 abcd 000055 aa 145 146 147 150 efgh 000056 aa 164 145 155 160 temp 000057 aa 137 163 145 147 _seg 000060 aa 164 143 137 144 tc_d 000061 aa 141 164 141 000 ata 000062 aa 156 157 164 040 not 000063 aa 146 157 165 156 foun 000064 aa 144 000 000 000 d 000065 aa 142 141 144 040 bad 000066 aa 163 141 155 160 samp 000067 aa 154 145 000 000 le 000070 aa 146 151 162 163 firs 000071 aa 164 040 141 162 t ar 000072 aa 147 000 000 000 g 000073 aa 061 127 123 120 1WSP 000074 aa 110 114 105 111 HLEI 000075 aa 124 064 065 066 T456 000076 aa 101 104 102 000 ADB 000077 aa 136 057 125 116 ^/UN 000100 aa 124 110 122 105 THRE 000101 aa 101 104 105 104 ADED 000102 aa 072 000 000 000 : 000103 aa 136 057 111 116 ^/IN 000104 aa 124 105 122 101 TERA 000105 aa 103 124 111 126 CTIV 000106 aa 105 040 121 125 E QU 000107 aa 105 125 105 072 EUE: 000110 aa 136 057 104 105 ^/DE 000111 aa 101 104 114 111 ADLI 000112 aa 116 105 040 121 NE Q 000113 aa 125 105 125 105 UEUE 000114 aa 072 000 000 000 : 000115 aa 136 057 122 105 ^/RE 000116 aa 101 114 124 111 ALTI 000117 aa 115 105 040 121 ME Q 000120 aa 125 105 125 105 UEUE 000121 aa 072 000 000 000 : 000122 aa 136 141 072 040 ^a: 000123 aa 141 142 157 162 abor 000124 aa 164 151 156 147 ting 000125 aa 054 040 164 157 , to 000126 aa 157 040 155 141 o ma 000127 aa 156 171 040 142 ny b 000130 aa 141 144 040 163 ad s 000131 aa 141 155 160 154 ampl 000132 aa 145 163 000 000 es 000133 aa 136 057 127 117 ^/WO 000134 aa 122 113 103 114 RKCL 000135 aa 101 123 123 136 ASS^ 000136 aa 063 144 040 121 3d Q 000137 aa 125 105 125 105 UEUE 000140 aa 072 040 143 162 : cr 000141 aa 145 144 151 164 edit 000142 aa 163 040 075 040 s = 000143 aa 136 065 144 040 ^5d 000144 aa 155 163 056 000 ms. 000145 aa 136 141 072 040 ^a: 000146 aa 125 156 162 145 Unre 000147 aa 143 157 147 156 cogn 000150 aa 151 172 145 144 ized 000151 aa 040 157 160 164 opt 000152 aa 151 157 156 040 ion 000153 aa 151 147 156 157 igno 000154 aa 162 145 144 040 red 000155 aa 055 055 040 136 -- ^ 000156 aa 141 000 000 000 a 000157 aa 136 070 141 136 ^8a^ 000160 aa 064 144 040 136 4d ^ 000161 aa 066 144 040 136 6d ^ 000162 aa 065 144 040 136 5d ^ 000163 aa 064 144 040 136 4d ^ 000164 aa 065 144 040 136 5d ^ 000165 aa 065 144 040 136 5d ^ 000166 aa 067 056 063 146 7.3f 000167 aa 040 136 065 157 ^5o 000170 aa 040 136 061 144 ^1d 000171 aa 040 136 063 144 ^3d 000172 aa 040 136 062 144 ^2d 000173 aa 040 136 141 000 ^a 000174 aa 141 166 161 040 avq 000175 aa 075 040 136 144 = ^d 000176 aa 054 040 145 154 , el 000177 aa 141 160 163 145 apse 000200 aa 144 040 164 151 d ti 000201 aa 155 145 040 075 me = 000202 aa 040 136 144 040 ^d 000203 aa 163 145 143 054 sec, 000204 aa 040 136 144 040 ^d 000205 aa 141 143 164 151 acti 000206 aa 166 145 040 154 ve l 000207 aa 141 163 164 040 ast 000210 aa 061 065 040 163 15 s 000211 aa 145 143 056 136 ec.^ 000212 aa 057 136 141 000 /^a 000213 aa 146 154 141 147 flag 000214 aa 163 040 040 040 s 000215 aa 040 144 164 165 dtu 000216 aa 040 040 040 040 000217 aa 144 160 146 040 dpf 000220 aa 164 145 155 141 tema 000221 aa 170 040 040 040 x 000222 aa 164 145 040 040 te 000223 aa 040 040 164 163 ts 000224 aa 040 040 040 040 000225 aa 164 151 040 040 ti 000226 aa 040 040 164 163 ts 000227 aa 163 143 040 145 sc e 000230 aa 166 145 156 164 vent 000231 aa 040 144 040 040 d 000232 aa 167 163 040 167 ws w 000233 aa 143 040 160 162 c pr 000234 aa 157 143 145 163 oces 000235 aa 163 000 000 000 s BEGIN PROCEDURE tcq ENTRY TO tcq STATEMENT 1 ON LINE 12 traffic_control_queue: tcq: proc; 000236 da 000110200000 000237 aa 000540 6270 00 eax7 352 000240 aa 7 00034 3521 20 epp2 pr7|28,* 000241 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000242 aa 000000000000 000243 aa 000000000000 000244 aa 000007 7100 04 tra 7,ic 000253 ENTRY TO traffic_control_queue STATEMENT 1 ON LINE 12 traffic_control_queue: tcq: proc; 000245 da 000113200000 000246 aa 000540 6270 00 eax7 352 000247 aa 7 00034 3521 20 epp2 pr7|28,* 000250 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000251 aa 000000000000 000252 aa 000000000000 STATEMENT 1 ON LINE 86 tsdwp = addr (tsdw); 000253 aa 6 00150 3735 00 epp7 pr6|104 tsdw 000254 aa 6 00152 6535 00 spri7 pr6|106 tsdwp STATEMENT 1 ON LINE 87 if ^init then do; 000255 ia 4 00022 2351 00 lda pr4|18 init 000256 aa 000221 6010 04 tnz 145,ic 000477 STATEMENT 1 ON LINE 89 call ring0_get_$segptr ("", "dseg", dsp0, code); 000257 aa 777567 2350 04 lda -137,ic 000046 = 144163145147 000260 aa 6 00231 7551 00 sta pr6|153 000261 aa 6 00230 3521 00 epp2 pr6|152 000262 aa 6 00234 2521 00 spri2 pr6|156 000263 aa 6 00231 3521 00 epp2 pr6|153 000264 aa 6 00236 2521 00 spri2 pr6|158 000265 ia 4 00020 3521 00 epp2 pr4|16 dsp0 000266 aa 6 00240 2521 00 spri2 pr6|160 000267 aa 6 00140 3521 00 epp2 pr6|96 code 000270 aa 6 00242 2521 00 spri2 pr6|162 000271 aa 777556 3520 04 epp2 -146,ic 000047 = 524000000000 000272 aa 6 00244 2521 00 spri2 pr6|164 000273 aa 777552 3520 04 epp2 -150,ic 000045 = 524000000004 000274 aa 6 00246 2521 00 spri2 pr6|166 000275 aa 777547 3520 04 epp2 -153,ic 000044 = 464000000000 000276 aa 6 00250 2521 00 spri2 pr6|168 000277 aa 777544 3520 04 epp2 -156,ic 000043 = 404000000043 000300 aa 6 00252 2521 00 spri2 pr6|170 000301 aa 6 00232 6211 00 eax1 pr6|154 000302 aa 020000 4310 07 fld 8192,dl 000303 la 4 05730 3521 20 epp2 pr4|3032,* ring0_get_$segptr 000304 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 90 if code ^= 0 then call ERRPRINT ("dseg"); 000305 aa 6 00140 2361 00 ldq pr6|96 code 000306 aa 000006 6000 04 tze 6,ic 000314 000307 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000310 aa 777537 00 0004 desc9a -161,4 000046 = 144163145147 000311 aa 6 00232 00 0020 desc9a pr6|154,16 000312 aa 002164 3520 04 epp2 1140,ic 002476 = 000002000000 000313 aa 002064 6700 04 tsp4 1076,ic 002377 STATEMENT 1 ON LINE 91 call ring0_get_$segptr ("", "tc_data", tcmp0, code); 000314 aa 777544 2370 04 ldaq -156,ic 000060 = 164143137144 141164141000 000315 aa 6 00254 7571 00 staq pr6|172 000316 aa 6 00231 3521 00 epp2 pr6|153 000317 aa 6 00234 2521 00 spri2 pr6|156 000320 aa 6 00254 3521 00 epp2 pr6|172 000321 aa 6 00236 2521 00 spri2 pr6|158 000322 aa 6 00044 3701 20 epp4 pr6|36,* 000323 ia 4 00014 3521 00 epp2 pr4|12 tcmp0 000324 aa 6 00240 2521 00 spri2 pr6|160 000325 aa 6 00140 3521 00 epp2 pr6|96 code 000326 aa 6 00242 2521 00 spri2 pr6|162 000327 aa 777520 3520 04 epp2 -176,ic 000047 = 524000000000 000330 aa 6 00244 2521 00 spri2 pr6|164 000331 aa 777511 3520 04 epp2 -183,ic 000042 = 524000000007 000332 aa 6 00246 2521 00 spri2 pr6|166 000333 aa 777511 3520 04 epp2 -183,ic 000044 = 464000000000 000334 aa 6 00250 2521 00 spri2 pr6|168 000335 aa 777506 3520 04 epp2 -186,ic 000043 = 404000000043 000336 aa 6 00252 2521 00 spri2 pr6|170 000337 aa 6 00232 6211 00 eax1 pr6|154 000340 aa 020000 4310 07 fld 8192,dl 000341 la 4 05730 3521 20 epp2 pr4|3032,* ring0_get_$segptr 000342 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 92 if code ^= 0 then call ERRPRINT ("tc_data"); 000343 aa 6 00140 2361 00 ldq pr6|96 code 000344 aa 000006 6000 04 tze 6,ic 000352 000345 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000346 aa 777513 00 0007 desc9a -181,7 000060 = 164143137144 000347 aa 6 00232 00 0020 desc9a pr6|154,16 000350 aa 002126 3520 04 epp2 1110,ic 002476 = 000002000000 000351 aa 002026 6700 04 tsp4 1046,ic 002377 STATEMENT 1 ON LINE 93 call hcs_$make_seg ("", "", "", 01010b, tempp, code); 000352 aa 000012 2360 07 ldq 10,dl 000353 aa 6 00257 7561 00 stq pr6|175 000354 aa 6 00231 3521 00 epp2 pr6|153 000355 aa 6 00262 2521 00 spri2 pr6|178 000356 aa 6 00230 3521 00 epp2 pr6|152 000357 aa 6 00264 2521 00 spri2 pr6|180 000360 aa 6 00256 3521 00 epp2 pr6|174 000361 aa 6 00266 2521 00 spri2 pr6|182 000362 aa 6 00257 3521 00 epp2 pr6|175 000363 aa 6 00270 2521 00 spri2 pr6|184 000364 aa 6 00044 3701 20 epp4 pr6|36,* 000365 ia 4 00016 3521 00 epp2 pr4|14 tempp 000366 aa 6 00272 2521 00 spri2 pr6|186 000367 aa 6 00140 3521 00 epp2 pr6|96 code 000370 aa 6 00274 2521 00 spri2 pr6|188 000371 aa 777456 3520 04 epp2 -210,ic 000047 = 524000000000 000372 aa 6 00276 2521 00 spri2 pr6|190 000373 aa 6 00300 2521 00 spri2 pr6|192 000374 aa 6 00302 2521 00 spri2 pr6|194 000375 aa 777444 3520 04 epp2 -220,ic 000041 = 404000000005 000376 aa 6 00304 2521 00 spri2 pr6|196 000377 aa 777445 3520 04 epp2 -219,ic 000044 = 464000000000 000400 aa 6 00306 2521 00 spri2 pr6|198 000401 aa 777442 3520 04 epp2 -222,ic 000043 = 404000000043 000402 aa 6 00310 2521 00 spri2 pr6|200 000403 aa 6 00260 6211 00 eax1 pr6|176 000404 aa 030000 4310 07 fld 12288,dl 000405 la 4 05724 3521 20 epp2 pr4|3028,* hcs_$make_seg 000406 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 94 if code ^= 0 then call ERRPRINT ("temp_seg"); 000407 aa 6 00140 2361 00 ldq pr6|96 code 000410 aa 000006 6000 04 tze 6,ic 000416 000411 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000412 aa 777445 00 0010 desc9a -219,8 000056 = 164145155160 000413 aa 6 00232 00 0020 desc9a pr6|154,16 000414 aa 002062 3520 04 epp2 1074,ic 002476 = 000002000000 000415 aa 001762 6700 04 tsp4 1010,ic 002377 STATEMENT 1 ON LINE 95 i = fixed (baseno (tcmp0)); 000416 aa 6 00044 3701 20 epp4 pr6|36,* 000417 ia 4 00014 2131 20 epaq pr4|12,* tcmp0 000420 aa 077777 3750 03 ana 32767,du 000421 aa 000066 7730 00 lrl 54 000422 aa 6 00135 7561 00 stq pr6|93 i STATEMENT 1 ON LINE 96 call ring_zero_peek_ (addr (dsp0 -> sdwa (i)), tsdwp, 2, code); 000423 aa 000001 7360 00 qls 1 000424 ia 4 00020 3735 66 epp7 pr4|16,*ql sdwa 000425 aa 6 00254 6535 00 spri7 pr6|172 000426 aa 000002 2360 07 ldq 2,dl 000427 aa 6 00257 7561 00 stq pr6|175 000430 aa 6 00254 3521 00 epp2 pr6|172 000431 aa 6 00234 2521 00 spri2 pr6|156 000432 aa 6 00152 3521 00 epp2 pr6|106 tsdwp 000433 aa 6 00236 2521 00 spri2 pr6|158 000434 aa 6 00257 3521 00 epp2 pr6|175 000435 aa 6 00240 2521 00 spri2 pr6|160 000436 aa 6 00140 3521 00 epp2 pr6|96 code 000437 aa 6 00242 2521 00 spri2 pr6|162 000440 aa 6 00232 6211 00 eax1 pr6|154 000441 aa 020000 4310 07 fld 8192,dl 000442 la 4 05722 3521 20 epp2 pr4|3026,* ring_zero_peek_ 000443 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 97 if code ^= 0 then call ERRPRINT ("dseg"); 000444 aa 6 00140 2361 00 ldq pr6|96 code 000445 aa 000006 6000 04 tze 6,ic 000453 000446 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000447 aa 777400 00 0004 desc9a -256,4 000046 = 144163145147 000450 aa 6 00232 00 0020 desc9a pr6|154,16 000451 aa 002025 3520 04 epp2 1045,ic 002476 = 000002000000 000452 aa 001725 6700 04 tsp4 981,ic 002377 STATEMENT 1 ON LINE 98 tcml = (fixed (tsdwp -> sdw.bound, 14) + 1) * 16; 000453 aa 6 00152 3735 20 epp7 pr6|106,* tsdwp 000454 aa 7 00001 2351 00 lda pr7|1 sdw.bound 000455 aa 000001 7350 00 als 1 000456 aa 000072 7730 00 lrl 58 000457 aa 000001 0760 07 adq 1,dl 000460 aa 000004 7360 00 qls 4 000461 aa 6 00044 3701 20 epp4 pr6|36,* 000462 ia 4 00012 7561 00 stq pr4|10 tcml STATEMENT 1 ON LINE 100 do i = 0 to 500; 000463 aa 6 00135 4501 00 stz pr6|93 i 000464 aa 6 00135 2361 00 ldq pr6|93 i 000465 aa 000764 1160 07 cmpq 500,dl 000466 aa 000006 6054 04 tpnz 6,ic 000474 STATEMENT 1 ON LINE 101 last.pid (i) = ""b; 000467 aa 000006 4020 07 mpy 6,dl 000470 aa 6 00044 3701 20 epp4 pr6|36,* 000471 ia 4 00031 4501 06 stz pr4|25,ql last.pid STATEMENT 1 ON LINE 102 end; 000472 aa 6 00135 0541 00 aos pr6|93 i 000473 aa 777771 7100 04 tra -7,ic 000464 STATEMENT 1 ON LINE 103 init = "1"b; 000474 aa 400000 2350 03 lda 131072,du 000475 aa 6 00044 3701 20 epp4 pr6|36,* 000476 ia 4 00022 7551 00 sta pr4|18 init STATEMENT 1 ON LINE 104 end; STATEMENT 1 ON LINE 105 tcmp = tempp; 000477 ia 4 00016 3735 20 epp7 pr4|14,* tempp 000500 aa 6 00156 6535 00 spri7 pr6|110 tcmp STATEMENT 1 ON LINE 109 ALL = ""b; 000501 aa 6 00104 4501 00 stz pr6|68 ALL STATEMENT 1 ON LINE 110 call cu_$arg_count (ac, code); 000502 aa 6 00146 3521 00 epp2 pr6|102 ac 000503 aa 6 00234 2521 00 spri2 pr6|156 000504 aa 6 00140 3521 00 epp2 pr6|96 code 000505 aa 6 00236 2521 00 spri2 pr6|158 000506 aa 6 00232 6211 00 eax1 pr6|154 000507 aa 010000 4310 07 fld 4096,dl 000510 la 4 05736 3521 20 epp2 pr4|3038,* cu_$arg_count 000511 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 111 if code ^= 0 then do; 000512 aa 6 00140 2361 00 ldq pr6|96 code 000513 aa 000017 6000 04 tze 15,ic 000532 STATEMENT 1 ON LINE 112 call com_err_ (code, ME); 000514 aa 6 00140 3521 00 epp2 pr6|96 code 000515 aa 6 00234 2521 00 spri2 pr6|156 000516 aa 777262 3520 04 epp2 -334,ic 000000 = 164162141146 000517 aa 6 00236 2521 00 spri2 pr6|158 000520 aa 777323 3520 04 epp2 -301,ic 000043 = 404000000043 000521 aa 6 00240 2521 00 spri2 pr6|160 000522 aa 777316 3520 04 epp2 -306,ic 000040 = 526000000025 000523 aa 6 00242 2521 00 spri2 pr6|162 000524 aa 6 00232 6211 00 eax1 pr6|154 000525 aa 010000 4310 07 fld 4096,dl 000526 aa 6 00044 3701 20 epp4 pr6|36,* 000527 la 4 05734 3521 20 epp2 pr4|3036,* com_err_ 000530 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 113 return; 000531 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 114 end; STATEMENT 1 ON LINE 115 if ac > 0 then do; 000532 aa 6 00146 2361 00 ldq pr6|102 ac 000533 aa 000073 6044 04 tmoz 59,ic 000626 STATEMENT 1 ON LINE 116 call cu_$arg_ptr (1, ap, al, code); 000534 aa 000001 2360 07 ldq 1,dl 000535 aa 6 00257 7561 00 stq pr6|175 000536 aa 6 00257 3521 00 epp2 pr6|175 000537 aa 6 00234 2521 00 spri2 pr6|156 000540 aa 6 00144 3521 00 epp2 pr6|100 ap 000541 aa 6 00236 2521 00 spri2 pr6|158 000542 aa 6 00143 3521 00 epp2 pr6|99 al 000543 aa 6 00240 2521 00 spri2 pr6|160 000544 aa 6 00140 3521 00 epp2 pr6|96 code 000545 aa 6 00242 2521 00 spri2 pr6|162 000546 aa 6 00232 6211 00 eax1 pr6|154 000547 aa 020000 4310 07 fld 8192,dl 000550 aa 6 00044 3701 20 epp4 pr6|36,* 000551 la 4 05740 3521 20 epp2 pr4|3040,* cu_$arg_ptr 000552 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 117 if code ^= 0 then call ERRPRINT ("first arg"); 000553 aa 6 00140 2361 00 ldq pr6|96 code 000554 aa 000006 6000 04 tze 6,ic 000562 000555 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000556 aa 777313 00 0011 desc9a -309,9 000070 = 146151162163 000557 aa 6 00232 00 0020 desc9a pr6|154,16 000560 aa 001716 3520 04 epp2 974,ic 002476 = 000002000000 000561 aa 001616 6700 04 tsp4 910,ic 002377 STATEMENT 1 ON LINE 118 if arg = "-all" | arg = "-a" then ALL = "1"b; 000562 aa 6 00144 3735 20 epp7 pr6|100,* ap 000563 aa 6 00143 7271 00 lxl7 pr6|99 al 000564 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000565 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000566 aa 777253 00 0004 desc9a -341,4 000037 = 055141154154 000567 aa 000005 6000 04 tze 5,ic 000574 000570 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000571 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000572 aa 001714 00 0002 desc9a 972,2 002504 = 055141000000 000573 aa 000004 6010 04 tnz 4,ic 000577 000574 aa 400000 2350 03 lda 131072,du 000575 aa 6 00104 7551 00 sta pr6|68 ALL 000576 aa 000030 7100 04 tra 24,ic 000626 STATEMENT 1 ON LINE 119 else do; STATEMENT 1 ON LINE 120 call ioa_ ("^a: Unrecognized option ignored -- ^a", ME, arg); 000577 aa 6 00143 2361 00 ldq pr6|99 al 000600 aa 526000 2760 03 orq 175104,du 000601 aa 6 00257 7561 00 stq pr6|175 000602 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000603 aa 777343 00 0050 desc9a -285,40 000145 = 136141072040 000604 aa 6 00232 00 0050 desc9a pr6|154,40 000605 aa 6 00232 3521 00 epp2 pr6|154 000606 aa 6 00262 2521 00 spri2 pr6|178 000607 aa 777171 3520 04 epp2 -391,ic 000000 = 164162141146 000610 aa 6 00264 2521 00 spri2 pr6|180 000611 aa 7 00000 3521 00 epp2 pr7|0 arg 000612 aa 6 00266 2521 00 spri2 pr6|182 000613 aa 777223 3520 04 epp2 -365,ic 000036 = 524000000045 000614 aa 6 00270 2521 00 spri2 pr6|184 000615 aa 777223 3520 04 epp2 -365,ic 000040 = 526000000025 000616 aa 6 00272 2521 00 spri2 pr6|186 000617 aa 6 00257 3521 00 epp2 pr6|175 000620 aa 6 00274 2521 00 spri2 pr6|188 000621 aa 6 00260 6211 00 eax1 pr6|176 000622 aa 014000 4310 07 fld 6144,dl 000623 aa 6 00044 3701 20 epp4 pr6|36,* 000624 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 000625 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 121 end; STATEMENT 1 ON LINE 122 end; STATEMENT 1 ON LINE 126 ac = 0; 000626 aa 6 00146 4501 00 stz pr6|102 ac STATEMENT 1 ON LINE 127 again: if ac > 0 then call ioa_ ("bad sample"); 000627 aa 6 00146 2361 00 ldq pr6|102 ac 000630 aa 000017 6044 04 tmoz 15,ic 000647 000631 aa 777234 2350 04 lda -356,ic 000065 = 142141144040 000632 aa 777234 2360 04 ldq -356,ic 000066 = 163141155160 000633 aa 6 00232 7571 00 staq pr6|154 000634 aa 154145 2350 03 lda 55397,du 000635 aa 6 00234 7551 00 sta pr6|156 000636 aa 6 00232 3521 00 epp2 pr6|154 000637 aa 6 00262 2521 00 spri2 pr6|178 000640 aa 777174 3520 04 epp2 -388,ic 000034 = 524000000012 000641 aa 6 00264 2521 00 spri2 pr6|180 000642 aa 6 00260 6211 00 eax1 pr6|176 000643 aa 004000 4310 07 fld 2048,dl 000644 aa 6 00044 3701 20 epp4 pr6|36,* 000645 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 000646 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 129 call ring_zero_peek_ (tcmp0, tcmp, tcml, code); 000647 aa 6 00044 3701 20 epp4 pr6|36,* 000650 ia 4 00014 3521 00 epp2 pr4|12 tcmp0 000651 aa 6 00234 2521 00 spri2 pr6|156 000652 aa 6 00156 3521 00 epp2 pr6|110 tcmp 000653 aa 6 00236 2521 00 spri2 pr6|158 000654 ia 4 00012 3521 00 epp2 pr4|10 tcml 000655 aa 6 00240 2521 00 spri2 pr6|160 000656 aa 6 00140 3521 00 epp2 pr6|96 code 000657 aa 6 00242 2521 00 spri2 pr6|162 000660 aa 6 00232 6211 00 eax1 pr6|154 000661 aa 020000 4310 07 fld 8192,dl 000662 la 4 05722 3521 20 epp2 pr4|3026,* ring_zero_peek_ 000663 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 130 if code ^= 0 then call ERRPRINT ("tc_data"); 000664 aa 6 00140 2361 00 ldq pr6|96 code 000665 aa 000006 6000 04 tze 6,ic 000673 000666 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000667 aa 777172 00 0007 desc9a -390,7 000060 = 164143137144 000670 aa 6 00232 00 0020 desc9a pr6|154,16 000671 aa 001605 3520 04 epp2 901,ic 002476 = 000002000000 000672 aa 001505 6700 04 tsp4 837,ic 002377 STATEMENT 1 ON LINE 131 call ring_zero_peek_ (tcmp0, tcmp, tcml, code); 000673 aa 6 00044 3701 20 epp4 pr6|36,* 000674 ia 4 00014 3521 00 epp2 pr4|12 tcmp0 000675 aa 6 00234 2521 00 spri2 pr6|156 000676 aa 6 00156 3521 00 epp2 pr6|110 tcmp 000677 aa 6 00236 2521 00 spri2 pr6|158 000700 ia 4 00012 3521 00 epp2 pr4|10 tcml 000701 aa 6 00240 2521 00 spri2 pr6|160 000702 aa 6 00140 3521 00 epp2 pr6|96 code 000703 aa 6 00242 2521 00 spri2 pr6|162 000704 aa 6 00232 6211 00 eax1 pr6|154 000705 aa 020000 4310 07 fld 8192,dl 000706 la 4 05722 3521 20 epp2 pr4|3026,* ring_zero_peek_ 000707 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 132 if code ^= 0 then call ERRPRINT ("tc_data"); 000710 aa 6 00140 2361 00 ldq pr6|96 code 000711 aa 000006 6000 04 tze 6,ic 000717 000712 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000713 aa 777146 00 0007 desc9a -410,7 000060 = 164143137144 000714 aa 6 00232 00 0020 desc9a pr6|154,16 000715 aa 001561 3520 04 epp2 881,ic 002476 = 000002000000 000716 aa 001461 6700 04 tsp4 817,ic 002377 STATEMENT 1 ON LINE 133 ac = ac + 1; 000717 aa 6 00146 0541 00 aos pr6|102 ac STATEMENT 1 ON LINE 134 if ac > 5 then do; 000720 aa 6 00146 2361 00 ldq pr6|102 ac 000721 aa 000005 1160 07 cmpq 5,dl 000722 aa 000022 6044 04 tmoz 18,ic 000744 STATEMENT 1 ON LINE 137 call ioa_ ("^a: aborting, too many bad samples", ME); 000723 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000724 aa 777177 00 0044 desc9a -385,36 000122 = 136141072040 000725 aa 6 00232 00 0044 desc9a pr6|154,36 000726 aa 6 00232 3521 00 epp2 pr6|154 000727 aa 6 00262 2521 00 spri2 pr6|178 000730 aa 777050 3520 04 epp2 -472,ic 000000 = 164162141146 000731 aa 6 00264 2521 00 spri2 pr6|180 000732 aa 777101 3520 04 epp2 -447,ic 000033 = 524000000042 000733 aa 6 00266 2521 00 spri2 pr6|182 000734 aa 777104 3520 04 epp2 -444,ic 000040 = 526000000025 000735 aa 6 00270 2521 00 spri2 pr6|184 000736 aa 6 00260 6211 00 eax1 pr6|176 000737 aa 010000 4310 07 fld 4096,dl 000740 aa 6 00044 3701 20 epp4 pr6|36,* 000741 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 000742 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 138 return; 000743 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 139 end; STATEMENT 1 ON LINE 144 APT_BASE = fixed (tcm.apt_offset, 18); 000744 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 000745 aa 7 00253 2351 00 lda pr7|171 tcm.apt_offset 000746 aa 000066 7730 00 lrl 54 000747 aa 6 00101 7561 00 stq pr6|65 APT_BASE STATEMENT 1 ON LINE 145 if APT_BASE = 0 then APT_BASE = 256; 000750 aa 6 00101 2361 00 ldq pr6|65 APT_BASE 000751 aa 000003 6010 04 tnz 3,ic 000754 000752 aa 000400 2360 07 ldq 256,dl 000753 aa 6 00101 7561 00 stq pr6|65 APT_BASE STATEMENT 1 ON LINE 146 WCTE_WORDS = divide (APT_BASE - fixed (tcm.min_wct_index), 17, 17, 0); 000754 aa 7 00404 2351 00 lda pr7|260 tcm.min_wct_index 000755 aa 000066 7730 00 lrl 54 000756 aa 000000 5330 00 negl 0 000757 aa 6 00101 0331 00 adl pr6|65 APT_BASE 000760 aa 001523 3520 04 epp2 851,ic 002503 = 000000000021 000761 aa 0 01264 7001 00 tsx0 pr0|692 divide_fx3 000762 aa 000000000000 000763 aa 6 00102 7561 00 stq pr6|66 WCTE_WORDS STATEMENT 1 ON LINE 151 if ^ct (tcmp, addr (tcm.ready_q_head), addr (tcm.ready_q_tail)) then go to again; 000764 aa 7 00350 3715 00 epp5 pr7|232 tcm.ready_q_head 000765 aa 6 00254 6515 00 spri5 pr6|172 000766 aa 7 00352 3535 00 epp3 pr7|234 tcm.ready_q_tail 000767 aa 6 00312 2535 00 spri3 pr6|202 000770 aa 001474 3520 04 epp2 828,ic 002464 = 000010000000 000771 aa 000640 6700 04 tsp4 416,ic 001631 000772 aa 6 00257 2351 00 lda pr6|175 000773 aa 400000 3150 03 cana 131072,du 000774 aa 777633 6000 04 tze -101,ic 000627 STATEMENT 1 ON LINE 152 if tcm.realtime_q.sentinel ^= ""b then if ^ct (tcmp, addr (tcm.realtime_q), addr (tcm.realtime_q)) then go to again; 000775 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 000776 aa 7 00315 2351 00 lda pr7|205 tcm.sentinel 000777 aa 000012 6000 04 tze 10,ic 001011 001000 aa 7 00314 3715 00 epp5 pr7|204 tcm.realtime_q 001001 aa 6 00312 6515 00 spri5 pr6|202 001002 aa 7 00314 3535 00 epp3 pr7|204 tcm.realtime_q 001003 aa 6 00254 2535 00 spri3 pr6|172 001004 aa 001446 3520 04 epp2 806,ic 002452 = 000010000000 001005 aa 000624 6700 04 tsp4 404,ic 001631 001006 aa 6 00257 2351 00 lda pr6|175 001007 aa 400000 3150 03 cana 131072,du 001010 aa 777617 6000 04 tze -113,ic 000627 STATEMENT 1 ON LINE 154 if ^ct (tcmp, addr (tcm.interactive_q), addr (tcm.interactive_q)) then go to again; 001011 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001012 aa 7 00330 3735 00 epp7 pr7|216 tcm.interactive_q 001013 aa 6 00254 6535 00 spri7 pr6|172 001014 aa 6 00156 3715 20 epp5 pr6|110,* tcmp 001015 aa 5 00330 3715 00 epp5 pr5|216 tcm.interactive_q 001016 aa 6 00312 6515 00 spri5 pr6|202 001017 aa 001445 3520 04 epp2 805,ic 002464 = 000010000000 001020 aa 000611 6700 04 tsp4 393,ic 001631 001021 aa 6 00257 2351 00 lda pr6|175 001022 aa 400000 3150 03 cana 131072,du 001023 aa 777604 6000 04 tze -124,ic 000627 STATEMENT 1 ON LINE 155 wctep = addr (tcm.wcte (0)); 001024 aa 000000 3360 07 lcq 0,dl 001025 aa 6 00257 7561 00 stq pr6|175 001026 aa 000436 2360 07 ldq 286,dl 001027 aa 000001 0760 07 adq 1,dl 001030 aa 777776 3760 07 anq 262142,dl 001031 aa 000010 0760 07 adq 8,dl 001032 aa 000001 0760 07 adq 1,dl 001033 aa 777776 3760 07 anq 262142,dl 001034 aa 000006 0760 07 adq 6,dl 001035 aa 000001 0760 07 adq 1,dl 001036 aa 777776 3760 07 anq 262142,dl 001037 aa 000012 0760 07 adq 10,dl 001040 aa 000001 0760 07 adq 1,dl 001041 aa 777776 3760 07 anq 262142,dl 001042 aa 000422 0760 07 adq 274,dl 001043 aa 000001 0760 07 adq 1,dl 001044 aa 777776 3760 07 anq 262142,dl 001045 aa 6 00257 0761 00 adq pr6|175 001046 aa 6 00156 3735 66 epp7 pr6|110,*ql tcm.wcte 001047 aa 6 00160 6535 00 spri7 pr6|112 wctep STATEMENT 1 ON LINE 156 do i = 0 to 16; 001050 aa 6 00135 4501 00 stz pr6|93 i 001051 aa 000000 0110 03 nop 0,du 001052 aa 6 00135 2361 00 ldq pr6|93 i 001053 aa 000020 1160 07 cmpq 16,dl 001054 aa 000014 6054 04 tpnz 12,ic 001070 STATEMENT 1 ON LINE 157 if ^ct (tcmp, wctep, wctep) then go to again; 001055 aa 001363 3520 04 epp2 755,ic 002440 = 000010000000 001056 aa 000553 6700 04 tsp4 363,ic 001631 001057 aa 6 00257 2351 00 lda pr6|175 001060 aa 400000 3150 03 cana 131072,du 001061 aa 777546 6000 04 tze -154,ic 000627 STATEMENT 1 ON LINE 158 wctep = addrel (wctep, WCTE_WORDS); 001062 aa 6 00102 2361 00 ldq pr6|66 WCTE_WORDS 001063 aa 6 00160 3521 66 epp2 pr6|112,*ql wctep 001064 aa 000000 0520 03 adwp2 0,du 001065 aa 6 00160 2521 00 spri2 pr6|112 wctep STATEMENT 1 ON LINE 159 end; 001066 aa 6 00135 0541 00 aos pr6|93 i 001067 aa 777763 7100 04 tra -13,ic 001052 STATEMENT 1 ON LINE 161 if ltime = 0 then ltime = tcm.last_time; 001070 aa 6 00044 3701 20 epp4 pr6|36,* 001071 ia 4 00010 2371 00 ldaq pr4|8 ltime 001072 aa 000004 6010 04 tnz 4,ic 001076 001073 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001074 aa 7 00034 2371 00 ldaq pr7|28 tcm.last_time 001075 ia 4 00010 7571 00 staq pr4|8 ltime STATEMENT 1 ON LINE 166 recent = 0; 001076 aa 6 00137 4501 00 stz pr6|95 recent STATEMENT 1 ON LINE 167 aptep = addrel (tcmp, APT_BASE); 001077 aa 6 00101 2361 00 ldq pr6|65 APT_BASE 001100 aa 6 00156 3521 66 epp2 pr6|110,*ql tcmp 001101 aa 000000 0520 03 adwp2 0,du 001102 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 168 do i = 0 to tcm.apt_size - 1; 001103 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001104 aa 7 00313 2361 00 ldq pr7|203 tcm.apt_size 001105 aa 000001 1760 07 sbq 1,dl 001106 aa 6 00162 7561 00 stq pr6|114 001107 aa 6 00135 4501 00 stz pr6|93 i 001110 aa 6 00135 2361 00 ldq pr6|93 i 001111 aa 6 00162 1161 00 cmpq pr6|114 001112 aa 000020 6054 04 tpnz 16,ic 001132 STATEMENT 1 ON LINE 169 if tcm.last_time - state_change_time < 15000000 then recent = recent + 1; 001113 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001114 aa 7 00034 2371 00 ldaq pr7|28 tcm.last_time 001115 aa 6 00154 3715 20 epp5 pr6|108,* aptep 001116 aa 5 00022 1771 00 sbaq pr5|18 apte.state_change_time 001117 aa 6 00312 7571 00 staq pr6|202 001120 aa 776712 2350 04 lda -566,ic 000032 = 000071160700 001121 aa 000044 7330 00 lrs 36 001122 aa 6 00312 1171 00 cmpaq pr6|202 001123 aa 000002 6044 04 tmoz 2,ic 001125 001124 aa 6 00137 0541 00 aos pr6|95 recent STATEMENT 1 ON LINE 171 aptep = addrel (aptep, tcm.apt_entry_size); 001125 aa 7 00327 2361 00 ldq pr7|215 tcm.apt_entry_size 001126 aa 5 00000 5075 06 awd pr5|0,ql 001127 aa 6 00154 6515 00 spri5 pr6|108 aptep STATEMENT 1 ON LINE 172 end; 001130 aa 6 00135 0541 00 aos pr6|93 i 001131 aa 777757 7100 04 tra -17,ic 001110 STATEMENT 1 ON LINE 173 a = float (tcm.avequeue); 001132 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001133 aa 7 00016 2351 00 lda pr7|14 tcm.avequeue 001134 aa 000044 7330 00 lrs 36 001135 aa 152000 4110 03 lde 54272,du 001136 aa 400000 4750 03 fad 131072,du 001137 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 001140 aa 6 00125 7561 00 stq pr6|85 a STATEMENT 1 ON LINE 174 b = float (tcm.last_time - ltime) / sec + .5e0; 001141 aa 776647 4310 04 fld -601,ic 000010 = 050750220000 001142 aa 6 00312 4571 00 dfst pr6|202 sec 001143 aa 7 00034 2371 00 ldaq pr7|28 tcm.last_time 001144 aa 6 00044 3701 20 epp4 pr6|36,* 001145 ia 4 00010 1771 00 sbaq pr4|8 ltime 001146 aa 216000 4110 03 lde 72704,du 001147 aa 400000 4750 03 fad 131072,du 001150 aa 6 00312 5671 00 dfdv pr6|202 sec 001151 aa 000400 4750 03 fad 256,du 001152 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 001153 aa 6 00126 7561 00 stq pr6|86 b STATEMENT 1 ON LINE 175 call ioa_ ("avq = ^d, elapsed time = ^d sec, ^d active last 15 sec.^/^a", a, b, recent, "flags dtu dpf temax te ts ti tssc event d ws wc process"); 001154 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001155 aa 777020 00 0074 desc9a -496,60 000174 = 141166161040 001156 aa 6 00232 00 0074 desc9a pr6|154,60 001157 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001160 aa 777034 00 0114 desc9a -484,76 000213 = 146154141147 001161 aa 6 00260 00 0114 desc9a pr6|176,76 001162 aa 6 00232 3521 00 epp2 pr6|154 001163 aa 6 00316 2521 00 spri2 pr6|206 001164 aa 6 00125 3521 00 epp2 pr6|85 a 001165 aa 6 00320 2521 00 spri2 pr6|208 001166 aa 6 00126 3521 00 epp2 pr6|86 b 001167 aa 6 00322 2521 00 spri2 pr6|210 001170 aa 6 00137 3521 00 epp2 pr6|95 recent 001171 aa 6 00324 2521 00 spri2 pr6|212 001172 aa 6 00260 3521 00 epp2 pr6|176 001173 aa 6 00326 2521 00 spri2 pr6|214 001174 aa 776635 3520 04 epp2 -611,ic 000031 = 524000000073 001175 aa 6 00330 2521 00 spri2 pr6|216 001176 aa 776652 3520 04 epp2 -598,ic 000050 = 404000000021 001177 aa 6 00332 2521 00 spri2 pr6|218 001200 aa 6 00334 2521 00 spri2 pr6|220 001201 aa 6 00336 2521 00 spri2 pr6|222 001202 aa 776626 3520 04 epp2 -618,ic 000030 = 524000000111 001203 aa 6 00340 2521 00 spri2 pr6|224 001204 aa 6 00314 6211 00 eax1 pr6|204 001205 aa 024000 4310 07 fld 10240,dl 001206 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001207 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 182 aptep = addrel (tcmp, tcm.eligible_q_head.fp); 001210 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001211 aa 7 00350 2351 00 lda pr7|232 tcm.fp 001212 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001213 aa 7 00000 3521 01 epp2 pr7|0,au 001214 aa 000000 0520 03 adwp2 0,du 001215 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 183 elig_apt_loop: if aptep ^= addr (tcm.ready_q_tail) then do; 001216 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001217 aa 7 00352 3735 00 epp7 pr7|234 tcm.ready_q_tail 001220 aa 6 00312 6535 00 spri7 pr6|202 001221 aa 6 00312 2371 00 ldaq pr6|202 001222 aa 6 00154 6771 00 eraq pr6|108 aptep 001223 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001224 aa 000010 6000 04 tze 8,ic 001234 STATEMENT 1 ON LINE 184 call PRINT_APTE; 001225 aa 000446 6700 04 tsp4 294,ic 001673 STATEMENT 1 ON LINE 185 aptep = addrel (tcmp, apte.thread.fp); 001226 aa 6 00154 2351 20 lda pr6|108,* apte.fp 001227 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001230 aa 6 00156 3521 61 epp2 pr6|110,*au tcmp 001231 aa 000000 0520 03 adwp2 0,du 001232 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 186 go to elig_apt_loop; 001233 aa 777763 7100 04 tra -13,ic 001216 STATEMENT 1 ON LINE 187 end; STATEMENT 1 ON LINE 191 if tcm.realtime_q.sentinel ^= "0"b then do; 001234 aa 6 00156 3715 20 epp5 pr6|110,* tcmp 001235 aa 5 00315 2351 00 lda pr5|205 tcm.sentinel 001236 aa 000041 6000 04 tze 33,ic 001277 STATEMENT 1 ON LINE 192 call ioa_ ("^/REALTIME QUEUE:"); 001237 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001240 aa 776656 00 0024 desc9a -594,20 000115 = 136057122105 001241 aa 6 00232 00 0024 desc9a pr6|154,20 001242 aa 6 00232 3521 00 epp2 pr6|154 001243 aa 6 00316 2521 00 spri2 pr6|206 001244 aa 776563 3520 04 epp2 -653,ic 000027 = 524000000021 001245 aa 6 00320 2521 00 spri2 pr6|208 001246 aa 6 00314 6211 00 eax1 pr6|204 001247 aa 004000 4310 07 fld 2048,dl 001250 aa 6 00044 3701 20 epp4 pr6|36,* 001251 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001252 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 193 aptep = addrel (tcmp, tcm.realtime_q.fp); 001253 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001254 aa 7 00314 2351 00 lda pr7|204 tcm.fp 001255 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001256 aa 7 00000 3521 01 epp2 pr7|0,au 001257 aa 000000 0520 03 adwp2 0,du 001260 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 194 dead_apt_loop: if aptep ^= addr (tcm.realtime_q) then do; 001261 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001262 aa 7 00314 3735 00 epp7 pr7|204 tcm.realtime_q 001263 aa 6 00254 6535 00 spri7 pr6|172 001264 aa 6 00254 2371 00 ldaq pr6|172 001265 aa 6 00154 6771 00 eraq pr6|108 aptep 001266 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001267 aa 000010 6000 04 tze 8,ic 001277 STATEMENT 1 ON LINE 196 call PRINT_APTE; 001270 aa 000403 6700 04 tsp4 259,ic 001673 STATEMENT 1 ON LINE 197 aptep = addrel (tcmp, apte.thread.fp); 001271 aa 6 00154 2351 20 lda pr6|108,* apte.fp 001272 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001273 aa 6 00156 3521 61 epp2 pr6|110,*au tcmp 001274 aa 000000 0520 03 adwp2 0,du 001275 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 198 go to dead_apt_loop; 001276 aa 777763 7100 04 tra -13,ic 001261 STATEMENT 1 ON LINE 199 end; STATEMENT 1 ON LINE 200 end; STATEMENT 1 ON LINE 207 if tcm.apt_offset ^= "0"b then do; 001277 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001300 aa 7 00253 2351 00 lda pr7|171 tcm.apt_offset 001301 aa 777777 3150 03 cana 262143,du 001302 aa 000063 6000 04 tze 51,ic 001365 STATEMENT 1 ON LINE 208 if tcm.deadline_mode ^= 0 then call ioa_ ("^/DEADLINE QUEUE:"); 001303 aa 7 00420 2361 00 ldq pr7|272 tcm.deadline_mode 001304 aa 000021 6000 04 tze 17,ic 001325 001305 aa 776603 2370 04 ldaq -637,ic 000110 = 136057104105 101104114111 001306 aa 6 00232 7571 00 staq pr6|154 001307 aa 776603 2370 04 ldaq -637,ic 000112 = 116105040121 125105125105 001310 aa 6 00234 7571 00 staq pr6|156 001311 aa 072000 2350 03 lda 29696,du 001312 aa 6 00236 7551 00 sta pr6|158 001313 aa 6 00232 3521 00 epp2 pr6|154 001314 aa 6 00316 2521 00 spri2 pr6|206 001315 aa 776512 3520 04 epp2 -694,ic 000027 = 524000000021 001316 aa 6 00320 2521 00 spri2 pr6|208 001317 aa 6 00314 6211 00 eax1 pr6|204 001320 aa 004000 4310 07 fld 2048,dl 001321 aa 6 00044 3701 20 epp4 pr6|36,* 001322 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001323 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 001324 aa 000015 7100 04 tra 13,ic 001341 STATEMENT 1 ON LINE 210 else call ioa_ ("^/INTERACTIVE QUEUE:"); 001325 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001326 aa 776556 00 0024 desc9a -658,20 000103 = 136057111116 001327 aa 6 00232 00 0024 desc9a pr6|154,20 001330 aa 6 00232 3521 00 epp2 pr6|154 001331 aa 6 00316 2521 00 spri2 pr6|206 001332 aa 776474 3520 04 epp2 -708,ic 000026 = 524000000024 001333 aa 6 00320 2521 00 spri2 pr6|208 001334 aa 6 00314 6211 00 eax1 pr6|204 001335 aa 004000 4310 07 fld 2048,dl 001336 aa 6 00044 3701 20 epp4 pr6|36,* 001337 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001340 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 212 aptep = addrel (tcmp, tcm.interactive_q.fp); 001341 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001342 aa 7 00330 2351 00 lda pr7|216 tcm.fp 001343 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001344 aa 7 00000 3521 01 epp2 pr7|0,au 001345 aa 000000 0520 03 adwp2 0,du 001346 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 213 int_apt_loop: if aptep ^= addr (tcm.interactive_q) then do; 001347 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001350 aa 7 00330 3735 00 epp7 pr7|216 tcm.interactive_q 001351 aa 6 00342 6535 00 spri7 pr6|226 001352 aa 6 00342 2371 00 ldaq pr6|226 001353 aa 6 00154 6771 00 eraq pr6|108 aptep 001354 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001355 aa 000010 6000 04 tze 8,ic 001365 STATEMENT 1 ON LINE 215 call PRINT_APTE; 001356 aa 000315 6700 04 tsp4 205,ic 001673 STATEMENT 1 ON LINE 216 aptep = addrel (tcmp, apte.thread.fp); 001357 aa 6 00154 2351 20 lda pr6|108,* apte.fp 001360 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001361 aa 6 00156 3521 61 epp2 pr6|110,*au tcmp 001362 aa 000000 0520 03 adwp2 0,du 001363 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 217 go to int_apt_loop; 001364 aa 777763 7100 04 tra -13,ic 001347 STATEMENT 1 ON LINE 218 end; STATEMENT 1 ON LINE 219 end; STATEMENT 1 ON LINE 227 if tcm.apt_offset ^= "0"b then do; 001365 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001366 aa 7 00253 2351 00 lda pr7|171 tcm.apt_offset 001367 aa 777777 3150 03 cana 262143,du 001370 aa 000116 6000 04 tze 78,ic 001506 STATEMENT 1 ON LINE 228 wctep = addr (tcm.wcte (0)); 001371 aa 000000 3360 07 lcq 0,dl 001372 aa 6 00257 7561 00 stq pr6|175 001373 aa 000436 2360 07 ldq 286,dl 001374 aa 000001 0760 07 adq 1,dl 001375 aa 777776 3760 07 anq 262142,dl 001376 aa 000010 0760 07 adq 8,dl 001377 aa 000001 0760 07 adq 1,dl 001400 aa 777776 3760 07 anq 262142,dl 001401 aa 000006 0760 07 adq 6,dl 001402 aa 000001 0760 07 adq 1,dl 001403 aa 777776 3760 07 anq 262142,dl 001404 aa 000012 0760 07 adq 10,dl 001405 aa 000001 0760 07 adq 1,dl 001406 aa 777776 3760 07 anq 262142,dl 001407 aa 000422 0760 07 adq 274,dl 001410 aa 000001 0760 07 adq 1,dl 001411 aa 777776 3760 07 anq 262142,dl 001412 aa 6 00257 0761 00 adq pr6|175 001413 aa 7 00000 3715 06 epp5 pr7|0,ql tcm.wcte 001414 aa 6 00160 6515 00 spri5 pr6|112 wctep STATEMENT 1 ON LINE 229 do this = 0 to 16; 001415 aa 6 00103 4501 00 stz pr6|67 this 001416 aa 6 00103 2361 00 ldq pr6|67 this 001417 aa 000020 1160 07 cmpq 16,dl 001420 aa 000066 6054 04 tpnz 54,ic 001506 STATEMENT 1 ON LINE 231 aptep = addrel (tcmp, wct_entry.thread.fp); 001421 aa 6 00160 2351 20 lda pr6|112,* wct_entry.fp 001422 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001423 aa 6 00156 3521 61 epp2 pr6|110,*au tcmp 001424 aa 000000 0520 03 adwp2 0,du 001425 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 232 if wct_entry.flags.defined then /* skip undefined */ if tcm.deadline_mode = 0 then if wct_entry.realtime = 0 then/* skip realtime as not threaded here unless bug */ call ioa_ ("^/WORKCLASS^3d QUEUE: credits = ^5d ms.", this, divide (wct_entry.credits, 1000, 17, 0)); 001426 aa 6 00160 3735 20 epp7 pr6|112,* wctep 001427 aa 7 00001 2351 00 lda pr7|1 wct_entry.defined 001430 aa 200000 3150 03 cana 65536,du 001431 aa 000034 6000 04 tze 28,ic 001465 001432 aa 6 00156 3715 20 epp5 pr6|110,* tcmp 001433 aa 5 00420 2361 00 ldq pr5|272 tcm.deadline_mode 001434 aa 000031 6010 04 tnz 25,ic 001465 001435 aa 7 00024 2361 00 ldq pr7|20 wct_entry.realtime 001436 aa 000027 6010 04 tnz 23,ic 001465 001437 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001440 aa 776474 00 0050 desc9a -708,40 000133 = 136057127117 001441 aa 6 00232 00 0050 desc9a pr6|154,40 001442 aa 7 00002 2361 00 ldq pr7|2 wct_entry.credits 001443 aa 001750 5060 07 div 1000,dl 001444 aa 6 00257 7561 00 stq pr6|175 001445 aa 6 00232 3521 00 epp2 pr6|154 001446 aa 6 00316 2521 00 spri2 pr6|206 001447 aa 6 00103 3521 00 epp2 pr6|67 this 001450 aa 6 00320 2521 00 spri2 pr6|208 001451 aa 6 00257 3521 00 epp2 pr6|175 001452 aa 6 00322 2521 00 spri2 pr6|210 001453 aa 776352 3520 04 epp2 -790,ic 000025 = 524000000047 001454 aa 6 00324 2521 00 spri2 pr6|212 001455 aa 776373 3520 04 epp2 -773,ic 000050 = 404000000021 001456 aa 6 00326 2521 00 spri2 pr6|214 001457 aa 6 00330 2521 00 spri2 pr6|216 001460 aa 6 00314 6211 00 eax1 pr6|204 001461 aa 014000 4310 07 fld 6144,dl 001462 aa 6 00044 3701 20 epp4 pr6|36,* 001463 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001464 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 236 wc_apt_loop: if aptep ^= wctep then do; 001465 aa 6 00154 2371 00 ldaq pr6|108 aptep 001466 aa 6 00160 6771 00 eraq pr6|112 wctep 001467 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001470 aa 000010 6000 04 tze 8,ic 001500 STATEMENT 1 ON LINE 238 call PRINT_APTE; 001471 aa 000202 6700 04 tsp4 130,ic 001673 STATEMENT 1 ON LINE 239 aptep = addrel (tcmp, apte.thread.fp); 001472 aa 6 00154 2351 20 lda pr6|108,* apte.fp 001473 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001474 aa 6 00156 3521 61 epp2 pr6|110,*au tcmp 001475 aa 000000 0520 03 adwp2 0,du 001476 aa 6 00154 2521 00 spri2 pr6|108 aptep STATEMENT 1 ON LINE 240 go to wc_apt_loop; 001477 aa 777766 7100 04 tra -10,ic 001465 STATEMENT 1 ON LINE 241 end; STATEMENT 1 ON LINE 244 wctep = addrel (wctep, WCTE_WORDS); 001500 aa 6 00102 2361 00 ldq pr6|66 WCTE_WORDS 001501 aa 6 00160 3521 66 epp2 pr6|112,*ql wctep 001502 aa 000000 0520 03 adwp2 0,du 001503 aa 6 00160 2521 00 spri2 pr6|112 wctep STATEMENT 1 ON LINE 245 end; 001504 aa 6 00103 0541 00 aos pr6|67 this 001505 aa 777711 7100 04 tra -55,ic 001416 STATEMENT 1 ON LINE 246 end; STATEMENT 1 ON LINE 250 if ALL then call ioa_ ("^/UNTHREADED:"); 001506 aa 6 00104 2351 00 lda pr6|68 ALL 001507 aa 000020 6000 04 tze 16,ic 001527 001510 aa 776367 2350 04 lda -777,ic 000077 = 136057125116 001511 aa 776367 2360 04 ldq -777,ic 000100 = 124110122105 001512 aa 6 00232 7571 00 staq pr6|154 001513 aa 776366 2350 04 lda -778,ic 000101 = 101104105104 001514 aa 072000 2360 03 ldq 29696,du 001515 aa 6 00234 7571 00 staq pr6|156 001516 aa 6 00232 3521 00 epp2 pr6|154 001517 aa 6 00316 2521 00 spri2 pr6|206 001520 aa 776304 3520 04 epp2 -828,ic 000024 = 524000000015 001521 aa 6 00320 2521 00 spri2 pr6|208 001522 aa 6 00314 6211 00 eax1 pr6|204 001523 aa 004000 4310 07 fld 2048,dl 001524 aa 6 00044 3701 20 epp4 pr6|36,* 001525 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001526 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 253 do i = 0 to tcm.apt_size - 1; 001527 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001530 aa 7 00313 2361 00 ldq pr7|203 tcm.apt_size 001531 aa 000001 1760 07 sbq 1,dl 001532 aa 6 00163 7561 00 stq pr6|115 001533 aa 6 00135 4501 00 stz pr6|93 i 001534 aa 6 00135 2361 00 ldq pr6|93 i 001535 aa 6 00163 1161 00 cmpq pr6|115 001536 aa 000053 6054 04 tpnz 43,ic 001611 STATEMENT 1 ON LINE 254 aptep = ptr (tcmp, i * tcm.apt_entry_size + fixed (rel (addrel (tcmp, APT_BASE)))); 001537 aa 6 00101 2361 00 ldq pr6|65 APT_BASE 001540 aa 6 00156 3521 66 epp2 pr6|110,*ql tcmp 001541 aa 000000 0520 03 adwp2 0,du 001542 aa 2 00000 6351 00 eaa pr2|0 001543 aa 000066 7730 00 lrl 54 001544 aa 6 00344 7571 00 staq pr6|228 001545 aa 6 00135 2361 00 ldq pr6|93 i 001546 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001547 aa 7 00327 4021 00 mpy pr7|215 tcm.apt_entry_size 001550 aa 6 00344 0771 00 adaq pr6|228 001551 aa 7 00000 3515 00 epp1 pr7|0 001552 aa 000000 3114 06 eawp1 0,ql 001553 aa 6 00154 2515 00 spri1 pr6|108 aptep STATEMENT 1 ON LINE 255 if ALL then if unspec (apte.thread) = ""b & apte.state ^= ""b then call PRINT_APTE; 001554 aa 6 00104 2351 00 lda pr6|68 ALL 001555 aa 000015 6000 04 tze 13,ic 001572 001556 aa 1 00000 2351 00 lda pr1|0 001557 aa 6 00344 2521 00 spri2 pr6|228 001560 aa 000006 6010 04 tnz 6,ic 001566 001561 aa 1 00001 2351 00 lda pr1|1 apte.state 001562 aa 777777 3150 07 cana 262143,dl 001563 aa 000003 6000 04 tze 3,ic 001566 001564 aa 000107 6700 04 tsp4 71,ic 001673 001565 aa 000005 7100 04 tra 5,ic 001572 STATEMENT 1 ON LINE 257 else if apte.idle then call PRINT_APTE; 001566 aa 1 00001 2351 00 lda pr1|1 apte.idle 001567 aa 002000 3150 03 cana 1024,du 001570 aa 000002 6000 04 tze 2,ic 001572 001571 aa 000102 6700 04 tsp4 66,ic 001673 STATEMENT 1 ON LINE 259 last.cpu (i) = time_used_clock; 001572 aa 6 00135 2361 00 ldq pr6|93 i 001573 aa 000006 4020 07 mpy 6,dl 001574 aa 6 00154 3735 20 epp7 pr6|108,* aptep 001575 aa 000000 6270 06 eax7 0,ql 001576 aa 7 00016 2371 00 ldaq pr7|14 apte.time_used_clock 001577 aa 6 00044 3701 20 epp4 pr6|36,* 001600 ia 4 00024 7571 17 staq pr4|20,7 last.cpu STATEMENT 1 ON LINE 260 last.pf (i) = page_faults; 001601 aa 7 00002 2361 00 ldq pr7|2 apte.page_faults 001602 ia 4 00030 7561 17 stq pr4|24,7 last.pf STATEMENT 1 ON LINE 261 last.vcpu (i) = virtual_cpu_time; 001603 aa 7 00046 2371 00 ldaq pr7|38 apte.virtual_cpu_time 001604 ia 4 00026 7571 17 staq pr4|22,7 last.vcpu STATEMENT 1 ON LINE 262 last.pid (i) = processid; 001605 aa 7 00003 2351 00 lda pr7|3 apte.processid 001606 ia 4 00031 7551 17 sta pr4|25,7 last.pid STATEMENT 1 ON LINE 263 end; 001607 aa 6 00135 0541 00 aos pr6|93 i 001610 aa 777724 7100 04 tra -44,ic 001534 STATEMENT 1 ON LINE 265 ltime = tcm.last_time; 001611 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001612 aa 7 00034 2371 00 ldaq pr7|28 tcm.last_time 001613 aa 6 00044 3701 20 epp4 pr6|36,* 001614 ia 4 00010 7571 00 staq pr4|8 ltime STATEMENT 1 ON LINE 266 call ioa_ ("^/"); 001615 aa 136057 2350 03 lda 48175,du 001616 aa 6 00257 7551 00 sta pr6|175 001617 aa 6 00257 3521 00 epp2 pr6|175 001620 aa 6 00234 2521 00 spri2 pr6|156 001621 aa 776202 3520 04 epp2 -894,ic 000023 = 524000000002 001622 aa 6 00236 2521 00 spri2 pr6|158 001623 aa 6 00232 6211 00 eax1 pr6|154 001624 aa 004000 4310 07 fld 2048,dl 001625 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 001626 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 267 return; 001627 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 397 MAIN_RETURN: return; 001630 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 407 end traffic_control_queue; BEGIN PROCEDURE ct ENTRY TO ct STATEMENT 1 ON LINE 273 ct: proc (base, head, tail) returns (bit (1) aligned); 001631 aa 6 00164 6501 00 spri4 pr6|116 001632 aa 6 00166 2521 00 spri2 pr6|118 STATEMENT 1 ON LINE 281 curr = head; 001633 aa 2 00004 3735 20 epp7 pr2|4,* head 001634 aa 7 00000 3735 20 epp7 pr7|0,* head 001635 aa 6 00172 6535 00 spri7 pr6|122 curr STATEMENT 1 ON LINE 282 ct_next: last = curr; 001636 aa 6 00172 3735 20 epp7 pr6|122,* curr 001637 aa 6 00176 6535 00 spri7 pr6|126 last STATEMENT 1 ON LINE 284 curr = addrel (base, tword.fp); 001640 aa 7 00000 2351 00 lda pr7|0 tword.fp 001641 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 001642 aa 6 00166 3715 20 epp5 pr6|118,* 001643 aa 5 00002 3521 20 epp2 pr5|2,* base 001644 aa 2 00000 3521 61 epp2 pr2|0,*au base 001645 aa 000000 0520 03 adwp2 0,du 001646 aa 6 00172 2521 00 spri2 pr6|122 curr STATEMENT 1 ON LINE 285 prev = addrel (base, tword.bp); 001647 aa 2 00000 2351 00 lda pr2|0 tword.bp 001650 aa 000022 7350 00 als 18 001651 aa 5 00002 3515 20 epp1 pr5|2,* base 001652 aa 1 00000 3515 61 epp1 pr1|0,*au base 001653 aa 000000 0510 03 adwp1 0,du 001654 aa 6 00174 2515 00 spri1 pr6|124 prev STATEMENT 1 ON LINE 286 if prev ^= last then return (""b); 001655 aa 6 00174 2371 00 ldaq pr6|124 prev 001656 aa 6 00176 6771 00 eraq pr6|126 last 001657 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001660 aa 000003 6000 04 tze 3,ic 001663 001661 aa 5 00010 4501 20 stz pr5|8,* 001662 aa 6 00164 6101 00 rtcd pr6|116 STATEMENT 1 ON LINE 287 if curr = tail then return ("1"b); 001663 aa 6 00172 2371 00 ldaq pr6|122 curr 001664 aa 5 00006 6771 20 eraq pr5|6,* tail 001665 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001666 aa 777750 6010 04 tnz -24,ic 001636 001667 aa 400000 2350 03 lda 131072,du 001670 aa 5 00010 7551 20 sta pr5|8,* 001671 aa 6 00164 6101 00 rtcd pr6|116 STATEMENT 1 ON LINE 288 go to ct_next; 001672 aa 777744 7100 04 tra -28,ic 001636 STATEMENT 1 ON LINE 290 end ct; END PROCEDURE ct BEGIN PROCEDURE PRINT_APTE ENTRY TO PRINT_APTE STATEMENT 1 ON LINE 300 PRINT_APTE: proc; 001673 aa 6 00200 6501 00 spri4 pr6|128 STATEMENT 1 ON LINE 303 procno = divide (fixed (rel (aptep)) - fixed (rel (addrel (tcmp, APT_BASE))), tcm.apt_entry_size, 17, 0); 001674 aa 6 00101 2361 00 ldq pr6|65 APT_BASE 001675 aa 6 00156 3521 66 epp2 pr6|110,*ql tcmp 001676 aa 000000 0520 03 adwp2 0,du 001677 aa 2 00000 6351 00 eaa pr2|0 001700 aa 000066 7730 00 lrl 54 001701 aa 6 00346 7571 00 staq pr6|230 001702 aa 6 00154 6351 20 eaa pr6|108,* aptep 001703 aa 000066 7730 00 lrl 54 001704 aa 6 00346 1771 00 sbaq pr6|230 001705 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 001706 aa 6 00346 2521 00 spri2 pr6|230 001707 aa 7 00327 3521 00 epp2 pr7|215 tcm.apt_entry_size 001710 aa 0 01264 7001 00 tsx0 pr0|692 divide_fx3 001711 aa 000000000000 001712 aa 6 00206 7561 00 stq pr6|134 procno STATEMENT 1 ON LINE 310 if fixed (apte.state) >= 0 & fixed (apte.state) <= 6 then cs = statenames (fixed (apte.state)); 001713 aa 6 00154 3715 20 epp5 pr6|108,* aptep 001714 aa 5 00001 2361 00 ldq pr5|1 apte.state 001715 aa 0 00374 3771 00 anaq pr0|252 = 000000000000 000000777777 001716 aa 0 00000 1171 00 cmpaq pr0|0 = 000000000000 000000000000 001717 aa 6 00350 7571 00 staq pr6|232 001720 aa 000012 6040 04 tmi 10,ic 001732 001721 aa 000006 2350 07 lda 6,dl 001722 aa 000044 7330 00 lrs 36 001723 aa 6 00350 1171 00 cmpaq pr6|232 001724 aa 000006 6040 04 tmi 6,ic 001732 001725 aa 6 00351 2351 00 lda pr6|233 001726 aa 040 100 100 405 mlr (al),(pr),fill(040) 001727 ta 000006 00 0001 desc9a 6,1 001730 aa 6 00106 00 0020 desc9a pr6|70,16 cs 001731 aa 000004 7100 04 tra 4,ic 001735 STATEMENT 1 ON LINE 312 else cs = "?"; 001732 aa 040 100 100 404 mlr (ic),(pr),fill(040) 001733 aa 000550 00 0001 desc9a 360,1 002502 = 077000000000 001734 aa 6 00106 00 0020 desc9a pr6|70,16 cs STATEMENT 1 ON LINE 313 j = 2; 001735 aa 000002 2360 07 ldq 2,dl 001736 aa 6 00136 7561 00 stq pr6|94 j STATEMENT 1 ON LINE 314 do i = 2 to 9, 13 to 15; 001737 aa 000022 3520 04 epp2 18,ic 001761 = 600207054100 001740 aa 6 00210 2521 00 spri2 pr6|136 001741 aa 6 00207 7561 00 stq pr6|135 i 001742 aa 6 00207 2361 00 ldq pr6|135 i 001743 aa 000011 1160 07 cmpq 9,dl 001744 aa 000017 6054 04 tpnz 15,ic 001763 STATEMENT 1 ON LINE 315 if substr (string (apte.flags), i, 1) then do; 001745 aa 6 00207 7271 00 lxl7 pr6|135 i 001746 aa 6 00154 3735 20 epp7 pr6|108,* aptep 001747 aa 000 000 066 517 cmpb (pr,x7),(),fill(0) 001750 aa 7 00000 70 0001 descb pr7|0(35),1 001751 aa 000000 00 0000 descb 0,0 001752 aa 000006 6000 04 tze 6,ic 001760 STATEMENT 1 ON LINE 317 substr (cs, j, 1) = substr ("1WSPHLEIT456ADB", i, 1); 001753 aa 6 00136 7261 00 lxl6 pr6|94 j 001754 aa 040 116 100 417 mlr (x7),(pr,x6),fill(040) 001755 ta 000072 60 0001 desc9a 58(3),1 001756 aa 6 00105 60 0001 desc9a pr6|69(3),1 cs STATEMENT 1 ON LINE 318 j = j + 1; 001757 aa 6 00136 0541 00 aos pr6|94 j STATEMENT 1 ON LINE 319 end; STATEMENT 1 ON LINE 320 end; 001760 aa 6 00210 7101 20 tra pr6|136,* 001761 aa 6 00207 0541 00 aos pr6|135 i 001762 aa 777760 7100 04 tra -16,ic 001742 001763 aa 000011 3520 04 epp2 9,ic 001774 = 600207054100 001764 aa 6 00210 2521 00 spri2 pr6|136 001765 aa 000015 2360 07 ldq 13,dl 001766 aa 6 00207 7561 00 stq pr6|135 i 001767 aa 000000 0110 03 nop 0,du 001770 aa 6 00207 2361 00 ldq pr6|135 i 001771 aa 000017 1160 07 cmpq 15,dl 001772 aa 000004 6054 04 tpnz 4,ic 001776 001773 aa 777752 7100 04 tra -22,ic 001745 001774 aa 6 00207 0541 00 aos pr6|135 i 001775 aa 777773 7100 04 tra -5,ic 001770 STATEMENT 1 ON LINE 321 if ^apte.default_procs_required then do; 001776 aa 6 00154 3735 20 epp7 pr6|108,* aptep 001777 aa 7 00001 2351 00 lda pr7|1 apte.default_procs_required 002000 aa 000200 3150 03 cana 128,du 002001 aa 000035 6010 04 tnz 29,ic 002036 STATEMENT 1 ON LINE 322 substr (cs, j, 1) = "("; 002002 aa 6 00136 7271 00 lxl7 pr6|94 j 002003 aa 050 117 100 400 mlr (),(pr,x7),fill(050) 002004 aa 000000 00 0000 desc9a 0,0 002005 aa 6 00105 60 0001 desc9a pr6|69(3),1 cs STATEMENT 1 ON LINE 323 j = j + 1; 002006 aa 6 00136 0541 00 aos pr6|94 j STATEMENT 1 ON LINE 324 do i = 1 to 8; 002007 aa 000001 2360 07 ldq 1,dl 002010 aa 6 00207 7561 00 stq pr6|135 i 002011 aa 000000 0110 03 nop 0,du 002012 aa 6 00207 2361 00 ldq pr6|135 i 002013 aa 000010 1160 07 cmpq 8,dl 002014 aa 000015 6054 04 tpnz 13,ic 002031 STATEMENT 1 ON LINE 325 if substr (apte.procs_required, i, 1) then do; 002015 aa 6 00154 3735 20 epp7 pr6|108,* aptep 002016 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 002017 aa 7 00062 70 0001 descb pr7|50(35),1 apte.procs_required 002020 aa 000000 00 0000 descb 0,0 002021 aa 000006 6000 04 tze 6,ic 002027 STATEMENT 1 ON LINE 326 substr (cs, j, 1) = substr ("abcdefgh", i, 1); 002022 aa 6 00136 7271 00 lxl7 pr6|94 j 002023 aa 040 117 100 406 mlr (ql),(pr,x7),fill(040) 002024 ta 000053 60 0001 desc9a 43(3),1 002025 aa 6 00105 60 0001 desc9a pr6|69(3),1 cs STATEMENT 1 ON LINE 327 j = j + 1; 002026 aa 6 00136 0541 00 aos pr6|94 j STATEMENT 1 ON LINE 328 end; STATEMENT 1 ON LINE 329 end; 002027 aa 6 00207 0541 00 aos pr6|135 i 002030 aa 777762 7100 04 tra -14,ic 002012 STATEMENT 1 ON LINE 330 substr (cs, j, 1) = ")"; 002031 aa 6 00136 7271 00 lxl7 pr6|94 j 002032 aa 051 117 100 400 mlr (),(pr,x7),fill(051) 002033 aa 000000 00 0000 desc9a 0,0 002034 aa 6 00105 60 0001 desc9a pr6|69(3),1 cs STATEMENT 1 ON LINE 331 j = j + 1; 002035 aa 6 00136 0541 00 aos pr6|94 j STATEMENT 1 ON LINE 332 end; STATEMENT 1 ON LINE 335 if processid = last.pid (procno) | processid = ""b then if time_used_clock >= last.cpu (procno) then if page_faults >= last.pf (procno) then go to old_ok; 002036 aa 6 00206 2361 00 ldq pr6|134 procno 002037 aa 000006 4020 07 mpy 6,dl 002040 aa 6 00154 3735 20 epp7 pr6|108,* aptep 002041 aa 7 00003 2351 00 lda pr7|3 apte.processid 002042 aa 6 00044 3701 20 epp4 pr6|36,* 002043 ia 4 00031 1151 06 cmpa pr4|25,ql last.pid 002044 aa 6 00352 7561 00 stq pr6|234 002045 aa 000003 6000 04 tze 3,ic 002050 002046 aa 000370 3150 04 cana 248,ic 002436 = 777777777777 002047 aa 000010 6010 04 tnz 8,ic 002057 002050 aa 7 00016 2371 00 ldaq pr7|14 apte.time_used_clock 002051 aa 6 00352 7271 00 lxl7 pr6|234 002052 ia 4 00024 1171 17 cmpaq pr4|20,7 last.cpu 002053 aa 000004 6040 04 tmi 4,ic 002057 002054 aa 7 00002 2361 00 ldq pr7|2 apte.page_faults 002055 ia 4 00030 1161 17 cmpq pr4|24,7 last.pf 002056 aa 000006 6050 04 tpl 6,ic 002064 STATEMENT 1 ON LINE 338 last.pf (procno) = 0; 002057 aa 6 00352 7271 00 lxl7 pr6|234 002060 ia 4 00030 4501 17 stz pr4|24,7 last.pf STATEMENT 1 ON LINE 339 last.cpu (procno) = 0; 002061 aa 775771 2370 04 ldaq -1031,ic 000052 = 000000000000 000000000000 002062 ia 4 00024 7571 17 staq pr4|20,7 last.cpu STATEMENT 1 ON LINE 340 last.vcpu (procno) = 0; 002063 ia 4 00026 7571 17 staq pr4|22,7 last.vcpu STATEMENT 1 ON LINE 342 old_ok: b = float (time_used_clock - last.cpu (procno) ) / sec + .5e0; 002064 aa 775724 4310 04 fld -1068,ic 000010 = 050750220000 002065 aa 6 00350 4571 00 dfst pr6|232 sec 002066 aa 7 00016 2371 00 ldaq pr7|14 apte.time_used_clock 002067 ia 4 00024 1771 17 sbaq pr4|20,7 last.cpu 002070 aa 216000 4110 03 lde 72704,du 002071 aa 400000 4750 03 fad 131072,du 002072 aa 6 00350 5671 00 dfdv pr6|232 sec 002073 aa 000400 4750 03 fad 256,du 002074 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002075 aa 6 00126 7561 00 stq pr6|86 b STATEMENT 1 ON LINE 346 c = float (page_faults - last.pf (procno)); 002076 aa 7 00002 3361 00 lcq pr7|2 apte.page_faults 002077 aa 000044 7770 00 llr 36 002100 aa 000044 7330 00 lrs 36 002101 ia 4 00030 0331 17 adl pr4|24,7 last.pf 002102 aa 000000 5330 00 negl 0 002103 aa 216000 4110 03 lde 72704,du 002104 aa 400000 4750 03 fad 131072,du 002105 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002106 aa 6 00127 7561 00 stq pr6|87 c STATEMENT 1 ON LINE 347 if c < 0 then c = b; 002107 aa 000003 6050 04 tpl 3,ic 002112 002110 aa 6 00126 2361 00 ldq pr6|86 b 002111 aa 6 00127 7561 00 stq pr6|87 c STATEMENT 1 ON LINE 349 if apte.idle then d = 0; 002112 aa 7 00001 2351 00 lda pr7|1 apte.idle 002113 aa 002000 3150 03 cana 1024,du 002114 aa 000003 6000 04 tze 3,ic 002117 002115 aa 6 00130 4501 00 stz pr6|88 d 002116 aa 000010 7100 04 tra 8,ic 002126 STATEMENT 1 ON LINE 350 else d = float (te) / ms; 002117 aa 024764 4310 03 fld 10740,du 002120 aa 6 00350 4571 00 dfst pr6|232 ms 002121 aa 7 00004 2361 00 ldq pr7|4 apte.te 002122 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 002123 aa 6 00350 5671 00 dfdv pr6|232 ms 002124 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002125 aa 6 00130 7561 00 stq pr6|88 d STATEMENT 1 ON LINE 351 temaxtime = float (temax) / ms; 002126 aa 024764 4310 03 fld 10740,du 002127 aa 6 00350 4571 00 dfst pr6|232 ms 002130 aa 7 00033 2361 00 ldq pr7|27 apte.temax 002131 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 002132 aa 6 00350 5671 00 dfdv pr6|232 ms 002133 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002134 aa 6 00141 7561 00 stq pr6|97 temaxtime STATEMENT 1 ON LINE 352 e = float (ts) / ms; 002135 aa 024764 4310 03 fld 10740,du 002136 aa 6 00350 4571 00 dfst pr6|232 ms 002137 aa 7 00005 2361 00 ldq pr7|5 apte.ts 002140 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 002141 aa 6 00350 5671 00 dfdv pr6|232 ms 002142 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002143 aa 6 00131 7561 00 stq pr6|89 e STATEMENT 1 ON LINE 353 f = float (ti) / ms; 002144 aa 024764 4310 03 fld 10740,du 002145 aa 6 00350 4571 00 dfst pr6|232 ms 002146 aa 7 00006 2361 00 ldq pr7|6 apte.ti 002147 aa 0 00465 7001 00 tsx0 pr0|309 fx1_to_fl2 002150 aa 6 00350 5671 00 dfdv pr6|232 ms 002151 aa 0 00654 7001 00 tsx0 pr0|428 fl2_to_fx1 002152 aa 6 00132 7561 00 stq pr6|90 f STATEMENT 1 ON LINE 354 fg = float (tcm.last_time - apte.state_change_time) / sec; 002153 aa 775635 4310 04 fld -1123,ic 000010 = 050750220000 002154 aa 6 00350 4571 00 dfst pr6|232 sec 002155 aa 6 00156 3715 20 epp5 pr6|110,* tcmp 002156 aa 5 00034 2371 00 ldaq pr5|28 tcm.last_time 002157 aa 7 00022 1771 00 sbaq pr7|18 apte.state_change_time 002160 aa 216000 4110 03 lde 72704,du 002161 aa 400000 4750 03 fad 131072,du 002162 aa 6 00350 5671 00 dfdv pr6|232 sec 002163 aa 6 00142 4551 00 fst pr6|98 fg STATEMENT 1 ON LINE 355 if fg > 999e0 then fg = 999.999; 002164 aa 775636 5150 04 fcmp -1122,ic 000022 = 024763400000 002165 aa 000003 6044 04 tmoz 3,ic 002170 002166 aa 775633 4310 04 fld -1125,ic 000021 = 024763777575 002167 aa 6 00142 4551 00 fst pr6|98 fg STATEMENT 1 ON LINE 356 unspec (h) = wait_event; 002170 aa 7 00020 2351 00 lda pr7|16 apte.wait_event 002171 aa 6 00133 7551 00 sta pr6|91 STATEMENT 1 ON LINE 357 bb = fixed (ws_size); 002172 aa 7 00032 2361 00 ldq pr7|26 apte.ws_size 002173 aa 6 00134 7561 00 stq pr6|92 bb STATEMENT 1 ON LINE 358 wc = gwcn (); 002174 aa 000236 3520 04 epp2 158,ic 002432 = 000002000000 002175 aa 000150 6700 04 tsp4 104,ic 002345 STATEMENT 1 ON LINE 360 if apte.idle then name = "Idle"; 002176 aa 6 00154 3735 20 epp7 pr6|108,* aptep 002177 aa 7 00001 2351 00 lda pr7|1 apte.idle 002200 aa 002000 3150 03 cana 1024,du 002201 aa 000005 6000 04 tze 5,ic 002206 002202 aa 040 100 100 404 mlr (ic),(pr),fill(040) 002203 aa 775616 00 0004 desc9a -1138,4 000020 = 111144154145 002204 aa 6 00112 00 0034 desc9a pr6|74,28 name 002205 aa 000046 7100 04 tra 38,ic 002253 STATEMENT 1 ON LINE 361 else do; STATEMENT 1 ON LINE 362 call get_userid_ ((processid), name, proj, type, anon, code); 002206 aa 7 00003 2351 00 lda pr7|3 apte.processid 002207 aa 6 00352 7551 00 sta pr6|234 002210 aa 6 00352 3521 00 epp2 pr6|234 002211 aa 6 00356 2521 00 spri2 pr6|238 002212 aa 6 00112 3521 00 epp2 pr6|74 name 002213 aa 6 00360 2521 00 spri2 pr6|240 002214 aa 6 00121 3521 00 epp2 pr6|81 proj 002215 aa 6 00362 2521 00 spri2 pr6|242 002216 aa 6 00105 3521 00 epp2 pr6|69 type 002217 aa 6 00364 2521 00 spri2 pr6|244 002220 aa 6 00124 3521 00 epp2 pr6|84 anon 002221 aa 6 00366 2521 00 spri2 pr6|246 002222 aa 6 00140 3521 00 epp2 pr6|96 code 002223 aa 6 00370 2521 00 spri2 pr6|248 002224 aa 775573 3520 04 epp2 -1157,ic 000017 = 514000000044 002225 aa 6 00372 2521 00 spri2 pr6|250 002226 aa 775570 3520 04 epp2 -1160,ic 000016 = 526000000034 002227 aa 6 00374 2521 00 spri2 pr6|252 002230 aa 775565 3520 04 epp2 -1163,ic 000015 = 526000000011 002231 aa 6 00376 2521 00 spri2 pr6|254 002232 aa 775616 3520 04 epp2 -1138,ic 000050 = 404000000021 002233 aa 6 00400 2521 00 spri2 pr6|256 002234 aa 6 00402 2521 00 spri2 pr6|258 002235 aa 775606 3520 04 epp2 -1146,ic 000043 = 404000000043 002236 aa 6 00404 2521 00 spri2 pr6|260 002237 aa 6 00354 6211 00 eax1 pr6|236 002240 aa 030000 4310 07 fld 12288,dl 002241 aa 6 00044 3701 20 epp4 pr6|36,* 002242 la 4 05726 3521 20 epp2 pr4|3030,* get_userid_ 002243 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 363 if code ^= 0 then do; 002244 aa 6 00140 2361 00 ldq pr6|96 code 002245 aa 000006 6000 04 tze 6,ic 002253 STATEMENT 2 ON LINE 363 name = "not found"; 002246 aa 040 100 100 404 mlr (ic),(pr),fill(040) 002247 aa 775614 00 0011 desc9a -1140,9 000062 = 156157164040 002250 aa 6 00112 00 0034 desc9a pr6|74,28 name STATEMENT 3 ON LINE 363 type = 4; 002251 aa 000004 2360 07 ldq 4,dl 002252 aa 6 00105 7561 00 stq pr6|69 type STATEMENT 4 ON LINE 363 end; STATEMENT 1 ON LINE 364 end; STATEMENT 1 ON LINE 366 call ioa_ ("^8a^4d ^6d ^5d ^4d ^5d ^5d ^7.3f ^5o ^1d ^3d ^2d ^a", cs, b, c, temaxtime, d, e, f, fg, h, 0, bb, wc, name); 002253 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002254 aa 775704 00 0064 desc9a -1084,52 000157 = 136070141136 002255 aa 6 00354 00 0064 desc9a pr6|236,52 002256 aa 6 00352 4501 00 stz pr6|234 002257 aa 6 00354 3521 00 epp2 pr6|236 002260 aa 6 00410 2521 00 spri2 pr6|264 002261 aa 6 00106 3521 00 epp2 pr6|70 cs 002262 aa 6 00412 2521 00 spri2 pr6|266 002263 aa 6 00126 3521 00 epp2 pr6|86 b 002264 aa 6 00414 2521 00 spri2 pr6|268 002265 aa 6 00127 3521 00 epp2 pr6|87 c 002266 aa 6 00416 2521 00 spri2 pr6|270 002267 aa 6 00141 3521 00 epp2 pr6|97 temaxtime 002270 aa 6 00420 2521 00 spri2 pr6|272 002271 aa 6 00130 3521 00 epp2 pr6|88 d 002272 aa 6 00422 2521 00 spri2 pr6|274 002273 aa 6 00131 3521 00 epp2 pr6|89 e 002274 aa 6 00424 2521 00 spri2 pr6|276 002275 aa 6 00132 3521 00 epp2 pr6|90 f 002276 aa 6 00426 2521 00 spri2 pr6|278 002277 aa 6 00142 3521 00 epp2 pr6|98 fg 002300 aa 6 00430 2521 00 spri2 pr6|280 002301 aa 6 00133 3521 00 epp2 pr6|91 h 002302 aa 6 00432 2521 00 spri2 pr6|282 002303 aa 6 00352 3521 00 epp2 pr6|234 002304 aa 6 00434 2521 00 spri2 pr6|284 002305 aa 6 00134 3521 00 epp2 pr6|92 bb 002306 aa 6 00436 2521 00 spri2 pr6|286 002307 aa 6 00100 3521 00 epp2 pr6|64 wc 002310 aa 6 00440 2521 00 spri2 pr6|288 002311 aa 6 00112 3521 00 epp2 pr6|74 name 002312 aa 6 00442 2521 00 spri2 pr6|290 002313 aa 775501 3520 04 epp2 -1215,ic 000014 = 524000000063 002314 aa 6 00444 2521 00 spri2 pr6|292 002315 aa 775476 3520 04 epp2 -1218,ic 000013 = 526000000020 002316 aa 6 00446 2521 00 spri2 pr6|294 002317 aa 775531 3520 04 epp2 -1191,ic 000050 = 404000000021 002320 aa 6 00450 2521 00 spri2 pr6|296 002321 aa 6 00452 2521 00 spri2 pr6|298 002322 aa 6 00454 2521 00 spri2 pr6|300 002323 aa 6 00456 2521 00 spri2 pr6|302 002324 aa 6 00460 2521 00 spri2 pr6|304 002325 aa 6 00462 2521 00 spri2 pr6|306 002326 aa 6 00466 2521 00 spri2 pr6|310 002327 aa 6 00472 2521 00 spri2 pr6|314 002330 aa 6 00474 2521 00 spri2 pr6|316 002331 aa 775461 3520 04 epp2 -1231,ic 000012 = 414000000033 002332 aa 6 00464 2521 00 spri2 pr6|308 002333 aa 775506 3520 04 epp2 -1210,ic 000041 = 404000000005 002334 aa 6 00470 2521 00 spri2 pr6|312 002335 aa 775461 3520 04 epp2 -1231,ic 000016 = 526000000034 002336 aa 6 00476 2521 00 spri2 pr6|318 002337 aa 6 00406 6211 00 eax1 pr6|262 002340 aa 070000 4310 07 fld 28672,dl 002341 aa 6 00044 3701 20 epp4 pr6|36,* 002342 la 4 05732 3521 20 epp2 pr4|3034,* ioa_ 002343 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 369 end PRINT_APTE; 002344 aa 6 00200 6101 00 rtcd pr6|128 END PROCEDURE PRINT_APTE BEGIN PROCEDURE gwcn ENTRY TO gwcn STATEMENT 1 ON LINE 377 gwcn: proc () returns (fixed bin); 002345 aa 6 00212 6501 00 spri4 pr6|138 002346 aa 6 00214 2521 00 spri2 pr6|140 STATEMENT 1 ON LINE 379 gwcn_fb = fixed (apte.wct_index, 18) - fixed (tcm.min_wct_index, 18); 002347 aa 6 00156 3735 20 epp7 pr6|110,* tcmp 002350 aa 7 00404 2351 00 lda pr7|260 tcm.min_wct_index 002351 aa 000066 7730 00 lrl 54 002352 aa 6 00500 7561 00 stq pr6|320 002353 aa 6 00154 3715 20 epp5 pr6|108,* aptep 002354 aa 5 00021 2351 00 lda pr5|17 apte.wct_index 002355 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 002356 aa 6 00501 7551 00 sta pr6|321 apte.wct_index 002357 aa 000066 7730 00 lrl 54 002360 aa 6 00500 1761 00 sbq pr6|320 002361 aa 6 00220 7561 00 stq pr6|144 gwcn_fb STATEMENT 1 ON LINE 380 if gwcn_fb < 0 then gwcn_fb = -1; 002362 aa 000004 6050 04 tpl 4,ic 002366 002363 aa 000001 3360 07 lcq 1,dl 002364 aa 6 00220 7561 00 stq pr6|144 gwcn_fb 002365 aa 000007 7100 04 tra 7,ic 002374 STATEMENT 2 ON LINE 380 else if apte.wct_index = "0"b then gwcn_fb = 0; 002366 aa 6 00501 2351 00 lda pr6|321 apte.wct_index 002367 aa 000003 6010 04 tnz 3,ic 002372 002370 aa 6 00220 4501 00 stz pr6|144 gwcn_fb 002371 aa 000003 7100 04 tra 3,ic 002374 STATEMENT 2 ON LINE 381 else gwcn_fb = divide (gwcn_fb, WCTE_WORDS, 17, 0); 002372 aa 6 00102 5061 00 div pr6|66 WCTE_WORDS 002373 aa 6 00220 7561 00 stq pr6|144 gwcn_fb STATEMENT 1 ON LINE 383 return (gwcn_fb); 002374 aa 6 00220 2361 00 ldq pr6|144 gwcn_fb 002375 aa 2 00002 7561 20 stq pr2|2,* 002376 aa 6 00212 6101 00 rtcd pr6|138 STATEMENT 1 ON LINE 384 end gwcn; END PROCEDURE gwcn BEGIN PROCEDURE ERRPRINT ENTRY TO ERRPRINT STATEMENT 1 ON LINE 387 ERRPRINT: proc (err_clue); 002377 aa 6 00222 6501 00 spri4 pr6|146 002400 aa 6 00224 2521 00 spri2 pr6|148 STATEMENT 1 ON LINE 391 call com_err_ (code, ME, "^a", err_clue); 002401 aa 136141 2350 03 lda 48225,du 002402 aa 6 00502 7551 00 sta pr6|322 002403 aa 6 00140 3521 00 epp2 pr6|96 code 002404 aa 6 00506 2521 00 spri2 pr6|326 002405 aa 775373 3520 04 epp2 -1285,ic 000000 = 164162141146 002406 aa 6 00510 2521 00 spri2 pr6|328 002407 aa 6 00502 3521 00 epp2 pr6|322 002410 aa 6 00512 2521 00 spri2 pr6|330 002411 aa 6 00224 3735 20 epp7 pr6|148,* 002412 aa 7 00002 3521 20 epp2 pr7|2,* err_clue 002413 aa 6 00514 2521 00 spri2 pr6|332 002414 aa 775427 3520 04 epp2 -1257,ic 000043 = 404000000043 002415 aa 6 00516 2521 00 spri2 pr6|334 002416 aa 775422 3520 04 epp2 -1262,ic 000040 = 526000000025 002417 aa 6 00520 2521 00 spri2 pr6|336 002420 aa 775403 3520 04 epp2 -1277,ic 000023 = 524000000002 002421 aa 6 00522 2521 00 spri2 pr6|338 002422 aa 775367 3520 04 epp2 -1289,ic 000011 = 524000000020 002423 aa 6 00524 2521 00 spri2 pr6|340 002424 aa 6 00504 6211 00 eax1 pr6|324 002425 aa 020000 4310 07 fld 8192,dl 002426 aa 6 00044 3701 20 epp4 pr6|36,* 002427 la 4 05734 3521 20 epp2 pr4|3036,* com_err_ 002430 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 392 go to MAIN_RETURN; 002431 aa 777177 7100 04 tra -385,ic 001630 STATEMENT 1 ON LINE 394 end ERRPRINT; END PROCEDURE ERRPRINT END PROCEDURE tcq ----------------------------------------------------------- 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