mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Simplify the Xen domain get info/state driver methods
Make the xenUnifiedDomainGetInfo and xenUnifiedDomainGetState drivers call the correct sub-driver APIs directly. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
7a8029582f
commit
b5961c53d9
@ -84,7 +84,6 @@ xenUnifiedDomainGetVcpus(virDomainPtr dom,
|
|||||||
static struct xenUnifiedDriver const * const drivers[XEN_UNIFIED_NR_DRIVERS] = {
|
static struct xenUnifiedDriver const * const drivers[XEN_UNIFIED_NR_DRIVERS] = {
|
||||||
[XEN_UNIFIED_HYPERVISOR_OFFSET] = &xenHypervisorDriver,
|
[XEN_UNIFIED_HYPERVISOR_OFFSET] = &xenHypervisorDriver,
|
||||||
[XEN_UNIFIED_XEND_OFFSET] = &xenDaemonDriver,
|
[XEN_UNIFIED_XEND_OFFSET] = &xenDaemonDriver,
|
||||||
[XEN_UNIFIED_XS_OFFSET] = &xenStoreDriver,
|
|
||||||
[XEN_UNIFIED_XM_OFFSET] = &xenXMDriver,
|
[XEN_UNIFIED_XM_OFFSET] = &xenXMDriver,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -853,15 +852,15 @@ static int
|
|||||||
xenUnifiedDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
|
xenUnifiedDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
|
if (dom->id < 0) {
|
||||||
if (priv->opened[i] &&
|
if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
||||||
drivers[i]->xenDomainGetInfo &&
|
return xenXMDomainGetInfo(dom, info);
|
||||||
drivers[i]->xenDomainGetInfo(dom, info) == 0)
|
else
|
||||||
return 0;
|
return xenDaemonDomainGetInfo(dom, info);
|
||||||
|
} else {
|
||||||
return -1;
|
return xenHypervisorGetDomainInfo(dom, info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -871,38 +870,17 @@ xenUnifiedDomainGetState(virDomainPtr dom,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
||||||
int ret;
|
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
/* trying drivers in the same order as GetInfo for consistent results:
|
if (dom->id < 0) {
|
||||||
* hypervisor, xend, xs, and xm */
|
if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
||||||
|
return xenXMDomainGetState(dom, state, reason);
|
||||||
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET]) {
|
else
|
||||||
ret = xenHypervisorGetDomainState(dom, state, reason, flags);
|
return xenDaemonDomainGetState(dom, state, reason);
|
||||||
if (ret >= 0)
|
} else {
|
||||||
return ret;
|
return xenHypervisorGetDomainState(dom, state, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) {
|
|
||||||
ret = xenDaemonDomainGetState(dom, state, reason, flags);
|
|
||||||
if (ret >= 0)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_XS_OFFSET]) {
|
|
||||||
ret = xenStoreDomainGetState(dom, state, reason, flags);
|
|
||||||
if (ret >= 0)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_XM_OFFSET]) {
|
|
||||||
ret = xenXMDomainGetState(dom, state, reason, flags);
|
|
||||||
if (ret >= 0)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -93,7 +93,6 @@ extern int xenRegister (void);
|
|||||||
* structure with direct calls in xen_unified.c.
|
* structure with direct calls in xen_unified.c.
|
||||||
*/
|
*/
|
||||||
struct xenUnifiedDriver {
|
struct xenUnifiedDriver {
|
||||||
virDrvDomainGetInfo xenDomainGetInfo;
|
|
||||||
virDrvDomainPinVcpu xenDomainPinVcpu;
|
virDrvDomainPinVcpu xenDomainPinVcpu;
|
||||||
virDrvDomainGetVcpus xenDomainGetVcpus;
|
virDrvDomainGetVcpus xenDomainGetVcpus;
|
||||||
virDrvConnectListDefinedDomains xenListDefinedDomains;
|
virDrvConnectListDefinedDomains xenListDefinedDomains;
|
||||||
|
@ -871,7 +871,6 @@ typedef struct xen_op_v2_dom xen_op_v2_dom;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct xenUnifiedDriver xenHypervisorDriver = {
|
struct xenUnifiedDriver xenHypervisorDriver = {
|
||||||
.xenDomainGetInfo = xenHypervisorGetDomainInfo,
|
|
||||||
.xenDomainPinVcpu = xenHypervisorPinVcpu,
|
.xenDomainPinVcpu = xenHypervisorPinVcpu,
|
||||||
.xenDomainGetVcpus = xenHypervisorGetVcpus,
|
.xenDomainGetVcpus = xenHypervisorGetVcpus,
|
||||||
.xenDomainGetSchedulerType = xenHypervisorGetSchedulerType,
|
.xenDomainGetSchedulerType = xenHypervisorGetSchedulerType,
|
||||||
@ -2880,11 +2879,7 @@ xenHypervisorGetDomInfo(virConnectPtr conn, int id, virDomainInfoPtr info)
|
|||||||
int
|
int
|
||||||
xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
||||||
{
|
{
|
||||||
if (domain->id < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return xenHypervisorGetDomInfo(domain->conn, domain->id, info);
|
return xenHypervisorGetDomInfo(domain->conn, domain->id, info);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2892,7 +2887,6 @@ xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
* @domain: pointer to the domain block
|
* @domain: pointer to the domain block
|
||||||
* @state: returned state of the domain
|
* @state: returned state of the domain
|
||||||
* @reason: returned reason for the state
|
* @reason: returned reason for the state
|
||||||
* @flags: additional flags, 0 for now
|
|
||||||
*
|
*
|
||||||
* Do a hypervisor call to get the related set of domain information.
|
* Do a hypervisor call to get the related set of domain information.
|
||||||
*
|
*
|
||||||
@ -2901,16 +2895,10 @@ xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
int
|
int
|
||||||
xenHypervisorGetDomainState(virDomainPtr domain,
|
xenHypervisorGetDomainState(virDomainPtr domain,
|
||||||
int *state,
|
int *state,
|
||||||
int *reason,
|
int *reason)
|
||||||
unsigned int flags)
|
|
||||||
{
|
{
|
||||||
virDomainInfo info;
|
virDomainInfo info;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
|
||||||
|
|
||||||
if (domain->id < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (xenHypervisorGetDomInfo(domain->conn, domain->id, &info) < 0)
|
if (xenHypervisorGetDomInfo(domain->conn, domain->id, &info) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -76,8 +76,7 @@ int xenHypervisorGetDomainInfo (virDomainPtr domain,
|
|||||||
ATTRIBUTE_NONNULL (1);
|
ATTRIBUTE_NONNULL (1);
|
||||||
int xenHypervisorGetDomainState (virDomainPtr domain,
|
int xenHypervisorGetDomainState (virDomainPtr domain,
|
||||||
int *state,
|
int *state,
|
||||||
int *reason,
|
int *reason)
|
||||||
unsigned int flags)
|
|
||||||
ATTRIBUTE_NONNULL (1);
|
ATTRIBUTE_NONNULL (1);
|
||||||
int xenHypervisorGetDomInfo (virConnectPtr conn,
|
int xenHypervisorGetDomInfo (virConnectPtr conn,
|
||||||
int id,
|
int id,
|
||||||
|
@ -1648,10 +1648,6 @@ xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
{
|
{
|
||||||
struct sexpr *root;
|
struct sexpr *root;
|
||||||
int ret;
|
int ret;
|
||||||
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
|
||||||
|
|
||||||
if (domain->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name);
|
root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name);
|
||||||
if (root == NULL)
|
if (root == NULL)
|
||||||
@ -1668,7 +1664,6 @@ xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
* @domain: a domain object
|
* @domain: a domain object
|
||||||
* @state: returned domain's state
|
* @state: returned domain's state
|
||||||
* @reason: returned reason for the state
|
* @reason: returned reason for the state
|
||||||
* @flags: additional flags, 0 for now
|
|
||||||
*
|
*
|
||||||
* This method looks up domain state and reason.
|
* This method looks up domain state and reason.
|
||||||
*
|
*
|
||||||
@ -1677,17 +1672,10 @@ xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
int
|
int
|
||||||
xenDaemonDomainGetState(virDomainPtr domain,
|
xenDaemonDomainGetState(virDomainPtr domain,
|
||||||
int *state,
|
int *state,
|
||||||
int *reason,
|
int *reason)
|
||||||
unsigned int flags)
|
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
|
||||||
struct sexpr *root;
|
struct sexpr *root;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
|
||||||
|
|
||||||
if (domain->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name);
|
root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name);
|
||||||
if (!root)
|
if (!root)
|
||||||
return -1;
|
return -1;
|
||||||
@ -3425,7 +3413,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct xenUnifiedDriver xenDaemonDriver = {
|
struct xenUnifiedDriver xenDaemonDriver = {
|
||||||
.xenDomainGetInfo = xenDaemonDomainGetInfo,
|
|
||||||
.xenDomainPinVcpu = xenDaemonDomainPinVcpu,
|
.xenDomainPinVcpu = xenDaemonDomainPinVcpu,
|
||||||
.xenDomainGetVcpus = xenDaemonDomainGetVcpus,
|
.xenDomainGetVcpus = xenDaemonDomainGetVcpus,
|
||||||
.xenListDefinedDomains = xenDaemonListDefinedDomains,
|
.xenListDefinedDomains = xenDaemonListDefinedDomains,
|
||||||
|
@ -101,8 +101,7 @@ int xenDaemonDomainSetMaxMemory(virDomainPtr domain, unsigned long memory);
|
|||||||
int xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info);
|
int xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info);
|
||||||
int xenDaemonDomainGetState(virDomainPtr domain,
|
int xenDaemonDomainGetState(virDomainPtr domain,
|
||||||
int *state,
|
int *state,
|
||||||
int *reason,
|
int *reason);
|
||||||
unsigned int flags);
|
|
||||||
char *xenDaemonDomainGetXMLDesc(virDomainPtr domain, unsigned int flags,
|
char *xenDaemonDomainGetXMLDesc(virDomainPtr domain, unsigned int flags,
|
||||||
const char *cpus);
|
const char *cpus);
|
||||||
unsigned long long xenDaemonDomainGetMaxMemory(virDomainPtr domain);
|
unsigned long long xenDaemonDomainGetMaxMemory(virDomainPtr domain);
|
||||||
|
@ -81,7 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
|
|||||||
#define XM_XML_ERROR "Invalid xml"
|
#define XM_XML_ERROR "Invalid xml"
|
||||||
|
|
||||||
struct xenUnifiedDriver xenXMDriver = {
|
struct xenUnifiedDriver xenXMDriver = {
|
||||||
.xenDomainGetInfo = xenXMDomainGetInfo,
|
|
||||||
.xenDomainPinVcpu = xenXMDomainPinVcpu,
|
.xenDomainPinVcpu = xenXMDomainPinVcpu,
|
||||||
.xenListDefinedDomains = xenXMListDefinedDomains,
|
.xenListDefinedDomains = xenXMListDefinedDomains,
|
||||||
.xenNumOfDefinedDomains = xenXMNumOfDefinedDomains,
|
.xenNumOfDefinedDomains = xenXMNumOfDefinedDomains,
|
||||||
@ -462,15 +461,10 @@ xenXMClose(virConnectPtr conn)
|
|||||||
* Since these are all offline domains, the state is always SHUTOFF.
|
* Since these are all offline domains, the state is always SHUTOFF.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
xenXMDomainGetState(virDomainPtr domain,
|
xenXMDomainGetState(virDomainPtr domain ATTRIBUTE_UNUSED,
|
||||||
int *state, int *reason,
|
int *state,
|
||||||
unsigned int flags)
|
int *reason)
|
||||||
{
|
{
|
||||||
virCheckFlags(0, -1);
|
|
||||||
|
|
||||||
if (domain->id != -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
*state = VIR_DOMAIN_SHUTOFF;
|
*state = VIR_DOMAIN_SHUTOFF;
|
||||||
if (reason)
|
if (reason)
|
||||||
*reason = 0;
|
*reason = 0;
|
||||||
@ -490,9 +484,6 @@ xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|||||||
const char *filename;
|
const char *filename;
|
||||||
xenXMConfCachePtr entry;
|
xenXMConfCachePtr entry;
|
||||||
|
|
||||||
if (domain->id != -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
xenUnifiedLock(priv);
|
xenUnifiedLock(priv);
|
||||||
|
|
||||||
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
|
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
|
||||||
|
@ -42,8 +42,7 @@ const char *xenXMGetType(virConnectPtr conn);
|
|||||||
int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info);
|
int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info);
|
||||||
int xenXMDomainGetState(virDomainPtr domain,
|
int xenXMDomainGetState(virDomainPtr domain,
|
||||||
int *state,
|
int *state,
|
||||||
int *reason,
|
int *reason);
|
||||||
unsigned int flags);
|
|
||||||
char *xenXMDomainGetXMLDesc(virDomainPtr domain, unsigned int flags);
|
char *xenXMDomainGetXMLDesc(virDomainPtr domain, unsigned int flags);
|
||||||
int xenXMDomainSetMemory(virDomainPtr domain, unsigned long memory);
|
int xenXMDomainSetMemory(virDomainPtr domain, unsigned long memory);
|
||||||
int xenXMDomainSetMaxMemory(virDomainPtr domain, unsigned long memory);
|
int xenXMDomainSetMaxMemory(virDomainPtr domain, unsigned long memory);
|
||||||
|
@ -56,32 +56,11 @@
|
|||||||
static void xenStoreWatchEvent(int watch, int fd, int events, void *data);
|
static void xenStoreWatchEvent(int watch, int fd, int events, void *data);
|
||||||
static void xenStoreWatchListFree(xenStoreWatchListPtr list);
|
static void xenStoreWatchListFree(xenStoreWatchListPtr list);
|
||||||
|
|
||||||
struct xenUnifiedDriver xenStoreDriver = {
|
|
||||||
.xenDomainGetInfo = xenStoreGetDomainInfo,
|
|
||||||
};
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* *
|
* *
|
||||||
* Helper internal APIs *
|
* Helper internal APIs *
|
||||||
* *
|
* *
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
/**
|
|
||||||
* virConnectDoStoreList:
|
|
||||||
* @conn: pointer to the hypervisor connection
|
|
||||||
* @path: the absolute path of the directory in the store to list
|
|
||||||
* @nb: OUT pointer to the number of items found
|
|
||||||
*
|
|
||||||
* Internal API querying the Xenstore for a list
|
|
||||||
*
|
|
||||||
* Returns a string which must be freed by the caller or NULL in case of error
|
|
||||||
*/
|
|
||||||
static char **
|
|
||||||
virConnectDoStoreList(virConnectPtr conn, const char *path, unsigned int *nb)
|
|
||||||
{
|
|
||||||
xenUnifiedPrivatePtr priv = conn->privateData;
|
|
||||||
|
|
||||||
return xs_directory(priv->xshandle, 0, path, nb);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virDomainDoStoreQuery:
|
* virDomainDoStoreQuery:
|
||||||
@ -234,100 +213,6 @@ xenStoreClose(virConnectPtr conn)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* xenStoreGetDomainInfo:
|
|
||||||
* @domain: pointer to the domain block
|
|
||||||
* @info: the place where information should be stored
|
|
||||||
*
|
|
||||||
* Do a hypervisor call to get the related set of domain information.
|
|
||||||
*
|
|
||||||
* Returns 0 in case of success, -1 in case of error.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
xenStoreGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
|
||||||
{
|
|
||||||
char *tmp, **tmp2;
|
|
||||||
unsigned int nb_vcpus;
|
|
||||||
char request[200];
|
|
||||||
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
|
||||||
|
|
||||||
if (priv->xshandle == NULL || domain->id == -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
tmp = virDomainDoStoreQuery(domain->conn, domain->id, "running");
|
|
||||||
if (tmp != NULL) {
|
|
||||||
if (tmp[0] == '1')
|
|
||||||
info->state = VIR_DOMAIN_RUNNING;
|
|
||||||
VIR_FREE(tmp);
|
|
||||||
} else {
|
|
||||||
info->state = VIR_DOMAIN_NOSTATE;
|
|
||||||
}
|
|
||||||
tmp = virDomainDoStoreQuery(domain->conn, domain->id, "memory/target");
|
|
||||||
if (tmp != NULL) {
|
|
||||||
info->memory = atol(tmp);
|
|
||||||
info->maxMem = atol(tmp);
|
|
||||||
VIR_FREE(tmp);
|
|
||||||
} else {
|
|
||||||
info->memory = 0;
|
|
||||||
info->maxMem = 0;
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
/* doesn't seems to work */
|
|
||||||
tmp = virDomainDoStoreQuery(domain->conn, domain->id, "cpu_time");
|
|
||||||
if (tmp != NULL) {
|
|
||||||
info->cpuTime = atol(tmp);
|
|
||||||
VIR_FREE(tmp);
|
|
||||||
} else {
|
|
||||||
info->cpuTime = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
snprintf(request, 199, "/local/domain/%d/cpu", domain->id);
|
|
||||||
request[199] = 0;
|
|
||||||
tmp2 = virConnectDoStoreList(domain->conn, request, &nb_vcpus);
|
|
||||||
if (tmp2 != NULL) {
|
|
||||||
info->nrVirtCpu = nb_vcpus;
|
|
||||||
VIR_FREE(tmp2);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* xenStoreDomainGetState:
|
|
||||||
* @domain: pointer to the domain block
|
|
||||||
* @state: returned domain's state
|
|
||||||
* @reason: returned state reason
|
|
||||||
* @flags: additional flags, 0 for now
|
|
||||||
*
|
|
||||||
* Returns 0 in case of success, -1 in case of error.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
xenStoreDomainGetState(virDomainPtr domain,
|
|
||||||
int *state,
|
|
||||||
int *reason,
|
|
||||||
unsigned int flags)
|
|
||||||
{
|
|
||||||
char *running;
|
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
|
||||||
|
|
||||||
if (domain->id == -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
running = virDomainDoStoreQuery(domain->conn, domain->id, "running");
|
|
||||||
|
|
||||||
if (running && *running == '1')
|
|
||||||
*state = VIR_DOMAIN_RUNNING;
|
|
||||||
else
|
|
||||||
*state = VIR_DOMAIN_NOSTATE;
|
|
||||||
if (reason)
|
|
||||||
*reason = 0;
|
|
||||||
|
|
||||||
VIR_FREE(running);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* xenStoreNumOfDomains:
|
* xenStoreNumOfDomains:
|
||||||
* @conn: pointer to the hypervisor connection
|
* @conn: pointer to the hypervisor connection
|
||||||
|
@ -26,19 +26,10 @@
|
|||||||
# include "internal.h"
|
# include "internal.h"
|
||||||
# include "driver.h"
|
# include "driver.h"
|
||||||
|
|
||||||
extern struct xenUnifiedDriver xenStoreDriver;
|
|
||||||
int xenStoreInit (void);
|
|
||||||
|
|
||||||
int xenStoreOpen (virConnectPtr conn,
|
int xenStoreOpen (virConnectPtr conn,
|
||||||
virConnectAuthPtr auth,
|
virConnectAuthPtr auth,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
int xenStoreClose (virConnectPtr conn);
|
int xenStoreClose (virConnectPtr conn);
|
||||||
int xenStoreGetDomainInfo (virDomainPtr domain,
|
|
||||||
virDomainInfoPtr info);
|
|
||||||
int xenStoreDomainGetState (virDomainPtr domain,
|
|
||||||
int *state,
|
|
||||||
int *reason,
|
|
||||||
unsigned int flags);
|
|
||||||
int xenStoreNumOfDomains (virConnectPtr conn);
|
int xenStoreNumOfDomains (virConnectPtr conn);
|
||||||
int xenStoreListDomains (virConnectPtr conn,
|
int xenStoreListDomains (virConnectPtr conn,
|
||||||
int *ids,
|
int *ids,
|
||||||
|
Loading…
Reference in New Issue
Block a user