COMPILATION LISTING OF SEGMENT hasp_meters_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/25/89 1050.4 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Interpret and otherwise manipulate the meters maintained by the HASP multiplexer for the major channel and its 12* sub-channels */ 13 14 /* Created: July 1981 by G. Palter */ 15 16 17 hasp_meters_: 18 procedure (); 19 20 return; /* not an entrypoint */ 21 22 23 /* Parameters */ 24 25 dcl P_code fixed binary (35) parameter; 26 27 dcl P_meters_ptr pointer parameter; /* allocate_*, free_*: -> the structure allocated/freed */ 28 29 dcl P_area_ptr pointer parameter; /* allocate_*: -> the area to use */ 30 31 dcl P_channel_name character (*) parameter; /* display_*, *_summary: the channel in question */ 32 dcl P_channel_meters_ptr pointer parameter; /* display_*, *_summary: -> the metering data for the channel */ 33 34 dcl P_iocb_ptr pointer parameter; /* display_*: the I/O switch to write results */ 35 dcl P_flags bit (36) aligned parameter; /* display_*: controls format/content of the display */ 36 37 dcl P_since_bootload bit (1) parameter; /* *_summary: ON => give results since bootload */ 38 dcl P_summary_ptr pointer parameter; /* *_summary: -> summary of channels meters */ 39 40 41 /* Local copies of parameters */ 42 43 dcl the_area area based (the_area_ptr); 44 dcl the_area_ptr pointer; 45 46 dcl output_switch pointer; 47 48 dcl metering_flags bit (36) aligned; 49 50 dcl since_bootload bit (1) aligned; 51 52 53 /* Remaining declarations */ 54 55 dcl 1 mpx aligned, /* meters for a HASP multiplexer */ 56 2 metering_time fixed binary (71), /* amount of time metered */ 57 2 idle_interval fixed binary, /* # of seconds for each idle loop */ 58 2 fnp_meters, /* meters extracted from the FNP */ 59 3 input_naks fixed binary (35), 60 3 output_naks fixed binary (35), 61 3 input_timeouts fixed binary (35), 62 3 output_timeouts fixed binary (35), 63 3 idle_counter fixed binary (35), /* # of times through the idle loop */ 64 3 dia_busy_counter fixed binary (35), /* # of NAKs of input messages because DIA hadn't ... */ 65 2 meters like hasp_mpx_meters; /* ... finished sending the prvious message to Multics */ 66 67 dcl 1 subchannel aligned, /* meters for a HASP multiplexer sub-channel */ 68 2 input bit (1) aligned, /* ON => sub-channel is an input (or input/output) device */ 69 2 output bit (1) aligned, /* ON => sub-channel is an output (or input/output) device */ 70 2 meters like hasp_subchannel_meters; 71 72 dcl parent_is_fnp bit (1) aligned; 73 dcl errors_only bit (1) aligned; 74 75 dcl ONE_SECOND fixed binary (71) static options (constant) initial (1000000); 76 77 dcl error_table_$noalloc fixed binary (35) external; 78 79 dcl iox_$user_output pointer external; 80 81 dcl ioa_$ioa_switch entry () options (variable); 82 dcl meter_format_$picture entry (fixed binary (35), fixed binary) returns (character (15) varying); 83 dcl meter_format_$quotient entry (fixed binary (71), fixed binary (71), character (*)) returns (character (12) varying); 84 85 dcl area condition; 86 87 dcl (addr, max, null) builtin; 88 89 /* */ 90 91 /* Allocate the metering structure for a HASP multiplexer channel */ 92 93 allocate_mpx: 94 entry (P_area_ptr, P_meters_ptr, P_code); 95 96 the_area_ptr = P_area_ptr; 97 P_code = 0; /* assume success */ 98 99 on condition (area) 100 begin; /* in case there's no room in the area */ 101 P_code = error_table_$noalloc; 102 go to RETURN_FROM_ALLOCATE_MPX; 103 end; 104 105 allocate hasp_mpx_meters_data in (the_area) set (hmmd_ptr); 106 hasp_mpx_meters_data.version = HASP_MPX_METERS_DATA_VERSION_1; 107 108 P_meters_ptr = hmmd_ptr; 109 110 RETURN_FROM_ALLOCATE_MPX: 111 return; 112 113 114 115 /* Free the above structure */ 116 117 free_mpx: 118 entry (P_meters_ptr, P_code); 119 120 free P_meters_ptr -> hasp_mpx_meters_data; 121 122 P_meters_ptr = null (); /* be nice */ 123 P_code = 0; /* always works */ 124 125 return; 126 127 /* */ 128 129 /* Allocate the metering structure for a HASP multiplexer channel */ 130 131 allocate_subchan: 132 entry (P_area_ptr, P_meters_ptr, P_code); 133 134 the_area_ptr = P_area_ptr; 135 P_code = 0; /* assume success */ 136 137 on condition (area) 138 begin; /* in case there's no room in the area */ 139 P_code = error_table_$noalloc; 140 go to RETURN_FROM_ALLOCATE_SUBCHAN; 141 end; 142 143 allocate hasp_subchannel_meters_data in (the_area) set (hsmd_ptr); 144 hasp_subchannel_meters_data.version = HASP_SUBCHANNEL_METERS_DATA_VERSION_1; 145 146 P_meters_ptr = hsmd_ptr; 147 148 RETURN_FROM_ALLOCATE_SUBCHAN: 149 return; 150 151 152 153 /* Free the above structure */ 154 155 free_subchan: 156 entry (P_meters_ptr, P_code); 157 158 free P_meters_ptr -> hasp_subchannel_meters_data; 159 160 P_meters_ptr = null (); /* be nice */ 161 P_code = 0; /* always works */ 162 163 return; 164 165 /* */ 166 167 /* Display the meters accumulated for a HASP multiplexer channel */ 168 169 display_mpx: 170 entry (P_channel_name, P_iocb_ptr, P_channel_meters_ptr, P_flags, P_code); 171 172 if P_iocb_ptr ^= null () then /* check for default */ 173 output_switch = P_iocb_ptr; 174 else output_switch = iox_$user_output; 175 176 chan_meterp = P_channel_meters_ptr; 177 metering_flags = P_flags; 178 179 P_code = 0; /* always succeeds */ 180 181 if metering_flags & DISPLAY_MPX_SUMMARY then /* not handled here: let caller do it */ 182 return; 183 184 if metering_flags & DISPLAY_MPX_BRIEF then /* no brief meters for this multiplexer yet */ 185 return; 186 187 errors_only = ((metering_flags & DISPLAY_MPX_ERROR) = DISPLAY_MPX_ERROR); 188 189 since_bootload = ((metering_flags & DISPLAY_MPX_SINCE_BOOT) = DISPLAY_MPX_SINCE_BOOT); 190 191 call get_multiplexer_meters (); 192 193 194 if parent_is_fnp & ^errors_only then /* make an estimate of how much the line is idling ... */ 195 call ioa_$ioa_switch (output_switch, "Idle time^21t^a%", 196 meter_format_$quotient ((100 * ONE_SECOND * mpx.idle_interval * mpx.idle_counter), 197 mpx.metering_time, "^6.2f")); 198 199 call ioa_$ioa_switch (output_switch, "^34tInput^52tOutput"); 200 201 if parent_is_fnp then do; /* can report about NAKs and timeouts */ 202 call ioa_$ioa_switch (output_switch, "Blocks NAKed^28t^a^8x^a", meter_format_$picture (mpx.input_naks, 11), 203 meter_format_$picture (mpx.output_naks, 11)); 204 call ioa_$ioa_switch (output_switch, "Transmission timeouts^28t^a^8x^a", 205 meter_format_$picture (mpx.input_timeouts, 11), 206 meter_format_$picture (mpx.output_timeouts, 11)); 207 if ^errors_only then /* tell user about DIA being busy ... */ 208 call ioa_$ioa_switch (output_switch, "NAKs for DIA backlog^28t^a^55tN/A", 209 meter_format_$picture (mpx.dia_busy_counter, 11)); 210 end; 211 212 213 if ^errors_only then do; /* remaining meters are all non-error meters */ 214 215 call ioa_$ioa_switch (output_switch, "All transmission suspended^28t^a^8x^a", 216 meter_format_$picture (mpx.n_local_wab_set, 11), 217 meter_format_$picture (mpx.n_foreign_wab_set, 11)); 218 call ioa_$ioa_switch (output_switch, "Blocks transmitted^28t^a^8x^a", 219 meter_format_$picture (mpx.n_input_blocks, 11), 220 meter_format_$picture (mpx.n_output_blocks, 11)); 221 call ioa_$ioa_switch (output_switch, "Records transmitted^28t^a^8x^a", 222 meter_format_$picture (mpx.n_input_records, 11), 223 meter_format_$picture (mpx.n_output_records, 11)); 224 call ioa_$ioa_switch (output_switch, "^3xAverage records per block^31t^a^8x^a", 225 meter_format_$quotient ((mpx.n_input_records), (mpx.n_input_blocks), "^11.2f"), 226 meter_format_$quotient ((mpx.n_output_records), (mpx.n_output_blocks), "^11.2f")); 227 228 call ioa_$ioa_switch (output_switch, ""); 229 230 call ioa_$ioa_switch (output_switch, "Duplicate input blocks^28t^a", 231 meter_format_$picture (mpx.n_duplicate_input_blocks, 11)); 232 233 call ioa_$ioa_switch (output_switch, "Output reprocessing^28t^a", 234 meter_format_$picture (mpx.n_wraparounds, 11)); 235 call ioa_$ioa_switch (output_switch, "^3xBlocks reprocessed^28t^a", 236 meter_format_$picture (mpx.n_wraparound_blocks, 11)); 237 end; 238 239 return; 240 241 /* */ 242 243 /* Provide the values for a HASP multiplxer channel used by channel_comm_meters -summary */ 244 245 mpx_summary: 246 entry (P_channel_meters_ptr, P_since_bootload, P_summary_ptr, P_code); 247 248 chan_meterp = P_channel_meters_ptr; 249 since_bootload = P_since_bootload; 250 summary_ptr = P_summary_ptr; 251 252 P_code = 0; /* always succeeds */ 253 254 call get_multiplexer_meters (); 255 256 if parent_is_fnp then /* all errors are detected by the FNP */ 257 channel_summary.error_count = mpx.input_naks + mpx.output_naks + mpx.input_timeouts + mpx.output_timeouts; 258 else channel_summary.error_count = 0; 259 260 return; 261 262 /* */ 263 264 /* Display the meters accumulated for a HASP multiplexer sub-channel */ 265 266 display_subchan: 267 entry (P_channel_name, P_iocb_ptr, P_channel_meters_ptr, P_flags, P_code); 268 if P_iocb_ptr ^= null () then /* check for default */ 269 output_switch = P_iocb_ptr; 270 else output_switch = iox_$user_output; 271 272 chan_meterp = P_channel_meters_ptr; 273 metering_flags = P_flags; 274 275 P_code = 0; /* always succeeds */ 276 277 if metering_flags & DISPLAY_MPX_SUMMARY then /* not handled here: let caller do it */ 278 return; 279 280 if metering_flags & DISPLAY_MPX_BRIEF then /* no brief meters for this multiplexer yet */ 281 return; 282 283 if metering_flags & DISPLAY_MPX_ERROR then /* no error data at the sub-channel level */ 284 return; 285 286 since_bootload = ((metering_flags & DISPLAY_MPX_SINCE_BOOT) = DISPLAY_MPX_SINCE_BOOT); 287 288 call get_subchannel_meters (); 289 290 call ioa_$ioa_switch (output_switch, "^/^34tInput^52tOutput"); 291 292 call ioa_$ioa_switch (output_switch, "Transmission suspended^28t^[^a^;^36tN/A^s^]^8x^[^a^;^55tN/A^s^]", 293 subchannel.input, meter_format_$picture (subchannel.device_n_local_wab_set, 11), 294 subchannel.output, meter_format_$picture (subchannel.device_n_foreign_wab_set, 11)); 295 296 call ioa_$ioa_switch (output_switch, "Files transmitted^28t^[^a^;^36tN/A^s^]^8x^[^a^;^55tN/A^s^]", 297 subchannel.input, meter_format_$picture (subchannel.device_n_input_eof_records, 11), 298 subchannel.output, meter_format_$picture (subchannel.device_n_output_eof_records, 11)); 299 300 call ioa_$ioa_switch (output_switch, "Records transmitted^28t^[^a^;^36tN/A^s^]^8x^[^a^;^55tN/A^s^]", 301 subchannel.input, meter_format_$picture (subchannel.device_n_input_records, 11), 302 subchannel.output, meter_format_$picture (subchannel.device_n_output_records, 11)); 303 304 call ioa_$ioa_switch (output_switch, "^3xAverage records per file^31t^[^a^;^36tN/A^3x^s^]^8x^[^a^;^55tN/A^s^]", 305 subchannel.input, meter_format_$quotient ((subchannel.device_n_input_records), 306 max (1, subchannel.device_n_input_eof_records), 307 "^11.2f"), 308 subchannel.output, meter_format_$quotient ((subchannel.device_n_output_records), 309 max (1, subchannel.device_n_output_eof_records), 310 "^11.2f")); 311 312 return; 313 314 /* */ 315 316 /* Provide the values for a HASP multiplxer sub-channel used by channel_comm_meters -summary */ 317 318 subchan_summary: 319 entry (P_channel_meters_ptr, P_since_bootload, P_summary_ptr, P_code); 320 321 summary_ptr = P_summary_ptr; 322 323 channel_summary.error_count = 0; /* no errors occur at the sub-channel level */ 324 325 P_code = 0; /* always succeeds */ 326 327 return; 328 329 /* */ 330 331 /* Extract the meters for the multiplexer channel */ 332 333 get_multiplexer_meters: 334 procedure (); 335 336 dcl 1 total_fnp_meters aligned like mpx.fnp_meters; 337 dcl 1 saved_fnp_meters aligned like mpx.fnp_meters; 338 339 dcl 1 real_total_fnp_meters aligned based (addr (fnp_chan_meter_struc.current_meters)) like fnp_sync_meters; 340 dcl 1 real_saved_fnp_meters aligned based (addr (fnp_chan_meter_struc.saved_meters)) like fnp_sync_meters; 341 342 hmmd_ptr = channel_meters.mpx_specific_meterp; 343 344 if (channel_meters.parent_type = MCS_MPX) 345 then do; /* a real HASP channel */ 346 parent_is_fnp = "1"b; 347 fnp_chan_meterp = channel_meters.parent_meterp; 348 total_fnp_meters.input_naks = real_total_fnp_meters.counters (1); 349 total_fnp_meters.input_timeouts = real_total_fnp_meters.counters (3); 350 total_fnp_meters.output_naks = real_total_fnp_meters.counters (2); 351 total_fnp_meters.output_timeouts = real_total_fnp_meters.counters (4); 352 total_fnp_meters.idle_counter = real_total_fnp_meters.counters (5); 353 total_fnp_meters.dia_busy_counter = real_total_fnp_meters.counters (6); 354 saved_fnp_meters.input_naks = real_saved_fnp_meters.counters (1); 355 saved_fnp_meters.input_timeouts = real_saved_fnp_meters.counters (3); 356 saved_fnp_meters.output_naks = real_saved_fnp_meters.counters (2); 357 saved_fnp_meters.output_timeouts = real_saved_fnp_meters.counters (4); 358 saved_fnp_meters.idle_counter = real_saved_fnp_meters.counters (5); 359 saved_fnp_meters.dia_busy_counter = real_saved_fnp_meters.counters (6); 360 end; 361 else do; 362 parent_is_fnp = "0"b; 363 total_fnp_meters, saved_fnp_meters = 0; 364 end; 365 366 mpx.idle_interval = hasp_mpx_meters_data.idle_interval; 367 368 if hasp_mpx_meters_data.time_meters_copied = 0 then /* kludge: I'm not sure when copies happen */ 369 hasp_mpx_meters_data.time_meters_copied = hasp_mpx_meters_data.time_mpx_booted; 370 371 if since_bootload 372 then do; /* report data since the multiplexer came up */ 373 mpx.metering_time = clock () - hasp_mpx_meters_data.time_mpx_booted; 374 mpx.fnp_meters = total_fnp_meters; 375 mpx.meters = hasp_mpx_meters_data.current_meters; 376 end; 377 378 else do; /* since last dialup */ 379 mpx.metering_time = clock () - hasp_mpx_meters_data.time_meters_copied; 380 mpx.fnp_meters = total_fnp_meters - saved_fnp_meters; 381 mpx.meters = hasp_mpx_meters_data.current_meters - hasp_mpx_meters_data.saved_meters; 382 end; 383 384 return; 385 386 end get_multiplexer_meters; 387 388 /* */ 389 390 /* Extract the meters for a sub-channel of the multiplexer */ 391 392 get_subchannel_meters: 393 procedure (); 394 395 hsmd_ptr = channel_meters.parent_meterp; 396 397 subchannel.input = hasp_subchannel_meters_data.report_input_meters; 398 subchannel.output = hasp_subchannel_meters_data.report_output_meters; 399 400 if since_bootload then /* since the multiplexer came up, please */ 401 subchannel.meters = hasp_subchannel_meters_data.current_meters; 402 else subchannel.meters = hasp_subchannel_meters_data.current_meters - hasp_subchannel_meters_data.saved_meters; 403 404 return; 405 406 end get_subchannel_meters; 407 408 /* */ 409 1 1 /* BEGIN INCLUDE FILE...channel_meters.incl.pl1 */ 1 2 1 3 /* Include file to define meters reported by comm_meters_ for all channels */ 1 4 1 5 /* Created February 1981 by Robert Coren */ 1 6 1 7 dcl chan_meterp pointer; 1 8 1 9 dcl CHANNEL_METERS_VERSION_1 fixed bin int static options (constant) init (1); 1 10 1 11 dcl 1 channel_meters aligned based (chan_meterp), 1 12 2 version fixed bin, 1 13 2 multiplexer_type fixed bin, /* of this channel */ 1 14 2 parent_type fixed bin, /* multiplexer type of parent (or -1 if this is level 1 */ 1 15 2 line_type fixed bin, /* line type of this channel */ 1 16 2 flags, 1 17 3 reserved bit (36) unaligned, 1 18 2 pad1 fixed bin, 1 19 2 channel_name char (32), 1 20 2 mpx_specific_meterp pointer, /* pointer to meters for this channel's multiplexer type */ 1 21 2 parent_meterp pointer, /* pointer to meters kept for channel by its parent */ 1 22 2 next_channelp pointer, /* pointer to structure for next channel in list */ 1 23 2 cumulative, /* meters accumulated since last load of parent */ 1 24 3 unconverted_input_chars fixed bin (35), /* characters input (before conversion) */ 1 25 3 converted_output_chars fixed bin (35), /* characters output (after conversion) */ 1 26 3 read_calls fixed bin, /* calls to channel_manager$read */ 1 27 3 write_calls fixed bin, /* calls to channel_manager$write */ 1 28 3 control_calls fixed bin, /* calls to channel_manager$control */ 1 29 3 software_interrupts fixed bin, /* calls to channel$manager$interrupt on behalf of this channel */ 1 30 3 read_call_time fixed bin (71), /* time accumulated in channel_manager$read */ 1 31 3 write_call_time fixed bin (71), /* time accumulated in channel_manager$write */ 1 32 3 control_call_time fixed bin (71), /* time accumulated in channel_manager$control */ 1 33 3 interrupt_time fixed bin (71), /* time spent handling software interrupts */ 1 34 3 pad (4) fixed bin, 1 35 2 saved like channel_meters.cumulative; /* meters saved when channel last dialed up */ 1 36 1 37 /* END INCLUDE FILE...channel_meters.incl.pl1 */ 410 411 2 1 /* BEGIN INCLUDE FILE ... comm_meters_disp_flags.incl.pl1 */ 2 2 2 3 2 4 /* This include file defines named values for the bits in the flags argument passed 2 5* to the various MPX_meters_$display entries. 2 6**/ 2 7 2 8 /* Created April 1981 by Robert Coren */ 2 9 2 10 dcl DISPLAY_MPX_BRIEF bit (36) internal static options (constant) init ("1"b); 2 11 dcl DISPLAY_MPX_ERROR bit (36) internal static options (constant) init ("01"b); 2 12 dcl DISPLAY_MPX_SUMMARY bit (36) internal static options (constant) init ("001"b); 2 13 dcl DISPLAY_MPX_SINCE_BOOT bit (36) internal static options (constant) init ("0001"b); 2 14 2 15 /* END INCLUDE FILE ... comm_meters_disp_flags.incl.pl1 */ 412 413 3 1 /* Begin include file ..... multiplexer_types.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 3 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 3 8* Add support of protocol mpx. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 /* This include file defines known multiplexer types */ 3 13 /* Prepared August 1978 by Larry Johnson */ 3 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 3 15 3 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 3 17 MCS_MPX init (1), /* FNP running MCS */ 3 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 3 19 USER2_MPX init (3), 3 20 USER3_MPX init (4), 3 21 USER4_MPX init (5), 3 22 USER5_MPX init (6), 3 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 3 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 3 25 STY_MPX init (9), /* Software Terminal Facility */ 3 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 3 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 3 28 HASP_MPX init (12), /* HASP RJE protocol */ 3 29 UNCP_MPX init (13), /* DSA protocol */ 3 30 SYSTEM2_MPX init (14), 3 31 SYSTEM1_MPX init (15), 3 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 3 33 int static options (constant); 3 34 3 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 3 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 3 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 3 38 "protocol"); 3 39 3 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 3 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 3 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 3 43 3 44 /* End include file ..... multiplexer_types.incl.pl1 */ 414 415 4 1 /* BEGIN INCLUDE FILE ... hasp_mpx_meters.incl.pl1 */ 4 2 /* Created: 24 July 1981 by G. Palter */ 4 3 4 4 /* Data returned by comm_meters_ for a HASP multiplexer channel */ 4 5 4 6 dcl 1 hasp_mpx_meters_data aligned based (hmmd_ptr), 4 7 2 version fixed binary, 4 8 2 time_mpx_booted fixed binary (71), /* time when multiplexer actually loaded */ 4 9 2 time_meters_copied fixed binary (71), /* time meters last copied */ 4 10 2 idle_interval fixed binary, /* # of seconds to go once around the idle loop */ 4 11 2 current_meters like hasp_mpx_meters, 4 12 2 saved_meters like hasp_mpx_meters; 4 13 4 14 dcl hmmd_ptr pointer; 4 15 4 16 dcl HASP_MPX_METERS_DATA_VERSION_1 fixed binary static options (constant) initial (1); 4 17 4 18 4 19 /* Meters accumulated for a HASP multiplexer channel */ 4 20 4 21 dcl 1 hasp_mpx_meters aligned based (hmm_ptr), 4 22 2 input_meters, 4 23 3 n_local_wab_set fixed binary (35), /* # times we stopped accepting ALL input */ 4 24 3 n_input_blocks fixed binary (35), 4 25 3 n_input_records fixed binary (35), 4 26 3 n_duplicate_input_blocks fixed binary (35), /* # of input blocks ignored as duplicates */ 4 27 2 output_meters, 4 28 3 n_foreign_wab_set fixed binary (35), /* # times they stopped ALL our output */ 4 29 3 n_output_blocks fixed binary (35), 4 30 3 n_output_records fixed binary (35), 4 31 2 wraparound_meters, /* describes when our output was returned by FNP */ 4 32 3 n_wraparounds fixed binary (35), 4 33 3 n_wraparound_blocks fixed binary (35); 4 34 4 35 dcl hmm_ptr pointer; 4 36 4 37 /* END INCLUDE FILE ... hasp_mpx_meters.incl.pl1 */ 416 417 5 1 /* BEGIN INCLUDE FILE ... hasp_subchannel_meters.incl.pl1 */ 5 2 /* Created: 24 July 1981 by G. Palter */ 5 3 5 4 /* Data returned by comm_meters_ for a subchannel of a HASP multiplexer channel */ 5 5 5 6 dcl 1 hasp_subchannel_meters_data aligned based (hsmd_ptr), 5 7 2 version fixed binary, 5 8 2 flags, 5 9 3 report_input_meters bit (1) unaligned, /* ON => report input meters for this subchannel */ 5 10 3 report_output_meters bit (1) unaligned, /* ON => report output meters for this subchannel */ 5 11 3 pad bit (34) unaligned, 5 12 2 current_meters like hasp_subchannel_meters, 5 13 2 saved_meters like hasp_subchannel_meters; 5 14 5 15 dcl hsmd_ptr pointer; 5 16 5 17 dcl HASP_SUBCHANNEL_METERS_DATA_VERSION_1 fixed binary static options (constant) initial (1); 5 18 5 19 5 20 /* Meters accumulated for a subchannel of a HASP multiplexer channel */ 5 21 5 22 dcl 1 hasp_subchannel_meters aligned based (hsm_ptr), 5 23 2 input_meters, 5 24 3 device_n_local_wab_set fixed binary (35), /* # of times we had to stop accepting input */ 5 25 3 device_n_input_records fixed binary (35), 5 26 3 device_n_input_eof_records fixed binary (35), 5 27 2 output_meters, 5 28 3 device_n_foreign_wab_set fixed binary (35), /* # of times local system stopped our output */ 5 29 3 device_n_output_records fixed binary (35), 5 30 3 device_n_output_eof_records fixed binary (35); 5 31 5 32 dcl hsm_ptr pointer; 5 33 5 34 /* END INCLUDE FILE ... hasp_subchannel_meters.incl.pl1 */ 418 419 6 1 /* BEGIN INCLUDE FILE...fnp_channel_meters.incl.pl1 */ 6 2 6 3 /* This include file defines meters returned for subchannels of an FNP. */ 6 4 6 5 /* Created February 1981 by Robert Coren from fnp_meters.incl.pl1. */ 6 6 6 7 dcl fnp_chan_meterp pointer; 6 8 dcl FNP_CHANNEL_METERS_VERSION_1 fixed bin int static options (constant) init (1); 6 9 6 10 dcl 1 fnp_chan_meter_struc based (fnp_chan_meterp) aligned, 6 11 2 version fixed bin, 6 12 2 flags, 6 13 3 synchronous bit (1) unaligned, 6 14 3 reserved bit (35) unaligned, 6 15 2 current_meters like fnp_channel_meters, 6 16 2 saved_meters like fnp_channel_meters; 6 17 6 18 dcl 1 fnp_channel_meters based aligned, 6 19 2 header, 6 20 3 dia_request_q_len fixed bin (35), /* cumulative */ 6 21 3 dia_rql_updates fixed bin (35), /* updates to above */ 6 22 3 pending_status fixed bin (35), /* cumulative */ 6 23 3 pending_status_updates fixed bin (35), /* updates to above */ 6 24 3 output_overlaps fixed bin (18) unsigned unaligned, /* output chained to already-existing chain */ 6 25 3 parity_errors fixed bin (18) unsigned unaligned, /* parity on the channel */ 6 26 3 software_status_overflows fixed bin (18) unsigned unaligned, 6 27 3 hardware_status_overflows fixed bin (18) unsigned unaligned, 6 28 3 input_alloc_failures fixed bin (18) unsigned unaligned, 6 29 3 dia_current_q_len fixed bin (18) unsigned unaligned, /* current length of dia request queue */ 6 30 3 exhaust fixed bin (35), 6 31 3 software_xte fixed bin (18) unsigned unaligned, 6 32 3 pad bit (18) unaligned, 6 33 2 sync_or_async (17) fixed bin; /* placeholder for meters for sync or async channels */ 6 34 6 35 dcl 1 fnp_sync_meters based aligned, 6 36 2 header like fnp_channel_meters.header, 6 37 2 input, 6 38 3 message_count fixed bin (35), /* total number of messages */ 6 39 3 cum_length fixed bin (35), /* total cumulative length in characters */ 6 40 3 min_length fixed bin (18) unsigned unaligned, /* length of shortest message */ 6 41 3 max_length fixed bin (18) unsigned unaligned, /* length of longest message */ 6 42 2 output like fnp_sync_meters.input, 6 43 2 counters (8) fixed bin (35), 6 44 2 pad (3) fixed bin; 6 45 6 46 dcl 1 fnp_async_meters based aligned, 6 47 2 header like fnp_channel_meters.header, 6 48 2 pre_exhaust fixed bin (35), 6 49 2 echo_buf_overflow fixed bin (35), /* number of times echo buffer has overflowed */ 6 50 2 bell_quits fixed bin (18) unsigned unaligned, 6 51 2 padb bit (18) unaligned, 6 52 2 pad (14) fixed bin; 6 53 6 54 /* END INCLUDE FILE...fnp_channel_meters.incl.pl1 */ 420 421 7 1 /* BEGIN INCLUDE FILE ... channel_summary.incl.pl1 */ 7 2 7 3 /* Include file describing structure filled in by mpx_summary and subchan_summary 7 4* entries of multiplexer-specific metering subroutines for use by comm_channel_meters -summary 7 5**/ 7 6 7 7 /* Created April 1981 by Robert Coren */ 7 8 7 9 dcl summary_ptr ptr; 7 10 dcl CHANNEL_SUMMARY_VERSION_1 fixed bin internal static options (constant) init (1); 7 11 7 12 dcl 1 channel_summary based (summary_ptr) aligned, 7 13 2 version fixed bin, 7 14 2 baud_rate fixed bin, 7 15 2 time_since_dial fixed bin (71), 7 16 2 flags, 7 17 3 invalid_input bit (1) unal, 7 18 3 output_re_xmit bit (1) unal, 7 19 3 timeout bit (1) unal, 7 20 3 pre_exhaust bit (1) unal, 7 21 3 exhaust bit (1) unal, 7 22 3 xte bit (1) unal, 7 23 3 bell_quit bit (1) unal, 7 24 3 echo_overflow bit (1) unal, 7 25 3 parity bit (1) unal, 7 26 3 ssqo bit (1) unal, 7 27 3 hsqo bit (1) unal, 7 28 3 alloc_failure bit (1) unal, 7 29 3 synchronous bit (1) unal, 7 30 3 breakall bit (1) unal, 7 31 3 echoplex bit (1) unal, 7 32 3 padb bit (21) unal, 7 33 2 error_count fixed bin, 7 34 2 user_process bit (36); 7 35 7 36 /* END INCLUDE FILE ... channel_summary.incl.pl1 */ 422 423 424 end hasp_meters_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1005.1 hasp_meters_.pl1 >special_ldd>install>MR12.3-1100>hasp_meters_.pl1 410 1 06/19/81 2115.0 channel_meters.incl.pl1 >ldd>include>channel_meters.incl.pl1 412 2 06/19/81 2115.0 comm_meters_disp_flags.incl.pl1 >ldd>include>comm_meters_disp_flags.incl.pl1 414 3 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 416 4 03/27/82 0429.7 hasp_mpx_meters.incl.pl1 >ldd>include>hasp_mpx_meters.incl.pl1 418 5 03/27/82 0429.7 hasp_subchannel_meters.incl.pl1 >ldd>include>hasp_subchannel_meters.incl.pl1 420 6 08/10/81 1843.6 fnp_channel_meters.incl.pl1 >ldd>include>fnp_channel_meters.incl.pl1 422 7 06/19/81 2115.0 channel_summary.incl.pl1 >ldd>include>channel_summary.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. DISPLAY_MPX_BRIEF constant bit(36) initial packed unaligned dcl 2-10 ref 184 280 DISPLAY_MPX_ERROR constant bit(36) initial packed unaligned dcl 2-11 ref 187 187 283 DISPLAY_MPX_SINCE_BOOT constant bit(36) initial packed unaligned dcl 2-13 ref 189 189 286 286 DISPLAY_MPX_SUMMARY constant bit(36) initial packed unaligned dcl 2-12 ref 181 277 HASP_MPX_METERS_DATA_VERSION_1 constant fixed bin(17,0) initial dcl 4-16 ref 106 HASP_SUBCHANNEL_METERS_DATA_VERSION_1 constant fixed bin(17,0) initial dcl 5-17 ref 144 MCS_MPX constant fixed bin(17,0) initial dcl 3-16 ref 344 ONE_SECOND 000000 constant fixed bin(71,0) initial dcl 75 ref 194 P_area_ptr parameter pointer dcl 29 ref 93 96 131 134 P_channel_meters_ptr parameter pointer dcl 32 ref 169 176 245 248 266 272 318 P_channel_name parameter char packed unaligned dcl 31 ref 169 266 P_code parameter fixed bin(35,0) dcl 25 set ref 93 97* 101* 117 123* 131 135* 139* 155 161* 169 179* 245 252* 266 275* 318 325* P_flags parameter bit(36) dcl 35 ref 169 177 266 273 P_iocb_ptr parameter pointer dcl 34 ref 169 172 172 266 268 268 P_meters_ptr parameter pointer dcl 27 set ref 93 108* 117 120 122* 131 146* 155 158 160* P_since_bootload parameter bit(1) packed unaligned dcl 37 ref 245 249 318 P_summary_ptr parameter pointer dcl 38 ref 245 250 318 321 addr builtin function dcl 87 ref 348 349 350 351 352 353 354 355 356 357 358 359 area 000142 stack reference condition dcl 85 ref 99 137 chan_meterp 000150 automatic pointer dcl 1-7 set ref 176* 248* 272* 342 344 347 395 channel_meters based structure level 1 dcl 1-11 channel_summary based structure level 1 dcl 7-12 counters 17 based fixed bin(35,0) array level 2 in structure "real_total_fnp_meters" dcl 339 in procedure "get_multiplexer_meters" ref 348 349 350 351 352 353 counters 17 based fixed bin(35,0) array level 2 in structure "real_saved_fnp_meters" dcl 340 in procedure "get_multiplexer_meters" ref 354 355 356 357 358 359 cumulative 24 based structure level 2 dcl 1-11 current_meters 2 based structure level 2 in structure "fnp_chan_meter_struc" dcl 6-10 in procedure "hasp_meters_" set ref 348 349 350 351 352 353 current_meters 7 based structure level 2 in structure "hasp_mpx_meters_data" dcl 4-6 in procedure "hasp_meters_" ref 375 381 current_meters 2 based structure level 2 in structure "hasp_subchannel_meters_data" dcl 5-6 in procedure "hasp_meters_" ref 400 402 device_n_foreign_wab_set 5 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 292* device_n_input_eof_records 4 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 296* 304 304 device_n_input_records 3 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 300* 304 device_n_local_wab_set 2 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 292* device_n_output_eof_records 7 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 296* 304 304 device_n_output_records 6 000130 automatic fixed bin(35,0) level 4 dcl 67 set ref 300* 304 dia_busy_counter 5 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 353* dia_busy_counter 5 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 359* dia_busy_counter 10 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 207* error_count 5 based fixed bin(17,0) level 2 dcl 7-12 set ref 256* 258* 323* error_table_$noalloc 000010 external static fixed bin(35,0) dcl 77 ref 101 139 errors_only 000141 automatic bit(1) dcl 73 set ref 187* 194 207 213 flags 1 based structure level 2 dcl 5-6 fnp_chan_meter_struc based structure level 1 dcl 6-10 fnp_chan_meterp 000156 automatic pointer dcl 6-7 set ref 347* 348 349 350 351 352 353 354 355 356 357 358 359 fnp_channel_meters based structure level 1 dcl 6-18 fnp_meters 3 000106 automatic structure level 2 dcl 55 set ref 374* 380* fnp_sync_meters based structure level 1 dcl 6-35 hasp_mpx_meters based structure level 1 dcl 4-21 hasp_mpx_meters_data based structure level 1 dcl 4-6 set ref 105 120 hasp_subchannel_meters based structure level 1 dcl 5-22 hasp_subchannel_meters_data based structure level 1 dcl 5-6 set ref 143 158 header 34 based structure level 3 in structure "fnp_chan_meter_struc" dcl 6-10 in procedure "hasp_meters_" header 2 based structure level 3 in structure "fnp_chan_meter_struc" dcl 6-10 in procedure "hasp_meters_" header based structure level 2 in structure "fnp_channel_meters" dcl 6-18 in procedure "hasp_meters_" hmmd_ptr 000152 automatic pointer dcl 4-14 set ref 105* 106 108 342* 366 368 368 368 373 375 379 381 381 hsmd_ptr 000154 automatic pointer dcl 5-15 set ref 143* 144 146 395* 397 398 400 402 402 idle_counter 4 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 352* idle_counter 7 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 194 idle_counter 4 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 358* idle_interval 6 based fixed bin(17,0) level 2 in structure "hasp_mpx_meters_data" dcl 4-6 in procedure "hasp_meters_" ref 366 idle_interval 2 000106 automatic fixed bin(17,0) level 2 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 194 366* input 11 based structure level 2 in structure "real_saved_fnp_meters" dcl 340 in procedure "get_multiplexer_meters" input 11 based structure level 2 in structure "real_total_fnp_meters" dcl 339 in procedure "get_multiplexer_meters" input 000130 automatic bit(1) level 2 in structure "subchannel" dcl 67 in procedure "hasp_meters_" set ref 292* 296* 300* 304* 397* input 11 based structure level 2 in structure "fnp_sync_meters" dcl 6-35 in procedure "hasp_meters_" input_meters 2 000130 automatic structure level 3 in structure "subchannel" dcl 67 in procedure "hasp_meters_" input_meters 11 000106 automatic structure level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" input_naks 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 348* input_naks 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 354* input_naks 3 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 202* 256 input_timeouts 2 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 349* input_timeouts 2 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 355* input_timeouts 5 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 204* 256 ioa_$ioa_switch 000014 constant entry external dcl 81 ref 194 199 202 204 207 215 218 221 224 228 230 233 235 290 292 296 300 304 iox_$user_output 000012 external static pointer dcl 79 ref 174 270 max builtin function dcl 87 ref 304 304 304 304 meter_format_$picture 000016 constant entry external dcl 82 ref 202 202 204 204 207 215 215 218 218 221 221 230 233 235 292 292 296 296 300 300 meter_format_$quotient 000020 constant entry external dcl 83 ref 194 224 224 304 304 metering_flags 000104 automatic bit(36) dcl 48 set ref 177* 181 184 187 189 273* 277 280 283 286 metering_time 000106 automatic fixed bin(71,0) level 2 dcl 55 set ref 194* 373* 379* meters 2 000130 automatic structure level 2 in structure "subchannel" dcl 67 in procedure "hasp_meters_" set ref 400* 402* meters 11 000106 automatic structure level 2 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 375* 381* mpx 000106 automatic structure level 1 dcl 55 mpx_specific_meterp 16 based pointer level 2 dcl 1-11 ref 342 n_duplicate_input_blocks 14 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 230* n_foreign_wab_set 15 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 215* n_input_blocks 12 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 218* 224 n_input_records 13 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 221* 224 n_local_wab_set 11 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 215* n_output_blocks 16 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 218* 224 n_output_records 17 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 221* 224 n_wraparound_blocks 21 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 235* n_wraparounds 20 000106 automatic fixed bin(35,0) level 4 dcl 55 set ref 233* null builtin function dcl 87 ref 122 160 172 268 output 1 000130 automatic bit(1) level 2 dcl 67 set ref 292* 296* 300* 304* 398* output_meters 15 000106 automatic structure level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" output_meters 5 000130 automatic structure level 3 in structure "subchannel" dcl 67 in procedure "hasp_meters_" output_naks 1 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 350* output_naks 1 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 356* output_naks 4 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 202* 256 output_switch 000102 automatic pointer dcl 46 set ref 172* 174* 194* 199* 202* 204* 207* 215* 218* 221* 224* 228* 230* 233* 235* 268* 270* 290* 292* 296* 300* 304* output_timeouts 6 000106 automatic fixed bin(35,0) level 3 in structure "mpx" dcl 55 in procedure "hasp_meters_" set ref 204* 256 output_timeouts 3 000176 automatic fixed bin(35,0) level 2 in structure "total_fnp_meters" dcl 336 in procedure "get_multiplexer_meters" set ref 351* output_timeouts 3 000204 automatic fixed bin(35,0) level 2 in structure "saved_fnp_meters" dcl 337 in procedure "get_multiplexer_meters" set ref 357* parent_is_fnp 000140 automatic bit(1) dcl 72 set ref 194 201 256 346* 362* parent_meterp 20 based pointer level 2 dcl 1-11 ref 347 395 parent_type 2 based fixed bin(17,0) level 2 dcl 1-11 ref 344 real_saved_fnp_meters based structure level 1 dcl 340 real_total_fnp_meters based structure level 1 dcl 339 report_input_meters 1 based bit(1) level 3 packed packed unaligned dcl 5-6 ref 397 report_output_meters 1(01) based bit(1) level 3 packed packed unaligned dcl 5-6 ref 398 saved_fnp_meters 000204 automatic structure level 1 dcl 337 set ref 363* 380 saved_meters 10 based structure level 2 in structure "hasp_subchannel_meters_data" dcl 5-6 in procedure "hasp_meters_" ref 402 saved_meters 20 based structure level 2 in structure "hasp_mpx_meters_data" dcl 4-6 in procedure "hasp_meters_" ref 381 saved_meters 34 based structure level 2 in structure "fnp_chan_meter_struc" dcl 6-10 in procedure "hasp_meters_" set ref 354 355 356 357 358 359 since_bootload 000105 automatic bit(1) dcl 50 set ref 189* 249* 286* 371 400 subchannel 000130 automatic structure level 1 dcl 67 summary_ptr 000160 automatic pointer dcl 7-9 set ref 250* 256 258 321* 323 the_area based area(1024) dcl 43 ref 105 143 the_area_ptr 000100 automatic pointer dcl 44 set ref 96* 105 134* 143 time_meters_copied 4 based fixed bin(71,0) level 2 dcl 4-6 set ref 368 368* 379 time_mpx_booted 2 based fixed bin(71,0) level 2 dcl 4-6 ref 368 373 total_fnp_meters 000176 automatic structure level 1 dcl 336 set ref 363* 374 380 version based fixed bin(17,0) level 2 in structure "hasp_mpx_meters_data" dcl 4-6 in procedure "hasp_meters_" set ref 106* version based fixed bin(17,0) level 2 in structure "hasp_subchannel_meters_data" dcl 5-6 in procedure "hasp_meters_" set ref 144* wraparound_meters 20 000106 automatic structure level 3 dcl 55 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CHANNEL_METERS_VERSION_1 internal static fixed bin(17,0) initial dcl 1-9 CHANNEL_SUMMARY_VERSION_1 internal static fixed bin(17,0) initial dcl 7-10 FNP_CHANNEL_METERS_VERSION_1 internal static fixed bin(17,0) initial dcl 6-8 HASP_MPX internal static fixed bin(17,0) initial dcl 3-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 3-16 LAP_MPX internal static fixed bin(17,0) initial dcl 3-16 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 3-16 STY_MPX internal static fixed bin(17,0) initial dcl 3-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 3-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 3-16 TTY_MPX internal static fixed bin(17,0) initial dcl 3-16 UNCP_MPX internal static fixed bin(17,0) initial dcl 3-16 USER1_MPX internal static fixed bin(17,0) initial dcl 3-16 USER2_MPX internal static fixed bin(17,0) initial dcl 3-16 USER3_MPX internal static fixed bin(17,0) initial dcl 3-16 USER4_MPX internal static fixed bin(17,0) initial dcl 3-16 USER5_MPX internal static fixed bin(17,0) initial dcl 3-16 VIP7760_MPX internal static fixed bin(17,0) initial dcl 3-16 X25_MPX internal static fixed bin(17,0) initial dcl 3-16 fnp_async_meters based structure level 1 dcl 6-46 hmm_ptr automatic pointer dcl 4-35 hsm_ptr automatic pointer dcl 5-32 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 3-40 mpx_types internal static char(32) initial array packed unaligned dcl 3-35 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN_FROM_ALLOCATE_MPX 000371 constant label dcl 110 ref 102 RETURN_FROM_ALLOCATE_SUBCHAN 000471 constant label dcl 148 ref 140 allocate_mpx 000320 constant entry external dcl 93 allocate_subchan 000420 constant entry external dcl 131 display_mpx 000521 constant entry external dcl 169 display_subchan 001730 constant entry external dcl 266 free_mpx 000376 constant entry external dcl 117 free_subchan 000474 constant entry external dcl 155 get_multiplexer_meters 002460 constant entry internal dcl 333 ref 191 254 get_subchannel_meters 002724 constant entry internal dcl 392 ref 288 hasp_meters_ 000306 constant entry external dcl 17 mpx_summary 001661 constant entry external dcl 245 subchan_summary 002437 constant entry external dcl 318 NAME DECLARED BY CONTEXT OR IMPLICATION. clock builtin function ref 373 379 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3210 3232 3012 3220 Length 3626 3012 22 360 175 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME hasp_meters_ 248 external procedure is an external procedure. on unit on line 99 64 on unit on unit on line 137 64 on unit get_multiplexer_meters internal procedure shares stack frame of external procedure hasp_meters_. get_subchannel_meters internal procedure shares stack frame of external procedure hasp_meters_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME hasp_meters_ 000100 the_area_ptr hasp_meters_ 000102 output_switch hasp_meters_ 000104 metering_flags hasp_meters_ 000105 since_bootload hasp_meters_ 000106 mpx hasp_meters_ 000130 subchannel hasp_meters_ 000140 parent_is_fnp hasp_meters_ 000141 errors_only hasp_meters_ 000150 chan_meterp hasp_meters_ 000152 hmmd_ptr hasp_meters_ 000154 hsmd_ptr hasp_meters_ 000156 fnp_chan_meterp hasp_meters_ 000160 summary_ptr hasp_meters_ 000176 total_fnp_meters get_multiplexer_meters 000204 saved_fnp_meters get_multiplexer_meters THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return_mac tra_ext_1 mpfx2 enable_op ext_entry ext_entry_desc int_entry op_alloc_ op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$ioa_switch meter_format_$picture meter_format_$quotient THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noalloc iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000305 20 000313 93 000314 96 000332 97 000336 99 000337 101 000353 102 000356 105 000361 106 000366 108 000370 110 000371 117 000372 120 000410 122 000412 123 000414 125 000415 131 000416 134 000432 135 000436 137 000437 139 000453 140 000456 143 000461 144 000466 146 000470 148 000471 155 000472 158 000506 160 000510 161 000512 163 000513 169 000514 172 000541 174 000552 176 000556 177 000561 179 000563 181 000564 184 000566 187 000570 189 000574 191 000601 194 000602 199 000675 201 000720 202 000722 204 001003 207 001064 213 001127 215 001131 218 001212 221 001273 224 001354 228 001473 230 001510 233 001551 235 001612 239 001653 245 001654 248 001673 249 001676 250 001704 252 001707 254 001710 256 001711 258 001723 260 001725 266 001726 268 001750 270 001761 272 001765 273 001770 275 001772 277 001773 280 001775 283 001777 286 002001 288 002005 290 002006 292 002026 296 002116 300 002206 304 002276 312 002434 318 002435 321 002451 323 002455 325 002456 327 002457 333 002460 342 002461 344 002464 346 002470 347 002472 348 002474 349 002476 350 002500 351 002502 352 002504 353 002506 354 002510 355 002512 356 002514 357 002516 358 002520 359 002522 360 002524 362 002525 363 002526 366 002542 368 002544 371 002550 373 002552 374 002556 375 002561 376 002564 379 002565 380 002571 381 002635 384 002723 392 002724 395 002725 397 002730 398 002733 400 002737 402 002745 404 003011 ----------------------------------------------------------- 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