name change
[lttv.git] / ltt / branches / poly / include / ltt / tracefile.h
... / ...
CommitLineData
1#ifndef TRACEFILE_H
2#define TRACEFILE_H
3
4#include <ltt/ltt.h>
5
6/* A tracefile is specified as a pathname. Facilities must be added to the
7 tracefile to declare the type of the contained events.
8
9 The ltt_tracefile_facility_add call increases the facility
10 usage count and also specifies the base of the numeric range
11 assigned to the event types in the facility for this tracefile.
12 This information is normally obtained through "facility used" events
13 stored in the tracefile.
14
15 When a tracefile is closed, all the associated facilities may be
16 automatically closed as well, if their usage count is 0, when the
17 close_facilities argument is true. */
18
19ltt_tracefile *ltt_tracefile_open(char *pathname);
20
21int ltt_tracefile_close(ltt_tracefile *t, int close_facilities);
22
23int ltt_tracefile_facility_add(ltt_tracefile *t, ltt_facility *f, int base_id);
24
25
26/* A tracefile may be queried for its architecture type (e.g., "i386",
27 "powerpc", "powerpcle", "s390", "s390x"), its architecture variant
28 (e.g., "att" versus "sun" for m68k), its operating system (e.g., "linux",
29 "bsd"), its generic architecture, and the machine identity (e.g., system
30 host name). All character strings belong to the associated tracefile
31 and are freed when it is closed. */
32
33
34uint32_t ltt_tracefile_arch_type(ltt_tracefile *t);
35
36uint32_t ltt_tracefile_arch_variant(ltt_tracefile *t);
37
38ltt_arch_size ltt_tracefile_arch_size(ltt_tracefile *t);
39
40ltt_arch_endian ltt_tracefile_arch_endian(ltt_tracefile *t);
41
42uint32_t ltt_tracefile_system_type(ltt_tracefile *t);
43
44char *ltt_tracefile_system_name(ltt_tracefile *t);
45
46
47/* SMP multi-processors have 2 or more CPUs */
48
49unsigned ltt_tracefile_cpu_number(ltt_tracefile *t);
50
51
52/* Does the tracefile contain events only for a single CPU? */
53
54int ltt_tracefile_cpu_single(ltt_tracefile *t);
55
56
57/* It this is the case, which CPU? */
58
59unsigned ltt_tracefile_cpu_id(ltt_tracefile *t);
60
61
62/* Start and end time of the trace and its duration */
63
64ltt_time ltt_tracefile_time_start(ltt_tracefile *t);
65
66ltt_time ltt_tracefile_time_end(ltt_tracefile *t);
67
68ltt_time ltt_tracefile_duration(ltt_tracefile *t);
69
70
71/* Functions to discover the facilities added to the tracefile */
72
73unsigned ltt_tracefile_facility_number(ltt_tracefile *t);
74
75ltt_facility *ltt_tracefile_facility_get(ltt_tracefile *t, unsigned i);
76
77ltt_facility *ltt_tracefile_facility_get_by_name(ltt_tracefile *t, char *name);
78
79
80/* Functions to discover all the event types in the facilities added to the
81 tracefile. The event type integer id, unique for the trace, is used. */
82
83unsigned ltt_tracefile_eventtype_number(ltt_tracefile *t);
84
85ltt_eventtype *ltt_tracefile_eventtype_get(ltt_tracefile *t, unsigned i);
86
87
88/* Given an event type, find its unique id within the tracefile */
89
90unsigned ltt_tracefile_eventtype_id(ltt_tracefile *t, ltt_eventtype *et);
91
92
93/* Get the root field associated with an event type for the tracefile */
94
95ltt_field *ltt_tracefile_eventtype_root_field(ltt_tracefile *t, unsigned id);
96
97
98/* Seek to the first event of the trace with time larger or equal to time */
99
100int ltt_tracefile_seek_time(ltt_tracefile *t, ltt_time time);
101
102
103/* Read the next event */
104
105ltt_event *ltt_tracefile_read(ltt_tracefile *t);
106
107#endif // TRACEFILE_H
This page took 0.02186 seconds and 4 git commands to generate.