diff options
-rw-r--r-- | c/src/exec/libcsupport/src/tcflow.c | 33 | ||||
-rw-r--r-- | c/src/exec/libcsupport/src/tcflush.c | 33 | ||||
-rw-r--r-- | c/src/exec/libcsupport/src/tcsetattr.c | 13 | ||||
-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 | ||||
-rw-r--r-- | cpukit/libcsupport/src/tcflow.c | 33 | ||||
-rw-r--r-- | cpukit/libcsupport/src/tcflush.c | 33 | ||||
-rw-r--r-- | cpukit/libcsupport/src/tcsetattr.c | 13 |
10 files changed, 233 insertions, 7 deletions
diff --git a/c/src/exec/libcsupport/src/tcflow.c b/c/src/exec/libcsupport/src/tcflow.c new file mode 100644 index 0000000000..bbe60d94be --- /dev/null +++ b/c/src/exec/libcsupport/src/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/exec/libcsupport/src/tcflush.c b/c/src/exec/libcsupport/src/tcflush.c new file mode 100644 index 0000000000..3a14eba129 --- /dev/null +++ b/c/src/exec/libcsupport/src/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/exec/libcsupport/src/tcsetattr.c b/c/src/exec/libcsupport/src/tcsetattr.c index cc1ca205a5..a769ff250f 100644 --- a/c/src/exec/libcsupport/src/tcsetattr.c +++ b/c/src/exec/libcsupport/src/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 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 diff --git a/cpukit/libcsupport/src/tcflow.c b/cpukit/libcsupport/src/tcflow.c new file mode 100644 index 0000000000..bbe60d94be --- /dev/null +++ b/cpukit/libcsupport/src/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/cpukit/libcsupport/src/tcflush.c b/cpukit/libcsupport/src/tcflush.c new file mode 100644 index 0000000000..3a14eba129 --- /dev/null +++ b/cpukit/libcsupport/src/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/cpukit/libcsupport/src/tcsetattr.c b/cpukit/libcsupport/src/tcsetattr.c index cc1ca205a5..a769ff250f 100644 --- a/cpukit/libcsupport/src/tcsetattr.c +++ b/cpukit/libcsupport/src/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 |