X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fevent.c;h=438c3597f2bbdedf18a495539b2ff362489c3aff;hb=0a2cbfbed386cdcc594561824a2e3d0596ade446;hp=395d46b114ef68d9ded7a7456f7f5f91effe99ec;hpb=1d1df11d0582bef07ef2b33e8e82a75b08f32be4;p=lttv.git diff --git a/ltt/branches/poly/ltt/event.c b/ltt/branches/poly/ltt/event.c index 395d46b1..438c3597 100644 --- a/ltt/branches/poly/ltt/event.c +++ b/ltt/branches/poly/ltt/event.c @@ -290,13 +290,15 @@ void ltt_event_position(LttEvent *e, LttEventPosition *ep) ep->old_position = TRUE; ep->event_offset = e->data - e->tracefile->buffer - EVENT_HEADER_SIZE ; ep->tf = e->tracefile; - + ep->overflow_nsec = e->overflow_nsec; /* This is a workaround for fast position seek */ ep->last_event_pos = e->last_event_pos; ep->prev_block_end_time = e->prev_block_end_time; ep->prev_event_time = e->prev_event_time; ep->pre_cycle_count = e->pre_cycle_count; ep->count = e->count; + ep->last_heartbeat = e->last_heartbeat; + /* end of workaround */ } @@ -546,7 +548,7 @@ void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i) * conversions ****************************************************************************/ -unsigned ltt_event_get_unsigned(LttEvent *e, LttField *f) +guint32 ltt_event_get_unsigned(LttEvent *e, LttField *f) { int revFlag = e->tracefile->trace->my_arch_endian == e->tracefile->trace->system_description->endian ? 0:1; @@ -556,31 +558,34 @@ unsigned ltt_event_get_unsigned(LttEvent *e, LttField *f) if(f->field_size == 1){ guint8 x = *(guint8 *)(e->data + f->offset_root); - return (unsigned int) x; + return (guint32) x; }else if(f->field_size == 2){ guint16 x = *(guint16 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (unsigned int) (revFlag ? GUINT16_FROM_BE(x): x); + return (guint32) (revFlag ? GUINT16_FROM_BE(x): x); else - return (unsigned int) (revFlag ? GUINT16_FROM_LE(x): x); + return (guint32) (revFlag ? GUINT16_FROM_LE(x): x); }else if(f->field_size == 4){ guint32 x = *(guint32 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (unsigned int) (revFlag ? GUINT32_FROM_BE(x): x); + return (guint32) (revFlag ? GUINT32_FROM_BE(x): x); else - return (unsigned int) (revFlag ? GUINT32_FROM_LE(x): x); - }else if(f->field_size == 8){ + return (guint32) (revFlag ? GUINT32_FROM_LE(x): x); + } +#if 0 + else if(f->field_size == 8){ guint64 x = *(guint64 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) return (unsigned int) (revFlag ? GUINT64_FROM_BE(x): x); else return (unsigned int) (revFlag ? GUINT64_FROM_LE(x): x); } +#endif //0 g_critical("ltt_event_get_unsigned : field size %i unknown", f->field_size); return 0; } -int ltt_event_get_int(LttEvent *e, LttField *f) +gint32 ltt_event_get_int(LttEvent *e, LttField *f) { int revFlag = e->tracefile->trace->my_arch_endian == e->tracefile->trace->system_description->endian ? 0:1; @@ -589,31 +594,34 @@ int ltt_event_get_int(LttEvent *e, LttField *f) if(f->field_size == 1){ gint8 x = *(gint8 *)(e->data + f->offset_root); - return (int) x; + return (gint32) x; }else if(f->field_size == 2){ gint16 x = *(gint16 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (int) (revFlag ? GINT16_FROM_BE(x): x); + return (gint32) (revFlag ? GINT16_FROM_BE(x): x); else - return (int) (revFlag ? GINT16_FROM_LE(x): x); + return (gint32) (revFlag ? GINT16_FROM_LE(x): x); }else if(f->field_size == 4){ gint32 x = *(gint32 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (int) (revFlag ? GINT32_FROM_BE(x): x); + return (gint32) (revFlag ? GINT32_FROM_BE(x): x); else - return (int) (revFlag ? GINT32_FROM_LE(x): x); - }else if(f->field_size == 8){ + return (gint32) (revFlag ? GINT32_FROM_LE(x): x); + } +#if 0 + else if(f->field_size == 8){ gint64 x = *(gint64 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) return (int) (revFlag ? GINT64_FROM_BE(x): x); else return (int) (revFlag ? GINT64_FROM_LE(x): x); } +#endif //0 g_critical("ltt_event_get_int : field size %i unknown", f->field_size); return 0; } -unsigned long ltt_event_get_long_unsigned(LttEvent *e, LttField *f) +guint64 ltt_event_get_long_unsigned(LttEvent *e, LttField *f) { int revFlag = e->tracefile->trace->my_arch_endian == e->tracefile->trace->system_description->endian ? 0:1; @@ -623,31 +631,31 @@ unsigned long ltt_event_get_long_unsigned(LttEvent *e, LttField *f) if(f->field_size == 1){ guint8 x = *(guint8 *)(e->data + f->offset_root); - return (unsigned long) x; + return (guint64) x; }else if(f->field_size == 2){ guint16 x = *(guint16 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (unsigned long) (revFlag ? GUINT16_FROM_BE(x): x); + return (guint64) (revFlag ? GUINT16_FROM_BE(x): x); else - return (unsigned long) (revFlag ? GUINT16_FROM_LE(x): x); + return (guint64) (revFlag ? GUINT16_FROM_LE(x): x); }else if(f->field_size == 4){ guint32 x = *(guint32 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (unsigned long) (revFlag ? GUINT32_FROM_BE(x): x); + return (guint64) (revFlag ? GUINT32_FROM_BE(x): x); else - return (unsigned long) (revFlag ? GUINT32_FROM_LE(x): x); + return (guint64) (revFlag ? GUINT32_FROM_LE(x): x); }else if(f->field_size == 8){ guint64 x = *(guint64 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (unsigned long) (revFlag ? GUINT64_FROM_BE(x): x); + return (guint64) (revFlag ? GUINT64_FROM_BE(x): x); else - return (unsigned long) (revFlag ? GUINT64_FROM_LE(x): x); + return (guint64) (revFlag ? GUINT64_FROM_LE(x): x); } g_critical("ltt_event_get_long_unsigned : field size %i unknown", f->field_size); return 0; } -long int ltt_event_get_long_int(LttEvent *e, LttField *f) +gint64 ltt_event_get_long_int(LttEvent *e, LttField *f) { int revFlag = e->tracefile->trace->my_arch_endian == e->tracefile->trace->system_description->endian ? 0:1; @@ -656,25 +664,25 @@ long int ltt_event_get_long_int(LttEvent *e, LttField *f) if(f->field_size == 1){ gint8 x = *(gint8 *)(e->data + f->offset_root); - return (long) x; + return (gint64) x; }else if(f->field_size == 2){ gint16 x = *(gint16 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (long) (revFlag ? GINT16_FROM_BE(x): x); + return (gint64) (revFlag ? GINT16_FROM_BE(x): x); else - return (long) (revFlag ? GINT16_FROM_LE(x): x); + return (gint64) (revFlag ? GINT16_FROM_LE(x): x); }else if(f->field_size == 4){ gint32 x = *(gint32 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (long) (revFlag ? GINT32_FROM_BE(x): x); + return (gint64) (revFlag ? GINT32_FROM_BE(x): x); else - return (long) (revFlag ? GINT32_FROM_LE(x): x); + return (gint64) (revFlag ? GINT32_FROM_LE(x): x); }else if(f->field_size == 8){ gint64 x = *(gint64 *)(e->data + f->offset_root); if(e->tracefile->trace->my_arch_endian == LTT_LITTLE_ENDIAN) - return (long) (revFlag ? GINT64_FROM_BE(x): x); + return (gint64) (revFlag ? GINT64_FROM_BE(x): x); else - return (long) (revFlag ? GINT64_FROM_LE(x): x); + return (gint64) (revFlag ? GINT64_FROM_LE(x): x); } g_critical("ltt_event_get_long_int : field size %i unknown", f->field_size); return 0;