/* Generated by ./xlat/gen.sh from ./xlat/bpf_commands.in; do not edit. */
#if !(defined(BPF_MAP_CREATE) || (defined(HAVE_DECL_BPF_MAP_CREATE) && HAVE_DECL_BPF_MAP_CREATE))
# define BPF_MAP_CREATE 0
#endif
#if !(defined(BPF_MAP_LOOKUP_ELEM) || (defined(HAVE_DECL_BPF_MAP_LOOKUP_ELEM) && HAVE_DECL_BPF_MAP_LOOKUP_ELEM))
# define BPF_MAP_LOOKUP_ELEM 1
#endif
#if !(defined(BPF_MAP_UPDATE_ELEM) || (defined(HAVE_DECL_BPF_MAP_UPDATE_ELEM) && HAVE_DECL_BPF_MAP_UPDATE_ELEM))
# define BPF_MAP_UPDATE_ELEM 2
#endif
#if !(defined(BPF_MAP_DELETE_ELEM) || (defined(HAVE_DECL_BPF_MAP_DELETE_ELEM) && HAVE_DECL_BPF_MAP_DELETE_ELEM))
# define BPF_MAP_DELETE_ELEM 3
#endif
#if !(defined(BPF_MAP_GET_NEXT_KEY) || (defined(HAVE_DECL_BPF_MAP_GET_NEXT_KEY) && HAVE_DECL_BPF_MAP_GET_NEXT_KEY))
# define BPF_MAP_GET_NEXT_KEY 4
#endif
#if !(defined(BPF_PROG_LOAD) || (defined(HAVE_DECL_BPF_PROG_LOAD) && HAVE_DECL_BPF_PROG_LOAD))
# define BPF_PROG_LOAD 5
#endif
#if !(defined(BPF_OBJ_PIN) || (defined(HAVE_DECL_BPF_OBJ_PIN) && HAVE_DECL_BPF_OBJ_PIN))
# define BPF_OBJ_PIN 6
#endif
#if !(defined(BPF_OBJ_GET) || (defined(HAVE_DECL_BPF_OBJ_GET) && HAVE_DECL_BPF_OBJ_GET))
# define BPF_OBJ_GET 7
#endif
#if !(defined(BPF_PROG_ATTACH) || (defined(HAVE_DECL_BPF_PROG_ATTACH) && HAVE_DECL_BPF_PROG_ATTACH))
# define BPF_PROG_ATTACH 8
#endif
#if !(defined(BPF_PROG_DETACH) || (defined(HAVE_DECL_BPF_PROG_DETACH) && HAVE_DECL_BPF_PROG_DETACH))
# define BPF_PROG_DETACH 9
#endif

#ifdef IN_MPERS

# error static const struct xlat bpf_commands in mpers mode

#else

static
const struct xlat bpf_commands[] = {
 XLAT(BPF_MAP_CREATE),
 XLAT(BPF_MAP_LOOKUP_ELEM),
 XLAT(BPF_MAP_UPDATE_ELEM),
 XLAT(BPF_MAP_DELETE_ELEM),
 XLAT(BPF_MAP_GET_NEXT_KEY),
 XLAT(BPF_PROG_LOAD),
 XLAT(BPF_OBJ_PIN),
 XLAT(BPF_OBJ_GET),
 XLAT(BPF_PROG_ATTACH),
 XLAT(BPF_PROG_DETACH),
 XLAT_END
};

#endif /* !IN_MPERS */
