xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/stat.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_STAT_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_STAT_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #if !defined(__GLIBC__) || __GLIBC__ < 2
11*8d67ca89SAndroid Build Coastguard Worker #define S_IFMT 00170000
12*8d67ca89SAndroid Build Coastguard Worker #define S_IFSOCK 0140000
13*8d67ca89SAndroid Build Coastguard Worker #define S_IFLNK 0120000
14*8d67ca89SAndroid Build Coastguard Worker #define S_IFREG 0100000
15*8d67ca89SAndroid Build Coastguard Worker #define S_IFBLK 0060000
16*8d67ca89SAndroid Build Coastguard Worker #define S_IFDIR 0040000
17*8d67ca89SAndroid Build Coastguard Worker #define S_IFCHR 0020000
18*8d67ca89SAndroid Build Coastguard Worker #define S_IFIFO 0010000
19*8d67ca89SAndroid Build Coastguard Worker #define S_ISUID 0004000
20*8d67ca89SAndroid Build Coastguard Worker #define S_ISGID 0002000
21*8d67ca89SAndroid Build Coastguard Worker #define S_ISVTX 0001000
22*8d67ca89SAndroid Build Coastguard Worker #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
23*8d67ca89SAndroid Build Coastguard Worker #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
24*8d67ca89SAndroid Build Coastguard Worker #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
25*8d67ca89SAndroid Build Coastguard Worker #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
26*8d67ca89SAndroid Build Coastguard Worker #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
27*8d67ca89SAndroid Build Coastguard Worker #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
28*8d67ca89SAndroid Build Coastguard Worker #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
29*8d67ca89SAndroid Build Coastguard Worker #define S_IRWXU 00700
30*8d67ca89SAndroid Build Coastguard Worker #define S_IRUSR 00400
31*8d67ca89SAndroid Build Coastguard Worker #define S_IWUSR 00200
32*8d67ca89SAndroid Build Coastguard Worker #define S_IXUSR 00100
33*8d67ca89SAndroid Build Coastguard Worker #define S_IRWXG 00070
34*8d67ca89SAndroid Build Coastguard Worker #define S_IRGRP 00040
35*8d67ca89SAndroid Build Coastguard Worker #define S_IWGRP 00020
36*8d67ca89SAndroid Build Coastguard Worker #define S_IXGRP 00010
37*8d67ca89SAndroid Build Coastguard Worker #define S_IRWXO 00007
38*8d67ca89SAndroid Build Coastguard Worker #define S_IROTH 00004
39*8d67ca89SAndroid Build Coastguard Worker #define S_IWOTH 00002
40*8d67ca89SAndroid Build Coastguard Worker #define S_IXOTH 00001
41*8d67ca89SAndroid Build Coastguard Worker #endif
42*8d67ca89SAndroid Build Coastguard Worker struct statx_timestamp {
43*8d67ca89SAndroid Build Coastguard Worker   __s64 tv_sec;
44*8d67ca89SAndroid Build Coastguard Worker   __u32 tv_nsec;
45*8d67ca89SAndroid Build Coastguard Worker   __s32 __reserved;
46*8d67ca89SAndroid Build Coastguard Worker };
47*8d67ca89SAndroid Build Coastguard Worker struct statx {
48*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_mask;
49*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_blksize;
50*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_attributes;
51*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_nlink;
52*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_uid;
53*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_gid;
54*8d67ca89SAndroid Build Coastguard Worker   __u16 stx_mode;
55*8d67ca89SAndroid Build Coastguard Worker   __u16 __spare0[1];
56*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_ino;
57*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_size;
58*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_blocks;
59*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_attributes_mask;
60*8d67ca89SAndroid Build Coastguard Worker   struct statx_timestamp stx_atime;
61*8d67ca89SAndroid Build Coastguard Worker   struct statx_timestamp stx_btime;
62*8d67ca89SAndroid Build Coastguard Worker   struct statx_timestamp stx_ctime;
63*8d67ca89SAndroid Build Coastguard Worker   struct statx_timestamp stx_mtime;
64*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_rdev_major;
65*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_rdev_minor;
66*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_dev_major;
67*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_dev_minor;
68*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_mnt_id;
69*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_dio_mem_align;
70*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_dio_offset_align;
71*8d67ca89SAndroid Build Coastguard Worker   __u64 stx_subvol;
72*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_atomic_write_unit_min;
73*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_atomic_write_unit_max;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 stx_atomic_write_segments_max;
75*8d67ca89SAndroid Build Coastguard Worker   __u32 __spare1[1];
76*8d67ca89SAndroid Build Coastguard Worker   __u64 __spare3[9];
77*8d67ca89SAndroid Build Coastguard Worker };
78*8d67ca89SAndroid Build Coastguard Worker #define STATX_TYPE 0x00000001U
79*8d67ca89SAndroid Build Coastguard Worker #define STATX_MODE 0x00000002U
80*8d67ca89SAndroid Build Coastguard Worker #define STATX_NLINK 0x00000004U
81*8d67ca89SAndroid Build Coastguard Worker #define STATX_UID 0x00000008U
82*8d67ca89SAndroid Build Coastguard Worker #define STATX_GID 0x00000010U
83*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATIME 0x00000020U
84*8d67ca89SAndroid Build Coastguard Worker #define STATX_MTIME 0x00000040U
85*8d67ca89SAndroid Build Coastguard Worker #define STATX_CTIME 0x00000080U
86*8d67ca89SAndroid Build Coastguard Worker #define STATX_INO 0x00000100U
87*8d67ca89SAndroid Build Coastguard Worker #define STATX_SIZE 0x00000200U
88*8d67ca89SAndroid Build Coastguard Worker #define STATX_BLOCKS 0x00000400U
89*8d67ca89SAndroid Build Coastguard Worker #define STATX_BASIC_STATS 0x000007ffU
90*8d67ca89SAndroid Build Coastguard Worker #define STATX_BTIME 0x00000800U
91*8d67ca89SAndroid Build Coastguard Worker #define STATX_MNT_ID 0x00001000U
92*8d67ca89SAndroid Build Coastguard Worker #define STATX_DIOALIGN 0x00002000U
93*8d67ca89SAndroid Build Coastguard Worker #define STATX_MNT_ID_UNIQUE 0x00004000U
94*8d67ca89SAndroid Build Coastguard Worker #define STATX_SUBVOL 0x00008000U
95*8d67ca89SAndroid Build Coastguard Worker #define STATX_WRITE_ATOMIC 0x00010000U
96*8d67ca89SAndroid Build Coastguard Worker #define STATX__RESERVED 0x80000000U
97*8d67ca89SAndroid Build Coastguard Worker #define STATX_ALL 0x00000fffU
98*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_COMPRESSED 0x00000004
99*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_IMMUTABLE 0x00000010
100*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_APPEND 0x00000020
101*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_NODUMP 0x00000040
102*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_ENCRYPTED 0x00000800
103*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_AUTOMOUNT 0x00001000
104*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_MOUNT_ROOT 0x00002000
105*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_VERITY 0x00100000
106*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_DAX 0x00200000
107*8d67ca89SAndroid Build Coastguard Worker #define STATX_ATTR_WRITE_ATOMIC 0x00400000
108*8d67ca89SAndroid Build Coastguard Worker #endif
109