From 1014c34e3c03c658ab2c16d1be336278ca0fae52 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 17 Mar 2014 11:39:57 -0600 Subject: [PATCH] conf: accessors for common source information A future patch will split virDomainDiskDef, in order to track multiple host resources per guest . To reduce the size of that patch, I've factored out the four most common accesses into functions, so that I can incrementally upgrade the code base to use the accessors, and so that code that doesn't care about the distinction of per-file details won't have to be changed when the struct changes. * src/conf/domain_conf.h (virDomainDiskGetType) (virDomainDiskSetType, virDomainDiskGetSource) (virDomainDiskSetSource, virDomainDiskGetDriver) (virDomainDiskSetDriver, virDomainDiskGetFormat) (virDomainDiskSetFormat): New prototypes. * src/conf/domain_conf.c (virDomainDiskGetType) (virDomainDiskSetType, virDomainDiskGetSource) (virDomainDiskSetSource, virDomainDiskGetDriver) (virDomainDiskSetDriver, virDomainDiskGetFormat) (virDomainDiskSetFormat): Implement them. * src/libvirt_private.syms (domain_conf.h): Export them. Signed-off-by: Eric Blake --- src/conf/domain_conf.c | 72 ++++++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 10 ++++++ src/libvirt_private.syms | 8 +++++ 3 files changed, 90 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index b3592a08e1..28121b01d9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1354,6 +1354,20 @@ error: } +int +virDomainDiskGetType(virDomainDiskDefPtr def) +{ + return def->type; +} + + +void +virDomainDiskSetType(virDomainDiskDefPtr def, int type) +{ + def->type = type; +} + + int virDomainDiskGetActualType(virDomainDiskDefPtr def) { @@ -1364,6 +1378,64 @@ virDomainDiskGetActualType(virDomainDiskDefPtr def) } +const char * +virDomainDiskGetSource(virDomainDiskDefPtr def) +{ + return def->src; +} + + +int +virDomainDiskSetSource(virDomainDiskDefPtr def, const char *src) +{ + int ret; + char *tmp = def->src; + + ret = VIR_STRDUP(def->src, src); + if (ret < 0) + def->src = tmp; + else + VIR_FREE(tmp); + return ret; +} + + +const char * +virDomainDiskGetDriver(virDomainDiskDefPtr def) +{ + return def->driverName; +} + + +int +virDomainDiskSetDriver(virDomainDiskDefPtr def, const char *name) +{ + int ret; + char *tmp = def->driverName; + + ret = VIR_STRDUP(def->driverName, name); + if (ret < 0) + def->driverName = tmp; + else + VIR_FREE(tmp); + return ret; +} + + +int +virDomainDiskGetFormat(virDomainDiskDefPtr def) +{ + return def->format; +} + + +void +virDomainDiskSetFormat(virDomainDiskDefPtr def, int format) +{ + def->format = format; +} + + void virDomainControllerDefFree(virDomainControllerDefPtr def) { if (!def) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index bf124149f9..3b55c30ba8 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2256,7 +2256,17 @@ void virDomainDiskHostDefClear(virDomainDiskHostDefPtr def); void virDomainDiskHostDefFree(size_t nhosts, virDomainDiskHostDefPtr hosts); virDomainDiskHostDefPtr virDomainDiskHostDefCopy(size_t nhosts, virDomainDiskHostDefPtr hosts); +int virDomainDiskGetType(virDomainDiskDefPtr def); +void virDomainDiskSetType(virDomainDiskDefPtr def, int type); int virDomainDiskGetActualType(virDomainDiskDefPtr def); +const char *virDomainDiskGetSource(virDomainDiskDefPtr def); +int virDomainDiskSetSource(virDomainDiskDefPtr def, const char *src) + ATTRIBUTE_RETURN_CHECK; +const char *virDomainDiskGetDriver(virDomainDiskDefPtr def); +int virDomainDiskSetDriver(virDomainDiskDefPtr def, const char *name) + ATTRIBUTE_RETURN_CHECK; +int virDomainDiskGetFormat(virDomainDiskDefPtr def); +void virDomainDiskSetFormat(virDomainDiskDefPtr def, int format); int virDomainDeviceFindControllerModel(virDomainDefPtr def, virDomainDeviceInfoPtr info, int controllerType); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5904036e98..2357f95f5d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -201,6 +201,10 @@ virDomainDiskFindByBusAndDst; virDomainDiskGeometryTransTypeFromString; virDomainDiskGeometryTransTypeToString; virDomainDiskGetActualType; +virDomainDiskGetDriver; +virDomainDiskGetFormat; +virDomainDiskGetSource; +virDomainDiskGetType; virDomainDiskHostDefClear; virDomainDiskHostDefCopy; virDomainDiskHostDefFree; @@ -215,6 +219,10 @@ virDomainDiskProtocolTransportTypeToString; virDomainDiskProtocolTypeToString; virDomainDiskRemove; virDomainDiskRemoveByName; +virDomainDiskSetDriver; +virDomainDiskSetFormat; +virDomainDiskSetSource; +virDomainDiskSetType; virDomainDiskSourceIsBlockType; virDomainDiskTypeFromString; virDomainDiskTypeToString;