aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorJohannes Stoelp <johannes.stoelp@gmail.com>2022-05-01 17:50:00 +0200
committerJohannes Stoelp <johannes.stoelp@gmail.com>2022-05-01 17:50:00 +0200
commit4754b66f72a8fbfd48e30ae0bd12a44d13a4ce10 (patch)
tree16551dd04684ff6e7bdc1107927faaafb6ff9bd9 /src/main.rs
downloadrv64i-linux-user-no-std-4754b66f72a8fbfd48e30ae0bd12a44d13a4ce10.tar.gz
rv64i-linux-user-no-std-4754b66f72a8fbfd48e30ae0bd12a44d13a4ce10.zip
initial commit
Build small no_std example for rv64i target. This code executes some linux syscalls as demo and therefore expects to be executed in rv64 linux.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..f1ea8b0
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,20 @@
+#![no_std]
+#![no_main]
+
+use user_sw::{eprintln, println, sys};
+
+fn main() {
+ println!("Hello {} from rust main().", 1337);
+}
+
+#[no_mangle]
+pub extern "C" fn _start() -> ! {
+ main();
+ sys::exit(0);
+}
+
+#[panic_handler]
+fn panic_handler(info: &core::panic::PanicInfo) -> ! {
+ eprintln!("{}", info);
+ sys::exit(42);
+}