NULL, NULL) < 0)
goto error;
- virDomainObjListForEach(libxl_driver->domains, libxlAutostartDomain,
- libxl_driver);
-
virDomainObjListForEach(libxl_driver->domains, libxlDomainManagedSaveLoad,
libxl_driver);
return ret;
}
+static void
+libxlStateAutoStart(void)
+{
+ if (!libxl_driver)
+ return;
+
+ libxlDriverLock(libxl_driver);
+ virDomainObjListForEach(libxl_driver->domains, libxlAutostartDomain,
+ libxl_driver);
+ libxlDriverUnlock(libxl_driver);
+}
+
static int
libxlStateReload(void)
{
static virStateDriver libxlStateDriver = {
.name = "LIBXL",
.stateInitialize = libxlStateInitialize,
+ .stateAutoStart = libxlStateAutoStart,
.stateCleanup = libxlStateCleanup,
.stateReload = libxlStateReload,
};
NULL, NULL) < 0)
goto cleanup;
- virLXCProcessAutostartAll(lxc_driver);
-
virNWFilterRegisterCallbackDriver(&lxcCallbackDriver);
return 0;
return -1;
}
+/**
+ * lxcStateAutoStart:
+ *
+ * Function to autostart the LXC daemons
+ */
+static void lxcStateAutoStart(void)
+{
+ if (!lxc_driver)
+ return;
+
+ virLXCProcessAutostartAll(lxc_driver);
+}
+
static void lxcNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
{
virLXCDriverPtr driver = opaque;
static virStateDriver lxcStateDriver = {
.name = LXC_DRIVER_NAME,
.stateInitialize = lxcStateInitialize,
+ .stateAutoStart = lxcStateAutoStart,
.stateCleanup = lxcStateCleanup,
.stateReload = lxcStateReload,
};
networkFindActiveConfigs(driverState);
networkReloadFirewallRules(driverState);
networkRefreshDaemons(driverState);
- networkAutostartConfigs(driverState);
networkDriverUnlock(driverState);
goto cleanup;
}
+/**
+ * networkStateAutoStart:
+ *
+ * Function to AutoStart the bridge configs
+ */
+static void
+networkStateAutoStart(void)
+{
+ if (!driverState)
+ return;
+
+ networkDriverLock(driverState);
+ networkAutostartConfigs(driverState);
+ networkDriverUnlock(driverState);
+}
+
/**
* networkStateReload:
*
static virStateDriver networkStateDriver = {
.name = "Network",
.stateInitialize = networkStateInitialize,
+ .stateAutoStart = networkStateAutoStart,
.stateCleanup = networkStateCleanup,
.stateReload = networkStateReload,
};
if (!qemu_driver->workerPool)
goto error;
- qemuAutostartDomains(qemu_driver);
-
if (conn)
virConnectClose(conn);
return -1;
}
+/**
+ * qemuStateAutoStart:
+ *
+ * Function to auto start the QEmu daemons
+ */
+static void
+qemuStateAutoStart(void)
+{
+ if (!qemu_driver)
+ return;
+
+ qemuAutostartDomains(qemu_driver);
+}
+
static void qemuNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
{
virQEMUDriverPtr driver = opaque;
static virStateDriver qemuStateDriver = {
.name = "QEMU",
.stateInitialize = qemuStateInitialize,
+ .stateAutoStart = qemuStateAutoStart,
.stateCleanup = qemuStateCleanup,
.stateReload = qemuStateReload,
.stateStop = qemuStateStop,
driverState->configDir,
driverState->autostartDir) < 0)
goto error;
- storageDriverAutostart(driverState);
storageDriverUnlock(driverState);
return 0;
return -1;
}
+/**
+ * storageStateAutoStart:
+ *
+ * Function to auto start the storage driver
+ */
+static void
+storageStateAutoStart(void)
+{
+ if (!driverState)
+ return;
+
+ storageDriverLock(driverState);
+ storageDriverAutostart(driverState);
+ storageDriverUnlock(driverState);
+}
+
/**
* storageStateReload:
*
static virStateDriver stateDriver = {
.name = "Storage",
.stateInitialize = storageStateInitialize,
+ .stateAutoStart = storageStateAutoStart,
.stateCleanup = storageStateCleanup,
.stateReload = storageStateReload,
};
umlDriverUnlock(uml_driver);
- umlAutostartConfigs(uml_driver);
-
VIR_FREE(userdir);
virNWFilterRegisterCallbackDriver(¨CallbackDriver);
return -1;
}
+/**
+ * umlStateAutoStart:
+ *
+ * Function to autostart the Uml daemons
+ */
+static void
+umlStateAutoStart(void)
+{
+ if (!uml_driver)
+ return;
+
+ umlAutostartConfigs(uml_driver);
+}
+
static void umlNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
{
struct uml_driver *driver = opaque;
static virStateDriver umlStateDriver = {
.name = "UML",
.stateInitialize = umlStateInitialize,
+ .stateAutoStart = umlStateAutoStart,
.stateCleanup = umlStateCleanup,
.stateReload = umlStateReload,
};