stat.h 1.1 KB

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