diff options
Diffstat (limited to 'cpukit/libcsupport/src/tcsetattr.c')
-rw-r--r-- | cpukit/libcsupport/src/tcsetattr.c | 13 |
1 files changed, 11 insertions, 2 deletions
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 |