From nobody Fri May 16 08:00:03 2025 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.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1496824699708732.0795941866373; Wed, 7 Jun 2017 01:38:19 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 383CB61976; Wed, 7 Jun 2017 08:38:17 +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 14785176B2; Wed, 7 Jun 2017 08:38:17 +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 BDA09183269A; Wed, 7 Jun 2017 08:38:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v578bpK7004829 for ; Wed, 7 Jun 2017 04:37:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8844F7A451; Wed, 7 Jun 2017 08:37:51 +0000 (UTC) Received: from virval.usersys.redhat.com (dhcp129-92.brq.redhat.com [10.34.129.92]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 37B35757D9 for ; Wed, 7 Jun 2017 08:37:51 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 84B7F101938; Wed, 7 Jun 2017 10:37:46 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 383CB61976 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 383CB61976 From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 7 Jun 2017 10:37:38 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 13/20] qemu: Implement virSaveCookie object and callbacks 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 07 Jun 2017 08:38:18 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch implements a new save cookie object and callbacks for qemu driver. The actual useful content will be added in the object later. Signed-off-by: Jiri Denemark Reviewed-by: Pavel Hrdina --- Notes: Version 2: - no change src/qemu/qemu_conf.c | 2 +- src/qemu/qemu_domain.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++= ++-- src/qemu/qemu_domain.h | 9 ++++++ 3 files changed, 86 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index d02e776b0..73c33d678 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -911,7 +911,7 @@ virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver) &virQEMUDriverPrivateDataCallbacks, &virQEMUDriverDomainXMLNamespace, &virQEMUDriverDomainABIStability, - NULL); + &virQEMUDriverDomainSaveCookie); } =20 =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 814232164..80e9fea98 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -122,11 +122,13 @@ struct _qemuDomainLogContext { }; =20 static virClassPtr qemuDomainLogContextClass; +static virClassPtr qemuDomainSaveCookieClass; =20 static void qemuDomainLogContextDispose(void *obj); +static void qemuDomainSaveCookieDispose(void *obj); =20 static int -qemuDomainLogContextOnceInit(void) +qemuDomainOnceInit(void) { if (!(qemuDomainLogContextClass =3D virClassNew(virClassForObject(), "qemuDomainLogContext", @@ -134,10 +136,16 @@ qemuDomainLogContextOnceInit(void) qemuDomainLogContextDispo= se))) return -1; =20 + if (!(qemuDomainSaveCookieClass =3D virClassNew(virClassForObject(), + "qemuDomainSaveCookie", + sizeof(qemuDomainSaveCoo= kie), + qemuDomainSaveCookieDisp= ose))) + return -1; + return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainLogContext) +VIR_ONCE_GLOBAL_INIT(qemuDomain) =20 static void qemuDomainLogContextDispose(void *obj) @@ -4554,7 +4562,7 @@ qemuDomainLogContextPtr qemuDomainLogContextNew(virQE= MUDriverPtr driver, virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); qemuDomainLogContextPtr ctxt =3D NULL; =20 - if (qemuDomainLogContextInitialize() < 0) + if (qemuDomainInitialize() < 0) goto cleanup; =20 if (!(ctxt =3D virObjectNew(qemuDomainLogContextClass))) @@ -9105,3 +9113,68 @@ qemuDomainGetStorageSourceByDevstr(const char *devst= r, VIR_FREE(target); return src; } + + +static void +qemuDomainSaveCookieDispose(void *obj) +{ + qemuDomainSaveCookiePtr cookie =3D obj; + + VIR_DEBUG("cookie=3D%p", cookie); +} + + +qemuDomainSaveCookiePtr +qemuDomainSaveCookieNew(virDomainObjPtr vm ATTRIBUTE_UNUSED) +{ + qemuDomainSaveCookiePtr cookie =3D NULL; + + if (qemuDomainInitialize() < 0) + goto error; + + if (!(cookie =3D virObjectNew(qemuDomainSaveCookieClass))) + goto error; + + VIR_DEBUG("Save cookie %p", cookie); + + return cookie; + + error: + virObjectUnref(cookie); + return NULL; +} + + +static int +qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt ATTRIBUTE_UNUSED, + virObjectPtr *obj) +{ + qemuDomainSaveCookiePtr cookie =3D NULL; + + if (qemuDomainInitialize() < 0) + goto error; + + if (!(cookie =3D virObjectNew(qemuDomainSaveCookieClass))) + goto error; + + *obj =3D (virObjectPtr) cookie; + return 0; + + error: + virObjectUnref(cookie); + return -1; +} + + +static int +qemuDomainSaveCookieFormat(virBufferPtr buf ATTRIBUTE_UNUSED, + virObjectPtr obj ATTRIBUTE_UNUSED) +{ + return 0; +} + + +virSaveCookieCallbacks virQEMUDriverDomainSaveCookie =3D { + .parse =3D qemuDomainSaveCookieParse, + .format =3D qemuDomainSaveCookieFormat, +}; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index d0e2e0628..cc2e21bdf 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -416,6 +416,14 @@ struct qemuProcessEvent { typedef struct _qemuDomainLogContext qemuDomainLogContext; typedef qemuDomainLogContext *qemuDomainLogContextPtr; =20 +typedef struct _qemuDomainSaveCookie qemuDomainSaveCookie; +typedef qemuDomainSaveCookie *qemuDomainSaveCookiePtr; +struct _qemuDomainSaveCookie { + virObject parent; +}; + +qemuDomainSaveCookiePtr qemuDomainSaveCookieNew(virDomainObjPtr vm); + const char *qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, int phase); int qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job, @@ -638,6 +646,7 @@ extern virDomainXMLPrivateDataCallbacks virQEMUDriverPr= ivateDataCallbacks; extern virDomainXMLNamespace virQEMUDriverDomainXMLNamespace; extern virDomainDefParserConfig virQEMUDriverDomainDefParserConfig; extern virDomainABIStability virQEMUDriverDomainABIStability; +extern virSaveCookieCallbacks virQEMUDriverDomainSaveCookie; =20 int qemuDomainUpdateDeviceList(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob); --=20 2.13.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list