| Frederic Weisbecker | 002bb86 | 2009-01-10 11:34:13 -0800 | [diff] [blame] | 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 */ | 
| Steven Rostedt | 4254800 | 2009-03-24 13:38:36 -0400 | [diff] [blame] | 15 | void			*(*stat_start)(struct tracer_stat *trace); | 
| Frederic Weisbecker | 002bb86 | 2009-01-10 11:34:13 -0800 | [diff] [blame] | 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 */ |