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

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

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

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat getsock_options in mpers mode

# else

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

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
