/* Generated by ./xlat/gen.sh from ./xlat/quota_formats.in; do not edit. */
#if !(defined(QFMT_VFS_OLD) || (defined(HAVE_DECL_QFMT_VFS_OLD) && HAVE_DECL_QFMT_VFS_OLD))
# define QFMT_VFS_OLD 1
#endif
#if !(defined(QFMT_VFS_V0) || (defined(HAVE_DECL_QFMT_VFS_V0) && HAVE_DECL_QFMT_VFS_V0))
# define QFMT_VFS_V0 2
#endif
#if !(defined(QFMT_OCFS2) || (defined(HAVE_DECL_QFMT_OCFS2) && HAVE_DECL_QFMT_OCFS2))
# define QFMT_OCFS2 3
#endif
#if !(defined(QFMT_VFS_V1) || (defined(HAVE_DECL_QFMT_VFS_V1) && HAVE_DECL_QFMT_VFS_V1))
# define QFMT_VFS_V1 4
#endif

#ifdef IN_MPERS

# error static const struct xlat quota_formats in mpers mode

#else

static
const struct xlat quota_formats[] = {
 XLAT(QFMT_VFS_OLD),
 XLAT(QFMT_VFS_V0),
 XLAT(QFMT_OCFS2),
 XLAT(QFMT_VFS_V1),
 XLAT_END
};

#endif /* !IN_MPERS */
