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

static const struct xlat sockpacketoptions[] = {
#if defined(PACKET_ADD_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_ADD_MEMBERSHIP) && HAVE_DECL_PACKET_ADD_MEMBERSHIP)
 XLAT(PACKET_ADD_MEMBERSHIP),
#endif
#if defined(PACKET_DROP_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_DROP_MEMBERSHIP) && HAVE_DECL_PACKET_DROP_MEMBERSHIP)
 XLAT(PACKET_DROP_MEMBERSHIP),
#endif
#if defined(PACKET_RECV_OUTPUT) || (defined(HAVE_DECL_PACKET_RECV_OUTPUT) && HAVE_DECL_PACKET_RECV_OUTPUT)
 XLAT(PACKET_RECV_OUTPUT),
#endif
#if defined(PACKET_RX_RING) || (defined(HAVE_DECL_PACKET_RX_RING) && HAVE_DECL_PACKET_RX_RING)
 XLAT(PACKET_RX_RING),
#endif
#if defined(PACKET_STATISTICS) || (defined(HAVE_DECL_PACKET_STATISTICS) && HAVE_DECL_PACKET_STATISTICS)
 XLAT(PACKET_STATISTICS),
#endif
#if defined(PACKET_COPY_THRESH) || (defined(HAVE_DECL_PACKET_COPY_THRESH) && HAVE_DECL_PACKET_COPY_THRESH)
 XLAT(PACKET_COPY_THRESH),
#endif
#if defined(PACKET_AUXDATA) || (defined(HAVE_DECL_PACKET_AUXDATA) && HAVE_DECL_PACKET_AUXDATA)
 XLAT(PACKET_AUXDATA),
#endif
#if defined(PACKET_ORIGDEV) || (defined(HAVE_DECL_PACKET_ORIGDEV) && HAVE_DECL_PACKET_ORIGDEV)
 XLAT(PACKET_ORIGDEV),
#endif
#if defined(PACKET_VERSION) || (defined(HAVE_DECL_PACKET_VERSION) && HAVE_DECL_PACKET_VERSION)
 XLAT(PACKET_VERSION),
#endif
#if defined(PACKET_HDRLEN) || (defined(HAVE_DECL_PACKET_HDRLEN) && HAVE_DECL_PACKET_HDRLEN)
 XLAT(PACKET_HDRLEN),
#endif
#if defined(PACKET_RESERVE) || (defined(HAVE_DECL_PACKET_RESERVE) && HAVE_DECL_PACKET_RESERVE)
 XLAT(PACKET_RESERVE),
#endif
#if defined(PACKET_TX_RING) || (defined(HAVE_DECL_PACKET_TX_RING) && HAVE_DECL_PACKET_TX_RING)
 XLAT(PACKET_TX_RING),
#endif
#if defined(PACKET_LOSS) || (defined(HAVE_DECL_PACKET_LOSS) && HAVE_DECL_PACKET_LOSS)
 XLAT(PACKET_LOSS),
#endif
 XLAT_END
};
