old files clean
[lttv.git] / ltt / branches / poly / include / ltt / event.h
... / ...
CommitLineData
1#ifndef EVENT_H
2#define EVENT_H
3
4#include <ltt/ltt.h>
5
6/* Events and their content, including the raw data, are only valid
7 until reading another event from the same tracefile.
8 Indeed, since event reading is critical to the performance,
9 the memory associated with an event may be reused at each read. */
10
11
12/* Obtain the trace unique integer id associated with the type of
13 this event */
14
15unsigned ltt_event_eventtype_id(LttEvent *e);
16
17
18/* Facility and type for the event */
19
20LttFacility *ltt_event_facility(LttEvent *e);
21
22LttEventType *ltt_event_eventtype(LttEvent *e);
23
24
25/* Root field for the event */
26
27LttField *ltt_event_field(LttEvent *e);
28
29
30/* Time and cycle count for the event */
31
32LttTime ltt_event_time(LttEvent *e);
33
34LttCycleCount ltt_event_cycle_count(LttEvent *e);
35
36
37/* Obtain the position of the event within the tracefile. This
38 is used to seek back to this position later or to seek to another
39 position, computed relative to this position. The event position
40 structure is opaque and contains several fields, only two
41 of which are user accessible: block number and event index
42 within the block. */
43
44void ltt_event_position(LttEvent *e, LttEventPosition *ep);
45
46LttEventPosition * ltt_event_position_new();
47
48void ltt_event_position_get(LttEventPosition *ep,
49 unsigned *block_number, unsigned *index_in_block, LttTracefile ** tf);
50
51void ltt_event_position_set(LttEventPosition *ep,
52 unsigned block_number, unsigned index_in_block);
53
54
55/* CPU id of the event */
56
57unsigned ltt_event_cpu_id(LttEvent *e);
58
59
60/* Pointer to the raw data for the event. This should not be used directly
61 unless prepared to do all the architecture specific conversions. */
62
63void *ltt_event_data(LttEvent *e);
64
65
66/* The number of elements in a sequence field is specific to each event
67 instance. This function returns the number of elements for an array or
68 sequence field in an event. */
69
70unsigned ltt_event_field_element_number(LttEvent *e, LttField *f);
71
72
73/* Set the currently selected element for a sequence or array field. */
74
75void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i);
76
77
78/* A union is like a structure except that only a single member at a time
79 is present depending on the specific event instance. This function tells
80 the active member for a union field in an event. */
81
82unsigned ltt_event_field_union_member(LttEvent *e, LttField *f);
83
84
85/* These functions extract data from an event after architecture specific
86 conversions. */
87
88unsigned ltt_event_get_unsigned(LttEvent *e, LttField *f);
89
90int ltt_event_get_int(LttEvent *e, LttField *f);
91
92unsigned long ltt_event_get_long_unsigned(LttEvent *e, LttField *f);
93
94long int ltt_event_get_long_int(LttEvent *e, LttField *f);
95
96float ltt_event_get_float(LttEvent *e, LttField *f);
97
98double ltt_event_get_double(LttEvent *e, LttField *f);
99
100
101/* The string obtained is only valid until the next read from
102 the same tracefile. */
103
104char *ltt_event_get_string(LttEvent *e, LttField *f);
105
106#endif // EVENT_H
This page took 0.023678 seconds and 4 git commands to generate.