25 #ifndef __MOTR_ADDB2_HISTOGRAM_H__ 26 #define __MOTR_ADDB2_HISTOGRAM_H__ 138 uint64_t label,
int idx);
140 uint64_t label,
int idx);
144 int64_t
val, uint64_t datum);
147 #define M0_ADDB2_HIST(id, hist, datum, ...) \ 149 struct m0_addb2_hist *__hist = (hist); \ 150 M0_ADDB2_TIMED_0((id), (datum), __VA_ARGS__); \ 151 if (__hist != NULL) \ 152 m0_addb2_hist_mod_with(__hist, __duration, __datum); \
int m0_addb2_hist_bucket(const struct m0_addb2_hist *hist, int64_t val)
void m0_addb2_hist_mod(struct m0_addb2_hist *hist, int64_t val)
void m0_addb2_hist_del(struct m0_addb2_hist *hist)
M0_BASSERT(M0_ADDB2_HIST_BUCKETS >=2)
struct m0_addb2_hist_data hi_data
uint32_t hd_bucket[M0_ADDB2_HIST_BUCKETS]
static long long max(long long a, long long b)
void m0_addb2_hist_mod_with(struct m0_addb2_hist *hist, int64_t val, uint64_t datum)
void m0_addb2_hist_add_auto(struct m0_addb2_hist *hist, int skip, uint64_t label, int idx)
struct m0_addb2_counter hi_counter
static long long min(long long a, long long b)
static void skip(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
void m0_addb2_hist_add(struct m0_addb2_hist *hist, int64_t min, int64_t max, uint64_t label, int idx)