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

static const struct xlat bpf_op_alu[] = {
#if defined(BPF_ADD) || (defined(HAVE_DECL_BPF_ADD) && HAVE_DECL_BPF_ADD)
 XLAT(BPF_ADD),
#endif
#if defined(BPF_SUB) || (defined(HAVE_DECL_BPF_SUB) && HAVE_DECL_BPF_SUB)
 XLAT(BPF_SUB),
#endif
#if defined(BPF_MUL) || (defined(HAVE_DECL_BPF_MUL) && HAVE_DECL_BPF_MUL)
 XLAT(BPF_MUL),
#endif
#if defined(BPF_DIV) || (defined(HAVE_DECL_BPF_DIV) && HAVE_DECL_BPF_DIV)
 XLAT(BPF_DIV),
#endif
#if defined(BPF_OR) || (defined(HAVE_DECL_BPF_OR) && HAVE_DECL_BPF_OR)
 XLAT(BPF_OR),
#endif
#if defined(BPF_AND) || (defined(HAVE_DECL_BPF_AND) && HAVE_DECL_BPF_AND)
 XLAT(BPF_AND),
#endif
#if defined(BPF_LSH) || (defined(HAVE_DECL_BPF_LSH) && HAVE_DECL_BPF_LSH)
 XLAT(BPF_LSH),
#endif
#if defined(BPF_RSH) || (defined(HAVE_DECL_BPF_RSH) && HAVE_DECL_BPF_RSH)
 XLAT(BPF_RSH),
#endif
#if defined(BPF_NEG) || (defined(HAVE_DECL_BPF_NEG) && HAVE_DECL_BPF_NEG)
 XLAT(BPF_NEG),
#endif
#if defined(BPF_MOD) || (defined(HAVE_DECL_BPF_MOD) && HAVE_DECL_BPF_MOD)
 XLAT(BPF_MOD),
#endif
#if defined(BPF_XOR) || (defined(HAVE_DECL_BPF_XOR) && HAVE_DECL_BPF_XOR)
 XLAT(BPF_XOR),
#endif
#if defined(BPF_MOV) || (defined(HAVE_DECL_BPF_MOV) && HAVE_DECL_BPF_MOV)
 XLAT(BPF_MOV),
#endif
#if defined(BPF_ARSH) || (defined(HAVE_DECL_BPF_ARSH) && HAVE_DECL_BPF_ARSH)
 XLAT(BPF_ARSH),
#endif
 XLAT_END
};
