diff options
Diffstat (limited to 'kernel/trace/trace_stat.h')
| -rw-r--r-- | kernel/trace/trace_stat.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/trace/trace_stat.h b/kernel/trace/trace_stat.h new file mode 100644 index 000000000000..202274cf7f3d --- /dev/null +++ b/kernel/trace/trace_stat.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | #ifndef __TRACE_STAT_H | ||
| 2 | #define __TRACE_STAT_H | ||
| 3 | |||
| 4 | #include <linux/seq_file.h> | ||
| 5 | |||
| 6 | /* | ||
| 7 | * If you want to provide a stat file (one-shot statistics), fill | ||
| 8 | * an iterator with stat_start/stat_next and a stat_show callbacks. | ||
| 9 | * The others callbacks are optional. | ||
| 10 | */ | ||
| 11 | struct tracer_stat { | ||
| 12 | /* The name of your stat file */ | ||
| 13 | const char *name; | ||
| 14 | /* Iteration over statistic entries */ | ||
| 15 | void *(*stat_start)(void); | ||
| 16 | void *(*stat_next)(void *prev, int idx); | ||
| 17 | /* Compare two entries for stats sorting */ | ||
| 18 | int (*stat_cmp)(void *p1, void *p2); | ||
| 19 | /* Print a stat entry */ | ||
| 20 | int (*stat_show)(struct seq_file *s, void *p); | ||
| 21 | /* Print the headers of your stat entries */ | ||
| 22 | int (*stat_headers)(struct seq_file *s); | ||
| 23 | }; | ||
| 24 | |||
| 25 | /* | ||
| 26 | * Destroy or create a stat file | ||
| 27 | */ | ||
| 28 | extern int register_stat_tracer(struct tracer_stat *trace); | ||
| 29 | extern void unregister_stat_tracer(struct tracer_stat *trace); | ||
| 30 | |||
| 31 | #endif /* __TRACE_STAT_H */ | ||
