Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */
2 : #undef TRACE_SYSTEM
3 : #define TRACE_SYSTEM raw_syscalls
4 : #undef TRACE_INCLUDE_FILE
5 : #define TRACE_INCLUDE_FILE syscalls
6 :
7 : #if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ)
8 : #define _TRACE_EVENTS_SYSCALLS_H
9 :
10 : #include <linux/tracepoint.h>
11 :
12 : #include <asm/ptrace.h>
13 : #include <asm/syscall.h>
14 :
15 :
16 : #ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
17 :
18 0 : TRACE_EVENT_FN(sys_enter,
19 :
20 : TP_PROTO(struct pt_regs *regs, long id),
21 :
22 : TP_ARGS(regs, id),
23 :
24 : TP_STRUCT__entry(
25 : __field( long, id )
26 : __array( unsigned long, args, 6 )
27 : ),
28 :
29 : TP_fast_assign(
30 : __entry->id = id;
31 : syscall_get_arguments(current, regs, __entry->args);
32 : ),
33 :
34 : TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)",
35 : __entry->id,
36 : __entry->args[0], __entry->args[1], __entry->args[2],
37 : __entry->args[3], __entry->args[4], __entry->args[5]),
38 :
39 : syscall_regfunc, syscall_unregfunc
40 : );
41 :
42 1 : TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY)
43 :
44 0 : TRACE_EVENT_FN(sys_exit,
45 :
46 : TP_PROTO(struct pt_regs *regs, long ret),
47 :
48 : TP_ARGS(regs, ret),
49 :
50 : TP_STRUCT__entry(
51 : __field( long, id )
52 : __field( long, ret )
53 : ),
54 :
55 : TP_fast_assign(
56 : __entry->id = syscall_get_nr(current, regs);
57 : __entry->ret = ret;
58 : ),
59 :
60 : TP_printk("NR %ld = %ld",
61 : __entry->id, __entry->ret),
62 :
63 : syscall_regfunc, syscall_unregfunc
64 : );
65 :
66 1 : TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY)
67 :
68 : #endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */
69 :
70 : #endif /* _TRACE_EVENTS_SYSCALLS_H */
71 :
72 : /* This part must be outside protection */
73 : #include <trace/define_trace.h>
74 :
|