Annotation of 43BSDReno/usr.bin/telnet/externs.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1988 Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms are permitted provided
        !             6:  * that: (1) source distributions retain this entire copyright notice and
        !             7:  * comment, and (2) distributions including binaries display the following
        !             8:  * acknowledgement:  ``This product includes software developed by the
        !             9:  * University of California, Berkeley and its contributors'' in the
        !            10:  * documentation or other materials provided with the distribution and in
        !            11:  * all advertising materials mentioning features or use of this software.
        !            12:  * Neither the name of the University nor the names of its contributors may
        !            13:  * be used to endorse or promote products derived from this software without
        !            14:  * specific prior written permission.
        !            15:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            16:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            17:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            18:  *
        !            19:  *     @(#)externs.h   1.25 (Berkeley) 6/28/90
        !            20:  */
        !            21: 
        !            22: #ifndef        BSD
        !            23: # define BSD 43
        !            24: #endif
        !            25: 
        !            26: #if (BSD > 43 || defined(SYSV_TERMIO)) && !defined(USE_TERMIO)
        !            27: # define USE_TERMIO
        !            28: #endif
        !            29: 
        !            30: #include <stdio.h>
        !            31: #include <setjmp.h>
        !            32: #ifndef        FILIO_H
        !            33: #include <sys/ioctl.h>
        !            34: #else
        !            35: #include <sys/filio.h>
        !            36: #endif
        !            37: #ifdef USE_TERMIO
        !            38: # ifndef       VINTR
        !            39: #  ifdef SYSV_TERMIO
        !            40: #   include <sys/termio.h>
        !            41: #  else
        !            42: #   include <sys/termios.h>
        !            43: #   define termio termios
        !            44: #  endif
        !            45: # endif
        !            46: #endif
        !            47: #if defined(NO_CC_T) || !defined(USE_TERMIO)
        !            48: # if !defined(USE_TERMIO)
        !            49: typedef char cc_t;
        !            50: # else
        !            51: typedef unsigned char cc_t;
        !            52: # endif
        !            53: #endif
        !            54: 
        !            55: #define        SUBBUFSIZE      256
        !            56: 
        !            57: extern int errno;              /* outside this world */
        !            58: 
        !            59: extern char
        !            60:     *strcat(),
        !            61:     *strcpy();                 /* outside this world */
        !            62: 
        !            63: extern int
        !            64:     flushout,          /* flush output */
        !            65:     connected,         /* Are we connected to the other side? */
        !            66:     globalmode,                /* Mode tty should be in */
        !            67:     In3270,                    /* Are we in 3270 mode? */
        !            68:     telnetport,                /* Are we connected to the telnet port? */
        !            69:     localflow,         /* Flow control handled locally */
        !            70:     localchars,                /* we recognize interrupt/quit */
        !            71:     donelclchars,              /* the user has set "localchars" */
        !            72:     showoptions,
        !            73:     net,               /* Network file descriptor */
        !            74:     tin,               /* Terminal input file descriptor */
        !            75:     tout,              /* Terminal output file descriptor */
        !            76:     crlf,              /* Should '\r' be mapped to <CR><LF> (or <CR><NUL>)? */
        !            77:     autoflush,         /* flush output when interrupting? */
        !            78:     autosynch,         /* send interrupt characters with SYNCH? */
        !            79:     SYNCHing,          /* Is the stream in telnet SYNCH mode? */
        !            80:     donebinarytoggle,  /* the user has put us in binary */
        !            81:     dontlecho,         /* do we suppress local echoing right now? */
        !            82:     crmod,
        !            83:     netdata,           /* Print out network data flow */
        !            84: #ifdef KERBEROS
        !            85:     kerberized,                /* Try to use Kerberos */
        !            86: #endif
        !            87:     prettydump,                /* Print "netdata" output in user readable format */
        !            88: #if    defined(unix)
        !            89: #if    defined(TN3270)
        !            90:     cursesdata,                /* Print out curses data flow */
        !            91:     apitrace,          /* Trace API transactions */
        !            92: #endif /* defined(TN3270) */
        !            93:     termdata,          /* Print out terminal data flow */
        !            94: #endif /* defined(unix) */
        !            95:     debug;                     /* Debug level */
        !            96: 
        !            97: extern cc_t escape;    /* Escape to command mode */
        !            98: #ifdef KLUDGELINEMODE
        !            99: extern cc_t echoc;     /* Toggle local echoing */
        !           100: #endif
        !           101: 
        !           102: extern char
        !           103:     *prompt;           /* Prompt for command. */
        !           104: 
        !           105: extern char
        !           106:     doopt[],
        !           107:     dont[],
        !           108:     will[],
        !           109:     wont[],
        !           110:     options[],         /* All the little options */
        !           111:     *hostname;         /* Who are we connected to? */
        !           112: 
        !           113: /*
        !           114:  * We keep track of each side of the option negotiation.
        !           115:  */
        !           116: 
        !           117: #define        MY_STATE_WILL           0x01
        !           118: #define        MY_WANT_STATE_WILL      0x02
        !           119: #define        MY_STATE_DO             0x04
        !           120: #define        MY_WANT_STATE_DO        0x08
        !           121: 
        !           122: /*
        !           123:  * Macros to check the current state of things
        !           124:  */
        !           125: 
        !           126: #define        my_state_is_do(opt)             (options[opt]&MY_STATE_DO)
        !           127: #define        my_state_is_will(opt)           (options[opt]&MY_STATE_WILL)
        !           128: #define my_want_state_is_do(opt)       (options[opt]&MY_WANT_STATE_DO)
        !           129: #define my_want_state_is_will(opt)     (options[opt]&MY_WANT_STATE_WILL)
        !           130: 
        !           131: #define        my_state_is_dont(opt)           (!my_state_is_do(opt))
        !           132: #define        my_state_is_wont(opt)           (!my_state_is_will(opt))
        !           133: #define my_want_state_is_dont(opt)     (!my_want_state_is_do(opt))
        !           134: #define my_want_state_is_wont(opt)     (!my_want_state_is_will(opt))
        !           135: 
        !           136: #define        set_my_state_do(opt)            {options[opt] |= MY_STATE_DO;}
        !           137: #define        set_my_state_will(opt)          {options[opt] |= MY_STATE_WILL;}
        !           138: #define        set_my_want_state_do(opt)       {options[opt] |= MY_WANT_STATE_DO;}
        !           139: #define        set_my_want_state_will(opt)     {options[opt] |= MY_WANT_STATE_WILL;}
        !           140: 
        !           141: #define        set_my_state_dont(opt)          {options[opt] &= ~MY_STATE_DO;}
        !           142: #define        set_my_state_wont(opt)          {options[opt] &= ~MY_STATE_WILL;}
        !           143: #define        set_my_want_state_dont(opt)     {options[opt] &= ~MY_WANT_STATE_DO;}
        !           144: #define        set_my_want_state_wont(opt)     {options[opt] &= ~MY_WANT_STATE_WILL;}
        !           145: 
        !           146: /*
        !           147:  * Make everything symetrical
        !           148:  */
        !           149: 
        !           150: #define        HIS_STATE_WILL                  MY_STATE_DO
        !           151: #define        HIS_WANT_STATE_WILL             MY_WANT_STATE_DO
        !           152: #define HIS_STATE_DO                   MY_STATE_WILL
        !           153: #define HIS_WANT_STATE_DO              MY_WANT_STATE_WILL
        !           154: 
        !           155: #define        his_state_is_do                 my_state_is_will
        !           156: #define        his_state_is_will               my_state_is_do
        !           157: #define his_want_state_is_do           my_want_state_is_will
        !           158: #define his_want_state_is_will         my_want_state_is_do
        !           159: 
        !           160: #define        his_state_is_dont               my_state_is_wont
        !           161: #define        his_state_is_wont               my_state_is_dont
        !           162: #define his_want_state_is_dont         my_want_state_is_wont
        !           163: #define his_want_state_is_wont         my_want_state_is_dont
        !           164: 
        !           165: #define        set_his_state_do                set_my_state_will
        !           166: #define        set_his_state_will              set_my_state_do
        !           167: #define        set_his_want_state_do           set_my_want_state_will
        !           168: #define        set_his_want_state_will         set_my_want_state_do
        !           169: 
        !           170: #define        set_his_state_dont              set_my_state_wont
        !           171: #define        set_his_state_wont              set_my_state_dont
        !           172: #define        set_his_want_state_dont         set_my_want_state_wont
        !           173: #define        set_his_want_state_wont         set_my_want_state_dont
        !           174: 
        !           175: 
        !           176: extern FILE
        !           177:     *NetTrace;         /* Where debugging output goes */
        !           178: extern unsigned char
        !           179:     NetTraceFile[];    /* Name of file where debugging output goes */
        !           180: extern void
        !           181:     SetNetTrace();     /* Function to change where debugging goes */
        !           182: 
        !           183: extern jmp_buf
        !           184:     peerdied,
        !           185:     toplevel;          /* For error conditions. */
        !           186: 
        !           187: extern void
        !           188:     command(),
        !           189: #if    !defined(NOT43)
        !           190:     dosynch(),
        !           191: #endif /* !defined(NOT43) */
        !           192:     get_status(),
        !           193:     Dump(),
        !           194:     init_3270(),
        !           195:     printoption(),
        !           196:     printsub(),
        !           197:     sendnaws(),
        !           198:     setconnmode(),
        !           199:     setcommandmode(),
        !           200:     setneturg(),
        !           201:     sys_telnet_init(),
        !           202:     telnet(),
        !           203:     TerminalFlushOutput(),
        !           204:     TerminalNewMode(),
        !           205:     TerminalRestoreState(),
        !           206:     TerminalSaveState(),
        !           207:     tninit(),
        !           208:     upcase(),
        !           209:     willoption(),
        !           210:     wontoption();
        !           211: 
        !           212: #if    defined(NOT43)
        !           213: extern int
        !           214:     dosynch();
        !           215: #endif /* defined(NOT43) */
        !           216: 
        !           217: #ifndef        USE_TERMIO
        !           218: 
        !           219: extern struct  tchars ntc;
        !           220: extern struct  ltchars nltc;
        !           221: extern struct  sgttyb nttyb;
        !           222: 
        !           223: # define termEofChar           ntc.t_eofc
        !           224: # define termEraseChar         nttyb.sg_erase
        !           225: # define termFlushChar         nltc.t_flushc
        !           226: # define termIntChar           ntc.t_intrc
        !           227: # define termKillChar          nttyb.sg_kill
        !           228: # define termLiteralNextChar   nltc.t_lnextc
        !           229: # define termQuitChar          ntc.t_quitc
        !           230: # define termSuspChar          nltc.t_suspc
        !           231: # define termRprntChar         nltc.t_rprntc
        !           232: # define termWerasChar         nltc.t_werasc
        !           233: # define termStartChar         ntc.t_startc
        !           234: # define termStopChar          ntc.t_stopc
        !           235: # define termForw1Char         ntc.t_brkc
        !           236: extern cc_t termForw2Char;
        !           237: 
        !           238: # define termEofCharp          (cc_t *)&ntc.t_eofc
        !           239: # define termEraseCharp                (cc_t *)&nttyb.sg_erase
        !           240: # define termFlushCharp                (cc_t *)&nltc.t_flushc
        !           241: # define termIntCharp          (cc_t *)&ntc.t_intrc
        !           242: # define termKillCharp         (cc_t *)&nttyb.sg_kill
        !           243: # define termLiteralNextCharp  (cc_t *)&nltc.t_lnextc
        !           244: # define termQuitCharp         (cc_t *)&ntc.t_quitc
        !           245: # define termSuspCharp         (cc_t *)&nltc.t_suspc
        !           246: # define termRprntCharp                (cc_t *)&nltc.t_rprntc
        !           247: # define termWerasCharp                (cc_t *)&nltc.t_werasc
        !           248: # define termStartCharp                (cc_t *)&ntc.t_startc
        !           249: # define termStopCharp         (cc_t *)&ntc.t_stopc
        !           250: # define termForw1Charp                (cc_t *)&ntc.t_brkc
        !           251: # define termForw2Charp                (cc_t *)&termForw2Char
        !           252: 
        !           253: # else
        !           254: 
        !           255: extern struct  termio new_tc;
        !           256: 
        !           257: # define termEofChar           new_tc.c_cc[VEOF]
        !           258: # define termEraseChar         new_tc.c_cc[VERASE]
        !           259: # define termIntChar           new_tc.c_cc[VINTR]
        !           260: # define termKillChar          new_tc.c_cc[VKILL]
        !           261: # define termQuitChar          new_tc.c_cc[VQUIT]
        !           262: 
        !           263: # ifndef       VSUSP
        !           264: extern cc_t termSuspChar;
        !           265: # else
        !           266: #  define termSuspChar         new_tc.c_cc[VSUSP]
        !           267: # endif
        !           268: # if   !defined(VFLUSHO) && defined(VDISCARD)
        !           269: #  define VFLUSHO VDISCARD
        !           270: # endif
        !           271: # ifndef       VFLUSHO
        !           272: extern cc_t termFlushChar;
        !           273: # else
        !           274: #  define termFlushChar                new_tc.c_cc[VFLUSHO]
        !           275: # endif
        !           276: # ifndef VWERASE
        !           277: extern cc_t termWerasChar;
        !           278: # else
        !           279: #  define termWerasChar                new_tc.c_cc[VWERASE]
        !           280: # endif
        !           281: # ifndef       VREPRINT
        !           282: extern cc_t termRprntChar;
        !           283: # else
        !           284: #  define termRprntChar                new_tc.c_cc[VREPRINT]
        !           285: # endif
        !           286: # ifndef       VLNEXT
        !           287: extern cc_t termLiteralNextChar;
        !           288: # else
        !           289: #  define termLiteralNextChar  new_tc.c_cc[VLNEXT]
        !           290: # endif
        !           291: # ifndef       VSTART
        !           292: extern cc_t termStartChar;
        !           293: # else
        !           294: #  define termStartChar                new_tc.c_cc[VSTART]
        !           295: # endif
        !           296: # ifndef       VSTOP
        !           297: extern cc_t termStopChar;
        !           298: # else
        !           299: #  define termStopChar         new_tc.c_cc[VSTOP]
        !           300: # endif
        !           301: # ifndef       VEOL
        !           302: extern cc_t termForw1Char;
        !           303: # else
        !           304: #  define termForw1Char                new_tc.c_cc[VEOL]
        !           305: # endif
        !           306: # ifndef       VEOL2
        !           307: extern cc_t termForw2Char;
        !           308: # else
        !           309: #  define termForw2Char                new_tc.c_cc[VEOL]
        !           310: # endif
        !           311: 
        !           312: # ifndef CRAY
        !           313: #  define termEofCharp         &termEofChar
        !           314: #  define termEraseCharp       &termEraseChar
        !           315: #  define termIntCharp         &termIntChar
        !           316: #  define termKillCharp                &termKillChar
        !           317: #  define termQuitCharp                &termQuitChar
        !           318: #  define termSuspCharp                &termSuspChar
        !           319: #  define termFlushCharp       &termFlushChar
        !           320: #  define termWerasCharp       &termWerasChar
        !           321: #  define termRprntCharp       &termRprntChar
        !           322: #  define termLiteralNextCharp &termLiteralNextChar
        !           323: #  define termStartCharp       &termStartChar
        !           324: #  define termStopCharp                &termStopChar
        !           325: #  define termForw1Charp       &termForw1Char
        !           326: #  define termForw2Charp       &termForw2Char
        !           327: # else
        !           328:        /* Work around a compiler bug */
        !           329: #  define termEofCharp         0
        !           330: #  define termEraseCharp       0
        !           331: #  define termIntCharp         0
        !           332: #  define termKillCharp                0
        !           333: #  define termQuitCharp                0
        !           334: #  define termSuspCharp                0
        !           335: #  define termFlushCharp       0
        !           336: #  define termWerasCharp       0
        !           337: #  define termRprntCharp       0
        !           338: #  define termLiteralNextCharp 0
        !           339: #  define termStartCharp       0
        !           340: #  define termStopCharp                0
        !           341: #  define termForw1Charp       0
        !           342: #  define termForw2Charp       0
        !           343: # endif
        !           344: #endif
        !           345: 
        !           346: 
        !           347: /* Ring buffer structures which are shared */
        !           348: 
        !           349: extern Ring
        !           350:     netoring,
        !           351:     netiring,
        !           352:     ttyoring,
        !           353:     ttyiring;
        !           354: 
        !           355: /* Tn3270 section */
        !           356: #if    defined(TN3270)
        !           357: 
        !           358: extern int
        !           359:     HaveInput,         /* Whether an asynchronous I/O indication came in */
        !           360:     noasynchtty,       /* Don't do signals on I/O (SIGURG, SIGIO) */
        !           361:     noasynchnet,       /* Don't do signals on I/O (SIGURG, SIGIO) */
        !           362:     sigiocount,                /* Count of SIGIO receptions */
        !           363:     shell_active;      /* Subshell is active */
        !           364: 
        !           365: extern char
        !           366:     *Ibackp,           /* Oldest byte of 3270 data */
        !           367:     Ibuf[],            /* 3270 buffer */
        !           368:     *Ifrontp,          /* Where next 3270 byte goes */
        !           369:     tline[],
        !           370:     *transcom;         /* Transparent command */
        !           371: 
        !           372: extern int
        !           373:     settranscom();
        !           374: 
        !           375: extern void
        !           376:     inputAvailable();
        !           377: #endif /* defined(TN3270) */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.