]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - kernel/trace/trace.h
Merge branch 'auto-ftrace-next' into tracing/for-linus
[mv-sheeva.git] / kernel / trace / trace.h
index 6b8bd8800d041ad4dcc98e2b10d3972a62f7642c..f69f86788c2bd12a2df18e4dabe9e66046a2e71f 100644 (file)
@@ -5,6 +5,7 @@
 #include <asm/atomic.h>
 #include <linux/sched.h>
 #include <linux/clocksource.h>
+#include <linux/mmiotrace.h>
 
 enum trace_type {
        __TRACE_FIRST_TYPE = 0,
@@ -14,6 +15,8 @@ enum trace_type {
        TRACE_WAKE,
        TRACE_STACK,
        TRACE_SPECIAL,
+       TRACE_MMIO_RW,
+       TRACE_MMIO_MAP,
 
        __TRACE_LAST_TYPE
 };
@@ -75,6 +78,8 @@ struct trace_entry {
                struct ctx_switch_entry         ctx;
                struct special_entry            special;
                struct stack_entry              stack;
+               struct mmiotrace_rw             mmiorw;
+               struct mmiotrace_map            mmiomap;
        };
 };
 
@@ -188,6 +193,8 @@ struct trace_iterator {
 void tracing_reset(struct trace_array_cpu *data);
 int tracing_open_generic(struct inode *inode, struct file *filp);
 struct dentry *tracing_init_dentry(void);
+void init_tracer_sysprof_debugfs(struct dentry *d_tracer);
+
 void ftrace(struct trace_array *tr,
                            struct trace_array_cpu *data,
                            unsigned long ip,
@@ -216,8 +223,6 @@ void trace_function(struct trace_array *tr,
                    unsigned long parent_ip,
                    unsigned long flags);
 
-void tracing_start_function_trace(void);
-void tracing_stop_function_trace(void);
 void tracing_start_cmdline_record(void);
 void tracing_stop_cmdline_record(void);
 int register_tracer(struct tracer *type);
@@ -234,6 +239,14 @@ void update_max_tr_single(struct trace_array *tr,
 
 extern cycle_t ftrace_now(int cpu);
 
+#ifdef CONFIG_FTRACE
+void tracing_start_function_trace(void);
+void tracing_stop_function_trace(void);
+#else
+# define tracing_start_function_trace()                do { } while (0)
+# define tracing_stop_function_trace()         do { } while (0)
+#endif
+
 #ifdef CONFIG_CONTEXT_SWITCH_TRACER
 typedef void
 (*tracer_switch_func_t)(void *private,
@@ -255,6 +268,15 @@ extern unsigned long ftrace_update_tot_cnt;
 extern int DYN_FTRACE_TEST_NAME(void);
 #endif
 
+#ifdef CONFIG_MMIOTRACE
+extern void __trace_mmiotrace_rw(struct trace_array *tr,
+                               struct trace_array_cpu *data,
+                               struct mmiotrace_rw *rw);
+extern void __trace_mmiotrace_map(struct trace_array *tr,
+                               struct trace_array_cpu *data,
+                               struct mmiotrace_map *map);
+#endif
+
 #ifdef CONFIG_FTRACE_STARTUP_TEST
 #ifdef CONFIG_FTRACE
 extern int trace_selftest_startup_function(struct tracer *trace,
@@ -280,6 +302,10 @@ extern int trace_selftest_startup_wakeup(struct tracer *trace,
 extern int trace_selftest_startup_sched_switch(struct tracer *trace,
                                               struct trace_array *tr);
 #endif
+#ifdef CONFIG_SYSPROF_TRACER
+extern int trace_selftest_startup_sysprof(struct tracer *trace,
+                                              struct trace_array *tr);
+#endif
 #endif /* CONFIG_FTRACE_STARTUP_TEST */
 
 extern void *head_page(struct trace_array_cpu *data);