17 #ifndef _GTG_OTF2_STRUCTS_H_ 
   18 #define _GTG_OTF2_STRUCTS_H_ 
   25 #define MAX_PROCESS 64 
  134 #define ContainerType_NIL 0 
  135 #define Container_NIL     0 
  136 #define StateType_NIL     0 
  138 #define EntityValue_NIL   0 
  139 #define EventType_NIL     0 
  140 #define LinkType_NIL      0 
  141 #define VariableType_NIL  0 
  142 #define Variable_NIL      0 
  144 #define init_OTF2_String(var)                   \ 
  151 #define init_StateType(var)               \ 
  153     init_OTF2_String((var).name);         \ 
  154     init_OTF2_String((var).alias);        \ 
  156     (var).id      = StateType_NIL;        \ 
  157     GTG_LIST_INIT(&(var).token);          \ 
  160 #define init_State(var)                         \ 
  162     (var).value     = EntityValue_NIL;          \ 
  164     (var).stateType = NULL;                     \ 
  165     GTG_STACK_INIT(&(var).token);               \ 
  168 #define init_ContainerType(var)                 \ 
  170     init_OTF2_String((var).name);               \ 
  171     init_OTF2_String((var).alias);        \ 
  172     (var).id    = ContainerType_NIL;            \ 
  173     GTG_LIST_INIT(&(var).token);                \ 
  176 #define init_Container(var)                     \ 
  178     init_OTF2_String((var).name);               \ 
  179     init_OTF2_String((var).alias);              \ 
  180     (var).ctType = NULL;                        \ 
  181     (var).id     = Container_NIL;               \ 
  182     (var).parent = NULL;                        \ 
  183     (var).ev_writer = NULL;                     \ 
  184     GTG_LIST_INIT(&(var).token);                \ 
  185     GTG_STACK_INIT(&(var).state_stack.token);   \ 
  188 #define init_EntityValue(var)                   \ 
  190     init_OTF2_String((var).name);               \ 
  191     init_OTF2_String((var).alias);              \ 
  193     (var).id      = EntityValue_NIL;            \ 
  194     GTG_LIST_INIT(&(var).token);                \ 
  197 #define init_EventType(var)                     \ 
  199     init_OTF2_String((var).name);               \ 
  200     init_OTF2_String((var).alias);              \ 
  201     (var).contType = NULL;                      \ 
  202     (var).id       = EventType_NIL;             \ 
  203     GTG_LIST_INIT(&(var).token);                \ 
  206 #define init_LinkType(var)                      \ 
  208     init_OTF2_String((var).name);               \ 
  209     init_OTF2_String((var).alias);              \ 
  210     (var).contType = NULL;                      \ 
  211     (var).srcType  = NULL;                      \ 
  212     (var).destType = NULL;                      \ 
  213     (var).id       = LinkType_NIL;              \ 
  214     GTG_LIST_INIT(&(var).token);                \ 
  217 #define init_VariableType(var)                  \ 
  219     init_OTF2_String((var).name);               \ 
  220     init_OTF2_String((var).alias);              \ 
  221     (var).contType = NULL;                      \ 
  222     (var).id       = VariableType_NIL;          \ 
  223     GTG_LIST_INIT(&(var).token);                \ 
  226 #define init_Variable(var)                      \ 
  228     (var).parent = NULL;                \ 
  231     (var).id     = Variable_NIL;                \ 
  232     GTG_LIST_INIT(&(var).token);                \ 
  236 #define alloc_struct(ptr, type, list_head)                              \ 
  238     ptr = (type*) malloc(sizeof(type));                         \ 
  239     GTG_LIST_INIT(&(ptr->token));                                       \ 
  240     ptr->id = (gtg_list_entry((list_head)->prev, type, token)->id) + 1; \ 
  241     gtg_list_add_tail(&(ptr->token), list_head);                        \ 
  245 #define alloc_init_struct(type, ptr, list_head, _name_, _alias_)        \ 
  247   alloc_struct(ptr, type, list_head);                                   \ 
  248   (ptr)->name = (char *)malloc(sizeof(char)*(strlen(_name_)+1));        \ 
  249   strcpy((ptr)->name, _name_);                                          \ 
  250   (ptr)->alias = (char *)malloc(sizeof(char)*(strlen(_alias_)+1));      \ 
  251   strcpy((ptr)->alias, _alias_);                                        \ 
  254 #define alloc_Variable(_ptr_, _id_, _parent_, _type_, _value_)  \ 
  256     (_ptr_) = (Variable_t*) malloc(sizeof(Variable_t));         \ 
  257     init_Variable(*(_ptr_));                                    \ 
  258     (_ptr_)->id = _id_;                                         \ 
  259     (_ptr_)->parent = _parent_;                                 \ 
  260     (_ptr_)->type = _type_;                                     \ 
  261     (_ptr_)->value = _value_;                                   \ 
  264 #define alloc_State(_ptr_, _value_, _cont_, _stateType_)        \ 
  266     _ptr_ = (State_t*) malloc(sizeof(State_t));                 \ 
  267     init_State(*(_ptr_));                                       \ 
  268     (_ptr_)->value = _value_;                                   \ 
  269     (_ptr_)->cont = _cont_;                                     \ 
  270     (_ptr_)->stateType = _stateType_;                           \ 
  273 #define free_struct(_type_, _list_head_)\ 
  276     gtg_list_for_each_entry_safe(ptr, tmp, &(_list_head_).token, token) {       \ 
  277     gtg_list_del(&(ptr->token));\ 
  278     free(ptr->name.name);\ 
otf2_id_t id
Definition: GTGOTF2_Structs.h:121
OTF2_EvtWriter * evt_writer
Definition: GTGOTF2_Structs.h:69
struct LinkType LinkType_t
Definition: GTGOTF2_Structs.h:27
struct Variable Variable_t
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:84
otf2_id_t id
Definition: GTGOTF2_Structs.h:55
struct gtg_list token
Definition: GTGOTF2_Structs.h:79
Definition: GTGOTF2_Structs.h:74
otf2_id_t uint32_t
Definition: GTGOTF2_Structs.h:32
struct EventType EventType_t
Definition: GTGOTF2_Structs.h:109
struct otf_color * otf_color_t
Definition: GTGOTF2_Structs.h:132
struct VariableType VariableType_t
double varPrec
Use the double precision type for time and value. 
Definition: GTGTypes.h:28
struct gtg_list token
Definition: GTGOTF2_Structs.h:88
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:75
otf2_id_t id
Definition: GTGOTF2_Structs.h:113
gtg_stack token
Definition: GTGOTF2_Structs.h:48
Definition: GTGOTF2_Structs.h:92
ContainerType_t * contType
Definition: GTGOTF2_Structs.h:95
otf2_id_t id
Definition: GTGOTF2_Structs.h:87
int src
Definition: GTGOTF2_Structs.h:104
struct gtg_list token
Definition: GTGOTF2_Structs.h:122
struct gtg_list token
Definition: GTGOTF2_Structs.h:99
struct gtg_list token
Definition: GTGOTF2_Structs.h:114
ContainerType_t * destType
Definition: GTGOTF2_Structs.h:97
Definition: GTGOTF2_Structs.h:61
Container_t * parent
Definition: GTGOTF2_Structs.h:118
uint64_t value
Definition: GTGOTF2_Structs.h:120
State_t state_stack
Definition: GTGOTF2_Structs.h:68
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:63
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:54
ContainerType_t * contType
Definition: GTGOTF2_Structs.h:86
Definition: GTGOTF2_Structs.h:52
ContainerType_t * contType
Definition: GTGOTF2_Structs.h:112
otf2_id_t id
Definition: GTGOTF2_Structs.h:78
Container_t * cont
Definition: GTGOTF2_Structs.h:46
otf2_id_t id
Definition: GTGOTF2_Structs.h:65
ContainerType_t * ctType
Definition: GTGOTF2_Structs.h:64
StateType_t * stateType
Definition: GTGOTF2_Structs.h:47
struct Container * parent
Definition: GTGOTF2_Structs.h:66
struct EntityValue EntityValue_t
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:53
ContainerType_t * srcType
Definition: GTGOTF2_Structs.h:96
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:111
uint8_t green
Definition: GTGOTF2_Structs.h:128
VariableType_t * type
Definition: GTGOTF2_Structs.h:119
varPrec time
Definition: GTGOTF2_Structs.h:103
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:94
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:37
int groupId
Definition: GTGOTF2_Structs.h:77
struct ContainerType ContainerType_t
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:36
char * colorID
Definition: GTGOTF2_Structs.h:126
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:85
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:110
char * name
Definition: GTGOTF2_Structs.h:29
Definition: GTGOTF2_Structs.h:83
Definition: GTGOTF2_Structs.h:125
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:62
struct __OTF2_String alias
Definition: GTGOTF2_Structs.h:76
struct gtg_list token
Definition: GTGOTF2_Structs.h:57
uint8_t blue
Definition: GTGOTF2_Structs.h:129
uint8_t red
Definition: GTGOTF2_Structs.h:127
struct gtg_list token
Definition: GTGOTF2_Structs.h:40
Definition: GTGOTF2_Structs.h:44
uint32_t id
Definition: GTGOTF2_Structs.h:28
struct __OTF2_String name
Definition: GTGOTF2_Structs.h:93
struct ContainerType * parent_type
Definition: GTGOTF2_Structs.h:56
otf2_id_t id
Definition: GTGOTF2_Structs.h:39
struct gtg_list token
Definition: GTGOTF2_Structs.h:67
struct Container Container_t
Definition: GTGOTF2_Structs.h:35
int groupId
Definition: GTGOTF2_Structs.h:38
struct StateType StateType_t
Definition: GTGOTF2_Structs.h:117
otf2_id_t id
Definition: GTGOTF2_Structs.h:98
EntityValue_t * value
Definition: GTGOTF2_Structs.h:45
Definition: GTGOTF2_Structs.h:102