make changes for support between 64/32 bits architectures
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 16 Dec 2005 02:50:59 +0000 (02:50 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 16 Dec 2005 02:50:59 +0000 (02:50 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1391 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly-0.7.0/ltt/ltt-private.h
ltt/branches/poly-0.7.0/ltt/tracefile.c

index 666f1f338b82d974cf4474828044adb6e9986f49..456ce95f260112bc440ecc435ff614f12e80695c 100644 (file)
@@ -187,18 +187,44 @@ struct ltt_trace_header_0_4 {
   uint64_t        start_freq;
   uint64_t        start_tsc;
   uint64_t        start_monotonic;
-  struct timespec start_time;
+  struct timespec start_time; // not portable
+} LTT_PACKED_STRUCT;
+
+/* For version 0.5 */
+
+struct ltt_trace_header_0_5 {
+  uint32_t        magic_number;
+  uint32_t        arch_type;
+  uint32_t        arch_variant;
+  uint32_t        float_word_order;
+  uint8_t         arch_size;
+  uint8_t         major_version;
+  uint8_t         minor_version;
+  uint8_t         flight_recorder;
+  uint8_t         has_heartbeat;
+  uint8_t         has_alignment;  /* Event header alignment */
+       uint8_t         has_tsc;
+  uint64_t        start_freq;
+  uint64_t        start_tsc;
+  uint64_t        start_monotonic;
+  //struct timespec start_time; // not portable
+  uint64_t        start_time_sec;
+  uint64_t        start_time_usec;
 } LTT_PACKED_STRUCT;
 
 
 struct ltt_block_start_header {
   struct { 
-    struct timeval          timestamp;
+    //struct timeval          timestamp;
+    uint64_t                timestamp_sec;
+    uint64_t                timestamp_usec;
     uint64_t                cycle_count;
     uint64_t                freq;
   } begin;
   struct {
-    struct timeval          timestamp;
+    //struct timeval          timestamp;
+    uint64_t                timestamp_sec;
+    uint64_t                timestamp_usec;
     uint64_t                cycle_count;
     uint64_t                freq;
   } end;
index 7f76f014c9ce615e8a6af864a0f9e2e6f1dd69da..53aea9c98a10a7e09d2b5c2aa8b3658f41e9777f 100644 (file)
@@ -266,6 +266,31 @@ int parse_trace_header(void *header, LttTracefile *tf, LttTrace *t)
         }
       }
       break;
+    case 5:
+      {
+        struct ltt_trace_header_0_5 *vheader =
+          (struct ltt_trace_header_0_5 *)header;
+        tf->buffer_header_size =
+         sizeof(struct ltt_block_start_header) 
+            + sizeof(struct ltt_trace_header_0_5);
+        if(t) {
+          t->start_freq = ltt_get_uint64(LTT_GET_BO(tf),
+                                         &vheader->start_freq);
+          t->start_tsc = ltt_get_uint64(LTT_GET_BO(tf),
+                                        &vheader->start_tsc);
+          t->start_monotonic = ltt_get_uint64(LTT_GET_BO(tf),
+                                              &vheader->start_monotonic);
+          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(
+              (double)t->start_tsc * 1000000.0 / (double)t->start_freq);
+        }
+      }
+      break;
     default:
       g_warning("Unsupported trace version : %hhu.%hhu",
             any->major_version, any->minor_version);
This page took 0.026522 seconds and 4 git commands to generate.