Re: [libvirt] [PATCH v4 2/6] Add GVirConfigDomainHostdev

2016-04-21 Thread Christophe Fergeau
On Fri, Apr 15, 2016 at 02:38:20PM +0100, Zeeshan Ali (Khattak) wrote:
> +
> +/**
> + * gvir_config_domain_hostdev_set_readonly:
> + * @hostdev: the host device
> + * @readonly: the new readonly status
> + *
> + * Set the readonly status of @hostdev to @readonly.
> + */
> +void gvir_config_domain_hostdev_set_readonly(GVirConfigDomainHostdev 
> *hostdev,
> + gboolean readonly)
> +{
> +g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_HOSTDEV(hostdev));
> +
> +if (readonly) {
> +GVirConfigObject *node;
> +
> +node = gvir_config_object_replace_child(GVIR_CONFIG_OBJECT(hostdev),
> +"readonly");
> +g_object_unref(node);
> +} else {
> +gvir_config_object_delete_child(GVIR_CONFIG_OBJECT(hostdev),
> +"readonly", NULL);
> +}
> +}
> +
> +/**
> + * gvir_config_domain_hostdev_get_readonly:
> + * @hostdev: the host device
> + *
> + * Returns: %TRUE if @hostdev is readonly, %FALSE otherwise.
> + */
> +gboolean gvir_config_domain_hostdev_get_readonly(GVirConfigDomainHostdev 
> *hostdev)
> +{
> +return gvir_config_object_has_child(GVIR_CONFIG_OBJECT(hostdev),
> +"readonly");
> +}
> +
> +/**
> + * gvir_config_domain_hostdev_set_shareable:
> + * @hostdev: the host device
> + * @shareable: the new shareable status
> + *
> + * Set the whether or not @hostdev is shared between domains.
> + */

Extra "the"

Acked-by: Christophe Fergeau 

Christophe


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH v4 2/6] Add GVirConfigDomainHostdev

2016-04-15 Thread Zeeshan Ali (Khattak)
Add API to read and write domain/devices/hostdev nodes. This patch only
adds the baseclass and hence is not useful on it's own. A more specific
subclass to represent PCI devices will be added in a following patch.
---
 libvirt-gconfig/Makefile.am|   2 +
 .../libvirt-gconfig-domain-device-private.h|   3 +
 libvirt-gconfig/libvirt-gconfig-domain-device.c|   2 +-
 libvirt-gconfig/libvirt-gconfig-domain-hostdev.c   | 190 +
 libvirt-gconfig/libvirt-gconfig-domain-hostdev.h   |  76 +
 libvirt-gconfig/libvirt-gconfig.h  |   1 +
 libvirt-gconfig/libvirt-gconfig.sym|  10 ++
 7 files changed, 283 insertions(+), 1 deletion(-)
 create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-hostdev.c
 create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-hostdev.h

diff --git a/libvirt-gconfig/Makefile.am b/libvirt-gconfig/Makefile.am
index f308539..a7c6c4e 100644
--- a/libvirt-gconfig/Makefile.am
+++ b/libvirt-gconfig/Makefile.am
@@ -50,6 +50,7 @@ GCONFIG_HEADER_FILES = \
libvirt-gconfig-domain-graphics-sdl.h \
libvirt-gconfig-domain-graphics-spice.h \
libvirt-gconfig-domain-graphics-vnc.h \
+   libvirt-gconfig-domain-hostdev.h \
libvirt-gconfig-domain-input.h \
libvirt-gconfig-domain-interface.h \
libvirt-gconfig-domain-interface-bridge.h \
@@ -141,6 +142,7 @@ GCONFIG_SOURCE_FILES = \
libvirt-gconfig-domain-graphics-sdl.c \
libvirt-gconfig-domain-graphics-spice.c \
libvirt-gconfig-domain-graphics-vnc.c \
+   libvirt-gconfig-domain-hostdev.c \
libvirt-gconfig-domain-input.c \
libvirt-gconfig-domain-interface.c \
libvirt-gconfig-domain-interface-bridge.c \
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-device-private.h 
b/libvirt-gconfig/libvirt-gconfig-domain-device-private.h
index 062c0e2..c45e1df 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-device-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-device-private.h
@@ -43,6 +43,9 @@ GVirConfigDomainDevice *
 gvir_config_domain_graphics_new_from_tree(GVirConfigXmlDoc *doc,
   xmlNodePtr tree);
 GVirConfigDomainDevice *
+gvir_config_domain_hostdev_new_from_tree(GVirConfigXmlDoc *doc,
+ xmlNodePtr tree);
+GVirConfigDomainDevice *
 gvir_config_domain_interface_new_from_tree(GVirConfigXmlDoc *doc,
xmlNodePtr tree);
 GVirConfigDomainDevice *
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-device.c 
b/libvirt-gconfig/libvirt-gconfig-domain-device.c
index 3d2b9b3..8a75cea 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-device.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-device.c
@@ -66,7 +66,7 @@ gvir_config_domain_device_new_from_tree(GVirConfigXmlDoc *doc,
 } else if (xmlStrEqual(tree->name, (xmlChar*)"lease")) {
 goto unimplemented;
 } else if (xmlStrEqual(tree->name, (xmlChar*)"hostdev")) {
-goto unimplemented;
+return gvir_config_domain_hostdev_new_from_tree(doc, tree);
 } else if (xmlStrEqual(tree->name, (xmlChar*)"redirdev")) {
 type = GVIR_CONFIG_TYPE_DOMAIN_REDIRDEV;
 } else if (xmlStrEqual(tree->name, (xmlChar*)"smartcard")) {
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-hostdev.c 
b/libvirt-gconfig/libvirt-gconfig-domain-hostdev.c
new file mode 100644
index 000..205878e
--- /dev/null
+++ b/libvirt-gconfig/libvirt-gconfig-domain-hostdev.c
@@ -0,0 +1,190 @@
+/*
+ * libvirt-gconfig-domain-hostdev.c: libvirt domain hostdev configuration
+ *
+ * Copyright (C) 2016 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
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * .
+ *
+ * Authors: Zeeshan Ali (Khattak) 
+ *  Christophe Fergeau 
+ */
+
+#include 
+
+#include "libvirt-gconfig/libvirt-gconfig.h"
+#include "libvirt-gconfig/libvirt-gconfig-private.h"
+
+#define GVIR_CONFIG_DOMAIN_HOSTDEV_GET_PRIVATE(obj) \
+(G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_HOSTDEV,