summaryrefslogtreecommitdiffstats
path: root/sys/dev/xen/console
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2011-09-02 17:36:01 +0000
committerrwatson <rwatson@FreeBSD.org>2011-09-02 17:36:01 +0000
commit3eec7d02646590de620f301b9374dde0852a3348 (patch)
tree426bb13e41a27a7c7950cb24686a0d8de7e589e1 /sys/dev/xen/console
parentaa452c94d4215fc263989c3d85fba2ad9032c237 (diff)
downloadFreeBSD-src-3eec7d02646590de620f301b9374dde0852a3348.zip
FreeBSD-src-3eec7d02646590de620f301b9374dde0852a3348.tar.gz
Add support for alternative break-to-debugger support on the Xen console.
This should help debug boot-time hangs experienced in 9.0-BETA. MFC after: 3 weeks Tested by: sbruno Approved by: re (kib)
Diffstat (limited to 'sys/dev/xen/console')
-rw-r--r--sys/dev/xen/console/console.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/xen/console/console.c b/sys/dev/xen/console/console.c
index d614082..5a14623 100644
--- a/sys/dev/xen/console/console.c
+++ b/sys/dev/xen/console/console.c
@@ -70,6 +70,10 @@ static int rc, rp;
static unsigned int cnsl_evt_reg;
static unsigned int wc, wp; /* write_cons, write_prod */
+#ifdef KDB
+static int xc_altbrk;
+#endif
+
#define CDEV_MAJOR 12
#define XCUNIT(x) (dev2unit(x))
#define ISTTYOPEN(tp) ((tp) && ((tp)->t_state & TS_ISOPEN))
@@ -268,8 +272,12 @@ xencons_rx(char *buf, unsigned len)
#endif
) {
tty_lock(tp);
- for (i = 0; i < len; i++)
+ for (i = 0; i < len; i++) {
+#ifdef KDB
+ kdb_alt_break(buf[i], &xc_altbrk);
+#endif
ttydisc_rint(tp, buf[i], 0);
+ }
ttydisc_rint_done(tp);
tty_unlock(tp);
} else {
OpenPOWER on IntegriCloud