From 6bd8fc75891cf2c08aaf4584f0110ca1cbbf84db Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 21 Aug 2025 20:11:31 -0400 Subject: kernel/amd64: ipi: Greatly simplify IPI framework MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous IPI framework design was quite an overengineered mess thanks to our friend, Φ of the body. - Use a flat array instead of a weird bitmap - Only use one ISR and chain the functions Signed-off-by: Ian Moffett --- sys/include/arch/amd64/cpu.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sys/include/arch/amd64/cpu.h') diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h index cf073fe..5adff29 100644 --- a/sys/include/arch/amd64/cpu.h +++ b/sys/include/arch/amd64/cpu.h @@ -52,7 +52,7 @@ #define CPU_VENDOR_INTEL 0x00000001 #define CPU_VENDOR_AMD 0x00000002 -typedef uint16_t ipi_pend_t; +typedef uint32_t ipi_pend_t; struct cpu_info { uint32_t apicid; @@ -60,8 +60,7 @@ struct cpu_info { uint32_t vendor; /* Vendor (see CPU_VENDOR_*) */ uint8_t preempt : 1; /* CPU is preemptable */ uint8_t ipi_dispatch : 1; /* 1: IPIs being dispatched */ - uint8_t ipi_id; - ipi_pend_t ipi_pending[N_IPIVEC]; + ipi_pend_t ipi_pending; uint8_t id; /* MI Logical ID */ uint8_t model : 4; /* CPU model number */ uint8_t family : 4; /* CPU family ID */ -- cgit v1.2.3