|
|
1.1 root 1: /* ttycntl.c - ttycntl */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <tty.h>
6: #include <io.h>
1.1.1.2 ! root 7:
! 8: /* set up macros for appropriate SLU as spec. by SLUCHIP:
! 9: if SLUCHIP==6850, #include slu6850.h, #define TTYCNTL ttycntl6850, etc.
! 10: if SLUCHIP==7201, #include slu7201.h, #define TTYCNTL ttycntl7201, etc.
! 11: if SLUCHIP undef.,#include slu.h, #define TTYCNTL ttycntl (orig. case)
! 12: similarly sluaccess.h, other TTY fns */
! 13: #include <sluinclude.h>
1.1 root 14:
15: /*------------------------------------------------------------------------
16: * ttycntl - control a tty device by setting modes
17: *------------------------------------------------------------------------
18: */
1.1.1.2 ! root 19: TTYCNTL(devptr, func, addr)
! 20: struct devsw *devptr;
! 21: int func;
! 22: char *addr;
1.1 root 23: {
24: register struct tty *ttyp;
1.1.1.2 ! root 25: register struct csr *cptr;
1.1 root 26: char ch;
1.1.1.2 ! root 27:
! 28: #ifdef DEBUG
! 29: dotrace("ttycntl", &devptr, 3);
! 30: #endif
1.1 root 31:
32: ttyp = &tty[devptr->dvminor];
1.1.1.2 ! root 33:
! 34: cptr = (struct csr *)devptr->dvcsr;
1.1 root 35: switch ( func ) {
36: case TCSETBRK:
1.1.1.2 ! root 37: slusetbrk(cptr);
1.1 root 38: break;
39: case TCRSTBRK:
1.1.1.2 ! root 40: slurstbrk(cptr);
1.1 root 41: break;
42: case TCNEXTC:
1.1.1.2 ! root 43: disable();
1.1 root 44: wait(ttyp->isem);
45: ch = ttyp->ibuff[ttyp->itail];
1.1.1.2 ! root 46: restore();
1.1 root 47: signal(ttyp->isem);
48: return(ch);
49: case TCMODER:
50: ttyp->imode = IMRAW;
51: break;
52: case TCMODEC:
53: ttyp->imode = IMCOOKED;
54: break;
55: case TCMODEK:
56: ttyp->imode = IMCBREAK;
57: break;
58: case TCECHO:
59: ttyp->iecho = TRUE;
60: break;
61: case TCNOECHO:
62: ttyp->iecho = FALSE;
63: break;
64: case TCICHARS:
65: return(scount(ttyp->isem));
66: default:
67: return(SYSERR);
68: }
69: return(OK);
70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.