Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1c569f02 | 2 | #undef TRACE_SYSTEM |
b8007ef7 | 3 | #define TRACE_SYSTEM raw_syscalls |
bf7165cf | 4 | #undef TRACE_INCLUDE_FILE |
b8007ef7 | 5 | #define TRACE_INCLUDE_FILE syscalls |
1c569f02 JS |
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 | ||
1c569f02 JS |
18 | 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; | |
b35f549d | 31 | syscall_get_arguments(current, regs, __entry->args); |
1c569f02 JS |
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 | ||
fe554203 FW |
42 | TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) |
43 | ||
1c569f02 JS |
44 | 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 | ||
fe554203 FW |
66 | TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY) |
67 | ||
1c569f02 JS |
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 |