X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/28c176b668c841a3b7fb093faccf0efa39257603..a35bb9648f1a9eddb071a50ff6a4dcdb8f379f24:/lunaix-os/arch/x86/exceptions/isrm.c diff --git a/lunaix-os/arch/x86/exceptions/isrm.c b/lunaix-os/arch/x86/exceptions/isrm.c index 89ff616..a3c223d 100644 --- a/lunaix-os/arch/x86/exceptions/isrm.c +++ b/lunaix-os/arch/x86/exceptions/isrm.c @@ -1,10 +1,10 @@ -#include #include #include +#include -#include "sys/x86_isa.h" -#include "sys/ioapic.h" -#include "sys/apic.h" +#include "asm/x86.h" +#include "asm/soc/ioapic.h" +#include "asm/soc/apic.h" /* total: 256 ivs @@ -51,6 +51,11 @@ __ivalloc_within(size_t a, size_t b, isr_cb handler) k++; } + if (j == 8) { + j = 0; + continue; + } + if (k > b) { break; } @@ -160,6 +165,24 @@ isrm_notify_eos(cpu_t id) isrm_notify_eoi(id, LUNAIX_SCHED); } +msi_vector_t +isrm_msialloc(isr_cb handler) +{ + unsigned int iv = isrm_ivexalloc(handler); + + return (msi_vector_t){ + .msi_addr = 0xfee00000, + .msi_data = iv, + .mapped_iv = iv + }; +} + +int +isrm_bind_dtnode(struct dt_intr_node* node) +{ + fail("not supported"); +} + static void __intc_init()