From nobody Sun Apr 28 23:42:31 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1548335987362465.7484083151944; Thu, 24 Jan 2019 05:19:47 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8E3AF7FD67; Thu, 24 Jan 2019 13:19:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5B8B326332; Thu, 24 Jan 2019 13:19:45 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 0CCE13F602; Thu, 24 Jan 2019 13:19:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0ODJh4Q017109 for ; Thu, 24 Jan 2019 08:19:43 -0500 Received: by smtp.corp.redhat.com (Postfix) id 75D9526332; Thu, 24 Jan 2019 13:19:43 +0000 (UTC) Received: from natto.ory.fergeau.eu (unknown [10.48.1.111]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4DB7B261A8 for ; Thu, 24 Jan 2019 13:19:40 +0000 (UTC) Received: by natto.ory.fergeau.eu (Postfix, from userid 1000) id B071361F906; Thu, 24 Jan 2019 14:19:39 +0100 (CET) From: Christophe Fergeau To: libvir-list@redhat.com Date: Thu, 24 Jan 2019 14:19:36 +0100 Message-Id: <20190124131936.4030-1-cfergeau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [libvirt-glib] gconfig: Add gvir_config_storage_vol_target_set_features X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 24 Jan 2019 13:19:46 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Only one feature is supported at the moment, 'lazy refcount' Signed-off-by: Christophe Fergeau Reviewed-by: Cole Robinson --- .../libvirt-gconfig-storage-vol-target.c | 14 ++++++++++++++ .../libvirt-gconfig-storage-vol-target.h | 6 ++++++ libvirt-gconfig/libvirt-gconfig.sym | 6 ++++++ libvirt-gconfig/tests/test-domain-create.c | 1 + 4 files changed, 27 insertions(+) diff --git a/libvirt-gconfig/libvirt-gconfig-storage-vol-target.c b/libvirt= -gconfig/libvirt-gconfig-storage-vol-target.c index 751c950c..300d3927 100644 --- a/libvirt-gconfig/libvirt-gconfig-storage-vol-target.c +++ b/libvirt-gconfig/libvirt-gconfig-storage-vol-target.c @@ -109,3 +109,17 @@ void gvir_config_storage_vol_target_set_compat(GVirCon= figStorageVolTarget *targe gvir_config_object_set_node_content(GVIR_CONFIG_OBJECT(target), "compat", compat); } + +void gvir_config_storage_vol_target_set_features(GVirConfigStorageVolTarge= t *target, + guint64 features) +{ + g_return_if_fail(GVIR_CONFIG_IS_STORAGE_VOL_TARGET(target)); + g_return_if_fail((features & ~GVIR_CONFIG_STORAGE_VOL_TARGET_FEATURE_L= AZY_REFCOUNT) =3D=3D 0); + + if ((features & GVIR_CONFIG_STORAGE_VOL_TARGET_FEATURE_LAZY_REFCOUNT) = !=3D 0) { + GVirConfigObject *features_node; + features_node =3D gvir_config_object_replace_child(GVIR_CONFIG_OBJ= ECT(target), "features"); + gvir_config_object_set_node_content(features_node, "lazy_refcount"= , ""); + g_object_unref(features_node); + } +} diff --git a/libvirt-gconfig/libvirt-gconfig-storage-vol-target.h b/libvirt= -gconfig/libvirt-gconfig-storage-vol-target.h index 2030e734..f1b50035 100644 --- a/libvirt-gconfig/libvirt-gconfig-storage-vol-target.h +++ b/libvirt-gconfig/libvirt-gconfig-storage-vol-target.h @@ -69,6 +69,12 @@ void gvir_config_storage_vol_target_set_format(GVirConfi= gStorageVolTarget *targe const char *format); void gvir_config_storage_vol_target_set_permissions(GVirConfigStorageVolTa= rget *target, GVirConfigStoragePermi= ssions *perms); +typedef enum { + GVIR_CONFIG_STORAGE_VOL_TARGET_FEATURE_LAZY_REFCOUNT =3D 1 << 0 +} GVirConfigStorageVolTargetFeatures; + +void gvir_config_storage_vol_target_set_features(GVirConfigStorageVolTarge= t *target, + guint64 features); =20 G_END_DECLS =20 diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-= gconfig.sym index ee5bf8ad..2d7486ea 100644 --- a/libvirt-gconfig/libvirt-gconfig.sym +++ b/libvirt-gconfig/libvirt-gconfig.sym @@ -779,4 +779,10 @@ global: gvir_config_domain_set_custom_xml_ns_children; } LIBVIRT_GCONFIG_0.2.4; =20 +LIBVIRT_GCONFIG_2.0.1 { +global: + gvir_config_storage_vol_target_features_get_type; + gvir_config_storage_vol_target_set_features; +} LIBVIRT_GCONFIG_2.0.0; + # .... define new API here using predicted next version number .... diff --git a/libvirt-gconfig/tests/test-domain-create.c b/libvirt-gconfig/t= ests/test-domain-create.c index 79c242f4..f8fd6d51 100644 --- a/libvirt-gconfig/tests/test-domain-create.c +++ b/libvirt-gconfig/tests/test-domain-create.c @@ -498,6 +498,7 @@ int main(int argc, char **argv) gvir_config_storage_vol_target_set_format(vol_target, "qcow2"); gvir_config_storage_vol_target_set_permissions(vol_target, perms); gvir_config_storage_vol_target_set_compat(vol_target, "1.1"); + gvir_config_storage_vol_target_set_features(vol_target, GVIR_CONFIG_ST= ORAGE_VOL_TARGET_FEATURE_LAZY_REFCOUNT); g_object_unref(G_OBJECT(perms)); gvir_config_storage_vol_set_target(vol, vol_target); g_object_unref(G_OBJECT(vol_target)); --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list