#include "xbt/dict.h"
#include "xbt/context.h"
#include "xbt/config.h"
+#include "xbt/function_types.h"
/******************************* Datatypes **********************************/
smx_process_t current_process;
xbt_dict_t registered_functions;
- void* (*create_process_function) ();
- void* (*kill_process_function)();
+ smx_creation_func_t *create_process_function;
+ void_f_pvoid_t* kill_process_function;
+ void_f_pvoid_t* cleanup_process_function;
} s_SIMIX_Global_t, *SIMIX_Global_t;
extern SIMIX_Global_t simix_global;
typedef struct s_smx_process_arg {
const char *name;
- smx_process_code_t code;
+ xbt_main_func_t code;
void *data;
char *hostname;
int argc;
/********************************* Mutex and Conditional ****************************/
typedef struct s_smx_mutex {
- xbt_swag_t sleeping; /* list of sleeping process */
- int using;
+
+ /* KEEP IT IN SYNC WITH src/xbt_sg_thread.c::struct s_xbt_mutex */
+ xbt_swag_t sleeping; /* list of sleeping process */
+ int using;
+ /* KEEP IT IN SYNC WITH src/xbt_sg_thread.c::struct s_xbt_mutex */
} s_smx_mutex_t;
typedef struct s_smx_cond {
- xbt_swag_t sleeping; /* list of sleeping process */
- smx_mutex_t mutex;
- xbt_fifo_t actions; /* list of actions */
+
+ /* KEEP IT IN SYNC WITH src/xbt_sg_thread.c::struct s_xbt_cond */
+ xbt_swag_t sleeping; /* list of sleeping process */
+ smx_mutex_t mutex;
+ xbt_fifo_t actions; /* list of actions */
+ /* KEEP IT IN SYNC WITH src/xbt_sg_thread.c::struct s_xbt_cond */
} s_smx_cond_t;