| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (C) 2015, He Kuang <hekuang@huawei.com> |
| * Copyright (C) 2015, Huawei Inc. |
| */ |
| #ifndef __BPF_PROLOGUE_H |
| #define __BPF_PROLOGUE_H |
| |
| struct probe_trace_arg; |
| struct bpf_insn; |
| |
| #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 |
| #include <linux/compiler.h> |
| #include <errno.h> |
| |
| 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 */ |