Implement filtering infrastructure
[lttng-modules.git] / instrumentation / events / lttng-module / printk.h
CommitLineData
b87700e3
AG
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM printk
3
3bc29f0a
MD
4#if !defined(LTTNG_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_PRINTK_H
b87700e3 6
3bc29f0a 7#include "../../../probes/lttng-tracepoint-event.h"
b87700e3
AG
8#include <linux/version.h>
9
68ed2ee0
MD
10#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
11
9bbf98da
MD
12LTTNG_TRACEPOINT_EVENT_MAP(console,
13
14 printk_console,
15
68ed2ee0
MD
16 TP_PROTO(const char *text, size_t len),
17
18 TP_ARGS(text, len),
19
20 TP_STRUCT__entry(
21 __dynamic_array_text(char, msg, len)
22 ),
23
24 TP_fast_assign(
25 tp_memcpy_dyn(msg, text)
26 ),
27
28 TP_printk("%s", __get_str(msg))
29)
30
31#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
b87700e3 32
9bbf98da
MD
33LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
34
35 printk_console,
36
b87700e3
AG
37 TP_PROTO(const char *log_buf, unsigned start, unsigned end,
38 unsigned log_buf_len),
39
40 TP_ARGS(log_buf, start, end, log_buf_len),
41
42 TP_CONDITION(start != end),
43
44 TP_STRUCT__entry(
68ed2ee0 45 __dynamic_array_text(char, msg, end - start)
b87700e3
AG
46 ),
47
48 TP_fast_assign(
68ed2ee0
MD
49 tp_memcpy_dyn(msg, log_buf + start)
50 ),
51
52 TP_printk("%s", __get_str(msg))
53)
54
55#else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */
56
9bbf98da
MD
57LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
58
59 printk_console,
60
68ed2ee0
MD
61 TP_PROTO(const char *log_buf, unsigned start, unsigned end,
62 unsigned log_buf_len),
63
64 TP_ARGS(log_buf, start, end, log_buf_len),
65
66 TP_CONDITION(start != end),
67
68 TP_STRUCT__entry(
69 __dynamic_array_text_2(char, msg,
70 (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
71 ? log_buf_len - (start & (log_buf_len - 1))
72 : end - start,
73 (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
74 ? end & (log_buf_len - 1)
75 : 0)
76 ),
77
78 TP_fast_assign(
79 tp_memcpy_dyn_2(msg,
80 log_buf + (start & (log_buf_len - 1)),
81 log_buf)
b87700e3
AG
82 ),
83
84 TP_printk("%s", __get_str(msg))
85)
68ed2ee0
MD
86
87#endif
88
3bc29f0a 89#endif /* LTTNG_TRACE_PRINTK_H */
b87700e3
AG
90
91/* This part must be outside protection */
92#include "../../../probes/define_trace.h"
This page took 0.028584 seconds and 4 git commands to generate.