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

#ifdef IN_MPERS

# error static const struct xlat xfs_quota_flags in mpers mode

#else

static
const struct xlat xfs_quota_flags[] = {
#if defined(XFS_QUOTA_UDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ACCT) && HAVE_DECL_XFS_QUOTA_UDQ_ACCT)
  XLAT(XFS_QUOTA_UDQ_ACCT),
#endif
#if defined(XFS_QUOTA_UDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_UDQ_ENFD) && HAVE_DECL_XFS_QUOTA_UDQ_ENFD)
  XLAT(XFS_QUOTA_UDQ_ENFD),
#endif
#if defined(XFS_QUOTA_GDQ_ACCT) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ACCT) && HAVE_DECL_XFS_QUOTA_GDQ_ACCT)
  XLAT(XFS_QUOTA_GDQ_ACCT),
#endif
#if defined(XFS_QUOTA_GDQ_ENFD) || (defined(HAVE_DECL_XFS_QUOTA_GDQ_ENFD) && HAVE_DECL_XFS_QUOTA_GDQ_ENFD)
  XLAT(XFS_QUOTA_GDQ_ENFD),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
