COMPILATION LISTING OF SEGMENT 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 1049.1 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 comm_meters_: 13 proc (a_chan_names, a_version, a_area_ptr, a_n_channels, a_chan_meterp, a_code); 14 15 /* Subroutine for use by comm. channel metering commands. It takes a list of channel names, 16* any or all of which may be starnames, and returns metering information for the specified 17* channels. The comm_meters_$free entry frees the structures allocated by the main entry. 18* This subroutine requires the aid of some multiplexer-specific entries to allocate and free structures 19* whose formats are known only to the multiplexer involved. These entries have names of the form 20* MPX_meters_$allocate_mpx, MPX_meters_$allocate_subchan, MPX_meters_$free_mpx, 21* and MPX_meters_$free_subchan, where MPX is the name of the relevant multiplexer type. 22**/ 23 24 /* Written February 1981 by Robert S. Coren */ 25 /* Modified July 1981 by Robert S. Coren to supply some info with call to sub_err_ */ 26 27 28 /* PARAMETERS */ 29 30 dcl a_chan_names (*) char (*) parameter; /* channel names for which to meter */ 31 dcl a_version fixed bin parameter; /* version of structure to be allocated */ 32 dcl a_area_ptr pointer parameter; /* pointer to area in which to do allocation */ 33 dcl a_entry_type char (*); /* name of multiplexer-specific entry */ 34 dcl a_mpx_type fixed bin; /* multiplexer type for get_mpx_entry entry */ 35 dcl a_n_channels fixed bin parameter; /* number of channels matching a_chan_ names (OUTPUT) */ 36 dcl a_chan_meterp pointer parameter; /* pointer to list of metering structures allocated (OUTPUT) */ 37 dcl a_code fixed bin (35); /* status code (OUTPUT) */ 38 39 40 /* AUTOMATIC */ 41 42 dcl chan_meter_areap ptr; 43 dcl n_channels fixed bin; 44 dcl code fixed bin (35); 45 dcl last_chanp pointer; 46 dcl names_areap ptr; 47 dcl i fixed bin; 48 dcl chanx fixed bin; 49 dcl mpx_type fixed bin; 50 dcl chan_name char (32); 51 dcl name_matched bit (1); 52 53 dcl 1 meter_info aligned like get_comm_meters_info; 54 55 dcl 1 auto_logical_meters aligned like logical_chan_meters; 56 57 58 /* BASED */ 59 60 dcl names_area area (256) based (names_areap); 61 dcl chan_meter_area area (256) based (chan_meter_areap); 62 63 64 /* ENTRIES */ 65 66 dcl get_system_free_area_ entry (pointer); 67 dcl metering_gate_$comm_chan_star_list entry (char (*), fixed bin, ptr, ptr, fixed bin (35)); 68 dcl metering_gate_$get_comm_meters entry (char (*), ptr, fixed bin (35)); 69 dcl phcs_$get_comm_meters entry (char (*), ptr, fixed bin (35)); 70 dcl entry_var entry options (variable) variable; 71 dcl sub_err_ entry options (variable); 72 73 74 /* EXTERNAL STATIC */ 75 76 dcl error_table_$noalloc fixed bin (35) external static; 77 dcl error_table_$no_operation fixed bin (35) external static; 78 dcl error_table_$unimplemented_version fixed bin (35) external static; 79 80 81 /* BUILTINS & CONDITIONS */ 82 83 dcl (addr, hbound, null) builtin; 84 dcl (area, cleanup, linkage_error) condition; 85 86 if a_version ^= CHANNEL_METERS_VERSION_1 87 then do; 88 a_code = error_table_$unimplemented_version; 89 return; 90 end; 91 92 chan_meter_areap = a_area_ptr; 93 n_channels = 0; 94 last_chanp = null; 95 chan_star_list_ptr = null; 96 97 on cleanup call cleanup_proc; 98 on area 99 begin; 100 call cleanup_proc; 101 a_code = error_table_$noalloc; 102 go to exit; 103 end; 104 105 call get_system_free_area_ (names_areap); 106 name_matched = "0"b; 107 108 do i = 1 to hbound (a_chan_names, 1); 109 call metering_gate_$comm_chan_star_list (a_chan_names (i), CHAN_STAR_INFO_VERSION_1, names_areap, 110 chan_star_list_ptr, code); 111 if code ^= 0 112 then do; 113 call report_error (a_chan_names (i)); 114 a_code = code; 115 call cleanup_proc; 116 return; 117 end; 118 119 name_matched = "1"b; 120 n_channels = n_channels + chan_star_info.n_channels; 121 do chanx = 1 to chan_star_info.n_channels; 122 mpx_type = chan_star_info.chan_entry (chanx).mpx_type; 123 chan_name = chan_star_info.chan_entry (chanx).name; 124 allocate channel_meters in (chan_meter_area) set (chan_meterp); 125 if last_chanp = null /* this is first one in list */ 126 then a_chan_meterp = chan_meterp; /* have to tell caller where to start */ 127 else last_chanp -> channel_meters.next_channelp = chan_meterp; 128 /* else chain it on to previous */ 129 130 channel_meters.version = a_version; 131 channel_meters.next_channelp = null; 132 channel_meters.multiplexer_type = mpx_type; 133 channel_meters.line_type = chan_star_info.chan_entry (chanx).line_type; 134 channel_meters.parent_type = chan_star_info.chan_entry (chanx).parent_type; 135 channel_meters.channel_name = chan_name; 136 137 meter_info.version = GET_COMM_METERS_INFO_VERSION_1; 138 meter_info.logical_chan_ptr = addr (auto_logical_meters); 139 entry_var = get_entry ("allocate_mpx", mpx_type); 140 /* returns iox_$err_no_operation if there isn't one */ 141 call entry_var (chan_meter_areap, meter_info.subchan_ptr, code); 142 if code ^= 0 143 then do; 144 if code ^= error_table_$no_operation 145 then call report_error (chan_name); 146 meter_info.subchan_ptr = null; 147 end; 148 149 if channel_meters.parent_type >= 0 150 then do; 151 entry_var = get_entry ("allocate_subchan", channel_meters.parent_type); 152 call entry_var (chan_meter_areap, meter_info.parent_ptr, code); 153 if code ^= 0 154 then do; 155 if code ^= error_table_$no_operation 156 then call report_error (chan_name); 157 meter_info.parent_ptr = null; 158 end; 159 end; 160 else meter_info.parent_ptr = null; 161 162 channel_meters.mpx_specific_meterp = meter_info.subchan_ptr; 163 channel_meters.parent_meterp = meter_info.parent_ptr; 164 165 /* now get the actual meters out of ring 0 */ 166 167 on linkage_error 168 begin; /* we're going to try phcs_ first */ 169 revert linkage_error; 170 call metering_gate_$get_comm_meters (chan_name, addr (meter_info), code); 171 go to proceed; 172 end; 173 174 call phcs_$get_comm_meters (chan_name, addr (meter_info), code); 175 revert linkage_error; 176 177 proceed: 178 if code ^= 0 179 then do; 180 call report_error (chan_name); 181 free channel_meters in (chan_meter_area); 182 /* skip this one */ 183 if last_chanp ^= null 184 then last_chanp -> channel_meters.next_channelp = null; 185 /* wipe out forward pointer to it */ 186 n_channels = n_channels - 1; /* don't count it */ 187 end; 188 189 else do; 190 last_chanp = chan_meterp; /* this one is last now */ 191 192 /* now copy them into the structure */ 193 194 channel_meters.cumulative.unconverted_input_chars = auto_logical_meters.current_meters.in_bytes; 195 channel_meters.cumulative.converted_output_chars = auto_logical_meters.current_meters.out_bytes; 196 channel_meters.cumulative.read_calls = auto_logical_meters.current_meters.in.calls; 197 channel_meters.cumulative.read_call_time = auto_logical_meters.current_meters.in.call_time; 198 channel_meters.cumulative.write_calls = auto_logical_meters.current_meters.out.calls; 199 channel_meters.cumulative.write_call_time = auto_logical_meters.current_meters.out.call_time; 200 channel_meters.cumulative.control_calls = auto_logical_meters.current_meters.control.calls; 201 channel_meters.cumulative.control_call_time = 202 auto_logical_meters.current_meters.control.call_time; 203 channel_meters.cumulative.software_interrupts = 204 auto_logical_meters.current_meters.in.interrupts 205 + auto_logical_meters.current_meters.out.interrupts 206 + auto_logical_meters.current_meters.control.interrupts; 207 channel_meters.cumulative.interrupt_time = 208 auto_logical_meters.current_meters.in.interrupt_time 209 + auto_logical_meters.current_meters.out.interrupt_time 210 + auto_logical_meters.current_meters.control.interrupt_time; 211 212 channel_meters.saved.unconverted_input_chars = auto_logical_meters.saved_meters.in_bytes; 213 channel_meters.saved.converted_output_chars = auto_logical_meters.saved_meters.out_bytes; 214 channel_meters.saved.read_calls = auto_logical_meters.saved_meters.in.calls; 215 channel_meters.saved.read_call_time = auto_logical_meters.saved_meters.in.call_time; 216 channel_meters.saved.write_calls = auto_logical_meters.saved_meters.out.calls; 217 channel_meters.saved.write_call_time = auto_logical_meters.saved_meters.out.call_time; 218 channel_meters.saved.control_calls = auto_logical_meters.saved_meters.control.calls; 219 channel_meters.saved.control_call_time = auto_logical_meters.saved_meters.control.call_time; 220 channel_meters.saved.software_interrupts = 221 auto_logical_meters.saved_meters.in.interrupts 222 + auto_logical_meters.saved_meters.out.interrupts 223 + auto_logical_meters.saved_meters.control.interrupts; 224 channel_meters.saved.interrupt_time = 225 auto_logical_meters.saved_meters.in.interrupt_time 226 + auto_logical_meters.saved_meters.out.interrupt_time 227 + auto_logical_meters.saved_meters.control.interrupt_time; 228 end; 229 end; /* done with that channel */ 230 free chan_star_info in (names_area); /* done with that starname */ 231 chan_star_list_ptr = null; /* in case of cleanup */ 232 end; /* done processing all names */ 233 234 if n_channels <= 0 235 then a_code = code; 236 else a_code = 0; 237 238 a_n_channels = n_channels; 239 exit: 240 return; 241 242 243 free: 244 entry (a_area_ptr, a_chan_meterp, a_code); 245 246 /* this entry frees metering structure allocated by main entry */ 247 248 chan_meter_areap = a_area_ptr; 249 call free_all (a_chan_meterp); /* internal subroutine does all the work */ 250 a_code = code; 251 return; 252 253 254 255 get_mpx_entry: 256 entry (a_entry_type, a_mpx_type) returns (entry); 257 258 /* this is an entry to allow external access to the get_entry procedure */ 259 260 return (get_entry (a_entry_type, a_mpx_type)); 261 262 /* CLEANUP_PROC -- called for cleanup condition or if subroutine aborts */ 263 264 cleanup_proc: 265 procedure; 266 267 if chan_star_list_ptr ^= null 268 then free chan_star_info in (names_area); 269 if last_chanp ^= null 270 then call free_all (a_chan_meterp); 271 return; 272 end cleanup_proc; 273 274 /* FREE_ALL -- frees metering structures. Multiplexer-specific entries are called to free stuff allocated by corresponding entries */ 275 276 free_all: 277 procedure (a_list_meterp); 278 279 dcl a_list_meterp ptr; 280 dcl next_chanp ptr; 281 282 chan_meterp = a_list_meterp; 283 do while (chan_meterp ^= null); 284 if channel_meters.mpx_specific_meterp ^= null 285 then do; 286 entry_var = get_entry ("free_mpx", channel_meters.multiplexer_type); 287 call entry_var (channel_meters.mpx_specific_meterp, code); 288 if code ^= 0 289 then call sub_err_ (code, "comm_meters_$free", "c", null, 0, "Couldn't free 290 meters for ^a subchannel.", mpx_types (channel_meters.multiplexer_type)); 291 end; 292 293 if channel_meters.parent_meterp ^= null 294 then do; 295 entry_var = get_entry ("free_subchan", channel_meters.parent_type); 296 call entry_var (channel_meters.parent_meterp, code); 297 if code ^= 0 298 then call sub_err_ (code, "comm_meters_$free", "c", null, 0, 299 "Couldn't free meters for ^a multiplexer.", mpx_types (channel_meters.parent_type)); 300 end; 301 302 code = 0; 303 next_chanp = channel_meters.next_channelp; 304 free channel_meters in (chan_meter_area); 305 chan_meterp = next_chanp; /* on to the next */ 306 end; 307 return; 308 end free_all; 309 310 /* GET_ENTRY -- given a multiplexer type and an entrypoint name, returns the entry. 311* If there is no corresponding entry, returns iox_$err_no_operation, so result can 312* always be called and will do something comprehensible. 313**/ 314 315 get_entry: 316 procedure (a_entry_type, a_mpx_type) returns (entry); 317 318 dcl a_entry_type char (*); 319 dcl a_mpx_type fixed bin; 320 321 dcl segname char (32); 322 dcl entname char (32); 323 dcl entry_ptr pointer; 324 dcl entry_result entry variable; 325 dcl code fixed bin (35); 326 327 dcl cu_$make_entry_value entry (pointer, entry); 328 dcl hcs_$make_ptr entry (pointer, char (*), char (*), pointer, fixed bin (35)); 329 330 dcl iox_$err_no_operation entry options (variable); 331 332 dcl rtrim builtin; 333 334 segname = rtrim (mpx_types (a_mpx_type)) || "_meters_"; 335 entname = a_entry_type; 336 337 call hcs_$make_ptr (null, segname, entname, entry_ptr, code); 338 if entry_ptr = null 339 then return (iox_$err_no_operation); 340 341 call cu_$make_entry_value (entry_ptr, entry_result); 342 return (entry_result); 343 end get_entry; 344 345 /* REPORT_ERROR -- internal procedure to call sub_err_ with a channel name */ 346 347 report_error: 348 procedure (err_name); 349 350 dcl err_name char (*); 351 dcl 1 auto_meters_error_info aligned like comm_meters_error_info; 352 353 comm_meters_errp = addr (auto_meters_error_info); 354 comm_meters_error_info.version = COMM_METERS_ERR_V1; 355 comm_meters_error_info.chan_name = err_name; 356 comm_meters_error_info.more_than_one_starname = (hbound (a_chan_names, 1) > 1); 357 if name_matched 358 then do; 359 comm_meters_error_info.starname_matched = "1"b; 360 comm_meters_error_info.more_than_one_match = (n_channels > 1); 361 end; 362 else comm_meters_error_info.starname_matched, comm_meters_error_info.more_than_one_match = "0"b; 363 364 call sub_err_ (code, "comm_meters_", "c", comm_meters_errp, 0, "Processing channel name ^a", err_name); 365 return; 366 end report_error; 367 1 1 /* Begin include file ..... multiplexer_types.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 1 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 1 8* Add support of protocol mpx. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* This include file defines known multiplexer types */ 1 13 /* Prepared August 1978 by Larry Johnson */ 1 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 1 15 1 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 1 17 MCS_MPX init (1), /* FNP running MCS */ 1 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 1 19 USER2_MPX init (3), 1 20 USER3_MPX init (4), 1 21 USER4_MPX init (5), 1 22 USER5_MPX init (6), 1 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 1 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 1 25 STY_MPX init (9), /* Software Terminal Facility */ 1 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 1 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 1 28 HASP_MPX init (12), /* HASP RJE protocol */ 1 29 UNCP_MPX init (13), /* DSA protocol */ 1 30 SYSTEM2_MPX init (14), 1 31 SYSTEM1_MPX init (15), 1 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 1 33 int static options (constant); 1 34 1 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 1 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 1 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 1 38 "protocol"); 1 39 1 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 1 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 1 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 1 43 1 44 /* End include file ..... multiplexer_types.incl.pl1 */ 368 369 2 1 /* BEGIN INCLUDE FILE...chan_star_info.incl.pl1 */ 2 2 2 3 /* Include file to define structure used by metering_ring_zero_peek_$comm_chan_star_list */ 2 4 2 5 /* Created February 1981 by Robert Coren */ 2 6 2 7 dcl chan_star_list_ptr pointer; 2 8 dcl chan_star_count fixed bin; 2 9 2 10 dcl CHAN_STAR_INFO_VERSION_1 fixed bin int static options (constant) init (1); 2 11 2 12 dcl 1 chan_star_info based (chan_star_list_ptr) aligned, 2 13 2 version fixed bin, 2 14 2 n_channels fixed bin, 2 15 2 chan_entry (chan_star_count refer (chan_star_info.n_channels)), /* one for each matching name */ 2 16 3 name char (32), /* name of channel */ 2 17 3 mpx_type fixed bin, /* type of this channel */ 2 18 3 parent_type fixed bin, /* type of immediately superior multiplexer (-1 if level 1 channel) */ 2 19 3 line_type fixed bin; /* line type of this channel */ 2 20 2 21 2 22 /* END INCLUDE FILE...chan_star_info.incl.pl1 */ 370 371 3 1 /* BEGIN INCLUDE FILE...get_comm_meters_info.incl.pl1 */ 3 2 3 3 /* This include file defines the info structure(s) used with the get_meters order to MCM */ 3 4 /* A program that includes this include file must alos include lct.incl.pl1 */ 3 5 3 6 /* Written Decemeber 1980 by Robert Coren */ 3 7 3 8 dcl 1 get_comm_meters_info aligned based, /* info_ptr points to this */ 3 9 2 version fixed bin, 3 10 2 pad fixed bin, 3 11 2 subchan_ptr pointer, /* pointer to meters kept by the subchannel */ 3 12 2 logical_chan_ptr pointer, /* pointer to meters kept by channel_manager */ 3 13 2 parent_ptr pointer, /* pointer to meters kept by the parent multiplexer */ 3 14 2 subchan_type fixed bin, /* multiplexer type of subchannel */ 3 15 2 parent_type fixed bin; /* multiplexer type of parent */ 3 16 3 17 dcl 1 logical_chan_meters based aligned, /* pointed to by get_comm_meters_info.logical_chan_ptr */ 3 18 2 current_meters like lcte.meters, /* latest values */ 3 19 2 saved_meters like lcte.meters; /* values as of last copy_meters */ 3 20 3 21 dcl GET_COMM_METERS_INFO_VERSION_1 fixed bin int static options (constant) init (1); 3 22 3 23 /* END INCLUDE FILE...get_comm_meters_info.incl.pl1 */ 372 373 4 1 /* BEGIN INCLUDE FILE...channel_meters.incl.pl1 */ 4 2 4 3 /* Include file to define meters reported by comm_meters_ for all channels */ 4 4 4 5 /* Created February 1981 by Robert Coren */ 4 6 4 7 dcl chan_meterp pointer; 4 8 4 9 dcl CHANNEL_METERS_VERSION_1 fixed bin int static options (constant) init (1); 4 10 4 11 dcl 1 channel_meters aligned based (chan_meterp), 4 12 2 version fixed bin, 4 13 2 multiplexer_type fixed bin, /* of this channel */ 4 14 2 parent_type fixed bin, /* multiplexer type of parent (or -1 if this is level 1 */ 4 15 2 line_type fixed bin, /* line type of this channel */ 4 16 2 flags, 4 17 3 reserved bit (36) unaligned, 4 18 2 pad1 fixed bin, 4 19 2 channel_name char (32), 4 20 2 mpx_specific_meterp pointer, /* pointer to meters for this channel's multiplexer type */ 4 21 2 parent_meterp pointer, /* pointer to meters kept for channel by its parent */ 4 22 2 next_channelp pointer, /* pointer to structure for next channel in list */ 4 23 2 cumulative, /* meters accumulated since last load of parent */ 4 24 3 unconverted_input_chars fixed bin (35), /* characters input (before conversion) */ 4 25 3 converted_output_chars fixed bin (35), /* characters output (after conversion) */ 4 26 3 read_calls fixed bin, /* calls to channel_manager$read */ 4 27 3 write_calls fixed bin, /* calls to channel_manager$write */ 4 28 3 control_calls fixed bin, /* calls to channel_manager$control */ 4 29 3 software_interrupts fixed bin, /* calls to channel$manager$interrupt on behalf of this channel */ 4 30 3 read_call_time fixed bin (71), /* time accumulated in channel_manager$read */ 4 31 3 write_call_time fixed bin (71), /* time accumulated in channel_manager$write */ 4 32 3 control_call_time fixed bin (71), /* time accumulated in channel_manager$control */ 4 33 3 interrupt_time fixed bin (71), /* time spent handling software interrupts */ 4 34 3 pad (4) fixed bin, 4 35 2 saved like channel_meters.cumulative; /* meters saved when channel last dialed up */ 4 36 4 37 /* END INCLUDE FILE...channel_meters.incl.pl1 */ 374 375 5 1 /* BEGIN INCLUDE FILE ... lct.incl.pl1 */ 5 2 5 3 /* Created by J. Stern 7/26/78 */ 5 4 /* Metering information added by C. Hornig, March 1980. */ 5 5 /* Unwired saved meters added by Robert Coren, December 1980 */ 5 6 5 7 dcl lctp ptr; /* ptr to logical channel table */ 5 8 dcl lctep ptr; /* ptr to logical channel table entry */ 5 9 dcl lct_size fixed bin; /* size of lcte_array when allocated */ 5 10 5 11 dcl 1 lct aligned based (lctp), /* logical channel table */ 5 12 2 max_no_lctes fixed bin, /* maximum number of lct entries */ 5 13 2 cur_no_lctes fixed bin, /* current number of lct entries used */ 5 14 2 lcnt_ptr ptr, /* ptr to logical channel name table */ 5 15 2 queue_lock bit (36), /* lock used to serialize queueing operations */ 5 16 2 pad (11) fixed bin, 5 17 2 lcte_array (lct_size refer (lct.max_no_lctes)) like lcte; /* lct entries */ 5 18 5 19 5 20 dcl 1 lcte aligned based (lctep), /* logical channel table entry */ 5 21 2 lock bit (36), /* channel lock */ 5 22 2 data_base_ptr ptr unal, /* ptr to channel data base */ 5 23 2 channel_type fixed bin (8) unal, /* identifies channel manager program */ 5 24 2 flags unal, 5 25 3 entry_in_use bit (1) unal, /* ON if this entry in use */ 5 26 3 initialized bit (1) unal, /* ON if this channel initialized */ 5 27 3 notify_reqd bit (1) unal, /* ON if must notify when unlocking this channel */ 5 28 3 locked_for_interrupt bit (1) unal, /* ON if lock set by interrupt handler */ 5 29 3 space_needed bit (1) unal, /* ON if this channel needs buffer space */ 5 30 3 special_lock bit (1) unal, /* ON if lock is managed by multiplexer */ 5 31 3 trace_force bit (1) unal, /* ON to trace based on next bit only */ 5 32 /* OFF to XOR next bit with tty_buf.default_tracing */ 5 33 3 trace bit (1) unal, /* ON to trace this channel */ 5 34 3 unused bit (1) unal, 5 35 2 physical_channel_devx fixed bin (17) unal, /* devx of physical chan from which logical chan is derived */ 5 36 2 major_channel_info, 5 37 3 major_channel_devx fixed bin unal, /* major channel device index */ 5 38 3 subchannel fixed bin (17) unal, /* subchannel id (or data ptr) wrt major channel */ 5 39 2 queue_entries, 5 40 3 queue_head bit (18) unal, /* ptr to first queue entry for this channel */ 5 41 3 queue_tail bit (18) unal, /* ptr to last queue entry for this channel */ 5 42 2 word_counts, 5 43 3 input_words fixed bin (17) unal, /* number of input words charged to this channel */ 5 44 3 output_words fixed bin (17) unal, /* number of output words charged to this channel */ 5 45 5 46 2 meters, 5 47 3 in_bytes fixed bin (35), 5 48 3 out_bytes fixed bin (35), 5 49 3 in, 5 50 4 calls fixed bin (35), 5 51 4 interrupts fixed bin (35), 5 52 4 call_time fixed bin (71), 5 53 4 interrupt_time fixed bin (71), 5 54 3 out like lcte.meters.in, 5 55 3 control like lcte.meters.in, 5 56 2 saved_meters_ptr ptr, /* pointer to unwired copy of meters saved at last dialup */ 5 57 5 58 2 timer_offset bit (18) aligned, /* Head of list of timers for this channel */ 5 59 5 60 2 pad (3) fixed bin (35); 5 61 5 62 5 63 dcl lcntp ptr; /* ptr to logical channel name table */ 5 64 5 65 dcl 1 lcnt aligned based (lcntp), /* logical channel name table */ 5 66 2 names (lct.max_no_lctes) char (32) unal; /* channel names */ 5 67 5 68 dcl 1 saved_meters aligned based like lcte.meters; /* meters saved at dialup, allocated in tty_area */ 5 69 5 70 5 71 /* END INCLUDE FILE ... lct.incl.pl1 */ 376 377 6 1 /* BEGIN INCLUDE FILE ... comm_meters_error_info.incl.pl1 */ 6 2 6 3 /* Additional info structure used by comm_meters_ when calling sub_err_ */ 6 4 6 5 /* Created July 1981 by Robert Coren */ 6 6 6 7 6 8 dcl 1 comm_meters_error_info aligned based (comm_meters_errp), 6 9 2 version fixed bin, 6 10 2 chan_name char (32), 6 11 2 flags, 6 12 3 starname_matched bit (1) unal, /* didn't die on first starname */ 6 13 3 more_than_one_starname bit (1) unal, /* caller supplied more than one starname */ 6 14 3 more_than_one_match bit (1) unal, /* we're processing more than one channel name */ 6 15 3 pad bit (33) unal; 6 16 6 17 dcl comm_meters_errp ptr; 6 18 6 19 dcl COMM_METERS_ERR_V1 fixed bin internal static options (constant) init (1); 6 20 6 21 /* END INCLUDE FILE ... comm_meters_error_info.incl.pl1 */ 378 379 380 end comm_meters_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1005.1 comm_meters_.pl1 >special_ldd>install>MR12.3-1100>comm_meters_.pl1 368 1 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 370 2 06/18/81 0900.5 chan_star_info.incl.pl1 >ldd>include>chan_star_info.incl.pl1 372 3 06/18/81 0900.6 get_comm_meters_info.incl.pl1 >ldd>include>get_comm_meters_info.incl.pl1 374 4 06/19/81 2115.0 channel_meters.incl.pl1 >ldd>include>channel_meters.incl.pl1 376 5 11/08/82 1005.8 lct.incl.pl1 >ldd>include>lct.incl.pl1 378 6 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 constant fixed bin(17,0) initial dcl 4-9 ref 86 CHAN_STAR_INFO_VERSION_1 000231 constant fixed bin(17,0) initial dcl 2-10 set ref 109* COMM_METERS_ERR_V1 constant fixed bin(17,0) initial dcl 6-19 ref 354 GET_COMM_METERS_INFO_VERSION_1 constant fixed bin(17,0) initial dcl 3-21 ref 137 a_area_ptr parameter pointer dcl 32 ref 12 92 243 248 a_chan_meterp parameter pointer dcl 36 set ref 12 125* 243 249* 269* a_chan_names parameter char array packed unaligned dcl 30 set ref 12 108 109* 113* 356 a_code parameter fixed bin(35,0) dcl 37 set ref 12 88* 101* 114* 234* 236* 243 250* a_entry_type parameter char packed unaligned dcl 318 in procedure "get_entry" ref 315 335 a_entry_type parameter char packed unaligned dcl 33 in procedure "comm_meters_" set ref 255 260* a_list_meterp parameter pointer dcl 279 ref 276 282 a_mpx_type parameter fixed bin(17,0) dcl 319 in procedure "get_entry" ref 315 334 a_mpx_type parameter fixed bin(17,0) dcl 34 in procedure "comm_meters_" set ref 255 260* a_n_channels parameter fixed bin(17,0) dcl 35 set ref 12 238* a_version parameter fixed bin(17,0) dcl 31 ref 12 86 130 addr builtin function dcl 83 ref 138 170 170 174 174 353 area 000212 stack reference condition dcl 84 ref 98 auto_logical_meters 000136 automatic structure level 1 dcl 55 set ref 138 auto_meters_error_info 000262 automatic structure level 1 dcl 351 set ref 353 call_time 4 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 197 call_time 36 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 217 call_time 20 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 201 call_time 30 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 215 call_time 12 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 199 call_time 44 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 219 calls 34 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 216 calls 10 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 198 calls 16 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 200 calls 2 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 196 calls 26 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 214 calls 42 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 218 chan_entry 2 based structure array level 2 dcl 2-12 chan_meter_area based area(256) dcl 61 ref 124 181 304 chan_meter_areap 000100 automatic pointer dcl 42 set ref 92* 124 141* 152* 181 248* 304 chan_meterp 000236 automatic pointer dcl 4-7 set ref 124* 125 127 130 131 132 133 134 135 149 151 162 163 181 190 194 195 196 197 198 199 200 201 203 207 212 213 214 215 216 217 218 219 220 224 282* 283 284 286 287 288 293 295 296 297 303 304 305* chan_name 000113 automatic char(32) packed unaligned dcl 50 in procedure "comm_meters_" set ref 123* 135 144* 155* 170* 174* 180* chan_name 1 based char(32) level 2 in structure "comm_meters_error_info" dcl 6-8 in procedure "comm_meters_" set ref 355* chan_star_info based structure level 1 dcl 2-12 ref 230 267 chan_star_list_ptr 000234 automatic pointer dcl 2-7 set ref 95* 109* 120 121 122 123 133 134 230 231* 267 267 channel_meters based structure level 1 dcl 4-11 set ref 124 181 304 channel_name 6 based char(32) level 2 dcl 4-11 set ref 135* chanx 000111 automatic fixed bin(17,0) dcl 48 set ref 121* 122 123 133 134* cleanup 000220 stack reference condition dcl 84 ref 97 code 000103 automatic fixed bin(35,0) dcl 44 in procedure "comm_meters_" set ref 109* 111 114 141* 142 144 152* 153 155 170* 174* 177 234 250 287* 288 288* 296* 297 297* 302* 364* code 000126 automatic fixed bin(35,0) dcl 325 in procedure "get_entry" set ref 337* comm_meters_error_info based structure level 1 dcl 6-8 comm_meters_errp 000240 automatic pointer dcl 6-17 set ref 353* 354 355 356 359 360 362 362 364* control 16 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" control 42 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" control_call_time 60 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 219* control_call_time 36 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 201* control_calls 30 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 200* control_calls 52 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 218* converted_output_chars 47 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 213* converted_output_chars 25 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 195* cu_$make_entry_value 000030 constant entry external dcl 327 ref 341 cumulative 24 based structure level 2 dcl 4-11 current_meters 000136 automatic structure level 2 dcl 55 entname 000110 automatic char(32) packed unaligned dcl 322 set ref 335* 337* entry_ptr 000120 automatic pointer dcl 323 set ref 337* 338 341* entry_result 000122 automatic entry variable dcl 324 set ref 341* 342 entry_var 000206 automatic entry variable dcl 70 set ref 139* 141 151* 152 286* 287 295* 296 err_name parameter char packed unaligned dcl 350 set ref 347 355 364* error_table_$no_operation 000024 external static fixed bin(35,0) dcl 77 ref 144 155 error_table_$noalloc 000022 external static fixed bin(35,0) dcl 76 ref 101 error_table_$unimplemented_version 000026 external static fixed bin(35,0) dcl 78 ref 88 flags 11 based structure level 2 dcl 6-8 get_comm_meters_info based structure level 1 dcl 3-8 get_system_free_area_ 000010 constant entry external dcl 66 ref 105 hbound builtin function dcl 83 ref 108 356 hcs_$make_ptr 000032 constant entry external dcl 328 ref 337 i 000110 automatic fixed bin(17,0) dcl 47 set ref 108* 109 113* in 2 based structure level 2 in structure "saved_meters" dcl 5-68 in procedure "comm_meters_" in 30 based structure array level 4 in structure "lct" dcl 5-11 in procedure "comm_meters_" in 26 based structure level 3 in structure "logical_chan_meters" dcl 3-17 in procedure "comm_meters_" in 10 based structure level 3 in structure "lcte" dcl 5-20 in procedure "comm_meters_" in 2 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" in 26 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" in 2 based structure level 3 in structure "logical_chan_meters" dcl 3-17 in procedure "comm_meters_" in_bytes 24 000136 automatic fixed bin(35,0) level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 212 in_bytes 000136 automatic fixed bin(35,0) level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 194 interrupt_time 32 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 224 interrupt_time 46 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 224 interrupt_time 14 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 207 interrupt_time 22 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 207 interrupt_time 62 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 224* interrupt_time 40 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 207* interrupt_time 6 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 207 interrupt_time 40 000136 automatic fixed bin(71,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 224 interrupts 35 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 220 interrupts 17 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 203 interrupts 3 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 203 interrupts 11 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 203 interrupts 27 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 220 interrupts 43 000136 automatic fixed bin(35,0) level 4 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 220 iox_$err_no_operation 000034 constant entry external dcl 330 ref 338 last_chanp 000104 automatic pointer dcl 45 set ref 94* 125 127 183 183 190* 269 lcte based structure level 1 dcl 5-20 line_type 14 based fixed bin(17,0) array level 3 in structure "chan_star_info" dcl 2-12 in procedure "comm_meters_" ref 133 line_type 3 based fixed bin(17,0) level 2 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 133* linkage_error 000226 stack reference condition dcl 84 ref 167 169 175 logical_chan_meters based structure level 1 dcl 3-17 logical_chan_ptr 4 000124 automatic pointer level 2 dcl 53 set ref 138* meter_info 000124 automatic structure level 1 dcl 53 set ref 170 170 174 174 metering_gate_$comm_chan_star_list 000012 constant entry external dcl 67 ref 109 metering_gate_$get_comm_meters 000014 constant entry external dcl 68 ref 170 meters 6 based structure level 2 in structure "lcte" dcl 5-20 in procedure "comm_meters_" meters 26 based structure array level 3 in structure "lct" dcl 5-11 in procedure "comm_meters_" more_than_one_match 11(02) based bit(1) level 3 packed packed unaligned dcl 6-8 set ref 360* 362* more_than_one_starname 11(01) based bit(1) level 3 packed packed unaligned dcl 6-8 set ref 356* mpx_specific_meterp 16 based pointer level 2 dcl 4-11 set ref 162* 284 287* mpx_type 12 based fixed bin(17,0) array level 3 in structure "chan_star_info" dcl 2-12 in procedure "comm_meters_" ref 122 mpx_type 000112 automatic fixed bin(17,0) dcl 49 in procedure "comm_meters_" set ref 122* 132 139* mpx_types 000000 constant char(32) initial array packed unaligned dcl 1-35 set ref 288* 297* 334 multiplexer_type 1 based fixed bin(17,0) level 2 dcl 4-11 set ref 132* 286* 288 n_channels 000102 automatic fixed bin(17,0) dcl 43 in procedure "comm_meters_" set ref 93* 120* 120 186* 186 234 238 360 n_channels 1 based fixed bin(17,0) level 2 in structure "chan_star_info" dcl 2-12 in procedure "comm_meters_" ref 120 121 230 267 name 2 based char(32) array level 3 dcl 2-12 ref 123 name_matched 000123 automatic bit(1) packed unaligned dcl 51 set ref 106* 119* 357 names_area based area(256) dcl 60 ref 230 267 names_areap 000106 automatic pointer dcl 46 set ref 105* 109* 230 267 next_channelp 22 based pointer level 2 dcl 4-11 set ref 127* 131* 183* 303 next_chanp 000100 automatic pointer dcl 280 set ref 303* 305 null builtin function dcl 83 ref 94 95 125 131 146 157 160 183 183 231 267 269 283 284 288 288 293 297 297 337 337 338 out 34 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" out 10 000136 automatic structure level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" out_bytes 25 000136 automatic fixed bin(35,0) level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 213 out_bytes 1 000136 automatic fixed bin(35,0) level 3 in structure "auto_logical_meters" dcl 55 in procedure "comm_meters_" set ref 195 parent_meterp 20 based pointer level 2 dcl 4-11 set ref 163* 293 296* parent_ptr 6 000124 automatic pointer level 2 dcl 53 set ref 152* 157* 160* 163 parent_type 2 based fixed bin(17,0) level 2 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 134* 149 151* 295* 297 parent_type 13 based fixed bin(17,0) array level 3 in structure "chan_star_info" dcl 2-12 in procedure "comm_meters_" ref 134 phcs_$get_comm_meters 000016 constant entry external dcl 69 ref 174 read_call_time 54 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 215* read_call_time 32 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 197* read_calls 26 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 196* read_calls 50 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 214* rtrim builtin function dcl 332 ref 334 saved 46 based structure level 2 dcl 4-11 saved_meters 24 000136 automatic structure level 2 dcl 55 segname 000100 automatic char(32) packed unaligned dcl 321 set ref 334* 337* software_interrupts 31 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 203* software_interrupts 53 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 220* starname_matched 11 based bit(1) level 3 packed packed unaligned dcl 6-8 set ref 359* 362* sub_err_ 000020 constant entry external dcl 71 ref 288 297 364 subchan_ptr 2 000124 automatic pointer level 2 dcl 53 set ref 141* 146* 162 unconverted_input_chars 46 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 212* unconverted_input_chars 24 based fixed bin(35,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 194* version based fixed bin(17,0) level 2 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 130* version 000124 automatic fixed bin(17,0) level 2 in structure "meter_info" dcl 53 in procedure "comm_meters_" set ref 137* version based fixed bin(17,0) level 2 in structure "comm_meters_error_info" dcl 6-8 in procedure "comm_meters_" set ref 354* write_call_time 56 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 217* write_call_time 34 based fixed bin(71,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 199* write_calls 27 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 198* write_calls 51 based fixed bin(17,0) level 3 in structure "channel_meters" dcl 4-11 in procedure "comm_meters_" set ref 216* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. HASP_MPX internal static fixed bin(17,0) initial dcl 1-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 1-16 LAP_MPX internal static fixed bin(17,0) initial dcl 1-16 MCS_MPX internal static fixed bin(17,0) initial dcl 1-16 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 1-16 STY_MPX internal static fixed bin(17,0) initial dcl 1-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 1-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 1-16 TTY_MPX internal static fixed bin(17,0) initial dcl 1-16 UNCP_MPX internal static fixed bin(17,0) initial dcl 1-16 USER1_MPX internal static fixed bin(17,0) initial dcl 1-16 USER2_MPX internal static fixed bin(17,0) initial dcl 1-16 USER3_MPX internal static fixed bin(17,0) initial dcl 1-16 USER4_MPX internal static fixed bin(17,0) initial dcl 1-16 USER5_MPX internal static fixed bin(17,0) initial dcl 1-16 VIP7760_MPX internal static fixed bin(17,0) initial dcl 1-16 X25_MPX internal static fixed bin(17,0) initial dcl 1-16 chan_star_count automatic fixed bin(17,0) dcl 2-8 lcnt based structure level 1 dcl 5-65 lcntp automatic pointer dcl 5-63 lct based structure level 1 dcl 5-11 lct_size automatic fixed bin(17,0) dcl 5-9 lctep automatic pointer dcl 5-8 lctp automatic pointer dcl 5-7 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 1-40 saved_meters based structure level 1 dcl 5-68 NAMES DECLARED BY EXPLICIT CONTEXT. cleanup_proc 001426 constant entry internal dcl 264 ref 97 100 115 comm_meters_ 000340 constant entry external dcl 12 exit 001273 constant label dcl 239 ref 102 free 001306 constant entry external dcl 243 free_all 001464 constant entry internal dcl 276 ref 249 269 get_entry 002011 constant entry internal dcl 315 ref 139 151 260 286 295 get_mpx_entry 001352 constant entry external dcl 255 proceed 001141 constant label dcl 177 ref 171 report_error 002155 constant entry internal dcl 347 ref 113 144 155 180 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2562 2620 2320 2572 Length 3156 2320 36 321 241 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comm_meters_ 264 external procedure is an external procedure. on unit on line 97 64 on unit on unit on line 98 64 on unit on unit on line 167 86 on unit enables or reverts conditions. cleanup_proc 70 internal procedure is called by several nonquick procedures. free_all 126 internal procedure is called by several nonquick procedures. get_entry 114 internal procedure is called by several nonquick procedures. report_error internal procedure shares stack frame of external procedure comm_meters_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comm_meters_ 000100 chan_meter_areap comm_meters_ 000102 n_channels comm_meters_ 000103 code comm_meters_ 000104 last_chanp comm_meters_ 000106 names_areap comm_meters_ 000110 i comm_meters_ 000111 chanx comm_meters_ 000112 mpx_type comm_meters_ 000113 chan_name comm_meters_ 000123 name_matched comm_meters_ 000124 meter_info comm_meters_ 000136 auto_logical_meters comm_meters_ 000206 entry_var comm_meters_ 000234 chan_star_list_ptr comm_meters_ 000236 chan_meterp comm_meters_ 000240 comm_meters_errp comm_meters_ 000262 auto_meters_error_info report_error free_all 000100 next_chanp free_all get_entry 000100 segname get_entry 000110 entname get_entry 000120 entry_ptr get_entry 000122 entry_result get_entry 000126 code get_entry THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 signal_op enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$make_entry_value get_system_free_area_ hcs_$make_ptr iox_$err_no_operation metering_gate_$comm_chan_star_list metering_gate_$get_comm_meters phcs_$get_comm_meters sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$no_operation error_table_$noalloc error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000332 86 000364 88 000367 89 000371 92 000400 93 000402 94 000403 95 000405 97 000406 98 000430 100 000444 101 000451 102 000455 105 000460 106 000467 108 000470 109 000501 111 000547 113 000551 114 000577 115 000601 116 000605 119 000614 120 000616 121 000621 122 000627 123 000634 124 000640 125 000645 127 000653 130 000655 131 000660 132 000662 133 000664 134 000672 135 000674 137 000677 138 000701 139 000703 141 000730 142 000747 144 000751 146 000757 149 000761 151 000764 152 001010 153 001027 155 001031 157 001037 159 001041 160 001042 162 001044 163 001047 167 001051 169 001065 170 001066 171 001112 174 001115 175 001140 177 001141 180 001143 181 001146 183 001150 186 001157 187 001161 190 001162 194 001164 195 001166 196 001170 197 001172 198 001174 199 001176 200 001200 201 001202 203 001204 207 001211 212 001215 213 001217 214 001221 215 001223 216 001225 217 001227 218 001231 219 001233 220 001235 224 001242 229 001246 230 001250 231 001256 232 001260 234 001262 236 001267 238 001270 239 001273 243 001302 248 001324 249 001327 250 001335 251 001337 255 001346 260 001366 264 001425 267 001433 269 001446 271 001462 276 001463 282 001471 283 001476 284 001503 286 001510 287 001533 288 001551 293 001636 295 001644 296 001671 297 001707 302 001774 303 001776 304 002001 305 002003 306 002006 307 002007 315 002010 334 002024 335 002063 337 002071 338 002121 341 002135 342 002146 347 002155 353 002166 354 002170 355 002172 356 002200 357 002211 359 002213 360 002215 361 002224 362 002225 364 002231 365 002305 ----------------------------------------------------------- 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