summaryrefslogtreecommitdiff
path: root/crates/kernel/src/arch/hosted.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/kernel/src/arch/hosted.rs')
-rw-r--r--crates/kernel/src/arch/hosted.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/crates/kernel/src/arch/hosted.rs b/crates/kernel/src/arch/hosted.rs
new file mode 100644
index 0000000..df62bab
--- /dev/null
+++ b/crates/kernel/src/arch/hosted.rs
@@ -0,0 +1,29 @@
+//! Support for running under an operating system that provides libstd, for testing.
+
+extern crate std;
+
+use std::{thread::sleep, time::Duration};
+
+/// The size of a page of memory.
+///
+/// Obviously, this value is unrealistic, but for now we just need the hosted arch to compile.
+pub const PAGE_SIZE: usize = 64;
+
+/// The number of bits in the size of a page of memory.
+///
+/// Obviously, this value is unrealistic, but for now we just need the hosted arch to compile.
+pub const PAGE_SIZE_BITS: usize = 6;
+
+/// No-opped interrupt support.
+///
+/// TODO: Should this use Unix signals?
+pub mod interrupts {
+ pub fn disable_interrupts() {}
+}
+
+/// Sleeps forever, in one-second chunks.
+pub fn sleep_forever() -> ! {
+ loop {
+ sleep(Duration::from_secs(1));
+ }
+}