Annotation of xinu/sys/ttycntl.c, revision 1.1.1.1

1.1       root        1: /* ttycntl.c - ttycntl */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <tty.h>
                      6: #include <io.h>
                      7: #include <slu.h>
                      8: 
                      9: /*------------------------------------------------------------------------
                     10:  *  ttycntl  -  control a tty device by setting modes
                     11:  *------------------------------------------------------------------------
                     12:  */
                     13: ttycntl(devptr, func)
                     14: struct devsw   *devptr;
                     15: int func;
                     16: {
                     17:        register struct tty *ttyp;
                     18:        char    ch;
                     19:        PStype  ps;
                     20: 
                     21:        ttyp = &tty[devptr->dvminor];
                     22:        switch ( func ) {
                     23:        case TCSETBRK:
                     24:                ttyp->ioaddr->ctstat |= SLUTBREAK;
                     25:                break;
                     26:        case TCRSTBRK:
                     27:                ttyp->ioaddr->ctstat &= ~SLUTBREAK;
                     28:                break;
                     29:        case TCNEXTC:
                     30:                disable(ps);
                     31:                wait(ttyp->isem);
                     32:                ch = ttyp->ibuff[ttyp->itail];
                     33:                restore(ps);
                     34:                signal(ttyp->isem);
                     35:                return(ch);
                     36:        case TCMODER:
                     37:                ttyp->imode = IMRAW;
                     38:                break;
                     39:        case TCMODEC:
                     40:                ttyp->imode = IMCOOKED;
                     41:                break;
                     42:        case TCMODEK:
                     43:                ttyp->imode = IMCBREAK;
                     44:                break;
                     45:        case TCECHO:
                     46:                ttyp->iecho = TRUE;
                     47:                break;
                     48:        case TCNOECHO:
                     49:                ttyp->iecho = FALSE;
                     50:                break;
                     51:        case TCICHARS:
                     52:                return(scount(ttyp->isem));
                     53:        case TCINT:
                     54:                ttyp->iintr = TRUE;
                     55:                ttyp->iintpid = getpid();
                     56:                break;
                     57:        case TCNOINT:
                     58:                ttyp->iintr = FALSE;
                     59:                break;
                     60:        default:
                     61:                return(SYSERR);
                     62:        }
                     63:        return(OK);
                     64: }

unix.superglobalmegacorp.com

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