Home | History | Annotate | Line # | Download | only in telnet
externs.h revision 1.7
      1  1.1  cgd /*
      2  1.3  cgd  * Copyright (c) 1988, 1990, 1993
      3  1.3  cgd  *	The Regents of the University of California.  All rights reserved.
      4  1.1  cgd  *
      5  1.1  cgd  * Redistribution and use in source and binary forms, with or without
      6  1.1  cgd  * modification, are permitted provided that the following conditions
      7  1.1  cgd  * are met:
      8  1.1  cgd  * 1. Redistributions of source code must retain the above copyright
      9  1.1  cgd  *    notice, this list of conditions and the following disclaimer.
     10  1.1  cgd  * 2. Redistributions in binary form must reproduce the above copyright
     11  1.1  cgd  *    notice, this list of conditions and the following disclaimer in the
     12  1.1  cgd  *    documentation and/or other materials provided with the distribution.
     13  1.1  cgd  * 3. All advertising materials mentioning features or use of this software
     14  1.1  cgd  *    must display the following acknowledgement:
     15  1.1  cgd  *	This product includes software developed by the University of
     16  1.1  cgd  *	California, Berkeley and its contributors.
     17  1.1  cgd  * 4. Neither the name of the University nor the names of its contributors
     18  1.1  cgd  *    may be used to endorse or promote products derived from this software
     19  1.1  cgd  *    without specific prior written permission.
     20  1.1  cgd  *
     21  1.1  cgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     22  1.1  cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     23  1.1  cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     24  1.1  cgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     25  1.1  cgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     26  1.1  cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     27  1.1  cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     28  1.1  cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     29  1.1  cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     30  1.1  cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     31  1.1  cgd  * SUCH DAMAGE.
     32  1.1  cgd  *
     33  1.6  jtk  *	from: @(#)externs.h	8.3 (Berkeley) 5/30/95
     34  1.7  jtk  *	$NetBSD: externs.h,v 1.7 1996/02/24 07:32:00 jtk Exp $
     35  1.1  cgd  */
     36  1.1  cgd 
     37  1.1  cgd #ifndef	BSD
     38  1.1  cgd # define BSD 43
     39  1.1  cgd #endif
     40  1.1  cgd 
     41  1.3  cgd /*
     42  1.3  cgd  * ucb stdio.h defines BSD as something wierd
     43  1.3  cgd  */
     44  1.3  cgd #if defined(sun) && defined(__svr4__)
     45  1.3  cgd #define BSD 43
     46  1.3  cgd #endif
     47  1.3  cgd 
     48  1.3  cgd #ifndef	USE_TERMIO
     49  1.3  cgd # if BSD > 43 || defined(SYSV_TERMIO)
     50  1.3  cgd #  define USE_TERMIO
     51  1.3  cgd # endif
     52  1.1  cgd #endif
     53  1.1  cgd 
     54  1.1  cgd #include <stdio.h>
     55  1.4  cgd #include <stdlib.h>
     56  1.1  cgd #include <setjmp.h>
     57  1.3  cgd #if defined(CRAY) && !defined(NO_BSD_SETJMP)
     58  1.3  cgd #include <bsdsetjmp.h>
     59  1.3  cgd #endif
     60  1.1  cgd #ifndef	FILIO_H
     61  1.1  cgd #include <sys/ioctl.h>
     62  1.1  cgd #else
     63  1.1  cgd #include <sys/filio.h>
     64  1.1  cgd #endif
     65  1.3  cgd #ifdef CRAY
     66  1.3  cgd # include <errno.h>
     67  1.3  cgd #endif /* CRAY */
     68  1.1  cgd #ifdef	USE_TERMIO
     69  1.1  cgd # ifndef	VINTR
     70  1.1  cgd #  ifdef SYSV_TERMIO
     71  1.1  cgd #   include <sys/termio.h>
     72  1.1  cgd #  else
     73  1.1  cgd #   include <sys/termios.h>
     74  1.1  cgd #   define termio termios
     75  1.1  cgd #  endif
     76  1.1  cgd # endif
     77  1.1  cgd #endif
     78  1.1  cgd #if defined(NO_CC_T) || !defined(USE_TERMIO)
     79  1.1  cgd # if !defined(USE_TERMIO)
     80  1.1  cgd typedef char cc_t;
     81  1.1  cgd # else
     82  1.1  cgd typedef unsigned char cc_t;
     83  1.1  cgd # endif
     84  1.1  cgd #endif
     85  1.1  cgd 
     86  1.1  cgd #ifndef	NO_STRING_H
     87  1.1  cgd #include <string.h>
     88  1.6  jtk #else
     89  1.6  jtk #include <strings.h>
     90  1.1  cgd #endif
     91  1.1  cgd 
     92  1.1  cgd #ifndef	_POSIX_VDISABLE
     93  1.1  cgd # ifdef sun
     94  1.1  cgd #  include <sys/param.h>	/* pick up VDISABLE definition, mayby */
     95  1.1  cgd # endif
     96  1.1  cgd # ifdef VDISABLE
     97  1.1  cgd #  define _POSIX_VDISABLE VDISABLE
     98  1.1  cgd # else
     99  1.1  cgd #  define _POSIX_VDISABLE ((cc_t)'\377')
    100  1.1  cgd # endif
    101  1.1  cgd #endif
    102  1.1  cgd 
    103  1.1  cgd #define	SUBBUFSIZE	256
    104  1.1  cgd 
    105  1.3  cgd #ifndef CRAY
    106  1.1  cgd extern int errno;		/* outside this world */
    107  1.3  cgd #endif /* !CRAY */
    108  1.1  cgd 
    109  1.6  jtk #include <sys/cdefs.h>
    110  1.6  jtk #define P __P
    111  1.1  cgd 
    112  1.1  cgd extern int
    113  1.1  cgd     autologin,		/* Autologin enabled */
    114  1.1  cgd     skiprc,		/* Don't process the ~/.telnetrc file */
    115  1.1  cgd     eight,		/* use eight bit mode (binary in and/or out */
    116  1.1  cgd     flushout,		/* flush output */
    117  1.1  cgd     connected,		/* Are we connected to the other side? */
    118  1.1  cgd     globalmode,		/* Mode tty should be in */
    119  1.6  jtk     In3270,		/* Are we in 3270 mode? */
    120  1.1  cgd     telnetport,		/* Are we connected to the telnet port? */
    121  1.1  cgd     localflow,		/* Flow control handled locally */
    122  1.3  cgd     restartany,		/* If flow control, restart output on any character */
    123  1.1  cgd     localchars,		/* we recognize interrupt/quit */
    124  1.6  jtk     donelclchars,	/* the user has set "localchars" */
    125  1.1  cgd     showoptions,
    126  1.1  cgd     net,		/* Network file descriptor */
    127  1.1  cgd     tin,		/* Terminal input file descriptor */
    128  1.1  cgd     tout,		/* Terminal output file descriptor */
    129  1.1  cgd     crlf,		/* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */
    130  1.1  cgd     autoflush,		/* flush output when interrupting? */
    131  1.1  cgd     autosynch,		/* send interrupt characters with SYNCH? */
    132  1.1  cgd     SYNCHing,		/* Is the stream in telnet SYNCH mode? */
    133  1.1  cgd     donebinarytoggle,	/* the user has put us in binary */
    134  1.1  cgd     dontlecho,		/* do we suppress local echoing right now? */
    135  1.1  cgd     crmod,
    136  1.1  cgd     netdata,		/* Print out network data flow */
    137  1.1  cgd     prettydump,		/* Print "netdata" output in user readable format */
    138  1.1  cgd #if	defined(unix)
    139  1.1  cgd #if	defined(TN3270)
    140  1.1  cgd     cursesdata,		/* Print out curses data flow */
    141  1.1  cgd     apitrace,		/* Trace API transactions */
    142  1.1  cgd #endif	/* defined(TN3270) */
    143  1.1  cgd     termdata,		/* Print out terminal data flow */
    144  1.1  cgd #endif	/* defined(unix) */
    145  1.7  jtk     debug,		/* Debug level */
    146  1.7  jtk     clienteof;		/* Client received EOF */
    147  1.1  cgd 
    148  1.1  cgd extern cc_t escape;	/* Escape to command mode */
    149  1.1  cgd extern cc_t rlogin;	/* Rlogin mode escape character */
    150  1.1  cgd #ifdef	KLUDGELINEMODE
    151  1.1  cgd extern cc_t echoc;	/* Toggle local echoing */
    152  1.1  cgd #endif
    153  1.1  cgd 
    154  1.1  cgd extern char
    155  1.1  cgd     *prompt;		/* Prompt for command. */
    156  1.1  cgd 
    157  1.1  cgd extern char
    158  1.1  cgd     doopt[],
    159  1.1  cgd     dont[],
    160  1.1  cgd     will[],
    161  1.1  cgd     wont[],
    162  1.1  cgd     options[],		/* All the little options */
    163  1.1  cgd     *hostname;		/* Who are we connected to? */
    164  1.1  cgd 
    165  1.1  cgd /*
    166  1.1  cgd  * We keep track of each side of the option negotiation.
    167  1.1  cgd  */
    168  1.1  cgd 
    169  1.1  cgd #define	MY_STATE_WILL		0x01
    170  1.1  cgd #define	MY_WANT_STATE_WILL	0x02
    171  1.1  cgd #define	MY_STATE_DO		0x04
    172  1.1  cgd #define	MY_WANT_STATE_DO	0x08
    173  1.1  cgd 
    174  1.1  cgd /*
    175  1.1  cgd  * Macros to check the current state of things
    176  1.1  cgd  */
    177  1.1  cgd 
    178  1.1  cgd #define	my_state_is_do(opt)		(options[opt]&MY_STATE_DO)
    179  1.1  cgd #define	my_state_is_will(opt)		(options[opt]&MY_STATE_WILL)
    180  1.1  cgd #define my_want_state_is_do(opt)	(options[opt]&MY_WANT_STATE_DO)
    181  1.1  cgd #define my_want_state_is_will(opt)	(options[opt]&MY_WANT_STATE_WILL)
    182  1.1  cgd 
    183  1.1  cgd #define	my_state_is_dont(opt)		(!my_state_is_do(opt))
    184  1.1  cgd #define	my_state_is_wont(opt)		(!my_state_is_will(opt))
    185  1.1  cgd #define my_want_state_is_dont(opt)	(!my_want_state_is_do(opt))
    186  1.1  cgd #define my_want_state_is_wont(opt)	(!my_want_state_is_will(opt))
    187  1.1  cgd 
    188  1.1  cgd #define	set_my_state_do(opt)		{options[opt] |= MY_STATE_DO;}
    189  1.1  cgd #define	set_my_state_will(opt)		{options[opt] |= MY_STATE_WILL;}
    190  1.1  cgd #define	set_my_want_state_do(opt)	{options[opt] |= MY_WANT_STATE_DO;}
    191  1.1  cgd #define	set_my_want_state_will(opt)	{options[opt] |= MY_WANT_STATE_WILL;}
    192  1.1  cgd 
    193  1.1  cgd #define	set_my_state_dont(opt)		{options[opt] &= ~MY_STATE_DO;}
    194  1.1  cgd #define	set_my_state_wont(opt)		{options[opt] &= ~MY_STATE_WILL;}
    195  1.1  cgd #define	set_my_want_state_dont(opt)	{options[opt] &= ~MY_WANT_STATE_DO;}
    196  1.1  cgd #define	set_my_want_state_wont(opt)	{options[opt] &= ~MY_WANT_STATE_WILL;}
    197  1.1  cgd 
    198  1.1  cgd /*
    199  1.1  cgd  * Make everything symetrical
    200  1.1  cgd  */
    201  1.1  cgd 
    202  1.1  cgd #define	HIS_STATE_WILL			MY_STATE_DO
    203  1.1  cgd #define	HIS_WANT_STATE_WILL		MY_WANT_STATE_DO
    204  1.1  cgd #define HIS_STATE_DO			MY_STATE_WILL
    205  1.1  cgd #define HIS_WANT_STATE_DO		MY_WANT_STATE_WILL
    206  1.1  cgd 
    207  1.1  cgd #define	his_state_is_do			my_state_is_will
    208  1.1  cgd #define	his_state_is_will		my_state_is_do
    209  1.1  cgd #define his_want_state_is_do		my_want_state_is_will
    210  1.1  cgd #define his_want_state_is_will		my_want_state_is_do
    211  1.1  cgd 
    212  1.1  cgd #define	his_state_is_dont		my_state_is_wont
    213  1.1  cgd #define	his_state_is_wont		my_state_is_dont
    214  1.1  cgd #define his_want_state_is_dont		my_want_state_is_wont
    215  1.1  cgd #define his_want_state_is_wont		my_want_state_is_dont
    216  1.1  cgd 
    217  1.1  cgd #define	set_his_state_do		set_my_state_will
    218  1.1  cgd #define	set_his_state_will		set_my_state_do
    219  1.1  cgd #define	set_his_want_state_do		set_my_want_state_will
    220  1.1  cgd #define	set_his_want_state_will		set_my_want_state_do
    221  1.1  cgd 
    222  1.1  cgd #define	set_his_state_dont		set_my_state_wont
    223  1.1  cgd #define	set_his_state_wont		set_my_state_dont
    224  1.1  cgd #define	set_his_want_state_dont		set_my_want_state_wont
    225  1.1  cgd #define	set_his_want_state_wont		set_my_want_state_dont
    226  1.1  cgd 
    227  1.1  cgd 
    228  1.1  cgd extern FILE
    229  1.1  cgd     *NetTrace;		/* Where debugging output goes */
    230  1.1  cgd extern unsigned char
    231  1.1  cgd     NetTraceFile[];	/* Name of file where debugging output goes */
    232  1.1  cgd extern void
    233  1.1  cgd     SetNetTrace P((char *));	/* Function to change where debugging goes */
    234  1.1  cgd 
    235  1.1  cgd extern jmp_buf
    236  1.1  cgd     peerdied,
    237  1.1  cgd     toplevel;		/* For error conditions. */
    238  1.1  cgd 
    239  1.1  cgd extern void
    240  1.1  cgd     command P((int, char *, int)),
    241  1.1  cgd     Dump P((int, unsigned char *, int)),
    242  1.1  cgd     init_3270 P((void)),
    243  1.1  cgd     printoption P((char *, int, int)),
    244  1.1  cgd     printsub P((int, unsigned char *, int)),
    245  1.1  cgd     sendnaws P((void)),
    246  1.1  cgd     setconnmode P((int)),
    247  1.1  cgd     setcommandmode P((void)),
    248  1.1  cgd     setneturg P((void)),
    249  1.1  cgd     sys_telnet_init P((void)),
    250  1.1  cgd     telnet P((char *)),
    251  1.1  cgd     tel_enter_binary P((int)),
    252  1.1  cgd     TerminalFlushOutput P((void)),
    253  1.1  cgd     TerminalNewMode P((int)),
    254  1.1  cgd     TerminalRestoreState P((void)),
    255  1.1  cgd     TerminalSaveState P((void)),
    256  1.1  cgd     tninit P((void)),
    257  1.1  cgd     upcase P((char *)),
    258  1.1  cgd     willoption P((int)),
    259  1.1  cgd     wontoption P((int));
    260  1.1  cgd 
    261  1.1  cgd extern void
    262  1.3  cgd     send_do P((int, int)),
    263  1.3  cgd     send_dont P((int, int)),
    264  1.3  cgd     send_will P((int, int)),
    265  1.3  cgd     send_wont P((int, int));
    266  1.3  cgd 
    267  1.3  cgd extern void
    268  1.1  cgd     lm_will P((unsigned char *, int)),
    269  1.1  cgd     lm_wont P((unsigned char *, int)),
    270  1.1  cgd     lm_do P((unsigned char *, int)),
    271  1.1  cgd     lm_dont P((unsigned char *, int)),
    272  1.1  cgd     lm_mode P((unsigned char *, int, int));
    273  1.1  cgd 
    274  1.1  cgd extern void
    275  1.1  cgd     slc_init P((void)),
    276  1.1  cgd     slcstate P((void)),
    277  1.1  cgd     slc_mode_export P((void)),
    278  1.1  cgd     slc_mode_import P((int)),
    279  1.1  cgd     slc_import P((int)),
    280  1.1  cgd     slc_export P((void)),
    281  1.1  cgd     slc P((unsigned char *, int)),
    282  1.1  cgd     slc_check P((void)),
    283  1.1  cgd     slc_start_reply P((void)),
    284  1.1  cgd     slc_add_reply P((int, int, int)),
    285  1.1  cgd     slc_end_reply P((void));
    286  1.1  cgd extern int
    287  1.1  cgd     slc_update P((void));
    288  1.1  cgd 
    289  1.1  cgd extern void
    290  1.1  cgd     env_opt P((unsigned char *, int)),
    291  1.1  cgd     env_opt_start P((void)),
    292  1.1  cgd     env_opt_start_info P((void)),
    293  1.1  cgd     env_opt_add P((unsigned char *)),
    294  1.1  cgd     env_opt_end P((int));
    295  1.1  cgd 
    296  1.1  cgd extern unsigned char
    297  1.3  cgd     *env_default P((int, int)),
    298  1.1  cgd     *env_getvalue P((unsigned char *));
    299  1.1  cgd 
    300  1.1  cgd extern int
    301  1.1  cgd     get_status P((void)),
    302  1.1  cgd     dosynch P((void));
    303  1.1  cgd 
    304  1.1  cgd extern cc_t
    305  1.1  cgd     *tcval P((int));
    306  1.1  cgd 
    307  1.1  cgd #ifndef	USE_TERMIO
    308  1.1  cgd 
    309  1.1  cgd extern struct	tchars ntc;
    310  1.1  cgd extern struct	ltchars nltc;
    311  1.1  cgd extern struct	sgttyb nttyb;
    312  1.1  cgd 
    313  1.1  cgd # define termEofChar		ntc.t_eofc
    314  1.1  cgd # define termEraseChar		nttyb.sg_erase
    315  1.1  cgd # define termFlushChar		nltc.t_flushc
    316  1.1  cgd # define termIntChar		ntc.t_intrc
    317  1.1  cgd # define termKillChar		nttyb.sg_kill
    318  1.1  cgd # define termLiteralNextChar	nltc.t_lnextc
    319  1.1  cgd # define termQuitChar		ntc.t_quitc
    320  1.1  cgd # define termSuspChar		nltc.t_suspc
    321  1.1  cgd # define termRprntChar		nltc.t_rprntc
    322  1.1  cgd # define termWerasChar		nltc.t_werasc
    323  1.1  cgd # define termStartChar		ntc.t_startc
    324  1.1  cgd # define termStopChar		ntc.t_stopc
    325  1.1  cgd # define termForw1Char		ntc.t_brkc
    326  1.1  cgd extern cc_t termForw2Char;
    327  1.1  cgd extern cc_t termAytChar;
    328  1.1  cgd 
    329  1.1  cgd # define termEofCharp		(cc_t *)&ntc.t_eofc
    330  1.1  cgd # define termEraseCharp		(cc_t *)&nttyb.sg_erase
    331  1.1  cgd # define termFlushCharp		(cc_t *)&nltc.t_flushc
    332  1.1  cgd # define termIntCharp		(cc_t *)&ntc.t_intrc
    333  1.1  cgd # define termKillCharp		(cc_t *)&nttyb.sg_kill
    334  1.1  cgd # define termLiteralNextCharp	(cc_t *)&nltc.t_lnextc
    335  1.1  cgd # define termQuitCharp		(cc_t *)&ntc.t_quitc
    336  1.1  cgd # define termSuspCharp		(cc_t *)&nltc.t_suspc
    337  1.1  cgd # define termRprntCharp		(cc_t *)&nltc.t_rprntc
    338  1.1  cgd # define termWerasCharp		(cc_t *)&nltc.t_werasc
    339  1.1  cgd # define termStartCharp		(cc_t *)&ntc.t_startc
    340  1.1  cgd # define termStopCharp		(cc_t *)&ntc.t_stopc
    341  1.1  cgd # define termForw1Charp		(cc_t *)&ntc.t_brkc
    342  1.1  cgd # define termForw2Charp		(cc_t *)&termForw2Char
    343  1.1  cgd # define termAytCharp		(cc_t *)&termAytChar
    344  1.1  cgd 
    345  1.1  cgd # else
    346  1.1  cgd 
    347  1.1  cgd extern struct	termio new_tc;
    348  1.1  cgd 
    349  1.1  cgd # define termEofChar		new_tc.c_cc[VEOF]
    350  1.1  cgd # define termEraseChar		new_tc.c_cc[VERASE]
    351  1.1  cgd # define termIntChar		new_tc.c_cc[VINTR]
    352  1.1  cgd # define termKillChar		new_tc.c_cc[VKILL]
    353  1.1  cgd # define termQuitChar		new_tc.c_cc[VQUIT]
    354  1.1  cgd 
    355  1.1  cgd # ifndef	VSUSP
    356  1.1  cgd extern cc_t termSuspChar;
    357  1.1  cgd # else
    358  1.1  cgd #  define termSuspChar		new_tc.c_cc[VSUSP]
    359  1.1  cgd # endif
    360  1.1  cgd # if	defined(VFLUSHO) && !defined(VDISCARD)
    361  1.1  cgd #  define VDISCARD VFLUSHO
    362  1.1  cgd # endif
    363  1.1  cgd # ifndef	VDISCARD
    364  1.1  cgd extern cc_t termFlushChar;
    365  1.1  cgd # else
    366  1.1  cgd #  define termFlushChar		new_tc.c_cc[VDISCARD]
    367  1.1  cgd # endif
    368  1.1  cgd # ifndef VWERASE
    369  1.1  cgd extern cc_t termWerasChar;
    370  1.1  cgd # else
    371  1.1  cgd #  define termWerasChar		new_tc.c_cc[VWERASE]
    372  1.1  cgd # endif
    373  1.1  cgd # ifndef	VREPRINT
    374  1.1  cgd extern cc_t termRprntChar;
    375  1.1  cgd # else
    376  1.1  cgd #  define termRprntChar		new_tc.c_cc[VREPRINT]
    377  1.1  cgd # endif
    378  1.1  cgd # ifndef	VLNEXT
    379  1.1  cgd extern cc_t termLiteralNextChar;
    380  1.1  cgd # else
    381  1.1  cgd #  define termLiteralNextChar	new_tc.c_cc[VLNEXT]
    382  1.1  cgd # endif
    383  1.1  cgd # ifndef	VSTART
    384  1.1  cgd extern cc_t termStartChar;
    385  1.1  cgd # else
    386  1.1  cgd #  define termStartChar		new_tc.c_cc[VSTART]
    387  1.1  cgd # endif
    388  1.1  cgd # ifndef	VSTOP
    389  1.1  cgd extern cc_t termStopChar;
    390  1.1  cgd # else
    391  1.1  cgd #  define termStopChar		new_tc.c_cc[VSTOP]
    392  1.1  cgd # endif
    393  1.1  cgd # ifndef	VEOL
    394  1.1  cgd extern cc_t termForw1Char;
    395  1.1  cgd # else
    396  1.1  cgd #  define termForw1Char		new_tc.c_cc[VEOL]
    397  1.1  cgd # endif
    398  1.1  cgd # ifndef	VEOL2
    399  1.1  cgd extern cc_t termForw2Char;
    400  1.1  cgd # else
    401  1.1  cgd #  define termForw2Char		new_tc.c_cc[VEOL]
    402  1.1  cgd # endif
    403  1.1  cgd # ifndef	VSTATUS
    404  1.1  cgd extern cc_t termAytChar;
    405  1.1  cgd #else
    406  1.1  cgd #  define termAytChar		new_tc.c_cc[VSTATUS]
    407  1.1  cgd #endif
    408  1.1  cgd 
    409  1.1  cgd # if !defined(CRAY) || defined(__STDC__)
    410  1.1  cgd #  define termEofCharp		&termEofChar
    411  1.1  cgd #  define termEraseCharp	&termEraseChar
    412  1.1  cgd #  define termIntCharp		&termIntChar
    413  1.1  cgd #  define termKillCharp		&termKillChar
    414  1.1  cgd #  define termQuitCharp		&termQuitChar
    415  1.1  cgd #  define termSuspCharp		&termSuspChar
    416  1.1  cgd #  define termFlushCharp	&termFlushChar
    417  1.1  cgd #  define termWerasCharp	&termWerasChar
    418  1.1  cgd #  define termRprntCharp	&termRprntChar
    419  1.1  cgd #  define termLiteralNextCharp	&termLiteralNextChar
    420  1.1  cgd #  define termStartCharp	&termStartChar
    421  1.1  cgd #  define termStopCharp		&termStopChar
    422  1.1  cgd #  define termForw1Charp	&termForw1Char
    423  1.1  cgd #  define termForw2Charp	&termForw2Char
    424  1.1  cgd #  define termAytCharp		&termAytChar
    425  1.1  cgd # else
    426  1.1  cgd 	/* Work around a compiler bug */
    427  1.1  cgd #  define termEofCharp		0
    428  1.1  cgd #  define termEraseCharp	0
    429  1.1  cgd #  define termIntCharp		0
    430  1.1  cgd #  define termKillCharp		0
    431  1.1  cgd #  define termQuitCharp		0
    432  1.1  cgd #  define termSuspCharp		0
    433  1.1  cgd #  define termFlushCharp	0
    434  1.1  cgd #  define termWerasCharp	0
    435  1.1  cgd #  define termRprntCharp	0
    436  1.1  cgd #  define termLiteralNextCharp	0
    437  1.1  cgd #  define termStartCharp	0
    438  1.1  cgd #  define termStopCharp		0
    439  1.1  cgd #  define termForw1Charp	0
    440  1.1  cgd #  define termForw2Charp	0
    441  1.1  cgd #  define termAytCharp		0
    442  1.1  cgd # endif
    443  1.1  cgd #endif
    444  1.1  cgd 
    445  1.1  cgd 
    446  1.1  cgd /* Ring buffer structures which are shared */
    447  1.1  cgd 
    448  1.1  cgd extern Ring
    449  1.1  cgd     netoring,
    450  1.1  cgd     netiring,
    451  1.1  cgd     ttyoring,
    452  1.1  cgd     ttyiring;
    453  1.1  cgd 
    454  1.1  cgd /* Tn3270 section */
    455  1.1  cgd #if	defined(TN3270)
    456  1.1  cgd 
    457  1.1  cgd extern int
    458  1.1  cgd     HaveInput,		/* Whether an asynchronous I/O indication came in */
    459  1.1  cgd     noasynchtty,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    460  1.1  cgd     noasynchnet,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    461  1.1  cgd     sigiocount,		/* Count of SIGIO receptions */
    462  1.1  cgd     shell_active;	/* Subshell is active */
    463  1.1  cgd 
    464  1.1  cgd extern char
    465  1.1  cgd     *Ibackp,		/* Oldest byte of 3270 data */
    466  1.1  cgd     Ibuf[],		/* 3270 buffer */
    467  1.1  cgd     *Ifrontp,		/* Where next 3270 byte goes */
    468  1.1  cgd     tline[],
    469  1.1  cgd     *transcom;		/* Transparent command */
    470  1.1  cgd 
    471  1.3  cgd extern int
    472  1.1  cgd     settranscom P((int, char**));
    473  1.1  cgd 
    474  1.1  cgd extern void
    475  1.3  cgd     inputAvailable P((int));
    476  1.1  cgd #endif	/* defined(TN3270) */
    477