Annotation of coherent/f/usr/include/sys/ktty.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Kernel portion of typewriter structure.
                      3:  */
                      4: #ifndef         __SYS_KTTY_H__
                      5: #define         __SYS_KTTY_H__
                      6: 
                      7: #include <common/feature.h>
                      8: #include <kernel/timeout.h>
                      9: #include <sys/types.h>
                     10: #include <sys/poll.h>
                     11: #include <sys/clist.h>
                     12: #include <sgtty.h>
                     13: #if    _I386
                     14: #include <termio.h>
                     15: #endif
                     16: 
                     17: #define        NCIB    256             /* Input buffer */
                     18: #define        OHILIM  128             /* Output buffer hi water mark */
                     19: #define        OLOLIM  40              /* Output buffer lo water mark */
                     20: #define        IHILIM  512             /* Input buffer hi water mark */
                     21: #define        ILOLIM  40              /* Input buffer lo water mark */
                     22: #define        ITSLIM  (IHILIM-(IHILIM/4))     /* Input buffer tandem stop mark */
                     23: #define        ESC     '\\'            /* Some characters */
                     24: 
                     25: typedef struct tty {
                     26:        CQUEUE  t_oq;           /* Output queue */
                     27:        CQUEUE  t_iq;           /* Input queue */
                     28:        char    *t_ddp;         /* Device specific */
                     29:        int     (*t_start)();   /* Start function */
                     30:        int     (*t_param)();   /* Load parameters function */
                     31:        char    t_dispeed;      /* Default input speed */
                     32:        char    t_dospeed;      /* Default output speed */
                     33:        int     t_open;         /* Open count */
                     34:        int     t_flags;        /* Flags */
                     35:        char    t_nfill;        /* Number of fill characters */
                     36:        char    t_fillb;        /* The fill character */
                     37:        int     t_ibx;          /* Input buffer index */
                     38:        char    t_ib[NCIB];     /* Input buffer */
                     39:        int     t_hpos;         /* Horizontal position */
                     40:        int     t_opos;         /* Original horizontal position */
                     41:        struct  sgttyb t_sgttyb;/* Stty/gtty information */
                     42:        struct  tchars t_tchars;/* Tchars information */
                     43: #if    _I386
                     44:        struct  termio t_termio;
                     45: #endif
                     46:        int     t_group;        /* Process group */
                     47:        int     t_escape;       /* Pending escape count */
                     48:        event_t t_ipolls;       /* List of input polls enabled on device */
                     49:        event_t t_opolls;       /* List of output polls enabled on device */
                     50:        TIM     t_rawtim;       /* Raw timing struct */
                     51:        int     t_cs_sel;       /* 0 for resident drivers, CS for loadable */
                     52: #if    _I386
                     53:        TIM     t_vtime;        /* VTIME timing struct */
                     54:        TIM     t_sbrk;         /* TCSBRK timing struct */
                     55: #endif
                     56: } TTY;
                     57: 
                     58: /*
                     59:  * Test macros for various conditions related to the terminal settings; the
                     60:  * tests are related to conditions at the granularity of the System V modes,
                     61:  * so for Coherent-286 the conditions are synthesized from the old V7 modes.
                     62:  */
                     63: 
                     64: #define        _IS_BREAK_CHAR(tp,c)    ((tp)->t_tchars.t_brkc == (c))
                     65: 
                     66: /*
                     67:  * The following are not part of S5 sgtty.
                     68:  */
                     69: 
                     70: #define        _IS_RAW_INPUT_MODE(tp)  (((tp)->t_sgttyb.sg_flags & RAWIN) != 0)
                     71: #define        _IS_CRT_MODE(tp)        (((tp)->t_sgttyb.sg_flags & CRT) != 0)
                     72: 
                     73: #if    _I386
                     74: 
                     75: #define        _IS_EOF_CHAR(tp,c)      ((tp)->t_termio.c_cc [VEOF] == (c))
                     76: #define        _IS_ERASE_CHAR(tp,c)    ((tp)->t_termio.c_cc [VERASE] == (c))
                     77: #define        _IS_INTERRUPT_CHAR(tp,c) \
                     78:                                ((tp)->t_termio.c_cc [VINTR] == (c))
                     79: #define        _IS_KILL_CHAR(tp,c)     ((tp)->t_termio.c_cc [VKILL] == (c))
                     80: #define        _IS_QUIT_CHAR(tp,c)     ((tp)->t_termio.c_cc [VQUIT] == (c))
                     81: #define        _IS_START_CHAR(tp,c)    (CSTART == (c))
                     82: #define        _IS_STOP_CHAR(tp,c)     (CSTOP == (c))
                     83: 
                     84: #define        _IS_CANON_MODE(tp)      (((tp)->t_termio.c_lflag & ICANON) != 0)
                     85: #define        _IS_ECHO_MODE(tp)       (((tp)->t_termio.c_lflag & ECHO) != 0)
                     86: #define _IS_ICRNL_MODE(tp)     (((tp)->t_termio.c_iflag & ICRNL) != 0)
                     87: #define _IS_IGNCR_MODE(tp)     (((tp)->t_termio.c_iflag & IGNCR) != 0)
                     88: #define        _IS_ISIG_MODE(tp)       (((tp)->t_termio.c_lflag & ISIG) != 0)
                     89: #define        _IS_ISTRIP_MODE(tp)     (((tp)->t_termio.c_iflag & ISTRIP) != 0)
                     90: #define _IS_IXON_MODE(tp)      (((tp)->t_termio.c_iflag & IXON) != 0)
                     91: #define _IS_IXANY_MODE(tp)     (((tp)->t_termio.c_iflag & IXANY) != 0)
                     92: #define _IS_OCRNL_MODE(tp)     (((tp)->t_termio.c_oflag & OCRNL) != 0)
                     93: #define _IS_ONLCR_MODE(tp)     (((tp)->t_termio.c_oflag & ONLCR) != 0)
                     94: #define        _IS_RAW_OUT_MODE(tp)    (((tp)->t_termio.c_oflag & OPOST) == 0)
                     95: #define        _IS_TANDEM_MODE(tp)     (((tp)->t_termio.c_iflag & IXOFF) != 0)
                     96: #define        _IS_XTABS_MODE(tp)      (((tp)->t_termio.c_oflag & TABDLY) == TAB3)
                     97: 
                     98: #else  /* if ! _I386 */
                     99: 
                    100: #define        _IS_EOF_CHAR(tp,c)      ((tp)->t_tchars.t_eofc == (c))
                    101: #define        _IS_INTRRUPT_CHAR(tp,c) ((tp)->t_tchars.t_intrc == (c))
                    102: #define        _IS_QUIT_CHAR(tp,c)     ((tp)->t_tchars.t_quitc == (c))
                    103: #define        _IS_START_CHAR(tp,c)    ((tp)->t_tchars.t_startc == (c))
                    104: #define        _IS_STOP_CHAR(tp,c)     ((tp)->t_tchars.t_stopc == (c))
                    105: #define        _IS_ERASE_CHAR(tp,c)    (((tp)->t_sgttyb.sg_erase == (c))
                    106: #define        _IS_KILL_CHAR(tp,c)     (((tp)->t_sgttyb.sg_kill == (c))
                    107: 
                    108: #define        _IS_CANON_MODE(tp)      ((tp)->t_sgttyb.sg_flags & \
                    109:                                 (RAWIN | CBREAK)) == 0)
                    110: #define        _IS_ECHO_MODE(tp)       (((tp)->t_sgttyb.sg_flags & ECHO) != 0)
                    111: #define _IS_ICRNL_MODE(tp)     (((tp)->t_sgttyb.sg_flags & CRMOD) != 0)
                    112: #define _IS_IGNCR_MODE(tp)     0
                    113: #define        _IS_ISIG_MODE(tp)       (! _IS_RAW_INPUT_MODE (tp))
                    114: #define        _IS_ISTRIP_MODE(tp)     (! _IS_RAW_INPUT_MODE (tp))
                    115: #define _IS_IXON_MODE(tp)      (! _IS_RAW_INPUT_MODE (tp))
                    116: #define _IS_OCRNL_MODE(tp)     0
                    117: #define _IS_ONLCR_MODE(tp)     (((tp)->t_sgttyb.sg_flags & CRMOD) != 0)
                    118: #define        _IS_RAW_OUTPUT_MODE(tp) (((tp)->t_sgttyb.sg_flags & RAWOUT) != 0)
                    119: #define        _IS_TANDEM_MODE(tp)     (((tp)->t_sgttyb.sg_flags & TANDEM) != 0)
                    120: #define        _IS_XTABS_MODE(tp)      (((tp)->t_sgttyb.sg_flags & XTABS) != 0)
                    121: 
                    122: #endif /* ! _I386 */
                    123: 
                    124: #endif /* ! defined (__SYS_KTTY_H__) */

unix.superglobalmegacorp.com

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