Home | History | Annotate | Line # | Download | only in telnet
externs.h revision 1.4
      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.3  cgd  *	from: @(#)externs.h	8.1 (Berkeley) 6/6/93
     34  1.4  cgd  *	$Id: externs.h,v 1.4 1994/12/24 17:50:05 cgd 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.1  cgd #endif
     89  1.1  cgd #include <strings.h>
     90  1.1  cgd 
     91  1.1  cgd #ifndef	_POSIX_VDISABLE
     92  1.1  cgd # ifdef sun
     93  1.1  cgd #  include <sys/param.h>	/* pick up VDISABLE definition, mayby */
     94  1.1  cgd # endif
     95  1.1  cgd # ifdef VDISABLE
     96  1.1  cgd #  define _POSIX_VDISABLE VDISABLE
     97  1.1  cgd # else
     98  1.1  cgd #  define _POSIX_VDISABLE ((cc_t)'\377')
     99  1.1  cgd # endif
    100  1.1  cgd #endif
    101  1.1  cgd 
    102  1.1  cgd #define	SUBBUFSIZE	256
    103  1.1  cgd 
    104  1.3  cgd #ifndef CRAY
    105  1.1  cgd extern int errno;		/* outside this world */
    106  1.3  cgd #endif /* !CRAY */
    107  1.1  cgd 
    108  1.1  cgd #if	!defined(P)
    109  1.1  cgd # ifdef	__STDC__
    110  1.1  cgd #  define	P(x)	x
    111  1.1  cgd # else
    112  1.1  cgd #  define	P(x)	()
    113  1.1  cgd # endif
    114  1.1  cgd #endif
    115  1.1  cgd 
    116  1.1  cgd extern int
    117  1.1  cgd     autologin,		/* Autologin enabled */
    118  1.1  cgd     skiprc,		/* Don't process the ~/.telnetrc file */
    119  1.1  cgd     eight,		/* use eight bit mode (binary in and/or out */
    120  1.1  cgd     flushout,		/* flush output */
    121  1.1  cgd     connected,		/* Are we connected to the other side? */
    122  1.1  cgd     globalmode,		/* Mode tty should be in */
    123  1.1  cgd     In3270,			/* Are we in 3270 mode? */
    124  1.1  cgd     telnetport,		/* Are we connected to the telnet port? */
    125  1.1  cgd     localflow,		/* Flow control handled locally */
    126  1.3  cgd     restartany,		/* If flow control, restart output on any character */
    127  1.1  cgd     localchars,		/* we recognize interrupt/quit */
    128  1.1  cgd     donelclchars,		/* the user has set "localchars" */
    129  1.1  cgd     showoptions,
    130  1.1  cgd     net,		/* Network file descriptor */
    131  1.1  cgd     tin,		/* Terminal input file descriptor */
    132  1.1  cgd     tout,		/* Terminal output file descriptor */
    133  1.1  cgd     crlf,		/* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */
    134  1.1  cgd     autoflush,		/* flush output when interrupting? */
    135  1.1  cgd     autosynch,		/* send interrupt characters with SYNCH? */
    136  1.1  cgd     SYNCHing,		/* Is the stream in telnet SYNCH mode? */
    137  1.1  cgd     donebinarytoggle,	/* the user has put us in binary */
    138  1.1  cgd     dontlecho,		/* do we suppress local echoing right now? */
    139  1.1  cgd     crmod,
    140  1.1  cgd     netdata,		/* Print out network data flow */
    141  1.1  cgd     prettydump,		/* Print "netdata" output in user readable format */
    142  1.1  cgd #if	defined(unix)
    143  1.1  cgd #if	defined(TN3270)
    144  1.1  cgd     cursesdata,		/* Print out curses data flow */
    145  1.1  cgd     apitrace,		/* Trace API transactions */
    146  1.1  cgd #endif	/* defined(TN3270) */
    147  1.1  cgd     termdata,		/* Print out terminal data flow */
    148  1.1  cgd #endif	/* defined(unix) */
    149  1.1  cgd     debug;			/* Debug level */
    150  1.1  cgd 
    151  1.1  cgd extern cc_t escape;	/* Escape to command mode */
    152  1.1  cgd extern cc_t rlogin;	/* Rlogin mode escape character */
    153  1.1  cgd #ifdef	KLUDGELINEMODE
    154  1.1  cgd extern cc_t echoc;	/* Toggle local echoing */
    155  1.1  cgd #endif
    156  1.1  cgd 
    157  1.1  cgd extern char
    158  1.1  cgd     *prompt;		/* Prompt for command. */
    159  1.1  cgd 
    160  1.1  cgd extern char
    161  1.1  cgd     doopt[],
    162  1.1  cgd     dont[],
    163  1.1  cgd     will[],
    164  1.1  cgd     wont[],
    165  1.1  cgd     options[],		/* All the little options */
    166  1.1  cgd     *hostname;		/* Who are we connected to? */
    167  1.1  cgd 
    168  1.1  cgd /*
    169  1.1  cgd  * We keep track of each side of the option negotiation.
    170  1.1  cgd  */
    171  1.1  cgd 
    172  1.1  cgd #define	MY_STATE_WILL		0x01
    173  1.1  cgd #define	MY_WANT_STATE_WILL	0x02
    174  1.1  cgd #define	MY_STATE_DO		0x04
    175  1.1  cgd #define	MY_WANT_STATE_DO	0x08
    176  1.1  cgd 
    177  1.1  cgd /*
    178  1.1  cgd  * Macros to check the current state of things
    179  1.1  cgd  */
    180  1.1  cgd 
    181  1.1  cgd #define	my_state_is_do(opt)		(options[opt]&MY_STATE_DO)
    182  1.1  cgd #define	my_state_is_will(opt)		(options[opt]&MY_STATE_WILL)
    183  1.1  cgd #define my_want_state_is_do(opt)	(options[opt]&MY_WANT_STATE_DO)
    184  1.1  cgd #define my_want_state_is_will(opt)	(options[opt]&MY_WANT_STATE_WILL)
    185  1.1  cgd 
    186  1.1  cgd #define	my_state_is_dont(opt)		(!my_state_is_do(opt))
    187  1.1  cgd #define	my_state_is_wont(opt)		(!my_state_is_will(opt))
    188  1.1  cgd #define my_want_state_is_dont(opt)	(!my_want_state_is_do(opt))
    189  1.1  cgd #define my_want_state_is_wont(opt)	(!my_want_state_is_will(opt))
    190  1.1  cgd 
    191  1.1  cgd #define	set_my_state_do(opt)		{options[opt] |= MY_STATE_DO;}
    192  1.1  cgd #define	set_my_state_will(opt)		{options[opt] |= MY_STATE_WILL;}
    193  1.1  cgd #define	set_my_want_state_do(opt)	{options[opt] |= MY_WANT_STATE_DO;}
    194  1.1  cgd #define	set_my_want_state_will(opt)	{options[opt] |= MY_WANT_STATE_WILL;}
    195  1.1  cgd 
    196  1.1  cgd #define	set_my_state_dont(opt)		{options[opt] &= ~MY_STATE_DO;}
    197  1.1  cgd #define	set_my_state_wont(opt)		{options[opt] &= ~MY_STATE_WILL;}
    198  1.1  cgd #define	set_my_want_state_dont(opt)	{options[opt] &= ~MY_WANT_STATE_DO;}
    199  1.1  cgd #define	set_my_want_state_wont(opt)	{options[opt] &= ~MY_WANT_STATE_WILL;}
    200  1.1  cgd 
    201  1.1  cgd /*
    202  1.1  cgd  * Make everything symetrical
    203  1.1  cgd  */
    204  1.1  cgd 
    205  1.1  cgd #define	HIS_STATE_WILL			MY_STATE_DO
    206  1.1  cgd #define	HIS_WANT_STATE_WILL		MY_WANT_STATE_DO
    207  1.1  cgd #define HIS_STATE_DO			MY_STATE_WILL
    208  1.1  cgd #define HIS_WANT_STATE_DO		MY_WANT_STATE_WILL
    209  1.1  cgd 
    210  1.1  cgd #define	his_state_is_do			my_state_is_will
    211  1.1  cgd #define	his_state_is_will		my_state_is_do
    212  1.1  cgd #define his_want_state_is_do		my_want_state_is_will
    213  1.1  cgd #define his_want_state_is_will		my_want_state_is_do
    214  1.1  cgd 
    215  1.1  cgd #define	his_state_is_dont		my_state_is_wont
    216  1.1  cgd #define	his_state_is_wont		my_state_is_dont
    217  1.1  cgd #define his_want_state_is_dont		my_want_state_is_wont
    218  1.1  cgd #define his_want_state_is_wont		my_want_state_is_dont
    219  1.1  cgd 
    220  1.1  cgd #define	set_his_state_do		set_my_state_will
    221  1.1  cgd #define	set_his_state_will		set_my_state_do
    222  1.1  cgd #define	set_his_want_state_do		set_my_want_state_will
    223  1.1  cgd #define	set_his_want_state_will		set_my_want_state_do
    224  1.1  cgd 
    225  1.1  cgd #define	set_his_state_dont		set_my_state_wont
    226  1.1  cgd #define	set_his_state_wont		set_my_state_dont
    227  1.1  cgd #define	set_his_want_state_dont		set_my_want_state_wont
    228  1.1  cgd #define	set_his_want_state_wont		set_my_want_state_dont
    229  1.1  cgd 
    230  1.1  cgd 
    231  1.1  cgd extern FILE
    232  1.1  cgd     *NetTrace;		/* Where debugging output goes */
    233  1.1  cgd extern unsigned char
    234  1.1  cgd     NetTraceFile[];	/* Name of file where debugging output goes */
    235  1.1  cgd extern void
    236  1.1  cgd     SetNetTrace P((char *));	/* Function to change where debugging goes */
    237  1.1  cgd 
    238  1.1  cgd extern jmp_buf
    239  1.1  cgd     peerdied,
    240  1.1  cgd     toplevel;		/* For error conditions. */
    241  1.1  cgd 
    242  1.1  cgd extern void
    243  1.1  cgd     command P((int, char *, int)),
    244  1.1  cgd     Dump P((int, unsigned char *, int)),
    245  1.1  cgd     init_3270 P((void)),
    246  1.1  cgd     printoption P((char *, int, int)),
    247  1.1  cgd     printsub P((int, unsigned char *, int)),
    248  1.1  cgd     sendnaws P((void)),
    249  1.1  cgd     setconnmode P((int)),
    250  1.1  cgd     setcommandmode P((void)),
    251  1.1  cgd     setneturg P((void)),
    252  1.1  cgd     sys_telnet_init P((void)),
    253  1.1  cgd     telnet P((char *)),
    254  1.1  cgd     tel_enter_binary P((int)),
    255  1.1  cgd     TerminalFlushOutput P((void)),
    256  1.1  cgd     TerminalNewMode P((int)),
    257  1.1  cgd     TerminalRestoreState P((void)),
    258  1.1  cgd     TerminalSaveState P((void)),
    259  1.1  cgd     tninit P((void)),
    260  1.1  cgd     upcase P((char *)),
    261  1.1  cgd     willoption P((int)),
    262  1.1  cgd     wontoption P((int));
    263  1.1  cgd 
    264  1.1  cgd extern void
    265  1.3  cgd     send_do P((int, int)),
    266  1.3  cgd     send_dont P((int, int)),
    267  1.3  cgd     send_will P((int, int)),
    268  1.3  cgd     send_wont P((int, int));
    269  1.3  cgd 
    270  1.3  cgd extern void
    271  1.1  cgd     lm_will P((unsigned char *, int)),
    272  1.1  cgd     lm_wont P((unsigned char *, int)),
    273  1.1  cgd     lm_do P((unsigned char *, int)),
    274  1.1  cgd     lm_dont P((unsigned char *, int)),
    275  1.1  cgd     lm_mode P((unsigned char *, int, int));
    276  1.1  cgd 
    277  1.1  cgd extern void
    278  1.1  cgd     slc_init P((void)),
    279  1.1  cgd     slcstate P((void)),
    280  1.1  cgd     slc_mode_export P((void)),
    281  1.1  cgd     slc_mode_import P((int)),
    282  1.1  cgd     slc_import P((int)),
    283  1.1  cgd     slc_export P((void)),
    284  1.1  cgd     slc P((unsigned char *, int)),
    285  1.1  cgd     slc_check P((void)),
    286  1.1  cgd     slc_start_reply P((void)),
    287  1.1  cgd     slc_add_reply P((int, int, int)),
    288  1.1  cgd     slc_end_reply P((void));
    289  1.1  cgd extern int
    290  1.1  cgd     slc_update P((void));
    291  1.1  cgd 
    292  1.1  cgd extern void
    293  1.1  cgd     env_opt P((unsigned char *, int)),
    294  1.1  cgd     env_opt_start P((void)),
    295  1.1  cgd     env_opt_start_info P((void)),
    296  1.1  cgd     env_opt_add P((unsigned char *)),
    297  1.1  cgd     env_opt_end P((int));
    298  1.1  cgd 
    299  1.1  cgd extern unsigned char
    300  1.3  cgd     *env_default P((int, int)),
    301  1.1  cgd     *env_getvalue P((unsigned char *));
    302  1.1  cgd 
    303  1.1  cgd extern int
    304  1.1  cgd     get_status P((void)),
    305  1.1  cgd     dosynch P((void));
    306  1.1  cgd 
    307  1.1  cgd extern cc_t
    308  1.1  cgd     *tcval P((int));
    309  1.1  cgd 
    310  1.1  cgd #ifndef	USE_TERMIO
    311  1.1  cgd 
    312  1.1  cgd extern struct	tchars ntc;
    313  1.1  cgd extern struct	ltchars nltc;
    314  1.1  cgd extern struct	sgttyb nttyb;
    315  1.1  cgd 
    316  1.1  cgd # define termEofChar		ntc.t_eofc
    317  1.1  cgd # define termEraseChar		nttyb.sg_erase
    318  1.1  cgd # define termFlushChar		nltc.t_flushc
    319  1.1  cgd # define termIntChar		ntc.t_intrc
    320  1.1  cgd # define termKillChar		nttyb.sg_kill
    321  1.1  cgd # define termLiteralNextChar	nltc.t_lnextc
    322  1.1  cgd # define termQuitChar		ntc.t_quitc
    323  1.1  cgd # define termSuspChar		nltc.t_suspc
    324  1.1  cgd # define termRprntChar		nltc.t_rprntc
    325  1.1  cgd # define termWerasChar		nltc.t_werasc
    326  1.1  cgd # define termStartChar		ntc.t_startc
    327  1.1  cgd # define termStopChar		ntc.t_stopc
    328  1.1  cgd # define termForw1Char		ntc.t_brkc
    329  1.1  cgd extern cc_t termForw2Char;
    330  1.1  cgd extern cc_t termAytChar;
    331  1.1  cgd 
    332  1.1  cgd # define termEofCharp		(cc_t *)&ntc.t_eofc
    333  1.1  cgd # define termEraseCharp		(cc_t *)&nttyb.sg_erase
    334  1.1  cgd # define termFlushCharp		(cc_t *)&nltc.t_flushc
    335  1.1  cgd # define termIntCharp		(cc_t *)&ntc.t_intrc
    336  1.1  cgd # define termKillCharp		(cc_t *)&nttyb.sg_kill
    337  1.1  cgd # define termLiteralNextCharp	(cc_t *)&nltc.t_lnextc
    338  1.1  cgd # define termQuitCharp		(cc_t *)&ntc.t_quitc
    339  1.1  cgd # define termSuspCharp		(cc_t *)&nltc.t_suspc
    340  1.1  cgd # define termRprntCharp		(cc_t *)&nltc.t_rprntc
    341  1.1  cgd # define termWerasCharp		(cc_t *)&nltc.t_werasc
    342  1.1  cgd # define termStartCharp		(cc_t *)&ntc.t_startc
    343  1.1  cgd # define termStopCharp		(cc_t *)&ntc.t_stopc
    344  1.1  cgd # define termForw1Charp		(cc_t *)&ntc.t_brkc
    345  1.1  cgd # define termForw2Charp		(cc_t *)&termForw2Char
    346  1.1  cgd # define termAytCharp		(cc_t *)&termAytChar
    347  1.1  cgd 
    348  1.1  cgd # else
    349  1.1  cgd 
    350  1.1  cgd extern struct	termio new_tc;
    351  1.1  cgd 
    352  1.1  cgd # define termEofChar		new_tc.c_cc[VEOF]
    353  1.1  cgd # define termEraseChar		new_tc.c_cc[VERASE]
    354  1.1  cgd # define termIntChar		new_tc.c_cc[VINTR]
    355  1.1  cgd # define termKillChar		new_tc.c_cc[VKILL]
    356  1.1  cgd # define termQuitChar		new_tc.c_cc[VQUIT]
    357  1.1  cgd 
    358  1.1  cgd # ifndef	VSUSP
    359  1.1  cgd extern cc_t termSuspChar;
    360  1.1  cgd # else
    361  1.1  cgd #  define termSuspChar		new_tc.c_cc[VSUSP]
    362  1.1  cgd # endif
    363  1.1  cgd # if	defined(VFLUSHO) && !defined(VDISCARD)
    364  1.1  cgd #  define VDISCARD VFLUSHO
    365  1.1  cgd # endif
    366  1.1  cgd # ifndef	VDISCARD
    367  1.1  cgd extern cc_t termFlushChar;
    368  1.1  cgd # else
    369  1.1  cgd #  define termFlushChar		new_tc.c_cc[VDISCARD]
    370  1.1  cgd # endif
    371  1.1  cgd # ifndef VWERASE
    372  1.1  cgd extern cc_t termWerasChar;
    373  1.1  cgd # else
    374  1.1  cgd #  define termWerasChar		new_tc.c_cc[VWERASE]
    375  1.1  cgd # endif
    376  1.1  cgd # ifndef	VREPRINT
    377  1.1  cgd extern cc_t termRprntChar;
    378  1.1  cgd # else
    379  1.1  cgd #  define termRprntChar		new_tc.c_cc[VREPRINT]
    380  1.1  cgd # endif
    381  1.1  cgd # ifndef	VLNEXT
    382  1.1  cgd extern cc_t termLiteralNextChar;
    383  1.1  cgd # else
    384  1.1  cgd #  define termLiteralNextChar	new_tc.c_cc[VLNEXT]
    385  1.1  cgd # endif
    386  1.1  cgd # ifndef	VSTART
    387  1.1  cgd extern cc_t termStartChar;
    388  1.1  cgd # else
    389  1.1  cgd #  define termStartChar		new_tc.c_cc[VSTART]
    390  1.1  cgd # endif
    391  1.1  cgd # ifndef	VSTOP
    392  1.1  cgd extern cc_t termStopChar;
    393  1.1  cgd # else
    394  1.1  cgd #  define termStopChar		new_tc.c_cc[VSTOP]
    395  1.1  cgd # endif
    396  1.1  cgd # ifndef	VEOL
    397  1.1  cgd extern cc_t termForw1Char;
    398  1.1  cgd # else
    399  1.1  cgd #  define termForw1Char		new_tc.c_cc[VEOL]
    400  1.1  cgd # endif
    401  1.1  cgd # ifndef	VEOL2
    402  1.1  cgd extern cc_t termForw2Char;
    403  1.1  cgd # else
    404  1.1  cgd #  define termForw2Char		new_tc.c_cc[VEOL]
    405  1.1  cgd # endif
    406  1.1  cgd # ifndef	VSTATUS
    407  1.1  cgd extern cc_t termAytChar;
    408  1.1  cgd #else
    409  1.1  cgd #  define termAytChar		new_tc.c_cc[VSTATUS]
    410  1.1  cgd #endif
    411  1.1  cgd 
    412  1.1  cgd # if !defined(CRAY) || defined(__STDC__)
    413  1.1  cgd #  define termEofCharp		&termEofChar
    414  1.1  cgd #  define termEraseCharp	&termEraseChar
    415  1.1  cgd #  define termIntCharp		&termIntChar
    416  1.1  cgd #  define termKillCharp		&termKillChar
    417  1.1  cgd #  define termQuitCharp		&termQuitChar
    418  1.1  cgd #  define termSuspCharp		&termSuspChar
    419  1.1  cgd #  define termFlushCharp	&termFlushChar
    420  1.1  cgd #  define termWerasCharp	&termWerasChar
    421  1.1  cgd #  define termRprntCharp	&termRprntChar
    422  1.1  cgd #  define termLiteralNextCharp	&termLiteralNextChar
    423  1.1  cgd #  define termStartCharp	&termStartChar
    424  1.1  cgd #  define termStopCharp		&termStopChar
    425  1.1  cgd #  define termForw1Charp	&termForw1Char
    426  1.1  cgd #  define termForw2Charp	&termForw2Char
    427  1.1  cgd #  define termAytCharp		&termAytChar
    428  1.1  cgd # else
    429  1.1  cgd 	/* Work around a compiler bug */
    430  1.1  cgd #  define termEofCharp		0
    431  1.1  cgd #  define termEraseCharp	0
    432  1.1  cgd #  define termIntCharp		0
    433  1.1  cgd #  define termKillCharp		0
    434  1.1  cgd #  define termQuitCharp		0
    435  1.1  cgd #  define termSuspCharp		0
    436  1.1  cgd #  define termFlushCharp	0
    437  1.1  cgd #  define termWerasCharp	0
    438  1.1  cgd #  define termRprntCharp	0
    439  1.1  cgd #  define termLiteralNextCharp	0
    440  1.1  cgd #  define termStartCharp	0
    441  1.1  cgd #  define termStopCharp		0
    442  1.1  cgd #  define termForw1Charp	0
    443  1.1  cgd #  define termForw2Charp	0
    444  1.1  cgd #  define termAytCharp		0
    445  1.1  cgd # endif
    446  1.1  cgd #endif
    447  1.1  cgd 
    448  1.1  cgd 
    449  1.1  cgd /* Ring buffer structures which are shared */
    450  1.1  cgd 
    451  1.1  cgd extern Ring
    452  1.1  cgd     netoring,
    453  1.1  cgd     netiring,
    454  1.1  cgd     ttyoring,
    455  1.1  cgd     ttyiring;
    456  1.1  cgd 
    457  1.1  cgd /* Tn3270 section */
    458  1.1  cgd #if	defined(TN3270)
    459  1.1  cgd 
    460  1.1  cgd extern int
    461  1.1  cgd     HaveInput,		/* Whether an asynchronous I/O indication came in */
    462  1.1  cgd     noasynchtty,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    463  1.1  cgd     noasynchnet,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    464  1.1  cgd     sigiocount,		/* Count of SIGIO receptions */
    465  1.1  cgd     shell_active;	/* Subshell is active */
    466  1.1  cgd 
    467  1.1  cgd extern char
    468  1.1  cgd     *Ibackp,		/* Oldest byte of 3270 data */
    469  1.1  cgd     Ibuf[],		/* 3270 buffer */
    470  1.1  cgd     *Ifrontp,		/* Where next 3270 byte goes */
    471  1.1  cgd     tline[],
    472  1.1  cgd     *transcom;		/* Transparent command */
    473  1.1  cgd 
    474  1.3  cgd extern int
    475  1.1  cgd     settranscom P((int, char**));
    476  1.1  cgd 
    477  1.1  cgd extern void
    478  1.3  cgd     inputAvailable P((int));
    479  1.1  cgd #endif	/* defined(TN3270) */
    480