/* Generated by ./xlat/gen.sh from ./xlat/umount_flags.in; do not edit. */
#if !(defined(MNT_FORCE) || (defined(HAVE_DECL_MNT_FORCE) && HAVE_DECL_MNT_FORCE))
# define MNT_FORCE 1
#endif
#if !(defined(MNT_DETACH) || (defined(HAVE_DECL_MNT_DETACH) && HAVE_DECL_MNT_DETACH))
# define MNT_DETACH 2
#endif
#if !(defined(MNT_EXPIRE) || (defined(HAVE_DECL_MNT_EXPIRE) && HAVE_DECL_MNT_EXPIRE))
# define MNT_EXPIRE 4
#endif
#if !(defined(UMOUNT_NOFOLLOW) || (defined(HAVE_DECL_UMOUNT_NOFOLLOW) && HAVE_DECL_UMOUNT_NOFOLLOW))
# define UMOUNT_NOFOLLOW 8
#endif

#ifdef IN_MPERS

# error static const struct xlat umount_flags in mpers mode

#else

static
const struct xlat umount_flags[] = {
 XLAT(MNT_FORCE),
 XLAT(MNT_DETACH),
 XLAT(MNT_EXPIRE),
 XLAT(UMOUNT_NOFOLLOW),
 XLAT_END
};

#endif /* !IN_MPERS */
