X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fprintk.h;h=75b4ee9239c66fd6f9465197ac238302821ea7e8;hb=3b4aafcbbef722c5d04f2fe06a47c47d4d23eda0;hp=9ac55c72fdc3b6f7363842a69dd8490a8ef4f534;hpb=68ed2ee005d0883cf09466d8dc2b3509acde249a;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/printk.h b/instrumentation/events/lttng-module/printk.h index 9ac55c72..75b4ee92 100644 --- a/instrumentation/events/lttng-module/printk.h +++ b/instrumentation/events/lttng-module/printk.h @@ -1,83 +1,76 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #undef TRACE_SYSTEM #define TRACE_SYSTEM printk -#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_PRINTK_H +#if !defined(LTTNG_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_PRINTK_H -#include +#include #include #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) -TRACE_EVENT(console, - TP_PROTO(const char *text, size_t len), +LTTNG_TRACEPOINT_EVENT_MAP(console, - TP_ARGS(text, len), + printk_console, - TP_STRUCT__entry( - __dynamic_array_text(char, msg, len) - ), + TP_PROTO(const char *text, size_t len), - TP_fast_assign( - tp_memcpy_dyn(msg, text) - ), + TP_ARGS(text, len), - TP_printk("%s", __get_str(msg)) + TP_FIELDS( + ctf_sequence_text(char, msg, text, size_t, len) + ) ) #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) -TRACE_EVENT_CONDITION(console, +LTTNG_TRACEPOINT_EVENT_MAP(console, + + printk_console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, unsigned log_buf_len), TP_ARGS(log_buf, start, end, log_buf_len), - TP_CONDITION(start != end), - - TP_STRUCT__entry( - __dynamic_array_text(char, msg, end - start) - ), - - TP_fast_assign( - tp_memcpy_dyn(msg, log_buf + start) - ), - - TP_printk("%s", __get_str(msg)) + TP_FIELDS( + ctf_sequence_text(char, msg, log_buf + start, + size_t, end - start) + ) ) #else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */ -TRACE_EVENT_CONDITION(console, +LTTNG_TRACEPOINT_EVENT_MAP(console, + + printk_console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, unsigned log_buf_len), TP_ARGS(log_buf, start, end, log_buf_len), - TP_CONDITION(start != end), - - TP_STRUCT__entry( - __dynamic_array_text_2(char, msg, - (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + TP_FIELDS( + /* + * printk buffer is gathered from two segments on older kernels. + */ + ctf_sequence_text(char, msg1, + log_buf + (start & (log_buf_len - 1)), + size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) ? log_buf_len - (start & (log_buf_len - 1)) - : end - start, - (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + : end - start) + ctf_sequence_text(char, msg2, + log_buf, + size_t, (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) ? end & (log_buf_len - 1) : 0) - ), - - TP_fast_assign( - tp_memcpy_dyn_2(msg, - log_buf + (start & (log_buf_len - 1)), - log_buf) - ), - - TP_printk("%s", __get_str(msg)) + ) ) #endif -#endif /* _TRACE_PRINTK_H */ +#endif /* LTTNG_TRACE_PRINTK_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include