-struct _LttField{
- //guint field_pos; //field position within its parent
- LttType * field_type; //field type, if it is root field
- //then it must be struct type
-
- off_t offset_root; //offset from the root, -1:uninitialized
- enum field_status fixed_root; //offset fixed according to the root
- //-1:uninitialized, 0:unfixed, 1:fixed
- off_t offset_parent; //offset from the parent,-1:uninitialized
- enum field_status fixed_parent; //offset fixed according to its parent
- //-1:uninitialized, 0:unfixed, 1:fixed
- // void * base_address; //base address of the field ????
-
- guint field_size; // //>0: size of the field,
- // //0 : uncertain
- // //-1: uninitialize
- enum field_status fixed_size;
-
- /* for sequence */
- gint sequ_number_size; //the size of unsigned used to save the
- //number of elements in the sequence
-
- gint element_size; //the element size of the sequence
- //int field_fixed; //0: field has string or sequence
- //1: field has no string or sequenc
- //-1: uninitialize
-
- struct _LttField * parent;
- struct _LttField ** child; //for array, sequence, struct and union:
- //list of fields, it may have only one
- //field if the element is not a struct or
- //union
- unsigned current_element; //which element is currently processed
- // Used for sequences and arrays.
-};
-
-
-struct _LttFacility{
- LttTrace *trace;
- //gchar * name; //facility name
- GQuark name;
- guint32 checksum; //checksum of the facility
- guint32 id; //id of the facility
-
- guint32 pointer_size;
- guint32 long_size;
- guint32 size_t_size;
- guint32 alignment;
-
-
- //LttEventType ** events; //array of event types
- //unsigned int event_number; //number of events in the facility
- //LttType ** named_types;
- //unsigned int named_types_number;
-
- GArray *events;
- GData *events_by_name;
- // GArray *named_types;
- //GData *named_types_by_name;
- GData *named_types;
-
- unsigned char exists; /* 0 does not exist, 1 exists */
-};
-