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);
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. */
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;
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);