/* Generated by ./xlat/gen.sh from ./xlat/inotify_flags.in; do not edit. */
#if !(defined(IN_ACCESS) || (defined(HAVE_DECL_IN_ACCESS) && HAVE_DECL_IN_ACCESS))
# define IN_ACCESS 0x00000001
#endif
#if !(defined(IN_MODIFY) || (defined(HAVE_DECL_IN_MODIFY) && HAVE_DECL_IN_MODIFY))
# define IN_MODIFY 0x00000002
#endif
#if !(defined(IN_ATTRIB) || (defined(HAVE_DECL_IN_ATTRIB) && HAVE_DECL_IN_ATTRIB))
# define IN_ATTRIB 0x00000004
#endif
#if !(defined(IN_CLOSE_WRITE) || (defined(HAVE_DECL_IN_CLOSE_WRITE) && HAVE_DECL_IN_CLOSE_WRITE))
# define IN_CLOSE_WRITE 0x00000008
#endif
#if !(defined(IN_CLOSE_NOWRITE) || (defined(HAVE_DECL_IN_CLOSE_NOWRITE) && HAVE_DECL_IN_CLOSE_NOWRITE))
# define IN_CLOSE_NOWRITE 0x00000010
#endif
#if !(defined(IN_OPEN) || (defined(HAVE_DECL_IN_OPEN) && HAVE_DECL_IN_OPEN))
# define IN_OPEN 0x00000020
#endif
#if !(defined(IN_MOVED_FROM) || (defined(HAVE_DECL_IN_MOVED_FROM) && HAVE_DECL_IN_MOVED_FROM))
# define IN_MOVED_FROM 0x00000040
#endif
#if !(defined(IN_MOVED_TO) || (defined(HAVE_DECL_IN_MOVED_TO) && HAVE_DECL_IN_MOVED_TO))
# define IN_MOVED_TO 0x00000080
#endif
#if !(defined(IN_CREATE) || (defined(HAVE_DECL_IN_CREATE) && HAVE_DECL_IN_CREATE))
# define IN_CREATE 0x00000100
#endif
#if !(defined(IN_DELETE) || (defined(HAVE_DECL_IN_DELETE) && HAVE_DECL_IN_DELETE))
# define IN_DELETE 0x00000200
#endif
#if !(defined(IN_DELETE_SELF) || (defined(HAVE_DECL_IN_DELETE_SELF) && HAVE_DECL_IN_DELETE_SELF))
# define IN_DELETE_SELF 0x00000400
#endif
#if !(defined(IN_MOVE_SELF) || (defined(HAVE_DECL_IN_MOVE_SELF) && HAVE_DECL_IN_MOVE_SELF))
# define IN_MOVE_SELF 0x00000800
#endif
#if !(defined(IN_UNMOUNT) || (defined(HAVE_DECL_IN_UNMOUNT) && HAVE_DECL_IN_UNMOUNT))
# define IN_UNMOUNT 0x00002000
#endif
#if !(defined(IN_Q_OVERFLOW) || (defined(HAVE_DECL_IN_Q_OVERFLOW) && HAVE_DECL_IN_Q_OVERFLOW))
# define IN_Q_OVERFLOW 0x00004000
#endif
#if !(defined(IN_IGNORED) || (defined(HAVE_DECL_IN_IGNORED) && HAVE_DECL_IN_IGNORED))
# define IN_IGNORED 0x00008000
#endif
#if !(defined(IN_ONLYDIR) || (defined(HAVE_DECL_IN_ONLYDIR) && HAVE_DECL_IN_ONLYDIR))
# define IN_ONLYDIR 0x01000000
#endif
#if !(defined(IN_DONT_FOLLOW) || (defined(HAVE_DECL_IN_DONT_FOLLOW) && HAVE_DECL_IN_DONT_FOLLOW))
# define IN_DONT_FOLLOW 0x02000000
#endif
#if !(defined(IN_EXCL_UNLINK) || (defined(HAVE_DECL_IN_EXCL_UNLINK) && HAVE_DECL_IN_EXCL_UNLINK))
# define IN_EXCL_UNLINK 0x04000000
#endif
#if !(defined(IN_MASK_ADD) || (defined(HAVE_DECL_IN_MASK_ADD) && HAVE_DECL_IN_MASK_ADD))
# define IN_MASK_ADD 0x20000000
#endif
#if !(defined(IN_ISDIR) || (defined(HAVE_DECL_IN_ISDIR) && HAVE_DECL_IN_ISDIR))
# define IN_ISDIR 0x40000000
#endif
#if !(defined(IN_ONESHOT) || (defined(HAVE_DECL_IN_ONESHOT) && HAVE_DECL_IN_ONESHOT))
# define IN_ONESHOT 0x80000000
#endif

#ifdef IN_MPERS

# error static const struct xlat inotify_flags in mpers mode

#else

static
const struct xlat inotify_flags[] = {
 XLAT(IN_ACCESS),
 XLAT(IN_MODIFY),
 XLAT(IN_ATTRIB),
 XLAT(IN_CLOSE_WRITE),
 XLAT(IN_CLOSE_NOWRITE),
 XLAT(IN_OPEN),
 XLAT(IN_MOVED_FROM),
 XLAT(IN_MOVED_TO),
 XLAT(IN_CREATE),
 XLAT(IN_DELETE),
 XLAT(IN_DELETE_SELF),
 XLAT(IN_MOVE_SELF),
 XLAT(IN_UNMOUNT),
 XLAT(IN_Q_OVERFLOW),
 XLAT(IN_IGNORED),
 XLAT(IN_ONLYDIR),
 XLAT(IN_DONT_FOLLOW),
 XLAT(IN_EXCL_UNLINK),
 XLAT(IN_MASK_ADD),
 XLAT(IN_ISDIR),
 XLAT(IN_ONESHOT),
 XLAT_END
};

#endif /* !IN_MPERS */
