+/* This file is part of the Linux Trace Toolkit trace reading library
+ * Copyright (C) 2003-2004 Michel Dagenais
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License Version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
#ifndef TYPE_H
#define TYPE_H
-#include <ltt/ltt.h>
-
/* Different types allowed */
-typedef enum _LttTypeEnum
-{ LTT_INT, LTT_UINT, LTT_FLOAT, LTT_STRING, LTT_ENUM, LTT_ARRAY,
- LTT_SEQUENCE, LTT_STRUCT
-} LttTypeEnum;
+#include <ltt/ltt.h>
/* All event types, data types and fields belong to their trace and
LttFacility *ltt_eventtype_facility(LttEventType *et);
-unsigned *ltt_eventtype_relative_id(LttEventType *et);
+unsigned ltt_eventtype_relative_id(LttEventType *et);
-unsigned *ltt_eventtype_id(LttEventType *et);
+unsigned ltt_eventtype_id(LttEventType *et);
LttType *ltt_eventtype_type(LttEventType *et);
LttTypeEnum ltt_type_class(LttType *t);
-unsigned ltt_type_size(LttTracefile *tf, LttType *t);
+unsigned ltt_type_size(LttTrace *trace, LttType *t);
/* The type of nested elements for arrays and sequences. */
unsigned ltt_type_element_number(LttType *t);
-/* The number of data members for structures. */
+/* The number of data members for structures and unions. */
unsigned ltt_type_member_number(LttType *t);
/* The type of a data member in a structure. */
-LttType *ltt_type_member_type(LttType *t, unsigned i);
+LttType *ltt_type_member_type(LttType *t, unsigned i, char ** name);
/* For enumerations, obtain the symbolic string associated with a value
LttType *ltt_field_type(LttField *f);
+int ltt_field_size(LttField * f);
+
#endif // TYPE_H