diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index ed32284fbe32..ca0e79e2abaa 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -439,6 +439,37 @@ int ftrace_raw_output_prep(struct trace_iterator *iter, | |||
439 | } | 439 | } |
440 | EXPORT_SYMBOL(ftrace_raw_output_prep); | 440 | EXPORT_SYMBOL(ftrace_raw_output_prep); |
441 | 441 | ||
442 | static int ftrace_output_raw(struct trace_iterator *iter, char *name, | ||
443 | char *fmt, va_list ap) | ||
444 | { | ||
445 | struct trace_seq *s = &iter->seq; | ||
446 | int ret; | ||
447 | |||
448 | ret = trace_seq_printf(s, "%s: ", name); | ||
449 | if (!ret) | ||
450 | return TRACE_TYPE_PARTIAL_LINE; | ||
451 | |||
452 | ret = trace_seq_vprintf(s, fmt, ap); | ||
453 | |||
454 | if (!ret) | ||
455 | return TRACE_TYPE_PARTIAL_LINE; | ||
456 | |||
457 | return TRACE_TYPE_HANDLED; | ||
458 | } | ||
459 | |||
460 | int ftrace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...) | ||
461 | { | ||
462 | va_list ap; | ||
463 | int ret; | ||
464 | |||
465 | va_start(ap, fmt); | ||
466 | ret = ftrace_output_raw(iter, name, fmt, ap); | ||
467 | va_end(ap); | ||
468 | |||
469 | return ret; | ||
470 | } | ||
471 | EXPORT_SYMBOL_GPL(ftrace_output_call); | ||
472 | |||
442 | #ifdef CONFIG_KRETPROBES | 473 | #ifdef CONFIG_KRETPROBES |
443 | static inline const char *kretprobed(const char *name) | 474 | static inline const char *kretprobed(const char *name) |
444 | { | 475 | { |