diff --git a/libc-test/build.rs b/libc-test/build.rs index 34632e1755e8..0b5aa9c0574d 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -4391,6 +4391,13 @@ fn test_linux(target: &str) { | "CANXL_XLF" => true, + "STATX_MNT_ID_UNIQUE" // Added in Linux 6.8 + | "STATX_SUBVOL" // Added in Linux 6.10 + | "STATX_WRITE_ATOMIC" // Added in Linux 6.11 + | "STATX_ATTR_WRITE_ATOMIC" // Added in Linux 6.11 + | "STATX_DIO_READ_ALIGN" // Added in Linux 6.14 + => true, + // FIXME(linux): Parts of netfilter/nfnetlink*.h require more recent kernel headers: | "RTNLGRP_MCTP_IFADDR" // linux v5.17+ | "RTNLGRP_TUNNEL" // linux v5.18+ diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 7f04169042c1..b2a07a51dd7f 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -418,20 +418,25 @@ STATX_ATTR_IMMUTABLE STATX_ATTR_MOUNT_ROOT STATX_ATTR_NODUMP STATX_ATTR_VERITY +STATX_ATTR_WRITE_ATOMIC STATX_BASIC_STATS STATX_BLOCKS STATX_BTIME STATX_CTIME STATX_DIOALIGN +STATX_DIO_READ_ALIGN STATX_GID STATX_INO STATX_MNT_ID +STATX_MNT_ID_UNIQUE STATX_MODE STATX_MTIME STATX_NLINK STATX_SIZE +STATX_SUBVOL STATX_TYPE STATX_UID +STATX_WRITE_ATOMIC STATX__RESERVED STA_CLK STA_CLOCKERR diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 6ed732e73f5c..bf19109e7958 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -239,7 +239,12 @@ cfg_if! { pub stx_mnt_id: crate::__u64, pub stx_dio_mem_align: crate::__u32, pub stx_dio_offset_align: crate::__u32, - __statx_pad3: [crate::__u64; 12], + pub stx_subvol: crate::__u64, + pub stx_atomic_write_unit_min: crate::__u32, + pub stx_atomic_write_unit_max: crate::__u32, + pub stx_atomic_write_segments_max: crate::__u32, + pub stx_dio_read_offset_align: crate::__u32, + __statx_pad3: [crate::__u64; 9], } pub struct statx_timestamp { @@ -1617,6 +1622,10 @@ cfg_if! { pub const STATX_ALL: c_uint = 0x0fff; pub const STATX_MNT_ID: c_uint = 0x1000; pub const STATX_DIOALIGN: c_uint = 0x2000; + pub const STATX_MNT_ID_UNIQUE: c_uint = 0x4000; + pub const STATX_SUBVOL: c_uint = 0x_0000_8000; + pub const STATX_WRITE_ATOMIC: c_uint = 0x_0001_0000; + pub const STATX_DIO_READ_ALIGN: c_uint = 0x_0002_0000; pub const STATX__RESERVED: c_int = 0x80000000; pub const STATX_ATTR_COMPRESSED: c_int = 0x0004; pub const STATX_ATTR_IMMUTABLE: c_int = 0x0010; @@ -1627,6 +1636,7 @@ cfg_if! { pub const STATX_ATTR_MOUNT_ROOT: c_int = 0x2000; pub const STATX_ATTR_VERITY: c_int = 0x100000; pub const STATX_ATTR_DAX: c_int = 0x200000; + pub const STATX_ATTR_WRITE_ATOMIC: c_int = 0x400000; } }