Annotation of coherent/a/usr/bob/uusrc/modemcap/fixtty.c, revision 1.1

1.1     ! root        1: /*
        !             2:  *  fixtty.c
        !             3:  *
        !             4:  *  Set the tty properly on entry in dial() and exit in hangup().
        !             5:  */
        !             6: 
        !             7: #include "dcp.h"
        !             8: #include "dial.h"
        !             9: 
        !            10: #if SGTTY
        !            11: #include <sgtty.h>
        !            12: 
        !            13: static struct sgttyb save;
        !            14: 
        !            15: ttyinit(fd, baud)
        !            16: int fd, baud;
        !            17: {
        !            18:        struct sgttyb ttyb;
        !            19: 
        !            20:        gtty(fd, &ttyb);
        !            21:        save = ttyb;
        !            22:        if ( (ttyb.sg_ispeed=findspeed(baud)) == 0 )
        !            23:                return( M_ILL_BD );
        !            24:        ttyb.sg_ospeed = ttyb.sg_ispeed;
        !            25:        ttyb.sg_flags = CBREAK;
        !            26:        stripflg = 1;
        !            27:        ttyb.sg_erase = -1;
        !            28:        ttyb.sg_kill = -1;
        !            29:        if ( stty(fd, &ttyb) == -1 )
        !            30:                return( M_L_PROB );
        !            31:        ioctl(fd, TIOCHPCL);
        !            32: }
        !            33: 
        !            34: 
        !            35: ttyexit(fd)
        !            36: int fd;
        !            37: {
        !            38:        stty(fd, &save);
        !            39:        sleep(2);
        !            40:        stty(fd, &save);
        !            41:        stripflg = 0;
        !            42: }
        !            43: 
        !            44: 
        !            45: #elif TERMIO
        !            46: 
        !            47: #include <termio.h>
        !            48: 
        !            49: static struct termio save;
        !            50: 
        !            51: ttyinit(fd, baud)
        !            52: int fd, baud;
        !            53: {
        !            54:        struct termio tio;
        !            55:        unsigned short tmp;
        !            56: 
        !            57:        ioctl(fd, TCGETA, &tio);
        !            58:        save = tio;
        !            59:        tio.c_iflag = ISTRIP;
        !            60:        stripflg = 1;
        !            61:        tio.c_oflag = 0;
        !            62:        tio.c_cflag &= ~(CBAUD|CSIZE|PARENB);
        !            63:        if ( (tmp=findspeed(baud)) == 0 )
        !            64:                return( M_ILL_BD );
        !            65:        tio.c_cflag |= tmp;
        !            66:        tio.c_cflag |= (HUPCL|CS8);
        !            67:        tio.c_lflag = 0;
        !            68:        if ( ioctl(fd, TCSETA, &tio) == -1 )
        !            69:                return(M_L_PROB);
        !            70:        return(0);
        !            71: }
        !            72: 
        !            73: ttyexit(fd)
        !            74: int fd;
        !            75: {
        !            76:        ioctl(fd, TCSETA, &save);
        !            77:        sleep (2);
        !            78:        ioctl(fd, TCSETA, &save);
        !            79:        stripflg = 0;
        !            80: }
        !            81: 
        !            82: #endif
        !            83: 
        !            84: static struct speedlist {
        !            85:        int     value;
        !            86:        int     name;
        !            87: } 
        !            88: speeds[] = {
        !            89:        {0,     0},
        !            90:        {110,   B110},
        !            91:        {300,   B300},
        !            92:        {600,   B600},
        !            93:        {1200,  B1200},
        !            94:        {2400,  B2400},
        !            95:        {4800,  B4800},
        !            96:        {9600,  B9600},
        !            97:        {19200, B19200},
        !            98:        {-1, -1 }
        !            99: };
        !           100: 
        !           101: static
        !           102: findspeed(speed)
        !           103: int speed;
        !           104: {
        !           105:        register struct speedlist *ps;
        !           106: 
        !           107:        for (ps=speeds; ps->value>=0; ps++)
        !           108:                if (ps->value == speed)
        !           109:                        return (ps->name);
        !           110: 
        !           111:        return (0);
        !           112: }

unix.superglobalmegacorp.com

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