summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pstat
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-02-05 14:21:09 +0000
committered <ed@FreeBSD.org>2009-02-05 14:21:09 +0000
commite085cfc4851a368e9eeca99b5977b66c163ff7ee (patch)
treee926c85860710dfb0757c5d76805dc86e28e6080 /usr.sbin/pstat
parent8f639d4b9ab34b25f907b609cbfdc7610647394f (diff)
downloadFreeBSD-src-e085cfc4851a368e9eeca99b5977b66c163ff7ee.zip
FreeBSD-src-e085cfc4851a368e9eeca99b5977b66c163ff7ee.tar.gz
Don't leave the console TTY constantly open.
When we leave the console TTY constantly open, we never reset the termios attributes. This causes output processing, echoing, etc. not to be reset to the proper values when going into single user mode after the system has booted. It also causes nl-to-crnl-conversion not to take place during shutdown, which causes a `staircase effect'. This patch adds a new TTY flag, TF_OPENED_CONS, which is set when the TTY is opened through /dev/console. Because the flags are only used by the kernel and the pstat(8) utility, I've decided to renumber the TTY flags. This shouldn't be an issue, because the TTY layer is not yet part of a stable release. Reported by: Mark Atkinson <atkin901 yahoo com> Tested by: sepotvin
Diffstat (limited to 'usr.sbin/pstat')
-rw-r--r--usr.sbin/pstat/pstat.82
-rw-r--r--usr.sbin/pstat/pstat.c39
2 files changed, 22 insertions, 19 deletions
diff --git a/usr.sbin/pstat/pstat.8 b/usr.sbin/pstat/pstat.8
index 5474f8b..b92abd8 100644
--- a/usr.sbin/pstat/pstat.8
+++ b/usr.sbin/pstat/pstat.8
@@ -183,6 +183,8 @@ init/lock-state device nodes present
callout device nodes present
.It O
opened
+.It c
+console in use
.It G
gone
.It B
diff --git a/usr.sbin/pstat/pstat.c b/usr.sbin/pstat/pstat.c
index a33bd0a..2cb52fe 100644
--- a/usr.sbin/pstat/pstat.c
+++ b/usr.sbin/pstat/pstat.c
@@ -288,33 +288,34 @@ static struct {
char val;
} ttystates[] = {
#if 0
- { TF_NOPREFIX, 'N' },
+ { TF_NOPREFIX, 'N' },
#endif
- { TF_INITLOCK, 'I' },
- { TF_CALLOUT, 'C' },
+ { TF_INITLOCK, 'I' },
+ { TF_CALLOUT, 'C' },
/* Keep these together -> 'Oi' and 'Oo'. */
- { TF_OPENED, 'O' },
- { TF_OPENED_IN, 'i' },
- { TF_OPENED_OUT,'o' },
+ { TF_OPENED, 'O' },
+ { TF_OPENED_IN, 'i' },
+ { TF_OPENED_OUT, 'o' },
+ { TF_OPENED_CONS, 'c' },
- { TF_GONE, 'G' },
- { TF_OPENCLOSE, 'B' },
- { TF_ASYNC, 'Y' },
- { TF_LITERAL, 'L' },
+ { TF_GONE, 'G' },
+ { TF_OPENCLOSE, 'B' },
+ { TF_ASYNC, 'Y' },
+ { TF_LITERAL, 'L' },
/* Keep these together -> 'Hi' and 'Ho'. */
- { TF_HIWAT, 'H' },
- { TF_HIWAT_IN, 'i' },
- { TF_HIWAT_OUT, 'o' },
+ { TF_HIWAT, 'H' },
+ { TF_HIWAT_IN, 'i' },
+ { TF_HIWAT_OUT, 'o' },
- { TF_STOPPED, 'S' },
- { TF_EXCLUDE, 'X' },
- { TF_BYPASS, 'l' },
- { TF_ZOMBIE, 'Z' },
- { TF_HOOK, 's' },
+ { TF_STOPPED, 'S' },
+ { TF_EXCLUDE, 'X' },
+ { TF_BYPASS, 'l' },
+ { TF_ZOMBIE, 'Z' },
+ { TF_HOOK, 's' },
- { 0, '\0' },
+ { 0, '\0'},
};
static void
OpenPOWER on IntegriCloud