From e5d2abb56ca57a613e4ef9398a6499190b2265be Mon Sep 17 00:00:00 2001 From: hunt Date: Sat, 18 Jun 2005 07:24:42 +0000 Subject: 2005-06-18 Martin Hunt * counter.c: New file. Counter aggregations. * stat.c: New file. Stat aggregations. * stat.h: Header file for stats. * map-int.c: New file. Support for int64 values. * map-stat.c: New file. Support for stat values. * map-str.c: New file. Support for string values. * map-values.c: Now just includes the necessary map-*.c files. * stat-common.c: New file. Stats stuff common to Stats and maps containing stats. * Doxyfile: Bumped version to 0.6. * README: Renamed README.doc and reorganized. --- runtime/stat.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 runtime/stat.h (limited to 'runtime/stat.h') 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_ */ -- cgit