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

#ifdef IN_MPERS

# error static const struct xlat getsockipv6options in mpers mode

#else

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

#if defined(IP6T_SO_GET_INFO) || (defined(HAVE_DECL_IP6T_SO_GET_INFO) && HAVE_DECL_IP6T_SO_GET_INFO)
  XLAT(IP6T_SO_GET_INFO),
#endif
#if defined(IP6T_SO_GET_ENTRIES) || (defined(HAVE_DECL_IP6T_SO_GET_ENTRIES) && HAVE_DECL_IP6T_SO_GET_ENTRIES)
  XLAT(IP6T_SO_GET_ENTRIES),
#endif
#if defined(IP6T_SO_GET_REVISION_MATCH) || (defined(HAVE_DECL_IP6T_SO_GET_REVISION_MATCH) && HAVE_DECL_IP6T_SO_GET_REVISION_MATCH)
  XLAT(IP6T_SO_GET_REVISION_MATCH),
#endif
#if defined(IP6T_SO_GET_REVISION_TARGET) || (defined(HAVE_DECL_IP6T_SO_GET_REVISION_TARGET) && HAVE_DECL_IP6T_SO_GET_REVISION_TARGET)
  XLAT(IP6T_SO_GET_REVISION_TARGET),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
