COMPILATION LISTING OF SEGMENT channel_comm_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 1048.8 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,^ifthendo */ 12 channel_comm_meters: 13 procedure; 14 15 /* Command to print meters on one or more communications channels (specified by 16* a single starname). It calls comm_meters_ to get the information, and the 17* appropriate multiplexer-specific entries to display it. 18**/ 19 20 /* Written April 1981 by Robert Coren */ 21 /* Modified July 1981 by Robert Coren to handle sub_error_ */ 22 23 /* AUTOMATIC */ 24 25 dcl brief bit (1); 26 dcl error bit (1); 27 dcl summary bit (1); 28 dcl since_boot bit (1); 29 dcl boot_spec bit (1); 30 dcl dial_spec bit (1); 31 dcl chan_spec bit (1); 32 dcl i fixed bin; 33 dcl code fixed bin (35); 34 dcl ctl_arg char (16); 35 dcl nargs fixed bin; 36 dcl argl fixed bin (21); 37 dcl argp pointer; 38 dcl chan_star_name (1) char (32); /* comm_meters_ requires an array */ 39 dcl areap pointer; 40 dcl n_channels fixed bin; 41 dcl orig_meterp pointer; 42 dcl display_flags bit (36) aligned; 43 dcl beginning fixed bin (71); /* time from which meters are measured */ 44 dcl seconds fixed bin (71); 45 dcl all_time fixed bin (71); /* time since beginning */ 46 dcl time_string char (9); 47 dcl chanx fixed bin; 48 dcl name char (32); 49 dcl entry_var entry options (variable) variable; 50 dcl total_errors fixed bin; 51 dcl user_name char (22); 52 dcl user_proj char (9); 53 dcl input_chars fixed bin (35); 54 dcl output_chars fixed bin (35); 55 dcl cps fixed bin; 56 57 dcl 1 auto_summary aligned like channel_summary; 58 59 60 /* BASED */ 61 62 dcl arg char (argl) based (argp); 63 64 65 /* ENTRIES */ 66 67 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 68 dcl ioa_ entry () options (variable); 69 dcl com_err_ entry () options (variable); 70 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 71 dcl get_system_free_area_ entry () returns (ptr); 72 dcl get_userid_ entry (bit (36) aligned, char (*), char (*), fixed bin, fixed bin, fixed bin (35)); 73 dcl system_info_$timeup entry (fixed bin (71)); 74 dcl comm_meters_ entry ((*) char (32), fixed bin, pointer, fixed bin, pointer, fixed bin (35)); 75 dcl comm_meters_$free entry (pointer, pointer, fixed bin (35)); 76 dcl comm_meters_$get_mpx_entry entry (char (*), fixed bin) returns (entry); 77 dcl meter_format_$time entry (fixed bin (71)) returns (char (10)); 78 dcl meter_format_$quotient entry (fixed bin (71), fixed bin (71), char (*)) returns (char (12) varying); 79 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 80 dcl continue_to_signal_ entry (fixed bin (35)); 81 82 83 /* EXTERNAL STATIC */ 84 85 dcl ( 86 error_table_$noarg, 87 error_table_$badopt, 88 error_table_$inconsistent, 89 error_table_$bigarg, 90 error_table_$no_channel_meters, 91 error_table_$no_operation 92 ) fixed bin (35) external static; 93 94 95 /* INTERNAL STATIC */ 96 97 dcl CMD_NAME char (19) internal static options (constant) init ("channel_comm_meters"); 98 99 100 /* BUILTINS & CONDITIONS */ 101 102 dcl sub_error_ condition; 103 104 dcl (substr, divide, clock, null, addr, unspec) builtin; 105 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 */ 106 107 2 1 /* BEGIN INCLUDE FILE ... channel_summary.incl.pl1 */ 2 2 2 3 /* Include file describing structure filled in by mpx_summary and subchan_summary 2 4* entries of multiplexer-specific metering subroutines for use by comm_channel_meters -summary 2 5**/ 2 6 2 7 /* Created April 1981 by Robert Coren */ 2 8 2 9 dcl summary_ptr ptr; 2 10 dcl CHANNEL_SUMMARY_VERSION_1 fixed bin internal static options (constant) init (1); 2 11 2 12 dcl 1 channel_summary based (summary_ptr) aligned, 2 13 2 version fixed bin, 2 14 2 baud_rate fixed bin, 2 15 2 time_since_dial fixed bin (71), 2 16 2 flags, 2 17 3 invalid_input bit (1) unal, 2 18 3 output_re_xmit bit (1) unal, 2 19 3 timeout bit (1) unal, 2 20 3 pre_exhaust bit (1) unal, 2 21 3 exhaust bit (1) unal, 2 22 3 xte bit (1) unal, 2 23 3 bell_quit bit (1) unal, 2 24 3 echo_overflow bit (1) unal, 2 25 3 parity bit (1) unal, 2 26 3 ssqo bit (1) unal, 2 27 3 hsqo bit (1) unal, 2 28 3 alloc_failure bit (1) unal, 2 29 3 synchronous bit (1) unal, 2 30 3 breakall bit (1) unal, 2 31 3 echoplex bit (1) unal, 2 32 3 padb bit (21) unal, 2 33 2 error_count fixed bin, 2 34 2 user_process bit (36); 2 35 2 36 /* END INCLUDE FILE ... channel_summary.incl.pl1 */ 108 109 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 */ 110 111 4 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 4 2 4 3 /* Structure for find_condition_info_. 4 4* 4 5* Written 1-Mar-79 by M. N. Davidoff. 4 6**/ 4 7 4 8 /* automatic */ 4 9 4 10 declare condition_info_ptr pointer; 4 11 4 12 /* based */ 4 13 4 14 declare 1 condition_info aligned based (condition_info_ptr), 4 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 4 16 2 version fixed binary, /* Must be 1 */ 4 17 2 condition_name char (32) varying, /* name of condition */ 4 18 2 info_ptr pointer, /* pointer to the condition data structure */ 4 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 4 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 4 21 2 flags unaligned, 4 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 4 23 3 pad1 bit (35), 4 24 2 pad2 bit (36), 4 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 4 26 2 pad3 (4) bit (36); 4 27 4 28 /* internal static */ 4 29 4 30 declare condition_info_version_1 4 31 fixed binary internal static options (constant) initial (1); 4 32 4 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 112 113 5 1 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 5 2 /* format: style2 */ 5 3 5 4 /* The include file condition_info_header must be used with this file */ 5 5 5 6 declare sub_error_info_ptr pointer; 5 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 5 8 2 header aligned like condition_info_header, 5 9 2 retval fixed bin (35), /* return value */ 5 10 2 name char (32), /* module name */ 5 11 2 info_ptr ptr; 5 12 5 13 declare sub_error_info_version_1 5 14 internal static options (constant) fixed bin init (1); 5 15 5 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 114 115 6 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 6 2 /* format: style2 */ 6 3 6 4 declare condition_info_header_ptr 6 5 pointer; 6 6 declare 1 condition_info_header 6 7 aligned based (condition_info_header_ptr), 6 8 2 length fixed bin, /* length in words of this structure */ 6 9 2 version fixed bin, /* version number of this structure */ 6 10 2 action_flags aligned, /* tell handler how to proceed */ 6 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 6 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 6 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 6 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 6 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 6 16 3 pad bit (32) unaligned, 6 17 2 info_string char (256) varying, /* may contain printable message */ 6 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 6 19 6 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 116 117 7 1 /* BEGIN INCLUDE FILE ... comm_meters_error_info.incl.pl1 */ 7 2 7 3 /* Additional info structure used by comm_meters_ when calling sub_err_ */ 7 4 7 5 /* Created July 1981 by Robert Coren */ 7 6 7 7 7 8 dcl 1 comm_meters_error_info aligned based (comm_meters_errp), 7 9 2 version fixed bin, 7 10 2 chan_name char (32), 7 11 2 flags, 7 12 3 starname_matched bit (1) unal, /* didn't die on first starname */ 7 13 3 more_than_one_starname bit (1) unal, /* caller supplied more than one starname */ 7 14 3 more_than_one_match bit (1) unal, /* we're processing more than one channel name */ 7 15 3 pad bit (33) unal; 7 16 7 17 dcl comm_meters_errp ptr; 7 18 7 19 dcl COMM_METERS_ERR_V1 fixed bin internal static options (constant) init (1); 7 20 7 21 /* END INCLUDE FILE ... comm_meters_error_info.incl.pl1 */ 118 119 120 call cu_$arg_count (nargs, code); 121 if code ^= 0 122 then do; 123 call com_err_ (code, CMD_NAME); 124 return; 125 end; 126 127 if nargs = 0 128 then do; 129 call com_err_ (error_table_$noarg, CMD_NAME, 130 "^/Usage: channel_comm_meters channel_name {-brief} {-error} {-summary} {-since_bootload | -since_dialup}" 131 ); 132 return; 133 end; 134 135 brief, error, summary, since_boot, boot_spec, dial_spec, chan_spec = "0"b; 136 137 do i = 1 to nargs; /* parse the arguments */ 138 call cu_$arg_ptr (i, argp, argl, code); 139 if substr (arg, 1, 1) = "-" /* control arg */ 140 then do; 141 ctl_arg = substr (arg, 2); 142 143 if ctl_arg = "brief" | ctl_arg = "bf" 144 then brief = "1"b; 145 146 else if ctl_arg = "error" 147 then error = "1"b; 148 149 else if ctl_arg = "summary" | ctl_arg = "sum" 150 then summary = "1"b; 151 152 else if ctl_arg = "since_bootload" | ctl_arg = "boot" 153 then do; 154 boot_spec = "1"b; 155 since_boot = "1"b; 156 end; 157 158 else if ctl_arg = "since_dialup" | ctl_arg = "dial" 159 then do; 160 dial_spec = "1"b; 161 since_boot = "0"b; 162 end; 163 164 else do; 165 call com_err_ (error_table_$badopt, CMD_NAME, arg); 166 return; 167 end; 168 end; 169 170 else do; 171 if chan_spec /* already gave a channel name */ 172 then do; 173 call com_err_ (error_table_$inconsistent, CMD_NAME, 174 "Only one channel starname may be specified."); 175 return; 176 end; 177 178 if argl > 32 /* too big to be a channel name */ 179 then do; 180 call com_err_ (error_table_$bigarg, CMD_NAME, "^a. Channel name must not exceed 32 characters.", 181 arg); 182 return; 183 end; 184 185 chan_spec = "1"b; 186 chan_star_name (1) = arg; 187 end; 188 end; 189 190 /* Now check for unacceptable combinations */ 191 192 if (brief | error) & summary 193 then do; 194 call com_err_ (error_table_$inconsistent, CMD_NAME, 195 "-summary may not be specified with either -brief or -error."); 196 return; 197 end; 198 199 if boot_spec & dial_spec 200 then do; 201 call com_err_ (error_table_$inconsistent, CMD_NAME, 202 "only one of -since_bootload and -since_dialup may be specified."); 203 return; 204 end; 205 206 207 /* handler for sub_error_ */ 208 209 on sub_error_ 210 begin; 211 212 dcl pass_on bit (1); 213 dcl 1 auto_cond_info aligned like condition_info; 214 215 pass_on = "0"b; 216 condition_info_ptr = addr (auto_cond_info); 217 call find_condition_info_ (null (), condition_info_ptr, code); 218 if code ^= 0 /* rather unlikely */ 219 then pass_on = "1"b; /* but we'll let someone else worry about it */ 220 221 else if condition_info.info_ptr = null () | condition_info.condition_name ^= "sub_error_" 222 /* we're not about to deal with this */ 223 then pass_on = "1"b; 224 225 else do; 226 sub_error_info_ptr = condition_info.info_ptr; 227 if sub_error_info.name ^= "comm_meters_" 228 /* not someone we know */ 229 then pass_on = "1"b; 230 231 else if sub_error_info.info_ptr = null () 232 /* simple enough */ 233 then go to report_it; 234 235 comm_meters_errp = sub_error_info.info_ptr; 236 if comm_meters_error_info.version ^= COMM_METERS_ERR_V1 237 then pass_on = "1"b; 238 239 else do; 240 if ^comm_meters_error_info.starname_matched 241 then go to report_it; 242 if sub_error_info.status_code ^= error_table_$no_channel_meters 243 /* this is not worth reporting */ 244 | ^comm_meters_error_info.more_than_one_match 245 /* unless there's only one channel anyway */ 246 then do; 247 248 report_it: 249 call com_err_ (sub_error_info.status_code, CMD_NAME, sub_error_info.info_string); 250 end; 251 end; 252 end; 253 254 if pass_on 255 then call continue_to_signal_ (code); 256 end; 257 258 /* Now start to do some work */ 259 260 areap = get_system_free_area_ (); 261 call comm_meters_ (chan_star_name, CHANNEL_METERS_VERSION_1, areap, n_channels, chan_meterp, code); 262 if code ^= 0 263 then return; /* comm_meters_ calls sub_err_, which should explain everything */ 264 265 orig_meterp = chan_meterp; /* save this for later freeing */ 266 display_flags = brief || error || summary || since_boot || (32)"0"b; 267 268 call system_info_$timeup (beginning); 269 all_time = clock () - beginning; 270 call ioa_ ("Total metering time ^a", meter_format_$time (all_time)); 271 272 if summary /* print header */ 273 then call ioa_ ("^/cps^7tcpsi^14tcpso^20tiotxXsbepQqa^34terr^39tABE^44tname^60tuser^/"); 274 275 do chanx = 1 to n_channels; 276 name = channel_meters.channel_name; 277 if ^summary 278 then do; 279 call ioa_ ("^/^a^/", name); 280 281 entry_var = comm_meters_$get_mpx_entry ("display_mpx", channel_meters.multiplexer_type); 282 call entry_var (name, null (), chan_meterp, display_flags, code); 283 if code ^= 0 & code ^= error_table_$no_operation 284 /* don't fuss if entry simply not supplied */ 285 then call com_err_ (code, CMD_NAME, "No multiplexer meters for ^a (multiplexer type ^a)", name, 286 mpx_types (channel_meters.multiplexer_type)); 287 288 if channel_meters.parent_type > 0 /* not level-1 mpx */ 289 then do; 290 entry_var = comm_meters_$get_mpx_entry ("display_subchan", channel_meters.parent_type); 291 call entry_var (name, null (), chan_meterp, display_flags, code); 292 if code ^= 0 & code ^= error_table_$no_operation 293 /* as above */ 294 then call com_err_ (code, CMD_NAME, "No subchannel meters for ^a (parent type ^a)", name, 295 mpx_types (channel_meters.parent_type)); 296 end; 297 end; 298 299 else do; /* get summary information and print it ourselves */ 300 unspec (auto_summary) = "0"b; 301 auto_summary.version = CHANNEL_SUMMARY_VERSION_1; 302 303 entry_var = comm_meters_$get_mpx_entry ("mpx_summary", channel_meters.multiplexer_type); 304 call entry_var (chan_meterp, since_boot, addr (auto_summary), code); 305 306 total_errors = auto_summary.error_count;/* save this */ 307 auto_summary.error_count = 0; /* parent may update this */ 308 309 if channel_meters.parent_type > 0 310 then do; 311 entry_var = comm_meters_$get_mpx_entry ("subchan_summary", channel_meters.parent_type); 312 call entry_var (chan_meterp, since_boot, addr (auto_summary), code); 313 total_errors = total_errors + auto_summary.error_count; 314 end; 315 316 if since_boot 317 then do; 318 input_chars = channel_meters.cumulative.unconverted_input_chars; 319 output_chars = channel_meters.cumulative.converted_output_chars; 320 seconds = divide (all_time, 1000000, 71, 0); 321 end; 322 323 else do; 324 input_chars = 325 channel_meters.cumulative.unconverted_input_chars 326 - channel_meters.saved.unconverted_input_chars; 327 output_chars = 328 channel_meters.cumulative.converted_output_chars 329 - channel_meters.saved.converted_output_chars; 330 seconds = divide (auto_summary.time_since_dial, 1000000, 71, 0); 331 end; 332 333 if auto_summary.user_process = "0"b 334 then user_name = ""; 335 else call get_userid_ (auto_summary.user_process, user_name, user_proj, (0), (0), code); 336 337 if auto_summary.synchronous 338 then cps = divide (auto_summary.baud_rate, 8, 17, 0); 339 else cps = divide (auto_summary.baud_rate, 10, 17, 0); 340 341 call ioa_ ( 342 "^3d^6t^a^13t^a^20t^[i^;^x^]^[o^;^x^]^[t^;^x^]^[x^;^x^]^[X^;^x^]^[s^;^x^]^[b^;^x^]^[e^;^x^]^[p^;^x^]^[Q^;^x^]^[q^;^x^]^[a^;^x^]^33t^4d^39t^[s^;a^]^[B^;^x^]^[E^;^x^]^44t^a^60t^a" 343 , cps, meter_format_$quotient ((input_chars), seconds, "^5.2f"), 344 meter_format_$quotient ((output_chars), seconds, "^5.2f"), auto_summary.invalid_input, 345 auto_summary.output_re_xmit, auto_summary.timeout, auto_summary.pre_exhaust, 346 auto_summary.exhaust, auto_summary.xte, auto_summary.bell_quit, auto_summary.echo_overflow, 347 auto_summary.parity, auto_summary.ssqo, auto_summary.hsqo, auto_summary.alloc_failure, 348 total_errors, auto_summary.synchronous, auto_summary.breakall, auto_summary.echoplex, name, 349 user_name); 350 end; 351 352 chan_meterp = channel_meters.next_channelp; 353 end; 354 355 call comm_meters_$free (areap, orig_meterp, code); 356 if code ^= 0 357 then call com_err_ (code, CMD_NAME, "While freeing channel meters."); 358 359 return; 360 end channel_comm_meters; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1005.1 channel_comm_meters.pl1 >special_ldd>install>MR12.3-1100>channel_comm_meters.pl1 106 1 06/19/81 2115.0 channel_meters.incl.pl1 >ldd>include>channel_meters.incl.pl1 108 2 06/19/81 2115.0 channel_summary.incl.pl1 >ldd>include>channel_summary.incl.pl1 110 3 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 112 4 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 114 5 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 116 6 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 118 7 03/27/82 0435.1 comm_meters_error_info.incl.pl1 >ldd>include>comm_meters_error_info.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. CHANNEL_METERS_VERSION_1 000257 constant fixed bin(17,0) initial dcl 1-9 set ref 261* CHANNEL_SUMMARY_VERSION_1 constant fixed bin(17,0) initial dcl 2-10 ref 301 CMD_NAME 000210 constant char(19) initial packed unaligned dcl 97 set ref 123* 129* 165* 173* 180* 194* 201* 248* 283* 292* 356* COMM_METERS_ERR_V1 constant fixed bin(17,0) initial dcl 7-19 ref 236 addr builtin function dcl 104 ref 216 304 304 312 312 all_time 000146 automatic fixed bin(71,0) dcl 45 set ref 269* 270* 270* 320 alloc_failure 4(11) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* areap 000132 automatic pointer dcl 39 set ref 260* 261* 355* arg based char packed unaligned dcl 62 set ref 139 141 165* 180* 186 argl 000116 automatic fixed bin(21,0) dcl 36 set ref 138* 139 141 165 165 178 180 180 186 argp 000120 automatic pointer dcl 37 set ref 138* 139 141 165 180 186 auto_cond_info 000102 automatic structure level 1 dcl 213 set ref 216 auto_summary 000204 automatic structure level 1 dcl 57 set ref 300* 304 304 312 312 baud_rate 1 000204 automatic fixed bin(17,0) level 2 dcl 57 set ref 337 339 beginning 000142 automatic fixed bin(71,0) dcl 43 set ref 268* 269 bell_quit 4(06) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* boot_spec 000104 automatic bit(1) packed unaligned dcl 29 set ref 135* 154* 199 breakall 4(13) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* brief 000100 automatic bit(1) packed unaligned dcl 25 set ref 135* 143* 192 266 chan_meterp 000222 automatic pointer dcl 1-7 set ref 261* 265 276 281 282* 283 288 290 291* 292 303 304* 309 311 312* 318 319 324 324 327 327 352* 352 chan_spec 000106 automatic bit(1) packed unaligned dcl 31 set ref 135* 171 185* chan_star_name 000122 automatic char(32) array packed unaligned dcl 38 set ref 186* 261* channel_meters based structure level 1 dcl 1-11 channel_name 6 based char(32) level 2 dcl 1-11 ref 276 channel_summary based structure level 1 dcl 2-12 chanx 000150 automatic fixed bin(17,0) dcl 47 set ref 275* clock builtin function dcl 104 ref 269 code 000110 automatic fixed bin(35,0) dcl 33 set ref 120* 121 123* 138* 217* 218 254* 261* 262 282* 283 283 283* 291* 292 292 292* 304* 312* 335* 355* 356 356* com_err_ 000014 constant entry external dcl 69 ref 123 129 165 173 180 194 201 248 283 292 356 comm_meters_ 000026 constant entry external dcl 74 ref 261 comm_meters_$free 000030 constant entry external dcl 75 ref 355 comm_meters_$get_mpx_entry 000032 constant entry external dcl 76 ref 281 290 303 311 comm_meters_error_info based structure level 1 dcl 7-8 comm_meters_errp 000230 automatic pointer dcl 7-17 set ref 235* 236 240 242 condition_info based structure level 1 dcl 4-14 condition_info_header based structure level 1 dcl 6-6 condition_info_ptr 000224 automatic pointer dcl 4-10 set ref 216* 217* 221 221 226 condition_name 3 based varying char(32) level 2 dcl 4-14 ref 221 continue_to_signal_ 000042 constant entry external dcl 80 ref 254 converted_output_chars 25 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 1-11 in procedure "channel_comm_meters" ref 319 327 converted_output_chars 47 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 1-11 in procedure "channel_comm_meters" ref 327 cps 000202 automatic fixed bin(17,0) dcl 55 set ref 337* 339* 341* ctl_arg 000111 automatic char(16) packed unaligned dcl 34 set ref 141* 143 143 146 149 149 152 152 158 158 cu_$arg_count 000010 constant entry external dcl 67 ref 120 cu_$arg_ptr 000016 constant entry external dcl 70 ref 138 cumulative 24 based structure level 2 dcl 1-11 dial_spec 000105 automatic bit(1) packed unaligned dcl 30 set ref 135* 160* 199 display_flags 000140 automatic bit(36) dcl 42 set ref 266* 282* 291* divide builtin function dcl 104 ref 320 330 337 339 echo_overflow 4(07) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* echoplex 4(14) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* entry_var 000162 automatic entry variable dcl 49 set ref 281* 282 290* 291 303* 304 311* 312 error 000101 automatic bit(1) packed unaligned dcl 26 set ref 135* 146* 192 266 error_count 5 000204 automatic fixed bin(17,0) level 2 dcl 57 set ref 306 307* 313 error_table_$badopt 000046 external static fixed bin(35,0) dcl 85 set ref 165* error_table_$bigarg 000052 external static fixed bin(35,0) dcl 85 set ref 180* error_table_$inconsistent 000050 external static fixed bin(35,0) dcl 85 set ref 173* 194* 201* error_table_$no_channel_meters 000054 external static fixed bin(35,0) dcl 85 ref 242 error_table_$no_operation 000056 external static fixed bin(35,0) dcl 85 ref 283 292 error_table_$noarg 000044 external static fixed bin(35,0) dcl 85 set ref 129* exhaust 4(04) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* find_condition_info_ 000040 constant entry external dcl 79 ref 217 flags 4 000204 automatic structure level 2 in structure "auto_summary" dcl 57 in procedure "channel_comm_meters" flags 11 based structure level 2 in structure "comm_meters_error_info" dcl 7-8 in procedure "channel_comm_meters" get_system_free_area_ 000020 constant entry external dcl 71 ref 260 get_userid_ 000022 constant entry external dcl 72 ref 335 header based structure level 2 dcl 5-7 hsqo 4(10) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* i 000107 automatic fixed bin(17,0) dcl 32 set ref 137* 138* info_ptr 116 based pointer level 2 in structure "sub_error_info" dcl 5-7 in procedure "channel_comm_meters" ref 231 235 info_ptr 14 based pointer level 2 in structure "condition_info" dcl 4-14 in procedure "channel_comm_meters" ref 221 226 info_string 3 based varying char(256) level 3 dcl 5-7 set ref 248* input_chars 000200 automatic fixed bin(35,0) dcl 53 set ref 318* 324* 341 invalid_input 4 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* ioa_ 000012 constant entry external dcl 68 ref 270 272 279 341 meter_format_$quotient 000036 constant entry external dcl 78 ref 341 341 meter_format_$time 000034 constant entry external dcl 77 ref 270 270 more_than_one_match 11(02) based bit(1) level 3 packed packed unaligned dcl 7-8 ref 242 mpx_types 000000 constant char(32) initial array packed unaligned dcl 3-35 set ref 283* 292* multiplexer_type 1 based fixed bin(17,0) level 2 dcl 1-11 set ref 281* 283 303* n_channels 000134 automatic fixed bin(17,0) dcl 40 set ref 261* 275 name 106 based char(32) level 2 in structure "sub_error_info" dcl 5-7 in procedure "channel_comm_meters" ref 227 name 000151 automatic char(32) packed unaligned dcl 48 in procedure "channel_comm_meters" set ref 276* 279* 282* 283* 291* 292* 341* nargs 000115 automatic fixed bin(17,0) dcl 35 set ref 120* 127 137 next_channelp 22 based pointer level 2 dcl 1-11 ref 352 null builtin function dcl 104 ref 217 217 221 231 282 282 291 291 orig_meterp 000136 automatic pointer dcl 41 set ref 265* 355* output_chars 000201 automatic fixed bin(35,0) dcl 54 set ref 319* 327* 341 output_re_xmit 4(01) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* parent_type 2 based fixed bin(17,0) level 2 dcl 1-11 set ref 288 290* 292 309 311* parity 4(08) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* pass_on 000100 automatic bit(1) packed unaligned dcl 212 set ref 215* 218* 221* 227* 236* 254 pre_exhaust 4(03) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* saved 46 based structure level 2 dcl 1-11 seconds 000144 automatic fixed bin(71,0) dcl 44 set ref 320* 330* 341* 341* since_boot 000103 automatic bit(1) packed unaligned dcl 28 set ref 135* 155* 161* 266 304* 312* 316 ssqo 4(09) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* starname_matched 11 based bit(1) level 3 packed packed unaligned dcl 7-8 ref 240 status_code 104 based fixed bin(35,0) level 3 dcl 5-7 set ref 242 248* sub_error_ 000214 stack reference condition dcl 102 ref 209 sub_error_info based structure level 1 dcl 5-7 sub_error_info_ptr 000226 automatic pointer dcl 5-6 set ref 226* 227 231 235 242 248 248 substr builtin function dcl 104 ref 139 141 summary 000102 automatic bit(1) packed unaligned dcl 27 set ref 135* 149* 192 266 272 277 synchronous 4(12) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 337 341* system_info_$timeup 000024 constant entry external dcl 73 ref 268 time_since_dial 2 000204 automatic fixed bin(71,0) level 2 dcl 57 set ref 330 timeout 4(02) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* total_errors 000166 automatic fixed bin(17,0) dcl 50 set ref 306* 313* 313 341* unconverted_input_chars 46 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 1-11 in procedure "channel_comm_meters" ref 324 unconverted_input_chars 24 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 1-11 in procedure "channel_comm_meters" ref 318 324 unspec builtin function dcl 104 set ref 300* user_name 000167 automatic char(22) packed unaligned dcl 51 set ref 333* 335* 341* user_process 6 000204 automatic bit(36) level 2 dcl 57 set ref 333 335* user_proj 000175 automatic char(9) packed unaligned dcl 52 set ref 335* version 000204 automatic fixed bin(17,0) level 2 in structure "auto_summary" dcl 57 in procedure "channel_comm_meters" set ref 301* version based fixed bin(17,0) level 2 in structure "comm_meters_error_info" dcl 7-8 in procedure "channel_comm_meters" ref 236 xte 4(05) 000204 automatic bit(1) level 3 packed packed unaligned dcl 57 set ref 341* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. 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 MCS_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 condition_info_header_ptr automatic pointer dcl 6-4 condition_info_version_1 internal static fixed bin(17,0) initial dcl 4-30 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 3-40 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 5-13 summary_ptr automatic pointer dcl 2-9 time_string automatic char(9) packed unaligned dcl 46 NAMES DECLARED BY EXPLICIT CONTEXT. channel_comm_meters 000621 constant entry external dcl 12 report_it 001365 constant label dcl 248 ref 231 240 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3136 3216 2666 3146 Length 3610 2666 60 356 250 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME channel_comm_meters 352 external procedure is an external procedure. on unit on line 209 116 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME channel_comm_meters 000100 brief channel_comm_meters 000101 error channel_comm_meters 000102 summary channel_comm_meters 000103 since_boot channel_comm_meters 000104 boot_spec channel_comm_meters 000105 dial_spec channel_comm_meters 000106 chan_spec channel_comm_meters 000107 i channel_comm_meters 000110 code channel_comm_meters 000111 ctl_arg channel_comm_meters 000115 nargs channel_comm_meters 000116 argl channel_comm_meters 000120 argp channel_comm_meters 000122 chan_star_name channel_comm_meters 000132 areap channel_comm_meters 000134 n_channels channel_comm_meters 000136 orig_meterp channel_comm_meters 000140 display_flags channel_comm_meters 000142 beginning channel_comm_meters 000144 seconds channel_comm_meters 000146 all_time channel_comm_meters 000150 chanx channel_comm_meters 000151 name channel_comm_meters 000162 entry_var channel_comm_meters 000166 total_errors channel_comm_meters 000167 user_name channel_comm_meters 000175 user_proj channel_comm_meters 000200 input_chars channel_comm_meters 000201 output_chars channel_comm_meters 000202 cps channel_comm_meters 000204 auto_summary channel_comm_meters 000222 chan_meterp channel_comm_meters 000224 condition_info_ptr channel_comm_meters 000226 sub_error_info_ptr channel_comm_meters 000230 comm_meters_errp channel_comm_meters on unit on line 209 000100 pass_on on unit on line 209 000102 auto_cond_info on unit on line 209 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var_desc call_ext_out_desc call_ext_out return_mac enable_op ext_entry int_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ comm_meters_ comm_meters_$free comm_meters_$get_mpx_entry continue_to_signal_ cu_$arg_count cu_$arg_ptr find_condition_info_ get_system_free_area_ get_userid_ ioa_ meter_format_$quotient meter_format_$time system_info_$timeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$bigarg error_table_$inconsistent error_table_$no_channel_meters error_table_$no_operation error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000620 120 000626 121 000636 123 000640 124 000655 127 000656 129 000660 132 000704 135 000705 137 000714 138 000723 139 000740 141 000745 143 000752 146 000765 149 000774 152 001007 154 001017 155 001021 156 001023 158 001024 160 001034 161 001036 162 001040 165 001041 166 001065 168 001066 171 001067 173 001071 175 001115 178 001116 180 001121 182 001153 185 001154 186 001156 188 001161 192 001163 194 001171 196 001215 199 001216 201 001222 203 001246 209 001247 215 001263 216 001264 217 001267 218 001303 221 001311 226 001326 227 001330 231 001337 235 001343 236 001345 240 001353 242 001356 248 001365 254 001406 256 001420 260 001421 261 001430 262 001463 265 001465 266 001467 268 001507 269 001516 270 001521 272 001552 275 001570 276 001577 277 001603 279 001605 281 001624 282 001652 283 001703 288 001745 290 001750 291 001777 292 002030 297 002073 300 002074 301 002077 303 002101 304 002127 306 002154 307 002156 309 002157 311 002162 312 002211 313 002236 316 002240 318 002243 319 002246 320 002250 321 002255 324 002256 327 002265 330 002273 333 002300 335 002306 337 002344 339 002353 341 002356 352 002614 353 002617 355 002621 356 002634 359 002662 ----------------------------------------------------------- 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