Annotation of xinu/h/tty.h, revision 1.1

1.1     ! root        1: /* tty.h */
        !             2: 
        !             3: #define        OBMINSP         20              /* min space in buffer before   */
        !             4:                                        /* processes awakened to write  */
        !             5: #define        EBUFLEN         20              /* size of echo queue           */
        !             6: 
        !             7: /* size constants */
        !             8: 
        !             9: #ifndef        Ntty
        !            10: #define        Ntty            1               /* number of serial tty lines   */
        !            11: #endif
        !            12: #ifndef        IBUFLEN
        !            13: #define        IBUFLEN         128             /* num. chars in input queue    */
        !            14: #endif
        !            15: #ifndef        OBUFLEN
        !            16: #define        OBUFLEN         64              /* num. chars in output queue   */
        !            17: #endif
        !            18: 
        !            19: /* mode constants */
        !            20: 
        !            21: #define        IMRAW           'R'             /* raw mode => nothing done     */
        !            22: #define        IMCOOKED        'C'             /* cooked mode => line editing  */
        !            23: #define        IMCBREAK        'K'             /* honor echo, etc, no line edit*/
        !            24: #define        OMRAW           'R'             /* raw mode => normal processing*/
        !            25: 
        !            26: struct tty     {                       /* tty line control block       */
        !            27:        int     ihead;                  /* head of input queue          */
        !            28:        int     itail;                  /* tail of input queue          */
        !            29:        char    ibuff[IBUFLEN];         /* input buffer for this line   */
        !            30:        int     isem;                   /* input semaphore              */
        !            31:        int     ohead;                  /* head of output queue         */
        !            32:        int     otail;                  /* tail of output queue         */
        !            33:        char    obuff[OBUFLEN];         /* output buffer for this line  */
        !            34:        int     osem;                   /* output semaphore             */
        !            35:        int     odsend;                 /* sends delayed for space      */
        !            36:        int     ehead;                  /* head of echo queue           */
        !            37:        int     etail;                  /* tail of echo queue           */
        !            38:        char    ebuff[EBUFLEN];         /* echo queue                   */
        !            39:        char    imode;                  /* IMRAW, IMCBREAK, IMCOOKED    */
        !            40:        Bool    iecho;                  /* is input echoed?             */
        !            41:        Bool    ieback;                 /* do erasing backspace on echo?*/
        !            42:        Bool    evis;                   /* echo control chars as ^X ?   */
        !            43:        Bool    ecrlf;                  /* echo CR-LF for newline?      */
        !            44:        Bool    icrlf;                  /* map '\r' to '\n' on input?   */
        !            45:        Bool    ierase;                 /* honor erase character?       */
        !            46:        char    ierasec;                /* erase character (backspace)  */
        !            47:        Bool    ikill;                  /* honor line kill character?   */
        !            48:        char    ikillc;                 /* line kill character          */
        !            49:        Bool    iintr;                  /* is interrupt char honored?   */
        !            50:        char    iintrc;                 /* interrupt character          */
        !            51:        int     iintpid;                /* interrupt process id         */
        !            52:        Bool    ieof;                   /* honor end-of-file char?      */
        !            53:        char    ieofc;                  /* end-of-file character        */
        !            54:        int     icursor;                /* current cursor position      */
        !            55:        Bool    oflow;                  /* honor ostop/ostart?          */
        !            56:        Bool    oheld;                  /* output currently being held? */
        !            57:        char    ostop;                  /* character that stops output  */
        !            58:        char    ostart;                 /* character that starts output */
        !            59:        Bool    ocrlf;                  /* echo CR/LF for LF ?          */
        !            60:        char    ifullc;                 /* char to send when input full */
        !            61:        struct  csr     *ioaddr;        /* device address of this unit  */
        !            62: };
        !            63: extern struct  tty tty[];
        !            64: 
        !            65: #define        BACKSP  '\b'                    /* backspace one character pos. */
        !            66: #define        BELL    '\007'                  /* usually an audiable tone     */
        !            67: #define        BLANK   ' '                     /* used to print a "space"      */
        !            68: #define        EOFC    '\004'                  /* end-of-file character (^D)   */
        !            69: #define        KILLCH  '\025'                  /* line kill character (^U)     */
        !            70: #define        NEWLINE '\n'                    /* line feed                    */
        !            71: #define        RETURN  '\r'                    /* carriage return              */
        !            72: #define        STOPCH  '\023'                  /* control-S stops output       */
        !            73: #define        STRTCH  '\021'                  /* control-Q restarts output    */
        !            74: #define        INTRCH  '\002'                  /* control-B is interrupt       */
        !            75: #define        UPARROW '^'                     /* usually for visuals like ^X  */
        !            76: 
        !            77: /* ttycontrol function codes */
        !            78: 
        !            79: #define        TCSETBRK        1               /* turn on BREAK in transmitter */
        !            80: #define        TCRSTBRK        2               /* turn off BREAK "       "     */
        !            81: #define        TCNEXTC         3               /* look ahead 1 character       */
        !            82: #define        TCMODER         4               /* set input mode to raw        */
        !            83: #define        TCMODEC         5               /* set input mode to cooked     */
        !            84: #define        TCMODEK         6               /* set input mode to cbreak     */
        !            85: #define        TCICHARS        8               /* return number of input chars */
        !            86: #define        TCECHO          9               /* turn on echo                 */
        !            87: #define        TCNOECHO        10              /* turn off echo                */
        !            88: #define        TCINT           11              /* set input interrupt pid      */
        !            89: #define        TCINTCH         12              /* set input interrupt char     */
        !            90: #define        TCNOINT         13              /* turn off input interrupt     */
        !            91: #define        TFULLC          BELL            /* char to echo when buffer full*/

unix.superglobalmegacorp.com

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