X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fltt%2Ftype.c;h=725b4e3486f81520875955e26bfc983bc74018a8;hb=05463aa54c3a5bd881c830177a83f468c208e74e;hp=21636c24d5b0acb31730e280d1857d5eb17938fe;hpb=02007847f865c0d2f50979b5ceecbdeec5ef7b97;p=lttv.git diff --git a/ltt/branches/poly/ltt/type.c b/ltt/branches/poly/ltt/type.c index 21636c24..725b4e34 100644 --- a/ltt/branches/poly/ltt/type.c +++ b/ltt/branches/poly/ltt/type.c @@ -1,7 +1,26 @@ +/* This file is part of the Linux Trace Toolkit viewer + * Copyright (C) 2003-2004 Xiangxiu Yang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 as + * published by the Free Software Foundation; + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + #include -#include #include "parser.h" +#include +#include "ltt-private.h" #include static unsigned intSizes[] = { @@ -60,12 +79,12 @@ LttFacility *ltt_eventtype_facility(LttEventType *et) *Input params * et : an event type *Return value - * unsigned * : the relative id + * unsigned : the relative id ****************************************************************************/ -unsigned *ltt_eventtype_relative_id(LttEventType *et) +unsigned ltt_eventtype_relative_id(LttEventType *et) { - return (unsigned*)&et->index; + return et->index; } /***************************************************************************** @@ -74,14 +93,12 @@ unsigned *ltt_eventtype_relative_id(LttEventType *et) *Input params * et : an event type *Return value - * unsigned * : the id + * unsigned : the id ****************************************************************************/ -unsigned *ltt_eventtype_id(LttEventType *et) +unsigned ltt_eventtype_id(LttEventType *et) { - unsigned *id = g_new(unsigned,1); - *id = et->facility->base_id + et->index; - return (unsigned*)id; + return et->facility->base_id + et->index; } /***************************************************************************** @@ -95,6 +112,7 @@ unsigned *ltt_eventtype_id(LttEventType *et) LttType *ltt_eventtype_type(LttEventType *et) { + if(!et->root_field) return NULL; return et->root_field->field_type; } @@ -243,7 +261,7 @@ LttType *ltt_type_member_type(LttType *t, unsigned i, char ** name) { if(t->type_class != LTT_STRUCT){*name == NULL; return NULL;} if(i >= t->element_number || i < 0 ){*name = NULL; return NULL;} - *name = t->element_name; + *name = t->element_type[i]->element_name; return t->element_type[i]; } @@ -313,6 +331,12 @@ LttField *ltt_field_member(LttField *f, unsigned i) LttType *ltt_field_type(LttField *f) { + if(!f)return NULL; return f->field_type; } +int ltt_field_size(LttField * f) +{ + if(!f)return 0; + return f->field_size; +}