Branch data 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 : 13 : 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 : 13 : 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 : :
|