Support rebooting VMX domains
PATCH 7/15 Support rebooting VMX domains
Support rebooting VMX domains
Signed-off-by Ke Yu <[email protected]>
Signed-off-by Arun Sharma <[email protected]>
tools/ioemu/target-i386-dm/helper2.c +20 -1
@@ -55,6 +55,7 @@#include "vl.h" shared_iopage_t *shared_page =NULL ; +extern int reset_requested;CPUX86State *cpu_86_init (void ) {
@@ -349,6 +350,10 @@if (shutdown_requested) {break ; } +if (reset_requested){ +qemu_system_reset (); + reset_requested =0 ; + } }/* Wait up to one seconds. */
@@ -394,13 +399,26 @@return 0 ; } +static void +qemu_vmx_reset (void *unused) +{ +char cmd[255 ]; +extern int domid; + +/* pause domain first, to avoid repeated reboot request*/ +xc_domain_pause (xc_handle, domid); + +sprintf (cmd,"xm shutdown -R %d" , domid); +system (cmd); +} +CPUState *cpu_init () {CPUX86State *env;cpu_exec_init (); - +qemu_register_reset (qemu_vmx_reset,NULL ); env =malloc (sizeof (CPUX86State));if (!env)return NULL ;
@@ -427,3 +445,4 @@return env; } +
tools/ioemu/vl.c +1 -1
@@ -2030,7 +2030,7 @@ } QEMUResetEntry;static QEMUResetEntry *first_reset_entry; -static int reset_requested; +int reset_requested;int shutdown_requested;void qemu_register_reset (QEMUResetHandler *func,void *opaque)
tools/ioemu/vl.h +1 -0
@@ -107,6 +107,7 @@void qemu_register_reset (QEMUResetHandler *func,void *opaque);void qemu_system_reset_request (void ); +void qemu_system_reset (void );void qemu_system_shutdown_request (void );void main_loop_wait (int timeout);