[BACK]Return to externs.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / telnet

Annotation of src/usr.bin/telnet/externs.h, Revision 1.1

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