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

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


#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat setsock_ipv6_options in mpers mode

# else

static
const struct xlat setsock_ipv6_options[] = {
/*
* Options specific to setsockopt(SOL_IPV6).
* Common {g,s}etsockopt(SOL_IPV6) options
* should be in sock_ipv6_options.in instead.
*/

#if defined(IP6T_SO_SET_REPLACE) || (defined(HAVE_DECL_IP6T_SO_SET_REPLACE) && HAVE_DECL_IP6T_SO_SET_REPLACE)
  XLAT(IP6T_SO_SET_REPLACE),
#endif
#if defined(IP6T_SO_SET_ADD_COUNTERS) || (defined(HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS) && HAVE_DECL_IP6T_SO_SET_ADD_COUNTERS)
  XLAT(IP6T_SO_SET_ADD_COUNTERS),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
