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

#ifdef IN_MPERS

# error static const struct xlat xdp_flags in mpers mode

#else

static
const struct xlat xdp_flags[] = {
#if defined(XDP_FLAGS_MODES) || (defined(HAVE_DECL_XDP_FLAGS_MODES) && HAVE_DECL_XDP_FLAGS_MODES)
  XLAT(XDP_FLAGS_MODES),
#endif
#if defined(XDP_FLAGS_UPDATE_IF_NOEXIST) || (defined(HAVE_DECL_XDP_FLAGS_UPDATE_IF_NOEXIST) && HAVE_DECL_XDP_FLAGS_UPDATE_IF_NOEXIST)
  XLAT(XDP_FLAGS_UPDATE_IF_NOEXIST),
#endif
#if defined(XDP_FLAGS_SKB_MODE) || (defined(HAVE_DECL_XDP_FLAGS_SKB_MODE) && HAVE_DECL_XDP_FLAGS_SKB_MODE)
  XLAT(XDP_FLAGS_SKB_MODE),
#endif
#if defined(XDP_FLAGS_DRV_MODE) || (defined(HAVE_DECL_XDP_FLAGS_DRV_MODE) && HAVE_DECL_XDP_FLAGS_DRV_MODE)
  XLAT(XDP_FLAGS_DRV_MODE),
#endif
#if defined(XDP_FLAGS_HW_MODE) || (defined(HAVE_DECL_XDP_FLAGS_HW_MODE) && HAVE_DECL_XDP_FLAGS_HW_MODE)
  XLAT(XDP_FLAGS_HW_MODE),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
