1#ifndef _LINUX_STAT_H 2#define _LINUX_STAT_H 3 4 5#include <asm/stat.h> 6#include <uapi/linux/stat.h> 7 8#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO) 9#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO) 10#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH) 11#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH) 12#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH) 13 14#define UTIME_NOW ((1l << 30) - 1l) 15#define UTIME_OMIT ((1l << 30) - 2l) 16 17#include <linux/types.h> 18#include <linux/time.h> 19#include <linux/uidgid.h> 20 21#define KSTAT_QUERY_FLAGS (AT_STATX_SYNC_TYPE) 22 23struct kstat { 24 u32 result_mask; /* What fields the user got */ 25 umode_t mode; 26 unsigned int nlink; 27 uint32_t blksize; /* Preferred I/O size */ 28 u64 attributes; 29 u64 attributes_mask; 30#define KSTAT_ATTR_FS_IOC_FLAGS \ 31 (STATX_ATTR_COMPRESSED | \ 32 STATX_ATTR_IMMUTABLE | \ 33 STATX_ATTR_APPEND | \ 34 STATX_ATTR_NODUMP | \ 35 STATX_ATTR_ENCRYPTED \ 36 )/* Attrs corresponding to FS_*_FL flags */ 37 u64 ino; 38 dev_t dev; 39 dev_t rdev; 40 kuid_t uid; 41 kgid_t gid; 42 loff_t size; 43 struct timespec atime; 44 struct timespec mtime; 45 struct timespec ctime; 46 struct timespec btime; /* File creation time */ 47 u64 blocks; 48}; 49 50#endif 51