From 7dbb2b8c3f5bb666de37f27def040e60b3bfb94d Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Wed, 27 Apr 2016 14:10:47 +0200 Subject: [PATCH] id management / bug fixes in database --- common/utils/T/tracer/database.c | 18 +++++++++++++++--- common/utils/T/tracer/database.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c index 5e7c9ec8f6..a5d41fb325 100644 --- a/common/utils/T/tracer/database.c +++ b/common/utils/T/tracer/database.c @@ -27,6 +27,7 @@ typedef struct { int isize; group *g; int gsize; + int *pos; } database; typedef struct { @@ -324,6 +325,11 @@ void *parse_database(char *filename) free(p.name.data); free(p.value.data); + /* setup pos */ + r->pos = malloc(sizeof(int) * r->isize); if (r->pos == NULL) abort(); + for (i = 0; i < r->isize; i++) + r->pos[r->i[i].id] = i; + return r; } @@ -410,6 +416,12 @@ void on_off(void *_d, char *item, int *a, int onoff) } } +char *event_name_from_id(void *_database, int id) +{ + database *d = _database; + return d->i[d->pos[id]].name; +} + database_event_format get_format(void *_database, int event_id) { database *d = _database; @@ -420,9 +432,9 @@ database_event_format get_format(void *_database, int event_id) abort(); } - ret.type = d->i[event_id].arg_type; - ret.name = d->i[event_id].arg_name; - ret.count = d->i[event_id].asize; + ret.type = d->i[d->pos[event_id]].arg_type; + ret.name = d->i[d->pos[event_id]].arg_name; + ret.count = d->i[d->pos[event_id]].asize; return ret; } diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h index 544f0ad06f..b21f323932 100644 --- a/common/utils/T/tracer/database.h +++ b/common/utils/T/tracer/database.h @@ -7,6 +7,7 @@ void dump_database(void *database); 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); /****************************************************************************/ /* get format of an event */ -- GitLab