+ public native int isSuspended();
+
+ /** Returns whether the given VM is currently saving
+ */
+ public native int isSaving();
+
+ /** Returns whether the given VM is currently saved
+ */
+ public native int isSaved();
+
+ /** Returns whether the given VM is currently restoring its state
+ */
+ public native boolean isRestoring();
+
+ /**
+ * Natively implemented method create the VM.
+ * @param nCore number of core
+ * @param ramSize size of the RAM that should be allocated (in MB)
+ * @param netCap (not used for the moment)
+ * @param diskPath (not used for the moment)
+ * @param diskSize (not used for the moment)
+ * @param migNetSpeed (network bandwith allocated for migrations in MB/s, if you don't know put zero ;))
+ * @param dpIntensity (dirty page intensity, a percentage of migNetSpeed [0-100], if you don't know put zero ;))
+ */
+ private native void create(Host host, String name, int nCore, int ramSize,
+ int netCap, String diskPath, int diskSize, int migNetSpeed, int dpIntensity);
+
+
+ /**
+ * Set a CPU bound for a given VM.
+ * @param bound in flops/s
+ */
+ public native void setBound(double bound);
+
+ /**
+ * start the VM
+ */
+ public native void start();
+
+
+ /**
+ * Immediately kills all processes within the given VM. Any memory that they allocated will be leaked.
+ * No extra delay occurs. If you want to simulate this too, you want to use a MSG_process_sleep() or something
+ */
+ public native void shutdown();
+
+ /**
+ * Invoke native migration routine
+ */
+ public native void internalmig(Host destination) throws Exception; // TODO add throws DoubleMigrationException (i.e. when you call migrate on a VM that is already migrating);
+
+
+
+ /** Change the host on which all processes are running
+ * (pre-copy is implemented)