1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2015, He Kuang <hekuang@huawei.com> 4 * Copyright (C) 2015, Huawei Inc. 5 */ 6#ifndef __BPF_PROLOGUE_H 7#define __BPF_PROLOGUE_H 8 9struct probe_trace_arg; 10struct bpf_insn; 11 12#define BPF_PROLOGUE_MAX_ARGS 3 13#define BPF_PROLOGUE_START_ARG_REG BPF_REG_3 14#define BPF_PROLOGUE_FETCH_RESULT_REG BPF_REG_2 15 16#ifdef HAVE_BPF_PROLOGUE 17int bpf__gen_prologue(struct probe_trace_arg *args, int nargs, 18 struct bpf_insn *new_prog, size_t *new_cnt, 19 size_t cnt_space); 20#else 21#include <linux/compiler.h> 22#include <errno.h> 23 24static inline int 25bpf__gen_prologue(struct probe_trace_arg *args __maybe_unused, 26 int nargs __maybe_unused, 27 struct bpf_insn *new_prog __maybe_unused, 28 size_t *new_cnt, 29 size_t cnt_space __maybe_unused) 30{ 31 if (!new_cnt) 32 return -EINVAL; 33 *new_cnt = 0; 34 return -ENOTSUP; 35} 36#endif 37#endif /* __BPF_PROLOGUE_H */ 38