X-Git-Url: https://git.lttng.org/?p=lttv.git;a=blobdiff_plain;f=ltt%2Ftrace.h;fp=ltt%2Ftrace.h;h=0000000000000000000000000000000000000000;hp=64c38da4a18c91859efb23f8ed25b0839324327e;hb=1aab1adee7a14dbb1ae2b296380e1861a91b54e0;hpb=7c3c01d14690eee4d3c262f300a888680ae7a053 diff --git a/ltt/trace.h b/ltt/trace.h deleted file mode 100644 index 64c38da4..00000000 --- a/ltt/trace.h +++ /dev/null @@ -1,238 +0,0 @@ -/* 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 - * License Version 2.1 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef TRACE_H -#define TRACE_H - -#include -#include -#include -#include - -struct LttTrace { - GQuark pathname; //the pathname of the trace - //LttSystemDescription * system_description;//system description - - guint num_cpu; - - guint32 arch_type; - guint32 arch_variant; - guint8 arch_size; - guint8 ltt_major_version; - guint8 ltt_minor_version; - guint8 flight_recorder; - guint32 freq_scale; - uint64_t start_freq; - uint64_t start_tsc; - uint64_t start_monotonic; - double drift; - double offset; - LttTime start_time; - LttTime start_time_from_tsc; - gboolean is_live; /* Flag indicating that read trace is currently being recorded */ - LttTime live_safe_timestamp; /* In a live trace, timestamp were all data should be readable */ - - GData *tracefiles; /*tracefiles groups*/ -}; - -static inline guint ltt_trace_get_num_cpu(LttTrace *t) -{ - return t->num_cpu; -} - -/* A trace is specified as a pathname to the directory containing all the - associated data (control tracefiles, per cpu tracefiles, event - descriptions...). - - When a trace is closed, all the associated facilities, types and fields - are released as well. - - return value is NULL if there is an error when opening the trace. - - */ - -LttTrace *ltt_trace_open(const gchar *pathname); - -/* Same as ltt_trace_open but open the trace in live mode */ -LttTrace *ltt_trace_open_live(const gchar *pathname); - - -/* copy reopens a trace - * - * return value NULL if error while opening the trace - */ -LttTrace *ltt_trace_copy(LttTrace *self); - -static inline GQuark ltt_trace_name(const LttTrace *t) -{ - return t->pathname; -} -/* Update the informations concerning a trace, normally a live one */ -int ltt_trace_update(LttTrace *trace); - -void ltt_trace_close(LttTrace *t); - -LttSystemDescription *ltt_trace_system_description(LttTrace *t); - - -/* Get the start time and end time of the trace */ - -void ltt_trace_time_span_get(LttTrace *t, LttTime *start, LttTime *end); - - -/* Get the name of a tracefile */ - -static inline GQuark ltt_tracefile_name(const LttTracefile *tf) -{ - return tf->name; -} - -static inline GQuark ltt_tracefile_long_name(const LttTracefile *tf) -{ - return tf->long_name; -} - -/* get the cpu number of the tracefile */ - -static inline guint ltt_tracefile_cpu(LttTracefile *tf) -{ - return tf->cpu_num; -} - -/* For usertrace */ -static inline guint ltt_tracefile_tid(LttTracefile *tf) -{ - return tf->tid; -} - -static inline guint ltt_tracefile_pgid(LttTracefile *tf) -{ - return tf->pgid; -} - -static inline guint64 ltt_tracefile_creation(LttTracefile *tf) -{ - return tf->creation; -} - -static inline LttTrace *ltt_tracefile_get_trace(LttTracefile *tf) -{ - return tf->trace; -} - -/* Get the number of blocks in the tracefile */ - -static inline guint ltt_tracefile_block_number(LttTracefile *tf) -{ - return tf->num_blocks; -} - - -/* Seek to the first event of the trace with time larger or equal to time */ - -int ltt_tracefile_seek_time(LttTracefile *t, LttTime time); - - -int ltt_tracefile_get_current_position(const LttTracefile *tf, LttEventPosition *ep); - -/* Seek to the first event with position equal or larger to ep */ - -int ltt_tracefile_seek_position(LttTracefile *t, - const LttEventPosition *ep); - -/* Read the next event */ - -int ltt_tracefile_read(LttTracefile *t); - -/* ltt_tracefile_read cut down in pieces */ -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); - -/* get the data type size and endian type of the local machine */ - -void getDataEndianType(LttArchSize * size, LttArchEndian * endian); - -/* get an integer number */ -gint64 get_int(gboolean reverse_byte_order, gint size, void *data); - -/* get the node name of the system */ - -gchar * ltt_trace_system_description_node_name (LttSystemDescription * s); - - -/* get the domain name of the system */ - -gchar * ltt_trace_system_description_domain_name (LttSystemDescription * s); - - -/* get the description of the system */ - -gchar * ltt_trace_system_description_description (LttSystemDescription * s); - - -/* 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_start_time_monotonic(LttTrace *t); - -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); - - -gint64 ltt_get_int(gboolean reverse_byte_order, gint size, void *data); - -guint64 ltt_get_uint(gboolean reverse_byte_order, gint size, void *data); - -guint64 tsc_to_uint64(guint32 freq_scale, uint64_t start_freq, guint64 tsc); - -LttTime ltt_interpolate_time_from_tsc(LttTracefile *tf, guint64 tsc); - -/* Set to enable event debugging output */ -void ltt_event_debug(int state); - -/* A structure representing the version number of the trace */ -struct LttTraceVersion { - guint8 ltt_major_version; - guint8 ltt_minor_version; -}; - -/* To get the version number of a trace */ -int ltt_get_trace_version(const gchar *pathname, struct LttTraceVersion * version_number); - -#endif // TRACE_H