diff options
Diffstat (limited to 'runtime/stat.h')
-rw-r--r-- | runtime/stat.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/runtime/stat.h b/runtime/stat.h new file mode 100644 index 00000000..50dfc458 --- /dev/null +++ b/runtime/stat.h @@ -0,0 +1,37 @@ +#ifndef _STAT_H_ /* -*- linux-c -*- */ +#define _STAT_H_ + +#ifndef NEED_STAT_LOCKS +#define NEED_STAT_LOCKS 0 +#endif + +/** histogram type */ +enum histtype { HIST_NONE, HIST_LOG, HIST_LINEAR }; + +/** Statistics are stored in this struct. This is per-cpu or per-node data + and is variable length due to the unknown size of the histogram. */ +struct stat_data { + int64_t count; + int64_t sum; + int64_t min, max; +#if NEED_STAT_LOCKS == 1 + spinlock_t lock; +#endif + int64_t histogram[]; +}; + +typedef struct stat_data stat; + +struct _Stat { + enum histtype hist_type; + int hist_start; + int hist_stop; + int hist_int; + int hist_buckets; + struct stat_data *sd; + struct stat_data *agg; +}; + +typedef struct _Stat *Stat; + +#endif /* _STAT_H_ */ |