1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM madvise 4 #undef TRACE_INCLUDE_PATH 5 #define TRACE_INCLUDE_PATH trace/hooks 6 #if !defined(_TRACE_HOOK_MADVISE_H) || defined(TRACE_HEADER_MULTI_READ) 7 #define _TRACE_HOOK_MADVISE_H 8 #include <trace/hooks/vendor_hooks.h> 9 10 DECLARE_RESTRICTED_HOOK(android_rvh_process_madvise_bypass, 11 TP_PROTO(int pidfd, const struct iovec __user *vec, size_t vlen, 12 int behavior, unsigned int flags, ssize_t *ret, bool *bypass), 13 TP_ARGS(pidfd, vec, vlen, behavior, flags, ret, bypass), 1); 14 DECLARE_HOOK(android_vh_madvise_pageout_return_error, 15 TP_PROTO(int ret, bool *return_error), 16 TP_ARGS(ret, return_error)); 17 DECLARE_HOOK(android_vh_process_madvise_return_error, 18 TP_PROTO(int behavior, int ret, bool *return_error), 19 TP_ARGS(behavior, ret, return_error)); 20 DECLARE_HOOK(android_vh_madvise_pageout_bypass, 21 TP_PROTO(struct mm_struct *mm, bool pageout, int *ret), 22 TP_ARGS(mm, pageout, ret)); 23 DECLARE_HOOK(android_vh_mm_do_madvise_bypass, 24 TP_PROTO(struct mm_struct *mm, unsigned long start, size_t len, 25 int behavior, int *error, bool *bypass), 26 TP_ARGS(mm, start, len, behavior, error, bypass)); 27 28 #endif 29 30 #include <trace/define_trace.h> 31