date and time created 88/10/07 16:35:45 by marc
[unix-history] / usr / src / lib / libc / gen / termios.c
CommitLineData
816ee792
MT
1#include <sys/types.h>
2#include <sys/errno.h>
3#include <sys/termios.h>
4#include <sys/tty.h>
5#include <stdio.h>
6
7tcgetattr(fd, t)
8 int fd;
9 struct termios *t;
10{
11 extern errno;
12
13 return(ioctl(fd, TIOCGETA, t));
14}
15
16tcsetattr(fd, opt, t)
17 int fd, opt;
18 struct termios *t;
19{
20 long code;
21 int ret;
22 extern errno;
23
24 switch (opt) {
25 case TCSANOW:
26 code = TIOCSETA;
27 break;
28 case TCSADRAIN:
29 code = TIOCSETAW;
30 break;
31 case TCSADFLUSH:
32 code = TIOCSETAF;
33 break;
34 case TCSANOW | TCSASOFT:
35 code = TIOCSETAS;
36 break;
37 case TCSADRAIN | TCSASOFT:
38 code = TIOCSETAWS;
39 break;
40 case TCSADFLUSH | TCSASOFT:
41 code = TIOCSETAFS;
42 break;
43 default:
44 errno = EINVAL;
45 return(-1);
46 }
47 return(ioctl(fd, code, t));
48}
49
50tcsetpgrp(fd, pgrp)
51{
52 return(ioctl(fd, TIOCSPGRP, &pgrp));
53}
54
55tcgetpgrp(fd)
56{
57 int pgrp;
58
59 if (ioctl(fd, TIOCGPGRP, &pgrp) < 0)
60 return(-1);
61 return(pgrp);
62}
63
64cfgetospeed(t)
65 struct termios *t;
66{
67 return(t->c_ospeed);
68}
69
70cfgetispeed(t)
71 struct termios *t;
72{
73 return(t->c_ispeed);
74}
75
76cfsetospeed(t, speed)
77 struct termios *t;
78{
79 t->c_ospeed = speed;
80}
81
82cfsetispeed(t, speed)
83 struct termios *t;
84{
85 t->c_ispeed = speed;
86}
87
88cfsetspeed(t, speed)
89 struct termios *t;
90{
91 t->c_ispeed = t->c_ospeed = speed;
92}
93
94cfmakeraw(t)
95 struct termios *t;
96{
97 t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|INLCR|IGNCR|ICRNL|IXON|IEXTEN);
98 t->c_oflag &= ~(ONLCR|OXTABS);
99 t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG);
100 /* set MIN/TIME */
101}