change header struct name for 0_6
[lttv.git] / ltt / branches / poly / ltt / tracefile.c
index ec5152f3b7174bf0d65e46e835970177e6fe10d5..5ddabdbd0adebe857d717cad29f202c400b5e4ee 100644 (file)
@@ -105,6 +105,9 @@ static int ltt_seek_next_event(LttTracefile *tf);
 
 void ltt_update_event_size(LttTracefile *tf);
 
+
+void precompute_offsets(LttTracefile *tf, LttEventType *event);
+
 #if 0
 /* Functions to parse system.xml file (using glib xml parser) */
 static void parser_start_element (GMarkupParseContext  __UNUSED__ *context,
@@ -247,13 +250,13 @@ int parse_trace_header(void *header, LttTracefile *tf, LttTrace *t)
         return 1;
       }
       break;
-    case 4:
+    case 6:
       {
-        struct ltt_trace_header_0_4 *vheader =
-          (struct ltt_trace_header_0_4 *)header;
+        struct ltt_trace_header_0_6 *vheader =
+          (struct ltt_trace_header_0_6 *)header;
         tf->buffer_header_size =
          sizeof(struct ltt_block_start_header) 
-            + sizeof(struct ltt_trace_header_0_4);
+            + sizeof(struct ltt_trace_header_0_6);
         if(t) {
           t->start_freq = ltt_get_uint64(LTT_GET_BO(tf),
                                          &vheader->start_freq);
@@ -261,8 +264,10 @@ int parse_trace_header(void *header, LttTracefile *tf, LttTrace *t)
                                         &vheader->start_tsc);
           t->start_monotonic = ltt_get_uint64(LTT_GET_BO(tf),
                                               &vheader->start_monotonic);
-          t->start_time = ltt_get_time(LTT_GET_BO(tf),
-                                       &vheader->start_time);
+          t->start_time.tv_sec = ltt_get_uint64(LTT_GET_BO(tf),
+                                       &vheader->start_time_sec);
+          t->start_time.tv_nsec = ltt_get_uint64(LTT_GET_BO(tf),
+                                       &vheader->start_time_usec);
           t->start_time.tv_nsec *= 1000; /* microsec to nanosec */
 
           t->start_time_from_tsc = ltt_time_from_uint64(
@@ -973,7 +978,7 @@ static int ltt_process_facility_tracefile(LttTracefile *tf)
           fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
                           &fac_load_data->size_t_size);
           fac->alignment = ltt_get_uint32(LTT_GET_BO(tf),
-                          &fac_load_data->alignment);
+                          &fac_load_data->has_alignment);
 
           if(ltt_get_facility_description(fac, tf->trace, tf))
             continue; /* error opening description */
@@ -1029,7 +1034,7 @@ static int ltt_process_facility_tracefile(LttTracefile *tf)
           fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
                           &fac_state_dump_load_data->size_t_size);
           fac->alignment = ltt_get_uint32(LTT_GET_BO(tf),
-                          &fac_state_dump_load_data->alignment);
+                          &fac_state_dump_load_data->has_alignment);
           if(ltt_get_facility_description(fac, tf->trace, tf))
             continue; /* error opening description */
           
@@ -1662,7 +1667,7 @@ int ltt_tracefile_read_update_event(LttTracefile *tf)
   /* Read event header */
   
        /* Align the head */
-       pos += ltt_align(pos, tf->trace->arch_size, tf->has_alignment);
+       pos += ltt_align((size_t)pos, tf->trace->arch_size, tf->has_alignment);
   
   if(tf->trace->has_tsc) {
     if(tf->trace->has_heartbeat) {
@@ -1711,7 +1716,7 @@ int ltt_tracefile_read_update_event(LttTracefile *tf)
   pos += sizeof(guint16);
   
        /* Align the head */
-       pos += ltt_align(pos, tf->trace->arch_size, tf->has_alignment);
+       pos += ltt_align((size_t)pos, tf->trace->arch_size, tf->has_alignment);
 
   event->data = pos;
 
@@ -1846,7 +1851,7 @@ map_error:
 /* It will update the fields offsets too */
 void ltt_update_event_size(LttTracefile *tf)
 {
-  size_t size = 0;
+  off_t size = 0;
 
   /* Specific handling of core events : necessary to read the facility control
    * tracefile. */
@@ -2047,7 +2052,7 @@ void set_fields_offsets(LttTracefile *tf, LttEventType *event_type)
  ****************************************************************************/
 off_t get_alignment(LttTracefile *tf, LttField *field)
 {
-  type = &field->field_type;
+  LttType *type = &field->field_type;
 
   switch(type->type_class) {
     case LTT_INT_FIXED:
@@ -2126,7 +2131,7 @@ off_t get_alignment(LttTracefile *tf, LttField *field)
 
 void field_compute_static_size(LttTracefile *tf, LttField *field)
 {
-  type = &field->field_type;
+  LttType *type = &field->field_type;
 
   switch(type->type_class) {
     case LTT_INT_FIXED:
@@ -2168,7 +2173,7 @@ void field_compute_static_size(LttTracefile *tf, LttField *field)
     case LTT_SEQUENCE:
       g_assert(type->fields->len == 2);
       {
-        local_offset = 0;
+        off_t local_offset = 0;
         LttField *child = &g_array_index(type->fields, LttField, 1);
         field_compute_static_size(tf, child);
         field->field_size = 0;
@@ -2202,6 +2207,7 @@ void field_compute_static_size(LttTracefile *tf, LttField *field)
       break;
     default:
       g_error("field_static_size : unknown type");
+  }
       
 }
 
@@ -2222,7 +2228,7 @@ void field_compute_static_size(LttTracefile *tf, LttField *field)
 
 gint precompute_fields_offsets(LttTracefile *tf, LttField *field, off_t *offset)
 {
-  type = &field->field_type;
+  LttType *type = &field->field_type;
 
   switch(type->type_class) {
     case LTT_INT_FIXED:
@@ -2587,6 +2593,8 @@ gint check_fields_compatibility(LttEventType *event_type1,
     LttField *field1, LttField *field2)
 {
   guint different = 0;
+  LttType *type1;
+  LttType *type2;
 
   if(field1 == NULL) {
     if(field2 == NULL) goto end;
@@ -2599,17 +2607,13 @@ gint check_fields_compatibility(LttEventType *event_type1,
     goto end;
   }
 
-  type1 = field1->field_type;
-  type2 = field2->field_type;
+  type1 = &field1->field_type;
+  type2 = &field2->field_type;
 
   if(type1->type_class != type2->type_class) {
     different = 1;
     goto end;
   }
-  if(type1->element_name != type2->element_name) {
-    different = 1;
-    goto end;
-  }
  
   switch(type1->type_class) {
     case LTT_INT_FIXED:
@@ -2665,6 +2669,8 @@ gint check_fields_compatibility(LttEventType *event_type1,
         }
         
         for(i=0; i< type1->fields->len; i++) {
+          LttField *child1;
+          LttField *child2;
           child1 = &g_array_index(type1->fields, LttField, i);
           child2 = &g_array_index(type2->fields, LttField, i);
           different = check_fields_compatibility(event_type1,
This page took 0.039147 seconds and 4 git commands to generate.