From df91c67cf0bad218dd80ac2a98fb841615346ab9 Mon Sep 17 00:00:00 2001
From: 4lDO2 <4lDO2@protonmail.com>
Date: Mon, 18 Mar 2024 17:18:42 +0100
Subject: [PATCH] Implement redox_mkfs_v1.

---
 src/platform/redox/libredox.rs | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/platform/redox/libredox.rs b/src/platform/redox/libredox.rs
index 2954e745..15ea59a7 100644
--- a/src/platform/redox/libredox.rs
+++ b/src/platform/redox/libredox.rs
@@ -3,7 +3,9 @@ use core::{slice, str};
 use syscall::{Error, Result, WaitFlags, EMFILE};
 
 use crate::{
-    header::{errno::EINVAL, signal::sigaction, sys_stat::UTIME_NOW, time::timespec},
+    header::{
+        errno::EINVAL, signal::sigaction, sys_stat::UTIME_NOW, sys_uio::iovec, time::timespec,
+    },
     platform::types::*,
 };
 
@@ -319,3 +321,18 @@ pub unsafe extern "C" fn redox_strerror_v1(
         Ok(len)
     })())
 }
+
+#[no_mangle]
+pub unsafe extern "C" fn redox_mkns_v1(
+    names: *const iovec,
+    num_names: usize,
+    flags: u32,
+) -> RawResult {
+    Error::mux((|| {
+        if flags != 0 {
+            return Err(Error::new(EINVAL));
+        }
+        // Kernel does the UTF-8 validation.
+        syscall::mkns(core::slice::from_raw_parts(names.cast(), num_names))
+    })())
+}
-- 
GitLab