summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/cpu.c14
-rw-r--r--kernel/cpu.h4
2 files changed, 18 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 83a264b..d5c6675 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -195,3 +195,17 @@ void isr_install(int vec, void *isr, int ist)
}
}
+void ist_install(int ist, void *stack)
+{
+ tss.ist[ist] = (uint64_t)stack;
+}
+
+void int_enable(void)
+{
+ __asm__ ("sti");
+}
+
+void int_disable(void)
+{
+ __asm__ ("cli");
+}
diff --git a/kernel/cpu.h b/kernel/cpu.h
index feded83..15cf44a 100644
--- a/kernel/cpu.h
+++ b/kernel/cpu.h
@@ -1,5 +1,9 @@
#pragma once
void cpu_init(void);
+
void isr_install(int vec, void *isr, int ist);
+void ist_install(int ist, void *stack);
+void int_enable(void);
+void int_disable(void);