Add functions to search for rate counters by name

* rate_ctr_get_group_by_name_idx, rate_ctr_get_by_name
This commit is contained in:
Daniel Willmann 2011-04-08 10:46:18 +02:00 committed by Holger Hans Peter Freyther
parent 952a18ed19
commit 2d42ddeba3
2 changed files with 36 additions and 0 deletions

View File

@ -75,4 +75,6 @@ static inline void rate_ctr_inc(struct rate_ctr *ctr)
/* Initialize the counter module */
int rate_ctr_init(void *tall_ctx);
struct rate_ctr_group *rate_ctr_get_group_by_name_idx(const char *name, const unsigned int idx);
struct rate_ctr *rate_ctr_get_by_name(const struct rate_ctr_group *ctrg, const char *name);
#endif /* RATE_CTR_H */

View File

@ -125,3 +125,37 @@ int rate_ctr_init(void *tall_ctx)
return 0;
}
struct rate_ctr_group *rate_ctr_get_group_by_name_idx(const char *name, const unsigned int idx)
{
struct rate_ctr_group *ctrg;
llist_for_each_entry(ctrg, &rate_ctr_groups, list) {
if (!ctrg->desc)
continue;
if (!strcmp(ctrg->desc->group_name_prefix, name) &&
ctrg->idx == idx) {
return ctrg;
}
}
return NULL;
}
struct rate_ctr *rate_ctr_get_by_name(const struct rate_ctr_group *ctrg, const char *name)
{
int i;
struct rate_ctr_desc *ctr_desc;
if (!ctrg->desc)
return NULL;
for (i = 0; i < ctrg->desc->num_ctr; i++) {
ctr_desc = &ctrg->desc->ctr_desc[i];
if (!strcmp(ctr_desc->name, name)) {
return &ctrg->ctr[i];
}
}
return NULL;
}