COMPILATION LISTING OF SEGMENT interrupt_meters Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/13/85 1142.5 mst Wed Options: optimize map 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,delnl,insnl,tree,ifthenstmt,indnoniterend */ 12 interrupt_meters: 13 intm: 14 procedure options (variable, separate_static); 15 16 /* IOM_INTERRUPT_METERS - Program to Print Out Channel Interrupt Meters. 17* coded 2/20/74 by N. I. Morris */ 18 19 /* Modified November 1978 by Larry Johnson to print names of the channels */ 20 /* Modified September 1980 by Warren Johnson to parse all fields on CHNL cards */ 21 /* Modified May 1981 by C. Hornig for new I/O system */ 22 /* Modified August 1981, W. Olin Sibert, for decimal channel printout */ 23 /* Modified August 1981 by J. Bongiovanni for metering_util_ */ 24 /* Modified November 1984 by M. Pandolf to include hc_lock. */ 25 26 dcl argno fixed bin; 27 dcl nargs fixed bin; 28 dcl argptr ptr; 29 dcl arglen fixed bin (21); 30 dcl argument char (arglen) based (argptr); 31 32 dcl (iom_no, first_iom, last_iom) fixed bin (3); 33 dcl (channel_no, first_channel, last_channel) fixed bin (8); 34 dcl rcode fixed bin (35); 35 dcl (i, j) fixed bin; 36 dcl dtx fixed bin (9); 37 dcl (rs_sw, rr_sw, tt_sw, channel_sw, iom_sw) bit (1) aligned init ("0"b); 38 39 dcl meter_time fixed bin (71); 40 dcl formatted_meter_time char (10); 41 dcl count fixed bin; 42 dcl cput float bin (63); 43 dcl ptime float bin (63); 44 dcl itime float bin (63); 45 dcl tm fixed bin (71); 46 dcl total_count fixed bin; 47 dcl total_time fixed bin (71); 48 dcl other_count fixed bin; 49 dcl other_time fixed bin (71); 50 dcl iom_count fixed bin; 51 dcl iom_time fixed bin (71); 52 dcl iom_data_length fixed bin (19); 53 dcl cur_ptrs (N_REGIONS) ptr; 54 dcl prev_ptrs (N_REGIONS) ptr; 55 dcl channel_name char (32); 56 57 dcl unique fixed bin internal static init (0); 58 dcl N_REGIONS fixed bin internal static options (constant) init (2); 59 60 dcl 1 cur_iom_data aligned like iom_data based (cur_ptrs (1)); 61 dcl 1 prev_iom_data aligned like iom_data based (prev_ptrs (1)); 62 dcl 1 cur_tcm aligned like tcm based (cur_ptrs (2)); 63 dcl 1 prev_tcm aligned like tcm based (prev_ptrs (2)); 64 65 66 dcl error_table_$badopt fixed bin (35) external static; 67 dcl error_table_$bad_arg fixed bin (35) external static; 68 dcl error_table_$noarg fixed bin (35) external static; 69 70 dcl com_err_ entry options (variable); 71 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 72 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 73 dcl identify_io_channel_ entry (pointer, fixed bin (3), fixed bin (8), char (*), fixed bin (35)); 74 dcl ioa_ entry options (variable); 75 dcl metering_util_$define_regions entry options (variable); 76 dcl metering_util_$fill_buffers entry (fixed bin, fixed bin (71), char (*), (*) ptr, (*) ptr, fixed bin (35)); 77 dcl metering_util_$reset entry (fixed bin, fixed bin (35)); 78 dcl parse_io_channel_name_ entry (char (*), fixed bin (3), fixed bin (8), fixed bin (35)); 79 dcl ring_zero_peek_$get_max_length entry (char (*), fixed bin (19), fixed bin (35)); 80 81 82 dcl WHOAMI char (32) internal static options (constant) init ("interrupt_meters"); 83 84 dcl (char, float, hbound, index, lbound, length, null, size, substr) builtin; 85 86 /* */ 87 88 if unique = 0 then do; /* first time ... */ 89 call ring_zero_peek_$get_max_length ("iom_data", iom_data_length, rcode); 90 if rcode ^= 0 then do; 91 call com_err_ (rcode, WHOAMI, "iom_data"); 92 return; 93 end; 94 call metering_util_$define_regions (unique, rcode, "iom_data", 0, iom_data_length, "tc_data", 0, 95 size (tcm)); 96 if rcode ^= 0 then do; 97 call com_err_ (rcode, WHOAMI, "metering_util_$define_regions"); 98 return; 99 end; 100 end; 101 102 103 call cu_$arg_count (nargs, rcode); 104 if rcode ^= 0 then do; 105 call com_err_ (rcode, WHOAMI); 106 return; 107 end; 108 109 do argno = 1 to nargs; /* Loop through arguments */ 110 call cu_$arg_ptr (argno, argptr, arglen, (0)); 111 112 if /* case */ (argument = "-rs") | (argument = "-reset") then rs_sw = "1"b; 113 else if (argument = "-report_reset") | (argument = "-reset_report") | (argument = "-rr") then rr_sw = "1"b; 114 else if (argument = "-totals") | (argument = "-total") | (argument = "-tt") then tt_sw = "1"b; 115 else if argument = "-iom" then do; /* Examine specified IOM. */ 116 if argno = nargs then do; 117 ARG_MISSING: 118 call com_err_ (error_table_$noarg, WHOAMI, "After ^a", argument); 119 return; 120 end; 121 122 argno = argno + 1; 123 call cu_$arg_ptr (argno, argptr, arglen, (0)); 124 125 if length (argument) ^= 1 then do; 126 BAD_IOM_ARG: 127 call com_err_ (0, WHOAMI, "Invalid IOM tag: ^a", argument); 128 return; 129 end; 130 131 if index ("ABCD", argument) ^= 0 132 then iom_no = index ("ABCD", argument); 133 else if index ("1234", argument) ^= 0 134 then iom_no = index ("1234", argument); 135 else goto BAD_IOM_ARG; 136 137 iom_sw = "1"b; 138 end; 139 140 else if (argument = "-channel") | (argument = "-chn") then do; 141 /* Examine specified channel. */ 142 if argno = nargs then goto ARG_MISSING; 143 argno = argno + 1; 144 call cu_$arg_ptr (argno, argptr, arglen, (0)); 145 call parse_io_channel_name_ (argument, iom_no, channel_no, rcode); 146 if rcode ^= 0 then do; 147 call com_err_ (rcode, WHOAMI, "Channel ^a", argument); 148 return; 149 end; 150 channel_sw = "1"b; 151 iom_sw = "1"b; 152 end; 153 154 else do; /* Bad argument */ 155 if char (argument, 1) = "-" 156 then rcode = error_table_$badopt; 157 else rcode = error_table_$bad_arg; 158 call com_err_ (rcode, WHOAMI, "^a", argument); 159 return; 160 end; 161 end; /* Of loop through arguments */ 162 163 call metering_util_$fill_buffers (unique, meter_time, formatted_meter_time, cur_ptrs, prev_ptrs, rcode); 164 if rcode ^= 0 then do; 165 call com_err_ (rcode, WHOAMI, "metering_util_$fill_buffers"); 166 return; 167 end; 168 169 ptime = cur_tcm.processor_time - prev_tcm.processor_time; 170 itime = cur_tcm.idle - prev_tcm.idle; /* This command used to compute interrupt time as */ 171 cput = ptime; /* interrupt time taken in non-idle process. REM */ 172 173 call ioa_ ("^/Total metering time^-^a^/", formatted_meter_time); 174 175 176 if ^rs_sw 177 then call ioa_ (" IOM Ch Int Avg Time % CPU Name^/"); 178 else go to reset; 179 180 if iom_sw 181 then /* If IOM was specified ... */ 182 first_iom, last_iom = iom_no; 183 else do; 184 first_iom = lbound (cur_iom_data.per_iom, 1); 185 last_iom = hbound (cur_iom_data.per_iom, 1); 186 end; 187 188 if channel_sw 189 then first_channel, last_channel = channel_no; 190 else do; 191 first_channel = lbound (cur_iom_data.per_iom.chantab, 2); 192 last_channel = hbound (cur_iom_data.per_iom.chantab, 2); 193 end; 194 195 iom_count, iom_time = 0; /* Reset totals. */ 196 do i = first_iom to last_iom; /* Iterate through IOM's. */ 197 do j = first_channel to last_channel; /* Iterate through channels. */ 198 dtx = cur_iom_data.per_iom (i).chantab (j); 199 if dtx ^= 0 then do; 200 count = cur_iom_data.per_device (dtx).interrupts - prev_iom_data.per_device (dtx).interrupts; 201 tm = cur_iom_data.per_device (dtx).interrupt_time 202 - prev_iom_data.per_device (dtx).interrupt_time; 203 end; 204 else count, tm = 0; 205 206 if ((count ^= 0) & ^tt_sw) | channel_sw then do; 207 call identify_io_channel_ (null (), (i), (j), channel_name, (0)); 208 call ioa_ ("^x^1a^4d.^8d^8.3f^9.2f ^a", substr ("ABCDEFGH", i, 1), j, count, cavg (tm, count), 209 cpcnt (tm, cput), channel_name); 210 end; 211 212 iom_count = iom_count + count; /* Count totals. */ 213 iom_time = iom_time + tm; 214 end; 215 end; 216 217 if ^(channel_sw | iom_sw) | tt_sw then do; /* If printing totals... */ 218 total_count = cur_tcm.interrupt_count - prev_tcm.interrupt_count; 219 total_time = cur_tcm.interrupt_time - prev_tcm.interrupt_time; 220 other_count = total_count; 221 other_time = total_time - iom_time; 222 223 call ioa_ (""); 224 225 /* Sum of channel data */ 226 call ioa_ ("^7a^8d^8.3f^9.2f", "Chan ", iom_count, cavg (iom_time, iom_count), cpcnt (iom_time, cput)); 227 228 /* Time in ii & iom_manager not metered per channel */ 229 call ioa_ ("^7a^8d^8.3f^9.2f", "Ovhd ", other_count, cavg (other_time, other_count), 230 cpcnt (other_time, cput)); 231 232 /* Total interrupt time, like ttm.interrupt_time, per actual interrupt */ 233 call ioa_ ("^7a^8d^8.3f^9.2f", "Total ", total_count, cavg (total_time, total_count), 234 cpcnt (total_time, cput)); 235 end; 236 237 reset: 238 if rs_sw | rr_sw then do; 239 call metering_util_$reset (unique, rcode); 240 if rcode ^= 0 then do; 241 call com_err_ (rcode, WHOAMI, "metering_util_$reset"); 242 return; 243 end; 244 end; 245 246 call ioa_ (""); 247 248 return_to_caller: 249 return; 250 251 cavg: 252 proc (t, c) returns (float bin); 253 254 dcl t fixed bin (71), 255 c fixed bin; 256 257 258 if c = 0 259 then return (0.e0); 260 else return (float (t, 27) / c * 1.e-3); 261 262 263 end cavg; 264 265 266 267 cpcnt: 268 proc (t, c) returns (float bin); 269 270 dcl t fixed bin (71), 271 c float bin (63); 272 273 return (float (t, 27) / c * 1.e2); 274 275 end cpcnt; 276 277 1 1 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 1 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 1 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 1 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 1 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 1 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 1 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 1 8 1 9 dcl tcmp ptr; 1 10 1 11 dcl 1 tcm aligned based (tcmp), 1 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 1 13 2 cid2 fixed bin (18), 1 14 2 cid3 fixed bin (18), 1 15 2 cid4 fixed bin (18), 1 16 2 depth_count fixed bin (18), /* depth last process run */ 1 17 2 loadings fixed bin (18), /* number of process loadings */ 1 18 1 19 2 blocks fixed bin (18), /* number of calls to block */ 1 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 1 21 2 waits fixed bin (18), /* number of calls to wait */ 1 22 2 notifies fixed bin (18), /* number of calls to notify */ 1 23 2 schedulings fixed bin (18), 1 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 1 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 1 26 2 te_wait fixed bin (18), /* times te called from wait */ 1 27 1 28 2 te_block fixed bin (18), /* times te updated from block */ 1 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 1 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 1 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 1 32 2 idle fixed bin (71), /* total idle time */ 1 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 1 34 1 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 1 36 2 zero_idle fixed bin (71), /* zero idle time */ 1 37 2 last_time fixed bin (71), /* last time a process was run */ 1 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 1 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 1 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 1 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 1 42 2 processor_time fixed bin (71), /* total processor time on system */ 1 43 2 response_time fixed bin (71), /* estimate of response time */ 1 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 1 45 2 response_count fixed bin, /* count of response meters */ 1 46 2 eligible_count fixed bin, /* count of eligible meters */ 1 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 1 48 2 loading_idle fixed bin (71), /* loading_idle time */ 1 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 1 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 1 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 1 52 2 notify_check fixed bin, /* obsolete */ 1 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 1 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 1 55 2 end_of_time fixed bin (71), /* very large time */ 1 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 1 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 1 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 1 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 1 60 /* set this to >= half n_ttylines/fnp for safety */ 1 61 1 62 /* 100 octal */ 1 63 1 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 1 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 1 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 1 67 1 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 1 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 1 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 1 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 1 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 1 73 2 gp_done_count fixed bin (18), 1 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 1 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 1 76 2 nto_count fixed bin (18), /* number of times nto detected */ 1 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 1 78 2 nto_event bit (36), /* last event which NTO'd */ 1 79 2 page_notifies fixed bin (18), 1 80 2 notify_nobody_count fixed bin (18), 1 81 2 notify_nobody_event bit (36), 1 82 2 system_type fixed bin, /* used to be tcm.inter */ 1 83 1 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 1 85 1 86 /* 200 octal */ 1 87 1 88 2 wait (8), 1 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 1 90 3 count fixed bin (18), 1 91 1 92 2 ready (8), 1 93 3 time fixed bin (18), /* histogram of times in ready queue */ 1 94 3 count fixed bin (18), 1 95 1 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 1 97* all page faults */ 1 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 1 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 1 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 1 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 1 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 1 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 1 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 1 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 1 106 2 special_offsets unaligned, 1 107 3 apt_offset bit (18), 1 108 3 pad bit (18), 1 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 1 110 2 getwork_count fixed bin (18), /* total times through getwork */ 1 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 1 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 1 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 1 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 1 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 1 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 1 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 1 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 1 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 1 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 1 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 1 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 1 123 1 124 /* 300 octal */ 1 125 1 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 1 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 1 128 2 prds_length fixed bin (18), /* length of PRDS */ 1 129 2 pds_length fixed bin (18), /* length of PDS */ 1 130 2 lock fixed bin (18), /* process id generator lock */ 1 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 1 132 2 system_shutdown fixed bin (18), 1 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 1 134 1 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 1 136 2 last_eligible bit (18), /* last process to gain eligibility */ 1 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 1 138 2 apt_size fixed bin (18), /* number of APT entries */ 1 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 1 140 2 aht_size fixed bin (18), /* APT hash table size */ 1 141 2 itt_size fixed bin (18), /* number of ITT entries */ 1 142 1 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 1 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 1 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 1 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 1 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 1 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 1 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 1 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 1 151 1 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 1 153 2 dst_ptr ptr, /* pointer to device signal table */ 1 154 2 old_user ptr, /* last process to run (apt ptr ) */ 1 155 2 initialize_time fixed bin (71), /* time of initialization */ 1 156 1 157 2 init_event fixed bin (18), /* wait event during initialization */ 1 158 2 oldt fixed bin (18), /* timer reading from previous process */ 1 159 2 newt fixed bin (18), /* timer setting for new process */ 1 160 2 tefirst fixed bin (30), /* first eligible time */ 1 161 2 telast fixed bin (30), /* last eligible time */ 1 162 2 timax fixed bin (35), /* time in queue for lowest level */ 1 163 2 empty_q bit (18), /* thread of empty APT entries */ 1 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 1 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 1 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 1 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 1 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 1 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 1 170 2 min_eligible fixed bin (30), 1 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 1 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 1 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 1 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 1 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 1 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 1 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 1 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 1 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 1 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 1 181 2 max_channels fixed bin (18), /* num special channels per process */ 1 182 1 183 /* 400 octal */ 1 184 1 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 1 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 1 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 1 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 1 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 1 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 1 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 1 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 1 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 1 194 2 max_batch_elig fixed bin (35), 1 195 2 num_batch_elig fixed bin (35), 1 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 1 197 2 credits_scattered fixed bin (35), 1 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 1 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 1 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 1 201 2 mos_polling_interval fixed bin (35), /* for heals */ 1 202 2 mos_polling_time fixed bin (71), /* for heals */ 1 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 1 204 2 vcpu_response_bounds_size fixed bin (35), 1 205 2 meter_response_time_calls fixed bin (35), 1 206 2 meter_response_time_invalid fixed bin (35), 1 207 2 meter_response_time_overhead fixed bin (71), 1 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 1 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 1 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 1 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 1 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 1 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 1 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 1 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 1 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 1 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 1 218 1 219 /* Tuning Parameters for Stack Truncation */ 1 220 1 221 2 stk_truncate bit (1) aligned, 1 222 2 stk_truncate_always bit (1) aligned, 1 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 1 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 1 225 2 lock_error_severity fixed bin, /* syserr severity */ 1 226 1 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 1 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 1 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 1 230 2 volmap_polling_time fixed bin (71), 1 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 1 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 1 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 1 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 1 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 1 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 1 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 1 238 1 239 /* 500 octal */ 1 240 1 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 1 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 1 243 1 244 /* 1000 octal */ 1 245 1 246 2 pad7 (64) fixed bin (35), 1 247 1 248 /* 1100 octal */ 1 249 1 250 2 pad6 (8) fixed bin (35), 1 251 2 work_class_table aligned, /* array of per workclass information */ 1 252 3 wcte (0:16) aligned like wct_entry, 1 253 1 254 /* 3000 octal */ 1 255 1 256 2 apt fixed bin; 1 257 1 258 dcl wctep ptr; 1 259 1 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 1 261 2 thread unaligned, /* Ready list */ 1 262 3 fp bit (18), /* Head of ready list */ 1 263 3 bp bit (18), /* Tail of ready list */ 1 264 2 flags unaligned, 1 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 1 266 3 defined bit (1), 1 267 3 io_priority bit (1), 1 268 3 governed bit (1), 1 269 3 interactive_q bit (1), 1 270 3 pad bit (31), 1 271 2 credits fixed bin (35), /* Current worthiness of group */ 1 272 2 minf fixed bin (35), /* min fraction of cpu */ 1 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 1 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 1 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 1 276 2 resp1 fixed bin (71), 1 277 2 resp2 fixed bin (71), 1 278 2 quantum1 fixed bin (35), 1 279 2 quantum2 fixed bin (35), 1 280 2 rmeter1 fixed bin (71), 1 281 2 rmeter2 fixed bin (71), 1 282 2 rcount1 fixed bin (35), 1 283 2 rcount2 fixed bin (35), 1 284 2 realtime fixed bin (35), 1 285 2 purging fixed bin (35), 1 286 2 maxel fixed bin (35), 1 287 2 nel fixed bin (35), 1 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 1 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 1 290 2 total_think_time fixed bin (71), 1 291 2 total_queue_time fixed bin (71), 1 292 1 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 1 294 1 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 1 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 1 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 1 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 1 300 2 pad1 (4) fixed bin (35); 1 301 1 302 1 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 1 304 2 fp bit (18) unal, 1 305 2 bp bit (18) unal, 1 306 2 sentinel bit (36) aligned; 1 307 1 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 1 309 1 310 /* END INCLUDE FILE tcm.incl.pl1 */ 278 279 2 1 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 2 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 2 3* encourages name conflicts. 2 4* USE HC_FAST_LOCK INSTEAD! 2 5**/ 2 6 2 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 8 2 9 /* format: style3 */ 2 10 2 11 declare lock_ptr pointer; 2 12 declare 1 lock aligned based (lock_ptr), 2 13 2 pid bit (36) aligned, /* holder of lock */ 2 14 2 event bit (36) aligned, /* event associated with lock */ 2 15 2 flags aligned, 2 16 3 notify_sw bit (1) unaligned, 2 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 18 2 19 /* End include file hc_lock.incl.pl1 */ 280 281 3 1 /* Begin include file ...... iom_data.incl.pl1 3 2* First written in August 1971 by R F Mabee. 3 3* Modified for paged IOM November 1980 by C. Hornig. 3 4* More IIOC changes by C. Hornig, June 1982. 3 5* Modified for channel reconfiguration by Chris Jones, January 1984. 3 6* Modified to remove support of non-paged IOMs by Chris Jones, August 1984. 3 7* Modified to add IMW read protocol flags by M. Pandolf, January 1985. 3 8**/ 3 9 3 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 3 11 dcl iom_data$ external; 3 12 dcl iom_mailbox$ external; 3 13 3 14 dcl n_devices fixed bin; 3 15 dcl iom_data_ptr ptr; 3 16 3 17 dcl 1 iom_data based (iom_data_ptr) aligned, 3 18 2 n_devices fixed bin, /* (0) Maximum number of channels. */ 3 19 2 stop_lpw bit (36), /* (1) LPW pointing to stop_dcw. */ 3 20 2 stop_dcw bit (36), /* (2) DCW to stop channel, probably storing bad status. */ 3 21 2 stop_scw bit (36), /* (3) SCW for same */ 3 22 2 imw_lock fixed bin (35), /* (4) Essentially a lock for iom switch checking: */ 3 23 /* 1 : OK to poll IMW */ 3 24 /* 0 : lock in transition */ 3 25 /* -1 : DONT poll IMW */ 3 26 2 n_intr_procs fixed bin (35), /* (5) Number of processors in interrupt handler */ 3 27 2 pad1 (2) bit (36), 3 28 2 stop_status bit (72), /* (10) All unused channels store status here. */ 3 29 2 rfh1 (6) bit (36), /* can't use this */ 3 30 2 stop_ext_status bit (8 * 36), /* (20) Unused channels' extended status */ 3 31 2 pad3 (5) bit (36), 3 32 2 invalid_interrupts fixed bin (35), /* (35) interrupts on unused channels */ 3 33 2 null_interrupts fixed bin (35), /* (36) spurious interrupts */ 3 34 2 multiple_interrupts 3 35 fixed bin (35), /* (37) several interrupts at a time */ 3 36 2 per_iom (4) like per_iom, /* (40) for each IOM */ 3 37 2 per_device (n_devices refer (iom_data.n_devices)) like per_device; 3 38 /* (240) Data for assigned channels. */ 3 39 3 40 dcl 1 per_iom aligned based, 3 41 2 lock bit (36), /* (40) connect mailbox lock */ 3 42 2 flags, /* (41) */ 3 43 3 configured bit (1) unal, /* is configured */ 3 44 3 on_line bit (1) unal, /* is ON */ 3 45 3 pad1 bit (34) unal, 3 46 2 model char (4), /* (42) what kind of IOM */ 3 47 2 port fixed bin (3), /* (43) SC port */ 3 48 2 connect_time fixed bin (71), /* (44) time of last connect */ 3 49 2 connect_lpw bit (36), /* (46) LPW for connect channel */ 3 50 2 cow bit (36), /* (47) Connect Operand Word */ 3 51 2 special_chx fixed bin (35), /* (50) chx of special status channel */ 3 52 2 fault_chx fixed bin (35), /* (51) chx of system fault channel */ 3 53 2 pad2 (5) bit (36), 3 54 2 reconnects fixed bin (35), /* (57) times a connect was lost */ 3 55 2 chantab (0:63) uns fixed bin (9) unal; 3 56 /* (60) packed devtab indicies */ 3 57 3 58 dcl 1 per_device aligned based, 3 59 2 status bit (72), /* (0) Status for channel is stored here. */ 3 60 2 rfh1 (6) bit (36), 3 61 2 ext_status bit (8 * 36), /* (10) extended status stored by IIOC */ 3 62 2 iom uns fixed bin (3), /* (20) IOM# (1-4) */ 3 63 2 channel uns fixed bin (6), /* (21) channel # */ 3 64 2 handler entry (fixed bin (35), fixed bin (3), bit (36) aligned), 3 65 /* (22) Interrupt handler for device. */ 3 66 2 flags, /* (26) */ 3 67 3 in_use bit (1) unal, /* assigned */ 3 68 3 queue_status bit (1) unal, /* maintain status queue */ 3 69 3 on_line bit (1) unal, /* can be assigned */ 3 70 2 index fixed bin (35), /* (27) Channel identification index. */ 3 71 2 pcw bit (72), /* (30) Peripheral Control Word */ 3 72 2 lpw bit (72), /* (32) List Pointer Word */ 3 73 2 scw bit (36), /* (34) Status Control Word */ 3 74 2 pad1 fixed bin (35), 3 75 2 status_queue_ptr ptr, /* (36) Status queue */ 3 76 2 connect_time fixed bin (71), /* (40) time of last connect */ 3 77 2 connects fixed bin (71), /* (42) Total connects */ 3 78 2 interrupts fixed bin (71), /* (44) Total number of interrupts for this channel. */ 3 79 2 interrupt_time fixed bin (71); /* (46) Total interrupt time for this channel. */ 3 80 3 81 dcl iom_mailbox_seg_ptr ptr; 3 82 dcl 1 iom_mailbox_seg aligned based (iom_mailbox_seg_ptr), 3 83 2 imw_array (0:31) bit (32), /* Indexed by interrupt cell number. One bit for each channel. */ 3 84 2 system_fault (4) aligned like status_queue, 3 85 /* system faults store here (12 words/IOM) */ 3 86 2 special_status (4) aligned like status_queue, 3 87 /* special status words here (12 words/IOM) */ 3 88 2 iom_mailbox (4) like iom_mailbox; /* Used to communicate with the IOM. */ 3 89 3 90 dcl status_queue_ptr ptr; 3 91 dcl 1 status_queue aligned based (status_queue_ptr), 3 92 2 status (12) bit (36); 3 93 3 94 dcl 1 iom_mailbox aligned based, 3 95 2 channel_mailbox (0:63) like channel_mailbox; 3 96 3 97 dcl 1 channel_mailbox aligned based, 3 98 2 lpw bit (72), /* List pointer word. Points to DCW list. */ 3 99 2 scw bit (36), /* Status control word. Points to channel_table.status. */ 3 100 2 dcw bit (36); /* Data control word. Primarily scratch space for IOM. */ 3 101 3 102 /* Defined channel numbers. */ 3 103 3 104 dcl ( 3 105 system_fault_channel init (1), /* Stores system fault words using LPW and DCW. */ 3 106 connect_channel init (2), /* Starts other channels using LPW pointing to PCW. */ 3 107 special_status_channel init (6) /* Stores special status using LPW and DCW. */ 3 108 ) fixed bin (6) static options (constant); 3 109 3 110 /* End of include file ..... iom_data.incl.pl1 */ 282 283 284 end interrupt_meters; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/13/85 1027.1 interrupt_meters.pl1 >spec>on>41-11>interrupt_meters.pl1 278 1 01/30/85 1523.9 tcm.incl.pl1 >ldd>include>tcm.incl.pl1 280 2 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 282 3 03/12/85 1556.6 iom_data.incl.pl1 >spec>on>41-11>iom_data.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. N_REGIONS constant fixed bin(17,0) initial dcl 58 ref 53 54 VCPU_RESPONSE_BOUNDS constant fixed bin(17,0) initial dcl 1-308 ref 94 94 94 94 94 94 94 94 WHOAMI 000000 constant char(32) initial unaligned dcl 82 set ref 91* 97* 105* 117* 126* 147* 158* 165* 241* arglen 000104 automatic fixed bin(21,0) dcl 29 set ref 110* 112 112 113 113 113 114 114 114 115 117 117 123* 125 126 126 131 131 133 133 140 140 144* 145 145 147 147 155 158 158 argno 000100 automatic fixed bin(17,0) dcl 26 set ref 109* 110* 116 122* 122 123* 142 143* 143 144* argptr 000102 automatic pointer dcl 28 set ref 110* 112 112 113 113 113 114 114 114 115 117 123* 125 126 131 131 133 133 140 140 144* 145 147 155 158 argument based char unaligned dcl 30 set ref 112 112 113 113 113 114 114 114 115 117* 125 126* 131 131 133 133 140 140 145* 147* 155 158* based_sentinel based structure level 1 dcl 1-303 c parameter float bin(63) dcl 270 in procedure "cpcnt" ref 267 273 c parameter fixed bin(17,0) dcl 254 in procedure "cavg" ref 251 258 260 channel_mailbox based structure level 1 dcl 3-97 channel_name 000160 automatic char(32) unaligned dcl 55 set ref 207* 208* channel_no 000110 automatic fixed bin(8,0) dcl 33 set ref 145* 188 channel_sw 000122 automatic bit(1) initial dcl 37 set ref 37* 150* 188 206 217 chantab 60 based fixed bin(9,0) array level 3 packed unsigned unaligned dcl 60 ref 191 192 198 char builtin function dcl 84 ref 155 com_err_ 000016 constant entry external dcl 70 ref 91 97 105 117 126 147 158 165 241 count 000131 automatic fixed bin(17,0) dcl 41 set ref 200* 204* 206 208* 208* 208* 212 cput 000132 automatic float bin(63) dcl 42 set ref 171* 208* 208* 226* 226* 229* 229* 233* 233* cu_$arg_count 000020 constant entry external dcl 71 ref 103 cu_$arg_ptr 000022 constant entry external dcl 72 ref 110 123 144 cur_iom_data based structure level 1 dcl 60 cur_ptrs 000160 automatic pointer array dcl 53 set ref 163* 169 170 184 185 191 192 198 200 201 218 219 cur_tcm based structure level 1 dcl 62 dtx 000116 automatic fixed bin(9,0) dcl 36 set ref 198* 199 200 200 201 201 error_table_$bad_arg 000012 external static fixed bin(35,0) dcl 67 ref 157 error_table_$badopt 000010 external static fixed bin(35,0) dcl 66 ref 155 error_table_$noarg 000014 external static fixed bin(35,0) dcl 68 set ref 117* first_channel 000111 automatic fixed bin(8,0) dcl 33 set ref 188* 191* 197 first_iom 000106 automatic fixed bin(3,0) dcl 32 set ref 180* 184* 196 float builtin function dcl 84 ref 260 273 formatted_meter_time 000126 automatic char(10) unaligned dcl 40 set ref 163* 173* hbound builtin function dcl 84 ref 185 192 i 000114 automatic fixed bin(17,0) dcl 35 set ref 196* 198 207 208 208* identify_io_channel_ 000024 constant entry external dcl 73 ref 207 idle 24 based fixed bin(71,0) level 2 in structure "prev_tcm" dcl 63 in procedure "intm" ref 170 idle 24 based fixed bin(71,0) level 2 in structure "cur_tcm" dcl 62 in procedure "intm" ref 170 index builtin function dcl 84 ref 131 131 133 133 interrupt_count 262 based fixed bin(71,0) level 2 in structure "cur_tcm" dcl 62 in procedure "intm" ref 218 interrupt_count 262 based fixed bin(71,0) level 2 in structure "prev_tcm" dcl 63 in procedure "intm" ref 218 interrupt_time 306 based fixed bin(71,0) array level 3 in structure "prev_iom_data" dcl 61 in procedure "intm" ref 201 interrupt_time 260 based fixed bin(71,0) level 2 in structure "cur_tcm" dcl 62 in procedure "intm" ref 219 interrupt_time 306 based fixed bin(71,0) array level 3 in structure "cur_iom_data" dcl 60 in procedure "intm" ref 201 interrupt_time 260 based fixed bin(71,0) level 2 in structure "prev_tcm" dcl 63 in procedure "intm" ref 219 interrupts 304 based fixed bin(71,0) array level 3 in structure "cur_iom_data" dcl 60 in procedure "intm" ref 200 interrupts 304 based fixed bin(71,0) array level 3 in structure "prev_iom_data" dcl 61 in procedure "intm" ref 200 ioa_ 000026 constant entry external dcl 74 ref 173 176 208 223 226 229 233 246 iom_count 000152 automatic fixed bin(17,0) dcl 50 set ref 195* 212* 212 226* 226* 226* iom_data based structure level 1 dcl 3-17 iom_data_length 000156 automatic fixed bin(19,0) dcl 52 set ref 89* 94* iom_mailbox based structure level 1 dcl 3-94 iom_no 000105 automatic fixed bin(3,0) dcl 32 set ref 131* 133* 145* 180 iom_sw 000123 automatic bit(1) initial dcl 37 set ref 37* 137* 151* 180 217 iom_time 000154 automatic fixed bin(71,0) dcl 51 set ref 195* 213* 213 221 226* 226* 226* 226* itime 000136 automatic float bin(63) dcl 44 set ref 170* j 000115 automatic fixed bin(17,0) dcl 35 set ref 197* 198 207 208* last_channel 000112 automatic fixed bin(8,0) dcl 33 set ref 188* 192* 197 last_iom 000107 automatic fixed bin(3,0) dcl 32 set ref 180* 185* 196 lbound builtin function dcl 84 ref 184 191 length builtin function dcl 84 ref 125 lock based structure level 1 dcl 2-12 meter_time 000124 automatic fixed bin(71,0) dcl 39 set ref 163* metering_util_$define_regions 000030 constant entry external dcl 75 ref 94 metering_util_$fill_buffers 000032 constant entry external dcl 76 ref 163 metering_util_$reset 000034 constant entry external dcl 77 ref 239 nargs 000101 automatic fixed bin(17,0) dcl 27 set ref 103* 109 116 142 null builtin function dcl 84 ref 207 207 other_count 000146 automatic fixed bin(17,0) dcl 48 set ref 220* 229* 229* 229* other_time 000150 automatic fixed bin(71,0) dcl 49 set ref 221* 229* 229* 229* 229* parse_io_channel_name_ 000036 constant entry external dcl 78 ref 145 per_device 240 based structure array level 2 in structure "prev_iom_data" dcl 61 in procedure "intm" per_device based structure level 1 dcl 3-58 in procedure "intm" per_device 240 based structure array level 2 in structure "cur_iom_data" dcl 60 in procedure "intm" per_iom based structure level 1 dcl 3-40 in procedure "intm" per_iom 40 based structure array level 2 in structure "cur_iom_data" dcl 60 in procedure "intm" ref 184 185 prev_iom_data based structure level 1 dcl 61 prev_ptrs 000160 automatic pointer array dcl 54 set ref 163* 169 170 200 201 218 219 prev_tcm based structure level 1 dcl 63 processor_time 42 based fixed bin(71,0) level 2 in structure "prev_tcm" dcl 63 in procedure "intm" ref 169 processor_time 42 based fixed bin(71,0) level 2 in structure "cur_tcm" dcl 62 in procedure "intm" ref 169 ptime 000134 automatic float bin(63) dcl 43 set ref 169* 171 rcode 000113 automatic fixed bin(35,0) dcl 34 set ref 89* 90 91* 94* 96 97* 103* 104 105* 145* 146 147* 155* 157* 158* 163* 164 165* 239* 240 241* ring_zero_peek_$get_max_length 000040 constant entry external dcl 79 ref 89 rr_sw 000120 automatic bit(1) initial dcl 37 set ref 37* 113* 237 rs_sw 000117 automatic bit(1) initial dcl 37 set ref 37* 112* 176 237 size builtin function dcl 84 ref 94 94 status_queue based structure level 1 dcl 3-91 substr builtin function dcl 84 ref 208 208 t parameter fixed bin(71,0) dcl 270 in procedure "cpcnt" ref 267 273 t parameter fixed bin(71,0) dcl 254 in procedure "cavg" ref 251 260 tcm based structure level 1 dcl 1-11 ref 94 94 tcmp automatic pointer dcl 1-9 ref 94 94 tm 000140 automatic fixed bin(71,0) dcl 45 set ref 201* 204* 208* 208* 208* 208* 213 total_count 000142 automatic fixed bin(17,0) dcl 46 set ref 218* 220 233* 233* 233* total_time 000144 automatic fixed bin(71,0) dcl 47 set ref 219* 221 233* 233* 233* 233* tt_sw 000121 automatic bit(1) initial dcl 37 set ref 37* 114* 206 217 unique 000000 internal static fixed bin(17,0) initial dcl 57 set ref 88 94* 163* 239* wct_entry based structure level 1 dcl 1-260 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. connect_channel internal static fixed bin(6,0) initial dcl 3-104 iom_data$ external static fixed bin(17,0) dcl 3-11 iom_data_ptr automatic pointer dcl 3-15 iom_mailbox$ external static fixed bin(17,0) dcl 3-12 iom_mailbox_seg based structure level 1 dcl 3-82 iom_mailbox_seg_ptr automatic pointer dcl 3-81 lock_ptr automatic pointer dcl 2-11 n_devices automatic fixed bin(17,0) dcl 3-14 special_status_channel internal static fixed bin(6,0) initial dcl 3-104 status_queue_ptr automatic pointer dcl 3-90 system_fault_channel internal static fixed bin(6,0) initial dcl 3-104 wctep automatic pointer dcl 1-258 NAMES DECLARED BY EXPLICIT CONTEXT. ARG_MISSING 000651 constant label dcl 117 ref 142 BAD_IOM_ARG 000726 constant label dcl 126 ref 133 cavg 002103 constant entry internal dcl 251 ref 208 208 226 226 229 229 233 233 cpcnt 002124 constant entry internal dcl 267 ref 208 208 226 226 229 229 233 233 interrupt_meters 000263 constant entry external dcl 12 intm 000253 constant entry external dcl 12 reset 002024 constant label dcl 237 ref 176 return_to_caller 002102 constant label dcl 248 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2430 2474 2236 2472 Length 2742 2236 42 231 171 1 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME intm 211 external procedure is an external procedure. cavg internal procedure shares stack frame of external procedure intm. cpcnt internal procedure shares stack frame of external procedure intm. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000000 unique intm STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME intm 000100 argno intm 000101 nargs intm 000102 argptr intm 000104 arglen intm 000105 iom_no intm 000106 first_iom intm 000107 last_iom intm 000110 channel_no intm 000111 first_channel intm 000112 last_channel intm 000113 rcode intm 000114 i intm 000115 j intm 000116 dtx intm 000117 rs_sw intm 000120 rr_sw intm 000121 tt_sw intm 000122 channel_sw intm 000123 iom_sw intm 000124 meter_time intm 000126 formatted_meter_time intm 000131 count intm 000132 cput intm 000134 ptime intm 000136 itime intm 000140 tm intm 000142 total_count intm 000144 total_time intm 000146 other_count intm 000150 other_time intm 000152 iom_count intm 000154 iom_time intm 000156 iom_data_length intm 000160 prev_ptrs intm 000160 channel_name intm 000160 cur_ptrs intm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return alloc_auto_adj set_cs_eis index_cs_eis ss_ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr identify_io_channel_ ioa_ metering_util_$define_regions metering_util_$fill_buffers metering_util_$reset parse_io_channel_name_ ring_zero_peek_$get_max_length THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 37 000207 53 000214 54 000222 163 000230 12 000252 88 000271 89 000274 90 000317 91 000321 92 000344 94 000345 96 000461 97 000463 98 000507 103 000510 104 000521 105 000523 106 000540 109 000541 110 000551 112 000567 113 000604 114 000623 115 000642 116 000646 117 000651 119 000703 122 000704 123 000705 125 000723 126 000726 128 000765 131 000766 133 001000 137 001010 138 001012 140 001013 142 001023 143 001026 144 001027 145 001045 146 001075 147 001077 148 001133 150 001134 151 001136 152 001137 155 001140 157 001153 158 001156 159 001207 161 001210 163 001212 164 001250 165 001252 166 001276 169 001277 170 001310 171 001315 173 001317 176 001337 180 001355 184 001363 185 001365 188 001367 191 001375 192 001376 195 001400 196 001403 197 001413 198 001423 199 001441 200 001442 201 001451 203 001454 204 001455 206 001460 207 001466 208 001526 212 001601 213 001603 214 001606 215 001610 217 001612 218 001620 219 001627 220 001632 221 001634 223 001637 226 001650 229 001714 233 001760 237 002024 239 002030 240 002042 241 002044 242 002070 246 002071 248 002102 251 002103 258 002105 260 002112 267 002124 273 002126 ----------------------------------------------------------- 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