aboutsummaryrefslogtreecommitdiffstats
path: root/libosmocore/include/osmocore/statistics.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-03-22 22:25:13 +0800
committerHarald Welte <laforge@gnumonks.org>2010-03-22 22:25:13 +0800
commit351ec2a1784fbdb2ce688f50a9134532f3bf0723 (patch)
treed599030f3ffb4e563b73f5ede9a8e80fc1bc048f /libosmocore/include/osmocore/statistics.h
parente164d29e7f6c86d1f6f047bbf58159e46a11425f (diff)
parent045cc22baeb7f12dcb0022b79a1984d86e922870 (diff)
Add 'libosmocore/' from commit '045cc22baeb7f12dcb0022b79a1984d86e922870'openbsc/0.9.00.9.0
git-subtree-dir: libosmocore git-subtree-mainline: e164d29e7f6c86d1f6f047bbf58159e46a11425f git-subtree-split: 045cc22baeb7f12dcb0022b79a1984d86e922870
Diffstat (limited to 'libosmocore/include/osmocore/statistics.h')
-rw-r--r--libosmocore/include/osmocore/statistics.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/libosmocore/include/osmocore/statistics.h b/libosmocore/include/osmocore/statistics.h
new file mode 100644
index 000000000..1d56054ab
--- /dev/null
+++ b/libosmocore/include/osmocore/statistics.h
@@ -0,0 +1,31 @@
+#ifndef _STATISTICS_H
+#define _STATISTICS_H
+
+struct counter {
+ struct llist_head list;
+ const char *name;
+ const char *description;
+ unsigned long value;
+};
+
+static inline void counter_inc(struct counter *ctr)
+{
+ ctr->value++;
+}
+
+static inline unsigned long counter_get(struct counter *ctr)
+{
+ return ctr->value;
+}
+
+static inline void counter_reset(struct counter *ctr)
+{
+ ctr->value = 0;
+}
+
+struct counter *counter_alloc(const char *name);
+void counter_free(struct counter *ctr);
+
+int counters_for_each(int (*handle_counter)(struct counter *, void *), void *data);
+
+#endif /* _STATISTICS_H */