Annotation of xinu/sys/vcucntl.c, revision 1.1

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

unix.superglobalmegacorp.com

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