-void TRACE_paje_start(void);
-void TRACE_paje_end(void);
-void TRACE_paje_dump_buffer (int force);
-void new_pajeDefineContainerType(type_t type);
-void new_pajeDefineVariableType(type_t type);
-void new_pajeDefineStateType(type_t type);
-void new_pajeDefineEventType(type_t type);
-void new_pajeDefineLinkType(type_t type, type_t source, type_t dest);
-void new_pajeDefineEntityValue (val_t type);
-void new_pajeCreateContainer (container_t container);
-void new_pajeDestroyContainer (container_t container);
-void new_pajeSetVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeAddVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
-void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
-void new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
-void new_pajePopState (double timestamp, container_t container, type_t type);
-void new_pajeResetState (double timestamp, container_t container, type_t type);
-void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);
-void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key);
-void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value);
-
-//for tracing gtnets
-void TRACE_surf_gtnets_communicate(void *action, void *src, void *dst);
+XBT_PRIVATE void TRACE_paje_init();
+XBT_PRIVATE void TRACE_paje_start();
+XBT_PRIVATE void TRACE_paje_end();
+XBT_PRIVATE void TRACE_paje_dump_buffer (int force);
+XBT_PUBLIC(void) new_pajeDefineContainerType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineVariableType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineStateType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineEventType(type_t type);
+XBT_PUBLIC(void) new_pajeDefineLinkType(type_t type, type_t source, type_t dest);
+XBT_PUBLIC(void) new_pajeDefineEntityValue (val_t type);
+
+// Container
+XBT_PUBLIC(void) new_pajeCreateContainer (container_t container);
+XBT_PUBLIC(void) new_pajeDestroyContainer (container_t container);
+
+XBT_PUBLIC(void) new_pajeSetVariable (double timestamp, container_t container, type_t type, double value);
+XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, type_t type, double value);
+
+
+XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
+XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
+XBT_PUBLIC(void) new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value,
+ void* extra);
+XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type);
+XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type);
+XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
+ const char *value, const char *key);
+XBT_PUBLIC(void) new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type,
+ container_t sourceContainer, const char *value, const char *key, int size);
+XBT_PUBLIC(void) new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer,
+ const char *value, const char *key);
+XBT_PUBLIC(void) new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value);