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.
Signed-off-by: Edwin Zhai <edwin.zhai@xxxxxxxxx>
Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx>
diff -r ac8cae1f2c47 -r 455dff354413 tools/ioemu/monitor.c
--- a/tools/ioemu/monitor.c Tue Aug 9 19:06:45 2005
+++ b/tools/ioemu/monitor.c Tue Aug 9 19:12:44 2005
@@ -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);
}
diff -r ac8cae1f2c47 -r 455dff354413 tools/ioemu/target-i386-dm/helper2.c
--- a/tools/ioemu/target-i386-dm/helper2.c Tue Aug 9 19:06:45 2005
+++ b/tools/ioemu/target-i386-dm/helper2.c Tue Aug 9 19:12:44 2005
@@ -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;
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|