diff options
author | David Carlier <devnexen@gmail.com> | 2022-09-04 07:53:39 +0100 |
---|---|---|
committer | David Carlier <devnexen@gmail.com> | 2022-09-19 09:29:19 +0100 |
commit | 152bb49b118bc9e3ddb33c6263d8ecadb71c24d2 (patch) | |
tree | fead38aa3a2f63940b9f4b9b3e2b7422a5ba4537 /src | |
parent | 6eee580b51455131b10b780087025379a591ceb6 (diff) | |
download | rust-libc-152bb49b118bc9e3ddb33c6263d8ecadb71c24d2.tar.gz |
linux add FICLONE* ioctl.
Diffstat (limited to 'src')
-rw-r--r-- | src/unix/linux_like/linux/arch/generic/mod.rs | 7 | ||||
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 7 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b32/mod.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/mips64.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/powerpc64.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/riscv64/mod.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/s390x.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/musl/b64/x86_64/mod.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/uclibc/arm/mod.rs | 1 | ||||
-rw-r--r-- | src/unix/linux_like/linux/uclibc/x86_64/mod.rs | 1 |
11 files changed, 23 insertions, 0 deletions
diff --git a/src/unix/linux_like/linux/arch/generic/mod.rs b/src/unix/linux_like/linux/arch/generic/mod.rs index 3205799553..5265cdd173 100644 --- a/src/unix/linux_like/linux/arch/generic/mod.rs +++ b/src/unix/linux_like/linux/arch/generic/mod.rs @@ -104,6 +104,13 @@ cfg_if! { pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68; } } + +cfg_if! { + if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] { + pub const FICLONE: ::c_ulong = 0x40049409; + pub const FICLONERANGE: ::c_ulong = 0x4020940D; + } +} // pub const SO_PREFER_BUSY_POLL: ::c_int = 69; // pub const SO_BUSY_POLL_BUDGET: ::c_int = 70; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 512d5f0ffb..43f6399e44 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -596,6 +596,13 @@ s! { pub nla_len: u16, pub nla_type: u16, } + + pub struct file_clone_range { + pub src_fd: ::__s64, + pub src_offset: ::__u64, + pub src_length: ::__u64, + pub dest_offset: ::__u64, + } } s_no_extra_traits! { diff --git a/src/unix/linux_like/linux/musl/b32/mod.rs b/src/unix/linux_like/linux/musl/b32/mod.rs index 6d2ecf2d83..63824fbf56 100644 --- a/src/unix/linux_like/linux/musl/b32/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/mod.rs @@ -3,6 +3,7 @@ pub type c_ulong = u32; pub type nlink_t = u32; pub type blksize_t = ::c_long; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; pub type regoff_t = ::c_int; s! { 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 845707dcd9..4efa0768f7 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -1,5 +1,6 @@ pub type c_char = u8; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; pub type wchar_t = u32; pub type nlink_t = u32; pub type blksize_t = ::c_int; diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs index 1ed13f66bf..a11feaff6e 100644 --- a/src/unix/linux_like/linux/musl/b64/mips64.rs +++ b/src/unix/linux_like/linux/musl/b64/mips64.rs @@ -1,6 +1,7 @@ pub type c_char = i8; pub type wchar_t = i32; pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; pub type nlink_t = u64; pub type blksize_t = i64; diff --git a/src/unix/linux_like/linux/musl/b64/powerpc64.rs b/src/unix/linux_like/linux/musl/b64/powerpc64.rs index f17d72cb14..5f391df6ca 100644 --- a/src/unix/linux_like/linux/musl/b64/powerpc64.rs +++ b/src/unix/linux_like/linux/musl/b64/powerpc64.rs @@ -1,6 +1,7 @@ pub type c_char = u8; pub type wchar_t = i32; pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; pub type nlink_t = u64; pub type blksize_t = ::c_long; 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 fcb28c3cf2..f354293e0d 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -8,6 +8,7 @@ pub type blksize_t = ::c_int; pub type fsblkcnt64_t = ::c_ulong; pub type fsfilcnt64_t = ::c_ulong; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct pthread_attr_t { diff --git a/src/unix/linux_like/linux/musl/b64/s390x.rs b/src/unix/linux_like/linux/musl/b64/s390x.rs index cb6237abcf..df3024bf4c 100644 --- a/src/unix/linux_like/linux/musl/b64/s390x.rs +++ b/src/unix/linux_like/linux/musl/b64/s390x.rs @@ -4,6 +4,7 @@ pub type nlink_t = u64; pub type wchar_t = i32; pub type greg_t = u64; pub type __u64 = u64; +pub type __s64 = i64; s! { pub struct ipc_perm { 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 3429c2c1a7..d867354ff4 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 @@ -3,6 +3,7 @@ pub type wchar_t = i32; pub type nlink_t = u64; pub type blksize_t = ::c_long; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; pub type greg_t = i64; s! { diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index e0279574b9..a0035b277e 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -19,6 +19,7 @@ pub type blkcnt_t = ::c_long; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; pub type __u64 = ::c_ulonglong; +pub type __s64 = ::c_longlong; s! { pub struct cmsghdr { diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 529711fcec..43ac79296b 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -20,6 +20,7 @@ pub type wchar_t = ::c_int; pub type fsblkcnt64_t = u64; pub type fsfilcnt64_t = u64; pub type __u64 = ::c_ulong; +pub type __s64 = ::c_long; s! { pub struct ipc_perm { |