Renamed to Statx to not conflict with the statx function.
pub const Statx = extern struct
pub const Statx = extern struct {
/// Mask of bits indicating filled fields. Updated with what information
/// the kernel returned. Callers must check this field since support varies
/// by kernel version and filesystem.
mask: STATX,
/// Block size for filesystem I/O.
blksize: u32,
/// Extra file attribute indicators.
attributes: STATX_ATTR,
/// Number of hard links.
nlink: u32,
/// User ID of owner.
uid: uid_t,
/// Group ID of owner.
gid: gid_t,
/// File type and mode.
mode: u16,
__spare0: u16,
/// Inode number.
ino: u64,
/// Total size in bytes.
size: u64,
/// Number of 512B blocks allocated.
blocks: u64,
/// Mask to show what's supported in `attributes`.
attributes_mask: STATX_ATTR,
/// Last access file timestamp.
atime: statx_timestamp,
/// Creation file timestamp.
btime: statx_timestamp,
/// Last status change file timestamp.
ctime: statx_timestamp,
/// Last modification file timestamp.
mtime: statx_timestamp,
/// Major ID, if this file represents a device.
rdev_major: u32,
/// Minor ID, if this file represents a device.
rdev_minor: u32,
/// Major ID of the device containing the filesystem where this file resides.
dev_major: u32,
/// Minor ID of the device containing the filesystem where this file resides.
dev_minor: u32,
/// Mount ID
mnt_id: u64,
/// Memory buffer alignment for direct I/O.
dio_mem_align: u32,
/// File offset alignment for direct I/O.
dio_offset_align: u32,
/// Subvolume identifier.
subvol: u64,
/// Min atomic write unit in bytes.
atomic_write_unit_min: u32,
/// Max atomic write unit in bytes.
atomic_write_unit_max: u32,
/// Max atomic write segment count.
atomic_write_segments_max: u32,
/// File offset alignment for direct I/O reads.
dio_read_offset_align: u32,
/// Optimised max atomic write unit in bytes.
atomic_write_unit_max_opt: u32,
__spare2: [1]u32,
__spare3: [8]u64,
}