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

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

#if defined(CAIFSO_LINK_SELECT) || (defined(HAVE_DECL_CAIFSO_LINK_SELECT) && HAVE_DECL_CAIFSO_LINK_SELECT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((CAIFSO_LINK_SELECT) == (127), "CAIFSO_LINK_SELECT != 127");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define CAIFSO_LINK_SELECT 127
#endif
#if defined(CAIFSO_REQ_PARAM) || (defined(HAVE_DECL_CAIFSO_REQ_PARAM) && HAVE_DECL_CAIFSO_REQ_PARAM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((CAIFSO_REQ_PARAM) == (128), "CAIFSO_REQ_PARAM != 128");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define CAIFSO_REQ_PARAM 128
#endif
#if defined(CAIFSO_RSP_PARAM) || (defined(HAVE_DECL_CAIFSO_RSP_PARAM) && HAVE_DECL_CAIFSO_RSP_PARAM)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((CAIFSO_RSP_PARAM) == (129), "CAIFSO_RSP_PARAM != 129");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define CAIFSO_RSP_PARAM 129
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat sock_caif_options in mpers mode

# else

static
const struct xlat sock_caif_options[] = {
 XLAT(CAIFSO_LINK_SELECT),
 XLAT(CAIFSO_REQ_PARAM),
 XLAT(CAIFSO_RSP_PARAM),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
