+
+/* User create and kill process, the function must accept the folling parameters:
+ * const char *name: a name for the object. It is for user-level information and can be NULL
+ * xbt_main_func_t code: is a function describing the behavior of the agent
+ * void *data: data a pointer to any data one may want to attach to the new object.
+ * smx_host_t host: the location where the new agent is executed
+ * int argc, char **argv: parameters passed to code
+ *
+ * */
+typedef void *(*smx_creation_func_t)(/*name*/ const char *,
+ /*code*/ xbt_main_func_t,
+ /*userdata*/ void *,
+ /*hostname*/ char *,
+ /* argc */ int,
+ /* argv */ char **,
+ /* props */ xbt_dict_t);
+XBT_PUBLIC(void) SIMIX_function_register_process_create(smx_creation_func_t function);
+XBT_PUBLIC(void) SIMIX_function_register_process_kill(void_f_pvoid_t function);
+XBT_PUBLIC(void) SIMIX_function_register_process_cleanup(void_f_pvoid_t function);
+