X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/7804c2dae30700296c3205aaf7f546f491999bf4..d1b1c8d9119229dbeed06cd252917e54a1cb77f6:/lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 diff --git a/lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 b/lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 index 01ab639..beec564 100644 --- a/lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 +++ b/lunaix-os/scripts/templates/i386/i386_isrdef.c.j2 @@ -1,5 +1,7 @@ -#include "i386_intr.h" +/* Generated from {{ data["template"] }}. Do NOT modify */ + #include +#include #define IDT_INTERRUPT 0x70 #define KERNEL_CS 0x8 @@ -8,22 +10,22 @@ #define DECLARE_ISR(iv) extern void _asm_isr##iv(); -#define ISR_INSTALL(idt, iv, isr) \ - _idt[iv] = ((ptr_t)isr & 0xffff0000) | IDT_ATTR(0, IDT_INTERRUPT); \ +#define ISR_INSTALL(idt, iv, isr, dpl) \ + _idt[iv] = ((ptr_t)isr & 0xffff0000) | IDT_ATTR(dpl, IDT_INTERRUPT); \ _idt[iv] <<= 32; \ _idt[iv] |= (KERNEL_CS << 16) | ((ptr_t)isr & 0x0000ffff); \ u64_t _idt[IDT_ENTRY]; u16_t _idt_limit = sizeof(_idt) - 1; -{% for isrdef in data["exception"] -%} - DECLARE_ISR({{ isrdef["index"] }}) +{% for isrdef in data["exception"]["ivdefs"] -%} + DECLARE_ISR({{ isrdef["iv"] }}) {% endfor %} void exception_install_handler() { -{% for isrdef in data["exception"] %} - ISR_INSTALL(_idt, {{ isrdef["index"] }}, _asm_isr{{ isrdef["index"] }}) +{% for isrdef in data["exception"]["ivdefs"] %} + ISR_INSTALL(_idt, {{ isrdef["iv"] }}, _asm_isr{{ isrdef["iv"] }}, {{ isrdef["dpl"] }}) {% endfor %} } \ No newline at end of file