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

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

#if defined(TPACKET_V1) || (defined(HAVE_DECL_TPACKET_V1) && HAVE_DECL_TPACKET_V1)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TPACKET_V1) == (0), "TPACKET_V1 != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TPACKET_V1 0
#endif
#if defined(TPACKET_V2) || (defined(HAVE_DECL_TPACKET_V2) && HAVE_DECL_TPACKET_V2)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TPACKET_V2) == (1), "TPACKET_V2 != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TPACKET_V2 1
#endif
#if defined(TPACKET_V3) || (defined(HAVE_DECL_TPACKET_V3) && HAVE_DECL_TPACKET_V3)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TPACKET_V3) == (2), "TPACKET_V3 != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TPACKET_V3 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat af_packet_versions in mpers mode

# else

static
const struct xlat af_packet_versions[] = {
 XLAT(TPACKET_V1),
 XLAT(TPACKET_V2),
 XLAT(TPACKET_V3),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
