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

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(QFMT_VFS_OLD) || (defined(HAVE_DECL_QFMT_VFS_OLD) && HAVE_DECL_QFMT_VFS_OLD)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((QFMT_VFS_OLD) == (1), "QFMT_VFS_OLD != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define QFMT_VFS_OLD 1
#endif
#if defined(QFMT_VFS_V0) || (defined(HAVE_DECL_QFMT_VFS_V0) && HAVE_DECL_QFMT_VFS_V0)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((QFMT_VFS_V0) == (2), "QFMT_VFS_V0 != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define QFMT_VFS_V0 2
#endif
#if defined(QFMT_OCFS2) || (defined(HAVE_DECL_QFMT_OCFS2) && HAVE_DECL_QFMT_OCFS2)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((QFMT_OCFS2) == (3), "QFMT_OCFS2 != 3");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define QFMT_OCFS2 3
#endif
#if defined(QFMT_VFS_V1) || (defined(HAVE_DECL_QFMT_VFS_V1) && HAVE_DECL_QFMT_VFS_V1)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((QFMT_VFS_V1) == (4), "QFMT_VFS_V1 != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define QFMT_VFS_V1 4
#endif

#ifndef XLAT_MACROS_ONLY

# 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 */

#endif /* !XLAT_MACROS_ONLY */
