diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c index 5ea178141582535e85a6b1a303519d3feba6866c..5e7c9ec8f6b60907d23570a7dc07df5c4da5c915 100644 --- a/common/utils/T/tracer/database.c +++ b/common/utils/T/tracer/database.c @@ -409,3 +409,20 @@ void on_off(void *_d, char *item, int *a, int onoff) exit(1); } } + +database_event_format get_format(void *_database, int event_id) +{ + database *d = _database; + database_event_format ret; + + if (event_id < 0 || event_id >= d->isize) { + printf("%s:%d: bad event ID (%d)\n", __FILE__, __LINE__, 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; + + return ret; +} diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h index 4ca4606c157cbcc6119a65f92d3b068dc981b29a..544f0ad06f8ecad6cd1de69336c98de7097cfa91 100644 --- a/common/utils/T/tracer/database.h +++ b/common/utils/T/tracer/database.h @@ -8,4 +8,16 @@ void list_ids(void *database); void list_groups(void *database); void on_off(void *d, char *item, int *a, int onoff); +/****************************************************************************/ +/* get format of an event */ +/****************************************************************************/ + +typedef struct { + char **type; + char **name; + int count; +} database_event_format; + +database_event_format get_format(void *database, int event_id); + #endif /* _DATABASE_H_ */