Home | History | Annotate | Line # | Download | only in telnet
externs.h revision 1.6
      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.6  jtk  *	$NetBSD: externs.h,v 1.6 1996/02/24 01:18:36 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.6  jtk     debug;		/* Debug level */
    146  1.1  cgd 
    147  1.1  cgd extern cc_t escape;	/* Escape to command mode */
    148  1.1  cgd extern cc_t rlogin;	/* Rlogin mode escape character */
    149  1.1  cgd #ifdef	KLUDGELINEMODE
    150  1.1  cgd extern cc_t echoc;	/* Toggle local echoing */
    151  1.1  cgd #endif
    152  1.1  cgd 
    153  1.1  cgd extern char
    154  1.1  cgd     *prompt;		/* Prompt for command. */
    155  1.1  cgd 
    156  1.1  cgd extern char
    157  1.1  cgd     doopt[],
    158  1.1  cgd     dont[],
    159  1.1  cgd     will[],
    160  1.1  cgd     wont[],
    161  1.1  cgd     options[],		/* All the little options */
    162  1.1  cgd     *hostname;		/* Who are we connected to? */
    163  1.1  cgd 
    164  1.1  cgd /*
    165  1.1  cgd  * We keep track of each side of the option negotiation.
    166  1.1  cgd  */
    167  1.1  cgd 
    168  1.1  cgd #define	MY_STATE_WILL		0x01
    169  1.1  cgd #define	MY_WANT_STATE_WILL	0x02
    170  1.1  cgd #define	MY_STATE_DO		0x04
    171  1.1  cgd #define	MY_WANT_STATE_DO	0x08
    172  1.1  cgd 
    173  1.1  cgd /*
    174  1.1  cgd  * Macros to check the current state of things
    175  1.1  cgd  */
    176  1.1  cgd 
    177  1.1  cgd #define	my_state_is_do(opt)		(options[opt]&MY_STATE_DO)
    178  1.1  cgd #define	my_state_is_will(opt)		(options[opt]&MY_STATE_WILL)
    179  1.1  cgd #define my_want_state_is_do(opt)	(options[opt]&MY_WANT_STATE_DO)
    180  1.1  cgd #define my_want_state_is_will(opt)	(options[opt]&MY_WANT_STATE_WILL)
    181  1.1  cgd 
    182  1.1  cgd #define	my_state_is_dont(opt)		(!my_state_is_do(opt))
    183  1.1  cgd #define	my_state_is_wont(opt)		(!my_state_is_will(opt))
    184  1.1  cgd #define my_want_state_is_dont(opt)	(!my_want_state_is_do(opt))
    185  1.1  cgd #define my_want_state_is_wont(opt)	(!my_want_state_is_will(opt))
    186  1.1  cgd 
    187  1.1  cgd #define	set_my_state_do(opt)		{options[opt] |= MY_STATE_DO;}
    188  1.1  cgd #define	set_my_state_will(opt)		{options[opt] |= MY_STATE_WILL;}
    189  1.1  cgd #define	set_my_want_state_do(opt)	{options[opt] |= MY_WANT_STATE_DO;}
    190  1.1  cgd #define	set_my_want_state_will(opt)	{options[opt] |= MY_WANT_STATE_WILL;}
    191  1.1  cgd 
    192  1.1  cgd #define	set_my_state_dont(opt)		{options[opt] &= ~MY_STATE_DO;}
    193  1.1  cgd #define	set_my_state_wont(opt)		{options[opt] &= ~MY_STATE_WILL;}
    194  1.1  cgd #define	set_my_want_state_dont(opt)	{options[opt] &= ~MY_WANT_STATE_DO;}
    195  1.1  cgd #define	set_my_want_state_wont(opt)	{options[opt] &= ~MY_WANT_STATE_WILL;}
    196  1.1  cgd 
    197  1.1  cgd /*
    198  1.1  cgd  * Make everything symetrical
    199  1.1  cgd  */
    200  1.1  cgd 
    201  1.1  cgd #define	HIS_STATE_WILL			MY_STATE_DO
    202  1.1  cgd #define	HIS_WANT_STATE_WILL		MY_WANT_STATE_DO
    203  1.1  cgd #define HIS_STATE_DO			MY_STATE_WILL
    204  1.1  cgd #define HIS_WANT_STATE_DO		MY_WANT_STATE_WILL
    205  1.1  cgd 
    206  1.1  cgd #define	his_state_is_do			my_state_is_will
    207  1.1  cgd #define	his_state_is_will		my_state_is_do
    208  1.1  cgd #define his_want_state_is_do		my_want_state_is_will
    209  1.1  cgd #define his_want_state_is_will		my_want_state_is_do
    210  1.1  cgd 
    211  1.1  cgd #define	his_state_is_dont		my_state_is_wont
    212  1.1  cgd #define	his_state_is_wont		my_state_is_dont
    213  1.1  cgd #define his_want_state_is_dont		my_want_state_is_wont
    214  1.1  cgd #define his_want_state_is_wont		my_want_state_is_dont
    215  1.1  cgd 
    216  1.1  cgd #define	set_his_state_do		set_my_state_will
    217  1.1  cgd #define	set_his_state_will		set_my_state_do
    218  1.1  cgd #define	set_his_want_state_do		set_my_want_state_will
    219  1.1  cgd #define	set_his_want_state_will		set_my_want_state_do
    220  1.1  cgd 
    221  1.1  cgd #define	set_his_state_dont		set_my_state_wont
    222  1.1  cgd #define	set_his_state_wont		set_my_state_dont
    223  1.1  cgd #define	set_his_want_state_dont		set_my_want_state_wont
    224  1.1  cgd #define	set_his_want_state_wont		set_my_want_state_dont
    225  1.1  cgd 
    226  1.1  cgd 
    227  1.1  cgd extern FILE
    228  1.1  cgd     *NetTrace;		/* Where debugging output goes */
    229  1.1  cgd extern unsigned char
    230  1.1  cgd     NetTraceFile[];	/* Name of file where debugging output goes */
    231  1.1  cgd extern void
    232  1.1  cgd     SetNetTrace P((char *));	/* Function to change where debugging goes */
    233  1.1  cgd 
    234  1.1  cgd extern jmp_buf
    235  1.1  cgd     peerdied,
    236  1.1  cgd     toplevel;		/* For error conditions. */
    237  1.1  cgd 
    238  1.1  cgd extern void
    239  1.1  cgd     command P((int, char *, int)),
    240  1.1  cgd     Dump P((int, unsigned char *, int)),
    241  1.1  cgd     init_3270 P((void)),
    242  1.1  cgd     printoption P((char *, int, int)),
    243  1.1  cgd     printsub P((int, unsigned char *, int)),
    244  1.1  cgd     sendnaws P((void)),
    245  1.1  cgd     setconnmode P((int)),
    246  1.1  cgd     setcommandmode P((void)),
    247  1.1  cgd     setneturg P((void)),
    248  1.1  cgd     sys_telnet_init P((void)),
    249  1.1  cgd     telnet P((char *)),
    250  1.1  cgd     tel_enter_binary P((int)),
    251  1.1  cgd     TerminalFlushOutput P((void)),
    252  1.1  cgd     TerminalNewMode P((int)),
    253  1.1  cgd     TerminalRestoreState P((void)),
    254  1.1  cgd     TerminalSaveState P((void)),
    255  1.1  cgd     tninit P((void)),
    256  1.1  cgd     upcase P((char *)),
    257  1.1  cgd     willoption P((int)),
    258  1.1  cgd     wontoption P((int));
    259  1.1  cgd 
    260  1.1  cgd extern void
    261  1.3  cgd     send_do P((int, int)),
    262  1.3  cgd     send_dont P((int, int)),
    263  1.3  cgd     send_will P((int, int)),
    264  1.3  cgd     send_wont P((int, int));
    265  1.3  cgd 
    266  1.3  cgd extern void
    267  1.1  cgd     lm_will P((unsigned char *, int)),
    268  1.1  cgd     lm_wont P((unsigned char *, int)),
    269  1.1  cgd     lm_do P((unsigned char *, int)),
    270  1.1  cgd     lm_dont P((unsigned char *, int)),
    271  1.1  cgd     lm_mode P((unsigned char *, int, int));
    272  1.1  cgd 
    273  1.1  cgd extern void
    274  1.1  cgd     slc_init P((void)),
    275  1.1  cgd     slcstate P((void)),
    276  1.1  cgd     slc_mode_export P((void)),
    277  1.1  cgd     slc_mode_import P((int)),
    278  1.1  cgd     slc_import P((int)),
    279  1.1  cgd     slc_export P((void)),
    280  1.1  cgd     slc P((unsigned char *, int)),
    281  1.1  cgd     slc_check P((void)),
    282  1.1  cgd     slc_start_reply P((void)),
    283  1.1  cgd     slc_add_reply P((int, int, int)),
    284  1.1  cgd     slc_end_reply P((void));
    285  1.1  cgd extern int
    286  1.1  cgd     slc_update P((void));
    287  1.1  cgd 
    288  1.1  cgd extern void
    289  1.1  cgd     env_opt P((unsigned char *, int)),
    290  1.1  cgd     env_opt_start P((void)),
    291  1.1  cgd     env_opt_start_info P((void)),
    292  1.1  cgd     env_opt_add P((unsigned char *)),
    293  1.1  cgd     env_opt_end P((int));
    294  1.1  cgd 
    295  1.1  cgd extern unsigned char
    296  1.3  cgd     *env_default P((int, int)),
    297  1.1  cgd     *env_getvalue P((unsigned char *));
    298  1.1  cgd 
    299  1.1  cgd extern int
    300  1.1  cgd     get_status P((void)),
    301  1.1  cgd     dosynch P((void));
    302  1.1  cgd 
    303  1.1  cgd extern cc_t
    304  1.1  cgd     *tcval P((int));
    305  1.1  cgd 
    306  1.1  cgd #ifndef	USE_TERMIO
    307  1.1  cgd 
    308  1.1  cgd extern struct	tchars ntc;
    309  1.1  cgd extern struct	ltchars nltc;
    310  1.1  cgd extern struct	sgttyb nttyb;
    311  1.1  cgd 
    312  1.1  cgd # define termEofChar		ntc.t_eofc
    313  1.1  cgd # define termEraseChar		nttyb.sg_erase
    314  1.1  cgd # define termFlushChar		nltc.t_flushc
    315  1.1  cgd # define termIntChar		ntc.t_intrc
    316  1.1  cgd # define termKillChar		nttyb.sg_kill
    317  1.1  cgd # define termLiteralNextChar	nltc.t_lnextc
    318  1.1  cgd # define termQuitChar		ntc.t_quitc
    319  1.1  cgd # define termSuspChar		nltc.t_suspc
    320  1.1  cgd # define termRprntChar		nltc.t_rprntc
    321  1.1  cgd # define termWerasChar		nltc.t_werasc
    322  1.1  cgd # define termStartChar		ntc.t_startc
    323  1.1  cgd # define termStopChar		ntc.t_stopc
    324  1.1  cgd # define termForw1Char		ntc.t_brkc
    325  1.1  cgd extern cc_t termForw2Char;
    326  1.1  cgd extern cc_t termAytChar;
    327  1.1  cgd 
    328  1.1  cgd # define termEofCharp		(cc_t *)&ntc.t_eofc
    329  1.1  cgd # define termEraseCharp		(cc_t *)&nttyb.sg_erase
    330  1.1  cgd # define termFlushCharp		(cc_t *)&nltc.t_flushc
    331  1.1  cgd # define termIntCharp		(cc_t *)&ntc.t_intrc
    332  1.1  cgd # define termKillCharp		(cc_t *)&nttyb.sg_kill
    333  1.1  cgd # define termLiteralNextCharp	(cc_t *)&nltc.t_lnextc
    334  1.1  cgd # define termQuitCharp		(cc_t *)&ntc.t_quitc
    335  1.1  cgd # define termSuspCharp		(cc_t *)&nltc.t_suspc
    336  1.1  cgd # define termRprntCharp		(cc_t *)&nltc.t_rprntc
    337  1.1  cgd # define termWerasCharp		(cc_t *)&nltc.t_werasc
    338  1.1  cgd # define termStartCharp		(cc_t *)&ntc.t_startc
    339  1.1  cgd # define termStopCharp		(cc_t *)&ntc.t_stopc
    340  1.1  cgd # define termForw1Charp		(cc_t *)&ntc.t_brkc
    341  1.1  cgd # define termForw2Charp		(cc_t *)&termForw2Char
    342  1.1  cgd # define termAytCharp		(cc_t *)&termAytChar
    343  1.1  cgd 
    344  1.1  cgd # else
    345  1.1  cgd 
    346  1.1  cgd extern struct	termio new_tc;
    347  1.1  cgd 
    348  1.1  cgd # define termEofChar		new_tc.c_cc[VEOF]
    349  1.1  cgd # define termEraseChar		new_tc.c_cc[VERASE]
    350  1.1  cgd # define termIntChar		new_tc.c_cc[VINTR]
    351  1.1  cgd # define termKillChar		new_tc.c_cc[VKILL]
    352  1.1  cgd # define termQuitChar		new_tc.c_cc[VQUIT]
    353  1.1  cgd 
    354  1.1  cgd # ifndef	VSUSP
    355  1.1  cgd extern cc_t termSuspChar;
    356  1.1  cgd # else
    357  1.1  cgd #  define termSuspChar		new_tc.c_cc[VSUSP]
    358  1.1  cgd # endif
    359  1.1  cgd # if	defined(VFLUSHO) && !defined(VDISCARD)
    360  1.1  cgd #  define VDISCARD VFLUSHO
    361  1.1  cgd # endif
    362  1.1  cgd # ifndef	VDISCARD
    363  1.1  cgd extern cc_t termFlushChar;
    364  1.1  cgd # else
    365  1.1  cgd #  define termFlushChar		new_tc.c_cc[VDISCARD]
    366  1.1  cgd # endif
    367  1.1  cgd # ifndef VWERASE
    368  1.1  cgd extern cc_t termWerasChar;
    369  1.1  cgd # else
    370  1.1  cgd #  define termWerasChar		new_tc.c_cc[VWERASE]
    371  1.1  cgd # endif
    372  1.1  cgd # ifndef	VREPRINT
    373  1.1  cgd extern cc_t termRprntChar;
    374  1.1  cgd # else
    375  1.1  cgd #  define termRprntChar		new_tc.c_cc[VREPRINT]
    376  1.1  cgd # endif
    377  1.1  cgd # ifndef	VLNEXT
    378  1.1  cgd extern cc_t termLiteralNextChar;
    379  1.1  cgd # else
    380  1.1  cgd #  define termLiteralNextChar	new_tc.c_cc[VLNEXT]
    381  1.1  cgd # endif
    382  1.1  cgd # ifndef	VSTART
    383  1.1  cgd extern cc_t termStartChar;
    384  1.1  cgd # else
    385  1.1  cgd #  define termStartChar		new_tc.c_cc[VSTART]
    386  1.1  cgd # endif
    387  1.1  cgd # ifndef	VSTOP
    388  1.1  cgd extern cc_t termStopChar;
    389  1.1  cgd # else
    390  1.1  cgd #  define termStopChar		new_tc.c_cc[VSTOP]
    391  1.1  cgd # endif
    392  1.1  cgd # ifndef	VEOL
    393  1.1  cgd extern cc_t termForw1Char;
    394  1.1  cgd # else
    395  1.1  cgd #  define termForw1Char		new_tc.c_cc[VEOL]
    396  1.1  cgd # endif
    397  1.1  cgd # ifndef	VEOL2
    398  1.1  cgd extern cc_t termForw2Char;
    399  1.1  cgd # else
    400  1.1  cgd #  define termForw2Char		new_tc.c_cc[VEOL]
    401  1.1  cgd # endif
    402  1.1  cgd # ifndef	VSTATUS
    403  1.1  cgd extern cc_t termAytChar;
    404  1.1  cgd #else
    405  1.1  cgd #  define termAytChar		new_tc.c_cc[VSTATUS]
    406  1.1  cgd #endif
    407  1.1  cgd 
    408  1.1  cgd # if !defined(CRAY) || defined(__STDC__)
    409  1.1  cgd #  define termEofCharp		&termEofChar
    410  1.1  cgd #  define termEraseCharp	&termEraseChar
    411  1.1  cgd #  define termIntCharp		&termIntChar
    412  1.1  cgd #  define termKillCharp		&termKillChar
    413  1.1  cgd #  define termQuitCharp		&termQuitChar
    414  1.1  cgd #  define termSuspCharp		&termSuspChar
    415  1.1  cgd #  define termFlushCharp	&termFlushChar
    416  1.1  cgd #  define termWerasCharp	&termWerasChar
    417  1.1  cgd #  define termRprntCharp	&termRprntChar
    418  1.1  cgd #  define termLiteralNextCharp	&termLiteralNextChar
    419  1.1  cgd #  define termStartCharp	&termStartChar
    420  1.1  cgd #  define termStopCharp		&termStopChar
    421  1.1  cgd #  define termForw1Charp	&termForw1Char
    422  1.1  cgd #  define termForw2Charp	&termForw2Char
    423  1.1  cgd #  define termAytCharp		&termAytChar
    424  1.1  cgd # else
    425  1.1  cgd 	/* Work around a compiler bug */
    426  1.1  cgd #  define termEofCharp		0
    427  1.1  cgd #  define termEraseCharp	0
    428  1.1  cgd #  define termIntCharp		0
    429  1.1  cgd #  define termKillCharp		0
    430  1.1  cgd #  define termQuitCharp		0
    431  1.1  cgd #  define termSuspCharp		0
    432  1.1  cgd #  define termFlushCharp	0
    433  1.1  cgd #  define termWerasCharp	0
    434  1.1  cgd #  define termRprntCharp	0
    435  1.1  cgd #  define termLiteralNextCharp	0
    436  1.1  cgd #  define termStartCharp	0
    437  1.1  cgd #  define termStopCharp		0
    438  1.1  cgd #  define termForw1Charp	0
    439  1.1  cgd #  define termForw2Charp	0
    440  1.1  cgd #  define termAytCharp		0
    441  1.1  cgd # endif
    442  1.1  cgd #endif
    443  1.1  cgd 
    444  1.1  cgd 
    445  1.1  cgd /* Ring buffer structures which are shared */
    446  1.1  cgd 
    447  1.1  cgd extern Ring
    448  1.1  cgd     netoring,
    449  1.1  cgd     netiring,
    450  1.1  cgd     ttyoring,
    451  1.1  cgd     ttyiring;
    452  1.1  cgd 
    453  1.1  cgd /* Tn3270 section */
    454  1.1  cgd #if	defined(TN3270)
    455  1.1  cgd 
    456  1.1  cgd extern int
    457  1.1  cgd     HaveInput,		/* Whether an asynchronous I/O indication came in */
    458  1.1  cgd     noasynchtty,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    459  1.1  cgd     noasynchnet,	/* Don't do signals on I/O (SIGURG, SIGIO) */
    460  1.1  cgd     sigiocount,		/* Count of SIGIO receptions */
    461  1.1  cgd     shell_active;	/* Subshell is active */
    462  1.1  cgd 
    463  1.1  cgd extern char
    464  1.1  cgd     *Ibackp,		/* Oldest byte of 3270 data */
    465  1.1  cgd     Ibuf[],		/* 3270 buffer */
    466  1.1  cgd     *Ifrontp,		/* Where next 3270 byte goes */
    467  1.1  cgd     tline[],
    468  1.1  cgd     *transcom;		/* Transparent command */
    469  1.1  cgd 
    470  1.3  cgd extern int
    471  1.1  cgd     settranscom P((int, char**));
    472  1.1  cgd 
    473  1.1  cgd extern void
    474  1.3  cgd     inputAvailable P((int));
    475  1.1  cgd #endif	/* defined(TN3270) */
    476