X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Ftrace.h;h=cd6bf7b7183a24ce1d05f716730ccb21e21d4438;hb=1b44b0b5729fbc82eab287323dc14d12c028dd44;hp=80258a78725c3c41fab886db1a665c88129e3e49;hpb=3aee1200b100fe8063661fd2d8eaa5fbbfc1977f;p=lttv.git diff --git a/ltt/branches/poly/ltt/trace.h b/ltt/branches/poly/ltt/trace.h index 80258a78..cd6bf7b7 100644 --- a/ltt/branches/poly/ltt/trace.h +++ b/ltt/branches/poly/ltt/trace.h @@ -1,5 +1,6 @@ /* This file is part of the Linux Trace Toolkit trace reading library * Copyright (C) 2003-2004 Michel Dagenais + * 2005 Mathieu Desnoyers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,7 +22,6 @@ #include - extern GQuark LTT_FACILITY_NAME_HEARTBEAT, LTT_EVENT_NAME_HEARTBEAT; @@ -44,10 +44,11 @@ LttTrace *ltt_trace_open(const gchar *pathname); */ LttTrace *ltt_trace_copy(LttTrace *self); -GQuark ltt_trace_name(LttTrace *t); +GQuark ltt_trace_name(const LttTrace *t); void ltt_trace_close(LttTrace *t); +guint ltt_trace_get_num_cpu(LttTrace *t); LttSystemDescription *ltt_trace_system_description(LttTrace *t); @@ -63,14 +64,8 @@ LttFacility *ltt_trace_facility_get(LttTrace *t, unsigned i); LttFacility * ltt_trace_facility_by_id(LttTrace * trace, guint8 id); -/* Look for a facility by name. It returns the number of facilities found - and sets the position argument to the first found. Returning 0, the named - facility is unknown, returning 1, the named facility is at the specified - position, returning n, the facilities are from position to - position + n - 1. */ - -unsigned ltt_trace_facility_find(LttTrace *t, gchar *name, unsigned *position); - +/* Returns an array of indexes (guint) that matches the facility name */ +GArray *ltt_trace_facility_get_by_name(LttTrace *t, GQuark name); /* Functions to discover all the event types in the trace */ @@ -86,8 +81,14 @@ void ltt_trace_time_span_get(LttTrace *t, LttTime *start, LttTime *end); /* Get the name of a tracefile */ -GQuark ltt_tracefile_name(LttTracefile *tf); +GQuark ltt_tracefile_name(const LttTracefile *tf); +GQuark ltt_tracefile_long_name(const LttTracefile *tf); + +/* get the cpu number of the tracefile */ +guint ltt_tracefile_num(LttTracefile *tf); + +LttTrace *ltt_tracefile_get_trace(LttTracefile *tf); /* Get the number of blocks in the tracefile */ @@ -112,6 +113,9 @@ int ltt_tracefile_read_seek(LttTracefile *t); int ltt_tracefile_read_update_event(LttTracefile *t); int ltt_tracefile_read_op(LttTracefile *t); +/* Get the current event of the tracefile : valid until the next read */ +LttEvent *ltt_tracefile_get_event(LttTracefile *tf); + /* open tracefile */ gint ltt_tracefile_open(LttTrace *t, gchar * fileName, LttTracefile *tf); @@ -138,9 +142,13 @@ gchar * ltt_trace_system_description_domain_name (LttSystemDescription * s); gchar * ltt_trace_system_description_description (LttSystemDescription * s); -/* get the start time of the trace */ +/* get the NTP start time of the trace */ + +LttTime ltt_trace_start_time(LttTrace *t); + +/* get the monotonic start time of the trace */ -LttTime ltt_trace_system_description_trace_start_time(LttSystemDescription *s); +LttTime ltt_trace_start_time_monotonic(LttTrace *t); /* copy tracefile info over another. Used for sync. */ LttTracefile *ltt_tracefile_new(); @@ -149,6 +157,30 @@ void ltt_tracefile_copy(LttTracefile *dest, const LttTracefile *src); void get_absolute_pathname(const gchar *pathname, gchar * abs_pathname); +/* May return a NULL tracefile group */ +GData **ltt_trace_get_tracefiles_groups(LttTrace *trace); + +typedef void (*ForEachTraceFileFunc)(LttTracefile *tf, gpointer func_args); + +struct compute_tracefile_group_args { + ForEachTraceFileFunc func; + gpointer func_args; +}; + + +void compute_tracefile_group(GQuark key_id, + GArray *group, + struct compute_tracefile_group_args *args); + +LttFacility *ltt_trace_get_facility_by_num(LttTrace *t, guint num); + + +gint check_fields_compatibility(LttEventType *event_type1, + LttEventType *event_type2, + LttField *field1, LttField *field2); + +gint64 ltt_get_int(gboolean reverse_byte_order, gint size, void *data); +guint64 ltt_get_uint(gboolean reverse_byte_order, gint size, void *data); #endif // TRACE_H