SG_BEGIN_DECL()
/********************************* Simcalls *********************************/
+XBT_PUBLIC(const char*) simcall_names[]; /* Name of each simcall */
-/* we want to build the e_smx_simcall_t enumeration, the table of the
- * corresponding simcalls string names, and the simcall handlers table
- * automatically, using macros.
- * To add a new simcall follow the following syntax:
- *
- * */
-
-/**
- * \brief All possible simcalls.
- */
-typedef enum {
-SIMCALL_NONE,
-#include "simcalls_generated_enum.h"
-SIMCALL_NEW_API_INIT,
-NUM_SIMCALLS
-} e_smx_simcall_t;
+#include "smx_popping_enum.h" /* Definition of e_smx_simcall_t, with one value per simcall */
typedef int (*simix_match_func_t)(void *, void *, smx_action_t);
typedef void (*simix_copy_data_func_t)(smx_action_t, void*, size_t);
#ifdef HAVE_MC
int mc_value;
#endif
- union u_smx_scalar args[10];
+ union u_smx_scalar args[11];
union u_smx_scalar result;
- //FIXME: union u_smx_scalar retval;
- union {
- struct {
- const char* param1;
- double param2;
- int result;
- } new_api;
-
- };
} s_smx_simcall_t, *smx_simcall_t;
#if HAVE_MC
#define SIMCALL_GET_MC_VALUE(simcall) 0
#endif
-#include "simcalls_generated_res_getter_setter.h"
-#include "simcalls_generated_args_getter_setter.h"
+#include "smx_popping_accessors.h"
/******************************** General *************************************/
-void SIMIX_simcall_push(smx_process_t self);
void SIMIX_simcall_answer(smx_simcall_t);
-void SIMIX_simcall_pre(smx_simcall_t, int);
-void SIMIX_simcall_post(smx_action_t);
-smx_simcall_t SIMIX_simcall_mine(void);
+void SIMIX_simcall_enter(smx_simcall_t, int);
+void SIMIX_simcall_exit(smx_action_t);
const char *SIMIX_simcall_name(e_smx_simcall_t kind);
-//TOFIX put it in a better place
+//FIXME put it in a better place
xbt_dict_t SIMIX_pre_asr_get_properties(smx_simcall_t simcall, const char *name);
-/*************************** New simcall interface ****************************/
-
-typedef smx_action_t (*simcall_handler_t)(u_smx_scalar_t *);
-
-extern const char *simcall_types[];
-extern simcall_handler_t simcall_table[];
-
SG_END_DECL()
#endif