summaryrefslogtreecommitdiffstats
path: root/sys/amd64/vmm/vmm_dev.c
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2014-06-07 21:36:52 +0000
committerneel <neel@FreeBSD.org>2014-06-07 21:36:52 +0000
commit80a67d54c42b7f1e683d37864b9634e252d32ef1 (patch)
tree87873f56f85dfd15e0b36f4a2e884ae8dbcb74b3 /sys/amd64/vmm/vmm_dev.c
parent39548e640ff6f29c6f53200627311914539728c3 (diff)
downloadFreeBSD-src-80a67d54c42b7f1e683d37864b9634e252d32ef1.zip
FreeBSD-src-80a67d54c42b7f1e683d37864b9634e252d32ef1.tar.gz
Add ioctl(VM_REINIT) to reinitialize the virtual machine state maintained
by vmm.ko. This allows the virtual machine to be restarted without having to destroy it first. Reviewed by: grehan
Diffstat (limited to 'sys/amd64/vmm/vmm_dev.c')
-rw-r--r--sys/amd64/vmm/vmm_dev.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/vmm/vmm_dev.c b/sys/amd64/vmm/vmm_dev.c
index 824389f..f3e31a3 100644
--- a/sys/amd64/vmm/vmm_dev.c
+++ b/sys/amd64/vmm/vmm_dev.c
@@ -220,6 +220,7 @@ vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t data, int fflag,
case VM_BIND_PPTDEV:
case VM_UNBIND_PPTDEV:
case VM_MAP_MEMORY:
+ case VM_REINIT:
/*
* ioctls that operate on the entire virtual machine must
* prevent all vcpus from running.
@@ -253,6 +254,9 @@ vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t data, int fflag,
vmsuspend = (struct vm_suspend *)data;
error = vm_suspend(sc->vm, vmsuspend->how);
break;
+ case VM_REINIT:
+ error = vm_reinit(sc->vm);
+ break;
case VM_STAT_DESC: {
statdesc = (struct vm_stat_desc *)data;
error = vmm_stat_desc_copy(statdesc->index,
OpenPOWER on IntegriCloud