xm: Remove redundant validity checks, clean up function headers

Arguments for driver entry points are checked in libvirt.c, so no need to
check again. Make function entry points consistent. Don't type caste the
privateData.
This commit is contained in:
John Ferlan 2013-01-29 09:24:42 -05:00
parent d67c2b76c7
commit 273f34ba36

View File

@ -1,7 +1,7 @@
/*
* xm_internal.h: helper routines for dealing with inactive domains
*
* Copyright (C) 2006-2007, 2009-2012 Red Hat, Inc.
* Copyright (C) 2006-2007, 2009-2013 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@ -104,7 +104,7 @@ static int xenInotifyActive(virConnectPtr conn ATTRIBUTE_UNUSED)
#else
static int xenInotifyActive(virConnectPtr conn)
{
xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
xenUnifiedPrivatePtr priv = conn->privateData;
return priv->inotifyWatch > 0;
}
#endif
@ -124,7 +124,11 @@ struct xenXMConfigReaperData {
};
/* Remove any configs which were not refreshed recently */
static int xenXMConfigReaper(const void *payload, const void *key ATTRIBUTE_UNUSED, const void *data) {
static int
xenXMConfigReaper(const void *payload,
const void *key ATTRIBUTE_UNUSED,
const void *data)
{
const struct xenXMConfigReaperData *args = data;
xenXMConfCachePtr entry = (xenXMConfCachePtr)payload;
@ -143,7 +147,8 @@ static int xenXMConfigReaper(const void *payload, const void *key ATTRIBUTE_UNUS
static virDomainDefPtr
xenXMConfigReadFile(virConnectPtr conn, const char *filename) {
xenXMConfigReadFile(virConnectPtr conn, const char *filename)
{
virConfPtr conf;
virDomainDefPtr def;
xenUnifiedPrivatePtr priv = conn->privateData;
@ -158,7 +163,10 @@ xenXMConfigReadFile(virConnectPtr conn, const char *filename) {
}
static int
xenXMConfigSaveFile(virConnectPtr conn, const char *filename, virDomainDefPtr def) {
xenXMConfigSaveFile(virConnectPtr conn,
const char *filename,
virDomainDefPtr def)
{
virConfPtr conf;
xenUnifiedPrivatePtr priv = conn->privateData;
int ret;
@ -177,8 +185,7 @@ xenXMConfigSaveFile(virConnectPtr conn, const char *filename, virDomainDefPtr de
* calling this function
*/
int
xenXMConfigCacheRemoveFile(virConnectPtr conn,
const char *filename)
xenXMConfigCacheRemoveFile(virConnectPtr conn, const char *filename)
{
xenUnifiedPrivatePtr priv = conn->privateData;
xenXMConfCachePtr entry;
@ -309,7 +316,9 @@ xenXMConfigCacheAddFile(virConnectPtr conn, const char *filename)
* Caller must hold the lock on 'conn->privateData' before
* calling this function
*/
int xenXMConfigCacheRefresh(virConnectPtr conn) {
int
xenXMConfigCacheRefresh(virConnectPtr conn)
{
xenUnifiedPrivatePtr priv = conn->privateData;
DIR *dh;
struct dirent *ent;
@ -442,7 +451,9 @@ xenXMOpen(virConnectPtr conn,
* Free the cached config files associated with this
* connection
*/
int xenXMClose(virConnectPtr conn) {
int
xenXMClose(virConnectPtr conn)
{
xenUnifiedPrivatePtr priv = conn->privateData;
virHashFree(priv->nameConfigMap);
@ -456,8 +467,7 @@ int xenXMClose(virConnectPtr conn) {
*/
int
xenXMDomainGetState(virDomainPtr domain,
int *state,
int *reason,
int *state, int *reason,
unsigned int flags)
{
virCheckFlags(0, -1);
@ -477,19 +487,16 @@ xenXMDomainGetState(virDomainPtr domain,
* Since these are all offline domains, we only return info about
* VCPUs and memory.
*/
int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) {
xenUnifiedPrivatePtr priv;
int
xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
{
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->id != -1)
return -1;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -518,23 +525,19 @@ error:
* Turn a config record into a lump of XML describing the
* domain, suitable for later feeding for virDomainCreateXML
*/
char *xenXMDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
char *
xenXMDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
{
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
char *ret = NULL;
/* Flags checked by virDomainDefFormat */
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return NULL;
}
if (domain->id != -1)
return NULL;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -554,24 +557,18 @@ cleanup:
/*
* Update amount of memory in the config file
*/
int xenXMDomainSetMemory(virDomainPtr domain, unsigned long memory) {
xenUnifiedPrivatePtr priv;
int
xenXMDomainSetMemory(virDomainPtr domain, unsigned long memory)
{
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -1;
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->conn->flags & VIR_CONNECT_RO)
return -1;
if (domain->id != -1)
return -1;
if (memory < 1024 * MIN_XEN_GUEST_SIZE)
if (domain->conn->flags & VIR_CONNECT_RO || domain->id != -1 ||
memory < 1024 * MIN_XEN_GUEST_SIZE)
return -1;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -599,22 +596,17 @@ cleanup:
/*
* Update maximum memory limit in config
*/
int xenXMDomainSetMaxMemory(virDomainPtr domain, unsigned long memory) {
xenUnifiedPrivatePtr priv;
int
xenXMDomainSetMaxMemory(virDomainPtr domain, unsigned long memory)
{
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -1;
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->conn->flags & VIR_CONNECT_RO)
return -1;
if (domain->id != -1)
if (domain->conn->flags & VIR_CONNECT_RO || domain->id != -1)
return -1;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -642,20 +634,17 @@ cleanup:
/*
* Get max memory limit from config
*/
unsigned long long xenXMDomainGetMaxMemory(virDomainPtr domain) {
xenUnifiedPrivatePtr priv;
unsigned long long
xenXMDomainGetMaxMemory(virDomainPtr domain)
{
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
unsigned long long ret = 0;
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return 0;
}
if (domain->id != -1)
return 0;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -683,10 +672,11 @@ cleanup:
* the unified driver should keep trying.
*/
int
xenXMDomainSetVcpusFlags(virDomainPtr domain, unsigned int vcpus,
xenXMDomainSetVcpusFlags(virDomainPtr domain,
unsigned int vcpus,
unsigned int flags)
{
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -1;
@ -696,10 +686,6 @@ xenXMDomainSetVcpusFlags(virDomainPtr domain, unsigned int vcpus,
VIR_DOMAIN_VCPU_CONFIG |
VIR_DOMAIN_VCPU_MAXIMUM, -1);
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->conn->flags & VIR_CONNECT_RO) {
virReportError(VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return -1;
@ -712,7 +698,6 @@ xenXMDomainSetVcpusFlags(virDomainPtr domain, unsigned int vcpus,
return -1;
}
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -771,7 +756,7 @@ cleanup:
int
xenXMDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
{
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -2;
@ -780,11 +765,6 @@ xenXMDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
VIR_DOMAIN_VCPU_CONFIG |
VIR_DOMAIN_VCPU_MAXIMUM, -1);
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->id != -1)
return -2;
if (flags & VIR_DOMAIN_VCPU_LIVE) {
@ -792,7 +772,6 @@ xenXMDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
return -1;
}
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -820,17 +799,18 @@ cleanup:
*
* Returns 0 for success; -1 (with errno) on error
*/
int xenXMDomainPinVcpu(virDomainPtr domain,
unsigned int vcpu ATTRIBUTE_UNUSED,
unsigned char *cpumap, int maplen)
int
xenXMDomainPinVcpu(virDomainPtr domain,
unsigned int vcpu ATTRIBUTE_UNUSED,
unsigned char *cpumap,
int maplen)
{
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -1;
if (domain == NULL || domain->conn == NULL || domain->name == NULL
|| cpumap == NULL || maplen < 1 || maplen > (int)sizeof(cpumap_t)) {
if (maplen > (int)sizeof(cpumap_t)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
@ -845,7 +825,6 @@ int xenXMDomainPinVcpu(virDomainPtr domain,
return -1;
}
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name))) {
@ -875,22 +854,14 @@ int xenXMDomainPinVcpu(virDomainPtr domain,
/*
* Find an inactive domain based on its name
*/
virDomainPtr xenXMDomainLookupByName(virConnectPtr conn, const char *domname) {
xenUnifiedPrivatePtr priv;
virDomainPtr
xenXMDomainLookupByName(virConnectPtr conn, const char *domname)
{
xenUnifiedPrivatePtr priv = conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
virDomainPtr ret = NULL;
if (!VIR_IS_CONNECT(conn)) {
virReportError(VIR_ERR_INVALID_CONN, __FUNCTION__);
return NULL;
}
if (domname == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return NULL;
}
priv = conn->privateData;
xenUnifiedLock(priv);
if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh(conn) < 0)
@ -918,7 +889,11 @@ cleanup:
/*
* Hash table iterator to search for a domain based on UUID
*/
static int xenXMDomainSearchForUUID(const void *payload, const void *name ATTRIBUTE_UNUSED, const void *data) {
static int
xenXMDomainSearchForUUID(const void *payload,
const void *name ATTRIBUTE_UNUSED,
const void *data)
{
const unsigned char *wantuuid = (const unsigned char *)data;
const xenXMConfCachePtr entry = (const xenXMConfCachePtr)payload;
@ -931,22 +906,13 @@ static int xenXMDomainSearchForUUID(const void *payload, const void *name ATTRIB
/*
* Find an inactive domain based on its UUID
*/
virDomainPtr xenXMDomainLookupByUUID(virConnectPtr conn,
const unsigned char *uuid) {
xenUnifiedPrivatePtr priv;
virDomainPtr
xenXMDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
{
xenUnifiedPrivatePtr priv = conn->privateData;
xenXMConfCachePtr entry;
virDomainPtr ret = NULL;
if (!VIR_IS_CONNECT(conn)) {
virReportError(VIR_ERR_INVALID_CONN, __FUNCTION__);
return NULL;
}
if (uuid == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return NULL;
}
priv = conn->privateData;
xenUnifiedLock(priv);
if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh(conn) < 0)
@ -971,15 +937,15 @@ cleanup:
/*
* Start a domain from an existing defined config file
*/
int xenXMDomainCreate(virDomainPtr domain) {
int
xenXMDomainCreate(virDomainPtr domain)
{
char *sexpr;
int ret = -1;
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv= domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
if (domain->id != -1)
return -1;
@ -1026,7 +992,8 @@ int xenXMDomainCreate(virDomainPtr domain) {
* Create a config file for a domain, based on an XML
* document describing its config
*/
virDomainPtr xenXMDomainDefineXML(virConnectPtr conn, const char *xml)
virDomainPtr
xenXMDomainDefineXML(virConnectPtr conn, const char *xml)
{
virDomainPtr ret;
char *filename = NULL;
@ -1034,16 +1001,8 @@ virDomainPtr xenXMDomainDefineXML(virConnectPtr conn, const char *xml)
virDomainDefPtr def = NULL;
virConfPtr conf = NULL;
xenXMConfCachePtr entry = NULL;
xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
xenUnifiedPrivatePtr priv = conn->privateData;
if (!VIR_IS_CONNECT(conn)) {
virReportError(VIR_ERR_INVALID_CONN, __FUNCTION__);
return NULL;
}
if (xml == NULL) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return NULL;
}
if (conn->flags & VIR_CONNECT_RO)
return NULL;
@ -1171,23 +1130,19 @@ virDomainPtr xenXMDomainDefineXML(virConnectPtr conn, const char *xml)
/*
* Delete a domain from disk
*/
int xenXMDomainUndefine(virDomainPtr domain) {
xenUnifiedPrivatePtr priv;
int
xenXMDomainUndefine(virDomainPtr domain)
{
xenUnifiedPrivatePtr priv = domain->conn->privateData;
const char *filename;
xenXMConfCachePtr entry;
int ret = -1;
if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->id != -1)
return -1;
if (domain->conn->flags & VIR_CONNECT_RO)
return -1;
priv = domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -1222,7 +1177,8 @@ struct xenXMListIteratorContext {
char ** names;
};
static void xenXMListIterator(void *payload ATTRIBUTE_UNUSED, const void *name, void *data) {
static void
xenXMListIterator(void *payload ATTRIBUTE_UNUSED, const void *name, void *data) {
struct xenXMListIteratorContext *ctx = data;
virDomainPtr dom = NULL;
@ -1248,17 +1204,13 @@ static void xenXMListIterator(void *payload ATTRIBUTE_UNUSED, const void *name,
* List all defined domains, filtered to remove any which
* are currently running
*/
int xenXMListDefinedDomains(virConnectPtr conn, char **const names, int maxnames) {
xenUnifiedPrivatePtr priv;
int
xenXMListDefinedDomains(virConnectPtr conn, char **const names, int maxnames)
{
xenUnifiedPrivatePtr priv = conn->privateData;
struct xenXMListIteratorContext ctx;
int i, ret = -1;
if (!VIR_IS_CONNECT(conn)) {
virReportError(VIR_ERR_INVALID_CONN, __FUNCTION__);
return -1;
}
priv = conn->privateData;
xenUnifiedLock(priv);
if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh(conn) < 0)
@ -1294,16 +1246,12 @@ cleanup:
* Return the maximum number of defined domains - not filtered
* based on number running
*/
int xenXMNumOfDefinedDomains(virConnectPtr conn) {
xenUnifiedPrivatePtr priv;
int
xenXMNumOfDefinedDomains(virConnectPtr conn)
{
xenUnifiedPrivatePtr priv = conn->privateData;
int ret = -1;
if (!VIR_IS_CONNECT(conn)) {
virReportError(VIR_ERR_INVALID_CONN, __FUNCTION__);
return -1;
}
priv = conn->privateData;
xenUnifiedLock(priv);
if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh(conn) < 0)
@ -1331,7 +1279,8 @@ cleanup:
* Returns 0 in case of success, -1 in case of failure.
*/
static int
xenXMDomainAttachDeviceFlags(virDomainPtr domain, const char *xml,
xenXMDomainAttachDeviceFlags(virDomainPtr domain,
const char *xml,
unsigned int flags)
{
const char *filename = NULL;
@ -1339,15 +1288,10 @@ xenXMDomainAttachDeviceFlags(virDomainPtr domain, const char *xml,
int ret = -1;
virDomainDeviceDefPtr dev = NULL;
virDomainDefPtr def;
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
if ((!domain) || (!domain->conn) || (!domain->name) || (!xml)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->conn->flags & VIR_CONNECT_RO)
return -1;
@ -1358,7 +1302,6 @@ xenXMDomainAttachDeviceFlags(virDomainPtr domain, const char *xml,
return -1;
}
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -1428,23 +1371,20 @@ xenXMDomainAttachDeviceFlags(virDomainPtr domain, const char *xml,
* Returns 0 in case of success, -1 in case of failure.
*/
static int
xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
unsigned int flags) {
xenXMDomainDetachDeviceFlags(virDomainPtr domain,
const char *xml,
unsigned int flags)
{
const char *filename = NULL;
xenXMConfCachePtr entry = NULL;
virDomainDeviceDefPtr dev = NULL;
virDomainDefPtr def;
int ret = -1;
int i;
xenUnifiedPrivatePtr priv;
xenUnifiedPrivatePtr priv = domain->conn->privateData;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
if ((!domain) || (!domain->conn) || (!domain->name) || (!xml)) {
virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__);
return -1;
}
if (domain->conn->flags & VIR_CONNECT_RO)
return -1;
@ -1455,7 +1395,6 @@ xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
return -1;
}
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
xenUnifiedLock(priv);
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
@ -1539,7 +1478,8 @@ xenXMDomainBlockPeek(virDomainPtr dom ATTRIBUTE_UNUSED,
}
static char *xenXMAutostartLinkName(virDomainPtr dom)
static char *
xenXMAutostartLinkName(virDomainPtr dom)
{
char *ret;
if (virAsprintf(&ret, "/etc/xen/auto/%s", dom->name) < 0)
@ -1547,7 +1487,8 @@ static char *xenXMAutostartLinkName(virDomainPtr dom)
return ret;
}
static char *xenXMDomainConfigName(virDomainPtr dom)
static char *
xenXMDomainConfigName(virDomainPtr dom)
{
char *ret;
if (virAsprintf(&ret, "/etc/xen/%s", dom->name) < 0)
@ -1555,7 +1496,8 @@ static char *xenXMDomainConfigName(virDomainPtr dom)
return ret;
}
int xenXMDomainGetAutostart(virDomainPtr dom, int *autostart)
int
xenXMDomainGetAutostart(virDomainPtr dom, int *autostart)
{
char *linkname = xenXMAutostartLinkName(dom);
char *config = xenXMDomainConfigName(dom);
@ -1583,7 +1525,8 @@ cleanup:
}
int xenXMDomainSetAutostart(virDomainPtr dom, int autostart)
int
xenXMDomainSetAutostart(virDomainPtr dom, int autostart)
{
char *linkname = xenXMAutostartLinkName(dom);
char *config = xenXMDomainConfigName(dom);