| /* | |
| * 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 | |
| }; | |