Module Name: src Committed By: rin Date: Tue Jul 23 17:39:36 UTC 2019
Modified Files: src/sys/dev/wscons: wsdisplay.c src/sys/sys: systm.h Log Message: Enable us to enter DDB from serial console when WSDISPLAY_MULTICONS is enabled. This is necessary for machines on which framebuffer console cannot be disabled at run time. opt_wsdisplay_compat.h is generated for all ports including those that do not support wscons. OK Jared To generate a diff of this commit: cvs rdiff -u -r1.155 -r1.156 src/sys/dev/wscons/wsdisplay.c cvs rdiff -u -r1.285 -r1.286 src/sys/sys/systm.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/wscons/wsdisplay.c diff -u src/sys/dev/wscons/wsdisplay.c:1.155 src/sys/dev/wscons/wsdisplay.c:1.156 --- src/sys/dev/wscons/wsdisplay.c:1.155 Tue Jul 23 15:55:49 2019 +++ src/sys/dev/wscons/wsdisplay.c Tue Jul 23 17:39:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: wsdisplay.c,v 1.155 2019/07/23 15:55:49 jmcneill Exp $ */ +/* $NetBSD: wsdisplay.c,v 1.156 2019/07/23 17:39:36 rin Exp $ */ /* * Copyright (c) 1996, 1997 Christopher G. Demetriou. All rights reserved. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wsdisplay.c,v 1.155 2019/07/23 15:55:49 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wsdisplay.c,v 1.156 2019/07/23 17:39:36 rin Exp $"); #ifdef _KERNEL_OPT #include "opt_wsdisplay_compat.h" @@ -277,6 +277,19 @@ static int wsdisplay_dosync(struct wsdis int wsdisplay_clearonclose; #ifdef WSDISPLAY_MULTICONS +/* + * Replace cn_isconsole() so that we can enter DDB from old console. + */ +bool +wsdisplay_cn_isconsole(dev_t dev) +{ + + return (cn_tab != NULL && cn_tab->cn_dev == dev) || + (cn_tab == &wsdisplay_cons && !wsdisplay_multicons_suspended && + wsdisplay_multicons_enable && wsdisplay_ocn != NULL && + wsdisplay_ocn->cn_dev == dev); +} + static void wsscreen_getc_poll(void *priv) { Index: src/sys/sys/systm.h diff -u src/sys/sys/systm.h:1.285 src/sys/sys/systm.h:1.286 --- src/sys/sys/systm.h:1.285 Mon May 20 20:35:45 2019 +++ src/sys/sys/systm.h Tue Jul 23 17:39:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: systm.h,v 1.285 2019/05/20 20:35:45 christos Exp $ */ +/* $NetBSD: systm.h,v 1.286 2019/07/23 17:39:36 rin Exp $ */ /*- * Copyright (c) 1982, 1988, 1991, 1993 @@ -44,6 +44,7 @@ #include "opt_multiprocessor.h" #include "opt_gprof.h" #include "opt_kleak.h" +#include "opt_wsdisplay_compat.h" #endif #if !defined(_KERNEL) && !defined(_STANDALONE) #include <stdbool.h> @@ -541,7 +542,12 @@ typedef struct cnm_state { #define cn_trap() console_debugger() #endif #ifndef cn_isconsole +#ifndef WSDISPLAY_MULTICONS #define cn_isconsole(d) (cn_tab != NULL && (d) == cn_tab->cn_dev) +#else +bool wsdisplay_cn_isconsole(dev_t); +#define cn_isconsole(d) wsdisplay_cn_isconsole(d) +#endif #endif void cn_init_magic(cnm_state_t *);