X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Fevent.h;h=e91875e548f080ef9cc2a7c12bd7da1062422bdb;hb=6d0cdf22a0f14b0ebbff26a675547a6410899b33;hp=c3500120b8b49ba8bc01fd15dc9c05e554d093f2;hpb=c02ea99f196ff9bf99335fcf0cae4efc0e28f051;p=lttv.git diff --git a/ltt/branches/poly/ltt/event.h b/ltt/branches/poly/ltt/event.h index c3500120..e91875e5 100644 --- a/ltt/branches/poly/ltt/event.h +++ b/ltt/branches/poly/ltt/event.h @@ -1,5 +1,6 @@ /* This file is part of the Linux Trace Toolkit trace reading library * Copyright (C) 2003-2004 Michel Dagenais + * 2006 Mathieu Desnoyers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,7 +20,9 @@ #ifndef EVENT_H #define EVENT_H +#include #include +#include LttEvent *ltt_event_new(); @@ -33,26 +36,23 @@ void ltt_event_destroy(LttEvent *event); /* Obtain the trace unique integer id associated with the type of this event */ -unsigned ltt_event_eventtype_id(LttEvent *e); +unsigned ltt_event_eventtype_id(const LttEvent *e); +unsigned ltt_event_facility_id(const LttEvent *e); /* Facility and type for the event */ -LttFacility *ltt_event_facility(LttEvent *e); +LttFacility *ltt_event_facility(const LttEvent *e); -LttEventType *ltt_event_eventtype(LttEvent *e); +LttEventType *ltt_event_eventtype(const LttEvent *e); -/* Root field for the event */ - -LttField *ltt_event_field(LttEvent *e); - /* Time and cycle count for the event */ -LttTime ltt_event_time(LttEvent *e); +LttTime ltt_event_time(const LttEvent *e); -LttCycleCount ltt_event_cycle_count(LttEvent *e); +LttCycleCount ltt_event_cycle_count(const LttEvent *e); /* Obtain the position of the event within the tracefile. This @@ -66,21 +66,20 @@ void ltt_event_position(LttEvent *e, LttEventPosition *ep); LttEventPosition * ltt_event_position_new(); -void ltt_event_position_get(LttEventPosition *ep, - unsigned *block_number, unsigned *index_in_block, LttTracefile ** tf); +void ltt_event_position_get(LttEventPosition *ep, LttTracefile **tf, + guint *block, guint *offset, guint64 *tsc); -void ltt_event_position_set(LttEventPosition *ep, - unsigned block_number, unsigned index_in_block); +void ltt_event_position_set(LttEventPosition *ep, LttTracefile *tf, + guint block, guint offset, guint64 tsc); gint ltt_event_position_compare(const LttEventPosition *ep1, const LttEventPosition *ep2); -gint ltt_event_event_position_compare(const LttEvent *event, - const LttEventPosition *ep); - void ltt_event_position_copy(LttEventPosition *dest, const LttEventPosition *src); +LttTracefile *ltt_event_position_tracefile(LttEventPosition *ep); + /* CPU id of the event */ unsigned ltt_event_cpu_id(LttEvent *e); @@ -96,13 +95,14 @@ void *ltt_event_data(LttEvent *e); instance. This function returns the number of elements for an array or sequence field in an event. */ -unsigned ltt_event_field_element_number(LttEvent *e, LttField *f); +guint64 ltt_event_field_element_number(LttEvent *e, LttField *f); /* Set the currently selected element for a sequence or array field. */ -void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i); +LttField *ltt_event_field_element_select(LttEvent *e, LttField *f, gulong i); +off_t ltt_event_field_offset(LttEvent *e, LttField *f); /* A union is like a structure except that only a single member at a time is present depending on the specific event instance. This function tells @@ -114,13 +114,13 @@ unsigned ltt_event_field_union_member(LttEvent *e, LttField *f); /* These functions extract data from an event after architecture specific conversions. */ -unsigned ltt_event_get_unsigned(LttEvent *e, LttField *f); +guint32 ltt_event_get_unsigned(LttEvent *e, LttField *f); -int ltt_event_get_int(LttEvent *e, LttField *f); +gint32 ltt_event_get_int(LttEvent *e, LttField *f); -unsigned long ltt_event_get_long_unsigned(LttEvent *e, LttField *f); +guint64 ltt_event_get_long_unsigned(LttEvent *e, LttField *f); -long int ltt_event_get_long_int(LttEvent *e, LttField *f); +gint64 ltt_event_get_long_int(LttEvent *e, LttField *f); float ltt_event_get_float(LttEvent *e, LttField *f); @@ -130,6 +130,9 @@ double ltt_event_get_double(LttEvent *e, LttField *f); /* The string obtained is only valid until the next read from the same tracefile. */ -char *ltt_event_get_string(LttEvent *e, LttField *f); +gchar *ltt_event_get_string(LttEvent *e, LttField *f); + +void compute_offsets(LttTracefile *tf, LttFacility *fac, + LttEventType *event, off_t *offset, void *root); #endif // EVENT_H