COMPILATION LISTING OF SEGMENT dump_cdt_ 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.6 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* Subroutine to dump the CDT, all fields. 13* THVV 14* Modified by Mike Grady 5/11/76 to convert to version 2 CDT 15* Modified by T. Casey, November 1976 to dump some variables omitted from previous version. 16* Modified by Robert Coren, June 1977, for new terminal type fields and dont_read_answerback attribute. 17* Modified by T. Casey, September 1977, to get device charge name from installation_parms. 18* Modified January 1979 by Larry Johnson for multiplexer data. 19* Modified April 1979 by Larry Johnson for new things in fnpe's. 20* Modified 1979 May 25 by Art Beattie to accomodate change in cdt.incl.pl1. 21* Modified November 1979 by T. Casey for MR8.0 to dump process preservation variables. 22* Modified January 1981 by E. N. Kittlitz to eliminate cdte.phone_no. 23* Modified July 1981 by T. Casey for MR9.0 to dump some new cdte variables. 24* Modified December 1981 (but barely) for trees in the cdt by Benson I. Margulies. 25* Modified August 1982 (even less) by E. N. Kittlitz for masked channel state. 26* Modified August 1982 by E. N. Kittlitz for check_acs. 27* Modified January 1983 by Keith Loepere for generic_destination. 28* Modified 831216 by E. N. Kittlitz for required_access_class. 29* Modified 84-03-22 BIM for full AIM support, removed obsolete fields. 30**/ 31 32 33 /****^ HISTORY COMMENTS: 34* 1) change(87-03-31,Beattie), approve(87-04-06,MCR7656), 35* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1055): 36* Display new variables that support use of IOCBs in answering service. 37* END HISTORY COMMENTS */ 38 39 40 /* format: style4 */ 41 42 dump_cdt_: procedure (Info_ptr, Code); 43 44 /* parameters */ 45 46 dcl Info_ptr pointer; 47 dcl Code fixed bin (35); 48 49 /* automatic */ 50 51 dcl (i, n) fixed bin; 52 declare found_a_match bit (1) aligned; 53 dcl (time, avg) float bin; 54 dcl indent fixed bin; 55 dcl (fnpx, cdtx) fixed bin; 56 dcl fnp_find_sw bit (1) aligned; 57 dcl temp_dev_name char (8); 58 dcl code fixed bin (35); 59 dcl error character (100) aligned; 60 61 dcl 1 devtab_copy (16) aligned, 62 2 device_id char (8) unal, 63 2 device_price (0:7) float bin; 64 65 dcl two_digits picture "99"; 66 67 dcl visited (2711) bit (1) unaligned; 68 dcl tcount fixed bin; 69 70 dcl 1 CI aligned like condition_info; 71 72 /* internal static */ 73 74 dcl fnp_tags (8) char (1) int static options (constant) init 75 ("a", "b", "c", "d", "e", "f", "g", "h"); 76 77 dcl attribute_flag_names (5) char (32) varying int static options (constant) init 78 ("ck_answerback", 79 "audit_access_error", 80 "hardwired", 81 "set_modes", 82 "dont_read_answerback"); 83 84 dcl option_flag_names (9) char (32) varying int static options (constant) init 85 ("execute_initial_command", 86 "attached_by_operator", 87 "private_line", 88 "bsc_ebcdic", 89 "bsc_transparent", 90 "vip_poll_select", 91 "autobaud", 92 "generic_destination_present", 93 "use_iocb"); 94 95 dcl access_check_flag_names (5) char (32) varying init ( 96 "dial_out", 97 "priv_attach", 98 "dial_server", 99 "login", 100 "dial_slave") int static options (constant); 101 102 dcl dialup_flag_names (11) char (32) varying int static options (constant) init 103 ("ppm", 104 "cpo", 105 "wakeup_handler", 106 "save_arg", 107 "nosave_arg", 108 "detach_after_hangup", 109 "leave_edited", 110 "hold_arg", 111 "no_hold_arg", 112 "immediate_arg", 113 "current_access_class_valid"); 114 115 /* entries */ 116 117 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 118 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 119 dcl ioa_$ioa_switch entry options (variable); 120 dcl date_time_ entry (fixed bin (71), char (*)); 121 dcl convert_authorization_$to_string_range_short entry ((2) bit (72) aligned, character (*), 122 fixed binary (35)); 123 dcl convert_authorization_$to_string_short entry (bit (72) aligned, character (*), fixed binary (35)); 124 dcl system_info_$device_prices entry (fixed bin, ptr); 125 dcl cdt_mgr_$find_cdt_channel entry (ptr, char (32), fixed bin, bit (1) aligned, fixed bin (35)); 126 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 127 128 dcl error_table_$nomatch fixed bin (35) ext static; 129 130 /* builtins */ 131 132 dcl (addr, divide, fixed, float, hbound, lbound, length, low, ltrim, null, rtrim, string, substr) builtin; 133 134 dcl sub_error_ condition; 135 136 /* include files */ 137 1 1 /* Begin include file dump_cdt_args_.incl.pl1 BIM 1/82 */ 1 2 /* format: style3,idind25 */ 1 3 1 4 declare dca_ptr pointer; 1 5 declare 1 dump_cdt_args aligned based (dca_ptr), 1 6 2 switch pointer, 1 7 2 cdt_ptr pointer, 1 8 2 flags aligned, 1 9 3 hdr bit (1) unaligned, 1 10 3 subtree bit (1) unaligned, 1 11 3 brief bit (1) unaligned, 1 12 3 all bit (1) unaligned, /* same as ** */ 1 13 3 starname bit (1) unaligned, 1 14 3 pad bit (31) unaligned, 1 15 2 channel_name character (32) unaligned;/* or starname */ 1 16 1 17 /* End include file */ 138 139 140 2 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 2 2 2 3 /* format: style3,idind25,indcomtxt */ 2 4 2 5 /* Channel Definition Table. 2 6* This table lists all of the hardware channels (ports) connected 2 7* to the system, and maintains the attributes of each one. 2 8* 2 9* PG 741230 2 10* Modified by Mike Grady 5/6/76 to add FNP info. 2 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 2 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 2 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 2 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 2 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 2 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 2 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 2 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 2 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 2 20* Modified August 1982 by E. N. Kittlitz for check_acs. 2 21* Modified January 1983 by Keith Loepere for generic_destination. 2 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 2 23* Modified 831216 by E. N. Kittlitz for required_access_class. 2 24* Modified 84-04-01 by BIM to finish communications AIM: 2 25* access class ranges, 2 26* access_control flags. 2 27**/ 2 28 2 29 2 30 /****^ HISTORY COMMENTS: 2 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 2 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 2 33* Add support for answering service to use IOCBs when tty_ cannot be 2 34* used to service login channels. 2 35* END HISTORY COMMENTS */ 2 36 2 37 2 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 2 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 2 40 2 41 dcl (cdtp, cdtep, fnpep, mpxep) 2 42 ptr; 2 43 2 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 2 45 2 author like author_dcl.author, /* standard header */ 2 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 2 47 2 current_size fixed bin, /* number of last cdte. */ 2 48 2 version fixed bin, 2 49 2 freep fixed bin, /* chain of free cdte's */ 2 50 2 n_cdtes fixed bin, /* number of used cdte's */ 2 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 2 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 2 53 2 cpu_in_dialup fixed bin (71), /* .. */ 2 54 2 pf_in_dialup fixed bin, /* .. */ 2 55 2 pp_in_dialup fixed bin, /* .. */ 2 56 2 entries_to_dialup fixed bin, /* .. */ 2 57 2 flags, 2 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 2 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 2 60 3 mux_mgr_system_init 2 61 bit (1) unal, /* mux mgr has loaded top-levels */ 2 62 3 pad1 bit (33) unal, 2 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 2 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 2 65 2 threads aligned like channel_threads, 2 66 /* root of non-fnp-top-level-multiplexers */ 2 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 2 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 2 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 2 70 2 71 2 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 2 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 2 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 2 75 2 pad1 bit (36) aligned, 2 76 2 name char (32), /* ASCII name of channel */ 2 77 2 access_class (2) bit (72) aligned, /* access class range */ 2 78 2 comment char (48), /* printable message about channel */ 2 79 2 charge_type fixed bin (17) unal, /* billing group */ 2 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 2 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 2 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 2 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 2 84 2 pad2 bit (18) unaligned, 2 85 2 answerback char (8), /* answerback string expected */ 2 86 2 initial_terminal_type 2 87 char (32) unal, /* as specified in the CMF */ 2 88 2 mpx_data unal, /* data used only for multiplexed channels */ 2 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 2 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 2 91 2 flags, 2 92 ( 3 attributes, 2 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 2 94 4 audit_access_error 2 95 bit (1), /* ON means ck that person auth is inside access class range */ 2 96 /* this implies that the access_class describes a range of 2 97* legitimate user auths. */ 2 98 4 hardwired bit (1), /* ON means it is */ 2 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 2 100 4 dont_read_answerback 2 101 bit (1), /* ON means don't try to read answerback */ 2 102 4 pada bit (4), 2 103 3 access_control unaligned, /* As below */ 2 104 4 dial_out bit (1), /* dialing user must be on ACS */ 2 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 2 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 2 107 4 login bit (1), /* logging in user must be on acs */ 2 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 2 109 4 pado bit (3), 2 110 3 options, 2 111 4 execute_initial_command 2 112 bit (1), /* ON means to do it */ 2 113 4 attached_by_operator 2 114 bit (1), /* ON means temporary attachment. */ 2 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 2 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 2 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 2 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 2 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 2 120 4 generic_destination_present 2 121 bit (1), /* ON means that the initial_command field contains 2 122* a generic destination to match on dial_out or priv attach */ 2 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 2 124 4 pado bit (9) 2 125 ) unaligned, 2 126 2 initial_command char (64), /* pseudo first input line */ 2 127 /**** The following variables represent dynamic control info, and 2 128* are used mostly by dialup_ and asu_ */ 2 129 2 event fixed bin (71), /* event call channel for channel events */ 2 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 2 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 2 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 2 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 2 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 2 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 2 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 2 137 /* 0 = dialup_, 1 = mc_tty_ */ 2 138 3 save_arg bit (1) unal, /* -save login arg given */ 2 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 2 140 3 detach_after_hangup 2 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 2 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 2 143 3 hold_arg bit (1) unal, /* -hold arg given */ 2 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 2 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 2 146 3 current_access_class_valid 2 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 2 148 3 pad bit (7) unal, 2 149 2 twx fixed bin, /* channel device index */ 2 150 2 state fixed bin, /* channel state */ 2 151 2 tty_id_code char (4), /* channel id (answerback) */ 2 152 2 current_terminal_type 2 153 char (32) unal, /* most recently-set terminal type */ 2 154 2 process ptr unal, /* ptr to ATE owning this channel */ 2 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 2 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 2 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 2 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 2 159* We do not yet define multi-class connections, but we will someday. */ 2 160 2 disconnected_ate_index 2 161 fixed bin (17) unal, /* index of ate of disconnected process */ 2 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 2 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 2 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 2 165 2 pad3 bit (14) unaligned, 2 166 /**** The following variables are kept for metering purposes. */ 2 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 2 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 2 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 2 170 2 dialup_time fixed bin (71), /* time of present dialup */ 2 171 2 disconnected_proc_command 2 172 fixed bin (12) unsigned unal, 2 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 2 174 2 disconnected_proc_number 2 175 fixed bin (12) unsigned unal, 2 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 2 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 2 178 /* number of disconnected processes that user has */ 2 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 2 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 2 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 2 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 2 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 2 184 /**** had the space. */ 2 185 2 threads aligned like channel_threads, 2 186 /**** The use name is that of the user who gave the dial or slave ****/ 2 187 /**** preaccess request. ****/ 2 188 2 user_name unaligned, 2 189 3 person char (20) unaligned, 2 190 3 project char (9) unaligned, 2 191 3 pad char (3) unaligned, /* no tag */ 2 192 2 iocbp ptr unaligned; /* 104 words */ 2 193 2 194 2 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 2 196* overlays initial_command field for slave and autocall lines */ 2 197 2 198 2 199 2 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 2 201 /* These variables are filled in from the CMF */ 2 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 2 203 2 memory fixed bin, /* amount of memory on this FNP */ 2 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 2 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 2 206 2 service_type fixed bin, /* service type */ 2 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 2 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 2 209 /**** The following are used during system operation to remember the state of the FNP */ 2 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 2 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 2 212 2 mpxe like mpxe, /* standard multiplexer data */ 2 213 2 threads aligned like channel_threads, 2 214 /* same mpx threads as channel */ 2 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 2 216 2 217 /* This structure describes the data necessary to control a multiplexer. 2 218* For FNP's., a copy appears in the fnpe. For communications lines, it 2 219* overlays the initial_command field in the cdte. */ 2 220 2 221 dcl 1 mpxe based (mpxep) aligned, 2 222 2 state fixed bin, /* current state, up, down, loading */ 2 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 2 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 2 225 2 n_bootloads fixed bin, /* count of load attempts */ 2 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 2 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 2 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 2 229 2 time_load_start fixed bin (71), /* time current load started */ 2 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 2 231 2 flags unal, 2 232 3 go bit (1), /* start MPX after it loads */ 2 233 3 listening bit (1), /* listen has been done on subchannels */ 2 234 3 check bit (1), /* loaded with check option */ 2 235 3 retry_load bit (1), /* reload if load fails */ 2 236 3 pad1 bit (32), 2 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 2 238 2 239 /* These threads define the tree of multiplexers in the cdt. */ 2 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 2 241 /* by alpha sort order of the channel name. Daughter points to the */ 2 242 /* first child of this node, if any. Daughter count is the number */ 2 243 /* of children, as a consistency check. Mother is a back pointer to */ 2 244 /* the parent, present in all the children, not just the first. */ 2 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 2 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 2 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 2 248 2 249 dcl 1 channel_threads aligned based, 2 250 2 next_sister fixed bin unaligned, 2 251 2 prev_sister fixed bin unaligned, 2 252 2 daughter fixed bin unaligned, 2 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 2 254 2 pad bit (18) unaligned, 2 255 2 daughter_count fixed bin unaligned; 2 256 2 257 /* Values for cdte.service_type field */ 2 258 2 259 dcl ( 2 260 ANS_SERVICE init (1), /* login or dial */ 2 261 FTP_SERVICE init (2), /* file transfer service */ 2 262 MC_SERVICE init (3), /* message coordinator */ 2 263 SLAVE_SERVICE init (4), /* special channel */ 2 264 DIAL_SERVICE init (5), /* transient state */ 2 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 2 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 2 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 2 268 ) fixed bin internal static options (constant); 2 269 2 270 /* Values for service type in both cdte and fnpe */ 2 271 2 272 dcl ( 2 273 INACTIVE init (7), /* not to be used, even though configured */ 2 274 ACTIVE init (1) 2 275 ) /* for FNP only, configured and to be used */ 2 276 fixed bin internal static options (constant); 2 277 2 278 /* Value for both cdte.in_use and fnpe.state */ 2 279 2 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 2 281 /* was not configured at Multics bootload time */ 2 282 2 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 2 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 2 285 2 286 /* Value for cdte.in_use */ 2 287 2 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 2 289 /* channel deleted by CDT installation */ 2 290 2 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 2 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 2 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 2 294 2 295 2 296 /* Values for mpxe.state field */ 2 297 2 298 dcl ( 2 299 FNP_FREE init (0), /* this fnpe is not used */ 2 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 2 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 2 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 2 303 FNP_UP init (4) /* FNP is up and running fine */ 2 304 ) fixed bin internal static options (constant); 2 305 2 306 dcl ( 2 307 MPX_FREE init (0), /* this mpxe is not used */ 2 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 2 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 2 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 2 311 MPX_UP init (4) /* MPX is up and running fine */ 2 312 ) fixed bin internal static options (constant); 2 313 3 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 3 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 3 8* Add data needed for the uncp multiplexer (DSA gateway) interface 3 9* implementation. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* Values for fnpe.type field */ 3 14 /* 3 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 3 16* Added in March 1982 - DN7100.fd. 3 17**/ 3 18 3 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 3 20 DN6600 init (2), /* a DataNet 6600 FNP */ 3 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 3 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 3 23 ) fixed bin internal static options (constant); 3 24 3 25 dcl fnp_types (4) char (8) int static options (constant) 3 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 3 27 3 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 3 29 init (355, 6600, 6670, 7100); 3 30 3 31 dcl supported_fnp (4) bit (1) int static options (constant) 3 32 init ("0"b, "0"b, "1"b, "1"b); 3 33 3 34 3 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 2 314 2 315 2 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 141 142 143 4 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 4 2 4 3 /* This include file declares the "author" substructure 4 4* in a form suitable for using the PL/I "like" attribute. 4 5* 4 6* Written 750304 by PG 4 7**/ 4 8 4 9 dcl 1 author_dcl aligned based, 5 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 5 2 5 3 /* the "author" items must always be the first ones in the table. The 5 4* module which moves the converted table to the System Control process 5 5* fills in these data items and assumes them to be at the head of the segment 5 6* regardless of the specific table's actual declaration. The variables 5 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 5 8* respectively. For tables installed in multiple processes, these 5 9* are to be used to lock out multiple installations. */ 5 10 5 11 /* Lock should be used as a modification lock. Since, in general, 5 12* entries may not be moved in system tables, even by installations, 5 13* it is sufficient for only installers and programs that change threads 5 14* to set or respect the lock. Simply updating data in an entry 5 15* requires no such protection. 5 16* 5 17* Last_install_time is used by readers of system tables to detect 5 18* installations or other serious modifications. By checking it before 5 19* and after copying a block of data, they can be protected against 5 20* modifications. 5 21* 5 22* Modules that set the lock should save proc_group_id, and then 5 23* put their group id there for the time they hold the lock. 5 24* if they do not actually install the, they should restore the group id. 5 25**/ 5 26 5 27 2 author aligned, /* validation data about table's author */ 5 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 5 29 3 lock bit (36), /* installation lock */ 5 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 5 31 3 update_authorization bit (1) unal, /* update only authorizations */ 5 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 5 33 3 pad bit (33) unaligned, 5 34 3 last_install_time fixed bin (71), 5 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 5 36 3 w_dir char (64), /* author's working directory */ 5 37 5 38 /* END INCLUDE FILE author.incl.pl1 */ 4 10 4 11 2 pad; 4 12 4 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 144 145 6 1 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 6 2 6 3 /* format: style4 */ 6 4 6 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 6 6 6 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 6 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 6 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 6 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 6 11* WAIT_DISCARD_WAKEUP 6 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 6 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 6 14**/ 6 15 6 16 /****^ HISTORY COMMENTS: 6 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 6 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 6 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 6 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 22* Add named constants for instance tags. 6 23* END HISTORY COMMENTS */ 6 24 6 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 6 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 6 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 6 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 6 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 6 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 6 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 6 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 6 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 6 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 6 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 6 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 6 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 6 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 6 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 6 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 6 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 6 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 6 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 6 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 6 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 6 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 6 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 6 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 6 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 6 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 6 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 6 52 ) fixed bin internal static options (constant); 6 53 6 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 6 55 /* names of ute.destroy_flag values */ 6 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 6 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 6 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 6 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 6 60 "wait remove"); /* -13 */ 6 61 6 62 /* Values for "cdte.state", typewriter state. */ 6 63 6 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 6 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 6 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 6 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 6 68 ) fixed bin internal static options (constant); 6 69 6 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 6 71 /* names of cdte.state values */ 6 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 6 73 6 74 /* Values for "cdte.in_use" and "ate.active" */ 6 75 6 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 6 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 6 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 6 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 6 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 6 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 6 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 6 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 6 84 ) fixed bin internal static options (constant); 6 85 6 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 6 87 /* names of ute.active values */ 6 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 6 89 6 90 6 91 /**** Values for ute.tag */ 6 92 6 93 dcl (TAG_INTERACTIVE init("a"), 6 94 TAG_UFT init("f"), 6 95 TAG_ABSENTEE init("m"), 6 96 TAG_PROXY init("p"), 6 97 TAG_DAEMON init("z") 6 98 ) char(1) int static options(constant); 6 99 6 100 6 101 /**** Following are constants used to indicate to the process termination 6 102* handler the reason for the process termination. They are used by 6 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 6 104* uc_ls_destroy_request_. */ 6 105 6 106 dcl ( 6 107 PT_FPE initial (1), 6 108 PT_LOGOUT initial (4), 6 109 PT_NEW_PROC_AUTH initial (13), 6 110 PT_HANGUP initial (20), 6 111 PT_SHUTDOWN initial (21), 6 112 PT_BUMP initial (22), 6 113 PT_ALARM initial (23), 6 114 PT_DETACH initial (24), 6 115 PT_UNBUMP initial (25), 6 116 PT_OPERATOR_TERMINATE initial (27), 6 117 PT_DESTROY_REQUEST initial (30), 6 118 PT_NEW_PROC_REQUEST initial (31) 6 119 ) fixed bin (17) internal static options (constant); 6 120 6 121 /**** Values for ute.preempted: 6 122* -1 user unbumped after term signal sent 6 123* 0 user unbumped; ignore alarm___ 6 124* 1 value internally used in load_ctl_ 6 125* 2 user bumped; when alarm___ comes in, send term signal 6 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 6 127* signals come in 6 128* 4 user bumped; process sick, so destroy without sending term signal 6 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 6 130* termsgnl). */ 6 131 6 132 dcl ( 6 133 PREEMPT_UNBUMP initial (-1), 6 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 6 135 PREEMPT_LOAD_CTL initial (1), 6 136 PREEMPT_BUMPED initial (2), 6 137 PREEMPT_TERM_SENT initial (3), 6 138 PREEMPT_BUMPED_NO_TERM initial (4), 6 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 6 140 ) fixed bin (17) internal static options(constant); 6 141 6 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 6 143 "unbumped", 6 144 "not bumped, ignore alarm___", 6 145 "load_ctl_", 6 146 "bumped", 6 147 "bumped, trm_ sent", 6 148 "bumped without trm_", 6 149 "bumped, termsgnl received"); 6 150 6 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 146 147 7 1 /* Begin include file ..... multiplexer_types.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 7 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 7 8* Add support of protocol mpx. 7 9* END HISTORY COMMENTS */ 7 10 7 11 7 12 /* This include file defines known multiplexer types */ 7 13 /* Prepared August 1978 by Larry Johnson */ 7 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 7 15 7 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 7 17 MCS_MPX init (1), /* FNP running MCS */ 7 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 7 19 USER2_MPX init (3), 7 20 USER3_MPX init (4), 7 21 USER4_MPX init (5), 7 22 USER5_MPX init (6), 7 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 7 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 7 25 STY_MPX init (9), /* Software Terminal Facility */ 7 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 7 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 7 28 HASP_MPX init (12), /* HASP RJE protocol */ 7 29 UNCP_MPX init (13), /* DSA protocol */ 7 30 SYSTEM2_MPX init (14), 7 31 SYSTEM1_MPX init (15), 7 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 7 33 int static options (constant); 7 34 7 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 7 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 7 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 7 38 "protocol"); 7 39 7 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 7 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 7 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 7 43 7 44 /* End include file ..... multiplexer_types.incl.pl1 */ 148 149 8 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 8 2 /* format: style2 */ 8 3 8 4 declare condition_info_header_ptr 8 5 pointer; 8 6 declare 1 condition_info_header 8 7 aligned based (condition_info_header_ptr), 8 8 2 length fixed bin, /* length in words of this structure */ 8 9 2 version fixed bin, /* version number of this structure */ 8 10 2 action_flags aligned, /* tell handler how to proceed */ 8 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 8 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 8 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 8 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 8 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 8 16 3 pad bit (32) unaligned, 8 17 2 info_string char (256) varying, /* may contain printable message */ 8 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 8 19 8 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 150 9 1 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 9 2 /* format: style2 */ 9 3 9 4 /* The include file condition_info_header must be used with this file */ 9 5 9 6 declare sub_error_info_ptr pointer; 9 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 9 8 2 header aligned like condition_info_header, 9 9 2 retval fixed bin (35), /* return value */ 9 10 2 name char (32), /* module name */ 9 11 2 info_ptr ptr; 9 12 9 13 declare sub_error_info_version_1 9 14 internal static options (constant) fixed bin init (1); 9 15 9 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 151 10 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 10 2 10 3 /* Structure for find_condition_info_. 10 4* 10 5* Written 1-Mar-79 by M. N. Davidoff. 10 6**/ 10 7 10 8 /* automatic */ 10 9 10 10 declare condition_info_ptr pointer; 10 11 10 12 /* based */ 10 13 10 14 declare 1 condition_info aligned based (condition_info_ptr), 10 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 10 16 2 version fixed binary, /* Must be 1 */ 10 17 2 condition_name char (32) varying, /* name of condition */ 10 18 2 info_ptr pointer, /* pointer to the condition data structure */ 10 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 10 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 10 21 2 flags unaligned, 10 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 10 23 3 pad1 bit (35), 10 24 2 pad2 bit (36), 10 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 10 26 2 pad3 (4) bit (36); 10 27 10 28 /* internal static */ 10 29 10 30 declare condition_info_version_1 10 31 fixed binary internal static options (constant) initial (1); 10 32 10 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 152 153 154 /* ====================================================== */ 155 156 Code = 0; 157 dca_ptr = Info_ptr; 158 cdtp = dump_cdt_args.cdt_ptr; 159 indent = 0; 160 161 call system_info_$device_prices ((0), addr (devtab_copy)); 162 163 if dump_cdt_args.hdr then do; 164 call ioa_$ioa_switch (switch, "^/Channel Definition Table^/"); 165 call ioa_$ioa_switch (switch, "author.proc_group_id:^32t^a", cdt.author.proc_group_id); 166 call ioa_$ioa_switch (switch, "author.lock:^32t^w", cdt.author.lock); 167 168 call ioa_$ioa_switch (switch, "author.last_install_time:^32t^a", edit_time (cdt.author.last_install_time)); 169 call ioa_$ioa_switch (switch, "^31a^a", "author.table:", cdt.author.table); 170 call ioa_$ioa_switch (switch, "author.w_dir:^32t^a", cdt.author.w_dir); 171 call ioa_$ioa_switch (switch, "max_size:^32t^d", cdt.max_size); 172 call ioa_$ioa_switch (switch, "current_size:^32t^d", cdt.current_size); 173 call ioa_$ioa_switch (switch, "version:^32t^d", cdt.version); 174 call ioa_$ioa_switch (switch, "freep:^32t^d", cdt.freep); 175 call ioa_$ioa_switch (switch, "n_cdtes:^32t^d", cdt.n_cdtes); 176 call ioa_$ioa_switch (switch, "meters_last_reset:^32t^a", edit_time (cdt.meters_last_reset)); 177 178 if cdt.realtime_in_dialup ^= 0 then do; 179 n = cdt.entries_to_dialup; 180 time = cdt.realtime_in_dialup / 1e6; 181 avg = time / n; 182 call ioa_$ioa_switch (switch, "realtime_in_dialup:^32t^.1f sec^51t^.1f sec avg", 183 time, avg); 184 time = cdt.cpu_in_dialup / 1e6; 185 avg = time / n; 186 call ioa_$ioa_switch (switch, "cpu_in_dialup:^32t^.1f sec^51t^.1f sec avg", 187 time, avg); 188 call ioa_$ioa_switch (switch, "pf_in_dialup:^32t^d^51t^d avg", 189 cdt.pf_in_dialup, divide (cdt.pf_in_dialup, n, 17, 0)); 190 call ioa_$ioa_switch (switch, "pp_in_dialup:^32t^d^51t^d avg", 191 cdt.pp_in_dialup, divide (cdt.pp_in_dialup, n, 17, 0)); 192 call ioa_$ioa_switch (switch, "entries_to_dialup:^32t^d", cdt.entries_to_dialup); 193 end; 194 call ioa_$ioa_switch (switch, "FNP_required_up_time:^32t^d minutes", cdt.acceptable_fnp_tbf); 195 call ioa_$ioa_switch (switch, "Spare_channel_count:^32t^d", cdt.spare_channel_count); 196 call ioa_$ioa_switch (switch, ""); 197 end; 198 199 if ^dump_cdt_args.all & ^dump_cdt_args.starname /* one chan */ 200 then do; 201 if dump_cdt_args.channel_name = "" 202 then return; /* just the header */ 203 call cdt_mgr_$find_cdt_channel (cdtp, (dump_cdt_args.channel_name), cdtx, fnp_find_sw, code); 204 if code ^= 0 205 then do; 206 Code = code; 207 return; 208 end; 209 210 if fnp_find_sw 211 then do; 212 if ^dump_cdt_args.subtree 213 then call print_fnpe (-cdtx); 214 else do; 215 if ^dump_cdt_args.brief 216 then call print_fnpe (-cdtx); 217 call show_children (addr (cdt.fnp_entry (-cdtx).threads), cdtx, "1"b); 218 end; 219 end; 220 else do; 221 if ^dump_cdt_args.subtree 222 then call print_cdte (addr (cdt.cdt_entry (cdtx))); 223 else do; 224 if ^dump_cdt_args.brief 225 then call print_cdte (addr (cdt.cdt_entry (cdtx))); 226 call show_children (addr (cdt.cdt_entry (cdtx).threads), cdtx, "0"b); 227 end; 228 end; 229 return; 230 end; 231 232 233 if dump_cdt_args.all 234 then do; 235 call dump_tree; 236 return; 237 end; 238 239 /* Starname, may be fnp */ 240 241 found_a_match = "0"b; 242 243 do fnpx = 1 to hbound (cdt.fnp_entry, 1); 244 fnpep = addr (cdt.fnp_entry (fnpx)); 245 if fnpe.state ^= FNP_FREE 246 then do; 247 call match_star_name_ (substr (collate (), rank ("a") + fnpx, 1), (dump_cdt_args.channel_name), code); 248 if code = 0 then do; 249 found_a_match = "1"b; 250 if ^dump_cdt_args.subtree then 251 if ^dump_cdt_args.brief then call print_fnpe (fnpx); 252 else call ioa_$ioa_switch (switch, "^2xFNP ^a (^d,^p)", substr (collate (), rank ("a") + fnpx, 1), fnpx, fnpep); 253 else do; 254 if ^dump_cdt_args.brief then call print_fnpe (fnpx); 255 if fnpe.threads.daughter_count = 0 & fnpe.threads.daughter = 0 256 then ; 257 else call show_children (addr (fnpe.threads), -fnpx, "1"b); 258 end; 259 end; 260 end; 261 end; 262 263 /* Or it may be a non-FNP */ 264 265 do i = 1 to cdt.current_size; 266 cdtep = addr (cdt.cdt_entry (i)); 267 if cdte.in_use ^= NOW_FREE then do; 268 call match_star_name_ ((cdte.name), (dump_cdt_args.channel_name), code); 269 if code = 0 then do; 270 found_a_match = "1"b; 271 if ^dump_cdt_args.subtree 272 then if ^dump_cdt_args.brief 273 then call print_cdte (cdtep); 274 else call ioa_$ioa_switch (switch, "Channel ^a (^d,^p)", 275 cdte.name, i, cdtep); 276 else do; 277 if ^dump_cdt_args.brief 278 then call print_cdte (cdtep); 279 call show_children (addr (cdt.cdt_entry (i).threads), cdtx, "0"b); 280 end; 281 end; 282 end; 283 end; 284 285 if ^found_a_match 286 then Code = error_table_$nomatch; 287 return; 288 289 print_fnpe: proc (n); 290 291 dcl n fixed bin; 292 dcl mpx_type fixed bin; 293 dcl bb72 bit (72) aligned based; 294 295 fnpep = addr (cdt.fnp_entry (n)); 296 mpx_type = fnpe.mpx_type; 297 if mpx_type = 0 then mpx_type = MCS_MPX; 298 299 call ioa_$ioa_switch (switch, "^/FNPE at ^p (FNP ^a)^/", fnpep, edit_desc (n, fnp_tags)); 300 301 if fnpe.type ^= 0 | mpx_type = MCS_MPX then 302 call ioa_$ioa_switch (switch, "^5xtype:^26x^d (^a)", fnpe.type, edit_desc (fnpe.type, fnp_types)); 303 if fnpe.memory ^= 0 | mpx_type = MCS_MPX then 304 call ioa_$ioa_switch (switch, "^5xmemory:^24x^dK", fnpe.memory); 305 if fnpe.nlslas ^= 0 | (mpx_type = MCS_MPX & fnpe.type ^= DN6670) then 306 call ioa_$ioa_switch (switch, "^5xlslas:^25x^d", fnpe.nlslas); 307 if fnpe.nhslas ^= 0 | mpx_type = MCS_MPX then 308 call ioa_$ioa_switch (switch, "^5xhslas:^25x^d", fnpe.nhslas); 309 call ioa_$ioa_switch (switch, "^5xboot event chan:^15x^24.3b", addr (fnpe.boot_ev_chan) -> bb72); 310 if mpx_type = MCS_MPX then 311 call ioa_$ioa_switch (switch, "^5xcoreimage:^21x^a", fnpe.coreimage); 312 else if fnpe.coreimage ^= "" then 313 call ioa_$ioa_switch (switch, "^5xadditional_info:^15x^a", fnpe.coreimage); 314 mpxep = addr (fnpe.mpxe); 315 call print_mpxe (fnpe.service_type, mpx_type); 316 call ioa_$ioa_switch (switch, "^/"); 317 return; 318 319 end print_fnpe; 320 321 print_mpxe: proc (a_service, a_type); 322 323 dcl a_service fixed bin; 324 dcl a_type fixed bin; 325 326 dcl fnp_states (0:4) char (15) int static options (constant) init ( 327 "not configured", 328 "unknown", 329 "down", 330 "boot started", 331 "up"); 332 dcl mpx_service_types (0:7) char (12) int static options (constant) init ( 333 "", "active", "", "", "", "", "", "inactive"); 334 335 call ioa_$ioa_switch (switch, "^vx^5xMultiplexer data:", indent 336 ); 337 call ioa_$ioa_switch (switch, "^vx^6xservice_type:^37t^d (^a)", indent, a_service, 338 edit_desc (a_service, mpx_service_types)); 339 call ioa_$ioa_switch (switch, "^vx^6xmpx_type:^37t^d (^a)", indent, a_type, edit_desc (a_type, mpx_types)); 340 call ioa_$ioa_switch (switch, "^vx^6xstate:^37t^d (^a)", indent, mpxe.state, edit_desc (mpxe.state, fnp_states)); 341 call print_time ("initial load:", mpxe.time_initial_load); 342 call print_time ("last load:", mpxe.time_last_load); 343 call print_time ("last crash:", mpxe.time_last_crash); 344 call print_time ("load started:", mpxe.time_load_start); 345 call ioa_$ioa_switch (switch, "^vx^6xflags.go:^37t^d", indent, fixed (mpxe.flags.go)); 346 call ioa_$ioa_switch (switch, "^vx^6xflags.listening:^37t^d", indent, fixed (mpxe.flags.listening)); 347 call ioa_$ioa_switch (switch, "^vx^6xcurrent_service_type:^37t^d (^a)", indent, mpxe.current_service_type, 348 edit_desc (mpxe.current_service_type, mpx_service_types)); 349 if mpxe.current_mpx_type ^= 0 then 350 call ioa_$ioa_switch (switch, "^vx^6xcurrent_mpx_type:^37t^d (^a)", indent, mpxe.current_mpx_type, 351 edit_desc (mpxe.current_mpx_type, mpx_types)); 352 call ioa_$ioa_switch (switch, "^vx^6xn_bootloads:^37t^d", indent, mpxe.n_bootloads); 353 call ioa_$ioa_switch (switch, "^6xlast_tbf:^37t^d", mpxe.last_tbf); 354 return; 355 356 357 358 359 print_time: proc (name, time); 360 361 dcl name char (*), 362 time fixed bin (71); 363 364 call ioa_$ioa_switch (switch, "^vx^6x^a^37t^a", indent, name, edit_time (time)); 365 return; 366 367 end print_time; 368 369 end print_mpxe; 370 371 print_cdte: proc (CDTEp); 372 373 dcl (hrs, mins, secs) fixed bin; 374 dcl auth_string char (200); 375 dcl bb72 bit (72) based; 376 dcl code fixed bin (35); 377 dcl CDTEp pointer; 378 dcl 1 CDTE aligned like cdte based (CDTEp); 379 380 /* ----------------------------------------------- */ 381 382 call ioa_$ioa_switch (switch, "^vx^/CDTE at ^p^/", indent, CDTEp); 383 384 call ioa_$ioa_switch (switch, "^vx^5xin_use:^24x^d (^a)", indent, CDTE.in_use, edit_desc (CDTE.in_use, uses)); 385 call ioa_$ioa_switch (switch, "^vx^5xname:^26x^a", indent, CDTE.name); 386 if CDTE.current_service_type = MPX_SERVICE | 387 (CDTE.service_type = MPX_SERVICE & CDTE.current_service_type = 0) then do; /* running mpx, or mpx in new cdt */ 388 mpxep = addr (CDTE.initial_command); 389 call print_mpxe ((CDTE.mpx_service), (CDTE.mpx_type)); 390 end; 391 call convert_authorization_$to_string_range_short (CDTE.access_class, auth_string, code); 392 if auth_string = "" then auth_string = "system_low"; 393 call ioa_$ioa_switch (switch, "^vx^5xaccess_class:^18x^a", indent, auth_string); 394 call ioa_$ioa_switch (switch, "^vx^5xcomment:^23x^a", indent, CDTE.comment); 395 if CDTE.charge_type < lbound (devtab_copy.device_id, 1) then temp_dev_name = "none"; 396 else if CDTE.charge_type > hbound (devtab_copy.device_id, 1) then temp_dev_name = "?"; 397 else temp_dev_name = devtab_copy.device_id (CDTE.charge_type); 398 call ioa_$ioa_switch (switch, "^vx^5xcharge_type:^19x^d (^a)", indent, CDTE.charge_type, temp_dev_name); 399 call ioa_$ioa_switch (switch, "^vx^5xservice_type:^18x^d (^a)", indent, CDTE.service_type, 400 edit_desc ((CDTE.service_type), service_types)); 401 call ioa_$ioa_switch (switch, "^vx^5xcurrent_service_type:^10x^d (^a)", indent, CDTE.current_service_type, 402 edit_desc ((CDTE.current_service_type), service_types)); 403 call ioa_$ioa_switch (switch, "^vx^5xline_type:^21x^d (^a)", indent, CDTE.line_type, 404 edit_desc ((CDTE.line_type), line_types)); 405 if CDTE.flags.ck_answerback then 406 call ioa_$ioa_switch (switch, "^vx^5xanswerback:^20x^a", indent, CDTE.answerback); 407 call ioa_$ioa_switch (switch, "^vx^5xterminal_type:^17x^a", indent, string_edit ((CDTE.initial_terminal_type))); 408 call ioa_$ioa_switch (switch, "^vx^5xbaud_rate:^21x^d", indent, CDTE.baud_rate); 409 if CDTE.modem_type > 0 then call ioa_$ioa_switch (switch, "^vx^5xmodem_type:^20x^d (^a)", indent, CDTE.modem_type, 410 edit_desc ((CDTE.modem_type), dataset_names)); 411 if string (CDTE.flags.attributes) then 412 call ioa_$ioa_switch (switch, "^vx^5xflags.attributes:^37t^a", indent, 413 flag_names (string (CDTE.flags.attributes), attribute_flag_names)); 414 if string (CDTE.flags.options) then 415 call ioa_$ioa_switch (switch, "^vx^5xflags.options:^37t^a", indent, 416 flag_names (string (CDTE.flags.options), option_flag_names)); 417 if string (CDTE.flags.access_control) then 418 call ioa_$ioa_switch (switch, "^vx^5xflags.access_control:^37t^a", indent, flag_names (string (CDTE.flags.access_control), access_check_flag_names)); 419 if CDTE.flags.execute_initial_command then 420 call ioa_$ioa_switch (switch, "^vx^5xinitial_command:^15x^a", indent, CDTE.initial_command); 421 if CDTE.flags.generic_destination_present then 422 call ioa_$ioa_switch (switch, "^vx^5xgeneric_destination:^11x^a", indent, addr (CDTE.initial_command) -> generic_destination); 423 call ioa_$ioa_switch (switch, "^vx^5xevent:^25x^24.3b", indent, addr (CDTE.event) -> bb72); 424 call ioa_$ioa_switch (switch, "^vx^5xtra_vec:^23x^d (^a)", indent, CDTE.tra_vec, 425 edit_desc ((CDTE.tra_vec), tra_vec_names)); 426 call ioa_$ioa_switch (switch, "^vx^5xcount:^25x^d", indent, CDTE.count); 427 if string (CDTE.dialup_flags) then 428 call ioa_$ioa_switch (switch, "^vx^5xdialup_flags:^37t^a", indent, 429 flag_names (string (CDTE.dialup_flags), dialup_flag_names)); 430 call ioa_$ioa_switch (switch, "^vx^5xtwx:^27x^d", indent, CDTE.twx); 431 call ioa_$ioa_switch (switch, "^vx^5xstate:^20x^5x^d (^a)", indent, CDTE.state, edit_desc (CDTE.state, states)); 432 call ioa_$ioa_switch (switch, "^vx^5xcurrent_terminal_type:^9x^a", indent, string_edit ((CDTE.current_terminal_type))); 433 call ioa_$ioa_switch (switch, "^vx^5xcur_line_type:^17x^d (^a)", indent, CDTE.cur_line_type, 434 edit_desc ((CDTE.cur_line_type), line_types)); 435 call convert_authorization_$to_string_short (CDTE.current_access_class (1), auth_string, code); 436 if auth_string = "" then auth_string = "system_low"; 437 call ioa_$ioa_switch (switch, "^vx^5xcurrent_access_class:^10x^a", indent, auth_string); 438 call ioa_$ioa_switch (switch, "^vx^5xtty_id_code:^19x^a", indent, string_edit (CDTE.tty_id_code)); 439 call ioa_$ioa_switch (switch, "^vx^5xprocess:^23x^p", indent, CDTE.process); 440 if CDTE.dialed_to_procid ^= ""b then 441 call ioa_$ioa_switch (switch, "^vx^5xdialed_to_procid:^14x^w", indent, CDTE.dialed_to_procid); 442 call ioa_$ioa_switch (switch, "^vx^5xnext_channel:^15x^3x^d", indent, CDTE.next_channel); 443 call ioa_$ioa_switch (switch, "^vx^5xdial_ctl_ring:^14x^3x^d", indent, CDTE.dial_ctl_ring); 444 call ioa_$ioa_switch (switch, "^vx^5xuser_name:^21x^a", indent, string (CDTE.user_name)); 445 if CDTE.disconnected_ate_index ^= 0 then 446 call ioa_$ioa_switch (switch, "^vx^5xdisconnected_ate_index:^37t^d", indent, CDTE.disconnected_ate_index); 447 call ioa_$ioa_switch (switch, "^vx^5xn_dialups:^21x^d", indent, CDTE.n_dialups); 448 call ioa_$ioa_switch (switch, "^vx^5xn_logins:^22x^d", indent, CDTE.n_logins); 449 secs = float (CDTE.dialed_up_time, 63); 450 mins = divide (secs, 60, 35, 0); 451 secs = secs - mins * 60; 452 hrs = divide (mins, 60, 35, 0); 453 mins = mins - hrs * 60; 454 call ioa_$ioa_switch (switch, "^vx^5xdialed_up_time:^16x^d hrs ^d mins ^d secs.", indent, hrs, mins, secs); 455 call ioa_$ioa_switch (switch, "^vx^5xdialup_time:^19x^a", indent, edit_time (CDTE.dialup_time)); 456 if CDTE.disconnected_proc_command ^= 0 then 457 call ioa_$ioa_switch (switch, "^vx^5xdisconnected_proc_command:^37t^d", indent, CDTE.disconnected_proc_command); 458 if CDTE.disconnected_proc_number ^= 0 then 459 call ioa_$ioa_switch (switch, "^vx^5xdisconnected_proc_number:^37t^d", indent, CDTE.disconnected_proc_number); 460 if CDTE.n_disconnected_procs ^= 0 then 461 call ioa_$ioa_switch (switch, "^vx^5xn_disconnected_procs:^37t^d", indent, CDTE.n_disconnected_procs); 462 call ioa_$ioa_switch (switch, "^vx^5xrecent_wakeup_count:^37t^d", indent, CDTE.recent_wakeup_count); 463 call ioa_$ioa_switch (switch, "^vx^5xrecent_wakeup_time:^37t^a", indent, edit_time (CDTE.recent_wakeup_time)); 464 if CDTE.dial_ev_chn ^= 0 then 465 call ioa_$ioa_switch (switch, "^vx^5xdial_ev_chn:^37t^24.3b", indent, addr (CDTE.dial_ev_chn) -> bb72); 466 if CDTE.use_iocb then 467 call ioa_$ioa_switch (switch, "^vx^5xiocbp:^37t^p", indent, CDTE.iocbp); 468 469 return; 470 11 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 11 2 11 3 /* Written November 10 1975 by Paul Green */ 11 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 11 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 11 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 11 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 11 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 11 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 11 10 11 11 11 12 /****^ HISTORY COMMENTS: 11 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 11 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 15* Add a DSA line type. 11 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 11 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 18* Add HASP_OPR to identify HASP workstation consoles with login service. 11 19* END HISTORY COMMENTS */ 11 20 11 21 11 22 declare (LINE_MC initial (-2), 11 23 LINE_TELNET initial (-1), 11 24 LINE_UNKNOWN initial (0), 11 25 LINE_ASCII initial (1), 11 26 LINE_1050 initial (2), 11 27 LINE_2741 initial (3), 11 28 LINE_ARDS initial (4), 11 29 LINE_SYNCH initial (5), 11 30 LINE_G115 initial (6), 11 31 LINE_BSC initial (7), 11 32 LINE_ETX initial (8), 11 33 LINE_VIP initial (9), 11 34 LINE_ASYNC1 initial (10), 11 35 LINE_ASYNC2 initial (11), 11 36 LINE_ASYNC3 initial (12), 11 37 LINE_SYNC1 initial (13), 11 38 LINE_SYNC2 initial (14), 11 39 LINE_SYNC3 initial (15), 11 40 LINE_POLLED_VIP initial (16), 11 41 LINE_X25LAP initial (17), 11 42 LINE_HDLC initial (18), 11 43 LINE_COLTS initial (19), 11 44 LINE_DSA initial (20), 11 45 LINE_HASP_OPR initial (21) 11 46 ) fixed bin internal static options (constant); 11 47 11 48 dcl max_line_type fixed bin int static options (constant) init (21); 11 49 11 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 11 51 11 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 11 53 11 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 11 55 "MC", /* -2 */ 11 56 "TELNET", /* -1 */ 11 57 "none", /* 0 */ 11 58 "ASCII", /* 1 */ 11 59 "1050", /* 2 */ 11 60 "2741", /* 3 */ 11 61 "ARDS", /* 4 */ 11 62 "Sync", /* 5 */ 11 63 "G115", /* 6 */ 11 64 "BSC", /* 7 */ 11 65 "202ETX", /* 8 */ 11 66 "VIP", /* 9 */ 11 67 "ASYNC1", /* 10 */ 11 68 "ASYNC2", /* 11 */ 11 69 "ASYNC3", /* 12 */ 11 70 "SYNC1", /* 13 */ 11 71 "SYNC2", /* 14 */ 11 72 "SYNC3", /* 15 */ 11 73 "POLLED_VIP", /* 16 */ 11 74 "X25LAP", /* 17 */ 11 75 "HDLC", /* 18 */ 11 76 "COLTS", /* 19 */ 11 77 "DSA", /* 20 */ 11 78 "HASP_OPR"); /* 21 */ 11 79 11 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 471 472 12 1 /* BEGIN INCLUDE FILE ... dataset_names.incl.pl1 */ 12 2 12 3 /* Created June 4, 1976 by Mike Grady */ 12 4 12 5 dcl dataset_names (0:7) char (8) int static options (constant) init ( 12 6 "none", 12 7 "103A", 12 8 "201C", 12 9 "202C5", 12 10 "202C6", 12 11 "208A", 12 12 "208B", 12 13 "209A"); 12 14 12 15 /* END INCLUDE FILE ... dataset_names.incl.pl1 */ 473 474 475 476 dcl service_types (9) char (12) static options (constant) init ( 477 "login", 478 "ftp", 479 "mc", 480 "slave", 481 "dial", 482 "dial out", 483 "inactive", 484 "multiplexer", 485 "tandd"); 486 487 dcl states (-1:5) char (15) int static options (constant) init 488 ("masked", "", "hung up", "listening", "", "", "dialed up"); 489 490 dcl uses (-2:7) char (18) int static options (constant) init 491 ("deleted", "not configured", "unused, free", "hung up", "listening", 492 "dialed", "logged in, no proc", "logged in & proc", 493 "dialing", "dialed out"); 494 495 dcl tra_vec_names (0:25) char (32) int static options (constant) init ( 496 "", 497 "wait_dialup", 498 "wait_answerback", 499 "wait_login_line", 500 "wait_login_args", 501 "wait_old_password", 502 "wait_password", 503 "wait_new_password", 504 "wait_logout_sig", 505 "wait_logout", 506 "wait_logout_hold", 507 "wait_detach", 508 "wait_new_proc", 509 "wait_remove", 510 "wait_fin_priv_attach", 511 "wait_dial_release", 512 "wait_dial_out", 513 "wait_hangup", 514 "wait_slave_request", 515 "wait_greeting_msg", 516 "wait_delete_channel", 517 "wait_connect_request", 518 "wait_tandd_hangup", 519 "wait_fin_tandd_attach", 520 "wait_discard_wakeups", 521 "wait_before_hangup"); 522 523 end print_cdte; 524 525 string_edit: proc (s) returns (char (128) var); 526 527 dcl s char (*) aligned; 528 529 if s = low (length (s)) then return (""); 530 else return (rtrim (s)); 531 532 end string_edit; 533 534 535 536 537 edit_time: proc (time) returns (char (32) var); 538 539 dcl time fixed bin (71); 540 dcl time_string char (24); 541 542 if time = 0 then return ("never"); 543 call date_time_ (time, time_string); 544 return (rtrim (time_string)); 545 546 end edit_time; 547 548 549 550 551 edit_desc: proc (n, desc) returns (char (32) var); 552 553 dcl n fixed bin; 554 dcl desc (*) char (*); 555 556 if n < lbound (desc, 1) | n > hbound (desc, 1) then 557 if n = 0 then return (""); /* probably just unmitialized */ 558 else return ("?"); 559 else return (rtrim (desc (n))); 560 561 end edit_desc; 562 563 flag_names: proc (flags, flag_name_array) returns (char (256) varying); 564 565 dcl flags bit (*) unaligned; 566 dcl flag_name_array (*) char (32) varying; 567 dcl return_string char (256) varying; 568 569 dcl j fixed bin; 570 571 return_string = ""; 572 573 do j = 1 to hbound (flag_name_array, 1); /* go thru the ones we know the names of */ 574 if substr (flags, j, 1) then do; /* if flag is on, add its name to the return string */ 575 return_string = return_string || flag_name_array (j); 576 return_string = return_string || ","; /* separate concatenations get better code */ 577 end; 578 end; 579 do j = j to length (flags) /* go thru the ones we don't know the names of */ 580 while (substr (flags, j)); /* as long as there are any more nonzero ones */ 581 if substr (flags, j, 1) then do; /* if unknown flag is on */ 582 two_digits = j; /* convert its position to a printable number */ 583 return_string = return_string || "flag"; 584 return_string = return_string || ltrim (two_digits); 585 return_string = return_string || ","; 586 end; 587 end; 588 substr (return_string, length (return_string), 1) = ";"; 589 return (return_string); 590 591 end flag_names; 592 593 dump_tree: 594 procedure; /* This does mode=0, whole cdt, treewise */ 595 596 tcount = 0; 597 indent = 0; 598 call ioa_$ioa_switch (switch, "FNP Entries:"); 599 indent = 2; 600 601 do fnpx = 1 to hbound (cdt.fnp_entry, 1); 602 fnpep = addr (cdt.fnp_entry (fnpx)); 603 if fnpe.state ^= FNP_FREE 604 then do; 605 call ioa_$ioa_switch (switch, "^2xFNP ^a", substr (collate (), rank ("a") + fnpx, 1)); 606 if ^dump_cdt_args.brief then call print_fnpe (fnpx); 607 if fnpe.threads.daughter_count = 0 & fnpe.threads.daughter = 0 608 then ; 609 else call show_children (addr (fnpe.threads), -fnpx, "1"b); 610 end; 611 end; 612 613 /* Other tops */ 614 615 indent = 2; 616 call ioa_$ioa_switch (switch, "^/Other top level channels:"); 617 call show_children (addr (cdt.threads), 0, "0"b); 618 619 620 call ioa_$ioa_switch (switch); 621 do cdtx = 1 to cdt.current_size; 622 if cdt.cdt_entry (cdtx).in_use ^= NOW_FREE & ^visited (cdtx) 623 then call ioa_$ioa_switch (switch, "Unthreaded channel: ^a at index ^d.", cdt.cdt_entry (cdtx).name, cdtx); 624 end; 625 626 if tcount ^= cdt.n_cdtes 627 then call ioa_$ioa_switch (switch, "Total seen is ^d, but cdt.n_cdtes is ^d.", tcount, cdt.n_cdtes); 628 629 return; 630 631 end dump_tree; 632 633 show_children: 634 procedure (tp, tx, fnp); 635 declare cp pointer; 636 declare tp pointer; 637 declare tx fixed bin; 638 declare fx fixed bin; 639 declare ffnp_sw bit (1) aligned; 640 declare fnp bit (1) aligned; 641 declare x fixed bin; 642 declare last_sister fixed bin; 643 declare dcount fixed bin; /* daughter count */ 644 declare 1 t aligned like channel_threads based (tp); 645 646 647 call ioa_$ioa_switch (switch, "^vx^d daughters.", indent, t.daughter_count); 648 dcount = 0; 649 if t.daughter_count = 0 650 then do; 651 if t.daughter ^= 0 652 then do; 653 call ioa_$ioa_switch (switch, "^vxdaughter count zero but there are daughters.", indent); 654 goto CHASE; 655 end; 656 return; 657 end; 658 CHASE: 659 last_sister = 0; 660 661 do x = t.daughter repeat (cdt.cdt_entry (x).threads.next_sister) while (x ^= 0); 662 cp = addr (cdt.cdt_entry (x)); 663 call ioa_$ioa_switch (switch, "^vx(^d)^a", indent, x, cp -> cdte.name); 664 if ^dump_cdt_args.brief 665 then call print_cdte (cp); 666 dcount = dcount + 1; 667 tcount = tcount + 1; 668 visited (x) = "1"b; 669 670 if cp -> cdte.threads.mother ^= tx 671 then call ioa_$ioa_switch (switch, "^vxthreads.mother = ^d, but mother = ^d.", indent, cp -> cdte.mother, tx); 672 if cp -> cdte.threads.prev_sister ^= last_sister 673 then call ioa_$ioa_switch (switch, "^vxthreads.prev_sister = ^d, but prev_sister = ^d.", indent, 674 cp -> cdte.threads.prev_sister, last_sister); 675 last_sister = x; 676 if cp -> cdte.threads.daughter ^= 0 677 then do; 678 indent = indent + 2; 679 call show_children (addr (cp -> cdte.threads), x, "0"b); 680 indent = indent - 2; 681 end; 682 on sub_error_ 683 begin; 684 call find_condition_info_ (null, addr (CI), (0)); 685 sub_error_info_ptr = CI.info_ptr; 686 call convert_status_code_ (sub_error_info.status_code, "", error); 687 call ioa_$ioa_switch (switch, "^vxError: ^a ^a", 688 indent, error, sub_error_info.info_string); 689 go to ERROR; 690 end; 691 692 call cdt_mgr_$find_cdt_channel (cdtp, (cp -> cdte.name), fx, ffnp_sw, code); 693 if code = 0 694 then do; 695 if fx ^= x /* wrong place */ 696 then call ioa_$ioa_switch (switch, "^vxcdt_mgr_ thinks this is cdtx = ^d.", indent, fx); 697 if ffnp_sw 698 then call ioa_$ioa_switch (switch, "^vxcdt_mgr_ thinks this is a FNP.", indent); 699 end; 700 ERROR: 701 end; /* the loop */ 702 if dcount ^= t.daughter_count 703 then call ioa_$ioa_switch (switch, "^vxthreads.daughter_count = ^d, but daughter_count = ^d.", indent, t.daughter_count, dcount); 704 705 return; 706 end show_children; 707 end dump_cdt_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1004.1 dump_cdt_.pl1 >special_ldd>install>MR12.3-1100>dump_cdt_.pl1 138 1 04/21/82 1211.8 dump_cdt_args_.incl.pl1 >ldd>include>dump_cdt_args_.incl.pl1 141 2 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 2-314 3 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 144 4 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 4-10 5 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 146 6 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 148 7 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 150 8 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 151 9 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 152 10 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 471 11 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 473 12 11/04/76 1639.9 dataset_names.incl.pl1 >ldd>include>dataset_names.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. CDTE based structure level 1 dcl 378 CDTEp parameter pointer dcl 377 set ref 371 382* 384 384 385 386 386 386 388 389 389 391 394 395 396 397 398 399 399 401 401 403 403 405 405 407 408 409 409 409 411 411 411 414 414 414 417 417 417 419 419 421 421 423 424 424 426 427 427 427 430 431 431 432 433 433 435 438 439 440 440 442 443 444 444 445 445 447 448 449 455 456 456 458 458 460 460 462 463 464 464 466 466 CI 000524 automatic structure level 1 dcl 70 set ref 684 684 Code parameter fixed bin(35,0) dcl 47 set ref 42 156* 206* 285* DN6670 constant fixed bin(17,0) initial dcl 3-19 ref 305 FNP_FREE constant fixed bin(17,0) initial dcl 2-298 ref 245 603 Info_ptr parameter pointer dcl 46 ref 42 157 MCS_MPX constant fixed bin(17,0) initial dcl 7-16 ref 297 301 303 305 307 310 MPX_SERVICE constant fixed bin(17,0) initial dcl 2-259 ref 386 386 NOW_FREE constant fixed bin(17,0) initial dcl 6-76 ref 267 622 a_service parameter fixed bin(17,0) dcl 323 set ref 321 337* 337* a_type parameter fixed bin(17,0) dcl 324 set ref 321 339* 339* acceptable_fnp_tbf 54 based fixed bin(17,0) level 2 dcl 2-44 set ref 194* access_check_flag_names 001301 constant varying char(32) initial array dcl 95 set ref 417* access_class 12 based bit(72) array level 2 dcl 378 set ref 391* access_control 50(09) based structure level 3 packed packed unaligned dcl 378 ref 417 417 417 addr builtin function dcl 132 ref 161 161 217 217 221 221 224 224 226 226 244 257 257 266 279 279 295 309 314 388 421 423 464 602 609 609 617 617 662 679 679 684 684 all 4(03) based bit(1) level 3 packed packed unaligned dcl 1-5 ref 199 233 answerback 35 based char(8) level 2 dcl 378 set ref 405* attribute_flag_names 001477 constant varying char(32) initial array dcl 77 set ref 411* attributes 50 based structure level 3 packed packed unaligned dcl 378 ref 411 411 411 auth_string 000103 automatic char(200) packed unaligned dcl 374 set ref 391* 392 392* 393* 435* 436 436* 437* author based structure level 2 in structure "author_dcl" dcl 4-9 in procedure "dump_cdt_" author based structure level 2 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" author_dcl based structure level 1 dcl 4-9 avg 000104 automatic float bin(27) dcl 53 set ref 181* 182* 185* 186* baud_rate 33(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 408* bb72 based bit(72) dcl 293 in procedure "print_fnpe" set ref 309* bb72 based bit(72) packed unaligned dcl 375 in procedure "print_cdte" set ref 423* 464* boot_ev_chan 62 based fixed bin(71,0) level 2 dcl 2-200 set ref 309 brief 4(02) based bit(1) level 3 packed packed unaligned dcl 1-5 ref 215 224 250 254 271 277 606 664 cdt based structure level 1 dcl 2-44 cdt_entry 1520 based structure array level 2 dcl 2-44 set ref 221 221 224 224 266 662 cdt_mgr_$find_cdt_channel 000026 constant entry external dcl 125 ref 203 692 cdt_ptr 2 based pointer level 2 dcl 1-5 ref 158 cdte based structure level 1 dcl 2-72 cdtep 000562 automatic pointer dcl 2-41 set ref 266* 267 268 271* 274 274* 277* cdtp 000560 automatic pointer dcl 2-41 set ref 158* 165 166 168 169 170 171 172 173 174 175 176 178 179 180 184 188 188 188 190 190 190 192 194 195 203* 217 217 221 221 224 224 226 226 243 244 265 266 279 279 295 601 602 617 617 621 622 622 626 626 662 692* 700 cdtx 000107 automatic fixed bin(17,0) dcl 55 set ref 203* 212 215 217 217 217* 221 221 224 224 226 226 226* 279* 621* 622 622 622 622* channel_name 5 based char(32) level 2 packed packed unaligned dcl 1-5 ref 201 203 247 268 channel_threads based structure level 1 dcl 2-249 charge_type 32 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 395 396 397 398* ck_answerback 50 based bit(1) level 4 packed packed unaligned dcl 378 ref 405 code 000165 automatic fixed bin(35,0) dcl 376 in procedure "print_cdte" set ref 391* 435* code 000114 automatic fixed bin(35,0) dcl 58 in procedure "dump_cdt_" set ref 203* 204 206 247* 248 268* 269 692* 693 comment 16 based char(48) level 2 dcl 378 set ref 394* condition_info based structure level 1 dcl 10-14 condition_info_header based structure level 1 dcl 8-6 convert_authorization_$to_string_range_short 000020 constant entry external dcl 121 ref 391 convert_authorization_$to_string_short 000022 constant entry external dcl 123 ref 435 convert_status_code_ 000010 constant entry external dcl 117 ref 686 coreimage 6 based char(168) level 2 dcl 2-200 set ref 310* 312 312* count 75 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 426* cp 000100 automatic pointer dcl 635 set ref 662* 663 664* 670 670 672 672 676 679 679 692 cpu_in_dialup 46 based fixed bin(71,0) level 2 dcl 2-44 ref 184 cur_line_type 113(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 433* 433 current_access_class 114 based bit(72) array level 2 dcl 378 set ref 435* current_mpx_type 2 based fixed bin(17,0) level 2 dcl 2-221 set ref 349 349* 349* current_service_type 1 based fixed bin(17,0) level 2 in structure "mpxe" dcl 2-221 in procedure "dump_cdt_" set ref 347* 347* current_service_type 74 based fixed bin(17,0) level 2 in structure "CDTE" packed packed unaligned dcl 378 in procedure "print_cdte" set ref 386 386 401* 401 current_size 36 based fixed bin(17,0) level 2 dcl 2-44 set ref 172* 265 621 current_terminal_type 101 based char(32) level 2 packed packed unaligned dcl 378 ref 432 dataset_names 000463 constant char(8) initial array packed unaligned dcl 12-5 set ref 409* date_time_ 000016 constant entry external dcl 120 ref 543 daughter 1 based fixed bin(17,0) level 2 in structure "t" packed packed unaligned dcl 644 in procedure "show_children" ref 651 661 daughter 105 based fixed bin(17,0) level 3 in structure "fnpe" packed packed unaligned dcl 2-200 in procedure "dump_cdt_" set ref 255 607 daughter 135 based fixed bin(17,0) level 3 in structure "cdte" packed packed unaligned dcl 2-72 in procedure "dump_cdt_" set ref 676 daughter_count 2(18) based fixed bin(17,0) level 2 in structure "t" packed packed unaligned dcl 644 in procedure "show_children" set ref 647* 649 702 702* daughter_count 106(18) based fixed bin(17,0) level 3 in structure "fnpe" packed packed unaligned dcl 2-200 in procedure "dump_cdt_" set ref 255 607 dca_ptr 000556 automatic pointer dcl 1-4 set ref 157* 158 163 164 165 166 168 169 170 171 172 173 174 175 176 182 186 188 190 192 194 195 196 199 199 201 203 212 215 221 224 233 247 250 250 252 254 268 271 271 274 277 299 301 303 305 307 309 310 312 316 335 337 339 340 345 346 347 349 352 353 364 382 384 385 393 394 398 399 401 403 405 407 408 409 411 414 417 419 421 423 424 426 427 430 431 432 433 437 438 439 440 442 443 444 445 447 448 454 455 456 458 460 462 463 464 466 598 605 606 616 620 622 626 647 653 663 664 670 672 687 695 697 702 dcount 000106 automatic fixed bin(17,0) dcl 643 set ref 648* 666* 666 702 702* desc parameter char array packed unaligned dcl 554 ref 551 556 556 559 device_id 000146 automatic char(8) array level 2 packed packed unaligned dcl 61 set ref 395 396 397 devtab_copy 000146 automatic structure array level 1 dcl 61 set ref 161 161 dial_ctl_ring 120(18) based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 378 set ref 443* dial_ev_chn 132 based fixed bin(71,0) level 2 dcl 378 set ref 464 464 dialed_to_procid 112 based bit(36) level 2 dcl 378 set ref 440 440* dialed_up_time 123 based fixed bin(35,0) level 2 dcl 378 ref 449 dialup_flag_names 001136 constant varying char(32) initial array dcl 102 set ref 427* dialup_flags 75(18) based structure level 2 packed packed unaligned dcl 378 ref 427 427 427 dialup_time 124 based fixed bin(71,0) level 2 dcl 378 set ref 455* disconnected_ate_index 120 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 445 445* disconnected_proc_command 126 based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 378 set ref 456 456* disconnected_proc_number 126(12) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 378 set ref 458 458* divide builtin function dcl 132 ref 188 188 190 190 450 452 dump_cdt_args based structure level 1 dcl 1-5 entries_to_dialup 52 based fixed bin(17,0) level 2 dcl 2-44 set ref 179 192* error 000115 automatic char(100) dcl 59 set ref 686* 687* error_table_$nomatch 000032 external static fixed bin(35,0) dcl 128 ref 285 event 72 based fixed bin(71,0) level 2 dcl 378 set ref 423 execute_initial_command 50(17) based bit(1) level 4 packed packed unaligned dcl 378 ref 419 ffnp_sw 000103 automatic bit(1) dcl 639 set ref 692* 697 find_condition_info_ 000012 constant entry external dcl 118 ref 684 fixed builtin function dcl 132 ref 345 345 346 346 flag_name_array parameter varying char(32) array dcl 566 ref 563 573 575 flags 4 based structure level 2 in structure "dump_cdt_args" dcl 1-5 in procedure "dump_cdt_" flags parameter bit packed unaligned dcl 565 in procedure "flag_names" ref 563 574 579 579 581 flags 15 based structure level 2 in structure "mpxe" packed packed unaligned dcl 2-221 in procedure "dump_cdt_" flags 50 based structure level 2 in structure "CDTE" dcl 378 in procedure "print_cdte" float builtin function dcl 132 ref 449 fnp parameter bit(1) dcl 640 ref 633 fnp_entry 120 based structure array level 2 dcl 2-44 set ref 243 244 295 601 602 fnp_find_sw 000110 automatic bit(1) dcl 56 set ref 203* 210 fnp_states 000673 constant char(15) initial array packed unaligned dcl 326 set ref 340* fnp_tags 001554 constant char(1) initial array packed unaligned dcl 74 set ref 299* fnp_types 001126 constant char(8) initial array packed unaligned dcl 3-25 set ref 301* fnpe based structure level 1 dcl 2-200 fnpep 000564 automatic pointer dcl 2-41 set ref 244* 245 252* 255 255 257 257 295* 296 299* 301 301 301 303 303 305 305 305 307 307 309 310 312 312 314 315 602* 603 607 607 609 609 fnpx 000106 automatic fixed bin(17,0) dcl 55 set ref 243* 244 247 247 250* 252 252 252* 254* 257* 601* 602 605 605 606* 609* found_a_match 000102 automatic bit(1) dcl 52 set ref 241* 249* 270* 285 freep 40 based fixed bin(17,0) level 2 dcl 2-44 set ref 174* fx 000102 automatic fixed bin(17,0) dcl 638 set ref 692* 695 695* generic_destination based char(32) packed unaligned dcl 2-195 set ref 421* generic_destination_present 50(24) based bit(1) level 4 packed packed unaligned dcl 378 ref 421 go 15 based bit(1) level 3 packed packed unaligned dcl 2-221 ref 345 345 hbound builtin function dcl 132 ref 243 396 556 573 601 hdr 4 based bit(1) level 3 packed packed unaligned dcl 1-5 ref 163 header based structure level 2 dcl 9-7 hrs 000100 automatic fixed bin(17,0) dcl 373 set ref 452* 453 454* i 000100 automatic fixed bin(17,0) dcl 51 set ref 265* 266 274* 279 279* in_use 1520 based fixed bin(17,0) array level 3 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" set ref 622 in_use based fixed bin(17,0) level 2 in structure "CDTE" dcl 378 in procedure "print_cdte" set ref 384* 384* in_use based fixed bin(17,0) level 2 in structure "cdte" dcl 2-72 in procedure "dump_cdt_" ref 267 indent 000105 automatic fixed bin(17,0) dcl 54 set ref 159* 335* 337* 339* 340* 345* 346* 347* 349* 352* 364* 382* 384* 385* 393* 394* 398* 399* 401* 403* 405* 407* 408* 409* 411* 414* 417* 419* 421* 423* 424* 426* 427* 430* 431* 432* 433* 437* 438* 439* 440* 442* 443* 444* 445* 447* 448* 454* 455* 456* 458* 460* 462* 463* 464* 466* 597* 599* 615* 647* 653* 663* 670* 672* 678* 678 680* 680 687* 695* 697* 702* info_ptr 14 000524 automatic pointer level 2 dcl 70 set ref 685 info_string 3 based varying char(256) level 3 dcl 9-7 set ref 687* initial_command 51 based char(64) level 2 dcl 378 set ref 388 419* 421 initial_terminal_type 37 based char(32) level 2 packed packed unaligned dcl 378 ref 407 ioa_$ioa_switch 000014 constant entry external dcl 119 ref 164 165 166 168 169 170 171 172 173 174 175 176 182 186 188 190 192 194 195 196 252 274 299 301 303 305 307 309 310 312 316 335 337 339 340 345 346 347 349 352 353 364 382 384 385 393 394 398 399 401 403 405 407 408 409 411 414 417 419 421 423 424 426 427 430 431 432 433 437 438 439 440 442 443 444 445 447 448 454 455 456 458 460 462 463 464 466 598 605 616 620 622 626 647 653 663 670 672 687 695 697 702 iocbp 147 based pointer level 2 packed packed unaligned dcl 378 set ref 466* j 000303 automatic fixed bin(17,0) dcl 569 set ref 573* 574 575* 579* 579 579* 581 582* last_install_time 12 based fixed bin(71,0) level 3 dcl 2-44 set ref 168* last_sister 000105 automatic fixed bin(17,0) dcl 642 set ref 658* 672 672* 675* last_tbf 14 based fixed bin(17,0) level 2 dcl 2-221 set ref 353* lbound builtin function dcl 132 ref 395 556 length builtin function dcl 132 ref 529 579 588 line_type 33 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 403* 403 line_types 000503 constant char(16) initial array packed unaligned dcl 11-54 set ref 403* 433* listening 15(01) based bit(1) level 3 packed packed unaligned dcl 2-221 ref 346 346 lock 10 based bit(36) level 3 dcl 2-44 set ref 166* low builtin function dcl 132 ref 529 ltrim builtin function dcl 132 ref 584 match_star_name_ 000030 constant entry external dcl 126 ref 247 268 max_size 35 based fixed bin(17,0) level 2 dcl 2-44 set ref 171* memory 1 based fixed bin(17,0) level 2 dcl 2-200 set ref 303 303* meters_last_reset 42 based fixed bin(71,0) level 2 dcl 2-44 set ref 176* mins 000101 automatic fixed bin(17,0) dcl 373 set ref 450* 451 452 453* 453 454* modem_type 34 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 409 409* 409 mother 135(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 2-72 set ref 670 670* mpx_data 47 based structure level 2 packed packed unaligned dcl 378 mpx_service 47(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 378 ref 389 mpx_service_types 000643 constant char(12) initial array packed unaligned dcl 332 set ref 337* 347* mpx_type 5 based fixed bin(17,0) level 2 in structure "fnpe" dcl 2-200 in procedure "dump_cdt_" ref 296 mpx_type 47 based fixed bin(17,0) level 3 in structure "CDTE" packed packed unaligned dcl 378 in procedure "print_cdte" ref 389 mpx_type 000602 automatic fixed bin(17,0) dcl 292 in procedure "print_fnpe" set ref 296* 297 297* 301 303 305 307 310 315* mpx_types 000716 constant char(32) initial array packed unaligned dcl 7-35 set ref 339* 349* mpxe 64 based structure level 2 in structure "fnpe" dcl 2-200 in procedure "dump_cdt_" set ref 314 mpxe based structure level 1 dcl 2-221 in procedure "dump_cdt_" mpxep 000566 automatic pointer dcl 2-41 set ref 314* 340 340 341 342 343 344 345 345 346 346 347 347 349 349 349 352 353 388* n parameter fixed bin(17,0) dcl 291 in procedure "print_fnpe" set ref 289 295 299* n 000101 automatic fixed bin(17,0) dcl 51 in procedure "dump_cdt_" set ref 179* 181 185 188 188 190 190 n parameter fixed bin(17,0) dcl 553 in procedure "edit_desc" ref 551 556 556 556 559 n_bootloads 3 based fixed bin(17,0) level 2 dcl 2-221 set ref 352* n_cdtes 41 based fixed bin(17,0) level 2 dcl 2-44 set ref 175* 626 626* n_dialups 121 based fixed bin(17,0) level 2 dcl 378 set ref 447* n_disconnected_procs 126(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 378 set ref 460 460* n_logins 122 based fixed bin(17,0) level 2 dcl 378 set ref 448* name 2 based char(32) level 2 in structure "cdte" dcl 2-72 in procedure "dump_cdt_" set ref 268 274* 663* 692 name 1522 based char(32) array level 3 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" set ref 622* name 2 based char(32) level 2 in structure "CDTE" dcl 378 in procedure "print_cdte" set ref 385* name parameter char packed unaligned dcl 361 in procedure "print_time" set ref 359 364* next_channel 113 based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 442* next_sister 1654 based fixed bin(17,0) array level 4 packed packed unaligned dcl 2-44 set ref 700 nhslas 3 based fixed bin(17,0) level 2 dcl 2-200 set ref 307 307* nlslas 2 based fixed bin(17,0) level 2 dcl 2-200 set ref 305 305* null builtin function dcl 132 ref 684 684 option_flag_names 001356 constant varying char(32) initial array dcl 84 set ref 414* options 50(17) based structure level 3 packed packed unaligned dcl 378 ref 414 414 414 pf_in_dialup 50 based fixed bin(17,0) level 2 dcl 2-44 set ref 188* 188 188 pp_in_dialup 51 based fixed bin(17,0) level 2 dcl 2-44 set ref 190* 190 190 prev_sister 134(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 2-72 set ref 672 672* proc_group_id based char(32) level 3 dcl 2-44 set ref 165* process 111 based pointer level 2 packed packed unaligned dcl 378 set ref 439* realtime_in_dialup 44 based fixed bin(71,0) level 2 dcl 2-44 ref 178 180 recent_wakeup_count 127 based fixed bin(17,0) level 2 dcl 378 set ref 462* recent_wakeup_time 130 based fixed bin(71,0) level 2 dcl 378 set ref 463* return_string 000202 automatic varying char(256) dcl 567 set ref 571* 575* 575 576* 576 583* 583 584* 584 585* 585 588 588* 589 rtrim builtin function dcl 132 ref 530 544 559 s parameter char dcl 527 ref 525 529 529 530 secs 000102 automatic fixed bin(17,0) dcl 373 set ref 449* 450 451* 451 454* service_type 32(18) based fixed bin(17,0) level 2 in structure "CDTE" packed packed unaligned dcl 378 in procedure "print_cdte" set ref 386 399* 399 service_type 4 based fixed bin(17,0) level 2 in structure "fnpe" dcl 2-200 in procedure "dump_cdt_" set ref 315* service_types 000430 constant char(12) initial array packed unaligned dcl 476 set ref 399* 401* spare_channel_count 55 based fixed bin(17,0) level 2 dcl 2-44 set ref 195* starname 4(04) based bit(1) level 3 packed packed unaligned dcl 1-5 ref 199 state 64 based fixed bin(17,0) level 3 in structure "fnpe" dcl 2-200 in procedure "dump_cdt_" set ref 245 603 state 77 based fixed bin(17,0) level 2 in structure "CDTE" dcl 378 in procedure "print_cdte" set ref 431* 431* state based fixed bin(17,0) level 2 in structure "mpxe" dcl 2-221 in procedure "dump_cdt_" set ref 340* 340* states 000375 constant char(15) initial array packed unaligned dcl 487 set ref 431* status_code 104 based fixed bin(35,0) level 3 dcl 9-7 set ref 686* string builtin function dcl 132 ref 411 411 411 414 414 414 417 417 417 427 427 427 444 444 sub_error_ 000000 stack reference condition dcl 134 ref 682 sub_error_info based structure level 1 dcl 9-7 sub_error_info_ptr 000570 automatic pointer dcl 9-6 set ref 685* 686 687 substr builtin function dcl 132 set ref 247 247 252 252 574 579 581 588* 605 605 subtree 4(01) based bit(1) level 3 packed packed unaligned dcl 1-5 ref 212 221 250 271 switch based pointer level 2 dcl 1-5 set ref 164* 165* 166* 168* 169* 170* 171* 172* 173* 174* 175* 176* 182* 186* 188* 190* 192* 194* 195* 196* 252* 274* 299* 301* 303* 305* 307* 309* 310* 312* 316* 335* 337* 339* 340* 345* 346* 347* 349* 352* 353* 364* 382* 384* 385* 393* 394* 398* 399* 401* 403* 405* 407* 408* 409* 411* 414* 417* 419* 421* 423* 424* 426* 427* 430* 431* 432* 433* 437* 438* 439* 440* 442* 443* 444* 445* 447* 448* 454* 455* 456* 458* 460* 462* 463* 464* 466* 598* 605* 616* 620* 622* 626* 647* 653* 663* 670* 672* 687* 695* 697* 702* system_info_$device_prices 000024 constant entry external dcl 124 ref 161 t based structure level 1 dcl 644 table 14 based char(4) level 3 dcl 2-44 set ref 169* tcount 000523 automatic fixed bin(17,0) dcl 68 set ref 596* 626 626* 667* 667 temp_dev_name 000112 automatic char(8) packed unaligned dcl 57 set ref 395* 396* 397* 398* threads 56 based structure level 2 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" set ref 617 617 threads 1654 based structure array level 3 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" set ref 226 226 279 279 threads 134 based structure level 2 in structure "cdte" dcl 2-72 in procedure "dump_cdt_" set ref 679 679 threads 104 based structure level 2 in structure "fnpe" dcl 2-200 in procedure "dump_cdt_" set ref 257 257 609 609 threads 224 based structure array level 3 in structure "cdt" dcl 2-44 in procedure "dump_cdt_" set ref 217 217 time parameter fixed bin(71,0) dcl 539 in procedure "edit_time" set ref 537 542 543* time 000103 automatic float bin(27) dcl 53 in procedure "dump_cdt_" set ref 180* 181 182* 184* 185 186* time parameter fixed bin(71,0) dcl 361 in procedure "print_time" set ref 359 364* time_initial_load 4 based fixed bin(71,0) level 2 dcl 2-221 set ref 341* time_last_crash 10 based fixed bin(71,0) level 2 dcl 2-221 set ref 343* time_last_load 6 based fixed bin(71,0) level 2 dcl 2-221 set ref 342* time_load_start 12 based fixed bin(71,0) level 2 dcl 2-221 set ref 344* time_string 000100 automatic char(24) packed unaligned dcl 540 set ref 543* 544 tp parameter pointer dcl 636 ref 633 647 649 651 661 702 702 tra_vec 74(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 378 set ref 424* 424 tra_vec_names 000000 constant char(32) initial array packed unaligned dcl 495 set ref 424* tty_id_code 100 based char(4) level 2 dcl 378 set ref 438* two_digits 000406 automatic picture(2) packed unaligned dcl 65 set ref 582* 584 twx 76 based fixed bin(17,0) level 2 dcl 378 set ref 430* tx parameter fixed bin(17,0) dcl 637 set ref 633 670 670* type based fixed bin(17,0) level 2 dcl 2-200 set ref 301 301* 301* 305 use_iocb 50(25) based bit(1) level 4 packed packed unaligned dcl 378 ref 466 user_name 137 based structure level 2 packed packed unaligned dcl 378 ref 444 444 uses 000320 constant char(18) initial array packed unaligned dcl 490 set ref 384* version 37 based fixed bin(17,0) level 2 dcl 2-44 set ref 173* visited 000407 automatic bit(1) array packed unaligned dcl 67 set ref 622 668* w_dir 15 based char(64) level 3 dcl 2-44 set ref 170* x 000104 automatic fixed bin(17,0) dcl 641 set ref 661* 661* 662 663* 668 675 679* 695* 700 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE internal static fixed bin(17,0) initial dcl 2-272 ACTIVE_VALUES internal static char(18) initial array dcl 6-86 ANS_SERVICE internal static fixed bin(17,0) initial dcl 2-259 CDT_version internal static fixed bin(17,0) initial dcl 2-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 2-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 2-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 2-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 2-259 DN355 internal static fixed bin(17,0) initial dcl 3-19 DN6600 internal static fixed bin(17,0) initial dcl 3-19 DN7100 internal static fixed bin(17,0) initial dcl 3-19 FNP_BOOT internal static fixed bin(17,0) initial dcl 2-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 2-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 2-298 FNP_UP internal static fixed bin(17,0) initial dcl 2-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 2-259 HASP_MPX internal static fixed bin(17,0) initial dcl 7-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 7-16 INACTIVE internal static fixed bin(17,0) initial dcl 2-272 LAP_MPX internal static fixed bin(17,0) initial dcl 7-16 LINE_1050 internal static fixed bin(17,0) initial dcl 11-22 LINE_2741 internal static fixed bin(17,0) initial dcl 11-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 11-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 11-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 11-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 11-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 11-22 LINE_BSC internal static fixed bin(17,0) initial dcl 11-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 11-22 LINE_DSA internal static fixed bin(17,0) initial dcl 11-22 LINE_ETX internal static fixed bin(17,0) initial dcl 11-22 LINE_G115 internal static fixed bin(17,0) initial dcl 11-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 11-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 11-22 LINE_MC internal static fixed bin(17,0) initial dcl 11-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 11-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 11-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 11-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 11-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 11-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 11-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 11-22 LINE_VIP internal static fixed bin(17,0) initial dcl 11-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 11-22 MC_SERVICE internal static fixed bin(17,0) initial dcl 2-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 2-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 2-306 MPX_FREE internal static fixed bin(17,0) initial dcl 2-306 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 2-306 MPX_UP internal static fixed bin(17,0) initial dcl 2-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 2-280 NOW_DIALED internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 6-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 6-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 6-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 6-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 6-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 6-142 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 7-16 PT_ALARM internal static fixed bin(17,0) initial dcl 6-106 PT_BUMP internal static fixed bin(17,0) initial dcl 6-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_DETACH internal static fixed bin(17,0) initial dcl 6-106 PT_FPE internal static fixed bin(17,0) initial dcl 6-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 6-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 6-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 6-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 6-106 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 2-259 STATE_VALUES internal static char(15) initial array dcl 6-70 STY_MPX internal static fixed bin(17,0) initial dcl 7-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 7-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 7-16 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 6-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 6-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 6-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 6-93 TAG_UFT internal static char(1) initial packed unaligned dcl 6-93 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 2-259 TRA_VEC_VALUES internal static char(32) initial array dcl 6-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 6-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 6-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 6-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 6-64 TTY_MPX internal static fixed bin(17,0) initial dcl 7-16 UNCP_MPX internal static fixed bin(17,0) initial dcl 7-16 USER1_MPX internal static fixed bin(17,0) initial dcl 7-16 USER2_MPX internal static fixed bin(17,0) initial dcl 7-16 USER3_MPX internal static fixed bin(17,0) initial dcl 7-16 USER4_MPX internal static fixed bin(17,0) initial dcl 7-16 USER5_MPX internal static fixed bin(17,0) initial dcl 7-16 VIP7760_MPX internal static fixed bin(17,0) initial dcl 7-16 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 6-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 6-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 6-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 6-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 6-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 6-25 X25_MPX internal static fixed bin(17,0) initial dcl 7-16 condition_info_header_ptr automatic pointer dcl 8-4 condition_info_ptr automatic pointer dcl 10-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 10-30 fnp_models internal static fixed bin(17,0) initial array dcl 3-28 max_line_type internal static fixed bin(17,0) initial dcl 11-48 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 7-40 n_sync_line_types internal static fixed bin(17,0) initial dcl 11-50 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 9-13 supported_fnp internal static bit(1) initial array packed unaligned dcl 3-31 sync_line_type internal static fixed bin(17,0) initial array dcl 11-52 NAMES DECLARED BY EXPLICIT CONTEXT. CHASE 013140 constant label dcl 658 ref 654 ERROR 013637 constant label dcl 700 ref 689 dump_cdt_ 003354 constant entry external dcl 42 dump_tree 012505 constant entry internal dcl 593 ref 235 edit_desc 012176 constant entry internal dcl 551 ref 299 301 337 339 340 347 349 384 399 401 403 409 424 431 433 edit_time 012117 constant entry internal dcl 537 ref 168 176 364 455 463 flag_names 012270 constant entry internal dcl 563 ref 411 414 417 427 print_cdte 006552 constant entry internal dcl 371 ref 221 224 271 277 664 print_fnpe 005135 constant entry internal dcl 289 ref 212 215 250 254 606 print_mpxe 005567 constant entry internal dcl 321 ref 315 389 print_time 006465 constant entry internal dcl 359 ref 341 342 343 344 show_children 013033 constant entry internal dcl 633 ref 217 226 257 279 609 617 679 string_edit 012045 constant entry internal dcl 525 ref 407 432 438 NAMES DECLARED BY CONTEXT OR IMPLICATION. collate builtin function ref 247 247 252 252 605 605 rank builtin function ref 247 247 252 252 605 605 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 14262 14316 14033 14272 Length 15050 14033 34 516 227 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dump_cdt_ 598 external procedure is an external procedure. print_fnpe internal procedure shares stack frame of external procedure dump_cdt_. print_mpxe 186 internal procedure is called by several nonquick procedures. print_time internal procedure shares stack frame of internal procedure print_mpxe. print_cdte 374 internal procedure is called by several nonquick procedures. string_edit internal procedure shares stack frame of internal procedure print_cdte. edit_time 81 internal procedure is called by several nonquick procedures. edit_desc 67 internal procedure is called by several nonquick procedures. flag_names internal procedure shares stack frame of internal procedure print_cdte. dump_tree internal procedure shares stack frame of external procedure dump_cdt_. show_children 139 internal procedure enables or reverts conditions. on unit on line 682 100 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dump_cdt_ 000100 i dump_cdt_ 000101 n dump_cdt_ 000102 found_a_match dump_cdt_ 000103 time dump_cdt_ 000104 avg dump_cdt_ 000105 indent dump_cdt_ 000106 fnpx dump_cdt_ 000107 cdtx dump_cdt_ 000110 fnp_find_sw dump_cdt_ 000112 temp_dev_name dump_cdt_ 000114 code dump_cdt_ 000115 error dump_cdt_ 000146 devtab_copy dump_cdt_ 000406 two_digits dump_cdt_ 000407 visited dump_cdt_ 000523 tcount dump_cdt_ 000524 CI dump_cdt_ 000556 dca_ptr dump_cdt_ 000560 cdtp dump_cdt_ 000562 cdtep dump_cdt_ 000564 fnpep dump_cdt_ 000566 mpxep dump_cdt_ 000570 sub_error_info_ptr dump_cdt_ 000602 mpx_type print_fnpe edit_time 000100 time_string edit_time print_cdte 000100 hrs print_cdte 000101 mins print_cdte 000102 secs print_cdte 000103 auth_string print_cdte 000165 code print_cdte 000202 return_string flag_names 000303 j flag_names show_children 000100 cp show_children 000102 fx show_children 000103 ffnp_sw show_children 000104 x show_children 000105 last_sister show_children 000106 dcount show_children THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac fl2_to_fx1 tra_ext_1 enable_op shorten_stack ext_entry int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cdt_mgr_$find_cdt_channel convert_authorization_$to_string_range_short convert_authorization_$to_string_short convert_status_code_ date_time_ find_condition_info_ ioa_$ioa_switch match_star_name_ system_info_$device_prices THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$nomatch LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 42 003350 156 003361 157 003363 158 003366 159 003370 161 003371 163 003404 164 003410 165 003430 166 003454 168 003504 169 003541 170 003575 171 003622 172 003650 173 003700 174 003726 175 003754 176 004002 178 004037 179 004042 180 004044 181 004053 182 004057 184 004106 185 004116 186 004122 188 004151 190 004204 192 004237 194 004264 195 004311 196 004336 199 004353 201 004364 203 004370 204 004412 206 004414 207 004416 210 004417 212 004422 215 004433 217 004442 219 004463 221 004464 224 004504 226 004522 229 004543 233 004544 235 004546 236 004547 241 004550 243 004551 244 004557 245 004563 247 004565 248 004622 249 004624 250 004626 252 004640 254 004702 255 004707 257 004720 261 004740 265 004742 266 004753 267 004757 268 004761 269 005010 270 005012 271 005014 274 005032 277 005072 279 005103 283 005124 285 005126 287 005134 289 005135 295 005137 296 005144 297 005146 299 005151 301 005220 303 005275 305 005332 307 005370 309 005423 310 005450 312 005501 314 005532 315 005535 316 005546 317 005565 321 005566 335 005574 337 005620 339 005677 340 005756 341 006034 342 006056 343 006101 344 006123 345 006145 346 006202 347 006240 349 006320 352 006402 353 006433 354 006464 359 006465 364 006476 365 006550 371 006551 382 006557 384 006607 385 006670 386 006727 388 006746 389 006751 391 006771 392 007015 393 007024 394 007055 395 007111 396 007125 397 007133 398 007140 399 007174 401 007266 403 007355 405 007444 407 007503 408 007545 409 007603 411 007673 414 007736 417 010002 419 010046 421 010105 423 010144 424 010200 426 010272 427 010331 430 010374 431 010430 432 010513 433 010555 435 010647 436 010673 437 010702 438 010733 439 011003 440 011037 442 011075 443 011131 444 011167 445 011226 447 011265 448 011320 449 011353 450 011362 451 011364 452 011370 453 011373 454 011377 455 011435 456 011502 458 011541 460 011603 462 011644 463 011677 464 011744 466 012002 469 012044 525 012045 529 012056 530 012074 537 012116 542 012124 543 012136 544 012152 551 012175 556 012211 558 012225 559 012233 563 012270 571 012301 573 012302 574 012313 575 012321 576 012345 578 012354 579 012356 581 012404 582 012410 583 012421 584 012433 585 012460 587 012467 588 012471 589 012475 593 012505 596 012506 597 012507 598 012510 599 012531 601 012533 602 012541 603 012545 605 012547 606 012604 607 012612 609 012623 611 012643 615 012645 616 012647 617 012667 620 012707 621 012720 622 012731 624 012774 626 012776 629 013031 633 013032 647 013040 648 013076 649 013077 651 013106 653 013111 654 013136 656 013137 658 013140 661 013141 662 013152 663 013157 664 013214 666 013230 667 013231 668 013233 670 013237 672 013303 675 013347 676 013351 678 013355 679 013360 680 013377 682 013402 684 013416 685 013437 686 013445 687 013463 689 013523 692 013526 693 013552 695 013555 697 013607 700 013637 702 013647 705 013715 ----------------------------------------------------------- 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