Commit | Line | Data |
---|---|---|
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 | ||
7 | tcgetattr(fd, t) | |
8 | int fd; | |
9 | struct termios *t; | |
10 | { | |
11 | extern errno; | |
12 | ||
13 | return(ioctl(fd, TIOCGETA, t)); | |
14 | } | |
15 | ||
16 | tcsetattr(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 | ||
50 | tcsetpgrp(fd, pgrp) | |
51 | { | |
52 | return(ioctl(fd, TIOCSPGRP, &pgrp)); | |
53 | } | |
54 | ||
55 | tcgetpgrp(fd) | |
56 | { | |
57 | int pgrp; | |
58 | ||
59 | if (ioctl(fd, TIOCGPGRP, &pgrp) < 0) | |
60 | return(-1); | |
61 | return(pgrp); | |
62 | } | |
63 | ||
64 | cfgetospeed(t) | |
65 | struct termios *t; | |
66 | { | |
67 | return(t->c_ospeed); | |
68 | } | |
69 | ||
70 | cfgetispeed(t) | |
71 | struct termios *t; | |
72 | { | |
73 | return(t->c_ispeed); | |
74 | } | |
75 | ||
76 | cfsetospeed(t, speed) | |
77 | struct termios *t; | |
78 | { | |
79 | t->c_ospeed = speed; | |
80 | } | |
81 | ||
82 | cfsetispeed(t, speed) | |
83 | struct termios *t; | |
84 | { | |
85 | t->c_ispeed = speed; | |
86 | } | |
87 | ||
88 | cfsetspeed(t, speed) | |
89 | struct termios *t; | |
90 | { | |
91 | t->c_ispeed = t->c_ospeed = speed; | |
92 | } | |
93 | ||
94 | cfmakeraw(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 | } |