mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
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: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
e77405ad80
commit
659372d3e4
2 changed files with 27 additions and 2 deletions
|
@ -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)
|
||||||
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)
|
||||||
|
|
||||||
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
|
||||||
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;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue