/*
* xen_internal.c: direct access to Xen hypervisor level
*
- * Copyright (C) 2005-2012 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* Returns the number of domains or -1 in case of failure
*/
static int
-virXen_getdomaininfolist(int handle, int first_domain, int maxids,
+virXen_getdomaininfolist(int handle,
+ int first_domain,
+ int maxids,
xen_getdomaininfolist *dominfos)
{
int ret = -1;
}
static int
-virXen_getdomaininfo(int handle, int first_domain,
- xen_getdomaininfo *dominfo) {
+virXen_getdomaininfo(int handle, int first_domain, xen_getdomaininfo *dominfo)
+{
xen_getdomaininfolist dominfos;
if (hv_versions.hypervisor < 2) {
xenHypervisorGetSchedulerType(virDomainPtr domain, int *nparams)
{
char *schedulertype = NULL;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("domain or conn is NULL"));
- return NULL;
- }
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("priv->handle invalid"));
*/
int
xenHypervisorGetSchedulerParameters(virDomainPtr domain,
- virTypedParameterPtr params, int *nparams)
+ virTypedParameterPtr params,
+ int *nparams)
{
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("domain or conn is NULL"));
- return -1;
- }
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("priv->handle invalid"));
*/
int
xenHypervisorSetSchedulerParameters(virDomainPtr domain,
- virTypedParameterPtr params, int nparams)
+ virTypedParameterPtr params,
+ int nparams)
{
int i;
unsigned int val;
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
char buf[256];
- if (domain->conn == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("domain or conn is NULL"));
- return -1;
- }
-
if (nparams == 0) {
/* nothing to do, exit early */
return 0;
NULL) < 0)
return -1;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("priv->handle invalid"));
struct _virDomainBlockStats *stats)
{
#ifdef __linux__
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = dom->conn->privateData;
int ret;
- priv = (xenUnifiedPrivatePtr) dom->conn->privateData;
xenUnifiedLock(priv);
/* Need to lock because it hits the xenstore handle :-( */
ret = xenLinuxDomainBlockStats(priv, dom, path, stats);
* Returns 0 or -1 in case of failure
*/
static int
-virXen_setvcpumap(int handle, int id, unsigned int vcpu,
- unsigned char * cpumap, int maplen)
+virXen_setvcpumap(int handle,
+ int id,
+ unsigned int vcpu,
+ unsigned char * cpumap,
+ int maplen)
{
int ret = -1;
unsigned char *new = NULL;
* Returns 0 or -1 in case of failure
*/
static int
-virXen_getvcpusinfo(int handle, int id, unsigned int vcpu, virVcpuInfoPtr ipt,
- unsigned char *cpumap, int maplen)
+virXen_getvcpusinfo(int handle,
+ int id,
+ unsigned int vcpu,
+ virVcpuInfoPtr ipt,
+ unsigned char *cpumap,
+ int maplen)
{
int ret = -1;
unsigned int flags)
{
int ret;
- xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ xenUnifiedPrivatePtr priv = conn->privateData;
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
xenHypervisorClose(virConnectPtr conn)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (conn == NULL)
- return -1;
-
- priv = (xenUnifiedPrivatePtr) conn->privateData;
+ xenUnifiedPrivatePtr priv = conn->privateData;
if (priv->handle < 0)
return -1;
int
xenHypervisorGetVersion(virConnectPtr conn, unsigned long *hvVer)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
- if (conn == NULL)
- return -1;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
- if (priv->handle < 0 || hvVer == NULL)
+ if (priv->handle < 0)
return -1;
*hvVer = (hv_versions.hv >> 16) * 1000000 + (hv_versions.hv & 0xFFFF) * 1000;
return 0;
}
static virCapsPtr
-xenHypervisorBuildCapabilities(virConnectPtr conn,
- virArch hostarch,
+xenHypervisorBuildCapabilities(virConnectPtr conn, virArch hostarch,
int host_pae,
const char *hvm_type,
struct guest_arch *guest_archs,
- int nr_guest_archs) {
+ int nr_guest_archs)
+{
virCapsPtr caps;
int i;
int hv_major = hv_versions.hv >> 16;
virCapsPtr
xenHypervisorMakeCapabilitiesInternal(virConnectPtr conn,
virArch hostarch,
- FILE *cpuinfo, FILE *capabilities)
+ FILE *cpuinfo,
+ FILE *capabilities)
{
char line[1024], *str, *token;
regmatch_t subs[4];
char *
xenHypervisorGetCapabilities(virConnectPtr conn)
{
- xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ xenUnifiedPrivatePtr priv = conn->privateData;
char *xml;
if (!(xml = virCapabilitiesFormatXML(priv->caps))) {
int ret, nbids;
static int last_maxids = 2;
int maxids = last_maxids;
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
- if (conn == NULL)
- return -1;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return -1;
{
xen_getdomaininfolist dominfos;
int ret, nbids, i;
- xenUnifiedPrivatePtr priv;
-
- if (conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = conn->privateData;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
- if (priv->handle < 0 ||
- (ids == NULL) || (maxids < 0))
+ if (priv->handle < 0)
return -1;
if (maxids == 0)
char *
xenHypervisorDomainGetOSType(virDomainPtr dom)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = dom->conn->privateData;
xen_getdomaininfo dominfo;
char *ostype = NULL;
- priv = (xenUnifiedPrivatePtr) dom->conn->privateData;
if (priv->handle < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("domain shut off or invalid"));
}
int
-xenHypervisorHasDomain(virConnectPtr conn,
- int id)
+xenHypervisorHasDomain(virConnectPtr conn, int id)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
xen_getdomaininfo dominfo;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return 0;
}
virDomainPtr
-xenHypervisorLookupDomainByID(virConnectPtr conn,
- int id)
+xenHypervisorLookupDomainByID(virConnectPtr conn, int id)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
xen_getdomaininfo dominfo;
virDomainPtr ret;
char *name;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return NULL;
virDomainPtr
-xenHypervisorLookupDomainByUUID(virConnectPtr conn,
- const unsigned char *uuid)
+xenHypervisorLookupDomainByUUID(virConnectPtr conn, const unsigned char *uuid)
{
xen_getdomaininfolist dominfos;
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
virDomainPtr ret;
char *name;
int maxids = 100, nids, i, id;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return NULL;
* Returns the maximum of CPU defined by Xen.
*/
int
-xenHypervisorGetMaxVcpus(virConnectPtr conn,
- const char *type ATTRIBUTE_UNUSED)
+xenHypervisorGetMaxVcpus(virConnectPtr conn, const char *type ATTRIBUTE_UNUSED)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
- if (conn == NULL)
- return -1;
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return -1;
unsigned long
xenHypervisorGetDomMaxMemory(virConnectPtr conn, int id)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
xen_getdomaininfo dominfo;
int ret;
- if (conn == NULL)
- return 0;
-
- priv = (xenUnifiedPrivatePtr) conn->privateData;
if (priv->handle < 0)
return 0;
static unsigned long long ATTRIBUTE_NONNULL(1)
xenHypervisorGetMaxMemory(virDomainPtr domain)
{
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return 0;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0)
return 0;
int
xenHypervisorGetDomInfo(virConnectPtr conn, int id, virDomainInfoPtr info)
{
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = conn->privateData;
xen_getdomaininfo dominfo;
int ret;
uint32_t domain_flags, domain_state, domain_shutdown_cause;
kb_per_pages = 4;
}
- if (conn == NULL)
- return -1;
-
- priv = (xenUnifiedPrivatePtr) conn->privateData;
- if (priv->handle < 0 || info == NULL)
+ if (priv->handle < 0)
return -1;
memset(info, 0, sizeof(virDomainInfo));
int
xenHypervisorGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
{
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
- if (priv->handle < 0 || info == NULL ||
- (domain->id < 0))
+ if (priv->handle < 0 || domain->id < 0)
return -1;
return xenHypervisorGetDomInfo(domain->conn, domain->id, info);
virCheckFlags(0, -1);
- if (domain->conn == NULL)
- return -1;
-
if (priv->handle < 0 || domain->id < 0)
return -1;
* Returns the number of entries filled in freeMems, or -1 in case of error.
*/
int
-xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *freeMems,
- int startCell, int maxCells)
+xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn,
+ unsigned long long *freeMems,
+ int startCell,
+ int maxCells)
{
xen_op_v2_sys op_sys;
int i, j, ret;
- xenUnifiedPrivatePtr priv;
-
- if (conn == NULL) {
- virReportError(VIR_ERR_INVALID_ARG, "%s", _("invalid argument"));
- return -1;
- }
-
- priv = conn->privateData;
+ xenUnifiedPrivatePtr priv = conn->privateData;
if (priv->nbNodeCells < 0) {
virReportError(VIR_ERR_XEN_CALL, "%s",
xenHypervisorPauseDomain(virDomainPtr domain)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0)
return -1;
xenHypervisorResumeDomain(virDomainPtr domain)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0)
return -1;
* Returns 0 in case of success, -1 in case of error.
*/
int
-xenHypervisorDestroyDomainFlags(virDomainPtr domain,
- unsigned int flags)
+xenHypervisorDestroyDomainFlags(virDomainPtr domain, unsigned int flags)
{
int ret;
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
virCheckFlags(0, -1);
- if (domain->conn == NULL)
- return -1;
-
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0)
return -1;
xenHypervisorSetMaxMemory(virDomainPtr domain, unsigned long memory)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0)
return -1;
xenHypervisorSetVcpus(virDomainPtr domain, unsigned int nvcpus)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0 || domain->id < 0 || nvcpus < 1)
return -1;
unsigned char *cpumap, int maplen)
{
int ret;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
- if (priv->handle < 0 || (domain->id < 0) ||
- (cpumap == NULL) || (maplen < 1))
+ if (priv->handle < 0 || domain->id < 0)
return -1;
ret = virXen_setvcpumap(priv->handle, domain->id, vcpu,
* Returns the number of info filled in case of success, -1 in case of failure.
*/
int
-xenHypervisorGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
- unsigned char *cpumaps, int maplen)
+xenHypervisorGetVcpus(virDomainPtr domain,
+ virVcpuInfoPtr info,
+ int maxinfo,
+ unsigned char *cpumaps,
+ int maplen)
{
xen_getdomaininfo dominfo;
int ret;
- xenUnifiedPrivatePtr priv;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
virVcpuInfoPtr ipt;
int nbinfo, i;
- if (domain->conn == NULL)
- return -1;
-
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
- if (priv->handle < 0 || (domain->id < 0) ||
- (info == NULL) || (maxinfo < 1) ||
- (sizeof(cpumap_t) & 7)) {
+ if (priv->handle < 0 || domain->id < 0 || sizeof(cpumap_t) & 7) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("domain shut off or invalid"));
return -1;
}
- if ((cpumaps != NULL) && (maplen < 1)) {
- virReportError(VIR_ERR_INVALID_ARG, "%s",
- _("invalid argument"));
- return -1;
- }
+
/* first get the number of virtual CPUs in this domain */
XEN_GETDOMAININFO_CLEAR(dominfo);
ret = virXen_getdomaininfo(priv->handle, domain->id,
xen_getdomaininfo dominfo;
int ret;
int maxcpu;
- xenUnifiedPrivatePtr priv;
-
- if (domain->conn == NULL)
- return -1;
+ xenUnifiedPrivatePtr priv = domain->conn->privateData;
- priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (priv->handle < 0)
return -1;