/* Generated by ./xlat/gen.sh from ./xlat/fan_mark_flags.in; do not edit. */

static const struct xlat fan_mark_flags[] = {
#if defined(FAN_MARK_ADD) || (defined(HAVE_DECL_FAN_MARK_ADD) && HAVE_DECL_FAN_MARK_ADD)
	XLAT(FAN_MARK_ADD),
#endif
#if defined(FAN_MARK_REMOVE) || (defined(HAVE_DECL_FAN_MARK_REMOVE) && HAVE_DECL_FAN_MARK_REMOVE)
	XLAT(FAN_MARK_REMOVE),
#endif
#if defined(FAN_MARK_DONT_FOLLOW) || (defined(HAVE_DECL_FAN_MARK_DONT_FOLLOW) && HAVE_DECL_FAN_MARK_DONT_FOLLOW)
	XLAT(FAN_MARK_DONT_FOLLOW),
#endif
#if defined(FAN_MARK_ONLYDIR) || (defined(HAVE_DECL_FAN_MARK_ONLYDIR) && HAVE_DECL_FAN_MARK_ONLYDIR)
	XLAT(FAN_MARK_ONLYDIR),
#endif
#if defined(FAN_MARK_MOUNT) || (defined(HAVE_DECL_FAN_MARK_MOUNT) && HAVE_DECL_FAN_MARK_MOUNT)
	XLAT(FAN_MARK_MOUNT),
#endif
#if defined(FAN_MARK_IGNORED_MASK) || (defined(HAVE_DECL_FAN_MARK_IGNORED_MASK) && HAVE_DECL_FAN_MARK_IGNORED_MASK)
	XLAT(FAN_MARK_IGNORED_MASK),
#endif
#if defined(FAN_MARK_IGNORED_SURV_MODIFY) || (defined(HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY) && HAVE_DECL_FAN_MARK_IGNORED_SURV_MODIFY)
	XLAT(FAN_MARK_IGNORED_SURV_MODIFY),
#endif
#if defined(FAN_MARK_FLUSH) || (defined(HAVE_DECL_FAN_MARK_FLUSH) && HAVE_DECL_FAN_MARK_FLUSH)
	XLAT(FAN_MARK_FLUSH),
#endif
	XLAT_END
};
