Commit 659372d3 authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

tracing: add trace_array_printk for internal tracers to use

This patch adds a trace_array_printk to allow a tracer to use the
trace_printk on its own trace array.
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent e77405ad
...@@ -1201,7 +1201,23 @@ out: ...@@ -1201,7 +1201,23 @@ out:
} }
EXPORT_SYMBOL_GPL(trace_vbprintk); EXPORT_SYMBOL_GPL(trace_vbprintk);
int trace_vprintk(unsigned long ip, const char *fmt, va_list args) int trace_array_printk(struct trace_array *tr,
unsigned long ip, const char *fmt, ...)
{
int ret;
va_list ap;
if (!(trace_flags & TRACE_ITER_PRINTK))
return 0;
va_start(ap, fmt);
ret = trace_array_vprintk(tr, ip, fmt, ap);
va_end(ap);
return ret;
}
int trace_array_vprintk(struct trace_array *tr,
unsigned long ip, const char *fmt, va_list args)
{ {
static raw_spinlock_t trace_buf_lock = __RAW_SPIN_LOCK_UNLOCKED; static raw_spinlock_t trace_buf_lock = __RAW_SPIN_LOCK_UNLOCKED;
static char trace_buf[TRACE_BUF_SIZE]; static char trace_buf[TRACE_BUF_SIZE];
...@@ -1209,7 +1225,6 @@ int trace_vprintk(unsigned long ip, const char *fmt, va_list args) ...@@ -1209,7 +1225,6 @@ int trace_vprintk(unsigned long ip, const char *fmt, va_list args)
struct ftrace_event_call *call = &event_print; struct ftrace_event_call *call = &event_print;
struct ring_buffer_event *event; struct ring_buffer_event *event;
struct ring_buffer *buffer; struct ring_buffer *buffer;
struct trace_array *tr = &global_trace;
struct trace_array_cpu *data; struct trace_array_cpu *data;
int cpu, len = 0, size, pc; int cpu, len = 0, size, pc;
struct print_entry *entry; struct print_entry *entry;
...@@ -1260,6 +1275,11 @@ int trace_vprintk(unsigned long ip, const char *fmt, va_list args) ...@@ -1260,6 +1275,11 @@ int trace_vprintk(unsigned long ip, const char *fmt, va_list args)
return len; return len;
} }
int trace_vprintk(unsigned long ip, const char *fmt, va_list args)
{
return trace_array_printk(&global_trace, ip, fmt, args);
}
EXPORT_SYMBOL_GPL(trace_vprintk); EXPORT_SYMBOL_GPL(trace_vprintk);
enum trace_file_type { enum trace_file_type {
......
...@@ -566,6 +566,11 @@ extern int ...@@ -566,6 +566,11 @@ extern int
trace_vbprintk(unsigned long ip, const char *fmt, va_list args); trace_vbprintk(unsigned long ip, const char *fmt, va_list args);
extern int extern int
trace_vprintk(unsigned long ip, const char *fmt, va_list args); trace_vprintk(unsigned long ip, const char *fmt, va_list args);
extern int
trace_array_vprintk(struct trace_array *tr,
unsigned long ip, const char *fmt, va_list args);
int trace_array_printk(struct trace_array *tr,
unsigned long ip, const char *fmt, ...);
extern unsigned long trace_flags; extern unsigned long trace_flags;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment