/* 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

#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
#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 */
