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

static const struct xlat fan_init_flags[] = {
#if defined(FAN_CLOEXEC) || (defined(HAVE_DECL_FAN_CLOEXEC) && HAVE_DECL_FAN_CLOEXEC)
	XLAT(FAN_CLOEXEC),
#endif
#if defined(FAN_NONBLOCK) || (defined(HAVE_DECL_FAN_NONBLOCK) && HAVE_DECL_FAN_NONBLOCK)
	XLAT(FAN_NONBLOCK),
#endif
#if defined(FAN_UNLIMITED_QUEUE) || (defined(HAVE_DECL_FAN_UNLIMITED_QUEUE) && HAVE_DECL_FAN_UNLIMITED_QUEUE)
	XLAT(FAN_UNLIMITED_QUEUE),
#endif
#if defined(FAN_UNLIMITED_MARKS) || (defined(HAVE_DECL_FAN_UNLIMITED_MARKS) && HAVE_DECL_FAN_UNLIMITED_MARKS)
	XLAT(FAN_UNLIMITED_MARKS),
#endif
	XLAT_END
};
