diff options
author | Damien Zammit <damien@zamaudio.com> | 2023-10-01 04:57:40 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-10-01 10:44:04 +0200 |
commit | a670a4f8c649f31f0acf8d5e8fee5f5393227f34 (patch) | |
tree | 48f2f78cb24ec50f561da32a5248ddc64e2f35c1 | |
parent | dd8dc288f5f2395307a766130c37be2c473dfa18 (diff) | |
download | gnumach-a670a4f8c649f31f0acf8d5e8fee5f5393227f34.tar.gz gnumach-a670a4f8c649f31f0acf8d5e8fee5f5393227f34.tar.bz2 gnumach-a670a4f8c649f31f0acf8d5e8fee5f5393227f34.zip |
kd: Handle masking of keyboard interrupt in the driver
Message-Id: <20231001045731.95682-1-damien@zamaudio.com>
-rw-r--r-- | i386/i386at/kd.h | 1 | ||||
-rw-r--r-- | i386/i386at/kd_event.c | 7 | ||||
-rw-r--r-- | i386/i386at/model_dep.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/i386/i386at/kd.h b/i386/i386at/kd.h index 3ee707b5..5bfabce2 100644 --- a/i386/i386at/kd.h +++ b/i386/i386at/kd.h @@ -546,6 +546,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define K_PDN 0x1b,0x5b,0x55 #define K_INS 0x1b,0x5b,0x40 +#define KBD_IRQ 1 /* * This array maps scancodes to Ascii characters (or character diff --git a/i386/i386at/kd_event.c b/i386/i386at/kd_event.c index 25a0ef35..d4809084 100644 --- a/i386/i386at/kd_event.c +++ b/i386/i386at/kd_event.c @@ -66,6 +66,11 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <i386/pio.h> #include <i386at/kd.h> #include <i386at/kd_queue.h> +#ifdef APIC +# include <i386/apic.h> +#else +# include <i386/pic.h> +#endif #include "kd_event.h" @@ -116,6 +121,7 @@ kbdopen(dev_t dev, int flags, io_req_t ior) kdinit(); splx(o_pri); kbdinit(); + unmask_irq(KBD_IRQ); return(0); } @@ -134,6 +140,7 @@ kbdclose( { spl_t s = SPLKD(); + mask_irq(KBD_IRQ); kb_mode = KB_ASCII; kdq_reset(&kbd_queue); splx(s); diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index 97acfdd6..d835999d 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -171,8 +171,6 @@ void machine_init(void) #if defined(APIC) #warning FIXME: Rather unmask them from their respective drivers - /* kd */ - unmask_irq(1); /* com0 */ unmask_irq(4); /* com1 */ |