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

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


#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat packet_diag_info_flags in mpers mode

# else

static
const struct xlat packet_diag_info_flags[] = {
#if defined(PDI_RUNNING) || (defined(HAVE_DECL_PDI_RUNNING) && HAVE_DECL_PDI_RUNNING)
  XLAT(PDI_RUNNING),
#endif
#if defined(PDI_AUXDATA) || (defined(HAVE_DECL_PDI_AUXDATA) && HAVE_DECL_PDI_AUXDATA)
  XLAT(PDI_AUXDATA),
#endif
#if defined(PDI_ORIGDEV) || (defined(HAVE_DECL_PDI_ORIGDEV) && HAVE_DECL_PDI_ORIGDEV)
  XLAT(PDI_ORIGDEV),
#endif
#if defined(PDI_VNETHDR) || (defined(HAVE_DECL_PDI_VNETHDR) && HAVE_DECL_PDI_VNETHDR)
  XLAT(PDI_VNETHDR),
#endif
#if defined(PDI_LOSS) || (defined(HAVE_DECL_PDI_LOSS) && HAVE_DECL_PDI_LOSS)
  XLAT(PDI_LOSS),
#endif
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
