summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libc/tcsetattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libc/tcsetattr.c')
-rw-r--r--c/src/lib/libc/tcsetattr.c13
1 files changed, 11 insertions, 2 deletions
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