From: cherierm Date: Wed, 7 Feb 2007 16:39:32 +0000 (+0000) Subject: do not export private functions in the dll (win32 specific) X-Git-Tag: v3.3~2253 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/895151199518c0d298bd36eb6839453f8ede4e09 do not export private functions in the dll (win32 specific) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3106 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/amok/amok_modinter.h b/src/amok/amok_modinter.h index ccc74774ed..7267c78e40 100644 --- a/src/amok/amok_modinter.h +++ b/src/amok/amok_modinter.h @@ -10,10 +10,10 @@ #ifndef AMOK_BASE_H #define AMOK_BASE_H -XBT_PUBLIC(void) amok_init(void); -XBT_PUBLIC(void) amok_exit(void); +void amok_init(void); +void amok_exit(void); /* module creation functions */ -XBT_PUBLIC(void) amok_pm_modulecreate(void); +void amok_pm_modulecreate(void); #endif /* AMOK_BASE_H */ diff --git a/src/gras/DataDesc/datadesc_interface.h b/src/gras/DataDesc/datadesc_interface.h index a023b12e82..b72efc0a9e 100644 --- a/src/gras/DataDesc/datadesc_interface.h +++ b/src/gras/DataDesc/datadesc_interface.h @@ -14,29 +14,29 @@ #ifndef GRAS_DATADESC_INTERFACE_H #define GRAS_DATADESC_INTERFACE_H -XBT_PUBLIC(gras_datadesc_type_t) gras_datadesc_by_id (long int code); +gras_datadesc_type_t gras_datadesc_by_id (long int code); /* to debug */ -XBT_PUBLIC(void) gras_datadesc_type_dump(const gras_datadesc_type_t ddt); -XBT_PUBLIC(const char *) gras_datadesc_arch_name(int code); +void gras_datadesc_type_dump(const gras_datadesc_type_t ddt); +const char * gras_datadesc_arch_name(int code); /* compare two data type description */ -XBT_PUBLIC(int) +int gras_datadesc_type_cmp(const gras_datadesc_type_t d1, const gras_datadesc_type_t d2); /* Access function */ -XBT_PUBLIC(int) gras_datadesc_size(gras_datadesc_type_t type); +int gras_datadesc_size(gras_datadesc_type_t type); /* Described data exchanges: direct use */ -XBT_PUBLIC(int) gras_datadesc_copy(gras_datadesc_type_t type, void *src, void *dst); -XBT_PUBLIC(void) gras_datadesc_send(gras_socket_t sock, gras_datadesc_type_t type, void *src); -XBT_PUBLIC(void) gras_datadesc_recv(gras_socket_t sock, gras_datadesc_type_t type, +int gras_datadesc_copy(gras_datadesc_type_t type, void *src, void *dst); +void gras_datadesc_send(gras_socket_t sock, gras_datadesc_type_t type, void *src); +void gras_datadesc_recv(gras_socket_t sock, gras_datadesc_type_t type, int r_arch, void *dst); /* Described data exchanges: IDL compilation FIXME: not implemented*/ -XBT_PUBLIC(void) gras_datadesc_gen_cpy(gras_datadesc_type_t type, void *src, void **dst); -XBT_PUBLIC(void) gras_datadesc_gen_send(gras_socket_t sock, gras_datadesc_type_t type, void *src); -XBT_PUBLIC(void) gras_datadesc_gen_recv(gras_socket_t sock, gras_datadesc_type_t type, +void gras_datadesc_gen_cpy(gras_datadesc_type_t type, void *src, void **dst); +void gras_datadesc_gen_send(gras_socket_t sock, gras_datadesc_type_t type, void *src); +void gras_datadesc_gen_recv(gras_socket_t sock, gras_datadesc_type_t type, int r_arch, void *dst); diff --git a/src/gras/DataDesc/datadesc_private.h b/src/gras/DataDesc/datadesc_private.h index ccefd71619..0e79380174 100644 --- a/src/gras/DataDesc/datadesc_private.h +++ b/src/gras/DataDesc/datadesc_private.h @@ -37,7 +37,7 @@ #define ddt_aligned(v, a) (((v) + (a - 1)) & ~(a - 1)) /*@null@*/extern xbt_set_t gras_datadesc_set_local; -XBT_PUBLIC(void) gras_ddt_freev(void *ddt); +void gras_ddt_freev(void *ddt); /******************************************* * Descriptions of all known architectures * *******************************************/ @@ -112,7 +112,7 @@ typedef struct s_gras_dd_cat_field { } s_gras_dd_cat_field_t,*gras_dd_cat_field_t; -XBT_PUBLIC(void) gras_dd_cat_field_free(void *f); +void gras_dd_cat_field_free(void *f); /** * gras_dd_cat_scalar_t: @@ -234,9 +234,9 @@ typedef struct s_gras_datadesc_type { /*************************** * constructor/desctructor * ***************************/ -XBT_PUBLIC(void) gras_datadesc_free(gras_datadesc_type_t *type); +void gras_datadesc_free(gras_datadesc_type_t *type); -XBT_PUBLIC(gras_datadesc_type_t) + gras_datadesc_type_t gras_datadesc_scalar(const char *name, gras_ddt_scalar_type_t type, enum e_gras_dd_scalar_encoding encoding); @@ -244,14 +244,14 @@ XBT_PUBLIC(gras_datadesc_type_t) /**************************************************** * Callback persistant state constructor/destructor * ****************************************************/ -XBT_PUBLIC(gras_cbps_t) gras_cbps_new(void); -XBT_PUBLIC(void) gras_cbps_free(gras_cbps_t *state); -XBT_PUBLIC(void) gras_cbps_reset(gras_cbps_t state); +gras_cbps_t gras_cbps_new(void); +void gras_cbps_free(gras_cbps_t *state); +void gras_cbps_reset(gras_cbps_t state); /*************** * Convertions * ***************/ -XBT_PUBLIC(void) +void gras_dd_convert_elm(gras_datadesc_type_t type, int count, int r_arch, void *src, void *dst); diff --git a/src/gras/DataDesc/ddt_parse.yy.h b/src/gras/DataDesc/ddt_parse.yy.h index 6f8275bf4f..cfedb4f644 100644 --- a/src/gras/DataDesc/ddt_parse.yy.h +++ b/src/gras/DataDesc/ddt_parse.yy.h @@ -36,26 +36,26 @@ extern int gras_ddt_parse_col_pos; extern int gras_ddt_parse_char_pos; extern int gras_ddt_parse_tok_num; -XBT_PUBLIC(void) gras_ddt_parse_dump(void); -XBT_PUBLIC(int) gras_ddt_parse_lex_n_dump(void); -XBT_PUBLIC(void) gras_ddt_parse_pointer_init(const char *file); -XBT_PUBLIC(void) gras_ddt_parse_pointer_close(void); -XBT_PUBLIC(void) gras_ddt_parse_pointer_string_init(const char *string_to_parse); -XBT_PUBLIC(void) gras_ddt_parse_pointer_string_close(void); +void gras_ddt_parse_dump(void); +int gras_ddt_parse_lex_n_dump(void); +void gras_ddt_parse_pointer_init(const char *file); +void gras_ddt_parse_pointer_close(void); +void gras_ddt_parse_pointer_string_init(const char *string_to_parse); +void gras_ddt_parse_pointer_string_close(void); /* prototypes of the functions offered by flex */ -XBT_PUBLIC(int) gras_ddt_parse_lex(void); -XBT_PUBLIC(int) gras_ddt_parse_get_lineno (void); -XBT_PUBLIC(FILE *)gras_ddt_parse_get_in (void); -XBT_PUBLIC(FILE *)gras_ddt_parse_get_out (void); -XBT_PUBLIC(int) gras_ddt_parse_get_leng (void); -XBT_PUBLIC(char *)gras_ddt_parse_get_text (void); -XBT_PUBLIC(void) gras_ddt_parse_set_lineno (int line_number ); -XBT_PUBLIC(void) gras_ddt_parse_set_in (FILE * in_str ); -XBT_PUBLIC(void) gras_ddt_parse_set_out (FILE * out_str ); -XBT_PUBLIC(int) gras_ddt_parse_get_debug (void); -XBT_PUBLIC(void) gras_ddt_parse_set_debug (int bdebug ); -XBT_PUBLIC(int) gras_ddt_parse_lex_destroy (void); +int gras_ddt_parse_lex(void); +int gras_ddt_parse_get_lineno (void); +FILE *gras_ddt_parse_get_in (void); +FILE *gras_ddt_parse_get_out (void); +int gras_ddt_parse_get_leng (void); +char *gras_ddt_parse_get_text (void); +void gras_ddt_parse_set_lineno (int line_number ); +void gras_ddt_parse_set_in (FILE * in_str ); +void gras_ddt_parse_set_out (FILE * out_str ); +int gras_ddt_parse_get_debug (void); +void gras_ddt_parse_set_debug (int bdebug ); +int gras_ddt_parse_lex_destroy (void); #define PARSE_ERROR_PRE do { #define PARSE_ERROR_POST xbt_abort();} while (0) diff --git a/src/gras/Msg/msg_interface.h b/src/gras/Msg/msg_interface.h index 41cb9732e0..3595ead608 100644 --- a/src/gras/Msg/msg_interface.h +++ b/src/gras/Msg/msg_interface.h @@ -40,7 +40,7 @@ typedef struct { } s_gras_msg_procdata_t,*gras_msg_procdata_t; -XBT_PUBLIC(void) gras_msg_send_namev(gras_socket_t sock, +void gras_msg_send_namev(gras_socket_t sock, const char *namev, void *payload); diff --git a/src/gras/Msg/msg_private.h b/src/gras/Msg/msg_private.h index df5e60aea8..540e000a64 100644 --- a/src/gras/Msg/msg_private.h +++ b/src/gras/Msg/msg_private.h @@ -35,7 +35,7 @@ extern int gras_msg_libdata_id; /* The identifier of our libdata */ extern const char *e_gras_msg_kind_names[e_gras_msg_kind_count]; /* declare either regular messages or RPC or whatever */ -XBT_PUBLIC(void) +void gras_msgtype_declare_ext(const char *name, short int version, e_gras_msg_kind_t kind, @@ -65,9 +65,9 @@ void gras_msgtype_free(void *msgtype); /* functions to extract msg from socket or put it on wire (depend RL vs SG) */ -XBT_PUBLIC(void) gras_msg_recv(gras_socket_t sock, +void gras_msg_recv(gras_socket_t sock, gras_msg_t msg/*OUT*/); -XBT_PUBLIC(void) gras_msg_send_ext(gras_socket_t sock, +void gras_msg_send_ext(gras_socket_t sock, e_gras_msg_kind_t kind, unsigned long int ID, gras_msgtype_t msgtype, @@ -84,8 +84,8 @@ struct s_gras_cblist { }; typedef struct s_gras_cblist gras_cblist_t; -XBT_PUBLIC(void) gras_cbl_free(void *); /* used to free the memory at the end */ -XBT_PUBLIC(void) gras_cblist_free(void *cbl); +void gras_cbl_free(void *); /* used to free the memory at the end */ +void gras_cblist_free(void *cbl); /** * gras_msg_cb_ctx_t: @@ -112,9 +112,9 @@ typedef struct { } s_gras_timer_t, *gras_timer_t; /* returns 0 if it handled a timer, or the delay until next timer, or -1 if no armed timer */ -XBT_PUBLIC(double) gras_msg_timer_handle(void); +double gras_msg_timer_handle(void); -XBT_PUBLIC(gras_msg_cb_ctx_t) gras_msg_cb_ctx_new(gras_socket_t expe, +gras_msg_cb_ctx_t gras_msg_cb_ctx_new(gras_socket_t expe, gras_msgtype_t msgtype, unsigned long int ID, int answer_due, @@ -124,9 +124,9 @@ XBT_PUBLIC(gras_msg_cb_ctx_t) gras_msg_cb_ctx_new(gras_socket_t expe, /* We deploy a mallocator on the RPC contextes */ #include "xbt/mallocator.h" extern xbt_mallocator_t gras_msg_ctx_mallocator; -XBT_PUBLIC(void*) gras_msg_ctx_mallocator_new_f(void); -XBT_PUBLIC(void) gras_msg_ctx_mallocator_free_f(void* dict); -XBT_PUBLIC(void) gras_msg_ctx_mallocator_reset_f(void* dict); +void* gras_msg_ctx_mallocator_new_f(void); +void gras_msg_ctx_mallocator_free_f(void* dict); +void gras_msg_ctx_mallocator_reset_f(void* dict); #endif /* GRAS_MESSAGE_PRIVATE_H */ diff --git a/src/gras/Transport/transport_interface.h b/src/gras/Transport/transport_interface.h index a750d9eac2..b606cf7a1a 100644 --- a/src/gras/Transport/transport_interface.h +++ b/src/gras/Transport/transport_interface.h @@ -23,15 +23,15 @@ extern int gras_opt_trp_nomoredata_on_close; *** Main user functions ***/ /* stable if we know the storage will keep as is until the next trp_flush */ -XBT_PUBLIC(void) gras_trp_send(gras_socket_t sd, char *data, long int size, int stable); -XBT_PUBLIC(void) gras_trp_recv(gras_socket_t sd, char *data, long int size); -XBT_PUBLIC(void) gras_trp_flush(gras_socket_t sd); +void gras_trp_send(gras_socket_t sd, char *data, long int size, int stable); +void gras_trp_recv(gras_socket_t sd, char *data, long int size); +void gras_trp_flush(gras_socket_t sd); /* Find which socket needs to be read next */ -XBT_PUBLIC(gras_socket_t) gras_trp_select(double timeout); +gras_socket_t gras_trp_select(double timeout); /* Set the peer process name (used by messaging layer) */ -XBT_PUBLIC(void) gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc); +void gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc); /*** *** Plugin mechanism @@ -85,7 +85,7 @@ struct gras_trp_plugin_ { void (*exit)(gras_trp_plugin_t); }; -XBT_PUBLIC(gras_trp_plugin_t) +gras_trp_plugin_t gras_trp_plugin_get_by_name(const char *name); /* Data of this module specific to each process @@ -108,6 +108,6 @@ typedef struct { } s_gras_trp_procdata_t,*gras_trp_procdata_t; /* Display the content of our socket set (debugging purpose) */ -XBT_PUBLIC(void) gras_trp_socketset_dump(const char *name); +void gras_trp_socketset_dump(const char *name); #endif /* GRAS_TRP_INTERFACE_H */ diff --git a/src/gras/Transport/transport_private.h b/src/gras/Transport/transport_private.h index 21fb87417a..becb2627aa 100644 --- a/src/gras/Transport/transport_private.h +++ b/src/gras/Transport/transport_private.h @@ -75,16 +75,16 @@ typedef struct s_gras_socket { gras_trp_bufdata_t *bufdata; }s_gras_socket_t; -XBT_PUBLIC(void) gras_trp_socket_new(int incomming, +void gras_trp_socket_new(int incomming, gras_socket_t *dst); /* The drivers */ typedef void (*gras_trp_setup_t)(gras_trp_plugin_t dst); -XBT_PUBLIC(void) gras_trp_tcp_setup(gras_trp_plugin_t plug); -XBT_PUBLIC(void) gras_trp_iov_setup(gras_trp_plugin_t plug); -XBT_PUBLIC(void) gras_trp_file_setup(gras_trp_plugin_t plug); -XBT_PUBLIC(void) gras_trp_sg_setup(gras_trp_plugin_t plug); +void gras_trp_tcp_setup(gras_trp_plugin_t plug); +void gras_trp_iov_setup(gras_trp_plugin_t plug); +void gras_trp_file_setup(gras_trp_plugin_t plug); +void gras_trp_sg_setup(gras_trp_plugin_t plug); /* @@ -104,6 +104,6 @@ XBT_PUBLIC(void) gras_trp_sg_setup(gras_trp_plugin_t plug); */ -XBT_PUBLIC(gras_socket_t) gras_trp_buf_init_sock(gras_socket_t sock); +gras_socket_t gras_trp_buf_init_sock(gras_socket_t sock); #endif /* GRAS_TRP_PRIVATE_H */ diff --git a/src/gras_modinter.h b/src/gras_modinter.h index 31b79b2839..99e83a2881 100644 --- a/src/gras_modinter.h +++ b/src/gras_modinter.h @@ -12,19 +12,19 @@ #include /* XBT_PUBLIC */ /* modules initialization functions */ -XBT_PUBLIC(void) gras_emul_init(void); -XBT_PUBLIC(void) gras_emul_exit(void); - -XBT_PUBLIC(void) gras_msg_register(void); -XBT_PUBLIC(void) gras_msg_init(void); -XBT_PUBLIC(void) gras_msg_exit(void); -XBT_PUBLIC(void) gras_trp_register(void); -XBT_PUBLIC(void) gras_trp_init(void); -XBT_PUBLIC(void) gras_trp_exit(void); -XBT_PUBLIC(void) gras_datadesc_init(void); -XBT_PUBLIC(void) gras_datadesc_exit(void); - -XBT_PUBLIC(void) gras_procdata_init(void); -XBT_PUBLIC(void) gras_procdata_exit(void); +void gras_emul_init(void); +void gras_emul_exit(void); + +void gras_msg_register(void); +void gras_msg_init(void); +void gras_msg_exit(void); +void gras_trp_register(void); +void gras_trp_init(void); +void gras_trp_exit(void); +void gras_datadesc_init(void); +void gras_datadesc_exit(void); + +void gras_procdata_init(void); +void gras_procdata_exit(void); #endif /* GRAS_MODINTER_H */ diff --git a/src/msg/private.h b/src/msg/private.h index f314cfd8d1..d4b9d6e22a 100644 --- a/src/msg/private.h +++ b/src/msg/private.h @@ -95,8 +95,8 @@ typedef struct MSG_Global { extern MSG_Global_t msg_global; /************************** Configuration support ********************************/ -XBT_PUBLIC(void) msg_config_init(void); /* create the config set, call this before use! */ -XBT_PUBLIC(void) msg_config_finalize(void); /* destroy the config set, call this at cleanup. */ +void msg_config_init(void); /* create the config set, call this before use! */ +void msg_config_finalize(void); /* destroy the config set, call this at cleanup. */ extern int _msg_init_status; /* 0: beginning of time; 1: pre-inited (cfg_set created); 2: inited (running) */ @@ -113,22 +113,22 @@ extern xbt_cfg_t _msg_cfg_set; get_state(MSG_host_self()->simdata->host)==SURF_CPU_ON,\ "Host failed, you cannot call this function.") -XBT_PUBLIC(m_host_t) __MSG_host_create(const char *name, void *workstation, +m_host_t __MSG_host_create(const char *name, void *workstation, void *data); -XBT_PUBLIC(void) __MSG_host_destroy(m_host_t host); -XBT_PUBLIC(void) __MSG_task_execute(m_process_t process, m_task_t task); -XBT_PUBLIC(MSG_error_t) __MSG_wait_for_computation(m_process_t process, m_task_t task); -XBT_PUBLIC(MSG_error_t) __MSG_task_wait_event(m_process_t process, m_task_t task); +void __MSG_host_destroy(m_host_t host); +void __MSG_task_execute(m_process_t process, m_task_t task); +MSG_error_t __MSG_wait_for_computation(m_process_t process, m_task_t task); +MSG_error_t __MSG_task_wait_event(m_process_t process, m_task_t task); -XBT_PUBLIC(int) __MSG_process_block(double max_duration, const char *info); -XBT_PUBLIC(MSG_error_t) __MSG_process_unblock(m_process_t process); -XBT_PUBLIC(int) __MSG_process_isBlocked(m_process_t process); +int __MSG_process_block(double max_duration, const char *info); +MSG_error_t __MSG_process_unblock(m_process_t process); +int __MSG_process_isBlocked(m_process_t process); -XBT_PUBLIC(void) __MSG_display_process_status(void); +void __MSG_display_process_status(void); -XBT_PUBLIC(m_task_t) task_mallocator_new_f(void); -XBT_PUBLIC(void) task_mallocator_free_f(m_task_t task); -XBT_PUBLIC(void) task_mallocator_reset_f(m_task_t task); +m_task_t task_mallocator_new_f(void); +void task_mallocator_free_f(m_task_t task); +void task_mallocator_reset_f(m_task_t task); diff --git a/src/simdag/private.h b/src/simdag/private.h index 0f25f17a8a..bd3c2ce45e 100644 --- a/src/simdag/private.h +++ b/src/simdag/private.h @@ -101,17 +101,17 @@ typedef struct SD_dependency { /* SimDag private functions */ -XBT_PUBLIC(SD_link_t) __SD_link_create(void *surf_link, void *data); -XBT_PUBLIC(void) __SD_link_destroy(void *link); +SD_link_t __SD_link_create(void *surf_link, void *data); +void __SD_link_destroy(void *link); -XBT_PUBLIC(SD_workstation_t) __SD_workstation_create(void *surf_workstation, void *data); -XBT_PUBLIC(void) __SD_workstation_destroy(void *workstation); -XBT_PUBLIC(int) __SD_workstation_is_busy(SD_workstation_t workstation); +SD_workstation_t __SD_workstation_create(void *surf_workstation, void *data); +void __SD_workstation_destroy(void *workstation); +int __SD_workstation_is_busy(SD_workstation_t workstation); -XBT_PUBLIC(void) __SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state); -XBT_PUBLIC(void) __SD_task_really_run(SD_task_t task); -XBT_PUBLIC(int) __SD_task_try_to_run(SD_task_t task); -XBT_PUBLIC(void) __SD_task_just_done(SD_task_t task); +void __SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state); +void __SD_task_really_run(SD_task_t task); +int __SD_task_try_to_run(SD_task_t task); +void __SD_task_just_done(SD_task_t task); /* Functions to test if the task is in a given state. */ diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index a6b47963b6..c77e66402f 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -44,22 +44,22 @@ typedef struct surf_resource_private { /* #define pub2priv(r) ((surf_resource_private_t) ((char *)(r) -(sizeof(struct surf_resource_private_part)))) */ /* #define priv2pub(r) ((void *) ((char *)(r) +(sizeof(struct surf_resource_private_part)))) */ -XBT_PUBLIC(double) generic_maxmin_share_resources(xbt_swag_t running_actions, +double generic_maxmin_share_resources(xbt_swag_t running_actions, size_t offset); -XBT_PUBLIC(double) generic_maxmin_share_resources2(xbt_swag_t running_actions, +double generic_maxmin_share_resources2(xbt_swag_t running_actions, size_t offset, lmm_system_t sys); /* Generic functions common to all ressources */ -XBT_PUBLIC(e_surf_action_state_t) surf_action_get_state(surf_action_t action); -XBT_PUBLIC(double) surf_action_get_start_time(surf_action_t action); -XBT_PUBLIC(double) surf_action_get_finish_time(surf_action_t action); -XBT_PUBLIC(void) surf_action_free(surf_action_t * action); -XBT_PUBLIC(void) surf_action_change_state(surf_action_t action, +e_surf_action_state_t surf_action_get_state(surf_action_t action); +double surf_action_get_start_time(surf_action_t action); +double surf_action_get_finish_time(surf_action_t action); +void surf_action_free(surf_action_t * action); +void surf_action_change_state(surf_action_t action, e_surf_action_state_t state); -XBT_PUBLIC(void) surf_action_set_data(surf_action_t action, +void surf_action_set_data(surf_action_t action, void *data); -XBT_PUBLIC(FILE *) surf_fopen(const char *name, const char *mode); +FILE * surf_fopen(const char *name, const char *mode); extern lmm_system_t maxmin_system; extern tmgr_history_t history; diff --git a/src/xbt_modinter.h b/src/xbt_modinter.h index 99eb7a0328..bb3705e45f 100644 --- a/src/xbt_modinter.h +++ b/src/xbt_modinter.h @@ -12,9 +12,9 @@ #include "xbt/misc.h" /* Modules definitions */ -XBT_PUBLIC(void) xbt_log_init(int *argc,char **argv); -XBT_PUBLIC(void) xbt_log_exit(void); -XBT_PUBLIC(void) xbt_fifo_exit(void); -XBT_PUBLIC(void) xbt_dict_exit(void); +void xbt_log_init(int *argc,char **argv); +void xbt_log_exit(void); +void xbt_fifo_exit(void); +void xbt_dict_exit(void); #endif /* XBT_MODINTER_H */