diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 6863da63f90d1..40a8e4e1bb306 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -18,6 +18,7 @@ pub type dev_t = u64; pub type socklen_t = u32; pub type mode_t = u32; pub type ino64_t = u64; +// FIXME(1.0,deprecate): lfs binding to be removed pub type off64_t = i64; pub type blkcnt64_t = i64; pub type rlim64_t = u64; @@ -3479,7 +3480,10 @@ extern "C" { pub fn fallocate(fd: c_int, mode: c_int, offset: off_t, len: off_t) -> c_int; #[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fallocate64")] pub fn posix_fallocate(fd: c_int, offset: off_t, len: off_t) -> c_int; + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] pub fn readahead(fd: c_int, offset: off64_t, count: size_t) -> ssize_t; + #[cfg(any(target_env = "musl", target_env = "ohos"))] + pub fn readahead(fd: c_int, offset: off_t, count: size_t) -> ssize_t; pub fn getxattr( path: *const c_char, name: *const c_char, @@ -3567,7 +3571,10 @@ extern "C" { // Not available now on Android pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int; + #[cfg(not(any(target_env = "musl", target_env = "ohos")))] pub fn sync_file_range(fd: c_int, offset: off64_t, nbytes: off64_t, flags: c_uint) -> c_int; + #[cfg(any(target_env = "musl", target_env = "ohos"))] + pub fn sync_file_range(fd: c_int, offset: off_t, nbytes: off_t, flags: c_uint) -> c_int; pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int; diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index ae8e4939bbcb2..934a403268ce9 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; pub type wchar_t = u32; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 8d077d280c00e..6139d628f9d97 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -1,7 +1,6 @@ use crate::prelude::*; pub type wchar_t = u32; -pub type stat64 = crate::stat; s! { pub struct stat { diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs index 8c7ccbfc07450..ba9119fc45390 100644 --- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; pub type wchar_t = c_int; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, @@ -140,6 +138,7 @@ s! { pub f_spare: [c_ulong; 5], } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct statfs64 { pub f_type: c_ulong, pub f_bsize: c_ulong, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index cd11a44e43cd4..20a64b34412f8 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -3,8 +3,6 @@ use crate::prelude::*; pub type wchar_t = i32; -pub type stat64 = stat; - s! { pub struct termios { pub c_iflag: crate::tcflag_t, diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs index 5561dcb34d358..ef287875aed50 100644 --- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs @@ -5,8 +5,6 @@ use crate::prelude::*; pub type wchar_t = c_int; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index 737438a594efb..338b311baa3ed 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -3,8 +3,6 @@ use crate::prelude::*; pub type wchar_t = i32; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 5a7b88f4c88f4..74e246023cd67 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -5,8 +5,6 @@ pub type wchar_t = u32; pub type nlink_t = u32; pub type blksize_t = c_int; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index bcf8c96d41ec9..efb524ccddfae 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -8,8 +8,6 @@ pub type wchar_t = c_int; pub type nlink_t = c_uint; pub type blksize_t = c_int; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index c4f8c3d6c8b63..f3f8b18b22a6f 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -5,8 +5,6 @@ pub type wchar_t = i32; pub type nlink_t = c_uint; pub type blksize_t = i64; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, @@ -89,6 +87,7 @@ s! { pub f_spare: [c_ulong; 5], } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct statfs64 { pub f_type: c_ulong, pub f_bsize: c_ulong, diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index 2772f8da96374..07b7ef835788d 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -5,8 +5,6 @@ pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = c_long; -pub type stat64 = stat; - s! { pub struct termios { pub c_iflag: crate::tcflag_t, diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index 8fab6b12e5055..057fa6f1a59b8 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -8,8 +8,6 @@ pub type wchar_t = c_int; pub type nlink_t = c_uint; pub type blksize_t = c_int; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index 2c8b68258a710..cf71ebad6614a 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -5,8 +5,9 @@ pub type blksize_t = i64; pub type nlink_t = u64; pub type wchar_t = i32; pub type greg_t = u64; + +// FIXME(1.0,deprecate): lfs binding to be removed pub type statfs64 = statfs; -pub type stat64 = stat; s! { pub struct ipc_perm { diff --git a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs index 95de7a952885e..5bdf6b6a3dca1 100644 --- a/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs @@ -7,8 +7,6 @@ pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = c_long; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 79ee2d9355646..e5d7d4f28beaf 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -6,8 +6,6 @@ pub type nlink_t = u64; pub type blksize_t = c_long; pub type greg_t = i64; -pub type stat64 = stat; - s! { pub struct stat { pub st_dev: crate::dev_t, diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 130c5022a045c..35318c4c442a0 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -37,11 +37,16 @@ pub type shmatt_t = c_ulong; pub type msgqnum_t = c_ulong; pub type msglen_t = c_ulong; pub type fsblkcnt_t = c_ulonglong; -pub type fsblkcnt64_t = c_ulonglong; pub type fsfilcnt_t = c_ulonglong; -pub type fsfilcnt64_t = c_ulonglong; pub type rlim_t = c_ulonglong; +// FIXME(1.0,deprecate): lfs binding to be removed +pub type fsblkcnt64_t = c_ulonglong; +// FIXME(1.0,deprecate): lfs binding to be removed +pub type fsfilcnt64_t = c_ulonglong; +// FIXME(1.0,deprecate): lfs binding to be removed +pub type stat64 = stat; + cfg_if! { if #[cfg(doc)] { // Used in `linux::arch` to define ioctl constants. @@ -191,6 +196,7 @@ s! { __f_reserved: Padding<[c_int; 6]>, } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct statvfs64 { pub f_bsize: c_ulong, pub f_frsize: c_ulong, @@ -232,6 +238,7 @@ s! { pub l_pid: crate::pid_t, } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct flock64 { pub l_type: c_short, pub l_whence: c_short, @@ -398,6 +405,7 @@ s! { } // MIPS/s390x implementation is special (see arch folders) + // FIXME(1.0,deprecate): lfs binding to be removed #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "s390x")))] pub struct statfs64 { pub f_type: c_ulong, @@ -887,6 +895,7 @@ extern "C" { } // Alias to 64 to mimic glibc's LFS64 support +// FIXME(1.0,deprecate): lfs binding to be removed mod lfs64; pub use self::lfs64::*; diff --git a/src/unix/linux_like/linux_l4re_shared.rs b/src/unix/linux_like/linux_l4re_shared.rs index d5b89bce197df..f2a0bb95fdff3 100644 --- a/src/unix/linux_like/linux_l4re_shared.rs +++ b/src/unix/linux_like/linux_l4re_shared.rs @@ -35,6 +35,7 @@ pub type iconv_t = *mut c_void; cfg_if! { if #[cfg(not(target_env = "gnu"))] { extern_ty! { + // FIXME(1.0,deprecate): lfs binding to be removed pub type fpos64_t; // FIXME(linux): fill this out with a struct } } @@ -283,6 +284,7 @@ s! { pub val: c_int, } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct rlimit64 { pub rlim_cur: crate::rlim64_t, pub rlim_max: crate::rlim64_t, @@ -305,6 +307,7 @@ s! { pub d_name: [c_char; 256], } + // FIXME(1.0,deprecate): lfs binding to be removed pub struct dirent64 { pub d_ino: crate::ino64_t, pub d_off: crate::off64_t, @@ -1926,7 +1929,7 @@ extern "C" { longindex: *mut c_int, ) -> c_int; - #[cfg(not(target_env = "uclibc"))] + #[cfg(not(any(target_env = "uclibc", target_env = "musl", target_env = "ohos")))] pub fn copy_file_range( fd_in: c_int, off_in: *mut crate::off64_t, @@ -1935,6 +1938,16 @@ extern "C" { len: size_t, flags: c_uint, ) -> ssize_t; + + #[cfg(any(target_env = "musl", target_env = "ohos"))] + pub fn copy_file_range( + fd_in: c_int, + off_in: *mut crate::off_t, + fd_out: c_int, + off_out: *mut crate::off_t, + len: size_t, + flags: c_uint, + ) -> ssize_t; } cfg_if! {