summaryrefslogtreecommitdiff
path: root/sys/dev/dec
diff options
context:
space:
mode:
authorragge <ragge@NetBSD.org>1998-06-14 11:52:35 +0000
committerragge <ragge@NetBSD.org>1998-06-14 11:52:35 +0000
commita4d0eae36b3633835fd45bbc04a363f0db1300d0 (patch)
tree3cca76978a610c1223344c8c2d77070d92306dc1 /sys/dev/dec
parent2d869bbacfbe5deb50d1ed5f8a9f6934ae521b0a (diff)
Add catch function for keyboard.
Diffstat (limited to 'sys/dev/dec')
-rw-r--r--sys/dev/dec/qbus/dz.c7
-rw-r--r--sys/dev/dec/qbus/dzvar.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/dec/qbus/dz.c b/sys/dev/dec/qbus/dz.c
index a227f83d862..14ce4bd5893 100644
--- a/sys/dev/dec/qbus/dz.c
+++ b/sys/dev/dec/qbus/dz.c
@@ -1,4 +1,4 @@
-/* $NetBSD: dz.c,v 1.9 1998/05/23 12:49:30 ragge Exp $ */
+/* $NetBSD: dz.c,v 1.10 1998/06/14 11:52:35 ragge Exp $ */
/*
* Copyright (c) 1996 Ken C. Wellsch. All rights reserved.
* Copyright (c) 1992, 1993
@@ -165,6 +165,10 @@ dzrint(cntlr)
line = DZ_PORT(c>>8);
tp = sc->sc_dz[line].dz_tty;
+ /* Must be caught early */
+ if (sc->sc_catch && (*sc->sc_catch)(line, cc))
+ continue;
+
if (!(tp->t_state & TS_ISOPEN)) {
wakeup((caddr_t)&tp->t_rawq);
continue;
@@ -175,6 +179,7 @@ dzrint(cntlr)
sc->sc_dev.dv_xname, line);
overrun = 1;
}
+
/* A BREAK key will appear as a NULL with a framing error */
if (c & DZ_RBUF_FRAMING_ERR)
cc |= TTY_FE;
diff --git a/sys/dev/dec/qbus/dzvar.h b/sys/dev/dec/qbus/dzvar.h
index 776bcfde004..c33a3a291c5 100644
--- a/sys/dev/dec/qbus/dzvar.h
+++ b/sys/dev/dec/qbus/dzvar.h
@@ -1,4 +1,4 @@
-/* $NetBSD: dzvar.h,v 1.1 1998/05/17 18:51:13 ragge Exp $ */
+/* $NetBSD: dzvar.h,v 1.2 1998/06/14 11:52:35 ragge Exp $ */
/*
* Copyright (c) 1996 Ken C. Wellsch. All rights reserved.
* Copyright (c) 1992, 1993
@@ -57,6 +57,7 @@ struct dz_softc {
u_char sc_dsr; /* DSR set bits if no mdm ctrl */
void (*sc_txon) __P((void));
void (*sc_rxon) __P((void));
+ int (*sc_catch) __P((int, int)); /* Fast catch recv */
struct {
struct tty * dz_tty; /* what we work on */
#ifdef notyet