diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index ca0e79e2abaa..ee8d74840b88 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -20,6 +20,10 @@ static struct hlist_head event_hash[EVENT_HASHSIZE] __read_mostly; | |||
20 | 20 | ||
21 | static int next_event_type = __TRACE_LAST_TYPE + 1; | 21 | static int next_event_type = __TRACE_LAST_TYPE + 1; |
22 | 22 | ||
23 | #define EVENT_STORAGE_SIZE 128 | ||
24 | static DEFINE_MUTEX(event_storage_mutex); | ||
25 | static char event_storage[EVENT_STORAGE_SIZE]; | ||
26 | |||
23 | int trace_print_seq(struct seq_file *m, struct trace_seq *s) | 27 | int trace_print_seq(struct seq_file *m, struct trace_seq *s) |
24 | { | 28 | { |
25 | int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len; | 29 | int len = s->len >= PAGE_SIZE ? PAGE_SIZE - 1 : s->len; |
@@ -470,6 +474,23 @@ int ftrace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...) | |||
470 | } | 474 | } |
471 | EXPORT_SYMBOL_GPL(ftrace_output_call); | 475 | EXPORT_SYMBOL_GPL(ftrace_output_call); |
472 | 476 | ||
477 | int ftrace_event_define_field(struct ftrace_event_call *call, | ||
478 | char *type, int len, char *item, int offset, | ||
479 | int field_size, int sign, int filter) | ||
480 | { | ||
481 | int ret; | ||
482 | |||
483 | mutex_lock(&event_storage_mutex); | ||
484 | snprintf(event_storage, sizeof(event_storage), | ||
485 | "%s[%d]", type, len); | ||
486 | ret = trace_define_field(call, event_storage, item, offset, | ||
487 | field_size, sign, filter); | ||
488 | mutex_unlock(&event_storage_mutex); | ||
489 | |||
490 | return ret; | ||
491 | } | ||
492 | EXPORT_SYMBOL_GPL(ftrace_event_define_field); | ||
493 | |||
473 | #ifdef CONFIG_KRETPROBES | 494 | #ifdef CONFIG_KRETPROBES |
474 | static inline const char *kretprobed(const char *name) | 495 | static inline const char *kretprobed(const char *name) |
475 | { | 496 | { |