Adapt to the new format (several named control files). Provide a way to
[lttv.git] / ltt / branches / poly / include / ltt / type.h
CommitLineData
7c6b3cd7 1#ifndef TYPE_H
2#define TYPE_H
975e44c7 3
4#include <ltt/ltt.h>
5
1b82f325 6
7/* Different types allowed */
8
290dfc8c 9typedef enum _LttTypeEnum
1b82f325 10{ LTT_INT, LTT_UINT, LTT_FLOAT, LTT_STRING, LTT_ENUM, LTT_ARRAY,
11 LTT_SEQUENCE, LTT_STRUCT
290dfc8c 12} LttTypeEnum;
1b82f325 13
14
15/* All event types, data types and fields belong to their trace and
975e44c7 16 are released at the same time. */
17
1b82f325 18/* Obtain the name, description, facility, facility relative id, global id,
19 type and root field for an eventtype */
20
290dfc8c 21char *ltt_eventtype_name(LttEventType *et);
975e44c7 22
290dfc8c 23char *ltt_eventtype_description(LttEventType *et);
975e44c7 24
290dfc8c 25LttFacility *ltt_eventtype_facility(LttEventType *et);
1b82f325 26
290dfc8c 27unsigned *ltt_eventtype_relative_id(LttEventType *et);
1b82f325 28
290dfc8c 29unsigned *ltt_eventtype_id(LttEventType *et);
1b82f325 30
290dfc8c 31LttType *ltt_eventtype_type(LttEventType *et);
975e44c7 32
290dfc8c 33LttField *ltt_eventtype_field(LttEventType *et);
1b82f325 34
975e44c7 35
36/* obtain the type name and size. The size is the number of bytes for
37 primitive types (INT, UINT, FLOAT, ENUM), or the size for the unsigned
38 integer length count for sequences. */
39
290dfc8c 40char *ltt_type_name(LttType *t);
975e44c7 41
290dfc8c 42LttTypeEnum ltt_type_class(LttType *t);
975e44c7 43
290dfc8c 44unsigned ltt_type_size(LttTracefile *tf, LttType *t);
975e44c7 45
46
47/* The type of nested elements for arrays and sequences. */
48
290dfc8c 49LttType *ltt_type_element_type(LttType *t);
975e44c7 50
51
52/* The number of elements for arrays. */
53
290dfc8c 54unsigned ltt_type_element_number(LttType *t);
975e44c7 55
56
57/* The number of data members for structures. */
58
290dfc8c 59unsigned ltt_type_member_number(LttType *t);
975e44c7 60
61
62/* The type of a data member in a structure. */
63
290dfc8c 64LttType *ltt_type_member_type(LttType *t, unsigned i);
975e44c7 65
66
67/* For enumerations, obtain the symbolic string associated with a value
68 (0 to n - 1 for an enumeration of n elements). */
69
290dfc8c 70char *ltt_enum_string_get(LttType *t, unsigned i);
975e44c7 71
72
73/* The fields form a tree representing a depth first search of the
74 corresponding event type directed acyclic graph. Fields for arrays and
75 sequences simply point to one nested field representing the currently
76 selected element among all the (identically typed) elements. For structures,
77 a nested field exists for each data member. Each field stores the
1b82f325 78 platform/trace specific offset values (for efficient access) and
290dfc8c 79 points back to the corresponding LttType for the rest. */
975e44c7 80
290dfc8c 81LttField *ltt_field_element(LttField *f);
975e44c7 82
290dfc8c 83LttField *ltt_field_member(LttField *f, unsigned i);
975e44c7 84
290dfc8c 85LttType *ltt_field_type(LttField *f);
975e44c7 86
7c6b3cd7 87#endif // TYPE_H
This page took 0.027009 seconds and 4 git commands to generate.