aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r--kernel/trace/trace.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 1974ce818ddb..005f08629b8b 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -15,7 +15,6 @@
15#include <linux/trace_seq.h> 15#include <linux/trace_seq.h>
16#include <linux/trace_events.h> 16#include <linux/trace_events.h>
17#include <linux/compiler.h> 17#include <linux/compiler.h>
18#include <linux/trace_seq.h>
19#include <linux/glob.h> 18#include <linux/glob.h>
20 19
21#ifdef CONFIG_FTRACE_SYSCALLS 20#ifdef CONFIG_FTRACE_SYSCALLS
@@ -1967,4 +1966,22 @@ static inline void tracer_hardirqs_off(unsigned long a0, unsigned long a1) { }
1967 1966
1968extern struct trace_iterator *tracepoint_print_iter; 1967extern struct trace_iterator *tracepoint_print_iter;
1969 1968
1969/*
1970 * Reset the state of the trace_iterator so that it can read consumed data.
1971 * Normally, the trace_iterator is used for reading the data when it is not
1972 * consumed, and must retain state.
1973 */
1974static __always_inline void trace_iterator_reset(struct trace_iterator *iter)
1975{
1976 const size_t offset = offsetof(struct trace_iterator, seq);
1977
1978 /*
1979 * Keep gcc from complaining about overwriting more than just one
1980 * member in the structure.
1981 */
1982 memset((char *)iter + offset, 0, sizeof(struct trace_iterator) - offset);
1983
1984 iter->pos = -1;
1985}
1986
1970#endif /* _LINUX_KERNEL_TRACE_H */ 1987#endif /* _LINUX_KERNEL_TRACE_H */