Add syscall tracing
[lttng-modules.git] / instrumentation / events / lttng-module / syscalls.h
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 #ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
11
12 #ifndef _TRACE_SYSCALLS_DEF_
13 #define _TRACE_SYSCALLS_DEF_
14
15 #include <asm/ptrace.h>
16 #include <asm/syscall.h>
17
18 #endif /* _TRACE_SYSCALLS_DEF_ */
19
20 TRACE_EVENT(sys_enter,
21
22 TP_PROTO(struct pt_regs *regs, long id),
23
24 TP_ARGS(regs, id),
25
26 TP_STRUCT__entry(
27 __field( long, id )
28 __array( unsigned long, args, 6 )
29 ),
30
31 TP_fast_assign(
32 tp_assign(id, id)
33 {
34 unsigned long args_copy[6];
35
36 syscall_get_arguments(current, regs, 0, 6, args_copy);
37 tp_memcpy(args, args_copy, 6 * sizeof(args_copy));
38 }
39 ),
40
41 TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)",
42 __entry->id,
43 __entry->args[0], __entry->args[1], __entry->args[2],
44 __entry->args[3], __entry->args[4], __entry->args[5])
45 )
46
47 TRACE_EVENT(sys_exit,
48
49 TP_PROTO(struct pt_regs *regs, long ret),
50
51 TP_ARGS(regs, ret),
52
53 TP_STRUCT__entry(
54 __field( long, id )
55 __field( long, ret )
56 ),
57
58 TP_fast_assign(
59 tp_assign(id, syscall_get_nr(current, regs))
60 tp_assign(ret, ret)
61 ),
62
63 TP_printk("NR %ld = %ld",
64 __entry->id, __entry->ret)
65 )
66
67 #endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */
68
69 #endif /* _TRACE_EVENTS_SYSCALLS_H */
70
71 /* This part must be outside protection */
72 #include "define_trace.h"
73
This page took 0.037068 seconds and 4 git commands to generate.