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