/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM syscall_check

#define TRACE_INCLUDE_PATH trace/hooks
#if !defined(_TRACE_HOOK_SYSCALL_CHECK_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_SYSCALL_CHECK_H
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
/*
 * Following tracepoints are not exported in tracefs and provide a
 * mechanism for vendor modules to hook and extend functionality
 */
struct file;
union bpf_attr;
DECLARE_HOOK(android_vh_check_mmap_file,
	TP_PROTO(const struct file *file, unsigned long prot,
		unsigned long flag, unsigned long ret),
	TP_ARGS(file, prot, flag, ret));

DECLARE_HOOK(android_vh_check_file_open,
	TP_PROTO(const struct file *file),
	TP_ARGS(file));

DECLARE_HOOK(android_vh_check_bpf_syscall,
	TP_PROTO(int cmd, const union bpf_attr *attr, unsigned int size),
	TP_ARGS(cmd, attr, size));

#endif /* _TRACE_HOOK_SYSCALL_CHECK_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
