+/* Structure LttEvent and LttEventPosition must begin with the _exact_ same
+ * fields in the exact same order. LttEventPosition is a parent of LttEvent. */
+struct _LttEvent{
+
+ /* Begin of LttEventPosition fields */
+ LttTracefile *tracefile;
+ unsigned int block;
+ unsigned int offset;
+
+ /* Timekeeping */
+ uint64_t tsc; /* Current timestamp counter */
+
+ /* End of LttEventPosition fields */
+
+ union { /* choice by trace has_tsc */
+ guint32 timestamp; /* truncated timestamp */
+ LttTime delta;
+ } time;
+
+ unsigned char facility_id; /* facility ID are never reused. */
+ unsigned char event_id;
+
+ LttTime event_time;
+
+ void * data; //event data
+ guint data_size;
+ guint event_size; //event_size field of the header :
+ //used to verify data_size from facility.
+
+ int count; //the number of overflow of cycle count
+ gint64 overflow_nsec; //precalculated nsec for overflows
+};
+
+struct _LttEventPosition{
+ LttTracefile *tracefile;
+ unsigned int block;
+ unsigned int offset;
+
+ /* Timekeeping */
+ uint64_t tsc; /* Current timestamp counter */
+};
+
+
+enum field_status { FIELD_UNKNOWN, FIELD_VARIABLE, FIELD_FIXED };
+