+ stat_add_distrib_tbl(tbl, INT_TO_PTR(key), cnt);
+}
+
+/*
+ * increases object count by one
+ */
+void stat_inc_distrib_tbl(distrib_tbl_t *tbl, const void *object)
+{
+ distrib_entry_t *elem = distrib_get_entry(tbl, object);
+
+ cnt_inc(&elem->cnt);
+}
+
+/*
+ * increases key count by one
+ */
+void stat_inc_int_distrib_tbl(distrib_tbl_t *tbl, int key)
+{
+ stat_inc_distrib_tbl(tbl, INT_TO_PTR(key));
+}
+
+/*
+ * inserts a new object with count 0 into the distribution table
+ * if object is already present, nothing happens
+ */
+void stat_insert_distrib_tbl(distrib_tbl_t *tbl, const void *object)
+{
+ /* executed for side effect */
+ (void)distrib_get_entry(tbl, object);
+}
+
+/*
+ * inserts a new key with count 0 into the integer distribution table
+ * if key is already present, nothing happens
+ */
+void stat_insert_int_distrib_tbl(distrib_tbl_t *tbl, int key)
+{
+ stat_insert_distrib_tbl(tbl, INT_TO_PTR(key));
+}
+
+/*
+ * returns the sum over all counters in a distribution table
+ */
+int stat_get_count_distrib_tbl(distrib_tbl_t *tbl)
+{
+ distrib_entry_t *entry;
+ counter_t cnt = ZERO_CNT;
+
+ foreach_pset(tbl->hash_map, entry)
+ cnt_add(&cnt, &entry->cnt);
+ return cnt_to_uint(&cnt);