From: Jonathan Rouzaud-Cornabas Date: Thu, 9 Aug 2012 12:14:29 +0000 (+0200) Subject: Modify Trace to support VM X-Git-Tag: v3_9_90~569^2~19^2~8^2~8 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/5c108161f0c1d82e2ab7590344d0aa2322736019?ds=sidebyside Modify Trace to support VM --- diff --git a/org/simgrid/msg/VM.java b/org/simgrid/msg/VM.java index 3de79f9343..525ea391e8 100644 --- a/org/simgrid/msg/VM.java +++ b/org/simgrid/msg/VM.java @@ -22,14 +22,17 @@ public class VM { private long bind = 0; private int coreAmount; + + private String name; /** * @brief Create a new empty VM. * @bug it is expected that in the future, the coreAmount parameter will be used * to add extra constraints on the execution, but the argument is ignored for now. */ - public VM(Host host, int coreAmount) { + public VM(Host host, String name, int coreAmount) { this.coreAmount = coreAmount; - start(host,coreAmount); + this.name = name; + start(host,name,coreAmount); } protected void finalize() { destroy(); @@ -42,7 +45,7 @@ public class VM { * Natively implemented method starting the VM. * @param coreAmount */ - private native void start(Host host, int coreAmount); + private native void start(Host host, String name, int coreAmount); /** @brief Returns whether the given VM is currently suspended */ @@ -88,5 +91,8 @@ public class VM { * @brief Reboot the VM, restarting all the processes in it. */ public native void reboot(); - -} \ No newline at end of file + + public String getName() { + return name; + } +} diff --git a/org/simgrid/trace/Trace.java b/org/simgrid/trace/Trace.java index f43a9a2909..ede59a5747 100644 --- a/org/simgrid/trace/Trace.java +++ b/org/simgrid/trace/Trace.java @@ -298,4 +298,21 @@ public final class Trace { * @param value */ public final static native void hostVariableSet (String host, String variable, double value); + + /** + * Declare a new user variable associated to VMs. + * + * @param variable + */ + public final static native void vmVariableDeclare (String variable); + + + /** + * Set the value of a variable of a VM. + * + * @param host + * @param variable + * @param value + */ + public final static native void vmVariableSet (String vm, String variable, double value); } diff --git a/src/jmsg_vm.c b/src/jmsg_vm.c index ffa971486e..7e98a81d1e 100644 --- a/src/jmsg_vm.c +++ b/src/jmsg_vm.c @@ -28,10 +28,14 @@ Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass cls) { } } JNIEXPORT void JNICALL -Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jint jcoreamount) { +Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jstring jname, jint jcoreamount) { msg_host_t host = jhost_get_native(env, jhost); - msg_vm_t vm = MSG_vm_start(host, (int)jcoreamount); + const char *name; + name = (*env)->GetStringUTFChars(env, jname, 0); + name = xbt_strdup(name); + + msg_vm_t vm = MSG_vm_start(host, name, (int)jcoreamount); jvm_bind(env,jvm,vm); } diff --git a/src/jmsg_vm.h b/src/jmsg_vm.h index 79106fd8ba..4933969e43 100644 --- a/src/jmsg_vm.h +++ b/src/jmsg_vm.h @@ -30,7 +30,7 @@ Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass); * Signature (I)V */ JNIEXPORT void JNICALL -Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jint jcoreamount); +Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jstring jname, jint jcoreamount); /** * Class org_simgrid_msg_VM * Method destroy diff --git a/src/jtrace.c b/src/jtrace.c index df2d8780b6..b207a881e3 100644 --- a/src/jtrace.c +++ b/src/jtrace.c @@ -112,3 +112,25 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (*env)->ReleaseStringUTFChars(env, js_host, host); (*env)->ReleaseStringUTFChars(env, js_state, state); } + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare + (JNIEnv *env, jclass cls, jstring js_state) +{ + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_vm_variable_declare(state); + + (*env)->ReleaseStringUTFChars(env, js_state, state); +} + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet + (JNIEnv *env, jclass cls, jstring js_vm, jstring js_state, jdouble value) +{ + const char *vm = (*env)->GetStringUTFChars(env, js_vm, 0); + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_host_variable_set(vm, state, value); + + (*env)->ReleaseStringUTFChars(env, js_vm, vm); + (*env)->ReleaseStringUTFChars(env, js_state, state); +} diff --git a/src/jtrace.h b/src/jtrace.h index 5c435ed8a4..62d9160574 100644 --- a/src/jtrace.h +++ b/src/jtrace.h @@ -15,6 +15,15 @@ extern "C" { JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare (JNIEnv *, jclass, jstring); +/* + * Class: org_simgrid_trace_Trace + * Method: vmVariableDeclare + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare + (JNIEnv *, jclass, jstring); + + /* * Class: org_simgrid_trace_Trace * Method: hostVariableDeclareWithColor @@ -31,6 +40,15 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclareWithColor JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (JNIEnv *, jclass, jstring, jstring, jdouble); +/* + * Class: org_simgrid_trace_Trace + * Method: vmVariableSet + * Signature: (Ljava/lang/String;Ljava/lang/String;D)V + */ +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet + (JNIEnv *, jclass, jstring, jstring, jdouble); + + /* * Class: org_simgrid_trace_Trace * Method: hostVariableAdd