From a7e738f1c7d7a0eb183bc25db2e1a573706bb565 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Wed, 19 Nov 2025 21:24:42 -0500 Subject: kern/amd64: lapic: Add EOI function Signed-off-by: Ian Moffett --- sys/arch/amd64/cpu/lapic.c | 7 +++++++ sys/inc/arch/amd64/lapic.h | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/sys/arch/amd64/cpu/lapic.c b/sys/arch/amd64/cpu/lapic.c index 076ddd3..2ff8802 100644 --- a/sys/arch/amd64/cpu/lapic.c +++ b/sys/arch/amd64/cpu/lapic.c @@ -62,6 +62,7 @@ #define LAPIC_REG_TCCR 0x0390 /* Timer current counter register */ #define LAPIC_REG_TDCR 0x03E0 /* Timer divide configuration register */ #define LAPIC_REG_LVTTMR 0x0320 /* LVT timer entry */ +#define LAPIC_REG_EOI 0x00B0 #define LAPIC_REG_ICRLO 0x0300U /* Interrupt Command Low Register */ #define LAPIC_REG_ICRHI 0x0310U /* Interrupt Command High Register */ @@ -372,6 +373,12 @@ lapic_oneshot_usec(struct mcb *mcb, size_t usec) lapic_timer_oneshot(mcb, mcb->lapic_tmr_freq / 1000000); } +void +lapic_eoi(struct mcb *mcb) +{ + lapic_write(mcb, LAPIC_REG_EOI, 0); +} + void lapic_init(void) { diff --git a/sys/inc/arch/amd64/lapic.h b/sys/inc/arch/amd64/lapic.h index d22a560..bc72717 100644 --- a/sys/inc/arch/amd64/lapic.h +++ b/sys/inc/arch/amd64/lapic.h @@ -97,6 +97,11 @@ struct lapic_ipi { */ void lapic_oneshot_usec(struct mcb *mcb, size_t usec); +/* + * Send an end-of-interrupt + */ +void lapic_eoi(struct mcb *mcb); + /* * Read the current local APIC id */ -- cgit v1.2.3