aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-03-24 17:44:21 +0100
committerFelix Morgner <felix.morgner@ost.ch>2026-03-27 07:02:35 +0100
commit42895684b631380c8aca94f82209297ac0c0e5f2 (patch)
treeefac91c2f9431ed66c7616da906dd93859127c1f /arch/x86_64
parent3888a111be2e6b2a53b10752de36d58f18fc8874 (diff)
downloadteachos-42895684b631380c8aca94f82209297ac0c0e5f2.tar.xz
teachos-42895684b631380c8aca94f82209297ac0c0e5f2.zip
kapi: extract interrupt enablement
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/include/arch/cpu/interrupts.hpp3
-rw-r--r--arch/x86_64/kapi/cpu.cpp12
-rw-r--r--arch/x86_64/src/cpu/interrupts.cpp10
3 files changed, 10 insertions, 15 deletions
diff --git a/arch/x86_64/include/arch/cpu/interrupts.hpp b/arch/x86_64/include/arch/cpu/interrupts.hpp
index 08ecd9c..b9adb6e 100644
--- a/arch/x86_64/include/arch/cpu/interrupts.hpp
+++ b/arch/x86_64/include/arch/cpu/interrupts.hpp
@@ -111,9 +111,6 @@ namespace arch::cpu
auto static read() -> interrupt_descriptor_table_register;
};
- auto enable_interrupts() -> void;
- auto disable_interrupts() -> void;
-
} // namespace arch::cpu
#endif \ No newline at end of file
diff --git a/arch/x86_64/kapi/cpu.cpp b/arch/x86_64/kapi/cpu.cpp
index 693d328..8ca3847 100644
--- a/arch/x86_64/kapi/cpu.cpp
+++ b/arch/x86_64/kapi/cpu.cpp
@@ -3,7 +3,6 @@
#include "kapi/system.hpp"
#include "arch/cpu/initialization.hpp"
-#include "arch/cpu/interrupts.hpp"
#include <atomic>
@@ -21,7 +20,6 @@ namespace kapi::cpu
arch::cpu::initialize_descriptors();
arch::cpu::initialize_legacy_interrupts();
- arch::cpu::enable_interrupts();
}
auto halt() -> void
@@ -30,4 +28,14 @@ namespace kapi::cpu
__builtin_unreachable();
}
+ auto enable_interrupts() -> void
+ {
+ asm volatile("sti");
+ }
+
+ auto disable_interrupts() -> void
+ {
+ asm volatile("cli");
+ }
+
} // namespace kapi::cpu
diff --git a/arch/x86_64/src/cpu/interrupts.cpp b/arch/x86_64/src/cpu/interrupts.cpp
index 6f66bbd..dc236e6 100644
--- a/arch/x86_64/src/cpu/interrupts.cpp
+++ b/arch/x86_64/src/cpu/interrupts.cpp
@@ -168,14 +168,4 @@ namespace arch::cpu
return idtr;
}
- auto enable_interrupts() -> void
- {
- asm volatile("sti");
- }
-
- auto disable_interrupts() -> void
- {
- asm volatile("cli");
- }
-
} // namespace arch::cpu \ No newline at end of file