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

#ifdef IN_MPERS

# error static const struct xlat setsockipv6options in mpers mode

#else

static
const struct xlat setsockipv6options[] = {
/*
* Options specific to setsockopt(SOL_IPV6).
* Common {g,s}etsockopt(SOL_IPV6) options
* should be in sockipv6options.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 */
