summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/.cargo/config3
-rw-r--r--kernel/Cargo.toml9
-rw-r--r--kernel/README.md2
-rw-r--r--kernel/src/lib.rs13
-rw-r--r--kernel/x86_64-uff.json15
5 files changed, 42 insertions, 0 deletions
diff --git a/kernel/.cargo/config b/kernel/.cargo/config
new file mode 100644
index 0000000..e698526
--- /dev/null
+++ b/kernel/.cargo/config
@@ -0,0 +1,3 @@
+
+[build]
+target = "x86_64-uff.json"
diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml
new file mode 100644
index 0000000..410d6d7
--- /dev/null
+++ b/kernel/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "kernel"
+version = "0.1.0"
+authors = ["Dennis Kobert <dennis@kobert.dev>",
+ "Jan Zwerschke"]
+edition = "2018"
+
+[lib]
+crate-type = ["staticlib"]
diff --git a/kernel/README.md b/kernel/README.md
index cf458c8..1b2c7a8 100644
--- a/kernel/README.md
+++ b/kernel/README.md
@@ -6,3 +6,5 @@ Required tools:
* xorriso
* grub
* nasm
+* rust
+* cargo xbuild
diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs
new file mode 100644
index 0000000..066a526
--- /dev/null
+++ b/kernel/src/lib.rs
@@ -0,0 +1,13 @@
+#![no_std]
+#![no_main]
+
+#[no_mangle]
+pub extern "C" fn _start() -> ! {
+ loop {}
+}
+
+#[panic_handler]
+#[no_mangle]
+pub extern "C" fn panic_handler(_info: &core::panic::PanicInfo) -> ! {
+ loop {}
+}
diff --git a/kernel/x86_64-uff.json b/kernel/x86_64-uff.json
new file mode 100644
index 0000000..7d2110d
--- /dev/null
+++ b/kernel/x86_64-uff.json
@@ -0,0 +1,15 @@
+{
+ "llvm-target": "x86_64-unknown-none",
+ "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128",
+ "arch": "x86_64",
+ "target-endian": "little",
+ "target-pointer-width": "64",
+ "target-c-int-width": "32",
+ "os": "none",
+ "executables": true,
+ "linker-flavor": "ld.lld",
+ "linker": "rust-lld",
+ "panic-strategy": "abort",
+ "disable-redzone": true,
+ "features": "-mmx,-sse,+soft-float"
+}