diff options
author | gnzlbg <gonzalobg88@gmail.com> | 2019-05-29 12:55:37 +0200 |
---|---|---|
committer | gnzlbg <gonzalobg88@gmail.com> | 2019-05-29 12:55:37 +0200 |
commit | ed8b4cbbf6f0fd2a88d7d8b417999209574fd2b7 (patch) | |
tree | 0e678f8c914daf4f13230b12b61a49d68c32245b | |
parent | b6ab2f056c35caee56b47c5780d72da3c6d31697 (diff) | |
download | rust-libc-ed8b4cbbf6f0fd2a88d7d8b417999209574fd2b7.tar.gz |
Add statx on Linux
Closes #1178.
-rw-r--r-- | src/unix/notbsd/linux/other/b32/arm.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b32/powerpc.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b32/x86.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b64/not_x32.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b64/powerpc64.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b64/sparc64.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/b64/x32.rs | 1 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/mod.rs | 58 |
8 files changed, 65 insertions, 0 deletions
diff --git a/src/unix/notbsd/linux/other/b32/arm.rs b/src/unix/notbsd/linux/other/b32/arm.rs index 8396fcd501..d058fc451e 100644 --- a/src/unix/notbsd/linux/other/b32/arm.rs +++ b/src/unix/notbsd/linux/other/b32/arm.rs @@ -607,3 +607,4 @@ pub const SYS_pwritev2: ::c_long = 393; pub const SYS_pkey_mprotect: ::c_long = 394; pub const SYS_pkey_alloc: ::c_long = 395; pub const SYS_pkey_free: ::c_long = 396; +pub const SYS_statx: ::c_long = 397; diff --git a/src/unix/notbsd/linux/other/b32/powerpc.rs b/src/unix/notbsd/linux/other/b32/powerpc.rs index d609d67923..d6a1919cd5 100644 --- a/src/unix/notbsd/linux/other/b32/powerpc.rs +++ b/src/unix/notbsd/linux/other/b32/powerpc.rs @@ -612,3 +612,4 @@ pub const SYS_copy_file_range: ::c_long = 379; pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; diff --git a/src/unix/notbsd/linux/other/b32/x86.rs b/src/unix/notbsd/linux/other/b32/x86.rs index 6ccbfbbdb1..ff5abcfe6d 100644 --- a/src/unix/notbsd/linux/other/b32/x86.rs +++ b/src/unix/notbsd/linux/other/b32/x86.rs @@ -840,6 +840,7 @@ pub const SYS_pwritev2: ::c_long = 379; pub const SYS_pkey_mprotect: ::c_long = 380; pub const SYS_pkey_alloc: ::c_long = 381; pub const SYS_pkey_free: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; // offsets in user_regs_structs, from sys/reg.h pub const EBX: ::c_int = 0; diff --git a/src/unix/notbsd/linux/other/b64/not_x32.rs b/src/unix/notbsd/linux/other/b64/not_x32.rs index e3e449807f..97e21f279d 100644 --- a/src/unix/notbsd/linux/other/b64/not_x32.rs +++ b/src/unix/notbsd/linux/other/b64/not_x32.rs @@ -408,6 +408,7 @@ pub const SYS_pwritev2: ::c_long = 328; pub const SYS_pkey_mprotect: ::c_long = 329; pub const SYS_pkey_alloc: ::c_long = 330; pub const SYS_pkey_free: ::c_long = 331; +pub const SYS_statx: ::c_long = 332; #[link(name = "util")] extern { diff --git a/src/unix/notbsd/linux/other/b64/powerpc64.rs b/src/unix/notbsd/linux/other/b64/powerpc64.rs index 89f5ca15f7..645cd908ed 100644 --- a/src/unix/notbsd/linux/other/b64/powerpc64.rs +++ b/src/unix/notbsd/linux/other/b64/powerpc64.rs @@ -921,6 +921,7 @@ pub const SYS_copy_file_range: ::c_long = 379; pub const SYS_preadv2: ::c_long = 380; pub const SYS_pwritev2: ::c_long = 381; pub const SYS_kexec_file_load: ::c_long = 382; +pub const SYS_statx: ::c_long = 383; #[link(name = "util")] extern { diff --git a/src/unix/notbsd/linux/other/b64/sparc64.rs b/src/unix/notbsd/linux/other/b64/sparc64.rs index 7c1362711e..f54504aea0 100644 --- a/src/unix/notbsd/linux/other/b64/sparc64.rs +++ b/src/unix/notbsd/linux/other/b64/sparc64.rs @@ -855,6 +855,7 @@ pub const SYS_mlock2: ::c_long = 356; pub const SYS_copy_file_range: ::c_long = 357; pub const SYS_preadv2: ::c_long = 358; pub const SYS_pwritev2: ::c_long = 359; +pub const SYS_statx: ::c_long = 360; #[link(name = "util")] extern { diff --git a/src/unix/notbsd/linux/other/b64/x32.rs b/src/unix/notbsd/linux/other/b64/x32.rs index d88dbafed8..37468818af 100644 --- a/src/unix/notbsd/linux/other/b64/x32.rs +++ b/src/unix/notbsd/linux/other/b64/x32.rs @@ -336,6 +336,7 @@ pub const SYS_copy_file_range: ::c_long = __X32_SYSCALL_BIT + 326; pub const SYS_pkey_mprotect: ::c_long = __X32_SYSCALL_BIT + 329; pub const SYS_pkey_alloc: ::c_long = __X32_SYSCALL_BIT + 330; pub const SYS_pkey_free: ::c_long = __X32_SYSCALL_BIT + 331; +pub const SYS_statx: ::c_long = __X32_SYSCALL_BIT + 332; pub const SYS_rt_sigaction: ::c_long = __X32_SYSCALL_BIT + 512; pub const SYS_rt_sigreturn: ::c_long = __X32_SYSCALL_BIT + 513; pub const SYS_ioctl: ::c_long = __X32_SYSCALL_BIT + 514; diff --git a/src/unix/notbsd/linux/other/mod.rs b/src/unix/notbsd/linux/other/mod.rs index 26c9ad4c54..5fb413aa51 100644 --- a/src/unix/notbsd/linux/other/mod.rs +++ b/src/unix/notbsd/linux/other/mod.rs @@ -3,6 +3,36 @@ pub type __priority_which_t = ::c_uint; pub type __rlimit_resource_t = ::c_uint; s! { + pub struct statx { + pub stx_mask: ::uint32_t, + pub stx_blksize: ::uint32_t, + pub stx_attributes: ::uint64_t, + pub stx_nlink: ::uint32_t, + pub stx_uid: ::uint32_t, + pub stx_gid: ::uint32_t, + pub stx_mode: ::uint16_t, + pub __statx_pad1: [::uint16_t; 1], + pub stx_ino: ::uint64_t, + pub stx_size: ::uint64_t, + pub stx_blocks: ::uint64_t, + pub stx_attributes_mask: ::uint64_t, + pub stx_atime: ::statx_timestamp, + pub stx_btime: ::statx_timestamp, + pub stx_ctime: ::statx_timestamp, + pub stx_mtime: ::statx_timestamp, + pub stx_rdev_major: ::uint32_t, + pub stx_rdev_minor: ::uint32_t, + pub stx_dev_major: ::uint32_t, + pub stx_dev_minor: ::uint32_t, + pub __statx_pad2: [::uint64_t; 14], + } + + pub struct statx_timestamp { + pub tv_sec: ::int64_t, + pub tv_nsec: ::uint32_t, + pub __statx_timestamp_pad1: [::int32_t; 1], + } + pub struct aiocb { pub aio_fildes: ::c_int, pub aio_lio_opcode: ::c_int, @@ -931,6 +961,32 @@ pub const AF_MAX: ::c_int = 45; #[doc(hidden)] pub const PF_MAX: ::c_int = AF_MAX; +pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000; +pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000; +pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000; +pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000; +pub const STATX_TYPE: ::c_uint = 0x0001; +pub const STATX_MODE: ::c_uint = 0x0002; +pub const STATX_NLINK: ::c_uint = 0x0004; +pub const STATX_UID: ::c_uint = 0x0008; +pub const STATX_GID: ::c_uint = 0x0010; +pub const STATX_ATIME: ::c_uint = 0x0020; +pub const STATX_MTIME: ::c_uint = 0x0040; +pub const STATX_CTIME: ::c_uint = 0x0080; +pub const STATX_INO: ::c_uint = 0x0100; +pub const STATX_SIZE: ::c_uint = 0x0200; +pub const STATX_BLOCKS: ::c_uint = 0x0400; +pub const STATX_BASIC_STATS: ::c_uint = 0x07ff; +pub const STATX_BTIME: ::c_uint = 0x0800; +pub const STATX_ALL: ::c_uint = 0x0fff; +pub const STATX__RESERVED: ::c_int = 0x80000000; +pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004; +pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010; +pub const STATX_ATTR_APPEND: ::c_int = 0x0020; +pub const STATX_ATTR_NODUMP: ::c_int = 0x0040; +pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800; +pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000; + cfg_if! { if #[cfg(any(target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))] { @@ -981,6 +1037,8 @@ extern { pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int; pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int; + pub fn statx(dirfd: ::c_int, pathname: *const c_char, flags: ::c_int, + mask: ::c_uint, statxbuf: *mut statx) -> ::c_int; } #[link(name = "util")] |