#include "popping_enum.h" /* Definition of e_smx_simcall_t, with one value per simcall */
typedef int (*simix_match_func_t)(void*, void*, simgrid::kernel::activity::CommImpl*);
-typedef void (*simix_copy_data_func_t)(smx_activity_t, void*, size_t);
+typedef void (*simix_copy_data_func_t)(simgrid::kernel::activity::CommImpl*, void*, size_t);
typedef void (*simix_clean_func_t)(void*);
typedef void (*FPtr)(void); // Hide the ugliness
/* Pack all possible scalar types in an union */
union u_smx_scalar {
+ bool b;
char c;
short s;
int i;
inline T unmarshal_raw(type<T>, u_smx_scalar const& simcall) \
{ /* Exactly same as unmarshal. It differs only for intrusive_ptr */ return simcall.field; }
+SIMIX_MARSHAL(bool, b);
SIMIX_MARSHAL(char, c);
SIMIX_MARSHAL(short, s);
SIMIX_MARSHAL(int, i);