From: Alan Cox Date: Thu, 21 May 2015 23:02:15 +0000 (+0100) Subject: devtty: update for close semantics X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=29cdadbc0948fce95be406af92acb6d822ed146e;p=FUZIX.git devtty: update for close semantics --- diff --git a/Kernel/platform-mtx/devtty.c b/Kernel/platform-mtx/devtty.c index 03c8b846..772b3c7c 100644 --- a/Kernel/platform-mtx/devtty.c +++ b/Kernel/platform-mtx/devtty.c @@ -160,6 +160,9 @@ int mtxtty_close(uint8_t minor) irqflags_t flags; int err = tty_close(minor); + if (tty[minor].users) + return 0; + flags = di(); if (minor == 3) { serialAc = 0x05; diff --git a/Kernel/platform-nc100/devtty.c b/Kernel/platform-nc100/devtty.c index 8745e0ec..11a46094 100644 --- a/Kernel/platform-nc100/devtty.c +++ b/Kernel/platform-nc100/devtty.c @@ -67,6 +67,8 @@ int nc100_tty_open(uint8_t minor, uint16_t flag) int nc100_tty_close(uint8_t minor) { tty_close(minor); + if (tty[minor].users) + return 0; if (minor == 2) { #ifdef CONFIG_NC200 irqen = 0x18; diff --git a/Kernel/platform-trs80/devtty.c b/Kernel/platform-trs80/devtty.c index ff6d0750..304406b8 100644 --- a/Kernel/platform-trs80/devtty.c +++ b/Kernel/platform-trs80/devtty.c @@ -90,7 +90,7 @@ void tty_setup(uint8_t minor) int trstty_close(uint8_t minor) { - if (minor == 2) + if (minor == 2 &&ttydata[2].users == 0) tr1865_ctrl = 0; /* Drop carrier */ return tty_close(minor); }