COMPILATION LISTING OF SEGMENT dial_out_ Compiled by: Multics PL/I Compiler, Release 33d, of April 24, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 92-04-24_1439.48_Fri_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1991 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 10 dial_out_: 11 procedure (Dial_out_info_ptr, Code); 12 13 /* dial_out: make a dial_out connection for a user. */ 14 /* Written by C. Hornig, March 1980. */ 15 /* Modified for installation, April 1982, by C. Hornig */ 16 /* Modified January 1983 by C. Hornig to fix many bugs */ 17 /* Modified March 1983 by K. Loepere to fix more bugs and enhance */ 18 19 20 /****^ HISTORY COMMENTS: 21* 1) change(91-07-15,Oke), approve(91-09-09,MCR8247), 22* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 23* Changed to zero doi local do_info structure in initialization. 24* 2) change(91-08-19,JRGray), approve(91-09-09,MCR8247), 25* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 26* Set profile_ptr to null preventing 'dial_out' from cleaning it up 27* after ssu_ becomes responsible for it. (Communications 457) 28* END HISTORY COMMENTS */ 29 30 31 dcl Code fixed bin (35) parameter; 32 dcl Dial_out_info_ptr ptr parameter; 33 34 dcl do_request_table_$do_request_table_ external; 35 dcl ssu_request_tables_$standard_requests external; 36 dcl sys_info$max_seg_size fixed bin (35) ext static; 37 38 dcl error_table_$unimplemented_version fixed bin (35) ext static; 39 dcl video_data_$terminal_iocb ptr external static; 40 41 dcl continue_to_signal_ entry (fixed bin (35)); 42 dcl cu_$arg_list_ptr entry returns (ptr); 43 dcl cu_$caller_ptr entry () returns (ptr); 44 dcl cu_$cl entry (bit (36) aligned); 45 dcl cu_$get_cl_intermediary entry (entry); 46 dcl cu_$set_cl_intermediary entry (entry); 47 dcl dial_out_modes_$set entry (ptr, char (*), fixed bin (35)); 48 dcl dial_out_util_$call_out entry (ptr, entry, ptr); 49 dcl dial_out_util_$interaction_loop entry (ptr, bit (1) aligned, bit (1) aligned); 50 dcl dial_out_util_$process_line_status entry (ptr); 51 dcl dial_out_util_$reset_do_modes entry (ptr); 52 dcl dial_out_util_$revert_fo entry (ptr); 53 dcl dial_out_util_$set_do_modes entry (ptr); 54 dcl get_process_id_ entry () returns (bit (36) aligned); 55 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 56 dcl ioa_ entry () options (variable); 57 dcl ssu_$add_request_table entry (ptr, ptr, fixed bin, fixed bin (35)); 58 dcl ssu_$create_invocation entry (char (*), char (*), ptr, ptr, char (*), ptr, fixed bin (35)); 59 dcl ssu_$destroy_invocation entry (ptr); 60 dcl ssu_$execute_line entry (ptr, ptr, fixed bin (21), fixed bin (35)); 61 dcl ssu_$execute_start_up entry () options (variable); 62 dcl ssu_$get_temp_segment entry (ptr, char (*), ptr); 63 dcl ssu_$print_blast entry (ptr, ptr, fixed bin, char (*), fixed bin (35)); 64 dcl ssu_$set_abbrev_info entry (ptr, ptr, ptr, bit (1) aligned); 65 dcl ssu_$set_ec_search_list entry (ptr, char (32)); 66 dcl ssu_$set_ec_suffix entry (ptr, char (32)); 67 68 dcl based_atd varying char (256) based; 69 dcl based_modes char (doi.modes_len) based (doi.modes_ptr); 70 71 dcl code fixed bin (35); 72 dcl 1 hangup_proc_data aligned, 73 2 entry_var variable entry (ptr), 74 2 data_ptr ptr, 75 2 prior fixed bin; 76 dcl 1 doi aligned like do_info; 77 dcl in_video bit (1) aligned; 78 dcl net_input_buff char (2048); 79 dcl str_to_match char (1024); 80 81 dcl (cleanup, quit) condition; 82 83 dcl (addr, length, null, string, unspec) builtin; 84 85 /* find out initial modes, options, etc. */ 86 Code = 0; 87 if (Dial_out_info_ptr -> dial_out_info.version ^= "doinfo_0") 88 & (Dial_out_info_ptr -> dial_out_info.version ^= "doinfo_1") 89 & (Dial_out_info_ptr -> dial_out_info.version ^= DIAL_OUT_INFO_VERSION_2) then do; 90 Code = error_table_$unimplemented_version; 91 return; 92 end; 93 94 dop = addr (doi); 95 unspec (doi) = ""b; 96 doi.ci = Dial_out_info_ptr -> dial_out_info; 97 98 if doi.ci.version = "doinfo_0" then doi.ci.cmd_version = ""; 99 if (doi.ci.version = "doinfo_0") | (doi.ci.version = "doinfo_1") then do; 100 doi.ci.modes_ptr = null (); 101 doi.ci.modes_len = 0; 102 end; 103 104 doi.version = doi.ci.cmd_version || "/2a"; 105 doi.abort_label = return_to_caller; 106 doi.abort_code = 0; 107 doi.sci_ptr = null (); 108 doi.fo_iocbp = null (); 109 doi.temp_seg_p = null (); 110 doi.match_length = 0; 111 string (doi.flags) = ""b; 112 doi.flags.echo_mode = "1"b; 113 114 in_video = video_data_$terminal_iocb ^= null (); 115 if doi.ci.modes_ptr ^= null () then do; 116 call dial_out_modes_$set (dop, based_modes, doi.abort_code); 117 if doi.abort_code ^= 0 then goto doi.abort_label; 118 end; 119 120 doi.old_modes = ""; 121 call iox_$modes (iox_$user_input, "", doi.old_modes, code); 122 123 doi.cmd_ptr = null (); 124 call cu_$get_cl_intermediary (doi.saved_cl_intermediary); 125 126 on cleanup call cleaner; 127 128 call ssu_$create_invocation (doi.ci.command_name, (doi.version), addr (doi), doi.ci.request_table_ptr, 129 ">doc>subsystem>dial_out", doi.sci_ptr, doi.abort_code); 130 if doi.abort_code ^= 0 then goto return_to_caller; 131 call ssu_$add_request_table (doi.sci_ptr, addr (do_request_table_$do_request_table_), 2, doi.abort_code); 132 if doi.abort_code ^= 0 then goto return_to_caller; 133 call ssu_$add_request_table (doi.sci_ptr, addr (ssu_request_tables_$standard_requests), 3, doi.abort_code); 134 if doi.abort_code ^= 0 then goto return_to_caller; 135 136 call ssu_$print_blast (doi.sci_ptr, cu_$caller_ptr (), 1, "", code); 137 call ssu_$set_abbrev_info (doi.sci_ptr, doi.ci.profile_ptr, null (), (doi.ci.flags.abbrev_sw)); 138 Dial_out_info_ptr -> dial_out_info.profile_ptr = null(); /* COM 457: it's now completely ssu_'s responsibility */ 139 call ssu_$set_ec_search_list (doi.sci_ptr, "dial_out"); 140 call ssu_$set_ec_suffix (doi.sci_ptr, "dial_out"); 141 142 call ssu_$get_temp_segment (doi.sci_ptr, "work_area", doi.temp_seg_p); 143 doi.cmd_buff_len = sys_info$max_seg_size * 4; 144 call ssu_$get_temp_segment (doi.sci_ptr, "command_area", doi.cmd_ptr); 145 146 doi.match_string_p = addr (str_to_match); 147 doi.match_length = 0; 148 doi.match_max_length = length (str_to_match); 149 doi.net_input_buff_ptr = addr (net_input_buff); 150 doi.net_input_buff_len = length (net_input_buff); 151 doi.net_input_last_char_filled = 0; 152 doi.net_input_last_char_output = 0; 153 154 on quit 155 begin; 156 if doi.ci.flags.quit_sw then do; 157 call iox_$control (doi.ci.net_iocb, "interrupt", null (), doi.abort_code); 158 if doi.abort_code ^= 0 then goto return_to_caller; 159 end; 160 else call continue_to_signal_ (doi.abort_code); 161 end; 162 163 doi.my_cl_intermediary = do_cl_intermediary; 164 call cu_$set_cl_intermediary (doi.my_cl_intermediary); 165 166 hangup_proc_data.entry_var = process_hangup; 167 hangup_proc_data.data_ptr = addr (doi); 168 hangup_proc_data.prior = 1; 169 call iox_$control (doi.ci.net_iocb, "hangup_proc", addr (hangup_proc_data), code); 170 171 if ^doi.ci.flags.brief_sw 172 then call ioa_ ("Ready on ^a...", doi.ci.net_iocb -> iocb.attach_descrip_ptr -> based_atd); 173 174 call dial_out_util_$process_line_status (dop); 175 call dial_out_util_$reset_do_modes (dop); /* undo mode set above for running start_up, request */ 176 177 if ^doi.ci.flags.no_startup_sw then call ssu_$execute_start_up (doi.sci_ptr, code); 178 179 if doi.ci.request_ptr ^= null () 180 then call ssu_$execute_line (doi.sci_ptr, doi.ci.request_ptr, doi.ci.request_length, code); 181 182 call dial_out_util_$set_do_modes (dop); 183 184 /* The main work lies in util_. This is so the interaction loop may , be 185* reentered (recursively) from the wait request. */ 186 call dial_out_util_$interaction_loop (dop, "0"b, "0"b); 187 188 return_to_caller: 189 call cleaner; 190 Code = doi.abort_code; 191 192 return; 193 194 /* * * * * * * * * * CLEANER * * * * * * * * * */ 195 196 cleaner: 197 procedure; 198 199 call cu_$set_cl_intermediary (doi.saved_cl_intermediary); 200 call dial_out_util_$reset_do_modes (dop); 201 if doi.raw_sw 202 then if ^in_video then call iox_$control (iox_$user_input, "send_initial_string", null (), code); 203 /* we need to reset tabs, etc. that foreign screwed up - would be nice if 204* this wasn't necessary */ 205 call dial_out_util_$revert_fo (addr (doi)); 206 if doi.sci_ptr ^= null () then do; 207 call ssu_$destroy_invocation (doi.sci_ptr); 208 end; 209 doi.cmd_ptr = null (); 210 return; 211 212 end cleaner; 213 214 /* * * * * * * * * * DO_CL_INTERMEDIARY * * * * * * * * * * */ 215 216 do_cl_intermediary: 217 procedure (Flags) options (non_quick); 218 dcl Flags bit (36) aligned parameter; 219 220 call dial_out_util_$call_out (dop, cu_$cl, cu_$arg_list_ptr ()); 221 /* This gets the modes right */ 222 return; 223 end do_cl_intermediary; 224 225 /* * * * * * * * * * PROCESS_HANGUP * * * * * * * * * * */ 226 227 process_hangup: 228 procedure (Data_ptr); 229 230 dcl code fixed bin (35); 231 dcl Data_ptr ptr parameter; 232 233 call hcs_$wakeup (get_process_id_ (), Data_ptr -> event_call_info.data_ptr -> do_info.net_rs.ev_chn, 0, code); 234 return; 235 1 1 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 1 2 1 3 /* T. Casey, May 1978 */ 1 4 1 5 dcl event_call_info_ptr ptr; 1 6 1 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 1 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 1 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 1 10 2 sender bit (36), /* process id of sender */ 1 11 2 origin, 1 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 1 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 1 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 1 15 1 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 236 237 238 end process_hangup; 239 240 2 1 /* Begin include file dial_out_invocation.incl.pl1 */ 2 2 2 3 /* Written by C. Hornig, April 1982 */ 2 4 2 5 dcl dop ptr; 2 6 dcl 1 do_info aligned based (dop), 2 7 2 ci like dial_out_info, /* user supplied */ 2 8 2 version varying char (16), 2 9 2 sci_ptr ptr, /* ssu_ info found here */ 2 10 2 abort_label label, /* place to die to */ 2 11 2 fo_iocbp ptr, /* non-null => file output in progress */ 2 12 2 temp_seg_p ptr, 2 13 2 match_string_p ptr, /* pts to string to match on wait */ 2 14 2 match_length fixed bin (21), /* length of string we are waiting to find */ 2 15 2 match_max_length fixed bin (21), /* len area for match string */ 2 16 2 net_rs, /* read_status result about net */ 2 17 3 ev_chn fixed bin (71), 2 18 3 data_available bit (1), 2 19 2 abort_code fixed bin (35), /* general horrible error */ 2 20 2 flags, 2 21 3 raw_mode bit (1) unaligned, 2 22 3 echo_mode bit (1) unaligned, 2 23 3 lfecho_mode bit (1) unaligned, 2 24 3 pad1 bit (33) unaligned, 2 25 2 old_modes char (512) unaligned, /* modes before we screwed them up */ 2 26 2 saved_cl_intermediary entry variable, 2 27 2 my_cl_intermediary entry variable, 2 28 2 cmd_ptr ptr, /* to area to hold outgoing chars or request line being built */ 2 29 2 cmd_buff_len fixed bin (21), 2 30 2 time_out fixed bin, /* max time to wait for net line */ 2 31 2 net_input_buff_ptr ptr, /* area we accumulate net input so we can do match scan */ 2 32 2 net_input_buff_len fixed bin (21), 2 33 2 net_input_last_char_filled fixed bin (21), /* last pos in net_input_buff of chars read */ 2 34 2 net_input_last_char_output fixed bin (21), /* last pos in buffer output or used by wait scan */ 2 35 2 active_result_max_len fixed bin (21), 2 36 2 active_result_ptr ptr; 2 37 3 1 /* Begin include file dial_out_info.incl.pl1 */ 3 2 3 3 /* Written by C. Hornig, April 1982 */ 3 4 3 5 dcl DIAL_OUT_INFO_VERSION_2 3 6 char (8) static options (constant) init ("doinfo_2"); 3 7 dcl dial_out_info_ptr ptr; 3 8 dcl 1 dial_out_info aligned based (dial_out_info_ptr), 3 9 2 version char (8), /* version of this structure */ 3 10 2 command_name char (32) unaligned, /* name of command invoking subsystem */ 3 11 2 net_iocb pointer, /* switch to which data is sent */ 3 12 2 request_table_ptr 3 13 pointer, /* points to ssu_ request table */ 3 14 2 profile_ptr pointer, /* points to abbrev profile */ 3 15 2 request_ptr pointer, /* points to initial request */ 3 16 2 request_length fixed bin (21), /* length of initial request */ 3 17 2 esc_char character (1), /* command prefix character */ 3 18 2 flags, 3 19 3 raw_sw bit (1) unaligned, /* do not do Multics terminal management */ 3 20 3 echo_sw bit (1) unaligned, /* echo characters typed by user */ 3 21 3 abbrev_sw bit (1) unaligned, /* do abbrev processing in request lines */ 3 22 3 lfecho_sw bit (1) unaligned, /* treat CR's as LF's */ 3 23 3 send_lf_sw bit (1) unaligned, /* send LF on CR */ 3 24 3 quit_sw bit (1) unaligned, /* send interrupt on quit */ 3 25 3 brief_sw bit (1) unaligned, /* don't print unneeded messages */ 3 26 3 no_startup_sw bit (1) unaligned, /* don't run start_up. */ 3 27 3 no_breakall_sw 3 28 bit (1) unaligned, /* transmit on every vs. transmit on NL */ 3 29 3 pad bit (27) unaligned, /* END OF VERSION 0 STRUCTURE */ 3 30 2 cmd_version varying char (8), /* version of command calling dial_out */ 3 31 /* END OF VERSION 1 STRUCTURE */ 3 32 2 modes_ptr ptr, /* ptr to initial modes */ 3 33 2 modes_len fixed bin (21); /* length of same */ 3 34 /* END OF VERSION 2 STRUCTURE */ 3 35 3 36 /* End include file dial_out_info.incl.pl1 */ 2 38 2 39 2 40 /* End include file dial_out_invocation.incl.pl1 */ 241 4 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 4 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 4 3* version number to IOX2. */ 4 4 /* format: style2 */ 4 5 4 6 dcl 1 iocb aligned based, /* I/O control block. */ 4 7 2 version character (4) aligned, /* IOX2 */ 4 8 2 name char (32), /* I/O name of this block. */ 4 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 4 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 4 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 4 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 4 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 4 14 2 reserved bit (72), /* Reserved for future use. */ 4 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 4 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 4 17 /* open(p,mode,not_used,s) */ 4 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 4 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 4 20 /* get_line(p,bufptr,buflen,actlen,s) */ 4 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 4 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 4 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 4 24 /* put_chars(p,bufptr,buflen,s) */ 4 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 4 26 /* modes(p,newmode,oldmode,s) */ 4 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 4 28 /* position(p,u1,u2,s) */ 4 29 2 control entry (ptr, char (*), ptr, fixed (35)), 4 30 /* control(p,order,infptr,s) */ 4 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 4 32 /* read_record(p,bufptr,buflen,actlen,s) */ 4 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 4 34 /* write_record(p,bufptr,buflen,s) */ 4 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 4 36 /* rewrite_record(p,bufptr,buflen,s) */ 4 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 4 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 4 39 /* seek_key(p,key,len,s) */ 4 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 4 41 /* read_key(p,key,len,s) */ 4 42 2 read_length entry (ptr, fixed (21), fixed (35)), 4 43 /* read_length(p,len,s) */ 4 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 4 45 /* open_file(p,mode,desc,not_used,s) */ 4 46 2 close_file entry (ptr, char (*), fixed bin (35)), 4 47 /* close_file(p,desc,s) */ 4 48 2 detach entry (ptr, char (*), fixed bin (35)); 4 49 /* detach(p,desc,s) */ 4 50 4 51 declare iox_$iocb_version_sentinel 4 52 character (4) aligned external static; 4 53 4 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 242 5 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 5 2 5 3 /* Written 05/04/78 by C. D. Tavares */ 5 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 5 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 5 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 5 7 5 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 5 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 5 10 iox_$close entry (pointer, fixed bin (35)), 5 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 5 12 iox_$delete_record entry (pointer, fixed bin (35)), 5 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 5 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 5 15 iox_$err_not_attached entry options (variable), 5 16 iox_$err_not_closed entry options (variable), 5 17 iox_$err_no_operation entry options (variable), 5 18 iox_$err_not_open entry options (variable), 5 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 5 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 5 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 5 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 5 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 5 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 5 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 5 28 iox_$propagate entry (pointer), 5 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 5 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 5 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 5 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 5 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 5 40 5 41 dcl (iox_$user_output, 5 42 iox_$user_input, 5 43 iox_$user_io, 5 44 iox_$error_output) external static pointer; 5 45 5 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 243 244 245 end dial_out_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/24/92 1439.4 dial_out_.pl1 >spec>install>1012>dial_out_.pl1 236 1 06/29/79 1828.0 event_call_info.incl.pl1 >ldd>incl>event_call_info.incl.pl1 241 2 07/18/83 1102.2 dial_out_invocation.incl.pl1 >ldd>incl>dial_out_invocation.incl.pl1 2-38 3 07/18/83 1102.2 dial_out_info.incl.pl1 >ldd>incl>dial_out_info.incl.pl1 242 4 05/20/83 1946.4 iocb.incl.pl1 >ldd>incl>iocb.incl.pl1 243 5 05/23/83 1016.6 iox_dcls.incl.pl1 >ldd>incl>iox_dcls.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. Code parameter fixed bin(35,0) dcl 31 set ref 10 86* 90* 190* DIAL_OUT_INFO_VERSION_2 000000 constant char(8) initial packed unaligned dcl 3-5 ref 87 Data_ptr parameter pointer dcl 231 ref 227 233 Dial_out_info_ptr parameter pointer dcl 32 ref 10 87 87 87 96 138 Flags parameter bit(36) dcl 218 ref 216 abbrev_sw 24(02) 000112 automatic bit(1) level 4 packed packed unaligned dcl 76 set ref 137 abort_code 61 000112 automatic fixed bin(35,0) level 2 dcl 76 set ref 106* 116* 117 128* 130 131* 132 133* 134 157* 158 160* 190 abort_label 42 000112 automatic label variable level 2 dcl 76 set ref 105* 117 addr builtin function dcl 83 ref 94 128 128 131 131 133 133 146 149 167 169 169 205 205 attach_descrip_ptr 14 based pointer level 2 dcl 4-6 ref 171 based_atd based varying char(256) dcl 68 set ref 171* based_modes based char packed unaligned dcl 69 set ref 116* brief_sw 24(06) 000112 automatic bit(1) level 4 packed packed unaligned dcl 76 set ref 171 ci 000112 automatic structure level 2 dcl 76 set ref 96* cleanup 002024 stack reference condition dcl 81 ref 126 cmd_buff_len 276 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 143* cmd_ptr 274 000112 automatic pointer level 2 dcl 76 set ref 123* 144* 209* cmd_version 25 000112 automatic varying char(8) level 3 dcl 76 set ref 98* 104 code 000100 automatic fixed bin(35,0) dcl 71 in procedure "dial_out_" set ref 121* 136* 169* 177* 179* 201* code 000100 automatic fixed bin(35,0) dcl 230 in procedure "process_hangup" set ref 233* command_name 2 000112 automatic char(32) level 3 packed packed unaligned dcl 76 set ref 128* continue_to_signal_ 000022 constant entry external dcl 41 ref 160 cu_$arg_list_ptr 000024 constant entry external dcl 42 ref 220 220 cu_$caller_ptr 000026 constant entry external dcl 43 ref 136 136 cu_$cl 000030 constant entry external dcl 44 ref 220 220 cu_$get_cl_intermediary 000032 constant entry external dcl 45 ref 124 cu_$set_cl_intermediary 000034 constant entry external dcl 46 ref 164 199 data_ptr 4 000102 automatic pointer level 2 in structure "hangup_proc_data" dcl 72 in procedure "dial_out_" set ref 167* data_ptr 6 based pointer level 2 in structure "event_call_info" dcl 1-7 in procedure "process_hangup" ref 233 dial_out_info based structure level 1 dcl 3-8 set ref 96 dial_out_modes_$set 000036 constant entry external dcl 47 ref 116 dial_out_util_$call_out 000040 constant entry external dcl 48 ref 220 dial_out_util_$interaction_loop 000042 constant entry external dcl 49 ref 186 dial_out_util_$process_line_status 000044 constant entry external dcl 50 ref 174 dial_out_util_$reset_do_modes 000046 constant entry external dcl 51 ref 175 200 dial_out_util_$revert_fo 000050 constant entry external dcl 52 ref 205 dial_out_util_$set_do_modes 000052 constant entry external dcl 53 ref 182 do_info based structure level 1 dcl 2-6 do_request_table_$do_request_table_ 000010 external static fixed bin(17,0) dcl 34 set ref 131 131 doi 000112 automatic structure level 1 dcl 76 set ref 94 95* 128 128 167 205 205 dop 002040 automatic pointer dcl 2-5 set ref 94* 116* 174* 175* 182* 186* 200* 220* echo_mode 62(01) 000112 automatic bit(1) level 3 packed packed unaligned dcl 76 set ref 112* entry_var 000102 automatic entry variable level 2 dcl 72 set ref 166* error_table_$unimplemented_version 000016 external static fixed bin(35,0) dcl 38 ref 90 ev_chn 56 based fixed bin(71,0) level 3 dcl 2-6 set ref 233* event_call_info based structure level 1 dcl 1-7 flags 62 000112 automatic structure level 2 in structure "doi" dcl 76 in procedure "dial_out_" set ref 111* flags 24 000112 automatic structure level 3 in structure "doi" dcl 76 in procedure "dial_out_" fo_iocbp 46 000112 automatic pointer level 2 dcl 76 set ref 108* get_process_id_ 000054 constant entry external dcl 54 ref 233 233 hangup_proc_data 000102 automatic structure level 1 dcl 72 set ref 169 169 hcs_$wakeup 000056 constant entry external dcl 55 ref 233 in_video 000422 automatic bit(1) dcl 77 set ref 114* 201 ioa_ 000060 constant entry external dcl 56 ref 171 iocb based structure level 1 dcl 4-6 iox_$control 000106 constant entry external dcl 5-8 ref 157 169 201 iox_$modes 000110 constant entry external dcl 5-8 ref 121 iox_$user_input 000112 external static pointer dcl 5-41 set ref 121* 201* length builtin function dcl 83 ref 148 150 match_length 54 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 110* 147* match_max_length 55 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 148* match_string_p 52 000112 automatic pointer level 2 dcl 76 set ref 146* modes_len 32 000112 automatic fixed bin(21,0) level 3 dcl 76 set ref 101* 116 116 modes_ptr 30 000112 automatic pointer level 3 dcl 76 set ref 100* 115 116 my_cl_intermediary 270 000112 automatic entry variable level 2 dcl 76 set ref 163* 164* net_input_buff 000423 automatic char(2048) packed unaligned dcl 78 set ref 149 150 net_input_buff_len 302 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 150* net_input_buff_ptr 300 000112 automatic pointer level 2 dcl 76 set ref 149* net_input_last_char_filled 303 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 151* net_input_last_char_output 304 000112 automatic fixed bin(21,0) level 2 dcl 76 set ref 152* net_iocb 12 000112 automatic pointer level 3 dcl 76 set ref 157* 169* 171 net_rs 56 based structure level 2 dcl 2-6 no_startup_sw 24(07) 000112 automatic bit(1) level 4 packed packed unaligned dcl 76 set ref 177 null builtin function dcl 83 ref 100 107 108 109 114 115 123 137 137 138 157 157 179 201 201 206 209 old_modes 63 000112 automatic char(512) level 2 packed packed unaligned dcl 76 set ref 120* 121* prior 6 000102 automatic fixed bin(17,0) level 2 dcl 72 set ref 168* profile_ptr 16 000112 automatic pointer level 3 in structure "doi" dcl 76 in procedure "dial_out_" set ref 137* profile_ptr 16 based pointer level 2 in structure "dial_out_info" dcl 3-8 in procedure "dial_out_" set ref 138* quit 002032 stack reference condition dcl 81 ref 154 quit_sw 24(05) 000112 automatic bit(1) level 4 packed packed unaligned dcl 76 set ref 156 raw_sw 24 000112 automatic bit(1) level 4 packed packed unaligned dcl 76 set ref 201 request_length 22 000112 automatic fixed bin(21,0) level 3 dcl 76 set ref 179* request_ptr 20 000112 automatic pointer level 3 dcl 76 set ref 179 179* request_table_ptr 14 000112 automatic pointer level 3 dcl 76 set ref 128* saved_cl_intermediary 264 000112 automatic entry variable level 2 dcl 76 set ref 124* 199* sci_ptr 40 000112 automatic pointer level 2 dcl 76 set ref 107* 128* 131* 133* 136* 137* 139* 140* 142* 144* 177* 179* 206 207* ssu_$add_request_table 000062 constant entry external dcl 57 ref 131 133 ssu_$create_invocation 000064 constant entry external dcl 58 ref 128 ssu_$destroy_invocation 000066 constant entry external dcl 59 ref 207 ssu_$execute_line 000070 constant entry external dcl 60 ref 179 ssu_$execute_start_up 000072 constant entry external dcl 61 ref 177 ssu_$get_temp_segment 000074 constant entry external dcl 62 ref 142 144 ssu_$print_blast 000076 constant entry external dcl 63 ref 136 ssu_$set_abbrev_info 000100 constant entry external dcl 64 ref 137 ssu_$set_ec_search_list 000102 constant entry external dcl 65 ref 139 ssu_$set_ec_suffix 000104 constant entry external dcl 66 ref 140 ssu_request_tables_$standard_requests 000012 external static fixed bin(17,0) dcl 35 set ref 133 133 str_to_match 001423 automatic char(1024) packed unaligned dcl 79 set ref 146 148 string builtin function dcl 83 set ref 111* sys_info$max_seg_size 000014 external static fixed bin(35,0) dcl 36 ref 143 temp_seg_p 50 000112 automatic pointer level 2 dcl 76 set ref 109* 142* unspec builtin function dcl 83 set ref 95* version based char(8) level 2 in structure "dial_out_info" dcl 3-8 in procedure "dial_out_" ref 87 87 87 version 000112 automatic char(8) level 3 in structure "doi" dcl 76 in procedure "dial_out_" set ref 98 99 99 version 33 000112 automatic varying char(16) level 2 in structure "doi" dcl 76 in procedure "dial_out_" set ref 104* 128 video_data_$terminal_iocb 000020 external static pointer dcl 39 ref 114 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. dial_out_info_ptr automatic pointer dcl 3-7 event_call_info_ptr automatic pointer dcl 1-5 iox_$attach_loud 000000 constant entry external dcl 5-8 iox_$attach_name 000000 constant entry external dcl 5-8 iox_$attach_ptr 000000 constant entry external dcl 5-8 iox_$close 000000 constant entry external dcl 5-8 iox_$close_file 000000 constant entry external dcl 5-8 iox_$delete_record 000000 constant entry external dcl 5-8 iox_$destroy_iocb 000000 constant entry external dcl 5-8 iox_$detach 000000 constant entry external dcl 5-8 iox_$detach_iocb 000000 constant entry external dcl 5-8 iox_$err_no_operation 000000 constant entry external dcl 5-8 iox_$err_not_attached 000000 constant entry external dcl 5-8 iox_$err_not_closed 000000 constant entry external dcl 5-8 iox_$err_not_open 000000 constant entry external dcl 5-8 iox_$error_output external static pointer dcl 5-41 iox_$find_iocb 000000 constant entry external dcl 5-8 iox_$find_iocb_n 000000 constant entry external dcl 5-8 iox_$get_chars 000000 constant entry external dcl 5-8 iox_$get_line 000000 constant entry external dcl 5-8 iox_$iocb_version_sentinel external static char(4) dcl 4-51 iox_$look_iocb 000000 constant entry external dcl 5-8 iox_$move_attach 000000 constant entry external dcl 5-8 iox_$open 000000 constant entry external dcl 5-8 iox_$open_file 000000 constant entry external dcl 5-8 iox_$position 000000 constant entry external dcl 5-8 iox_$propagate 000000 constant entry external dcl 5-8 iox_$put_chars 000000 constant entry external dcl 5-8 iox_$read_key 000000 constant entry external dcl 5-8 iox_$read_length 000000 constant entry external dcl 5-8 iox_$read_record 000000 constant entry external dcl 5-8 iox_$rewrite_record 000000 constant entry external dcl 5-8 iox_$seek_key 000000 constant entry external dcl 5-8 iox_$user_io external static pointer dcl 5-41 iox_$user_output external static pointer dcl 5-41 iox_$write_record 000000 constant entry external dcl 5-8 NAMES DECLARED BY EXPLICIT CONTEXT. cleaner 001174 constant entry internal dcl 196 ref 126 188 dial_out_ 000077 constant entry external dcl 10 do_cl_intermediary 001315 constant entry internal dcl 216 ref 163 process_hangup 001352 constant entry internal dcl 227 ref 166 return_to_caller 001163 constant label dcl 188 ref 105 130 132 134 158 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2110 2224 1414 2120 Length 2560 1414 114 317 473 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dial_out_ 1126 external procedure is an external procedure. on unit on line 126 64 on unit on unit on line 154 88 on unit cleaner 94 internal procedure is called by several nonquick procedures. do_cl_intermediary 82 internal procedure is assigned to an entry variable, and is declared options(non_quick). process_hangup 82 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dial_out_ 000100 code dial_out_ 000102 hangup_proc_data dial_out_ 000112 doi dial_out_ 000422 in_video dial_out_ 000423 net_input_buff dial_out_ 001423 str_to_match dial_out_ 002040 dop dial_out_ process_hangup 000100 code process_hangup THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 tra_ext_2 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ cu_$arg_list_ptr cu_$caller_ptr cu_$cl cu_$get_cl_intermediary cu_$set_cl_intermediary dial_out_modes_$set dial_out_util_$call_out dial_out_util_$interaction_loop dial_out_util_$process_line_status dial_out_util_$reset_do_modes dial_out_util_$revert_fo dial_out_util_$set_do_modes get_process_id_ hcs_$wakeup ioa_ iox_$control iox_$modes ssu_$add_request_table ssu_$create_invocation ssu_$destroy_invocation ssu_$execute_line ssu_$execute_start_up ssu_$get_temp_segment ssu_$print_blast ssu_$set_abbrev_info ssu_$set_ec_search_list ssu_$set_ec_suffix THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. do_request_table_$do_request_table_ error_table_$unimplemented_version iox_$user_input ssu_request_tables_$standard_requests sys_info$max_seg_size video_data_$terminal_iocb LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000073 86 000104 87 000106 90 000120 91 000122 94 000123 95 000125 96 000130 98 000135 99 000141 100 000144 101 000146 104 000147 105 000171 106 000175 107 000176 108 000200 109 000201 110 000202 111 000203 112 000204 114 000206 115 000213 116 000217 117 000242 120 000246 121 000251 123 000276 124 000300 126 000307 128 000331 130 000405 131 000410 132 000431 133 000433 134 000454 136 000456 137 000517 138 000542 139 000547 140 000563 142 000577 143 000624 144 000630 146 000653 147 000655 148 000656 149 000660 150 000662 151 000664 152 000665 154 000666 156 000702 157 000706 158 000737 159 000745 160 000746 161 000754 163 000755 164 000760 166 000767 167 000772 168 000774 169 000776 171 001031 174 001057 175 001066 177 001075 179 001115 182 001136 186 001145 188 001163 190 001167 192 001172 196 001173 199 001201 200 001210 201 001220 205 001262 206 001274 207 001301 209 001310 210 001313 216 001314 220 001322 222 001350 227 001351 233 001357 234 001410 ----------------------------------------------------------- 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