From: dagenais Date: Mon, 30 Jun 2003 21:01:42 +0000 (+0000) Subject: Add support for unions in events. X-Git-Tag: v0.12.20~3390 X-Git-Url: http://git.liburcu.org/?a=commitdiff_plain;h=a6bf5e7484f94210a7fb39f510647c842bcc10d4;p=lttv.git Add support for unions in events. git-svn-id: http://ltt.polymtl.ca/svn@99 04897980-b3bd-0310-b5e0-8ef037075253 --- diff --git a/ltt/branches/poly/include/ltt/event.h b/ltt/branches/poly/include/ltt/event.h index b8ffea10..96c71ce7 100644 --- a/ltt/branches/poly/include/ltt/event.h +++ b/ltt/branches/poly/include/ltt/event.h @@ -45,9 +45,9 @@ unsigned ltt_event_cpu_id(LttEvent *e); void *ltt_event_data(LttEvent *e); -/* The number of elements in a sequence field is specific to each event. - This function returns the number of elements for an array or sequence - field in an event. */ +/* The number of elements in a sequence field is specific to each event + instance. This function returns the number of elements for an array or + sequence field in an event. */ unsigned ltt_event_field_element_number(LttEvent *e, LttField *f); @@ -57,6 +57,13 @@ unsigned ltt_event_field_element_number(LttEvent *e, LttField *f); void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i); +/* A union is like a structure except that only a single member at a time + is present depending on the specific event instance. This function tells + the active member for a union field in an event. */ + +unsigned ltt_event_field_union_member(LttEvent *e, LttField *f); + + /* These functions extract data from an event after architecture specific conversions. */ diff --git a/ltt/branches/poly/include/ltt/type.h b/ltt/branches/poly/include/ltt/type.h index acbd7d67..dd53c096 100644 --- a/ltt/branches/poly/include/ltt/type.h +++ b/ltt/branches/poly/include/ltt/type.h @@ -8,7 +8,7 @@ typedef enum _LttTypeEnum { LTT_INT, LTT_UINT, LTT_FLOAT, LTT_STRING, LTT_ENUM, LTT_ARRAY, - LTT_SEQUENCE, LTT_STRUCT + LTT_SEQUENCE, LTT_STRUCT, LTT_UNION } LttTypeEnum; @@ -54,7 +54,7 @@ LttType *ltt_type_element_type(LttType *t); unsigned ltt_type_element_number(LttType *t); -/* The number of data members for structures. */ +/* The number of data members for structures and unions. */ unsigned ltt_type_member_number(LttType *t);