about summary refs log tree commit diff
path: root/library/std/src/sys/xous/mod.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-09-19 07:38:20 +0000
committerbors <bors@rust-lang.org>2023-09-19 07:38:20 +0000
commitae9c330629f1fb03a636cb8af367fead024793db (patch)
tree2e52f6cebdbb4987bbe71df37ae3497d6f3d7826 /library/std/src/sys/xous/mod.rs
parentaf78bae565e85b9c5698ee909af0652674eca6d4 (diff)
parent6c32a64962f591e6fd4cab72f63555b157684323 (diff)
downloadrust-ae9c330629f1fb03a636cb8af367fead024793db.tar.gz
rust-ae9c330629f1fb03a636cb8af367fead024793db.zip
Auto merge of #104101 - betrusted-io:xous-libstd-initial, r=bjorn3
Add initial libstd support for Xous

This patchset adds some minimal support to the tier-3 target `riscv32imac-unknown-xous-elf`. The following features are supported:

* alloc
* thread creation and joining
* thread sleeping
* thread_local
* panic_abort
* mutex
* condvar
* stdout

Additionally, internal support for the various Xous primitives surrounding IPC have been added as part of the Xous FFI. These may be exposed as part of `std::os::xous::ffi` in the future, however for now they are not public.

This represents the minimum viable product. A future patchset will add support for networking and filesystem support.
Diffstat (limited to 'library/std/src/sys/xous/mod.rs')
-rw-r--r--library/std/src/sys/xous/mod.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/library/std/src/sys/xous/mod.rs b/library/std/src/sys/xous/mod.rs
new file mode 100644
index 00000000000..6d5c218d195
--- /dev/null
+++ b/library/std/src/sys/xous/mod.rs
@@ -0,0 +1,37 @@
+#![deny(unsafe_op_in_unsafe_fn)]
+
+pub mod alloc;
+#[path = "../unsupported/args.rs"]
+pub mod args;
+#[path = "../unix/cmath.rs"]
+pub mod cmath;
+#[path = "../unsupported/env.rs"]
+pub mod env;
+#[path = "../unsupported/fs.rs"]
+pub mod fs;
+#[path = "../unsupported/io.rs"]
+pub mod io;
+pub mod locks;
+#[path = "../unsupported/net.rs"]
+pub mod net;
+#[path = "../unsupported/once.rs"]
+pub mod once;
+pub mod os;
+#[path = "../unix/os_str.rs"]
+pub mod os_str;
+#[path = "../unix/path.rs"]
+pub mod path;
+#[path = "../unsupported/pipe.rs"]
+pub mod pipe;
+#[path = "../unsupported/process.rs"]
+pub mod process;
+pub mod stdio;
+pub mod thread;
+pub mod thread_local_key;
+#[path = "../unsupported/thread_parking.rs"]
+pub mod thread_parking;
+pub mod time;
+
+#[path = "../unsupported/common.rs"]
+mod common;
+pub use common::*;