diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c index a5d41fb325c5aa58dddc9d5b976811444d7faacb..c0224af5d06d098b38190afb4b949c7cadc1b19a 100644 --- a/common/utils/T/tracer/database.c +++ b/common/utils/T/tracer/database.c @@ -422,6 +422,15 @@ char *event_name_from_id(void *_database, int id) return d->i[d->pos[id]].name; } +int event_id_from_name(void *_database, char *name) +{ + database *d = _database; + id *i = (id*)bsearch(&(id){name:name}, d->i, d->isize, sizeof(id), id_cmp); + if (i == NULL) + { printf("%s:%d: '%s' not found\n", __FILE__, __LINE__, name); abort(); } + return i->id; +} + database_event_format get_format(void *_database, int event_id) { database *d = _database; @@ -438,3 +447,9 @@ database_event_format get_format(void *_database, int event_id) return ret; } + +int number_of_ids(void *_d) +{ + database *d = _d; + return d->isize; +} diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h index b21f32393224f219e2efbaa469e24e4fb8039e35..e2f8aee8b7924365eef6b857140bd16d73bee2fa 100644 --- a/common/utils/T/tracer/database.h +++ b/common/utils/T/tracer/database.h @@ -8,6 +8,8 @@ void list_ids(void *database); void list_groups(void *database); void on_off(void *d, char *item, int *a, int onoff); char *event_name_from_id(void *database, int id); +int event_id_from_name(void *database, char *name); +int number_of_ids(void *database); /****************************************************************************/ /* get format of an event */