diff options
author | Ian Moffett <ian@osmora.org> | 2025-08-21 20:11:31 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-08-21 20:11:31 -0400 |
commit | 6bd8fc75891cf2c08aaf4584f0110ca1cbbf84db (patch) | |
tree | c4cc4cdda2d307ccd10c7396a10708e365b85958 /sys/include/arch/amd64/cpu.h | |
parent | 6da57a82e1b40f6f1f105aa990475b451d4958e9 (diff) |
kernel/amd64: ipi: Greatly simplify IPI framework
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 <ian@osmora.org>
Diffstat (limited to 'sys/include/arch/amd64/cpu.h')
-rw-r--r-- | sys/include/arch/amd64/cpu.h | 5 |
1 files changed, 2 insertions, 3 deletions
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 */ |