git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2871
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
typedef struct xbt_dynar_s *xbt_dynar_t;
typedef struct xbt_dynar_s *xbt_dynar_t;
- xbt_dynar_t xbt_dynar_new(unsigned long elm_size,
+ XBT_PUBLIC xbt_dynar_t xbt_dynar_new(unsigned long elm_size,
void_f_pvoid_t *free_func);
void_f_pvoid_t *free_func);
- void xbt_dynar_free(xbt_dynar_t *dynar);
- void xbt_dynar_free_voidp(void *dynar);
- void xbt_dynar_free_container(xbt_dynar_t *dynar);
+ XBT_PUBLIC void xbt_dynar_free(xbt_dynar_t *dynar);
+ XBT_PUBLIC void xbt_dynar_free_voidp(void *dynar);
+ XBT_PUBLIC void xbt_dynar_free_container(xbt_dynar_t *dynar);
- unsigned long xbt_dynar_length(const xbt_dynar_t dynar);
- void xbt_dynar_reset(xbt_dynar_t dynar);
- void xbt_dynar_shrink(xbt_dynar_t dynar, int empty_slots);
+ XBT_PUBLIC unsigned long xbt_dynar_length(const xbt_dynar_t dynar);
+ XBT_PUBLIC void xbt_dynar_reset(xbt_dynar_t dynar);
+ XBT_PUBLIC void xbt_dynar_shrink(xbt_dynar_t dynar, int empty_slots);
- void xbt_dynar_dump(xbt_dynar_t dynar);
+ XBT_PUBLIC void xbt_dynar_dump(xbt_dynar_t dynar);
/** @} */
/** @defgroup XBT_dynar_array Dynar as a regular array
/** @} */
/** @defgroup XBT_dynar_array Dynar as a regular array
- void xbt_dynar_get_cpy(const xbt_dynar_t dynar, int idx, void * const dst);
+ XBT_PUBLIC void xbt_dynar_get_cpy(const xbt_dynar_t dynar, int idx, void * const dst);
- void xbt_dynar_set(xbt_dynar_t dynar, int idx, const void *src);
- void xbt_dynar_replace(xbt_dynar_t dynar, int idx, const void *object);
+ XBT_PUBLIC void xbt_dynar_set(xbt_dynar_t dynar, int idx, const void *src);
+ XBT_PUBLIC void xbt_dynar_replace(xbt_dynar_t dynar, int idx, const void *object);
- void xbt_dynar_insert_at(xbt_dynar_t dynar, int idx, const void *src);
- void xbt_dynar_remove_at(xbt_dynar_t dynar, int idx, void * const dst);
+ XBT_PUBLIC void xbt_dynar_insert_at(xbt_dynar_t dynar, int idx, const void *src);
+ XBT_PUBLIC void xbt_dynar_remove_at(xbt_dynar_t dynar, int idx, void * const dst);
- int xbt_dynar_search(xbt_dynar_t dynar, void *elem);
- int xbt_dynar_member(xbt_dynar_t dynar, void *elem);
+ XBT_PUBLIC int xbt_dynar_search(xbt_dynar_t dynar, void *elem);
+ XBT_PUBLIC int xbt_dynar_member(xbt_dynar_t dynar, void *elem);
/** @} */
/** @defgroup XBT_dynar_perl Perl-like use of dynars
* @ingroup XBT_dynar
/** @} */
/** @defgroup XBT_dynar_perl Perl-like use of dynars
* @ingroup XBT_dynar
- void xbt_dynar_push (xbt_dynar_t dynar, const void *src);
- void xbt_dynar_pop (xbt_dynar_t dynar, void *const dst);
- void xbt_dynar_unshift (xbt_dynar_t dynar, const void *src);
- void xbt_dynar_shift (xbt_dynar_t dynar, void *const dst);
- void xbt_dynar_map (const xbt_dynar_t dynar, void_f_pvoid_t *op);
+ XBT_PUBLIC void xbt_dynar_push (xbt_dynar_t dynar, const void *src);
+ XBT_PUBLIC void xbt_dynar_pop (xbt_dynar_t dynar, void *const dst);
+ XBT_PUBLIC void xbt_dynar_unshift (xbt_dynar_t dynar, const void *src);
+ XBT_PUBLIC void xbt_dynar_shift (xbt_dynar_t dynar, void *const dst);
+ XBT_PUBLIC void xbt_dynar_map (const xbt_dynar_t dynar, void_f_pvoid_t *op);
/** @} */
/** @defgroup XBT_dynar_ctn Direct manipulation to the dynars content
/** @} */
/** @defgroup XBT_dynar_ctn Direct manipulation to the dynars content
- void *xbt_dynar_get_ptr(const xbt_dynar_t dynar, const int idx);
- void *xbt_dynar_insert_at_ptr(xbt_dynar_t const dynar, const int idx);
- void *xbt_dynar_push_ptr(xbt_dynar_t dynar);
- void *xbt_dynar_pop_ptr(xbt_dynar_t dynar);
+ XBT_PUBLIC void *xbt_dynar_get_ptr(const xbt_dynar_t dynar, const int idx);
+ XBT_PUBLIC void *xbt_dynar_insert_at_ptr(xbt_dynar_t const dynar, const int idx);
+ XBT_PUBLIC void *xbt_dynar_push_ptr(xbt_dynar_t dynar);
+ XBT_PUBLIC void *xbt_dynar_pop_ptr(xbt_dynar_t dynar);
/** @} */
/** @defgroup XBT_dynar_speed Speed optimized access to dynars of scalars
/** @} */
/** @defgroup XBT_dynar_speed Speed optimized access to dynars of scalars
- void xbt_dynar_cursor_first (const xbt_dynar_t dynar, int *cursor);
- void xbt_dynar_cursor_step (const xbt_dynar_t dynar, int *cursor);
- int xbt_dynar_cursor_get (const xbt_dynar_t dynar, int *cursor,
+ XBT_PUBLIC void xbt_dynar_cursor_first (const xbt_dynar_t dynar, int *cursor);
+ XBT_PUBLIC void xbt_dynar_cursor_step (const xbt_dynar_t dynar, int *cursor);
+ XBT_PUBLIC int xbt_dynar_cursor_get (const xbt_dynar_t dynar, int *cursor,
- void xbt_dynar_cursor_rm(xbt_dynar_t dynar,
+ XBT_PUBLIC void xbt_dynar_cursor_rm(xbt_dynar_t dynar,
#undef __EX_MAYDAY
#ifdef __EX_MAYDAY
#undef __EX_MAYDAY
#ifdef __EX_MAYDAY
-int gras_os_getpid(void);
+XBT_PUBLIC int gras_os_getpid(void);
# define MAYDAY_SAVE(m) printf("%d %s:%d save %p\n", \
gras_os_getpid(),__FILE__,__LINE__, \
(m)->jb \
# define MAYDAY_SAVE(m) printf("%d %s:%d save %p\n", \
gras_os_getpid(),__FILE__,__LINE__, \
(m)->jb \
*/
/* we need this symbol here, even if it breaks a bit the module separation */
*/
/* we need this symbol here, even if it breaks a bit the module separation */
-long int gras_os_getpid(void);
+XBT_PUBLIC long int gras_os_getpid(void);
/** @brief different kind of errors */
typedef enum {
/** @brief different kind of errors */
typedef enum {
thread_error /**< error while [un]locking */
} xbt_errcat_t;
thread_error /**< error while [un]locking */
} xbt_errcat_t;
-const char * xbt_ex_catname(xbt_errcat_t cat);
+XBT_PUBLIC const char * xbt_ex_catname(xbt_errcat_t cat);
/** @brief Structure describing an exception */
typedef struct {
/** @brief Structure describing an exception */
typedef struct {
#define RETHROW5(msg,a,b,c,d,e) _XBT_PRE_RETHROW msg,a,b,c,d,e, _XBT_POST_RETHROW
/** @brief Exception destructor */
#define RETHROW5(msg,a,b,c,d,e) _XBT_PRE_RETHROW msg,a,b,c,d,e, _XBT_POST_RETHROW
/** @brief Exception destructor */
-void xbt_ex_free(xbt_ex_t e);
+XBT_PUBLIC void xbt_ex_free(xbt_ex_t e);
-void xbt_ex_display(xbt_ex_t *e);
-void xbt_backtrace_display(void);
+XBT_PUBLIC void xbt_ex_display(xbt_ex_t *e);
+XBT_PUBLIC void xbt_backtrace_display(void);
/** @} */
#endif /* __XBT_EX_H__ */
/** @} */
#endif /* __XBT_EX_H__ */
*/
typedef struct xbt_fifo *xbt_fifo_t;
*/
typedef struct xbt_fifo *xbt_fifo_t;
-xbt_fifo_t xbt_fifo_new(void);
-void xbt_fifo_free(xbt_fifo_t);
+XBT_PUBLIC xbt_fifo_t xbt_fifo_new(void);
+XBT_PUBLIC void xbt_fifo_free(xbt_fifo_t);
/** @} */
/** @defgroup XBT_fifo_perl Fifo perl-like functions
/** @} */
/** @defgroup XBT_fifo_perl Fifo perl-like functions
-xbt_fifo_item_t xbt_fifo_push(xbt_fifo_t, void *);
-void *xbt_fifo_pop(xbt_fifo_t);
-xbt_fifo_item_t xbt_fifo_unshift(xbt_fifo_t, void *);
-void *xbt_fifo_shift(xbt_fifo_t);
-int xbt_fifo_size(xbt_fifo_t);
-int xbt_fifo_is_in(xbt_fifo_t, void *);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_push(xbt_fifo_t, void *);
+XBT_PUBLIC void *xbt_fifo_pop(xbt_fifo_t);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_unshift(xbt_fifo_t, void *);
+XBT_PUBLIC void *xbt_fifo_shift(xbt_fifo_t);
+XBT_PUBLIC int xbt_fifo_size(xbt_fifo_t);
+XBT_PUBLIC int xbt_fifo_is_in(xbt_fifo_t, void *);
/** @} */
/** @defgroup XBT_fifo_direct Direct access to fifo elements
/** @} */
/** @defgroup XBT_fifo_direct Direct access to fifo elements
-xbt_fifo_item_t xbt_fifo_new_item(void);
-void xbt_fifo_set_item_content(xbt_fifo_item_t, void *);
-void *xbt_fifo_get_item_content(xbt_fifo_item_t);
-void xbt_fifo_free_item(xbt_fifo_item_t);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_new_item(void);
+XBT_PUBLIC void xbt_fifo_set_item_content(xbt_fifo_item_t, void *);
+XBT_PUBLIC void *xbt_fifo_get_item_content(xbt_fifo_item_t);
+XBT_PUBLIC void xbt_fifo_free_item(xbt_fifo_item_t);
-void xbt_fifo_push_item(xbt_fifo_t, xbt_fifo_item_t);
-xbt_fifo_item_t xbt_fifo_pop_item(xbt_fifo_t);
-void xbt_fifo_unshift_item(xbt_fifo_t, xbt_fifo_item_t);
-xbt_fifo_item_t xbt_fifo_shift_item(xbt_fifo_t);
+XBT_PUBLIC void xbt_fifo_push_item(xbt_fifo_t, xbt_fifo_item_t);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_pop_item(xbt_fifo_t);
+XBT_PUBLIC void xbt_fifo_unshift_item(xbt_fifo_t, xbt_fifo_item_t);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_shift_item(xbt_fifo_t);
-void xbt_fifo_remove(xbt_fifo_t, void *);
-void xbt_fifo_remove_item(xbt_fifo_t, xbt_fifo_item_t);
+XBT_PUBLIC void xbt_fifo_remove(xbt_fifo_t, void *);
+XBT_PUBLIC void xbt_fifo_remove_item(xbt_fifo_t, xbt_fifo_item_t);
-xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l);
-xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i);
-xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i);
/**
* \brief List iterator
/**
* \brief List iterator
-void **xbt_fifo_to_array(xbt_fifo_t);
-xbt_fifo_t xbt_fifo_copy(xbt_fifo_t);
+XBT_PUBLIC void **xbt_fifo_to_array(xbt_fifo_t);
+XBT_PUBLIC xbt_fifo_t xbt_fifo_copy(xbt_fifo_t);
/** @} */
/* Deprecated functions: don't use! */
/** @} */
/* Deprecated functions: don't use! */
-xbt_fifo_item_t xbt_fifo_newitem(void);
-void xbt_fifo_freeitem(xbt_fifo_item_t);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_newitem(void);
+XBT_PUBLIC void xbt_fifo_freeitem(xbt_fifo_item_t);
-xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l);
-xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i);
-xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i);
+XBT_PUBLIC xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i);
typedef struct xbt_graph *xbt_graph_t;
/* API */
typedef struct xbt_graph *xbt_graph_t;
/* API */
-xbt_graph_t xbt_graph_new_graph(unsigned short int directed, void *data);
-xbt_node_t xbt_graph_new_node(xbt_graph_t g, void *data);
-xbt_edge_t xbt_graph_new_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst,
+XBT_PUBLIC xbt_graph_t xbt_graph_new_graph(unsigned short int directed, void *data);
+XBT_PUBLIC xbt_node_t xbt_graph_new_node(xbt_graph_t g, void *data);
+XBT_PUBLIC xbt_edge_t xbt_graph_new_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst,
-void *xbt_graph_node_get_data(xbt_node_t node);
-void xbt_graph_node_set_data(xbt_node_t node, void *data);
-void *xbt_graph_edge_get_data(xbt_edge_t edge);
-void xbt_graph_edge_set_data(xbt_edge_t edge, void *data);
+XBT_PUBLIC void *xbt_graph_node_get_data(xbt_node_t node);
+XBT_PUBLIC void xbt_graph_node_set_data(xbt_node_t node, void *data);
+XBT_PUBLIC void *xbt_graph_edge_get_data(xbt_edge_t edge);
+XBT_PUBLIC void xbt_graph_edge_set_data(xbt_edge_t edge, void *data);
-xbt_edge_t xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst);
+XBT_PUBLIC xbt_edge_t xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst);
-void xbt_graph_edge_set_length(xbt_edge_t e, double length);
-double xbt_graph_edge_get_length(xbt_edge_t e);
-double* xbt_graph_get_length_matrix(xbt_graph_t g);
+XBT_PUBLIC void xbt_graph_edge_set_length(xbt_edge_t e, double length);
+XBT_PUBLIC double xbt_graph_edge_get_length(xbt_edge_t e);
+XBT_PUBLIC double* xbt_graph_get_length_matrix(xbt_graph_t g);
-void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n,
+XBT_PUBLIC void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n,
void_f_pvoid_t *node_free_function , void_f_pvoid_t *edge_free_function);
void_f_pvoid_t *node_free_function , void_f_pvoid_t *edge_free_function);
-void xbt_graph_free_edge(xbt_graph_t g, xbt_edge_t e,
+XBT_PUBLIC void xbt_graph_free_edge(xbt_graph_t g, xbt_edge_t e,
void_f_pvoid_t *free_function);
void_f_pvoid_t *free_function);
-void xbt_graph_free_graph(xbt_graph_t g,
+XBT_PUBLIC void xbt_graph_free_graph(xbt_graph_t g,
void_f_pvoid_t *node_free_function,
void_f_pvoid_t *edge_free_function,
void_f_pvoid_t *graph_free_function);
void_f_pvoid_t *node_free_function,
void_f_pvoid_t *edge_free_function,
void_f_pvoid_t *graph_free_function);
-int __xbt_find_in_dynar(xbt_dynar_t dynar, void *p);
+XBT_PUBLIC int __xbt_find_in_dynar(xbt_dynar_t dynar, void *p);
-xbt_dynar_t xbt_graph_get_nodes(xbt_graph_t g);
-xbt_dynar_t xbt_graph_get_edges(xbt_graph_t g);
-xbt_node_t xbt_graph_edge_get_source(xbt_edge_t e);
-xbt_node_t xbt_graph_edge_get_target(xbt_edge_t e);
-xbt_graph_t xbt_graph_read(const char *filename,
+XBT_PUBLIC xbt_dynar_t xbt_graph_get_nodes(xbt_graph_t g);
+XBT_PUBLIC xbt_dynar_t xbt_graph_get_edges(xbt_graph_t g);
+XBT_PUBLIC xbt_node_t xbt_graph_edge_get_source(xbt_edge_t e);
+XBT_PUBLIC xbt_node_t xbt_graph_edge_get_target(xbt_edge_t e);
+XBT_PUBLIC xbt_graph_t xbt_graph_read(const char *filename,
void *(node_label_and_data)(xbt_node_t, const char*, const char*),
void *(edge_label_and_data)(xbt_edge_t, const char*, const char*)
);
void *(node_label_and_data)(xbt_node_t, const char*, const char*),
void *(edge_label_and_data)(xbt_edge_t, const char*, const char*)
);
-void xbt_graph_export_graphviz(xbt_graph_t g, const char *filename,
+XBT_PUBLIC void xbt_graph_export_graphviz(xbt_graph_t g, const char *filename,
const char *(node_name)(xbt_node_t),
const char *(edge_name)(xbt_edge_t));
const char *(node_name)(xbt_node_t),
const char *(edge_name)(xbt_edge_t));
-void xbt_graph_export_graphxml(xbt_graph_t g, const char *filename,
+XBT_PUBLIC void xbt_graph_export_graphxml(xbt_graph_t g, const char *filename,
const char *(node_name)(xbt_node_t),
const char *(edge_name)(xbt_edge_t),
const char *(node_data_print)(void *),
const char *(node_name)(xbt_node_t),
const char *(edge_name)(xbt_edge_t),
const char *(node_data_print)(void *),
/* Not implemented yet ! */
/* void *xbt_graph_to_array(xbt_graph_t g); */
/* Not implemented yet ! */
/* void *xbt_graph_to_array(xbt_graph_t g); */
-xbt_node_t* xbt_graph_shortest_paths(xbt_graph_t g);
+XBT_PUBLIC xbt_node_t* xbt_graph_shortest_paths(xbt_graph_t g);