@@ -3411,133 +3411,248 @@ features:
34113411
34123412   Information about a file returned by :func: `os.statx `.
34133413
3414-    :class: `!statx_result ` has all the attributes that :class: `~stat_result ` has
3415-    on Linux, making it :term: `duck-typing ` compatible, but
3416-    :class: `!statx_result ` is not a subclass of :class: `~stat_result ` and cannot
3417-    be used as a tuple.
3418- 
3419-    :class: `!statx_result ` has the following additional attributes:
3414+    :class: `!statx_result ` has the following attributes:
34203415
34213416   .. attribute :: stx_mask 
34223417
34233418      Bitmask of :const: `STATX_* <STATX_TYPE> ` constants specifying the
34243419      information retrieved, which may differ from what was requested.
34253420
3426-    .. attribute :: stx_attributes_mask 
3421+    .. attribute :: stx_atime 
34273422
3428-       Bitmask of :const: `STATX_ATTR_* <stat.STATX_ATTR_COMPRESSED> ` constants
3429-       specifying the attributes bits supported for this file.
3423+       Time of most recent access expressed in seconds.
3424+ 
3425+       Equal to ``None `` if :data: `STATX_ATIME ` is missing from
3426+       :attr: `~statx_result.stx_mask `.
3427+ 
3428+    .. attribute :: stx_atime_ns 
3429+ 
3430+       Time of most recent access expressed in nanoseconds as an integer.
3431+ 
3432+       Equal to ``None `` if :data: `STATX_ATIME ` is missing from
3433+       :attr: `~statx_result.stx_mask `.
3434+ 
3435+    .. attribute :: stx_atomic_write_segments_max 
3436+ 
3437+       Maximum iovecs for direct I/O with torn-write protection.
3438+ 
3439+       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3440+       :attr: `~statx_result.stx_mask `.
3441+ 
3442+       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3443+          userspace API headers >= 6.11.
3444+ 
3445+    .. attribute :: stx_atomic_write_unit_min 
3446+ 
3447+       Minimum size for direct I/O with torn-write protection.
3448+ 
3449+       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3450+       :attr: `~statx_result.stx_mask `.
3451+ 
3452+       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3453+          userspace API headers >= 6.11.
3454+ 
3455+    .. attribute :: stx_atomic_write_unit_max 
3456+ 
3457+       Maximum size for direct I/O with torn-write protection.
3458+ 
3459+       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3460+       :attr: `~statx_result.stx_mask `.
3461+ 
3462+       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3463+          userspace API headers >= 6.11.
3464+ 
3465+    .. attribute :: stx_atomic_write_unit_max_opt 
3466+ 
3467+       Maximum optimized size for direct I/O with torn-write protection.
3468+ 
3469+       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3470+       :attr: `~statx_result.stx_mask `.
3471+ 
3472+       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3473+          userspace API headers >= 6.16.
34303474
34313475   .. attribute :: stx_attributes 
34323476
34333477      Bitmask of :const: `STATX_ATTR_* <stat.STATX_ATTR_COMPRESSED> ` constants
34343478      specifying the attributes of this file.
34353479
3436-    .. attribute :: stx_dev_major 
3480+    .. attribute :: stx_attributes_mask 
34373481
3438-       Major number of the device on which this file resides.
3482+       A mask indicating which bits in :attr: `stx_attributes ` are supported by
3483+       the VFS and the filesystem.
34393484
3440-    .. attribute :: stx_dev_minor 
3485+    .. attribute :: stx_blksize 
34413486
3442-       Minor number of the device on which this file resides.
3487+       "Preferred" blocksize for efficient file system I/O. Writing to a file in
3488+       smaller chunks may cause an inefficient read-modify-rewrite.
34433489
3444-    .. attribute :: stx_rdev_major 
3490+    .. attribute :: stx_blocks 
34453491
3446-       Major number of the device this file represents.
3492+       Number of 512-byte blocks allocated for file.
3493+       This may be smaller than :attr: `stx_size `/512 when the file has holes.
34473494
3448-    .. attribute :: stx_rdev_minor 
3495+       Equal to ``None `` if :data: `STATX_BLOCKS ` is missing from
3496+       :attr: `~statx_result.stx_mask `.
34493497
3450-       Minor number of the device this file represents. 
3498+    ..  attribute ::  stx_btime 
34513499
3452-    ..  attribute ::  stx_mnt_id 
3500+       Time of file creation expressed in seconds. 
34533501
3454-       Mount identifier.
3502+       Equal to ``None `` if :data: `STATX_BTIME ` is missing from
3503+       :attr: `~statx_result.stx_mask `.
34553504
3456-       Equal to ``None `` if :data: `STATX_MNT_ID ` is missing from
3457-       :attr: `~os.statx_result.stx_mask `.
3505+    .. attribute :: stx_btime_ns 
34583506
3459-       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3460-          userspace API headers >= 5.8.
3507+       Time of file creation expressed in nanoseconds as an integer.
34613508
3462-    .. attribute :: stx_dio_mem_align 
3509+       Equal to ``None `` if :data: `STATX_BTIME ` is missing from
3510+       :attr: `~statx_result.stx_mask `.
34633511
3464-       Direct I/O memory buffer alignment requirement. 
3512+    ..  attribute ::  stx_ctime 
34653513
3466-       Equal to ``None `` if :data: `STATX_DIOALIGN ` is missing from
3467-       :attr: `~os.statx_result.stx_mask `.
3514+       Time of most recent metadata change expressed in seconds.
34683515
3469-       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3470-          userspace API headers >= 6.1.
3516+       Equal to ``None `` if :data: `STATX_CTIME ` is missing from
3517+       :attr: `~statx_result.stx_mask `.
3518+ 
3519+    .. attribute :: stx_ctime_ns 
3520+ 
3521+       Time of most recent metadata change expressed in nanoseconds as an
3522+       integer.
3523+ 
3524+       Equal to ``None `` if :data: `STATX_CTIME ` is missing from
3525+       :attr: `~statx_result.stx_mask `.
3526+ 
3527+    .. attribute :: stx_dev 
3528+ 
3529+       Identifier of the device on which this file resides.
3530+ 
3531+    .. attribute :: stx_dev_major 
3532+ 
3533+       Major number of the device on which this file resides.
3534+ 
3535+    .. attribute :: stx_dev_minor 
3536+ 
3537+       Minor number of the device on which this file resides.
34713538
34723539   .. attribute :: stx_dio_offset_align 
34733540
34743541      Direct I/O file offset alignment requirement.
34753542
34763543      Equal to ``None `` if :data: `STATX_DIOALIGN ` is missing from
3477-       :attr: `~os. statx_result.stx_mask `.
3544+       :attr: `~statx_result.stx_mask `.
34783545
34793546      .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
34803547         userspace API headers >= 6.1.
34813548
3482-    .. attribute :: stx_subvol 
3549+    .. attribute :: stx_dio_mem_align 
34833550
3484-       Subvolume identifier .
3551+       Direct I/O memory buffer alignment requirement .
34853552
3486-       Equal to ``None `` if :data: `STATX_SUBVOL ` is missing from
3487-       :attr: `~os. statx_result.stx_mask `.
3553+       Equal to ``None `` if :data: `STATX_DIOALIGN ` is missing from
3554+       :attr: `~statx_result.stx_mask `.
34883555
34893556      .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3490-          userspace API headers >= 6.10 .
3557+          userspace API headers >= 6.1 .
34913558
3492-    .. attribute :: stx_atomic_write_unit_min 
3559+    .. attribute :: stx_dio_read_offset_align 
34933560
3494-       Minimum size for direct  I/O with torn-write protection .
3561+       Direct  I/O file offset alignment requirement for reads .
34953562
3496-       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3497-       :attr: `~os. statx_result.stx_mask `.
3563+       Equal to ``None `` if :data: `STATX_DIO_READ_ALIGN ` is missing from
3564+       :attr: `~statx_result.stx_mask `.
34983565
34993566      .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3500-          userspace API headers >= 6.11 .
3567+          userspace API headers >= 6.14 .
35013568
3502-    .. attribute :: stx_atomic_write_unit_max 
3569+    .. attribute :: stx_gid 
35033570
3504-       Maximum size for direct I/O with torn-write protection .
3571+       Group identifier of the file owner .
35053572
3506-       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3507-       :attr: `~os. statx_result.stx_mask `.
3573+       Equal to ``None `` if :data: `STATX_GID ` is missing from
3574+       :attr: `~statx_result.stx_mask `.
35083575
3509-       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3510-          userspace API headers >= 6.11.
3576+    .. attribute :: stx_ino 
35113577
3512-    ..  attribute ::  stx_atomic_write_unit_max_opt 
3578+       Inode number. 
35133579
3514-       Maximum optimized size for direct I/O with torn-write protection.
3580+       Equal to ``None `` if :data: `STATX_INO ` is missing from
3581+       :attr: `~statx_result.stx_mask `.
35153582
3516-       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3517-       :attr: `~os.statx_result.stx_mask `.
3583+    .. attribute :: stx_mnt_id 
3584+ 
3585+       Mount identifier.
3586+ 
3587+       Equal to ``None `` if :data: `STATX_MNT_ID ` is missing from
3588+       :attr: `~statx_result.stx_mask `.
35183589
35193590      .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3520-          userspace API headers >= 6.16 .
3591+          userspace API headers >= 5.8 .
35213592
3522-    .. attribute :: stx_atomic_write_segments_max 
3593+    .. attribute :: stx_mode 
35233594
3524-       Maximum iovecs for direct I/O with torn-write protection .
3595+       File mode: file type and file mode bits (permissions) .
35253596
3526-       Equal to ``None `` if :data: `STATX_WRITE_ATOMIC ` is missing from
3527-       :attr: `~os.statx_result.stx_mask `.
3597+    .. attribute :: stx_mtime 
35283598
3529-       .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3530-          userspace API headers >= 6.11.
3599+       Time of most recent content modification expressed in seconds.
35313600
3532-    .. attribute :: stx_dio_read_offset_align 
3601+       Equal to ``None `` if :data: `STATX_MTIME ` is missing from
3602+       :attr: `~statx_result.stx_mask `.
35333603
3534-       Direct I/O file offset alignment requirement for reads. 
3604+    ..  attribute ::  stx_mtime_ns 
35353605
3536-       Equal to ``None `` if :data: `STATX_DIO_READ_ALIGN ` is missing from
3537-       :attr: `~os.statx_result.stx_mask `.
3606+       Time of most recent content modification expressed in nanoseconds as an
3607+       integer.
3608+ 
3609+       Equal to ``None `` if :data: `STATX_MTIME ` is missing from
3610+       :attr: `~statx_result.stx_mask `.
3611+ 
3612+    .. attribute :: stx_nlink 
3613+ 
3614+       Number of hard links.
3615+ 
3616+       Equal to ``None `` if :data: `STATX_NLINK ` is missing from
3617+       :attr: `~statx_result.stx_mask `.
3618+ 
3619+    .. attribute :: stx_rdev 
3620+ 
3621+       Type of device if an inode device.
3622+ 
3623+    .. attribute :: stx_rdev_major 
3624+ 
3625+       Major number of the device this file represents.
3626+ 
3627+    .. attribute :: stx_rdev_minor 
3628+ 
3629+       Minor number of the device this file represents.
3630+ 
3631+    .. attribute :: stx_size 
3632+ 
3633+       Size of the file in bytes, if it is a regular file or a symbolic link.
3634+       The size of a symbolic link is the length of the pathname it contains,
3635+       without a terminating null byte.
3636+ 
3637+       Equal to ``None `` if :data: `STATX_SIZE ` is missing from
3638+       :attr: `~statx_result.stx_mask `.
3639+ 
3640+    .. attribute :: stx_subvol 
3641+ 
3642+       Subvolume identifier.
3643+ 
3644+       Equal to ``None `` if :data: `STATX_SUBVOL ` is missing from
3645+       :attr: `~statx_result.stx_mask `.
35383646
35393647      .. availability :: Linux >= 4.11 with glibc >= 2.28 and build-time kernel 
3540-          userspace API headers >= 6.14.
3648+          userspace API headers >= 6.10.
3649+ 
3650+    .. attribute :: stx_uid 
3651+ 
3652+       User identifier of the file owner.
3653+ 
3654+       Equal to ``None `` if :data: `STATX_UID ` is missing from
3655+       :attr: `~statx_result.stx_mask `.
35413656
35423657   .. seealso :: The :manpage:`statx(2)` man page. 
35433658
0 commit comments