summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/linux/termios.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-05-28 22:26:36 +0000
committerJeff Johnston <jjohnstn@redhat.com>2002-05-28 22:26:36 +0000
commitb1f07180b5e7897f07e390e020b307e6496c9cb1 (patch)
treea2214ac6ac09c310f7fbd8c42a48f5cc58b2e4f1 /newlib/libc/sys/linux/termios.c
parentab72c934da3502f2dcb0f52199675a0d939c039c (diff)
downloadcygnal-b1f07180b5e7897f07e390e020b307e6496c9cb1.tar.gz
cygnal-b1f07180b5e7897f07e390e020b307e6496c9cb1.tar.bz2
cygnal-b1f07180b5e7897f07e390e020b307e6496c9cb1.zip
2002-05-28 Jeff Johnston <jjohnstn@redhat.com>
* libc/sys/linux/Makefile.am: Add support for cfspeed.c and tcsendbrk.c. * libc/sys/linux/Makefile.in: Regenerated. * libc/sys/linux/termios.c: Add tcflow(), tcflush(), tcgetpgrp(), and tcsetpgrp() functions. * libc/sys/linux/sys/termios.h: Add include of machine/termios.h to get __MAX_BAUD rate. * libc/sys/linux/machine/i386/include/termios.h: New file. * libc/include/machine/termios.h: Ditto. * libc/sys/linux/cfspeed.c: Ditto. * libc/sys/linux/tcsendbrk.c: Ditto.
Diffstat (limited to 'newlib/libc/sys/linux/termios.c')
-rw-r--r--newlib/libc/sys/linux/termios.c72
1 files changed, 53 insertions, 19 deletions
diff --git a/newlib/libc/sys/linux/termios.c b/newlib/libc/sys/linux/termios.c
index 94567b16d..bc0ac550a 100644
--- a/newlib/libc/sys/linux/termios.c
+++ b/newlib/libc/sys/linux/termios.c
@@ -9,29 +9,63 @@
#include <sys/ioctl.h>
-int tcgetattr(int fd,struct termios *termios_p)
+int
+tcgetattr(int fd,struct termios *termios_p)
{
- return ioctl(fd,TCGETS,termios_p);
+ return ioctl(fd,TCGETS,termios_p);
}
-int tcsetattr(int fd,int optional_actions,const struct termios *termios_p)
+int
+tcsetattr(int fd,int optional_actions,const struct termios *termios_p)
{
- int cmd;
-
- switch (optional_actions) {
- case TCSANOW:
- cmd = TCSETS;
- break;
- case TCSADRAIN:
- cmd = TCSETSW;
- break;
- case TCSAFLUSH:
- cmd = TCSETSF;
- break;
- default:
- errno = EINVAL;
- return -1;
+ int cmd;
+
+ switch (optional_actions) {
+ case TCSANOW:
+ cmd = TCSETS;
+ break;
+ case TCSADRAIN:
+ cmd = TCSETSW;
+ break;
+ case TCSAFLUSH:
+ cmd = TCSETSF;
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
}
- return ioctl(fd,cmd,termios_p);
+ return ioctl(fd,cmd,termios_p);
+}
+
+
+pid_t
+tcgetpgrp(int fd)
+{
+ int p;
+
+ if (ioctl(fd,TIOCGPGRP,&p) < 0)
+ return (pid_t)-1;
+ return (pid_t)p;
+}
+
+
+int
+tcsetpgrp(int fd, pid_t pid)
+{
+ int p = (int)pid;
+ return ioctl(fd,TIOCSPGRP,&p);
+}
+
+int
+tcflow (int fd, int action)
+{
+ return ioctl (fd, TCXONC, action);
}
+
+int
+tcflush (int fd, int queue_selector)
+{
+ return ioctl (fd, TCFLSH, queue_selector);
+}
+