From 85b65fd1185bf48820c9a432c700d21d0cdd7d73 Mon Sep 17 00:00:00 2001 From: Matheus Date: Tue, 10 Jan 2023 01:55:35 -0300 Subject: [PATCH] x86_64 isr and idt: nvme --- src/arch/x86_64/idt.c | 2 ++ src/arch/x86_64/include/arch/idt.h | 1 + src/arch/x86_64/include/arch/isr.h | 1 + src/arch/x86_64/isr.asm | 1 + 4 files changed, 5 insertions(+) diff --git a/src/arch/x86_64/idt.c b/src/arch/x86_64/idt.c index 3a668f38..4566c1dc 100644 --- a/src/arch/x86_64/idt.c +++ b/src/arch/x86_64/idt.c @@ -72,6 +72,8 @@ void idt_bspinit(){ idt_setentry(&idt[VECTOR_PS2KBD], asmisr_ps2kbd, 0x28, FLAGS_PRESENT | FLAGS_TYPE_INTERRUPT, 0); + idt_setentry(&idt[VECTOR_NVME], asmisr_nvme, 0x28, FLAGS_PRESENT | FLAGS_TYPE_INTERRUPT, 0); + idt_reload(); } diff --git a/src/arch/x86_64/include/arch/idt.h b/src/arch/x86_64/include/arch/idt.h index d9649bbb..866860fb 100644 --- a/src/arch/x86_64/include/arch/idt.h +++ b/src/arch/x86_64/include/arch/idt.h @@ -30,6 +30,7 @@ #define VECTOR_LAPICNMI 0x21 #define VECTOR_MMUINVAL 0x22 #define VECTOR_PS2MOUSE 0x3F +#define VECTOR_NVME 0x60 #define VECTOR_PS2KBD 0x40 #define VECTOR_TIMER 0x80 diff --git a/src/arch/x86_64/include/arch/isr.h b/src/arch/x86_64/include/arch/isr.h index 7aa3ed11..9cb05d11 100644 --- a/src/arch/x86_64/include/arch/isr.h +++ b/src/arch/x86_64/include/arch/isr.h @@ -16,5 +16,6 @@ extern void asmisr_timer(); extern void asmisr_simd(); extern void asmisr_nm(); extern void asmisr_gpf(); +extern void asmisr_nvme(); #endif diff --git a/src/arch/x86_64/isr.asm b/src/arch/x86_64/isr.asm index ff9aa64c..43fc4d21 100644 --- a/src/arch/x86_64/isr.asm +++ b/src/arch/x86_64/isr.asm @@ -150,6 +150,7 @@ asmisr_panic: hlt jmp .hlt ; NMI stuff +isr asmisr_nvme, nvme_irq, 0x30 except asmisr_pagefault, isr_pagefault, 0xE except asmisr_gpf, isr_gpf, 0xD except asmisr_nm, isr_except, 0x7