diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-01 15:55:30 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-10-01 15:55:30 +0000 |
commit | 3cad2919622e6dbab273fdf772b8bf33653553b9 (patch) | |
tree | dc9f24f199588064adfd02795c924e7946976bd9 /c/src/lib/libc | |
parent | changed version to 19990930 (diff) | |
download | rtems-3cad2919622e6dbab273fdf772b8bf33653553b9.tar.bz2 |
Addition of more functionality by Eric Norum to support GNU readline.
Diffstat (limited to 'c/src/lib/libc')
-rw-r--r-- | c/src/lib/libc/Makefile.in | 3 | ||||
-rw-r--r-- | c/src/lib/libc/tcflow.c | 33 | ||||
-rw-r--r-- | c/src/lib/libc/tcflush.c | 33 | ||||
-rw-r--r-- | c/src/lib/libc/tcsetattr.c | 13 |
4 files changed, 79 insertions, 3 deletions
diff --git a/c/src/lib/libc/Makefile.in b/c/src/lib/libc/Makefile.in index 59bee64a81..12c7561ae2 100644 --- a/c/src/lib/libc/Makefile.in +++ b/c/src/lib/libc/Makefile.in @@ -25,7 +25,8 @@ IMFS_C_PIECES = imfs_chown imfs_creat imfs_directory imfs_eval imfs_free \ imfs_readlink imfs_fdatasync TERMIOS_C_PIECES = cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcgetattr \ - tcsetattr tcdrain termios termiosinitialize termiosreserveresources + tcsetattr tcdrain tcflow tcflush termios \ + termiosinitialize termiosreserveresources SYSTEM_CALL_C_PIECES = open close read write lseek ioctl mkdir mknod mkfifo \ rmdir chdir chmod fchmod chown link unlink umask ftruncate utime fstat \ diff --git a/c/src/lib/libc/tcflow.c b/c/src/lib/libc/tcflow.c new file mode 100644 index 0000000000..bbe60d94be --- /dev/null +++ b/c/src/lib/libc/tcflow.c @@ -0,0 +1,33 @@ +/* + * tcflow() - POSIX 1003.1b 7.2.2 - Line Control Functions + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <rtems.h> +#if defined(RTEMS_NEWLIB) + +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> +#include <termios.h> +/* #include <sys/ioctl.h> */ + +int ioctl(); + +#include <rtems/libio.h> + +int tcflow (int fd, int action) +{ + return 0; +} + +#endif diff --git a/c/src/lib/libc/tcflush.c b/c/src/lib/libc/tcflush.c new file mode 100644 index 0000000000..3a14eba129 --- /dev/null +++ b/c/src/lib/libc/tcflush.c @@ -0,0 +1,33 @@ +/* + * tcflush() - POSIX 1003.1b 7.2.2 - Line Control Functions + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <rtems.h> +#if defined(RTEMS_NEWLIB) + +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> +#include <termios.h> +/* #include <sys/ioctl.h> */ + +int ioctl(); + +#include <rtems/libio.h> + +int tcflush (int fd, int queue) +{ + return 0; +} + +#endif diff --git a/c/src/lib/libc/tcsetattr.c b/c/src/lib/libc/tcsetattr.c index cc1ca205a5..a769ff250f 100644 --- a/c/src/lib/libc/tcsetattr.c +++ b/c/src/lib/libc/tcsetattr.c @@ -32,9 +32,18 @@ int tcsetattr( struct termios *tp ) { - if ( opt != TCSANOW ) + switch (opt) { + default: set_errno_and_return_minus_one( ENOTSUP ); - return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); + case TCSADRAIN: + if (ioctl( fd, RTEMS_IO_TCDRAIN, NULL ) < 0) + return -1; + /* + * Fall through to.... + */ + case TCSANOW: + return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp ); + } } #endif |