*/
#include "smx_private.h"
-#include "mc/mc_interface.h"
+#include "mc/mc_forward.h"
#include "xbt/ex.h"
inline static smx_host_t simcall_BODY_host_get_by_name(const char* name) {
return self->simcall.result.i;
}
-inline static void simcall_BODY_host_set_power_peak_at(smx_host_t host, int pstate_index) {
+inline static double simcall_BODY_host_get_wattmin_at(smx_host_t host, int pstate_index) {
smx_process_t self = SIMIX_process_self();
/* Go to that function to follow the code flow through the simcall barrier */
- if (0) SIMIX_host_set_power_peak_at(host, pstate_index);
+ if (0) SIMIX_host_get_wattmin_at(host, pstate_index);
/* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
- self->simcall.call = SIMCALL_HOST_SET_POWER_PEAK_AT;
+ self->simcall.call = SIMCALL_HOST_GET_WATTMIN_AT;
+ 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;
+ self->simcall.args[1].i = (int) pstate_index;
+ 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.d;
+ }
+
+inline static double simcall_BODY_host_get_wattmax_at(smx_host_t host, int pstate_index) {
+ 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_wattmax_at(host, pstate_index);
+ /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
+
+ self->simcall.call = SIMCALL_HOST_GET_WATTMAX_AT;
+ 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;
+ self->simcall.args[1].i = (int) pstate_index;
+ 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.d;
+ }
+
+inline static void simcall_BODY_host_set_pstate(smx_host_t host, int pstate_index) {
+ smx_process_t self = SIMIX_process_self();
+
+ /* Go to that function to follow the code flow through the simcall barrier */
+ if (0) SIMIX_host_set_pstate(host, pstate_index);
+ /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
+
+ self->simcall.call = SIMCALL_HOST_SET_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;
}
+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();