| /* | |
| * Copyright (C) 2015, He Kuang <hekuang@huawei.com> | |
| * Copyright (C) 2015, Huawei Inc. | |
| */ | |
| #ifndef __BPF_PROLOGUE_H | |
| #define __BPF_PROLOGUE_H | |
| #include <linux/compiler.h> | |
| #include <linux/filter.h> | |
| #include "probe-event.h" | |
| #define BPF_PROLOGUE_MAX_ARGS 3 | |
| #define BPF_PROLOGUE_START_ARG_REG BPF_REG_3 | |
| #define BPF_PROLOGUE_FETCH_RESULT_REG BPF_REG_2 | |
| #ifdef HAVE_BPF_PROLOGUE | |
| int bpf__gen_prologue(struct probe_trace_arg *args, int nargs, | |
| struct bpf_insn *new_prog, size_t *new_cnt, | |
| size_t cnt_space); | |
| #else | |
| static inline int | |
| bpf__gen_prologue(struct probe_trace_arg *args __maybe_unused, | |
| int nargs __maybe_unused, | |
| struct bpf_insn *new_prog __maybe_unused, | |
| size_t *new_cnt, | |
| size_t cnt_space __maybe_unused) | |
| { | |
| if (!new_cnt) | |
| return -EINVAL; | |
| *new_cnt = 0; | |
| return -ENOTSUP; | |
| } | |
| #endif | |
| #endif /* __BPF_PROLOGUE_H */ |