X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d59d27482febdeebb55fcc3e116f5b9305771bb9..9072f634ac2f4bdece800197ad4ad73ec96fd1d8:/src/simix/popping_bodies.c diff --git a/src/simix/popping_bodies.c b/src/simix/popping_bodies.c index 7c4ea3b39d..0f233fe3d1 100644 --- a/src/simix/popping_bodies.c +++ b/src/simix/popping_bodies.c @@ -313,6 +313,27 @@ inline static void simcall_BODY_host_set_pstate(smx_host_t host, int pstate_inde } +inline static int simcall_BODY_host_get_pstate(smx_host_t host) { + smx_process_t self = SIMIX_process_self(); + + /* Go to that function to follow the code flow through the simcall barrier */ + if (0) SIMIX_host_get_pstate(host); + /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ + + self->simcall.call = SIMCALL_HOST_GET_PSTATE; + memset(&self->simcall.result, 0, sizeof(self->simcall.result)); + memset(self->simcall.args, 0, sizeof(self->simcall.args)); + self->simcall.args[0].dp = (void*) host; + 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); + } + return self->simcall.result.i; + } + inline static double simcall_BODY_host_get_consumed_energy(smx_host_t host) { smx_process_t self = SIMIX_process_self();