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