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

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

#if defined(SMC_CLNT) || (defined(HAVE_DECL_SMC_CLNT) && HAVE_DECL_SMC_CLNT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SMC_CLNT) == (0), "SMC_CLNT != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SMC_CLNT 0
#endif
#if defined(SMC_SERV) || (defined(HAVE_DECL_SMC_SERV) && HAVE_DECL_SMC_SERV)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SMC_SERV) == (1), "SMC_SERV != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SMC_SERV 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat smc_link_group_roles in mpers mode

# else

static
const struct xlat smc_link_group_roles[] = {
 XLAT(SMC_CLNT),
 XLAT(SMC_SERV),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
