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