| /* |
| * nop tracer |
| * |
| * Copyright (C) 2008 Steven Noonan <steven@uplinklabs.net> |
| * |
| */ |
| |
| #include <linux/module.h> |
| #include <linux/fs.h> |
| #include <linux/debugfs.h> |
| #include <linux/ftrace.h> |
| |
| #include "trace.h" |
| |
| static struct trace_array *ctx_trace; |
| |
| static void start_nop_trace(struct trace_array *tr) |
| { |
| /* Nothing to do! */ |
| } |
| |
| static void stop_nop_trace(struct trace_array *tr) |
| { |
| /* Nothing to do! */ |
| } |
| |
| static void nop_trace_init(struct trace_array *tr) |
| { |
| int cpu; |
| ctx_trace = tr; |
| |
| for_each_online_cpu(cpu) |
| tracing_reset(tr, cpu); |
| |
| if (tr->ctrl) |
| start_nop_trace(tr); |
| } |
| |
| static void nop_trace_reset(struct trace_array *tr) |
| { |
| if (tr->ctrl) |
| stop_nop_trace(tr); |
| } |
| |
| static void nop_trace_ctrl_update(struct trace_array *tr) |
| { |
| /* When starting a new trace, reset the buffers */ |
| if (tr->ctrl) |
| start_nop_trace(tr); |
| else |
| stop_nop_trace(tr); |
| } |
| |
| struct tracer nop_trace __read_mostly = |
| { |
| .name = "nop", |
| .init = nop_trace_init, |
| .reset = nop_trace_reset, |
| .ctrl_update = nop_trace_ctrl_update, |
| #ifdef CONFIG_FTRACE_SELFTEST |
| .selftest = trace_selftest_startup_nop, |
| #endif |
| }; |
| |