diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-05-28 22:26:36 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-05-28 22:26:36 +0000 |
commit | b1f07180b5e7897f07e390e020b307e6496c9cb1 (patch) | |
tree | a2214ac6ac09c310f7fbd8c42a48f5cc58b2e4f1 /newlib/libc/sys/linux/termios.c | |
parent | ab72c934da3502f2dcb0f52199675a0d939c039c (diff) | |
download | cygnal-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.c | 72 |
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); +} + |