From a561e682a37f081b62a7b28a7dc48a7749a702b3 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 22 Apr 2023 13:20:18 +0100 Subject: [PATCH] sync implementation --- src/header/unistd/mod.rs | 2 +- src/platform/linux/mod.rs | 4 ++++ src/platform/pal/mod.rs | 2 ++ src/platform/redox/mod.rs | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs index 2738b71123..5bbc40d3e5 100644 --- a/src/header/unistd/mod.rs +++ b/src/header/unistd/mod.rs @@ -647,7 +647,7 @@ pub unsafe extern "C" fn symlink(path1: *const c_char, path2: *const c_char) -> // #[no_mangle] pub extern "C" fn sync() { - unimplemented!(); + Sys::sync(); } #[no_mangle] diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs index bd67fa53d6..48b6bf0635 100644 --- a/src/platform/linux/mod.rs +++ b/src/platform/linux/mod.rs @@ -476,6 +476,10 @@ impl Pal for Sys { e(unsafe { syscall!(SYMLINKAT, path1.as_ptr(), AT_FDCWD, path2.as_ptr()) }) as c_int } + fn sync() -> c_int { + e(unsafe { syscall!(SYNC) }) as c_int + } + fn umask(mask: mode_t) -> mode_t { unsafe { syscall!(UMASK, mask) as mode_t } } diff --git a/src/platform/pal/mod.rs b/src/platform/pal/mod.rs index 8d27b1db3a..2aba33ede1 100644 --- a/src/platform/pal/mod.rs +++ b/src/platform/pal/mod.rs @@ -175,6 +175,8 @@ pub trait Pal { fn symlink(path1: &CStr, path2: &CStr) -> c_int; + fn sync() -> c_int; + fn umask(mask: mode_t) -> mode_t; fn uname(utsname: *mut utsname) -> c_int; diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs index a6d5e18853..f9145284b1 100644 --- a/src/platform/redox/mod.rs +++ b/src/platform/redox/mod.rs @@ -827,6 +827,10 @@ impl Pal for Sys { 0 } + fn sync() -> c_int { + 0 + } + fn umask(mask: mode_t) -> mode_t { e(syscall::umask(mask as usize)) as mode_t }