1a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich/**************************************************************************** 2a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich **************************************************************************** 3a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 4a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** This header was automatically generated from a Linux kernel header 5a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** of the same name, to make information necessary for userspace to 6a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** call into the kernel available to libc. It contains only constants, 7a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** structures, and macros generated from the original header, and thus, 8a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** contains no copyrightable information. 9a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 10a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** To edit the content of this header, modify the corresponding 11a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** source file (e.g. under external/kernel-headers/original/) then 12a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** run bionic/libc/kernel/tools/update_all.py 13a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 14a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** Any manual change here will be lost the next time this script will 15a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** be run. You've been warned! 16a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich *** 17a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich **************************************************************************** 18a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_LINUX_STAT_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_LINUX_STAT_H 21525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#include <linux/types.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#if !defined(__GLIBC__) || __GLIBC__ < 2 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFMT 00170000 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFSOCK 0140000 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFLNK 0120000 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFREG 0100000 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFBLK 0060000 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFDIR 0040000 29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFCHR 0020000 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IFIFO 0010000 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISUID 0004000 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISGID 0002000 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISVTX 0001000 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) 41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IRWXU 00700 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IRUSR 00400 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IWUSR 00200 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IXUSR 00100 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IRWXG 00070 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IRGRP 00040 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IWGRP 00020 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IXGRP 00010 49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IRWXO 00007 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IROTH 00004 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IWOTH 00002 52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define S_IXOTH 00001 53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 54525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct statx_timestamp { 55525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __s64 tv_sec; 56525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 tv_nsec; 57525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __s32 __reserved; 58525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 59525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct statx { 60525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_mask; 61525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_blksize; 62525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 stx_attributes; 63525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_nlink; 64525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_uid; 65525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_gid; 66525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u16 stx_mode; 67525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u16 __spare0[1]; 68525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 stx_ino; 69525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 stx_size; 70525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 stx_blocks; 71525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 stx_attributes_mask; 72525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct statx_timestamp stx_atime; 73525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct statx_timestamp stx_btime; 74525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct statx_timestamp stx_ctime; 75525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct statx_timestamp stx_mtime; 76525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_rdev_major; 77525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_rdev_minor; 78525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_dev_major; 79525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 stx_dev_minor; 80525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 __spare2[14]; 81525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 82525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_TYPE 0x00000001U 83525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_MODE 0x00000002U 84525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_NLINK 0x00000004U 85525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_UID 0x00000008U 86525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_GID 0x00000010U 87525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATIME 0x00000020U 88525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_MTIME 0x00000040U 89525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_CTIME 0x00000080U 90525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_INO 0x00000100U 91525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_SIZE 0x00000200U 92525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_BLOCKS 0x00000400U 93525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_BASIC_STATS 0x000007ffU 94525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_BTIME 0x00000800U 95525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ALL 0x00000fffU 96525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX__RESERVED 0x80000000U 97525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_COMPRESSED 0x00000004 98525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_IMMUTABLE 0x00000010 99525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_APPEND 0x00000020 100525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_NODUMP 0x00000040 101525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_ENCRYPTED 0x00000800 102525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define STATX_ATTR_AUTOMOUNT 0x00001000 103a67e4de6620b570dabe0f92985228af0d0204f2cNick Kralevich#endif 104