break;
case QEMU_PROCESS_EVENT_PR_DISCONNECT:
case QEMU_PROCESS_EVENT_UNATTENDED_MIGRATION:
+ case QEMU_PROCESS_EVENT_RESET:
case QEMU_PROCESS_EVENT_LAST:
break;
}
QEMU_PROCESS_EVENT_GUEST_CRASHLOADED,
QEMU_PROCESS_EVENT_MEMORY_DEVICE_SIZE_CHANGE,
QEMU_PROCESS_EVENT_UNATTENDED_MIGRATION,
+ QEMU_PROCESS_EVENT_RESET,
QEMU_PROCESS_EVENT_LAST
} qemuProcessEventType;
}
+static void
+processResetEvent(virQEMUDriver *driver,
+ virDomainObj *vm)
+{
+ if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
+ return;
+
+ qemuProcessRefreshState(driver, vm, VIR_ASYNC_JOB_NONE);
+
+ virDomainObjEndJob(vm);
+}
+
+
static void qemuProcessEventHandler(void *data, void *opaque)
{
struct qemuProcessEvent *processEvent = data;
processEvent->action,
processEvent->status);
break;
+ case QEMU_PROCESS_EVENT_RESET:
+ processResetEvent(driver, vm);
+ break;
case QEMU_PROCESS_EVENT_LAST:
break;
}
qemuDomainSetFakeReboot(vm, false);
qemuDomainSaveStatus(vm);
+ qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_RESET, 0, 0, NULL);
+
unlock:
virObjectUnlock(vm);
virObjectEventStateQueue(driver->domainEventState, event);