move ltt-private.h from public directroy into private directroy
[lttv.git] / ltt / branches / poly / include / ltt / event.h
CommitLineData
7c6b3cd7 1#ifndef EVENT_H
2#define EVENT_H
3
4#include <ltt/ltt.h>
975e44c7 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
1b82f325 12/* Obtain the trace unique integer id associated with the type of
975e44c7 13 this event */
14
290dfc8c 15unsigned ltt_event_eventtype_id(LttEvent *e);
975e44c7 16
17
18/* Facility and type for the event */
19
290dfc8c 20LttFacility *ltt_event_facility(LttEvent *e);
975e44c7 21
290dfc8c 22LttEventType *ltt_event_eventtype(LttEvent *e);
975e44c7 23
1b82f325 24
25/* Root field for the event */
26
290dfc8c 27LttField *ltt_event_field(LttEvent *e);
975e44c7 28
1b82f325 29
975e44c7 30/* Time and cycle count for the event */
31
290dfc8c 32LttTime ltt_event_time(LttEvent *e);
975e44c7 33
290dfc8c 34LttCycleCount ltt_event_cycle_count(LttEvent *e);
975e44c7 35
36
80da81ad 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
a5dcde2f 46LttEventPosition * ltt_event_position_new();
47
80da81ad 48void ltt_event_position_get(LttEventPosition *ep,
fb1a869e 49 unsigned *block_number, unsigned *index_in_block, LttTracefile ** tf);
80da81ad 50
51void ltt_event_position_set(LttEventPosition *ep,
52 unsigned block_number, unsigned index_in_block);
53
54
290dfc8c 55/* CPU id of the event */
975e44c7 56
290dfc8c 57unsigned ltt_event_cpu_id(LttEvent *e);
975e44c7 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
290dfc8c 63void *ltt_event_data(LttEvent *e);
975e44c7 64
65
a6bf5e74 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. */
975e44c7 69
290dfc8c 70unsigned ltt_event_field_element_number(LttEvent *e, LttField *f);
975e44c7 71
72
73/* Set the currently selected element for a sequence or array field. */
74
290dfc8c 75void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i);
975e44c7 76
77
a6bf5e74 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
975e44c7 85/* These functions extract data from an event after architecture specific
86 conversions. */
87
290dfc8c 88unsigned ltt_event_get_unsigned(LttEvent *e, LttField *f);
975e44c7 89
290dfc8c 90int ltt_event_get_int(LttEvent *e, LttField *f);
975e44c7 91
290dfc8c 92unsigned long ltt_event_get_long_unsigned(LttEvent *e, LttField *f);
975e44c7 93
290dfc8c 94long int ltt_event_get_long_int(LttEvent *e, LttField *f);
975e44c7 95
290dfc8c 96float ltt_event_get_float(LttEvent *e, LttField *f);
975e44c7 97
290dfc8c 98double ltt_event_get_double(LttEvent *e, LttField *f);
975e44c7 99
100
101/* The string obtained is only valid until the next read from
102 the same tracefile. */
103
290dfc8c 104char *ltt_event_get_string(LttEvent *e, LttField *f);
7c6b3cd7 105
106#endif // EVENT_H
This page took 0.029292 seconds and 4 git commands to generate.