From nobody Fri Dec 19 20:15:56 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1587477130; cv=none; d=zohomail.com; s=zohoarc; b=IewXEpaYdVmZrRH/Ds27Z4NAsySkof+tz1Xe8ehmiKM13Z08jpaI+va6EaM2N1o346nDVZXbE4n3arsv0SOAC5dY8jDQCE3FKJFNLIIhlIQtPFnJPmWOoA0DLq5F/7tOx9qZKWyVrOT22sULusVnD1Zj6Wd8g3CUj7Ag7oWHGzs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587477130; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nom9KyXWOTn8CRuafJtBRruZCGpHlDv7eIDxqRnCAbU=; b=jO//i+zDbP0V7Sn0speh40v0e/s8SPeM539Y5c4kYn1OC9W93PGQubPGY+VZLJbS2UEmPNB9uiM8BfFs2b+sNCWQSQXomzCVy//F9o1PAd67hbr4U3yiUg1i6vH48Ej5LrF1IzrFtfxOIAgjDJqTSI2bQ/3w7ky/ORyKM9570Bs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1587477130297944.0456173644234; Tue, 21 Apr 2020 06:52:10 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-502-yDY3KDU6PDCMlI7CZKA5LA-1; Tue, 21 Apr 2020 09:52:07 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 79BDA801E6D; Tue, 21 Apr 2020 13:52:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 05BFA1036D28; Tue, 21 Apr 2020 13:52:01 +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 ACA951819ADC; Tue, 21 Apr 2020 13:52:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 03LDpx2D003860 for ; Tue, 21 Apr 2020 09:51:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6A2AE20292BF; Tue, 21 Apr 2020 13:51:59 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 663EF2093CE5 for ; Tue, 21 Apr 2020 13:51:57 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 18DCF101A55E for ; Tue, 21 Apr 2020 13:51:57 +0000 (UTC) Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-354-lmrbVf7cPJurQVConA3zPA-1; Tue, 21 Apr 2020 09:51:54 -0400 Received: by mail-wm1-f54.google.com with SMTP id u127so3779340wmg.1 for ; Tue, 21 Apr 2020 06:51:54 -0700 (PDT) Received: from localhost.localdomain (public-gprs377075.centertel.pl. [37.47.104.52]) by smtp.gmail.com with ESMTPSA id q10sm3981826wrv.95.2020.04.21.06.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2020 06:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587477128; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=nom9KyXWOTn8CRuafJtBRruZCGpHlDv7eIDxqRnCAbU=; b=YSbLGYFFZALl0iOtk/KUdr8Jl1OZ88DPeaC8+6cmf9A7ip5bwt5o+fPUcC2f5kOtNX1tUY 1emHzORFZgQ1p3NQJSvqV7/SdVPqJdErAroCnQDgzMctuBZZhvxC0+Zy6dgpLYrxqcFS3c O9ogcysD8snz9O3L3qdKkqZt3BtjTVc= X-MC-Unique: yDY3KDU6PDCMlI7CZKA5LA-1 X-MC-Unique: lmrbVf7cPJurQVConA3zPA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JFq6c7RWRQXoXFq+CaUhlHZGDF1batb3aOsT8sye8yg=; b=a+x5/oTsBdCxmLEWa8r7TgXjnw1VtidrZOhTojm6W4ZvSA/vbdO5pSxZseWiMBoH32 CTxjeoK96j98KQcJKb+bgI5h8IfB4eoNaepyASosnBAXZLcYp3RlBNibCyecaAH2PmA4 PvrPiazoCGWjpow2KewMFWSzJNBgx0lJXtgyCeNLE3skwdXT3pIH4KfC82niBUDQZNMA MSi2UWGdHZTk38xWkwEV101aJxxSPj0vMuPSzFe5dtZ7/sZnp6wdh9h3nxdf5kjaVY7/ OIPUvryzbtaBoN+ybI/whyLOQZAP1IT6JeRm4Y4j/w6VybCYR0/sXhvPmR6/yEaN6zYy 3jYg== X-Gm-Message-State: AGi0PuYnH17zzqU2+r5yBlHR5sC+vQ9VgRt85X0tYjQ4IY6ggkptFeRd 8PBW5p8jajXsN+/6aqajS/12CHR1Mro= X-Google-Smtp-Source: APiQypJ6zQAn22aN0WyrjTdBsB4XePsEpLf4hlHfxY6yrngr95ISJs8LmkbTvpwhJKyR0uX84ynJeg== X-Received: by 2002:a05:600c:218e:: with SMTP id e14mr5357408wme.140.1587477053182; Tue, 21 Apr 2020 06:50:53 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH v2 37/40] qemu: convert virQEMUDriverConfig to GObject Date: Tue, 21 Apr 2020 15:49:18 +0200 Message-Id: <20200421134921.3717019-38-r4f4rfs@gmail.com> In-Reply-To: <20200421134921.3717019-1-r4f4rfs@gmail.com> References: <20200421134921.3717019-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 03LDpx2D003860 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/qemu/qemu_conf.c | 36 ++++++++++++++++++------------------ src/qemu/qemu_conf.h | 19 ++++++++++++------- src/qemu/qemu_driver.c | 2 +- tests/domaincapstest.c | 2 +- tests/testutilsqemu.c | 2 +- 5 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index c29b543b16..1e7d1a8e9d 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -69,18 +69,21 @@ VIR_LOG_INIT("qemu.qemu_conf"); #define QEMU_MIGRATION_PORT_MIN 49152 #define QEMU_MIGRATION_PORT_MAX 49215 =20 -static virClassPtr virQEMUDriverConfigClass; -static void virQEMUDriverConfigDispose(void *obj); +G_DEFINE_TYPE(virQEMUDriverConfig, vir_qemu_driver_config, G_TYPE_OBJECT); +static void virQEMUDriverConfigFinalize(GObject *obj); =20 -static int virQEMUConfigOnceInit(void) +static void +vir_qemu_driver_config_init(virQEMUDriverConfig *cfg G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(virQEMUDriverConfig, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virQEMUConfig); +static void +vir_qemu_driver_config_class_init(virQEMUDriverConfigClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virQEMUDriverConfigFinalize; +} =20 =20 static void @@ -106,13 +109,8 @@ qemuDriverUnlock(virQEMUDriverPtr driver) virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged, const char *root) { - g_autoptr(virQEMUDriverConfig) cfg =3D NULL; - - if (virQEMUConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(virQEMUDriverConfigClass))) - return NULL; + g_autoptr(virQEMUDriverConfig) cfg =3D + VIR_QEMU_DRIVER_CONFIG(g_object_new(VIR_TYPE_QEMU_DRIVER_CONFIG, N= ULL)); =20 if (root) { cfg->uri =3D g_strdup_printf("qemu:///embed?root=3D%s", root); @@ -294,9 +292,9 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool priv= ileged, } =20 =20 -static void virQEMUDriverConfigDispose(void *obj) +static void virQEMUDriverConfigFinalize(GObject *obj) { - virQEMUDriverConfigPtr cfg =3D obj; + virQEMUDriverConfigPtr cfg =3D VIR_QEMU_DRIVER_CONFIG(obj); =20 virBitmapFree(cfg->namespaces); =20 @@ -369,6 +367,8 @@ static void virQEMUDriverConfigDispose(void *obj) VIR_FREE(cfg->swtpmStorageDir); =20 virStringListFree(cfg->capabilityfilters); + + G_OBJECT_CLASS(vir_qemu_driver_config_parent_class)->finalize(obj); } =20 =20 @@ -1229,7 +1229,7 @@ virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMU= DriverPtr driver) { virQEMUDriverConfigPtr conf; qemuDriverLock(driver); - conf =3D virObjectRef(driver->config); + conf =3D g_object_ref(driver->config); qemuDriverUnlock(driver); return conf; } diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index b9ef4551a3..0a07188962 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -48,15 +48,13 @@ #include "virfile.h" #include "virfilecache.h" #include "virfirmware.h" +#include =20 #define QEMU_DRIVER_NAME "QEMU" =20 typedef struct _virQEMUDriver virQEMUDriver; typedef virQEMUDriver *virQEMUDriverPtr; =20 -typedef struct _virQEMUDriverConfig virQEMUDriverConfig; -typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; - /* Main driver config. The data in these object * instances is immutable, so can be accessed * without locking. Threads must, however, hold @@ -65,15 +63,15 @@ typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; * * eg * qemuDriverLock(driver); - * virQEMUDriverConfigPtr cfg =3D virObjectRef(driver->config); + * virQEMUDriverConfigPtr cfg =3D g_object_ref(driver->config); * qemuDriverUnlock(driver); * * ...do stuff with 'cfg'.. * - * virObjectUnref(cfg); + * g_object_unref(cfg); */ struct _virQEMUDriverConfig { - virObject parent; + GObject parent; =20 char *uri; =20 @@ -220,7 +218,14 @@ struct _virQEMUDriverConfig { char **capabilityfilters; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUDriverConfig, virObjectUnref); +#define VIR_TYPE_QEMU_DRIVER_CONFIG vir_qemu_driver_config_get_type() +G_DECLARE_FINAL_TYPE(virQEMUDriverConfig, + vir_qemu_driver_config, + VIR, + QEMU_DRIVER_CONFIG, + GObject); +typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; + =20 =20 /* Main driver state */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 346edb47d6..4d0f76fb21 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1129,7 +1129,7 @@ qemuStateCleanup(void) if (qemu_driver->lockFD !=3D -1) virPidFileRelease(qemu_driver->config->stateDir, "driver", qemu_dr= iver->lockFD); =20 - virObjectUnref(qemu_driver->config); + g_clear_object(&qemu_driver->config); virMutexDestroy(&qemu_driver->lock); VIR_FREE(qemu_driver); =20 diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 2393e312d1..1bbd6a3e61 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -450,7 +450,7 @@ mymain(void) * file has been added, run "VIR_TEST_REGENERATE_OUTPUT=3D1 make check= ". */ =20 - virObjectUnref(cfg); + g_clear_object(&cfg); =20 virFileWrapperClearPrefixes(); =20 diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index eece670aa0..e149e36ffe 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -309,7 +309,7 @@ void qemuTestDriverFree(virQEMUDriver *driver) virObjectUnref(driver->qemuCapsCache); g_clear_object(&driver->xmlopt); g_clear_object(&driver->caps); - virObjectUnref(driver->config); + g_clear_object(&driver->config); virObjectUnref(driver->securityManager); } =20 --=20 2.25.3