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

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

#if defined __hppa__
#if defined(SO_ATTACH_FILTER) || (defined(HAVE_DECL_SO_ATTACH_FILTER) && HAVE_DECL_SO_ATTACH_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_FILTER) == (16410), "SO_ATTACH_FILTER != 16410");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_FILTER 16410
#endif
#else
#if defined(SO_ATTACH_FILTER) || (defined(HAVE_DECL_SO_ATTACH_FILTER) && HAVE_DECL_SO_ATTACH_FILTER)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SO_ATTACH_FILTER) == (26), "SO_ATTACH_FILTER != 26");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SO_ATTACH_FILTER 26
#endif
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat setsock_options in mpers mode

# else

static
const struct xlat setsock_options[] = {
#if defined __hppa__
 XLAT(SO_ATTACH_FILTER),
#else
 XLAT(SO_ATTACH_FILTER),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
