1 /* copied from kernel definition, but with padding replaced 2 * by the corresponding correctly-sized userspace types. */ 3 4 struct stat { 5 dev_t st_dev; 6 int __st_dev_padding; 7 long __st_ino_truncated; 8 mode_t st_mode; 9 nlink_t st_nlink; 10 uid_t st_uid; 11 gid_t st_gid; 12 dev_t st_rdev; 13 int __st_rdev_padding; 14 off_t st_size; 15 blksize_t st_blksize; 16 blkcnt_t st_blocks; 17 struct { 18 long tv_sec; 19 long tv_nsec; 20 } __st_atim32, __st_mtim32, __st_ctim32; 21 ino_t st_ino; 22 struct timespec st_atim; 23 struct timespec st_mtim; 24 struct timespec st_ctim; 25 }; 26 27 #define __NEED_uint16_t 28 #define __NEED_uint32_t 29 #define __NEED_uint64_t 30 #define __NEED_int32_t 31 #define __NEED_int64_t 32 #include <bits/alltypes.h> 33 struct statx { 34 uint32_t stx_mask; 35 uint32_t stx_blksize; 36 uint64_t stx_attributes; 37 uint32_t stx_nlink; 38 uint32_t stx_uid; 39 uint32_t stx_gid; 40 uint16_t stx_mode; 41 uint16_t pad1; 42 uint64_t stx_ino; 43 uint64_t stx_size; 44 uint64_t stx_blocks; 45 uint64_t stx_attributes_mask; 46 struct { 47 int64_t tv_sec; 48 uint32_t tv_nsec; 49 int32_t pad; 50 } stx_atime, stx_btime, stx_ctime, stx_mtime; 51 uint32_t stx_rdev_major; 52 uint32_t stx_rdev_minor; 53 uint32_t stx_dev_major; 54 uint32_t stx_dev_minor; 55 uint64_t spare[14]; 56 };