• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM traps
4 #define TRACE_INCLUDE_PATH trace/hooks
5 
6 #if !defined(_TRACE_HOOK_TRAPS_H) || defined(TRACE_HEADER_MULTI_READ)
7 #define _TRACE_HOOK_TRAPS_H
8 #include <linux/tracepoint.h>
9 #include <trace/hooks/vendor_hooks.h>
10 /*
11  * Following tracepoints are not exported in tracefs and provide a
12  * mechanism for vendor modules to hook and extend functionality
13  */
14 struct pt_regs;
15 DECLARE_RESTRICTED_HOOK(android_rvh_do_undefinstr,
16 	TP_PROTO(struct pt_regs *regs, bool user),
17 	TP_ARGS(regs, user),
18 	TP_CONDITION(!user));
19 
20 DECLARE_RESTRICTED_HOOK(android_rvh_do_bti,
21 	TP_PROTO(struct pt_regs *regs, bool user),
22 	TP_ARGS(regs, user),
23 	TP_CONDITION(!user));
24 
25 DECLARE_RESTRICTED_HOOK(android_rvh_do_ptrauth_fault,
26 	TP_PROTO(struct pt_regs *regs, unsigned int esr, bool user),
27 	TP_ARGS(regs, esr, user),
28 	TP_CONDITION(!user));
29 
30 DECLARE_RESTRICTED_HOOK(android_rvh_bad_mode,
31 	TP_PROTO(struct pt_regs *regs, unsigned int esr, int reason),
32 	TP_ARGS(regs, reason, esr), 1);
33 
34 DECLARE_RESTRICTED_HOOK(android_rvh_arm64_serror_panic,
35 	TP_PROTO(struct pt_regs *regs, unsigned int esr),
36 	TP_ARGS(regs, esr), 1);
37 
38 /* macro versions of hooks are no longer required */
39 
40 #endif /* _TRACE_HOOK_TRAPS_H */
41 /* This part must be outside protection */
42 #include <trace/define_trace.h>
43