Skip to contentSkip to conversation

When the guest shuts down a VM, make sure that the domain gets destroyed.

PATCH New Arun Sharma 1 participant 1 message Aug 11, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 12/15 When the guest shuts down a VM, make sure that the domain gets destroyed.

When the guest shuts down a VM, make sure that the domain gets destroyed.

Device model needs to do xm destroy before it exits on guest shutdown/poweroff/halt -p.

tools/ioemu/monitor.c +2 -6
diff -r ac8cae1f2c47 -r 455dff354413 tools/ioemu/monitor.c
@@ -225,14 +225,10 @@
     }
 }
 
+extern void destroy_vmx_domain(void);
 static void do_quit(void)
 {
-    extern int domid;
-    extern FILE* logfile;
-    char destroy_cmd[20];
-    sprintf(destroy_cmd, "xm destroy %d", domid);
-    if (system(destroy_cmd) == -1)
-        fprintf(logfile, "%s failed.!\n", destroy_cmd);
+    destroy_vmx_domain();
     exit(0);
 }
 
tools/ioemu/target-i386-dm/helper2.c +11 -1
diff -r ac8cae1f2c47 -r 455dff354413 tools/ioemu/target-i386-dm/helper2.c
@@ -328,7 +328,16 @@
 	env->send_event = 1;
 }
 
-//static unsigned long tsc_per_tick = 1; /* XXX: calibrate */
+void
+destroy_vmx_domain(void)
+{
+    extern int domid;
+    extern FILE* logfile;
+    char destroy_cmd[20];
+    sprintf(destroy_cmd, "xm destroy %d", domid);
+    if (system(destroy_cmd) == -1)
+        fprintf(logfile, "%s failed.!\n", destroy_cmd);
+}
 
 int main_loop(void)
 {
@@ -396,6 +405,7 @@
 			}
 		}
 	}
+        destroy_vmx_domain();
 	return 0;
 }