aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/test_support/kapi/cpu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/test_support/kapi/cpu.cpp')
-rw-r--r--kernel/src/test_support/kapi/cpu.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/kernel/src/test_support/kapi/cpu.cpp b/kernel/src/test_support/kapi/cpu.cpp
new file mode 100644
index 0000000..3ecaadc
--- /dev/null
+++ b/kernel/src/test_support/kapi/cpu.cpp
@@ -0,0 +1,29 @@
+#include "kernel/tests/cpu.hpp"
+
+#include <kapi/cpu.hpp>
+
+#include <atomic>
+#include <stdexcept>
+
+namespace kapi::cpu
+{
+
+ auto init() -> void
+ {
+ auto static initialized = std::atomic_flag{};
+ if (initialized.test_and_set())
+ {
+ throw std::logic_error("kapi::cpu::init() called more than once");
+ }
+
+ // TODO: make sure that simulated interrupt can run.
+
+ return;
+ }
+
+ auto halt() -> void
+ {
+ throw kernel::tests::cpu::halt{};
+ }
+
+} // namespace kapi::cpu \ No newline at end of file