COMPILATION LISTING OF SEGMENT cmcs_station_ctl_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 1021.8 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* *********************************************************** */ 8 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8087), 14* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 15* MCR8087 cmcs_station_ctl_.pl1 Shorten wait time for cmcs_station_ctl_. 16* END HISTORY COMMENTS */ 17 18 19 /* Modified on 10/20/84 by FCH, [5.3-1], BUG565(phx18385), wait time for set_lock_$lock */ 20 /* Modified on 03/18/82 by FCH, [5.2-1], [4.4-4] was a disaster, BUG530 */ 21 /* Modified on 06/08/81 by FCH, [4.4-5], code "20" not returned, BUG468 */ 22 /* Modified on 05/12/81 by FCH, [4.4-4], zero deley if station in use, BUG468 */ 23 /* Modified on 04/29/81 by FCH, [4.4-3], entry find_destination added, BUG468 */ 24 /* Modified on 04/23/81 by FCH, [4.4-2], check destination count for legality, BUG468 */ 25 /* Modified on 03/03/81 by FCH, [4.4-1], once per process initialization, BUG468 */ 26 /* Modified since Version 4.3 */ 27 28 /* format: style3 */ 29 cmcs_station_ctl_: 30 proc; 31 32 /* COBOL MCS subroutine to manage stations for enable and disable functions. */ 33 34 /* Note: The disable/enable entrypoints all accept a char (10) password string. This string is ignored 35* because it was already checked by cobol_mcs_. Current ANSI rules on the use of multiple passwords for CMCS 36* terminals and queues is unclear and requests for clarification have been submitted. Until the clarification 37* is issued, this implementation will use a single password. Thus, cobol_mcs_ can do the checking for everybody. */ 38 39 /* Bob May, 6/01/77 */ 40 41 return; /* bad entry point */ 42 43 dcl i fixed bin, 44 my_name char (17) init ("cmcs_station_ctl_"); 45 46 47 dcl com_err_ entry options (variable); 48 49 dcl a_station_name char (12), 50 a_station_ctl_eptr ptr, 51 a_station_ctl_eindex 52 fixed bin, 53 a_input_cdp ptr, 54 a_output_cdp ptr, 55 a_station_output_cdp, 56 a_password char (10), 57 a_flag bit (1), 58 a_code fixed bin (35); /*[4.4-4]*/ 59 declare save_lwt fixed bin; 60 61 dcl x_station_name char (12), 62 station_count fixed bin; /* converted from char data */ 63 64 65 dcl (error_table_$invalid_lock_reset) 66 fixed bin (35) external; 67 68 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)), 69 set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 70 71 dcl (addr, null) builtin; 72 73 /* */ 1 1 /* BEGIN INCLUDE FILE... cmcs_cd_dcls.incl.pl1 */ 1 2 1 3 /* This COBOL MCS include file defines the input and output CD structures 1 4* that are used by the COBOL object program to pass function-specific data 1 5* to the CMCS runtime support package. */ 1 6 1 7 /* Bob May, 6/30/77 */ 1 8 1 9 dcl input_cdp ptr; 1 10 1 11 /* Input CD Structure */ 1 12 1 13 dcl 1 input_cd aligned based (input_cdp), 1 14 1 15 /* Input Header */ 1 16 1 17 2 queue_ptr ptr, 1 18 2 flags, 1 19 (3 io_sw bit (1), /* always "1"b for input cd */ 1 20 3 cobol_sw bit (1), /* always "1"b for COBOL MCS */ 1 21 3 filler bit (34)) unaligned, 1 22 2 last_tree_path, /* for faster lookup only */ 1 23 3 level_names (4) char (12), 1 24 1 25 /* COBOL Input CD */ 1 26 1 27 2 tree_path, 1 28 3 level_names (4) char (12), /* DN 1-4 */ 1 29 (2 msg_date char (6), /* DN 5, YYMMDD */ 1 30 2 msg_time char (8), /* DN 6, HHMMSSTT */ 1 31 2 station_name char (12), /* DN 7 */ 1 32 2 text_len pic "9999", /* DN 8, S.B. pic "9999" */ 1 33 2 text_delim pic "9", /* DN 9, S.B. pic "9" */ 1 34 2 status_key char (2), /* DN 10 */ 1 35 2 msg_count pic "999999") unaligned; /* DN 11, S.B. pic "999999" */ 1 36 1 37 /* */ 1 38 1 39 dcl output_cdp ptr; 1 40 1 41 /* Output CD Structure */ 1 42 1 43 dcl 1 output_cd aligned based (output_cdp), 1 44 1 45 /* Output CD Header */ 1 46 1 47 2 last_station_info_ptr ptr, 1 48 2 flags, 1 49 (3 io_sw bit (1), /* always "0"b for output cd */ 1 50 3 cobol_sw bit (1), /* alays "1"b for COBOL MCS */ 1 51 3 filler bit (34)) unaligned, 1 52 2 bin_max_station_count fixed bin, /* who sets? ---- */ 1 53 2 char_max_station_count pic "9999", /* S.B. pic "9999" */ 1 54 1 55 /* COBOL Output CD */ 1 56 1 57 2 station_count pic "9999", /* DN 1, S.B. pic "9999" */ 1 58 2 text_len pic "9999", /* DN 2, S.B. pic "9999" */ 1 59 2 status_key char (2) unaligned, /* DN 3 */ 1 60 2 dest_table (0 refer (output_cd.bin_max_station_count)) unaligned, 1 61 3 error_key char (1), /* DN 4 */ 1 62 3 station_name char (12); /* DN 5 */ 1 63 1 64 /* Last Station Info */ 1 65 1 66 dcl 1 last_station_info based (output_cd.last_station_info_ptr) aligned, 1 67 2 last_dest (output_cd.bin_max_station_count), 1 68 3 queue_iocbp ptr, 1 69 3 station_name char (12); 1 70 1 71 /* END INCLUDE FILE... cmcs_cd_dcls.incl.pl1 */ 74 2 1 /* BEGIN INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 2 2 2 3 /* This include file is the 1st part of all cobol_mcs tables */ 2 4 2 5 /* Bob May, 4/30/77 */ 2 6 2 7 dcl control_hdr_len fixed bin int static options (constant) init (32); 2 8 2 9 dcl control_hdr_ptr ptr; 2 10 2 11 dcl 1 control_hdr aligned based (control_hdr_ptr), 2 12 2 lockword bit (36) aligned, /* for process_id */ 2 13 2 version fixed bin, 2 14 2 clock_created fixed bin (71), 2 15 2 author aligned, 2 16 3 group_id char (32), /* person.proj.tag */ 2 17 3 process_id bit (36), 2 18 2 max_size fixed bin (18), /* maximum number of entries seg can hold */ 2 19 2 current_size fixed bin (18), /* index of last active entry */ 2 20 2 entry_count fixed bin (18), /* number of active entries */ 2 21 2 cmcs_control_hdr_filler (16) fixed bin; /* words (17-32) for later expansion */ 2 22 2 23 /* END INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 75 3 1 /* BEGIN INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8087), 3 7* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 3 8* MCR8087 cmcs_entry_dcls.incl.pl1 Shorten wait time for cmcs_station_ctl_. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 /* Entry declarations for the COBOL MCS runtime support package */ 3 13 3 14 /* Modified on 10/20/84 by FCH, [5.3-1] */ 3 15 /* Modified on 04/29/81 by FCH, [4.4-1] */ 3 16 /* Bob May, 6/01/77 */ 3 17 3 18 dcl cmcs_create_queues_ entry (fixed bin (35)); 3 19 3 20 dcl cmcs_date_time_ entry (fixed bin (71), char (6) unaligned, char (8) unaligned); 3 21 3 22 dcl cmcs_decode_status_ entry (ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 3 23 3 24 dcl cmcs_expand_tree_path_ entry (char (*), char (48), fixed bin (35)); 3 25 3 26 dcl cmcs_fillin_hdr_ entry (ptr, fixed bin, fixed bin, fixed bin, fixed bin (35)); 3 27 3 28 dcl cmcs_initiate_ctl_ entry (char (*), ptr, fixed bin (35)); 3 29 3 30 dcl cmcs_print_ entry (ptr, ptr, fixed bin (35), ptr, fixed bin (35)); 3 31 3 32 dcl cmcs_purge_queues_ entry (fixed bin, bit (1), fixed bin (35)); 3 33 3 34 dcl cmcs_queue_ctl_$accept_message_count entry (ptr, fixed bin, fixed bin (35)); 3 35 dcl cmcs_queue_ctl_$disable entry (ptr, fixed bin, char (10), fixed bin (35)); 3 36 dcl cmcs_queue_ctl_$enable entry (ptr, fixed bin, char (10), fixed bin (35)); 3 37 dcl cmcs_queue_ctl_$print entry (ptr, fixed bin, ptr, fixed bin (35)); 3 38 dcl cmcs_queue_ctl_$purge entry (ptr, fixed bin, fixed bin (35)); 3 39 dcl cmcs_queue_ctl_$receive entry (ptr, fixed bin, ptr, fixed bin, fixed bin (35)); 3 40 dcl cmcs_queue_ctl_$send entry (ptr, fixed bin, ptr, fixed bin, fixed bin, bit (36), fixed bin (35)); 3 41 dcl cmcs_queue_ctl_$stop_run entry (fixed bin, fixed bin (35)); 3 42 3 43 dcl cmcs_scramble_ entry (char (10)) returns (char (10)); 3 44 3 45 dcl cmcs_set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); /*[5.3-1]*/ 3 46 dcl cmcs_set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 3 47 3 48 dcl cmcs_station_ctl_$attach entry (char (12), fixed bin, fixed bin (35)); 3 49 dcl cmcs_station_ctl_$detach entry (fixed bin, fixed bin (35)); 3 50 dcl cmcs_station_ctl_$detach_name entry (char (12), fixed bin (35)); 3 51 dcl cmcs_station_ctl_$disable_input_terminal entry (ptr, char (10), fixed bin (35)); 3 52 dcl cmcs_station_ctl_$disable_output_terminal entry (ptr, char (10), fixed bin (35)); 3 53 dcl cmcs_station_ctl_$enable_input_terminal entry (ptr, char (10), fixed bin (35)); 3 54 dcl cmcs_station_ctl_$enable_output_terminal entry (ptr, char (10), fixed bin (35)); 3 55 dcl cmcs_station_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); /*[4.4-1]*/ 3 56 dcl cmcs_station_ctl_$input_disabled entry (fixed bin, bit (1), fixed bin (35)); 3 57 dcl cmcs_station_ctl_$output_disabled entry (fixed bin, bit (1), fixed bin (35)); 3 58 dcl cmcs_station_ctl_$validate entry (char (12), fixed bin, fixed bin (35)); 3 59 3 60 dcl cmcs_status_list_ctl_$add entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 3 61 dcl cmcs_status_list_ctl_$delete entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 3 62 dcl cmcs_status_list_ctl_$move entry (ptr, ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 3 63 3 64 dcl cmcs_terminal_ctl_$find entry (char (8), char (12), fixed bin (35)); 3 65 3 66 dcl cmcs_tree_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); 3 67 dcl cmcs_tree_ctl_$find_index entry (fixed bin, ptr, fixed bin (35)); 3 68 dcl cmcs_tree_ctl_$find_tree_path entry (ptr, fixed bin, fixed bin, ptr, fixed bin (35)); 3 69 dcl cmcs_tree_ctl_$find_qual_name entry (char (12), fixed bin, ptr, char (52), fixed bin (35)); /*[4.4-1]*/ 3 70 3 71 dcl cmcs_wait_ctl_$add entry (char (48), fixed bin, fixed bin (35)); 3 72 dcl cmcs_wait_ctl_$delete entry (fixed bin, fixed bin (35)); 3 73 dcl cmcs_wait_ctl_$find entry (char (48), ptr, fixed bin (35)); 3 74 dcl cmcs_wait_ctl_$mp_available entry (fixed bin, fixed bin, fixed bin (35)); 3 75 dcl cmcs_wait_ctl_$mp_login entry (fixed bin, fixed bin (35)); 3 76 dcl cmcs_wait_ctl_$mp_logout entry (fixed bin, fixed bin (35)); 3 77 dcl cmcs_wait_ctl_$clear_mp entry (fixed bin (35)); 3 78 dcl cmcs_wait_ctl_$start_mp entry (fixed bin (35)); 3 79 dcl cmcs_wait_ctl_$stop_mp entry (fixed bin (35)); 3 80 3 81 /* END INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 76 4 1 /* BEGIN INCLUDE FILE... cmcs_error_table_dcls.incl.pl1 */ 4 2 4 3 /* Bob May, 6/30/77 */ 4 4 4 5 dcl (cmcs_error_table_$ambiguous_tree_path, cmcs_error_table_$bad_call_parm, cmcs_error_table_$bad_dest, 4 6 cmcs_error_table_$bad_dest_count, cmcs_error_table_$bad_message_length, 4 7 cmcs_error_table_$bad_password, cmcs_error_table_$bad_queue_path, cmcs_error_table_$bad_slew, 4 8 4 9 cmcs_error_table_$bad_source, cmcs_error_table_$bad_station, 4 10 cmcs_error_table_$bad_term_devchn, cmcs_error_table_$bad_tree_path, 4 11 cmcs_error_table_$dest_already_disabled, cmcs_error_table_$dest_already_enabled, 4 12 4 13 cmcs_error_table_$dest_disabled, cmcs_error_table_$no_message, 4 14 cmcs_error_table_$no_partial_messages, cmcs_error_table_$null_partial_message, 4 15 cmcs_error_table_$queue_already_disabled, cmcs_error_table_$queue_already_enabled, 4 16 4 17 cmcs_error_table_$queue_disabled, cmcs_error_table_$source_already_disabled, 4 18 cmcs_error_table_$source_already_enabled, cmcs_error_table_$source_disabled) fixed bin (35) external; 4 19 4 20 /* END INCLUDE FILE... cmcs_error_table_dcls.incl.pl1 */ 77 5 1 /* BEGIN INCLUDE FILE... cmcs_station_ctl.incl.pl1 */ 5 2 5 3 /* This include file defines the station control structure for COBOL MCS */ 5 4 5 5 /* Bob May, 5/31/77 */ 5 6 5 7 dcl (station_ctl_hdr_len init (0), /* no special fields in hdr */ 5 8 station_ctl_entry_len init (6), 5 9 station_ctl_version init (1)) fixed bin int static options (constant); 5 10 5 11 dcl station_ctl_ptr ptr int static; 5 12 5 13 dcl 1 station_ctl aligned based (station_ctl_ptr), 5 14 2 hdr like control_hdr, 5 15 2 entries (station_ctl.current_size) like station_ctl_entry; 5 16 5 17 dcl station_ctl_eindex fixed bin; 5 18 5 19 dcl station_ctl_eptr ptr; 5 20 5 21 dcl 1 station_ctl_entry aligned based (station_ctl_eptr), 5 22 2 station_name char (12), 5 23 2 lockword bit (36) aligned, /* owner process_id */ 5 24 2 flags, 5 25 (3 inactive_sw bit (1), /* station is currently not legal to use */ 5 26 3 destination_sw bit (1), /* station attached as a destination */ 5 27 3 input_disabled_sw bit (1), /* if terminal, can't input */ 5 28 3 output_disabled_sw bit (1), /* if terminal, can't get output */ 5 29 3 filler bit (32)) unaligned, 5 30 2 filler fixed bin; 5 31 5 32 /* END INCLUDE FILE... cmcs_station_ctl.incl.pl1 */ 78 6 1 /* BEGIN INCLUDE FILE ... cmcs_system_ctl.incl.pl1 */ 6 2 6 3 /* 6 4* This COBOL MCS include file holds all the COBOL MCS system-wide parameters. 6 5**/ 6 6 6 7 /* Bob May, 5/31/77 */ 6 8 6 9 dcl (system_ctl_hdr_len init (32), 6 10 system_ctl_entry_len init (0), 6 11 system_ctl_version init (1)) fixed bin internal static options (constant); 6 12 6 13 dcl system_ctl_ptr ptr int static; 6 14 6 15 dcl 1 system_ctl aligned based (system_ctl_ptr), 6 16 2 hdr like control_hdr, 6 17 2 flags, 6 18 (3 mp_started_sw bit (1), 6 19 3 filler bit (35)) unaligned, 6 20 2 mp_started_count fixed bin, /* zero for this version */ 6 21 2 mp_active_count fixed bin, /* number that have logged in so far, less the logouts */ 6 22 2 password char (10), /* scrambled password for all cmcs functions */ 6 23 2 lock_wait_time fixed bin, /* number of seconds to wait before giving up */ 6 24 2 filler (25) fixed bin (35); 6 25 6 26 /* END INCLUDE FILE ... cmcs_system_ctl.incl.pl1 */ 79 7 1 /* BEGIN INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 7 2 7 3 /* 7 4* This COBOL MCS include file defines the global, process-dependent variables that are 7 5* not part of the PD copy of cmcs_tree_ctl.control. 7 6**/ 7 7 7 8 /* Modified on 05/06/81 by FCH, [4.4-1], attach command */ 7 9 /* Bob May, 5/31/77 */ 7 10 7 11 dcl user_ctl_exists_sw bit (1) aligned int static init ("0"b); /* indicates legitimacy of external_user_ctl_ptr */ 7 12 7 13 dcl external_user_ctl_ptr ptr external; /* global ptr for user_ctl */ 7 14 7 15 dcl user_ctl_ptr ptr int static; 7 16 7 17 dcl 1 user_ctl aligned based (user_ctl_ptr), 7 18 7 19 /* Flags */ 7 20 7 21 2 init_sw, 7 22 3 terminal_ctl bit(1), 7 23 3 tree_ctl bit(1), 7 24 3 status_list_ctl bit(1), 7 25 3 station_ctl bit(1), 7 26 3 queue_ctl bit(1), 7 27 3 set_lock bit(1), 7 28 3 wait_ctl bit(1), 7 29 3 purge_queues bit(1), 7 30 3 create_queues bit(1), 7 31 3 initiate_ctl bit(1), 7 32 3 mcs bit(1), 7 33 2 flags, 7 34 (3 initialized_sw bit (1), 7 35 3 interactive_sw bit (1), 7 36 3 mp_sw bit (1), /* message processor process */ 7 37 3 terminal_sw bit (1), /* user terminal process */ 7 38 3 admin_sw bit (1), /* cobol_mcs_admin */ 7 39 3 attach_bit bit(1), /*[4.4-1]*/ 7 40 3 rec bit(1), /*[4.4-1]*/ 7 41 3 filler bit (29)) unaligned, 7 42 2 cmcs_dir char (168), 7 43 2 output_file char(168), /*[4.4-1]*/ 7 44 2 station_name char (12), /* current station */ 7 45 2 station_ctl_eindex fixed bin, /* current station */ 7 46 2 process_id bit (36), 7 47 2 process_type fixed bin, /* 0 - not defined, 1 - MP, 2 - terminal, 3 - admin */ 7 48 2 filler fixed bin (35), /* to explicitly align ptrs */ 7 49 2 control_ptrs, 7 50 3 queue_ctl_ptr ptr, 7 51 3 iocb_ptr ptr, /*[4.4-1]*/ 7 52 3 station_ctl_ptr ptr, 7 53 3 system_ctl_ptr ptr, 7 54 3 terminal_ctl_ptr ptr, 7 55 3 tree_ctl_ptr ptr, 7 56 3 wait_ctl_ptr ptr, 7 57 3 filler_ptrs (4) ptr, 7 58 2 terminal_info, 7 59 3 term_id char (4), 7 60 3 term_type fixed bin, 7 61 3 term_channel char (8), 7 62 2 last_receive_info, 7 63 3 tree_path char (48), 7 64 3 tree_ctl_eindex fixed bin, 7 65 3 tree_ctl_eptr ptr, 7 66 2 last_send_info, 7 67 3 dest_name char (12), 7 68 3 tree_ctl_eindex fixed bin, 7 69 3 tree_ctl_eptr ptr, 7 70 2 station_info, 7 71 3 station_count fixed bin, /* must be 1 for phase 1 */ 7 72 3 station_entries (2), 7 73 4 station_name char (12), 7 74 4 station_ctl_eptr ptr, 7 75 4 station_ctl_eindex fixed bin, 7 76 2 wait_info, 7 77 3 wait_ctl_eptr ptr, 7 78 3 wait_ctl_eindex fixed bin, 7 79 3 wait_ctl_mp_eindex fixed bin, /* only for message processors */ 7 80 3 wait_ctl_mp_eptr ptr, 7 81 3 ev_wait_chn fixed bin (71), /* for message processors */ 7 82 3 ev_call_chn fixed bin (71), /* for terminals, to get message responses */ 7 83 3 ev_wait_list_ptr ptr, /* for ipc_$block */ 7 84 3 ev_info_ptr ptr; /* for wakeup */ 7 85 7 86 /* END INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 80 81 /* */ 82 validate: 83 entry (a_station_name, a_station_ctl_eindex, a_code); 84 85 /*[4.4-1]*/ 86 call setup; 87 88 call find_station (a_station_name); 89 90 if a_code ^= 0 91 then a_station_ctl_eindex = 0; 92 else a_station_ctl_eindex = station_ctl_eindex; 93 94 return; 95 96 /* end validate entrypoint */ 97 98 attach: 99 entry (a_station_name, a_station_ctl_eindex, a_code); 100 101 /*[4.4-1]*/ 102 call setup; 103 104 call find_station (a_station_name); 105 106 if a_code ^= 0 107 then return; 108 109 /*[5.2-1]*/ 110 /*save_lwt = system_ctl.lock_wait_time*/ 111 /*[5.2-1]*/ 112 /*system_ctl.lock_wait_time = 0;*/ 113 114 call lock_station; /*[5.2-1]*/ 115 /*system_ctl.lock_wait_time = save_lwt;*/ 116 117 if a_code = 0 118 then a_station_ctl_eindex = station_ctl_eindex; /* went fine, give it to user */ 119 else a_station_ctl_eindex = 0; /* if used, will blow */ 120 121 user_ctl.station_name = a_station_name; 122 123 return; 124 125 /* */ 126 127 detach: 128 entry (a_station_ctl_eindex, a_code); 129 130 /*[4.4-1]*/ 131 call setup; 132 133 station_ctl_eindex = a_station_ctl_eindex; 134 station_ctl_eptr = addr (station_ctl.entries (station_ctl_eindex)); 135 136 call unlock_station; 137 138 if a_code = 0 139 then user_ctl.station_name = ""; 140 141 return; 142 143 /* */ 144 145 detach_name: 146 entry (a_station_name, a_code); 147 148 /*[4.4-1]*/ 149 call setup; 150 151 call find_station (a_station_name); 152 153 if a_code ^= 0 154 then return; 155 156 call unlock_station; 157 158 if a_code = 0 159 then user_ctl.station_name = ""; 160 161 user_ctl.station_name = ""; 162 163 return; 164 165 /* */ 166 167 disable_input_terminal: 168 entry (a_input_cdp, a_password, a_code); 169 170 /*[4.4-1]*/ 171 call setup; 172 173 input_cdp = a_input_cdp; 174 x_station_name = input_cd.station_name; 175 176 call find_station (x_station_name); 177 178 if a_code ^= 0 179 then do; 180 181 input_cd.status_key = "20"; 182 return; 183 184 end; 185 186 if station_ctl_entry.input_disabled_sw 187 then a_code = cmcs_error_table_$source_already_disabled; 188 else do; 189 190 station_ctl_entry.input_disabled_sw = "1"b; 191 a_code = 0; 192 193 end; 194 195 input_cd.status_key = "00"; 196 197 return; 198 199 /* */ 200 201 enable_input_terminal: 202 entry (a_input_cdp, a_password, a_code); 203 204 /*[4.4-1]*/ 205 call setup; 206 207 input_cdp = a_input_cdp; 208 x_station_name = input_cd.station_name; 209 210 call find_station (x_station_name); 211 212 /*[4.4-5]*/ 213 if a_code ^= 0 /*[4.4-5]*/ 214 then do; 215 input_cd.status_key = "20"; /*[4.4-5]*/ 216 return; /*[4.4-5]*/ 217 end; 218 219 if ^station_ctl_entry.input_disabled_sw 220 then a_code = cmcs_error_table_$source_already_enabled; 221 else do; 222 223 station_ctl_entry.input_disabled_sw = "0"b; 224 a_code = 0; 225 226 end; 227 228 input_cd.status_key = "00"; 229 230 return; /* */ 231 disable_output_terminal: 232 entry (a_output_cdp, a_password, a_code); 233 234 /*[4.4-1]*/ 235 call setup; 236 237 output_cdp = a_output_cdp; 238 239 if output_cdp ^= null () 240 then do; /* process the supplied list */ 241 242 output_cd.status_key = "00"; /* init to 00 is changed if any problem */ 243 station_count = output_cd.station_count;/* convert from char data */ 244 245 /*[4.4-2]*/ 246 if station_count = 0 | station_count > output_cd.bin_max_station_count 247 /*[4.4-2]*/ 248 then output_cd.status_key = "30"; /*[4.4-2]*/ 249 else do i = 1 to station_count; 250 251 x_station_name = output_cd.station_name (i); 252 253 call find_station (x_station_name); 254 255 if a_code ^= 0 256 then do; 257 258 output_cd.error_key (i) = "1"; 259 output_cd.status_key = "20"; 260 261 end; 262 else output_cd.error_key (i) = "0"; 263 264 if station_ctl_entry.output_disabled_sw 265 then a_code = cmcs_error_table_$dest_already_disabled; 266 else do; 267 268 station_ctl_entry.output_disabled_sw = "1"b; 269 a_code = 0; 270 271 end; 272 end; 273 end; 274 275 /* null output_cdp, do them all and ignore status key */ 276 277 else do; 278 279 do i = 1 to station_ctl.current_size; 280 281 if ^station_ctl.entries (i).inactive_sw 282 then station_ctl.entries (i).output_disabled_sw = "1"b; 283 /* ignore previous state */ 284 285 end; 286 287 a_code = 0; 288 289 end; 290 291 return; 292 293 /* */ 294 295 enable_output_terminal: 296 entry (a_output_cdp, a_password, a_code); 297 298 /*[4.4-1]*/ 299 call setup; 300 301 output_cdp = a_output_cdp; 302 303 if output_cdp ^= null () 304 then do; /* process the supplied list */ 305 306 output_cd.status_key = "00"; /* init to 00 is changed if any problem */ 307 station_count = output_cd.station_count;/* convert from char data */ 308 309 /*[4.4-2]*/ 310 if station_count = 0 | station_count > output_cd.bin_max_station_count 311 /*[4.4-2]*/ 312 then output_cd.status_key = "30"; /*{4.4-2]*/ 313 else do i = 1 to station_count; 314 315 x_station_name = output_cd.station_name (i); 316 317 call find_station (x_station_name); 318 319 if a_code ^= 0 320 then do; 321 322 output_cd.error_key (i) = "1"; 323 output_cd.status_key = "20"; 324 325 end; 326 else output_cd.error_key (i) = "0"; 327 328 if ^station_ctl_entry.output_disabled_sw 329 then a_code = cmcs_error_table_$dest_already_enabled; 330 else do; 331 332 station_ctl_entry.output_disabled_sw = "0"b; 333 a_code = 0; 334 335 end; 336 end; 337 end; 338 339 /* null output_cdp, do them all and ignore status key */ 340 341 else do; 342 343 do i = 1 to station_ctl.current_size; 344 345 if ^station_ctl.entries (i).inactive_sw 346 then station_ctl.entries (i).output_disabled_sw = "0"b; 347 /* ignore previous state */ 348 349 end; 350 351 a_code = 0; 352 353 end; 354 355 return; 356 357 /* */ 358 359 input_disabled: 360 entry (a_station_ctl_eindex, a_flag, a_code); 361 362 /*[4.4-1]*/ 363 call setup; 364 365 station_ctl_eptr = addr (station_ctl.entries (a_station_ctl_eindex)); 366 a_flag = station_ctl_entry.input_disabled_sw; 367 a_code = 0; 368 369 return; 370 371 /* */ 372 373 output_disabled: 374 entry (a_station_ctl_eindex, a_flag, a_code); 375 376 /*[4.4-1]*/ 377 call setup; 378 379 station_ctl_eptr = addr (station_ctl.entries (a_station_ctl_eindex)); 380 a_flag = station_ctl_entry.output_disabled_sw; 381 a_code = 0; 382 383 return; 384 385 /* */ 386 387 388 setup: 389 proc; 390 391 /*[4.4-1]*/ 392 if ^(external_user_ctl_ptr -> user_ctl.init_sw.station_ctl) 393 /*[4.4-1]*/ 394 then do; 395 396 user_ctl_ptr = external_user_ctl_ptr; /* set local variable from global */ 397 /*[4.4-4]*/ 398 system_ctl_ptr = user_ctl.system_ctl_ptr; 399 station_ctl_ptr = user_ctl.station_ctl_ptr; 400 user_ctl.init_sw.station_ctl = "1"b; 401 402 /*[4.4-1]*/ 403 end; 404 405 a_code = 0; 406 407 return; 408 409 end /* setup */; 410 411 /* */ 412 413 find_station: 414 proc (x_station_name); 415 416 dcl x_station_name char (12); 417 418 a_code = 0; /* init to good for immediate return */ 419 420 do station_ctl_eindex = 1 to station_ctl.current_size; 421 422 if x_station_name = station_ctl.entries (station_ctl_eindex).station_name 423 then do; 424 425 station_ctl_eptr = addr (station_ctl.entries (station_ctl_eindex)); 426 if ^station_ctl_entry.inactive_sw 427 then return; /* right name and active, go to it */ 428 429 end; 430 end; 431 432 a_code = cmcs_error_table_$bad_station; /* didn't make it */ 433 434 return; 435 436 end /* find_station */; 437 438 /* */ 439 440 lock_station: 441 proc; 442 443 dcl LOCAL_LOCK_WAIT_TIME 444 fixed bin internal static options (constant) init (5); 445 446 /*[5.3-1]*/ 447 call cmcs_set_lock_$lock (station_ctl_entry.lockword, LOCAL_LOCK_WAIT_TIME, a_code); 448 449 return; 450 451 end /* lock_station */; 452 453 /* */ 454 455 unlock_station: 456 proc; 457 458 call cmcs_set_lock_$unlock (station_ctl_entry.lockword, a_code); 459 460 return; 461 462 end /* unlock_station */; 463 464 find_destination: 465 entry (a_station_name, a_station_ctl_eindex, a_station_ctl_eptr, a_code); 466 467 /*[4.4-1]*/ 468 call setup; 469 470 /*[4.4-3]*/ 471 call find_station (a_station_name); 472 473 /*[4.4-3]*/ 474 if a_code ^= 0 /*[4.4-3]*/ 475 then a_station_ctl_eindex = 0; /*[4.4-3]*/ 476 else do; 477 a_station_ctl_eindex = station_ctl_eindex; 478 /*[4.4-3]*/ 479 a_station_ctl_eptr = station_ctl_eptr; /*[4.4-3]*/ 480 end; 481 482 /*[4.4-3]*/ 483 return; 484 485 end /* cmcs_station_ctl_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0834.0 cmcs_station_ctl_.pl1 >spec>install>MR12.3-1048>cmcs_station_ctl_.pl1 74 1 03/27/82 0439.5 cmcs_cd_dcls.incl.pl1 >ldd>include>cmcs_cd_dcls.incl.pl1 75 2 03/27/82 0439.5 cmcs_control_hdr.incl.pl1 >ldd>include>cmcs_control_hdr.incl.pl1 76 3 05/24/89 0811.5 cmcs_entry_dcls.incl.pl1 >spec>install>MR12.3-1048>cmcs_entry_dcls.incl.pl1 77 4 03/27/82 0439.5 cmcs_error_table_dcls.incl.pl1 >ldd>include>cmcs_error_table_dcls.incl.pl1 78 5 03/27/82 0439.6 cmcs_station_ctl.incl.pl1 >ldd>include>cmcs_station_ctl.incl.pl1 79 6 03/27/82 0439.6 cmcs_system_ctl.incl.pl1 >ldd>include>cmcs_system_ctl.incl.pl1 80 7 03/27/82 0431.5 cmcs_user_ctl.incl.pl1 >ldd>include>cmcs_user_ctl.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. LOCAL_LOCK_WAIT_TIME 000000 constant fixed bin(17,0) initial dcl 443 set ref 447* a_code parameter fixed bin(35,0) dcl 49 set ref 82 90 98 106 117 127 138 145 153 158 167 178 186* 191* 201 213 219* 224* 231 255 264* 269* 287* 295 319 328* 333* 351* 359 367* 373 381* 405* 418* 432* 447* 458* 464 474 a_flag parameter bit(1) packed unaligned dcl 49 set ref 359 366* 373 380* a_input_cdp parameter pointer dcl 49 ref 167 173 201 207 a_output_cdp parameter pointer dcl 49 ref 231 237 295 301 a_password parameter char(10) packed unaligned dcl 49 ref 167 201 231 295 a_station_ctl_eindex parameter fixed bin(17,0) dcl 49 set ref 82 90* 92* 98 117* 119* 127 133 359 365 373 379 464 474* 477* a_station_ctl_eptr parameter pointer dcl 49 set ref 464 479* a_station_name parameter char(12) packed unaligned dcl 49 set ref 82 88* 98 104* 121 145 151* 464 471* addr builtin function dcl 71 ref 134 365 379 425 bin_max_station_count 3 based fixed bin(17,0) level 2 dcl 1-43 ref 246 310 cmcs_error_table_$bad_station 000022 external static fixed bin(35,0) dcl 4-5 ref 432 cmcs_error_table_$dest_already_disabled 000024 external static fixed bin(35,0) dcl 4-5 ref 264 cmcs_error_table_$dest_already_enabled 000026 external static fixed bin(35,0) dcl 4-5 ref 328 cmcs_error_table_$source_already_disabled 000030 external static fixed bin(35,0) dcl 4-5 ref 186 cmcs_error_table_$source_already_enabled 000032 external static fixed bin(35,0) dcl 4-5 ref 219 cmcs_set_lock_$lock 000016 constant entry external dcl 3-45 ref 447 cmcs_set_lock_$unlock 000020 constant entry external dcl 3-46 ref 458 control_hdr based structure level 1 dcl 2-11 control_ptrs 150 based structure level 2 dcl 7-17 current_size 16 based fixed bin(18,0) level 3 dcl 5-13 ref 279 343 420 dest_table 7(18) based structure array level 2 packed packed unaligned dcl 1-43 entries 40 based structure array level 2 dcl 5-13 set ref 134 365 379 425 error_key 7(18) based char(1) array level 3 packed packed unaligned dcl 1-43 set ref 258* 262* 322* 326* external_user_ctl_ptr 000034 external static pointer dcl 7-13 ref 392 396 flags 44 based structure array level 3 in structure "station_ctl" dcl 5-13 in procedure "cmcs_station_ctl_" flags 4 based structure level 2 in structure "station_ctl_entry" dcl 5-21 in procedure "cmcs_station_ctl_" hdr based structure level 2 dcl 5-13 i 000100 automatic fixed bin(17,0) dcl 43 set ref 249* 251 258 262* 279* 281 281* 313* 315 322 326* 343* 345 345* inactive_sw 44 based bit(1) array level 4 in structure "station_ctl" packed packed unaligned dcl 5-13 in procedure "cmcs_station_ctl_" set ref 281 345 inactive_sw 4 based bit(1) level 3 in structure "station_ctl_entry" packed packed unaligned dcl 5-21 in procedure "cmcs_station_ctl_" ref 426 init_sw based structure level 2 dcl 7-17 input_cd based structure level 1 dcl 1-13 input_cdp 000112 automatic pointer dcl 1-9 set ref 173* 174 181 195 207* 208 215 228 input_disabled_sw 4(02) based bit(1) level 3 packed packed unaligned dcl 5-21 set ref 186 190* 219 223* 366 lockword 3 based bit(36) level 2 dcl 5-21 set ref 447* 458* my_name 000101 automatic char(17) initial packed unaligned dcl 43 set ref 43* null builtin function dcl 71 ref 239 303 output_cd based structure level 1 dcl 1-43 output_cdp 000114 automatic pointer dcl 1-39 set ref 237* 239 242 243 246 246 251 258 259 262 301* 303 306 307 310 310 315 322 323 326 output_disabled_sw 4(03) based bit(1) level 3 in structure "station_ctl_entry" packed packed unaligned dcl 5-21 in procedure "cmcs_station_ctl_" set ref 264 268* 328 332* 380 output_disabled_sw 44(03) based bit(1) array level 4 in structure "station_ctl" packed packed unaligned dcl 5-13 in procedure "cmcs_station_ctl_" set ref 281* 345* station_count 5 based picture(4) level 2 in structure "output_cd" dcl 1-43 in procedure "cmcs_station_ctl_" ref 243 307 station_count 000111 automatic fixed bin(17,0) dcl 61 in procedure "cmcs_station_ctl_" set ref 243* 246 246 249 307* 310 310 313 station_ctl based structure level 1 dcl 5-13 in procedure "cmcs_station_ctl_" station_ctl 3 based bit(1) level 3 in structure "user_ctl" dcl 7-17 in procedure "cmcs_station_ctl_" set ref 392 400* station_ctl_eindex 000116 automatic fixed bin(17,0) dcl 5-17 set ref 92 117 133* 134 420* 422 425* 477 station_ctl_entry based structure level 1 dcl 5-21 station_ctl_eptr 000120 automatic pointer dcl 5-19 set ref 134* 186 190 219 223 264 268 328 332 365* 366 379* 380 425* 426 447 458 479 station_ctl_ptr 000010 internal static pointer dcl 5-11 in procedure "cmcs_station_ctl_" set ref 134 279 281 281 343 345 345 365 379 399* 420 422 425 station_ctl_ptr 154 based pointer level 3 in structure "user_ctl" dcl 7-17 in procedure "cmcs_station_ctl_" ref 399 station_name 7(27) based char(12) array level 3 in structure "output_cd" packed packed unaligned dcl 1-43 in procedure "cmcs_station_ctl_" ref 251 315 station_name 36(18) based char(12) level 2 in structure "input_cd" packed packed unaligned dcl 1-13 in procedure "cmcs_station_ctl_" ref 174 208 station_name 40 based char(12) array level 3 in structure "station_ctl" dcl 5-13 in procedure "cmcs_station_ctl_" set ref 422 station_name 140 based char(12) level 2 in structure "user_ctl" dcl 7-17 in procedure "cmcs_station_ctl_" set ref 121* 138* 158* 161* status_key 7 based char(2) level 2 in structure "output_cd" packed packed unaligned dcl 1-43 in procedure "cmcs_station_ctl_" set ref 242* 246* 259* 306* 310* 323* status_key 42(27) based char(2) level 2 in structure "input_cd" packed packed unaligned dcl 1-13 in procedure "cmcs_station_ctl_" set ref 181* 195* 215* 228* system_ctl_ptr 000012 internal static pointer dcl 6-13 in procedure "cmcs_station_ctl_" set ref 398* system_ctl_ptr 156 based pointer level 3 in structure "user_ctl" dcl 7-17 in procedure "cmcs_station_ctl_" ref 398 user_ctl based structure level 1 dcl 7-17 user_ctl_ptr 000014 internal static pointer dcl 7-15 set ref 121 138 158 161 396* 398 399 400 x_station_name parameter char(12) packed unaligned dcl 416 in procedure "find_station" ref 413 422 x_station_name 000106 automatic char(12) packed unaligned dcl 61 in procedure "cmcs_station_ctl_" set ref 174* 176* 208* 210* 251* 253* 315* 317* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. a_station_output_cdp automatic fixed bin(17,0) dcl 49 cmcs_create_queues_ 000000 constant entry external dcl 3-18 cmcs_date_time_ 000000 constant entry external dcl 3-20 cmcs_decode_status_ 000000 constant entry external dcl 3-22 cmcs_error_table_$ambiguous_tree_path external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_call_parm external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_dest external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_dest_count external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_message_length external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_password external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_queue_path external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_slew external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_source external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_term_devchn external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$bad_tree_path external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$dest_disabled external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$no_message external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$no_partial_messages external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$null_partial_message external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$queue_already_disabled external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$queue_already_enabled external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$queue_disabled external static fixed bin(35,0) dcl 4-5 cmcs_error_table_$source_disabled external static fixed bin(35,0) dcl 4-5 cmcs_expand_tree_path_ 000000 constant entry external dcl 3-24 cmcs_fillin_hdr_ 000000 constant entry external dcl 3-26 cmcs_initiate_ctl_ 000000 constant entry external dcl 3-28 cmcs_print_ 000000 constant entry external dcl 3-30 cmcs_purge_queues_ 000000 constant entry external dcl 3-32 cmcs_queue_ctl_$accept_message_count 000000 constant entry external dcl 3-34 cmcs_queue_ctl_$disable 000000 constant entry external dcl 3-35 cmcs_queue_ctl_$enable 000000 constant entry external dcl 3-36 cmcs_queue_ctl_$print 000000 constant entry external dcl 3-37 cmcs_queue_ctl_$purge 000000 constant entry external dcl 3-38 cmcs_queue_ctl_$receive 000000 constant entry external dcl 3-39 cmcs_queue_ctl_$send 000000 constant entry external dcl 3-40 cmcs_queue_ctl_$stop_run 000000 constant entry external dcl 3-41 cmcs_scramble_ 000000 constant entry external dcl 3-43 cmcs_station_ctl_$attach 000000 constant entry external dcl 3-48 cmcs_station_ctl_$detach 000000 constant entry external dcl 3-49 cmcs_station_ctl_$detach_name 000000 constant entry external dcl 3-50 cmcs_station_ctl_$disable_input_terminal 000000 constant entry external dcl 3-51 cmcs_station_ctl_$disable_output_terminal 000000 constant entry external dcl 3-52 cmcs_station_ctl_$enable_input_terminal 000000 constant entry external dcl 3-53 cmcs_station_ctl_$enable_output_terminal 000000 constant entry external dcl 3-54 cmcs_station_ctl_$find_destination 000000 constant entry external dcl 3-55 cmcs_station_ctl_$input_disabled 000000 constant entry external dcl 3-56 cmcs_station_ctl_$output_disabled 000000 constant entry external dcl 3-57 cmcs_station_ctl_$validate 000000 constant entry external dcl 3-58 cmcs_status_list_ctl_$add 000000 constant entry external dcl 3-60 cmcs_status_list_ctl_$delete 000000 constant entry external dcl 3-61 cmcs_status_list_ctl_$move 000000 constant entry external dcl 3-62 cmcs_terminal_ctl_$find 000000 constant entry external dcl 3-64 cmcs_tree_ctl_$find_destination 000000 constant entry external dcl 3-66 cmcs_tree_ctl_$find_index 000000 constant entry external dcl 3-67 cmcs_tree_ctl_$find_qual_name 000000 constant entry external dcl 3-69 cmcs_tree_ctl_$find_tree_path 000000 constant entry external dcl 3-68 cmcs_wait_ctl_$add 000000 constant entry external dcl 3-71 cmcs_wait_ctl_$clear_mp 000000 constant entry external dcl 3-77 cmcs_wait_ctl_$delete 000000 constant entry external dcl 3-72 cmcs_wait_ctl_$find 000000 constant entry external dcl 3-73 cmcs_wait_ctl_$mp_available 000000 constant entry external dcl 3-74 cmcs_wait_ctl_$mp_login 000000 constant entry external dcl 3-75 cmcs_wait_ctl_$mp_logout 000000 constant entry external dcl 3-76 cmcs_wait_ctl_$start_mp 000000 constant entry external dcl 3-78 cmcs_wait_ctl_$stop_mp 000000 constant entry external dcl 3-79 com_err_ 000000 constant entry external dcl 47 control_hdr_len internal static fixed bin(17,0) initial dcl 2-7 control_hdr_ptr automatic pointer dcl 2-9 error_table_$invalid_lock_reset external static fixed bin(35,0) dcl 65 last_station_info based structure level 1 dcl 1-66 save_lwt automatic fixed bin(17,0) dcl 59 set_lock_$lock 000000 constant entry external dcl 68 set_lock_$unlock 000000 constant entry external dcl 68 station_ctl_entry_len internal static fixed bin(17,0) initial dcl 5-7 station_ctl_hdr_len internal static fixed bin(17,0) initial dcl 5-7 station_ctl_version internal static fixed bin(17,0) initial dcl 5-7 system_ctl based structure level 1 dcl 6-15 system_ctl_entry_len internal static fixed bin(17,0) initial dcl 6-9 system_ctl_hdr_len internal static fixed bin(17,0) initial dcl 6-9 system_ctl_version internal static fixed bin(17,0) initial dcl 6-9 user_ctl_exists_sw internal static bit(1) initial dcl 7-11 NAMES DECLARED BY EXPLICIT CONTEXT. attach 000075 constant entry external dcl 98 cmcs_station_ctl_ 000026 constant entry external dcl 29 detach 000145 constant entry external dcl 127 detach_name 000205 constant entry external dcl 145 disable_input_terminal 000252 constant entry external dcl 167 disable_output_terminal 000402 constant entry external dcl 231 enable_input_terminal 000326 constant entry external dcl 201 enable_output_terminal 000554 constant entry external dcl 295 find_destination 001021 constant entry external dcl 464 find_station 001100 constant entry internal dcl 413 ref 88 104 151 176 210 253 317 471 input_disabled 000730 constant entry external dcl 359 lock_station 001145 constant entry internal dcl 440 ref 114 output_disabled 000763 constant entry external dcl 373 setup 001056 constant entry internal dcl 388 ref 86 102 131 149 171 205 235 299 363 377 468 unlock_station 001163 constant entry internal dcl 455 ref 136 156 validate 000041 constant entry external dcl 82 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1474 1532 1215 1504 Length 2116 1215 36 350 256 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cmcs_station_ctl_ 142 external procedure is an external procedure. setup internal procedure shares stack frame of external procedure cmcs_station_ctl_. find_station internal procedure shares stack frame of external procedure cmcs_station_ctl_. lock_station internal procedure shares stack frame of external procedure cmcs_station_ctl_. unlock_station internal procedure shares stack frame of external procedure cmcs_station_ctl_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 station_ctl_ptr cmcs_station_ctl_ 000012 system_ctl_ptr cmcs_station_ctl_ 000014 user_ctl_ptr cmcs_station_ctl_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cmcs_station_ctl_ 000100 i cmcs_station_ctl_ 000101 my_name cmcs_station_ctl_ 000106 x_station_name cmcs_station_ctl_ 000111 station_count cmcs_station_ctl_ 000112 input_cdp cmcs_station_ctl_ 000114 output_cdp cmcs_station_ctl_ 000116 station_ctl_eindex cmcs_station_ctl_ 000120 station_ctl_eptr cmcs_station_ctl_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry unpack_picture THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cmcs_set_lock_$lock cmcs_set_lock_$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cmcs_error_table_$bad_station cmcs_error_table_$dest_already_disabled cmcs_error_table_$dest_already_enabled cmcs_error_table_$source_already_disabled cmcs_error_table_$source_already_enabled external_user_ctl_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 43 000020 29 000025 41 000034 82 000035 86 000054 88 000055 90 000064 92 000070 94 000072 98 000073 102 000110 104 000111 106 000120 114 000122 117 000123 119 000130 121 000131 123 000140 127 000141 131 000160 133 000161 134 000163 136 000170 138 000171 141 000200 145 000201 149 000216 151 000217 153 000226 156 000230 158 000231 161 000240 163 000245 167 000246 171 000263 173 000264 174 000270 176 000273 178 000275 181 000277 182 000303 186 000304 190 000314 191 000316 195 000317 197 000323 201 000324 205 000337 207 000340 208 000344 210 000347 213 000351 215 000353 216 000357 219 000360 223 000370 224 000372 228 000373 230 000377 231 000400 235 000413 237 000414 239 000420 242 000424 243 000426 246 000435 249 000446 251 000455 253 000462 255 000464 258 000466 259 000474 261 000476 262 000477 264 000505 268 000515 269 000517 272 000520 273 000522 279 000523 281 000535 285 000546 287 000550 291 000551 295 000552 299 000565 301 000566 303 000572 306 000576 307 000600 310 000607 313 000620 315 000627 317 000634 319 000636 322 000640 323 000646 325 000650 326 000651 328 000657 332 000667 333 000671 336 000672 337 000674 343 000675 345 000707 349 000720 351 000722 355 000723 359 000724 363 000743 365 000744 366 000752 367 000757 369 000760 373 000761 377 000776 379 000777 380 001005 381 001012 383 001013 464 001014 468 001034 471 001035 474 001044 477 001050 479 001052 483 001055 388 001056 392 001057 396 001064 398 001065 399 001070 400 001073 405 001076 407 001077 413 001100 418 001102 420 001103 422 001115 425 001130 426 001133 430 001137 432 001141 434 001144 440 001145 447 001146 449 001162 455 001163 458 001164 460 001176 ----------------------------------------------------------- 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