COMPILATION LISTING OF SEGMENT delete_fnp Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1024.4 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* delete_fnp.pl1 command interface (perhaps interim) to FNP reconfiguration */ 7 /* format: style2 */ 8 9 delete_fnp: 10 procedure options (variable); 11 12 declare cu_$arg_count entry (fixed bin, fixed bin (35)); 13 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 14 declare com_err_ entry () options (variable); 15 declare expand_pathname_$add_suffix 16 entry (character (*), character (*), character (*), character (*), 17 fixed binary (35)); 18 declare get_fnp_name_ entry (fixed binary) returns (character (32)); 19 declare multiplexer_mgr_$count_mpx_users 20 entry (character (*), pointer, fixed binary, fixed binary (35)); 21 declare parse_fnp_name_ entry (character (*), fixed binary); 22 declare pathname_ entry (character (*), character (*)) returns (character (168)); 23 declare hphcs_$deconfigure_fnp entry (fixed bin, fixed bin (35)); 24 declare ioa_ entry () options (variable); 25 declare command_query_$yes_no entry () options (variable); 26 declare initiate_file_ entry (character (*), character (*), bit (*), pointer, fixed binary (24), 27 fixed binary (35)); 28 declare terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 29 30 declare ap ptr; 31 declare al fixed bin (21); 32 declare argument char (al) based (ap); 33 declare code fixed bin (35); 34 declare fnp_no fixed bin; 35 declare argx fixed bin; 36 declare n_args fixed bin; 37 declare force bit (1) aligned; 38 declare test bit (1) aligned; 39 declare n_users fixed bin; 40 declare cdt_dir_name char (168); 41 declare cdt_entryname char (32); 42 declare query_response bit (1) aligned; 43 44 declare error_table_$bad_channel 45 fixed bin (35) ext static; 46 declare error_table_$noarg fixed bin (35) ext static; 47 declare error_table_$too_many_args 48 fixed bin (35) ext static; 49 declare error_table_$badopt fixed bin (35) ext static; 50 51 declare ME char (32) init ("delete_fnp") int static options (constant); 52 declare cleanup condition; 53 54 55 call cu_$arg_count (n_args, code); 56 if code ^= 0 57 then do; 58 call com_err_ (code, ME); 59 return; 60 end; 61 62 if n_args = 0 63 then do; 64 call com_err_ (0, ME, "Usage: delete_fnp FNP_TAG {-force} {-test CDT_PATH}"); 65 return; 66 end; 67 68 force, test = "0"b; 69 cdt_dir_name = ">system_control_dir"; 70 cdt_entryname = "cdt"; 71 fnp_no = -1; 72 73 do argx = 1 to n_args; 74 call cu_$arg_ptr (argx, ap, al, (0)); 75 if index (argument, "-") = 1 76 then do; /* control argument */ 77 if argument = "-force" 78 then force = "1"b; 79 else if argument = "-no_force" 80 then force = "0"b; 81 else if argument = "-test" 82 then do; 83 test = "1"b; 84 if argx = n_args 85 then do; 86 call com_err_ (error_table_$noarg, ME, 87 "-test must be followed by a CDT pathname."); 88 return; 89 end; 90 argx = argx + 1; 91 call cu_$arg_ptr (argx, ap, al, (0)); 92 call expand_pathname_$add_suffix (argument, "cdt", cdt_dir_name, cdt_entryname, code); 93 if code ^= 0 94 then do; 95 call com_err_ (code, ME, "^a.", argument); 96 return; 97 end; 98 end; 99 else if argument = "-no_test" 100 then do; 101 test = "0"b; 102 cdt_dir_name = ">system_control_dir"; 103 cdt_entryname = "cdt"; 104 end; 105 else do; 106 call com_err_ (error_table_$badopt, ME, "^a.", argument); 107 return; 108 end; 109 end; 110 else do; 111 if fnp_no > 0 /* already got */ 112 then do; 113 call com_err_ (error_table_$too_many_args, ME, "Only one FNP may be specified."); 114 return; 115 end; 116 call parse_fnp_name_ (argument, fnp_no); 117 if fnp_no ^> 0 118 then do; 119 call com_err_ (error_table_$bad_channel, ME, "Invalid FNP name ^a.", argument); 120 return; 121 end; 122 end; /* FNP Spec */ 123 end; /* arg loop */ 124 125 cdtp = null (); 126 on cleanup 127 begin; 128 if cdtp ^= null () 129 then call terminate_file_ (cdtp, (0), TERM_FILE_TERM, (0)); 130 cdtp = null (); 131 end; 132 133 if ^force 134 then do; 135 call initiate_file_ (cdt_dir_name, cdt_entryname, R_ACCESS, cdtp, (0), code); 136 if code ^= 0 137 then do; 138 call com_err_ (code, ME, 139 "Could not access ^a to check for users of the FNP. Use -force if you really want to delete it." 140 , pathname_ (cdt_dir_name, cdt_entryname)); 141 return; 142 end; 143 144 fnpep = addr (cdt.fnp_entry (fnp_no)); 145 mpxep = addr (fnpe.mpxe); 146 147 if mpxe.state ^= MPX_DOWN & mpxe.state ^= MPX_FREE 148 /* might be just running T&D */ 149 then do; 150 call multiplexer_mgr_$count_mpx_users (get_fnp_name_ (fnp_no), cdtp, n_users, code); 151 if code ^= 0 152 then n_users = 0; /* something wrong with cdt */ 153 call command_query_$yes_no (query_response, (0), ME, 154 "Deleting the FNP will crash it and disconnect the users.", 155 "FNP ^a is ^[in an unknown state^;down^;booting^;up^]^[ and has ^d user^[s^]^]. Are you sure that you want to delete it?" 156 , get_fnp_name_ (fnp_no), mpxe.state, n_users > 0, n_users, n_users > 1); 157 if ^query_response 158 then do; 159 call ioa_ ("FNP ^a not deleted.", get_fnp_name_ (fnp_no)); 160 go to RETURN; 161 end; 162 end; 163 end; 164 if test 165 then go to RETURN; 166 call hphcs_$deconfigure_fnp (fnp_no, code); 167 if code = 0 168 then call ioa_ ("FNP ^a deleted from configuration.", get_fnp_name_ (fnp_no)); 169 else call com_err_ (code, ME, "Could not delete FNP ^a from configuration"); 170 RETURN: 171 call terminate_file_ (cdtp, (0), TERM_FILE_TERM, (0)); 172 173 return; 174 1 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 1 2 1 3 /* format: style3,idind25,indcomtxt */ 1 4 1 5 /* Channel Definition Table. 1 6* This table lists all of the hardware channels (ports) connected 1 7* to the system, and maintains the attributes of each one. 1 8* 1 9* PG 741230 1 10* Modified by Mike Grady 5/6/76 to add FNP info. 1 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 1 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 1 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 1 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 1 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 1 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 1 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 1 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 1 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 1 20* Modified August 1982 by E. N. Kittlitz for check_acs. 1 21* Modified January 1983 by Keith Loepere for generic_destination. 1 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 1 23* Modified 831216 by E. N. Kittlitz for required_access_class. 1 24* Modified 84-04-01 by BIM to finish communications AIM: 1 25* access class ranges, 1 26* access_control flags. 1 27**/ 1 28 1 29 1 30 /****^ HISTORY COMMENTS: 1 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 1 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 1 33* Add support for answering service to use IOCBs when tty_ cannot be 1 34* used to service login channels. 1 35* END HISTORY COMMENTS */ 1 36 1 37 1 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 1 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 1 40 1 41 dcl (cdtp, cdtep, fnpep, mpxep) 1 42 ptr; 1 43 1 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 1 45 2 author like author_dcl.author, /* standard header */ 1 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 1 47 2 current_size fixed bin, /* number of last cdte. */ 1 48 2 version fixed bin, 1 49 2 freep fixed bin, /* chain of free cdte's */ 1 50 2 n_cdtes fixed bin, /* number of used cdte's */ 1 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 1 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 1 53 2 cpu_in_dialup fixed bin (71), /* .. */ 1 54 2 pf_in_dialup fixed bin, /* .. */ 1 55 2 pp_in_dialup fixed bin, /* .. */ 1 56 2 entries_to_dialup fixed bin, /* .. */ 1 57 2 flags, 1 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 1 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 1 60 3 mux_mgr_system_init 1 61 bit (1) unal, /* mux mgr has loaded top-levels */ 1 62 3 pad1 bit (33) unal, 1 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 1 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 1 65 2 threads aligned like channel_threads, 1 66 /* root of non-fnp-top-level-multiplexers */ 1 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 1 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 1 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 1 70 1 71 1 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 1 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 1 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 1 75 2 pad1 bit (36) aligned, 1 76 2 name char (32), /* ASCII name of channel */ 1 77 2 access_class (2) bit (72) aligned, /* access class range */ 1 78 2 comment char (48), /* printable message about channel */ 1 79 2 charge_type fixed bin (17) unal, /* billing group */ 1 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 1 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 1 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 1 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 1 84 2 pad2 bit (18) unaligned, 1 85 2 answerback char (8), /* answerback string expected */ 1 86 2 initial_terminal_type 1 87 char (32) unal, /* as specified in the CMF */ 1 88 2 mpx_data unal, /* data used only for multiplexed channels */ 1 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 1 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 1 91 2 flags, 1 92 ( 3 attributes, 1 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 1 94 4 audit_access_error 1 95 bit (1), /* ON means ck that person auth is inside access class range */ 1 96 /* this implies that the access_class describes a range of 1 97* legitimate user auths. */ 1 98 4 hardwired bit (1), /* ON means it is */ 1 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 1 100 4 dont_read_answerback 1 101 bit (1), /* ON means don't try to read answerback */ 1 102 4 pada bit (4), 1 103 3 access_control unaligned, /* As below */ 1 104 4 dial_out bit (1), /* dialing user must be on ACS */ 1 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 1 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 1 107 4 login bit (1), /* logging in user must be on acs */ 1 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 1 109 4 pado bit (3), 1 110 3 options, 1 111 4 execute_initial_command 1 112 bit (1), /* ON means to do it */ 1 113 4 attached_by_operator 1 114 bit (1), /* ON means temporary attachment. */ 1 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 1 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 1 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 1 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 1 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 1 120 4 generic_destination_present 1 121 bit (1), /* ON means that the initial_command field contains 1 122* a generic destination to match on dial_out or priv attach */ 1 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 1 124 4 pado bit (9) 1 125 ) unaligned, 1 126 2 initial_command char (64), /* pseudo first input line */ 1 127 /**** The following variables represent dynamic control info, and 1 128* are used mostly by dialup_ and asu_ */ 1 129 2 event fixed bin (71), /* event call channel for channel events */ 1 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 1 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 1 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 1 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 1 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 1 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 1 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 1 137 /* 0 = dialup_, 1 = mc_tty_ */ 1 138 3 save_arg bit (1) unal, /* -save login arg given */ 1 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 1 140 3 detach_after_hangup 1 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 1 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 1 143 3 hold_arg bit (1) unal, /* -hold arg given */ 1 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 1 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 1 146 3 current_access_class_valid 1 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 1 148 3 pad bit (7) unal, 1 149 2 twx fixed bin, /* channel device index */ 1 150 2 state fixed bin, /* channel state */ 1 151 2 tty_id_code char (4), /* channel id (answerback) */ 1 152 2 current_terminal_type 1 153 char (32) unal, /* most recently-set terminal type */ 1 154 2 process ptr unal, /* ptr to ATE owning this channel */ 1 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 1 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 1 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 1 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 1 159* We do not yet define multi-class connections, but we will someday. */ 1 160 2 disconnected_ate_index 1 161 fixed bin (17) unal, /* index of ate of disconnected process */ 1 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 1 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 1 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 1 165 2 pad3 bit (14) unaligned, 1 166 /**** The following variables are kept for metering purposes. */ 1 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 1 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 1 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 1 170 2 dialup_time fixed bin (71), /* time of present dialup */ 1 171 2 disconnected_proc_command 1 172 fixed bin (12) unsigned unal, 1 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 1 174 2 disconnected_proc_number 1 175 fixed bin (12) unsigned unal, 1 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 1 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 1 178 /* number of disconnected processes that user has */ 1 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 1 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 1 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 1 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 1 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 1 184 /**** had the space. */ 1 185 2 threads aligned like channel_threads, 1 186 /**** The use name is that of the user who gave the dial or slave ****/ 1 187 /**** preaccess request. ****/ 1 188 2 user_name unaligned, 1 189 3 person char (20) unaligned, 1 190 3 project char (9) unaligned, 1 191 3 pad char (3) unaligned, /* no tag */ 1 192 2 iocbp ptr unaligned; /* 104 words */ 1 193 1 194 1 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 1 196* overlays initial_command field for slave and autocall lines */ 1 197 1 198 1 199 1 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 1 201 /* These variables are filled in from the CMF */ 1 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 1 203 2 memory fixed bin, /* amount of memory on this FNP */ 1 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 1 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 1 206 2 service_type fixed bin, /* service type */ 1 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 1 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 1 209 /**** The following are used during system operation to remember the state of the FNP */ 1 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 1 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 1 212 2 mpxe like mpxe, /* standard multiplexer data */ 1 213 2 threads aligned like channel_threads, 1 214 /* same mpx threads as channel */ 1 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 1 216 1 217 /* This structure describes the data necessary to control a multiplexer. 1 218* For FNP's., a copy appears in the fnpe. For communications lines, it 1 219* overlays the initial_command field in the cdte. */ 1 220 1 221 dcl 1 mpxe based (mpxep) aligned, 1 222 2 state fixed bin, /* current state, up, down, loading */ 1 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 1 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 1 225 2 n_bootloads fixed bin, /* count of load attempts */ 1 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 1 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 1 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 1 229 2 time_load_start fixed bin (71), /* time current load started */ 1 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 1 231 2 flags unal, 1 232 3 go bit (1), /* start MPX after it loads */ 1 233 3 listening bit (1), /* listen has been done on subchannels */ 1 234 3 check bit (1), /* loaded with check option */ 1 235 3 retry_load bit (1), /* reload if load fails */ 1 236 3 pad1 bit (32), 1 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 1 238 1 239 /* These threads define the tree of multiplexers in the cdt. */ 1 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 1 241 /* by alpha sort order of the channel name. Daughter points to the */ 1 242 /* first child of this node, if any. Daughter count is the number */ 1 243 /* of children, as a consistency check. Mother is a back pointer to */ 1 244 /* the parent, present in all the children, not just the first. */ 1 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 1 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 1 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 1 248 1 249 dcl 1 channel_threads aligned based, 1 250 2 next_sister fixed bin unaligned, 1 251 2 prev_sister fixed bin unaligned, 1 252 2 daughter fixed bin unaligned, 1 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 1 254 2 pad bit (18) unaligned, 1 255 2 daughter_count fixed bin unaligned; 1 256 1 257 /* Values for cdte.service_type field */ 1 258 1 259 dcl ( 1 260 ANS_SERVICE init (1), /* login or dial */ 1 261 FTP_SERVICE init (2), /* file transfer service */ 1 262 MC_SERVICE init (3), /* message coordinator */ 1 263 SLAVE_SERVICE init (4), /* special channel */ 1 264 DIAL_SERVICE init (5), /* transient state */ 1 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 1 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 1 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 1 268 ) fixed bin internal static options (constant); 1 269 1 270 /* Values for service type in both cdte and fnpe */ 1 271 1 272 dcl ( 1 273 INACTIVE init (7), /* not to be used, even though configured */ 1 274 ACTIVE init (1) 1 275 ) /* for FNP only, configured and to be used */ 1 276 fixed bin internal static options (constant); 1 277 1 278 /* Value for both cdte.in_use and fnpe.state */ 1 279 1 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 1 281 /* was not configured at Multics bootload time */ 1 282 1 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 1 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 1 285 1 286 /* Value for cdte.in_use */ 1 287 1 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 1 289 /* channel deleted by CDT installation */ 1 290 1 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 1 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 1 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 1 294 1 295 1 296 /* Values for mpxe.state field */ 1 297 1 298 dcl ( 1 299 FNP_FREE init (0), /* this fnpe is not used */ 1 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 1 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 1 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 1 303 FNP_UP init (4) /* FNP is up and running fine */ 1 304 ) fixed bin internal static options (constant); 1 305 1 306 dcl ( 1 307 MPX_FREE init (0), /* this mpxe is not used */ 1 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 1 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 1 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 1 311 MPX_UP init (4) /* MPX is up and running fine */ 1 312 ) fixed bin internal static options (constant); 1 313 2 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 2 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 2 8* Add data needed for the uncp multiplexer (DSA gateway) interface 2 9* implementation. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /* Values for fnpe.type field */ 2 14 /* 2 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 2 16* Added in March 1982 - DN7100.fd. 2 17**/ 2 18 2 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 2 20 DN6600 init (2), /* a DataNet 6600 FNP */ 2 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 2 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 2 23 ) fixed bin internal static options (constant); 2 24 2 25 dcl fnp_types (4) char (8) int static options (constant) 2 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 2 27 2 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 2 29 init (355, 6600, 6670, 7100); 2 30 2 31 dcl supported_fnp (4) bit (1) int static options (constant) 2 32 init ("0"b, "0"b, "1"b, "1"b); 2 33 2 34 2 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 1 314 1 315 1 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 175 3 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 3 2* 3 3* Values for the "access mode" argument so often used in hardcore 3 4* James R. Davis 26 Jan 81 MCR 4844 3 5* Added constants for SM access 4/28/82 Jay Pattin 3 6* Added text strings 03/19/85 Chris Jones 3 7**/ 3 8 3 9 3 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 3 11 dcl ( 3 12 N_ACCESS init ("000"b), 3 13 R_ACCESS init ("100"b), 3 14 E_ACCESS init ("010"b), 3 15 W_ACCESS init ("001"b), 3 16 RE_ACCESS init ("110"b), 3 17 REW_ACCESS init ("111"b), 3 18 RW_ACCESS init ("101"b), 3 19 S_ACCESS init ("100"b), 3 20 M_ACCESS init ("010"b), 3 21 A_ACCESS init ("001"b), 3 22 SA_ACCESS init ("101"b), 3 23 SM_ACCESS init ("110"b), 3 24 SMA_ACCESS init ("111"b) 3 25 ) bit (3) internal static options (constant); 3 26 3 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 3 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 3 29 3 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 3 31 static options (constant); 3 32 3 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 3 34 static options (constant); 3 35 3 36 dcl ( 3 37 N_ACCESS_BIN init (00000b), 3 38 R_ACCESS_BIN init (01000b), 3 39 E_ACCESS_BIN init (00100b), 3 40 W_ACCESS_BIN init (00010b), 3 41 RW_ACCESS_BIN init (01010b), 3 42 RE_ACCESS_BIN init (01100b), 3 43 REW_ACCESS_BIN init (01110b), 3 44 S_ACCESS_BIN init (01000b), 3 45 M_ACCESS_BIN init (00010b), 3 46 A_ACCESS_BIN init (00001b), 3 47 SA_ACCESS_BIN init (01001b), 3 48 SM_ACCESS_BIN init (01010b), 3 49 SMA_ACCESS_BIN init (01011b) 3 50 ) fixed bin (5) internal static options (constant); 3 51 3 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 176 4 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 4 2 /* format: style2,^inddcls,idind32 */ 4 3 4 4 declare 1 terminate_file_switches based, 4 5 2 truncate bit (1) unaligned, 4 6 2 set_bc bit (1) unaligned, 4 7 2 terminate bit (1) unaligned, 4 8 2 force_write bit (1) unaligned, 4 9 2 delete bit (1) unaligned; 4 10 4 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 4 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 4 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 4 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 4 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 4 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 4 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 4 18 4 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 177 5 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 5 2 5 3 /* This include file declares the "author" substructure 5 4* in a form suitable for using the PL/I "like" attribute. 5 5* 5 6* Written 750304 by PG 5 7**/ 5 8 5 9 dcl 1 author_dcl aligned based, 6 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 6 2 6 3 /* the "author" items must always be the first ones in the table. The 6 4* module which moves the converted table to the System Control process 6 5* fills in these data items and assumes them to be at the head of the segment 6 6* regardless of the specific table's actual declaration. The variables 6 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 6 8* respectively. For tables installed in multiple processes, these 6 9* are to be used to lock out multiple installations. */ 6 10 6 11 /* Lock should be used as a modification lock. Since, in general, 6 12* entries may not be moved in system tables, even by installations, 6 13* it is sufficient for only installers and programs that change threads 6 14* to set or respect the lock. Simply updating data in an entry 6 15* requires no such protection. 6 16* 6 17* Last_install_time is used by readers of system tables to detect 6 18* installations or other serious modifications. By checking it before 6 19* and after copying a block of data, they can be protected against 6 20* modifications. 6 21* 6 22* Modules that set the lock should save proc_group_id, and then 6 23* put their group id there for the time they hold the lock. 6 24* if they do not actually install the, they should restore the group id. 6 25**/ 6 26 6 27 2 author aligned, /* validation data about table's author */ 6 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 6 29 3 lock bit (36), /* installation lock */ 6 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 6 31 3 update_authorization bit (1) unal, /* update only authorizations */ 6 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 6 33 3 pad bit (33) unaligned, 6 34 3 last_install_time fixed bin (71), 6 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 6 36 3 w_dir char (64), /* author's working directory */ 6 37 6 38 /* END INCLUDE FILE author.incl.pl1 */ 5 10 5 11 2 pad; 5 12 5 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 178 179 end delete_fnp; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.7 delete_fnp.pl1 >special_ldd>install>MR12.2-1061>delete_fnp.pl1 175 1 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 1-314 2 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 176 3 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 177 4 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 178 5 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 5-10 6 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.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. ME 000001 constant char(32) initial packed unaligned dcl 51 set ref 58* 64* 86* 95* 106* 113* 119* 138* 153* 169* MPX_DOWN constant fixed bin(17,0) initial dcl 1-306 ref 147 MPX_FREE constant fixed bin(17,0) initial dcl 1-306 ref 147 R_ACCESS 000034 constant bit(3) initial packed unaligned dcl 3-11 set ref 135* TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 4-14 set ref 128* 170* al 000102 automatic fixed bin(21,0) dcl 31 set ref 74* 75 77 79 81 91* 92 92 95 95 99 106 106 116 116 119 119 ap 000100 automatic pointer dcl 30 set ref 74* 75 77 79 81 91* 92 95 99 106 116 119 argument based char packed unaligned dcl 32 set ref 75 77 79 81 92* 95* 99 106* 116* 119* argx 000105 automatic fixed bin(17,0) dcl 35 set ref 73* 74* 84 90* 90 91* author based structure level 2 dcl 5-9 author_dcl based structure level 1 dcl 5-9 cdt based structure level 1 dcl 1-44 cdt_dir_name 000112 automatic char(168) packed unaligned dcl 40 set ref 69* 92* 102* 135* 138* 138* cdt_entryname 000164 automatic char(32) packed unaligned dcl 41 set ref 70* 92* 103* 135* 138* 138* cdte based structure level 1 dcl 1-72 cdtp 000204 automatic pointer dcl 1-41 set ref 125* 128 128* 130* 135* 144 150* 170* channel_threads based structure level 1 dcl 1-249 cleanup 000176 stack reference condition dcl 52 ref 126 code 000103 automatic fixed bin(35,0) dcl 33 set ref 55* 56 58* 92* 93 95* 135* 136 138* 150* 151 166* 167 169* com_err_ 000014 constant entry external dcl 14 ref 58 64 86 95 106 113 119 138 169 command_query_$yes_no 000034 constant entry external dcl 25 ref 153 cu_$arg_count 000010 constant entry external dcl 12 ref 55 cu_$arg_ptr 000012 constant entry external dcl 13 ref 74 91 error_table_$bad_channel 000042 external static fixed bin(35,0) dcl 44 set ref 119* error_table_$badopt 000050 external static fixed bin(35,0) dcl 49 set ref 106* error_table_$noarg 000044 external static fixed bin(35,0) dcl 46 set ref 86* error_table_$too_many_args 000046 external static fixed bin(35,0) dcl 47 set ref 113* expand_pathname_$add_suffix 000016 constant entry external dcl 15 ref 92 fnp_entry 120 based structure array level 2 dcl 1-44 set ref 144 fnp_no 000104 automatic fixed bin(17,0) dcl 34 set ref 71* 111 116* 117 144 150* 150* 153* 153* 159* 159* 166* 167* 167* fnpe based structure level 1 dcl 1-200 fnpep 000206 automatic pointer dcl 1-41 set ref 144* 145 force 000107 automatic bit(1) dcl 37 set ref 68* 77* 79* 133 get_fnp_name_ 000020 constant entry external dcl 18 ref 150 150 153 153 159 159 167 167 hphcs_$deconfigure_fnp 000030 constant entry external dcl 23 ref 166 initiate_file_ 000036 constant entry external dcl 26 ref 135 ioa_ 000032 constant entry external dcl 24 ref 159 167 mpxe based structure level 1 dcl 1-221 in procedure "delete_fnp" mpxe 64 based structure level 2 in structure "fnpe" dcl 1-200 in procedure "delete_fnp" set ref 145 mpxep 000210 automatic pointer dcl 1-41 set ref 145* 147 147 153 multiplexer_mgr_$count_mpx_users 000022 constant entry external dcl 19 ref 150 n_args 000106 automatic fixed bin(17,0) dcl 36 set ref 55* 62 73 84 n_users 000111 automatic fixed bin(17,0) dcl 39 set ref 150* 151* 153 153* 153 parse_fnp_name_ 000024 constant entry external dcl 21 ref 116 pathname_ 000026 constant entry external dcl 22 ref 138 138 query_response 000174 automatic bit(1) dcl 42 set ref 153* 157 state based fixed bin(17,0) level 2 dcl 1-221 set ref 147 147 153* terminate_file_ 000040 constant entry external dcl 28 ref 128 170 test 000110 automatic bit(1) dcl 38 set ref 68* 83* 101* 164 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE internal static fixed bin(17,0) initial dcl 1-272 ANS_SERVICE internal static fixed bin(17,0) initial dcl 1-259 A_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 CDT_version internal static fixed bin(17,0) initial dcl 1-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 1-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 1-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 3-33 DN355 internal static fixed bin(17,0) initial dcl 2-19 DN6600 internal static fixed bin(17,0) initial dcl 2-19 DN6670 internal static fixed bin(17,0) initial dcl 2-19 DN7100 internal static fixed bin(17,0) initial dcl 2-19 E_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 FNP_BOOT internal static fixed bin(17,0) initial dcl 1-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 1-298 FNP_FREE internal static fixed bin(17,0) initial dcl 1-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 1-298 FNP_UP internal static fixed bin(17,0) initial dcl 1-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 1-259 INACTIVE internal static fixed bin(17,0) initial dcl 1-272 MC_SERVICE internal static fixed bin(17,0) initial dcl 1-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 1-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 1-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 1-306 MPX_UP internal static fixed bin(17,0) initial dcl 1-306 M_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 1-280 N_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 3-30 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 1-259 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 1-259 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 4-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 4-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 4-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 4-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 4-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 4-15 W_ACCESS internal static bit(3) initial packed unaligned dcl 3-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 3-36 cdtep automatic pointer dcl 1-41 fnp_models internal static fixed bin(17,0) initial array dcl 2-28 fnp_types internal static char(8) initial array packed unaligned dcl 2-25 generic_destination based char(32) packed unaligned dcl 1-195 supported_fnp internal static bit(1) initial array packed unaligned dcl 2-31 terminate_file_switches based structure level 1 packed packed unaligned dcl 4-4 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 001476 constant label dcl 170 ref 160 164 delete_fnp 000271 constant entry external dcl 9 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 144 145 index builtin function ref 75 null builtin function ref 125 128 130 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1756 2030 1526 1766 Length 2356 1526 52 311 227 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME delete_fnp 318 external procedure is an external procedure. on unit on line 126 84 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME delete_fnp 000100 ap delete_fnp 000102 al delete_fnp 000103 code delete_fnp 000104 fnp_no delete_fnp 000105 argx delete_fnp 000106 n_args delete_fnp 000107 force delete_fnp 000110 test delete_fnp 000111 n_users delete_fnp 000112 cdt_dir_name delete_fnp 000164 cdt_entryname delete_fnp 000174 query_response delete_fnp 000204 cdtp delete_fnp 000206 fnpep delete_fnp 000210 mpxep delete_fnp THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out return_mac enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_$yes_no cu_$arg_count cu_$arg_ptr expand_pathname_$add_suffix get_fnp_name_ hphcs_$deconfigure_fnp initiate_file_ ioa_ multiplexer_mgr_$count_mpx_users parse_fnp_name_ pathname_ terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_channel error_table_$badopt error_table_$noarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000270 55 000276 56 000306 58 000310 59 000325 62 000326 64 000330 65 000355 68 000356 69 000360 70 000363 71 000366 73 000370 74 000377 75 000415 77 000431 79 000440 81 000446 83 000452 84 000454 86 000457 88 000503 90 000504 91 000505 92 000523 93 000561 95 000563 96 000615 98 000616 99 000617 101 000623 102 000624 103 000627 104 000632 106 000633 107 000665 109 000666 111 000667 113 000671 114 000715 116 000716 117 000736 119 000740 120 000776 123 000777 125 001001 126 001003 128 001017 130 001052 131 001055 133 001056 135 001060 136 001116 138 001120 141 001170 144 001171 145 001176 147 001200 150 001205 151 001243 153 001246 157 001346 159 001351 160 001402 164 001403 166 001405 167 001416 169 001452 170 001476 173 001525 ----------------------------------------------------------- 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