From fb6969ccbe5baf4e0645b9bd42d0a8dbf6d62b07 Mon Sep 17 00:00:00 2001
From: Astro <astro@spaceboyz.net>
Date: Fri, 23 Aug 2019 15:34:32 +0200
Subject: [PATCH] add os

---
 l0dable/src/lib.rs |  3 ++-
 l0dable/src/os.rs  | 23 +++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 l0dable/src/os.rs

diff --git a/l0dable/src/lib.rs b/l0dable/src/lib.rs
index e3960fdb..17623a48 100644
--- a/l0dable/src/lib.rs
+++ b/l0dable/src/lib.rs
@@ -65,8 +65,9 @@ pub mod bindings {
 
     include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
 }
-use bindings::*;
 
+mod os;
+pub use os::*;
 mod display;
 pub use display::{Display, Color, LineStyle, FillStyle};
 mod buttons;
diff --git a/l0dable/src/os.rs b/l0dable/src/os.rs
new file mode 100644
index 00000000..af7a2283
--- /dev/null
+++ b/l0dable/src/os.rs
@@ -0,0 +1,23 @@
+use super::bindings::*;
+
+pub fn exec(path: &str) -> ! {
+    let mut pathbuf = super::str_to_cstr(path);
+    unsafe {
+        epic_exec(pathbuf.as_mut_ptr());
+    }
+    unreachable!()
+}
+
+pub fn exit(ret: i32) -> ! {
+    unsafe {
+        epic_exit(ret);
+    }
+    unreachable!()
+}
+
+pub fn system_reset() -> ! {
+    unsafe {
+        epic_system_reset();
+    }
+    unreachable!()
+}
-- 
GitLab