summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty_cons.c
diff options
context:
space:
mode:
authoryokota <yokota@FreeBSD.org>2000-01-11 14:54:01 +0000
committeryokota <yokota@FreeBSD.org>2000-01-11 14:54:01 +0000
commit715966bf8adb1f06117b0690700bed09936230f4 (patch)
tree43bfbc350096f38a69febf5012643dcc32e4077e /sys/kern/tty_cons.c
parentddf2890cdfae4bd1cd3a719341689d029d64b580 (diff)
downloadFreeBSD-src-715966bf8adb1f06117b0690700bed09936230f4.zip
FreeBSD-src-715966bf8adb1f06117b0690700bed09936230f4.tar.gz
Add a new mechanism, cndbctl(), to tell the console driver that
ddb is entered. Don't refer to `in_Debugger' to see if we are in the debugger. (The variable used to be static in Debugger() and wasn't updated if ddb is entered via traps and panic anyway.) - Don't refer to `in_Debugger'. - Add `db_active' to i386/i386/db_interface.d (as in alpha/alpha/db_interface.c). - Remove cnpollc() stub from ddb/db_input.c. - Add the dbctl function to syscons, pcvt, and sio. (The function for pcvt and sio is noop at the moment.) Jointly developed by: bde and me (The final version was tweaked by me and not reviewed by bde. Thus, if there is any error in this commit, that is entirely of mine, not his.) Some changes were obtained from: NetBSD
Diffstat (limited to 'sys/kern/tty_cons.c')
-rw-r--r--sys/kern/tty_cons.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c
index bac3312..32656f8 100644
--- a/sys/kern/tty_cons.c
+++ b/sys/kern/tty_cons.c
@@ -97,7 +97,7 @@ static d_open_t *cn_phys_open; /* physical device open function */
struct consdev *cn_tab; /* physical console device info */
static dev_t condev_t; /* represents the device private info */
-CONS_DRIVER(cons, NULL, NULL, NULL, NULL, NULL, NULL);
+CONS_DRIVER(cons, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
void
cninit()
@@ -423,6 +423,22 @@ cnputc(c)
}
}
+void
+cndbctl(on)
+ int on;
+{
+ static int refcount;
+
+ if (cn_tab == NULL)
+ return;
+ if (!on)
+ refcount--;
+ if (refcount == 0 && cn_tab->cn_dbctl != NULL)
+ (*cn_tab->cn_dbctl)(cn_tab->cn_dev, on);
+ if (on)
+ refcount++;
+}
+
static void
cn_drvinit(void *unused)
{
OpenPOWER on IntegriCloud