Migrate tracepoint instrumentation to TP_FIELDS
[lttng-modules.git] / instrumentation / events / lttng-module / printk.h
... / ...
CommitLineData
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM printk
3
4#if !defined(LTTNG_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_PRINTK_H
6
7#include "../../../probes/lttng-tracepoint-event.h"
8#include <linux/version.h>
9
10#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
11
12LTTNG_TRACEPOINT_EVENT_MAP(console,
13
14 printk_console,
15
16 TP_PROTO(const char *text, size_t len),
17
18 TP_ARGS(text, len),
19
20 TP_FIELDS(
21 ctf_sequence_text(char, msg, text, size_t, len)
22 )
23)
24
25#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
26
27LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
28
29 printk_console,
30
31 TP_PROTO(const char *log_buf, unsigned start, unsigned end,
32 unsigned log_buf_len),
33
34 TP_ARGS(log_buf, start, end, log_buf_len),
35
36 TP_CONDITION(start != end),
37
38 TP_FIELDS(
39 ctf_sequence_text(char, msg, log_buf + start,
40 size_t, end - start)
41 )
42)
43
44#else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */
45
46LTTNG_TRACEPOINT_EVENT_CONDITION_MAP(console,
47
48 printk_console,
49
50 TP_PROTO(const char *log_buf, unsigned start, unsigned end,
51 unsigned log_buf_len),
52
53 TP_ARGS(log_buf, start, end, log_buf_len),
54
55 TP_CONDITION(start != end),
56
57 TP_FIELDS(
58 /*
59 * printk buffer is gathered from two segments on older kernels.
60 */
61 ctf_sequence_text(char, msg1,
62 log_buf + (start & (log_buf_len - 1)),
63 size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
64 ? log_buf_len - (start & (log_buf_len - 1))
65 : end - start)
66 ctf_sequence_text(char, msg2,
67 log_buf,
68 size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1))
69 ? end & (log_buf_len - 1)
70 : 0)
71 )
72)
73
74#endif
75
76#endif /* LTTNG_TRACE_PRINTK_H */
77
78/* This part must be outside protection */
79#include "../../../probes/define_trace.h"
This page took 0.022196 seconds and 4 git commands to generate.