From 585cd80002302bcbe900f7121eec9e2b04dedfe8 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Mon, 30 Jun 2025 20:17:26 +0200 Subject: [PATCH] Expose sys_call through libredox This makes it significantly easier to use outside of crates that already depend on redox-rt, making it actually useful to many schemes. --- src/platform/redox/libredox.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/platform/redox/libredox.rs b/src/platform/redox/libredox.rs index 0461540ead..bfeb4b81b6 100644 --- a/src/platform/redox/libredox.rs +++ b/src/platform/redox/libredox.rs @@ -376,3 +376,20 @@ pub unsafe extern "C" fn redox_cur_procfd_v0() -> usize { pub unsafe extern "C" fn redox_cur_thrfd_v0() -> usize { **redox_rt::RtTcb::current().thread_fd() } + +#[no_mangle] +pub unsafe extern "C" fn redox_sys_call_v0( + fd: usize, + payload: *mut u8, + payload_len: usize, + flags: usize, + metadata: *const u64, + metadata_len: usize, +) -> RawResult { + Error::mux(redox_rt::sys::sys_call( + fd, + slice::from_raw_parts_mut(payload, payload_len), + syscall::CallFlags::from_bits_retain(flags), + slice::from_raw_parts(metadata, metadata_len), + )) +}