summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/pcvt/pcvt_kbd.c
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1996-08-10 22:14:36 +0000
committerjoerg <joerg@FreeBSD.org>1996-08-10 22:14:36 +0000
commitb0b6f5d7b9be67f05cb8414a19ad952f7ff1b4e5 (patch)
treef5a4d22a74413612b69d8f8087ed8b58b142eef9 /sys/i386/isa/pcvt/pcvt_kbd.c
parentc1fd4cb7887898290a1d9bb895648f3889097aac (diff)
downloadFreeBSD-src-b0b6f5d7b9be67f05cb8414a19ad952f7ff1b4e5.zip
FreeBSD-src-b0b6f5d7b9be67f05cb8414a19ad952f7ff1b4e5.tar.gz
Fix many long-standing bugs and problems with pcvt, namely:
. make pccncheck() work even when interrupts are disabled, so the ``Press a key on the console...'' procedure will work, . make kernel colors #ifndef, so they can be overridden from the config file, . use shutdown_nice() instead of cpu_reset() if Ctrl-Alt-Del is enabled, . allow pccngetc() to return more than a single character, so the arrow keys will work (and thus visual UserConfig!), . fix a warning. This closes all know PRs related to pcvt, in particular #845, #1236, and #1265. PR #991 is a duplicate for 845, and PR #1283 has already been fixed earlier in rev 1.11 of pcvt_conf.h. Submitted by: Ulf Kieber (kieber@sax.de), for the kernel color fix
Diffstat (limited to 'sys/i386/isa/pcvt/pcvt_kbd.c')
-rw-r--r--sys/i386/isa/pcvt/pcvt_kbd.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/i386/isa/pcvt/pcvt_kbd.c b/sys/i386/isa/pcvt/pcvt_kbd.c
index ae70327..e39b04e 100644
--- a/sys/i386/isa/pcvt/pcvt_kbd.c
+++ b/sys/i386/isa/pcvt/pcvt_kbd.c
@@ -935,10 +935,10 @@ loop:
/* see if there is data from the keyboard available either from */
/* the keyboard fifo or from the 8042 keyboard controller */
- if ((( noblock) && (pcvt_kbd_count)) ||
- ((!noblock) && (inb(CONTROLLER_CTRL) & STATUS_OUTPBF)))
+ if ((noblock && pcvt_kbd_count) ||
+ ((!noblock || kbd_polling) && (inb(CONTROLLER_CTRL) & STATUS_OUTPBF)))
{
- if (!noblock) /* source = 8042 */
+ if (!noblock || kbd_polling) /* source = 8042 */
{
PCVT_KBD_DELAY(); /* 7 us delay */
dt = inb(CONTROLLER_DATA); /* get from obuf */
@@ -1245,10 +1245,10 @@ no_mouse_event:
/* see if there is data from the keyboard available either from */
/* the keyboard fifo or from the 8042 keyboard controller */
- if ((( noblock) && (pcvt_kbd_count)) ||
- ((!noblock) && (inb(CONTROLLER_CTRL) & STATUS_OUTPBF)))
+ if ((noblock && pcvt_kbd_count) ||
+ ((!noblock || kbd_polling) && (inb(CONTROLLER_CTRL) & STATUS_OUTPBF)))
{
- if (!noblock) /* source = 8042 */
+ if (!noblock || kbd_polling) /* source = 8042 */
{
PCVT_KBD_DELAY(); /* 7 us delay */
dt = inb(CONTROLLER_DATA);
@@ -1355,7 +1355,7 @@ regular:
#if PCVT_CTRL_ALT_DEL /* Check for cntl-alt-del */
if((key == 76) && ctrl_down && (meta_down||altgr_down))
- cpu_reset();
+ shutdown_nice();
#endif /* PCVT_CTRL_ALT_DEL */
#if !(PCVT_NETBSD || PCVT_FREEBSD >= 200)
OpenPOWER on IntegriCloud