LttCycleCount ltt_event_cycle_count(LttEvent *e);
+/* Obtain the position of the event within the tracefile. This
+ is used to seek back to this position later or to seek to another
+ position, computed relative to this position. The event position
+ structure is opaque and contains several fields, only two
+ of which are user accessible: block number and event index
+ within the block. */
+
+void ltt_event_position(LttEvent *e, LttEventPosition *ep);
+
+LttEventPosition * ltt_event_position_new();
+
+void ltt_event_position_get(LttEventPosition *ep,
+ unsigned *block_number, unsigned *index_in_block, LttTracefile ** tf);
+
+void ltt_event_position_set(LttEventPosition *ep,
+ unsigned block_number, unsigned index_in_block);
+
+
/* CPU id of the event */
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);
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. */