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

#ifdef IN_MPERS

extern const struct xlat btrfs_snap_flags_v2[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat btrfs_snap_flags_v2[] = {
#if defined(BTRFS_SUBVOL_CREATE_ASYNC) || (defined(HAVE_DECL_BTRFS_SUBVOL_CREATE_ASYNC) && HAVE_DECL_BTRFS_SUBVOL_CREATE_ASYNC)
  XLAT_TYPE(uint64_t, BTRFS_SUBVOL_CREATE_ASYNC),
#endif
#if defined(BTRFS_SUBVOL_RDONLY) || (defined(HAVE_DECL_BTRFS_SUBVOL_RDONLY) && HAVE_DECL_BTRFS_SUBVOL_RDONLY)
  XLAT_TYPE(uint64_t, BTRFS_SUBVOL_RDONLY),
#endif
#if defined(BTRFS_SUBVOL_QGROUP_INHERIT) || (defined(HAVE_DECL_BTRFS_SUBVOL_QGROUP_INHERIT) && HAVE_DECL_BTRFS_SUBVOL_QGROUP_INHERIT)
  XLAT_TYPE(uint64_t, BTRFS_SUBVOL_QGROUP_INHERIT),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
