/* Generated by ./xlat/gen.sh from ./xlat/btrfs_balance_flags.in; do not edit. */
#if !(defined(BTRFS_BALANCE_DATA) || (defined(HAVE_DECL_BTRFS_BALANCE_DATA) && HAVE_DECL_BTRFS_BALANCE_DATA))
# define BTRFS_BALANCE_DATA (1ULL << 0)
#endif
#if !(defined(BTRFS_BALANCE_SYSTEM) || (defined(HAVE_DECL_BTRFS_BALANCE_SYSTEM) && HAVE_DECL_BTRFS_BALANCE_SYSTEM))
# define BTRFS_BALANCE_SYSTEM (1ULL << 1)
#endif
#if !(defined(BTRFS_BALANCE_METADATA) || (defined(HAVE_DECL_BTRFS_BALANCE_METADATA) && HAVE_DECL_BTRFS_BALANCE_METADATA))
# define BTRFS_BALANCE_METADATA (1ULL << 2)
#endif
#if !(defined(BTRFS_BALANCE_FORCE) || (defined(HAVE_DECL_BTRFS_BALANCE_FORCE) && HAVE_DECL_BTRFS_BALANCE_FORCE))
# define BTRFS_BALANCE_FORCE (1ULL << 3)
#endif
#if !(defined(BTRFS_BALANCE_RESUME) || (defined(HAVE_DECL_BTRFS_BALANCE_RESUME) && HAVE_DECL_BTRFS_BALANCE_RESUME))
# define BTRFS_BALANCE_RESUME (1ULL << 4)
#endif

#ifdef IN_MPERS

extern const struct xlat btrfs_balance_flags[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat btrfs_balance_flags[] = {
 XLAT_TYPE(uint64_t, BTRFS_BALANCE_DATA),
 XLAT_TYPE(uint64_t, BTRFS_BALANCE_SYSTEM),
 XLAT_TYPE(uint64_t, BTRFS_BALANCE_METADATA),
 XLAT_TYPE(uint64_t, BTRFS_BALANCE_FORCE),
 XLAT_TYPE(uint64_t, BTRFS_BALANCE_RESUME),
 XLAT_END
};

#endif /* !IN_MPERS */
