diff options
Diffstat (limited to 'c/src/lib/libc/termios.c')
-rw-r--r-- | c/src/lib/libc/termios.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/c/src/lib/libc/termios.c b/c/src/lib/libc/termios.c index c23da7ab31..3dd122dca1 100644 --- a/c/src/lib/libc/termios.c +++ b/c/src/lib/libc/termios.c @@ -324,30 +324,19 @@ rtems_termios_close (void *arg) drainOutput (tty); if (tty->device.lastClose) (*tty->device.lastClose)(tty->major, tty->minor, arg); - if (tty->forw == NULL) { + if (tty->forw == NULL) rtems_termios_ttyTail = tty->back; - if ( rtems_termios_ttyTail != NULL ) { - rtems_termios_ttyTail->forw = NULL; - } - } - else { + else tty->forw->back = tty->back; - } - if (tty->back == NULL) { + if (tty->back == NULL) rtems_termios_ttyHead = tty->forw; - if ( rtems_termios_ttyHead != NULL ) { - rtems_termios_ttyHead->back = NULL; - } - } - else { + else tty->back->forw = tty->forw; - } rtems_semaphore_delete (tty->isem); rtems_semaphore_delete (tty->osem); rtems_semaphore_delete (tty->rawOutBufSemaphore); if (!tty->device.pollRead) rtems_semaphore_delete (tty->rawInBufSemaphore); - free (tty->cbuf); free (tty); } rtems_semaphore_release (rtems_termios_ttyMutex); |