~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/inotify.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /*
  3  * Inode based directory notification for Linux
  4  *
  5  * Copyright (C) 2005 John McCutchan
  6  */
  7 
  8 #ifndef _UAPI_LINUX_INOTIFY_H
  9 #define _UAPI_LINUX_INOTIFY_H
 10 
 11 /* For O_CLOEXEC and O_NONBLOCK */
 12 #include <linux/fcntl.h>
 13 #include <linux/types.h>
 14 
 15 /*
 16  * struct inotify_event - structure read from the inotify device for each event
 17  *
 18  * When you are watching a directory, you will receive the filename for events
 19  * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
 20  */
 21 struct inotify_event {
 22         __s32           wd;             /* watch descriptor */
 23         __u32           mask;           /* watch mask */
 24         __u32           cookie;         /* cookie to synchronize two events */
 25         __u32           len;            /* length (including nulls) of name */
 26         char            name[]; /* stub for possible name */
 27 };
 28 
 29 /* the following are legal, implemented events that user-space can watch for */
 30 #define IN_ACCESS               0x00000001      /* File was accessed */
 31 #define IN_MODIFY               0x00000002      /* File was modified */
 32 #define IN_ATTRIB               0x00000004      /* Metadata changed */
 33 #define IN_CLOSE_WRITE          0x00000008      /* Writable file was closed */
 34 #define IN_CLOSE_NOWRITE        0x00000010      /* Unwritable file closed */
 35 #define IN_OPEN                 0x00000020      /* File was opened */
 36 #define IN_MOVED_FROM           0x00000040      /* File was moved from X */
 37 #define IN_MOVED_TO             0x00000080      /* File was moved to Y */
 38 #define IN_CREATE               0x00000100      /* Subfile was created */
 39 #define IN_DELETE               0x00000200      /* Subfile was deleted */
 40 #define IN_DELETE_SELF          0x00000400      /* Self was deleted */
 41 #define IN_MOVE_SELF            0x00000800      /* Self was moved */
 42 
 43 /* the following are legal events.  they are sent as needed to any watch */
 44 #define IN_UNMOUNT              0x00002000      /* Backing fs was unmounted */
 45 #define IN_Q_OVERFLOW           0x00004000      /* Event queued overflowed */
 46 #define IN_IGNORED              0x00008000      /* File was ignored */
 47 
 48 /* helper events */
 49 #define IN_CLOSE                (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
 50 #define IN_MOVE                 (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
 51 
 52 /* special flags */
 53 #define IN_ONLYDIR              0x01000000      /* only watch the path if it is a directory */
 54 #define IN_DONT_FOLLOW          0x02000000      /* don't follow a sym link */
 55 #define IN_EXCL_UNLINK          0x04000000      /* exclude events on unlinked objects */
 56 #define IN_MASK_CREATE          0x10000000      /* only create watches */
 57 #define IN_MASK_ADD             0x20000000      /* add to the mask of an already existing watch */
 58 #define IN_ISDIR                0x40000000      /* event occurred against dir */
 59 #define IN_ONESHOT              0x80000000      /* only send event once */
 60 
 61 /*
 62  * All of the events - we build the list by hand so that we can add flags in
 63  * the future and not break backward compatibility.  Apps will get only the
 64  * events that they originally wanted.  Be sure to add new events here!
 65  */
 66 #define IN_ALL_EVENTS   (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
 67                          IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
 68                          IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
 69                          IN_MOVE_SELF)
 70 
 71 /* Flags for sys_inotify_init1.  */
 72 #define IN_CLOEXEC O_CLOEXEC
 73 #define IN_NONBLOCK O_NONBLOCK
 74 
 75 /*
 76  * ioctl numbers: inotify uses 'I' prefix for all ioctls,
 77  * except historical FIONREAD, which is based on 'T'.
 78  *
 79  * INOTIFY_IOC_SETNEXTWD: set desired number of next created
 80  * watch descriptor.
 81  */
 82 #define INOTIFY_IOC_SETNEXTWD   _IOW('I', 0, __s32)
 83 
 84 #endif /* _UAPI_LINUX_INOTIFY_H */
 85 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php