/* Process handling */
XBT_PUBLIC(void) simcall_process_cleanup(smx_process_t process);
-XBT_PUBLIC(void) simcall_process_change_host(smx_process_t process,
- sg_host_t dest);
XBT_PUBLIC(void) simcall_process_suspend(smx_process_t process);
XBT_PUBLIC(void) simcall_process_resume(smx_process_t process);
XBT_PUBLIC(int) simcall_process_count(void);
XBT_PUBLIC(void *) simcall_process_get_data(smx_process_t process);
XBT_PUBLIC(void) simcall_process_set_data(smx_process_t process, void *data);
+XBT_PUBLIC(void) simcall_process_set_host(smx_process_t process, sg_host_t dest);
XBT_PUBLIC(sg_host_t) simcall_process_get_host(smx_process_t process);
XBT_PUBLIC(const char *) simcall_process_get_name(smx_process_t process);
XBT_PUBLIC(int) simcall_process_get_PID(smx_process_t process);
simdata->m_host = host;
msg_host_t now = simdata->m_host;
TRACE_msg_process_change_host(process, now, host);
- simcall_process_change_host(process, host);
+ simcall_process_set_host(process, host);
return MSG_OK;
}
* \param process the process to migrate
* \param dest name of the new host
*/
-void simcall_process_change_host(smx_process_t process, sg_host_t dest)
+void simcall_process_set_host(smx_process_t process, sg_host_t dest)
{
- simcall_BODY_process_change_host(process, dest);
+ simcall_BODY_process_set_host(process, dest);
}
void simcall_process_join(smx_process_t process, double timeout)
simcall->args[0].dp = arg;
}
-static inline smx_process_t simcall_process_change_host__get__process(smx_simcall_t simcall) {
- return (smx_process_t) simcall->args[0].dp;
-}
-static inline void simcall_process_change_host__set__process(smx_simcall_t simcall, void* arg) {
- simcall->args[0].dp = arg;
-}
-static inline sg_host_t simcall_process_change_host__get__dest(smx_simcall_t simcall) {
- return (sg_host_t) simcall->args[1].dp;
-}
-static inline void simcall_process_change_host__set__dest(smx_simcall_t simcall, void* arg) {
- simcall->args[1].dp = arg;
-}
-
static inline smx_process_t simcall_process_suspend__get__process(smx_simcall_t simcall) {
return (smx_process_t) simcall->args[0].dp;
}
simcall->args[1].dp = arg;
}
+static inline smx_process_t simcall_process_set_host__get__process(smx_simcall_t simcall) {
+ return (smx_process_t) simcall->args[0].dp;
+}
+static inline void simcall_process_set_host__set__process(smx_simcall_t simcall, void* arg) {
+ simcall->args[0].dp = arg;
+}
+static inline sg_host_t simcall_process_set_host__get__dest(smx_simcall_t simcall) {
+ return (sg_host_t) simcall->args[1].dp;
+}
+static inline void simcall_process_set_host__set__dest(smx_simcall_t simcall, void* arg) {
+ simcall->args[1].dp = arg;
+}
+
static inline smx_process_t simcall_process_get_host__get__process(smx_simcall_t simcall) {
return (smx_process_t) simcall->args[0].dp;
}
void* simcall_HANDLER_process_create(smx_simcall_t simcall, const char* name, xbt_main_func_t code, void* data, const char* hostname, double kill_time, int argc, char** argv, xbt_dict_t properties, int auto_restart);
void simcall_HANDLER_process_kill(smx_simcall_t simcall, smx_process_t process);
void simcall_HANDLER_process_killall(smx_simcall_t simcall, int reset_pid);
-void simcall_HANDLER_process_change_host(smx_simcall_t simcall, smx_process_t process, sg_host_t dest);
void simcall_HANDLER_process_suspend(smx_simcall_t simcall, smx_process_t process);
void simcall_HANDLER_process_resume(smx_simcall_t simcall, smx_process_t process);
+void simcall_HANDLER_process_set_host(smx_simcall_t simcall, smx_process_t process, sg_host_t dest);
void simcall_HANDLER_process_join(smx_simcall_t simcall, smx_process_t process, double timeout);
void simcall_HANDLER_process_sleep(smx_simcall_t simcall, double duration);
smx_synchro_t simcall_HANDLER_process_execute(smx_simcall_t simcall, const char* name, double flops_amount, double priority, double bound, unsigned long affinity_mask);
}
-inline static void simcall_BODY_process_change_host(smx_process_t process, sg_host_t dest) {
- smx_process_t self = SIMIX_process_self();
-
- /* Go to that function to follow the code flow through the simcall barrier */
- if (0) simcall_HANDLER_process_change_host(&self->simcall, process, dest);
- /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
-
- self->simcall.call = SIMCALL_PROCESS_CHANGE_HOST;
- memset(&self->simcall.result, 0, sizeof(self->simcall.result));
- memset(self->simcall.args, 0, sizeof(self->simcall.args));
- self->simcall.args[0].dp = (void*) process;
- self->simcall.args[1].dp = (void*) dest;
- if (self != simix_global->maestro_process) {
- XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
- SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);
- SIMIX_process_yield(self);
- } else {
- SIMIX_simcall_handle(&self->simcall, 0);
- }
-
- }
-
inline static void simcall_BODY_process_suspend(smx_process_t process) {
smx_process_t self = SIMIX_process_self();
}
+inline static void simcall_BODY_process_set_host(smx_process_t process, sg_host_t dest) {
+ smx_process_t self = SIMIX_process_self();
+
+ /* Go to that function to follow the code flow through the simcall barrier */
+ if (0) simcall_HANDLER_process_set_host(&self->simcall, process, dest);
+ /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
+
+ self->simcall.call = SIMCALL_PROCESS_SET_HOST;
+ memset(&self->simcall.result, 0, sizeof(self->simcall.result));
+ memset(self->simcall.args, 0, sizeof(self->simcall.args));
+ self->simcall.args[0].dp = (void*) process;
+ self->simcall.args[1].dp = (void*) dest;
+ if (self != simix_global->maestro_process) {
+ XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
+ SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);
+ SIMIX_process_yield(self);
+ } else {
+ SIMIX_simcall_handle(&self->simcall, 0);
+ }
+
+ }
+
inline static sg_host_t simcall_BODY_process_get_host(smx_process_t process) {
smx_process_t self = SIMIX_process_self();
SIMCALL_PROCESS_KILL,
SIMCALL_PROCESS_KILLALL,
SIMCALL_PROCESS_CLEANUP,
- SIMCALL_PROCESS_CHANGE_HOST,
SIMCALL_PROCESS_SUSPEND,
SIMCALL_PROCESS_RESUME,
SIMCALL_PROCESS_COUNT,
SIMCALL_PROCESS_GET_PPID,
SIMCALL_PROCESS_GET_DATA,
SIMCALL_PROCESS_SET_DATA,
+ SIMCALL_PROCESS_SET_HOST,
SIMCALL_PROCESS_GET_HOST,
SIMCALL_PROCESS_GET_NAME,
SIMCALL_PROCESS_IS_SUSPENDED,
[SIMCALL_PROCESS_KILL] = "SIMCALL_PROCESS_KILL",
[SIMCALL_PROCESS_KILLALL] = "SIMCALL_PROCESS_KILLALL",
[SIMCALL_PROCESS_CLEANUP] = "SIMCALL_PROCESS_CLEANUP",
- [SIMCALL_PROCESS_CHANGE_HOST] = "SIMCALL_PROCESS_CHANGE_HOST",
[SIMCALL_PROCESS_SUSPEND] = "SIMCALL_PROCESS_SUSPEND",
[SIMCALL_PROCESS_RESUME] = "SIMCALL_PROCESS_RESUME",
[SIMCALL_PROCESS_COUNT] = "SIMCALL_PROCESS_COUNT",
[SIMCALL_PROCESS_GET_PPID] = "SIMCALL_PROCESS_GET_PPID",
[SIMCALL_PROCESS_GET_DATA] = "SIMCALL_PROCESS_GET_DATA",
[SIMCALL_PROCESS_SET_DATA] = "SIMCALL_PROCESS_SET_DATA",
+ [SIMCALL_PROCESS_SET_HOST] = "SIMCALL_PROCESS_SET_HOST",
[SIMCALL_PROCESS_GET_HOST] = "SIMCALL_PROCESS_GET_HOST",
[SIMCALL_PROCESS_GET_NAME] = "SIMCALL_PROCESS_GET_NAME",
[SIMCALL_PROCESS_IS_SUSPENDED] = "SIMCALL_PROCESS_IS_SUSPENDED",
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_PROCESS_CHANGE_HOST:
- simcall_HANDLER_process_change_host(simcall , (smx_process_t) simcall->args[0].dp, (sg_host_t) simcall->args[1].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_PROCESS_SUSPEND:
simcall_HANDLER_process_suspend(simcall , (smx_process_t) simcall->args[0].dp);
break;
SIMIX_simcall_answer(simcall);
break;
+case SIMCALL_PROCESS_SET_HOST:
+ simcall_HANDLER_process_set_host(simcall , (smx_process_t) simcall->args[0].dp, (sg_host_t) simcall->args[1].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
case SIMCALL_PROCESS_GET_HOST:
simcall->result.dp = SIMIX_process_get_host((smx_process_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
Proc H process_kill (void) (process, void*, smx_process_t)
Proc H process_killall (void) (reset_pid, int)
Proc - process_cleanup (void) (process, void*, smx_process_t)
-Proc H process_change_host (void) (process, void*, smx_process_t) (dest, void*, sg_host_t)
Blck H process_suspend (void) (process, void*, smx_process_t)
Proc H process_resume (void) (process, void*, smx_process_t)
Func - process_count (int)
Func - process_get_PPID (int) (process, void*, smx_process_t)
Func - process_get_data (void*) (process, void*, smx_process_t)
Proc - process_set_data (void) (process, void*, smx_process_t) (data, void*)
+Proc H process_set_host (void) (process, void*, smx_process_t) (dest, void*, sg_host_t)
Func - process_get_host (void*, sg_host_t) (process, void*, smx_process_t)
Func - process_get_name (const char*) (process, void*, smx_process_t)
Func - process_is_suspended (int) (process, void*, smx_process_t)
SIMIX_process_empty_trash();
}
-void simcall_HANDLER_process_change_host(smx_simcall_t simcall, smx_process_t process,
- sg_host_t dest)
+void simcall_HANDLER_process_set_host(smx_simcall_t simcall, smx_process_t process, sg_host_t dest)
{
process->new_host = dest;
}