clean:
VIR_DEBUG("Failed to activate a mandatory sub-driver");
for (i = 0 ; i < XEN_UNIFIED_NR_DRIVERS ; i++)
- if (priv->opened[i]) drivers[i]->xenClose(conn);
+ if (priv->opened[i])
+ drivers[i]->xenClose(conn);
virMutexDestroy(&priv->lock);
VIR_FREE(priv);
conn->privateData = NULL;
virDomainEventCallbackListFree(priv->domainEventCallbacks);
for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] && drivers[i]->xenClose)
- (void) drivers[i]->xenClose (conn);
+ if (priv->opened[i])
+ drivers[i]->xenClose(conn);
virMutexDestroy(&priv->lock);
VIR_FREE(conn->privateData);
xenUnifiedNodeGetInfo (virConnectPtr conn, virNodeInfoPtr info)
{
GET_PRIVATE(conn);
- int i;
-
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] &&
- drivers[i]->xenNodeGetInfo &&
- drivers[i]->xenNodeGetInfo (conn, info) == 0)
- return 0;
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonNodeGetInfo(conn, info);
return -1;
}
const char *xmlDesc, unsigned int flags)
{
GET_PRIVATE(conn);
- int i;
- virDomainPtr ret;
-
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] && drivers[i]->xenDomainCreateXML) {
- ret = drivers[i]->xenDomainCreateXML (conn, xmlDesc, flags);
- if (ret) return ret;
- }
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonCreateXML(conn, xmlDesc, flags);
return NULL;
}
unsigned int flags)
{
GET_PRIVATE(dom->conn);
- int i;
virCheckFlags(0, -1);
if (dxml) {
return -1;
}
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] &&
- drivers[i]->xenDomainSave &&
- drivers[i]->xenDomainSave (dom, to) == 0)
- return 0;
-
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonDomainSave(dom, to);
return -1;
}
const char *dxml, unsigned int flags)
{
GET_PRIVATE(conn);
- int i;
virCheckFlags(0, -1);
if (dxml) {
return -1;
}
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] &&
- drivers[i]->xenDomainRestore &&
- drivers[i]->xenDomainRestore (conn, from) == 0)
- return 0;
-
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonDomainRestore(conn, from);
return -1;
}
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, unsigned int flags)
{
GET_PRIVATE(dom->conn);
- int i;
-
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] &&
- drivers[i]->xenDomainCoreDump &&
- drivers[i]->xenDomainCoreDump (dom, to, flags) == 0)
- return 0;
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonDomainCoreDump(dom, to, flags);
return -1;
}
unsigned int flags)
{
GET_PRIVATE(dom->conn);
- int i;
-
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] && drivers[i]->xenDomainUpdateDeviceFlags &&
- drivers[i]->xenDomainUpdateDeviceFlags(dom, xml, flags) == 0)
- return 0;
+ if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
+ return xenDaemonUpdateDeviceFlags(dom, xml, flags);
return -1;
}
int xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags);
int xenDaemonDomainDestroyFlags(virDomainPtr domain, unsigned int flags);
int xenDaemonDomainSave(virDomainPtr domain, const char *filename);
+int xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename,
+ unsigned int flags);
int xenDaemonDomainRestore(virConnectPtr conn, const char *filename);
int xenDaemonDomainSetMemory(virDomainPtr domain, unsigned long memory);
int xenDaemonDomainSetMaxMemory(virDomainPtr domain, unsigned long memory);
int maxinfo,
unsigned char *cpumaps,
int maplen);
+int xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml,
+ unsigned int flags);
int xenDaemonDomainGetAutostart (virDomainPtr dom,
int *autostart);
int xenDaemonDomainSetAutostart (virDomainPtr domain,
extern struct xenUnifiedDriver xenDaemonDriver;
int xenDaemonInit (void);
+virDomainPtr xenDaemonCreateXML(virConnectPtr conn, const char *xmlDesc,
+ unsigned int flags);
virDomainPtr xenDaemonLookupByID(virConnectPtr conn, int id);
virDomainPtr xenDaemonLookupByUUID(virConnectPtr conn, const unsigned char *uuid);
virDomainPtr xenDaemonLookupByName(virConnectPtr conn, const char *domname);