more stuff
This commit is contained in:
+3
-4
@@ -5,6 +5,7 @@
|
||||
#include <zinnia/percpu.h>
|
||||
#include <zinnia/print.h>
|
||||
#include <zinnia/sched.h>
|
||||
#include <arch/sched.h>
|
||||
#include <bits/sched.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
@@ -36,6 +37,7 @@ void interrupt_handler(struct arch_context* ctx) {
|
||||
bool old = irq_set_interrupted(true);
|
||||
|
||||
uint64_t isr = ctx->isr;
|
||||
|
||||
switch (isr) {
|
||||
case IDT_PF:
|
||||
uint64_t cr2;
|
||||
@@ -48,13 +50,10 @@ void interrupt_handler(struct arch_context* ctx) {
|
||||
sched_reschedule(&cpu->sched);
|
||||
}
|
||||
break;
|
||||
case 0x20 ...(0x20 + ARRAY_SIZE(cpu->arch.irq_lines)):
|
||||
default:
|
||||
struct irq_line* line = cpu->arch.irq_lines[isr - 0x20];
|
||||
assert(line, "Unhandled interrupt on ISR %lu\n", isr);
|
||||
// TODO: irq_raise(line);
|
||||
break;
|
||||
default:
|
||||
panic("Unhandled exception on ISR %lu\n", isr);
|
||||
}
|
||||
|
||||
irq_set_interrupted(old);
|
||||
|
||||
Reference in New Issue
Block a user