X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fevent.h;h=ab73ed925c05a274d6fe99f84a20626514b46962;hb=7c3c01d14690eee4d3c262f300a888680ae7a053;hp=8293d15fcf59c59c010604d2527a8037e95a034c;hpb=f61f4dca50e13aa52b1ca3941c8f420848f4353f;p=lttv.git diff --git a/ltt/event.h b/ltt/event.h index 8293d15f..ab73ed92 100644 --- a/ltt/event.h +++ b/ltt/event.h @@ -10,6 +10,11 @@ struct marker_field; +struct LttField { + int offset; + int size; +}; + /* * Structure LttEvent and LttEventPosition must begin with the _exact_ same * fields in the exact same order. LttEventPosition is a parent of LttEvent. @@ -31,6 +36,7 @@ struct LttEvent { LttTime event_time; void *data; /* event data */ + GArray *fields_offsets; /* current field offsets table */ guint data_size; guint event_size; /* event_size field of the header : used to verify data_size from marker. */ @@ -64,7 +70,7 @@ static inline LttTime ltt_event_time(const struct LttEvent *event) of which are user accessible: block number and event index within the block. */ -void ltt_event_position(LttEvent *e, LttEventPosition *ep); +void ltt_event_position(const LttEvent *e, LttEventPosition *ep); LttEventPosition * ltt_event_position_new(); @@ -108,4 +114,9 @@ static inline LttCycleCount ltt_event_cycle_count(const LttEvent *e) return e->tsc; } +static inline struct LttField *ltt_event_field(const LttEvent *e, int index) +{ + return &g_array_index(e->fields_offsets, struct LttField, index); +} + #endif //_LTT_EVENT_H