diff options
| author | ragge <ragge@NetBSD.org> | 1998-06-14 11:52:35 +0000 |
|---|---|---|
| committer | ragge <ragge@NetBSD.org> | 1998-06-14 11:52:35 +0000 |
| commit | a4d0eae36b3633835fd45bbc04a363f0db1300d0 (patch) | |
| tree | 3cca76978a610c1223344c8c2d77070d92306dc1 /sys/dev/dec | |
| parent | 2d869bbacfbe5deb50d1ed5f8a9f6934ae521b0a (diff) | |
Add catch function for keyboard.
Diffstat (limited to 'sys/dev/dec')
| -rw-r--r-- | sys/dev/dec/qbus/dz.c | 7 | ||||
| -rw-r--r-- | sys/dev/dec/qbus/dzvar.h | 3 |
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 |
