On Fri, Dec 6, 2013 at 11:13 AM, Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote: > --- > libvirt-gconfig/libvirt-gconfig-domain-disk.c | 42 +++++++++++++++++++ > libvirt-gconfig/libvirt-gconfig-domain-disk.h | 58 +++++++++++++++------------ > libvirt-gconfig/libvirt-gconfig.sym | 3 ++ > 3 files changed, 77 insertions(+), 26 deletions(-) > > diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.c b/libvirt-gconfig/libvirt-gconfig-domain-disk.c > index db0416a..85d2bea 100644 > --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.c > +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.c > @@ -390,3 +390,45 @@ gvir_config_domain_disk_set_readonly(GVirConfigDomainDisk *disk, > } else > gvir_config_object_delete_child(GVIR_CONFIG_OBJECT(disk), "readonly", NULL); > } > + > + > +/** > + * gvir_config_domain_disk_set_driver: > + * @disk: a #GVirConfigDomainDisk > + * @driver: (allow-none): a #GVirConfigDomainDiskDriver > + * > + * Uses @driver as the driver configuration for @disk. > + */ > +void gvir_config_domain_disk_set_driver(GVirConfigDomainDisk *disk, > + GVirConfigDomainDiskDriver *driver) > +{ > + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk)); > + g_return_if_fail(driver == NULL || GVIR_CONFIG_IS_DOMAIN_DISK_DRIVER(driver)); > + > + gvir_config_object_attach_replace(GVIR_CONFIG_OBJECT(disk), > + "driver", > + GVIR_CONFIG_OBJECT(driver)); > +} > + > + > +/** > + * gvir_config_domain_disk_get_driver: > + * @disk: a #GVirConfigDomainDisk > + * > + * Gets the driver configuration for @disk. > + * > + * Returns: (transfer full): A #GVirConfigDomainDiskDriver. The returned > + * object should be unreffed with g_object_unref() when no longer needed. > + */ > +GVirConfigDomainDiskDriver *gvir_config_domain_disk_get_driver(GVirConfigDomainDisk *disk) > +{ > + GVirConfigObject *object; > + > + g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL); > + > + object = gvir_config_object_get_child_with_type(GVIR_CONFIG_OBJECT(disk), > + "driver", > + GVIR_CONFIG_TYPE_DOMAIN_DISK_DRIVER); > + > + return GVIR_CONFIG_DOMAIN_DISK_DRIVER(object); > +} > diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.h b/libvirt-gconfig/libvirt-gconfig-domain-disk.h > index 3b82eb5..a28f243 100644 > --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.h > +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.h > @@ -29,6 +29,35 @@ > > G_BEGIN_DECLS > > +/* These enum definitions are needed by libvirt-gconfig-domain-disk-driver.h */ Why not just move these enums to that header then? > +typedef enum { > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DEFAULT, > + GVIR_CONFIG_DOMAIN_DISK_CACHE_NONE, > + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITETHROUGH, > + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITEBACK, > + GVIR_CONFIG_DOMAIN_DISK_CACHE_DIRECTSYNC, > + GVIR_CONFIG_DOMAIN_DISK_CACHE_UNSAFE > +} GVirConfigDomainDiskCacheType; > + > +typedef enum { > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_RAW, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_DIR, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_BOCHS, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_CLOOP, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_COW, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_DMG, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_ISO, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW2, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QED, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VMDK, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VPC, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_FAT, > + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VHD, > +} GVirConfigDomainDiskFormat; > + Looks good otherwise. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list