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

#ifdef IN_MPERS

# error static const struct xlat bpf_mode in mpers mode

#else

static
const struct xlat bpf_mode[] = {
#if defined(BPF_IMM) || (defined(HAVE_DECL_BPF_IMM) && HAVE_DECL_BPF_IMM)
  XLAT(BPF_IMM),
#endif
#if defined(BPF_ABS) || (defined(HAVE_DECL_BPF_ABS) && HAVE_DECL_BPF_ABS)
  XLAT(BPF_ABS),
#endif
#if defined(BPF_IND) || (defined(HAVE_DECL_BPF_IND) && HAVE_DECL_BPF_IND)
  XLAT(BPF_IND),
#endif
#if defined(BPF_MEM) || (defined(HAVE_DECL_BPF_MEM) && HAVE_DECL_BPF_MEM)
  XLAT(BPF_MEM),
#endif
#if defined(BPF_LEN) || (defined(HAVE_DECL_BPF_LEN) && HAVE_DECL_BPF_LEN)
  XLAT(BPF_LEN),
#endif
#if defined(BPF_MSH) || (defined(HAVE_DECL_BPF_MSH) && HAVE_DECL_BPF_MSH)
  XLAT(BPF_MSH),
#endif
#if defined(BPF_XADD) || (defined(HAVE_DECL_BPF_XADD) && HAVE_DECL_BPF_XADD)
  XLAT(BPF_XADD),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
