c5d77517 |
1 | #ifndef TRACE_H |
2 | #define TRACE_H |
3 | |
4 | /* A trace is a sequence of events gathered in the same tracing session. The |
5 | events may be stored in several tracefiles in the same directory. |
6 | A trace set is defined when several traces are to be analyzed together, |
7 | possibly to study the interactions between events in the different traces. |
8 | */ |
9 | |
10 | typedef struct _lttv_trace_set lttv_trace_set; |
11 | |
12 | typedef struct _lttv_trace lttv_trace; |
13 | |
14 | typedef struct _lttv_tracefile lttv_tracefile; |
15 | |
16 | |
17 | /* Trace sets may be added to, removed from and their content listed. */ |
18 | |
19 | lttv_trace_set *lttv_trace_set_new(); |
20 | |
21 | lttv_trace_set *lttv_trace_set_destroy(lttv_trace_set *s); |
22 | |
23 | void lttv_trace_set_add(lttv_trace_set *s, lttv_trace *t); |
24 | |
25 | unsigned lttv_trace_set_number(lttv_trace_set *s); |
26 | |
27 | lttv_trace *lttv_trace_set_get(lttv_trace_set *s, unsigned i); |
28 | |
29 | lttv_trace *lttv_trace_set_remove(lttv_trace_set *s, unsigned i); |
30 | |
31 | |
32 | /* A trace is identified by the pathname of its containing directory */ |
33 | |
34 | lttv_trace *lttv_trace_open(char *pathname); |
35 | |
36 | int lttv_trace_close(lttv_trace *t); |
37 | |
38 | char *lttv_trace_name(lttv_trace *t); |
39 | |
40 | |
41 | /* A trace typically contains one tracefile with important events |
42 | (for all CPUs), and one tracefile with ordinary events per cpu. |
43 | The tracefiles in a trace may be enumerated for each category |
44 | (all cpu and per cpu). The total number of tracefiles and of CPUs |
45 | may also be obtained. */ |
46 | |
47 | unsigned int lttv_trace_tracefile_number(lttv_trace *t); |
48 | |
49 | unsigned int lttv_trace_cpu_number(lttv_trace *t); |
50 | |
51 | unsigned int lttv_trace_tracefile_number_per_cpu(lttv_trace *t); |
52 | |
53 | unsigned int lttv_trace_tracefile_number_all_cpu(lttv_trace *t); |
54 | |
55 | lttv_tracefile *lttv_trace_tracefile_get_per_cpu(lttv_trace *t, unsigned i); |
56 | |
57 | lttv_tracefile *lttv_trace_tracefile_get_all_cpu(lttv_trace *t, unsigned i); |
58 | |
59 | |
60 | /* A set of attributes is attached to each trace set, trace and tracefile |
61 | to store user defined data as needed. */ |
62 | |
63 | lttv_attributes *lttv_trace_set_attributes(lttv_trace_set *s); |
64 | |
65 | lttv_attributes *lttv_trace_attributes(lttv_trace *t); |
66 | |
67 | lttv_attributes *lttv_tracefile_attributes(lttv_tracefile *tf); |
68 | |
69 | |
70 | /* The underlying ltt_tracefile, from which events may be read, is accessible. |
71 | The tracefile name is also available. */ |
72 | |
73 | lttv_tracefile *lttv_tracefile_ltt_tracefile(lttv_tracefile *tf); |
74 | |
75 | char *lttv_tracefile_name(lttv_tracefile *tf); |
76 | |
77 | #endif // TRACE_H |
78 | |