aboutsummaryrefslogtreecommitdiff
path: root/sys/arch/amd64/isa/i8042.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-05-19 23:56:22 -0400
committerIan Moffett <ian@osmora.org>2025-05-19 23:56:22 -0400
commit5dfbc067d095b2bbaefad6d77469f4d701bdd539 (patch)
treeea38f2a13cd18a7949046bd1697eade81647d361 /sys/arch/amd64/isa/i8042.c
parent87013e38d1940ad183d3cdb42224fb6dcd9e7e03 (diff)
kernel/amd64: Deprecate intr_alloc_vector()mainexpt
Replace intr_alloc_vector() with a cleaner and more machine independent intr_register() Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch/amd64/isa/i8042.c')
-rw-r--r--sys/arch/amd64/isa/i8042.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/arch/amd64/isa/i8042.c b/sys/arch/amd64/isa/i8042.c
index 53679aa..11532ec 100644
--- a/sys/arch/amd64/isa/i8042.c
+++ b/sys/arch/amd64/isa/i8042.c
@@ -211,8 +211,8 @@ dev_send(bool aux, uint8_t data)
return inb(I8042_DATA);
}
-void
-i8042_kb_event(void)
+static int
+i8042_kb_event(void *sp)
{
struct cpu_info *ci;
struct cons_input input;
@@ -234,21 +234,21 @@ i8042_kb_event(void)
done:
ci->irq_mask &= CPU_IRQ(1);
spinlock_release(&isr_lock);
- lapic_eoi();
+ return 1; /* handled */
}
static void
i8042_en_intr(void)
{
uint8_t conf;
- int vec;
+ struct intr_hand ih;
i8042_write(I8042_CMD, I8042_DISABLE_PORT0);
- vec = intr_alloc_vector("i8042-kb", IPL_BIO);
- idt_set_desc(vec, IDT_INT_GATE, ISR(i8042_kb_isr), IST_HW_IRQ);
- ioapic_set_vec(KB_IRQ, vec);
- ioapic_irq_unmask(KB_IRQ);
+ ih.func = i8042_kb_event;
+ ih.priority = IPL_BIO;
+ ih.irq = KB_IRQ;
+ intr_register("i8042-kb", &ih);
/* Setup config bits */
conf = i8042_read_conf();