From nobody Sat May 4 15:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500307116039769.9010455355162; Mon, 17 Jul 2017 08:58:36 -0700 (PDT) Received: from localhost ([::1]:51152 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8Pn-0003vG-V2 for importer@patchew.org; Mon, 17 Jul 2017 11:58:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8Ny-0002mB-QD for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX8Nx-0007W5-4g for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44912) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dX8Nw-0007Vq-UK for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:37 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BA5F7C04B303; Mon, 17 Jul 2017 15:56:35 +0000 (UTC) Received: from red.redhat.com (ovpn-120-160.rdu2.redhat.com [10.10.120.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id 24F7F7E8E7; Mon, 17 Jul 2017 15:56:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com BA5F7C04B303 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eblake@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com BA5F7C04B303 From: Eric Blake To: qemu-devel@nongnu.org Date: Mon, 17 Jul 2017 10:56:28 -0500 Message-Id: <20170717155632.12754-2-eblake@redhat.com> In-Reply-To: <20170717155632.12754-1-eblake@redhat.com> References: <20170717155632.12754-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 17 Jul 2017 15:56:35 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1/5] qapi: Add QAPI_TO_QOBJECT() convenience macro X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: armbru@redhat.com, Michael Roth Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We have several callers that want to convert a QAPI C type into a QObject; right now all of them have to copy the same boilerplate of creating a visitor. A convenience macro makes this paradigm easier to type. Signed-off-by: Eric Blake --- include/qapi/qobject-output-visitor.h | 19 +++++++++++++++++++ qapi/qobject-output-visitor.c | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/include/qapi/qobject-output-visitor.h b/include/qapi/qobject-o= utput-visitor.h index e5a3490812..f6066ce537 100644 --- a/include/qapi/qobject-output-visitor.h +++ b/include/qapi/qobject-output-visitor.h @@ -16,6 +16,8 @@ #include "qapi/visitor.h" #include "qapi/qmp/qobject.h" +#include "qapi/error.h" +#include "qapi-visit.h" typedef struct QObjectOutputVisitor QObjectOutputVisitor; @@ -54,4 +56,21 @@ typedef struct QObjectOutputVisitor QObjectOutputVisitor; */ Visitor *qobject_output_visitor_new(QObject **result); +QObject *qapi_to_qobject(const void *src, + void (*visit_type)(Visitor *, const char *, + void **, Error **), + Error **errp); + +/* + * Create a QObject from a QAPI object @src of the given @type. + * + * Not usable on QAPI scalars (integers, strings, enums), nor on a + * QAPI object that references the 'any' type. @src must not be NULL. + */ +#define QAPI_TO_QOBJECT(type, src, err) \ + (qapi_to_qobject(1 ? (src) : (type *)NULL, \ + (void (*)(Visitor *, const char *, void**, \ + Error **))visit_type_ ## type, \ + err)) + #endif diff --git a/qapi/qobject-output-visitor.c b/qapi/qobject-output-visitor.c index 70be84ccb5..0b1f098fa1 100644 --- a/qapi/qobject-output-visitor.c +++ b/qapi/qobject-output-visitor.c @@ -251,3 +251,19 @@ Visitor *qobject_output_visitor_new(QObject **result) return &v->visitor; } + +QObject *qapi_to_qobject(const void *src, + void (*visit_type)(Visitor *, const char *, + void **, Error **), + Error **errp) +{ + Visitor *v; + void *s =3D (void *) src; /* cast away const */ + QObject *dst =3D NULL; + + v =3D qobject_output_visitor_new(&dst); + visit_type(v, NULL, &s, &error_abort); + visit_complete(v, &dst); + visit_free(v); + return dst; +} --=20 2.13.3 From nobody Sat May 4 15:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500307120592456.1297533784948; Mon, 17 Jul 2017 08:58:40 -0700 (PDT) Received: from localhost ([::1]:51153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8Pt-0003zu-B7 for importer@patchew.org; Mon, 17 Jul 2017 11:58:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8O2-0002os-M6 for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX8O1-0007Ys-RK for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44806) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dX8Nz-0007WW-Q8; Mon, 17 Jul 2017 11:56:39 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A449683F45; Mon, 17 Jul 2017 15:56:38 +0000 (UTC) Received: from red.redhat.com (ovpn-120-160.rdu2.redhat.com [10.10.120.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id F415760E3E; Mon, 17 Jul 2017 15:56:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A449683F45 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eblake@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A449683F45 From: Eric Blake To: qemu-devel@nongnu.org Date: Mon, 17 Jul 2017 10:56:29 -0500 Message-Id: <20170717155632.12754-3-eblake@redhat.com> In-Reply-To: <20170717155632.12754-1-eblake@redhat.com> References: <20170717155632.12754-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 17 Jul 2017 15:56:38 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 2/5] nbd: Use simpler QAPI_TO_QOBJECT() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Paolo Bonzini , armbru@redhat.com, "open list:Network Block Dev..." , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Use the new macro to avoid some boilerplate. Signed-off-by: Eric Blake --- block/nbd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/block/nbd.c b/block/nbd.c index a50d24b50a..f90ac76d1f 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -519,7 +519,6 @@ static void nbd_refresh_filename(BlockDriverState *bs, = QDict *options) BDRVNBDState *s =3D bs->opaque; QDict *opts =3D qdict_new(); QObject *saddr_qdict; - Visitor *ov; const char *host =3D NULL, *port =3D NULL, *path =3D NULL; if (s->saddr->type =3D=3D SOCKET_ADDRESS_TYPE_INET) { @@ -548,10 +547,9 @@ static void nbd_refresh_filename(BlockDriverState *bs,= QDict *options) "nbd://%s:%s", host, port); } - ov =3D qobject_output_visitor_new(&saddr_qdict); - visit_type_SocketAddress(ov, NULL, &s->saddr, &error_abort); - visit_complete(ov, &saddr_qdict); - visit_free(ov); + saddr_qdict =3D QAPI_TO_QOBJECT(SocketAddress, s->saddr, &error_abort); + assert(qobject_type(saddr_qdict) =3D=3D QTYPE_QDICT); + qdict_put_obj(opts, "server", saddr_qdict); if (s->export) { --=20 2.13.3 From nobody Sat May 4 15:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500307270879834.191409793248; Mon, 17 Jul 2017 09:01:10 -0700 (PDT) Received: from localhost ([::1]:51181 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8SJ-0006Zy-GA for importer@patchew.org; Mon, 17 Jul 2017 12:01:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57366) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8O8-0002sC-PS for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX8O8-0007at-2j for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45024) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dX8O3-0007Z9-Q2; Mon, 17 Jul 2017 11:56:43 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A6D257EBDB; Mon, 17 Jul 2017 15:56:42 +0000 (UTC) Received: from red.redhat.com (ovpn-120-160.rdu2.redhat.com [10.10.120.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id D9F3760E3E; Mon, 17 Jul 2017 15:56:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A6D257EBDB Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eblake@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A6D257EBDB From: Eric Blake To: qemu-devel@nongnu.org Date: Mon, 17 Jul 2017 10:56:30 -0500 Message-Id: <20170717155632.12754-4-eblake@redhat.com> In-Reply-To: <20170717155632.12754-1-eblake@redhat.com> References: <20170717155632.12754-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 17 Jul 2017 15:56:42 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 3/5] nfs: Use simpler QAPI_TO_QOBJECT() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , "open list:NFS" , Jeff Cody , Peter Lieven , armbru@redhat.com, Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Use the new macro to avoid some boilerplate. Signed-off-by: Eric Blake --- block/nfs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/block/nfs.c b/block/nfs.c index d8db419957..5f3045c1af 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -819,7 +819,6 @@ static void nfs_refresh_filename(BlockDriverState *bs, = QDict *options) NFSClient *client =3D bs->opaque; QDict *opts =3D qdict_new(); QObject *server_qdict; - Visitor *ov; qdict_put_str(opts, "driver", "nfs"); @@ -840,9 +839,9 @@ static void nfs_refresh_filename(BlockDriverState *bs, = QDict *options) "nfs://%s%s", client->server->host, client->path); } - ov =3D qobject_output_visitor_new(&server_qdict); - visit_type_NFSServer(ov, NULL, &client->server, &error_abort); - visit_complete(ov, &server_qdict); + server_qdict =3D QAPI_TO_QOBJECT(NFSServer, client->server, &error_abo= rt); + assert(qobject_type(server_qdict) =3D=3D QTYPE_QDICT); + qdict_put_obj(opts, "server", server_qdict); qdict_put_str(opts, "path", client->path); @@ -865,7 +864,6 @@ static void nfs_refresh_filename(BlockDriverState *bs, = QDict *options) qdict_put_int(opts, "debug", client->debug); } - visit_free(ov); qdict_flatten(opts); bs->full_open_options =3D opts; } --=20 2.13.3 From nobody Sat May 4 15:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500307422828361.59747233399753; Mon, 17 Jul 2017 09:03:42 -0700 (PDT) Received: from localhost ([::1]:51248 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8Uk-0000Bi-GV for importer@patchew.org; Mon, 17 Jul 2017 12:03:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8O8-0002sO-V5 for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX8O8-0007ay-8A for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45164) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dX8O4-0007ZT-SD; Mon, 17 Jul 2017 11:56:44 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C2297C04B31E; Mon, 17 Jul 2017 15:56:43 +0000 (UTC) Received: from red.redhat.com (ovpn-120-160.rdu2.redhat.com [10.10.120.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id DBE187EBCF; Mon, 17 Jul 2017 15:56:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C2297C04B31E Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eblake@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C2297C04B31E From: Eric Blake To: qemu-devel@nongnu.org Date: Mon, 17 Jul 2017 10:56:31 -0500 Message-Id: <20170717155632.12754-5-eblake@redhat.com> In-Reply-To: <20170717155632.12754-1-eblake@redhat.com> References: <20170717155632.12754-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 17 Jul 2017 15:56:43 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 4/5] qapi: Use simpler QAPI_TO_QOBJECT() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , armbru@redhat.com, "open list:Block layer core" , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Use the new macro to avoid some boilerplate. Signed-off-by: Eric Blake --- block/qapi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/block/qapi.c b/block/qapi.c index 080eb8f115..23e666f108 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -675,14 +675,13 @@ void bdrv_image_info_specific_dump(fprintf_function f= unc_fprintf, void *f, ImageInfoSpecific *info_spec) { QObject *obj, *data; - Visitor *v =3D qobject_output_visitor_new(&obj); - visit_type_ImageInfoSpecific(v, NULL, &info_spec, &error_abort); - visit_complete(v, &obj); + obj =3D QAPI_TO_QOBJECT(ImageInfoSpecific, info_spec, &error_abort); + + assert(qobject_type(obj) =3D=3D QTYPE_QDICT); data =3D qdict_get(qobject_to_qdict(obj), "data"); dump_qobject(func_fprintf, f, 1, data); qobject_decref(obj); - visit_free(v); } void bdrv_image_info_dump(fprintf_function func_fprintf, void *f, --=20 2.13.3 From nobody Sat May 4 15:54:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500307125933776.4951717537224; Mon, 17 Jul 2017 08:58:45 -0700 (PDT) Received: from localhost ([::1]:51154 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8Pz-00044U-G6 for importer@patchew.org; Mon, 17 Jul 2017 11:58:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX8O9-0002sg-6J for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX8O8-0007b4-Dd for qemu-devel@nongnu.org; Mon, 17 Jul 2017 11:56:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48272) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dX8O6-0007Zk-6B; Mon, 17 Jul 2017 11:56:46 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 150F44A701; Mon, 17 Jul 2017 15:56:45 +0000 (UTC) Received: from red.redhat.com (ovpn-120-160.rdu2.redhat.com [10.10.120.160]) by smtp.corp.redhat.com (Postfix) with ESMTP id 000D77E912; Mon, 17 Jul 2017 15:56:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 150F44A701 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=eblake@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 150F44A701 From: Eric Blake To: qemu-devel@nongnu.org Date: Mon, 17 Jul 2017 10:56:32 -0500 Message-Id: <20170717155632.12754-6-eblake@redhat.com> In-Reply-To: <20170717155632.12754-1-eblake@redhat.com> References: <20170717155632.12754-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 17 Jul 2017 15:56:45 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 5/5] blockdev: Use simpler QAPI_TO_QOBJECT() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , armbru@redhat.com, "open list:Block layer core" , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Use the new macro to avoid some boilerplate. Signed-off-by: Eric Blake --- blockdev.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/blockdev.c b/blockdev.c index 7f53cc8bb3..bf26c38195 100644 --- a/blockdev.c +++ b/blockdev.c @@ -3884,35 +3884,30 @@ void qmp_blockdev_add(BlockdevOptions *options, Err= or **errp) { BlockDriverState *bs; QObject *obj; - Visitor *v =3D qobject_output_visitor_new(&obj); QDict *qdict; Error *local_err =3D NULL; - visit_type_BlockdevOptions(v, NULL, &options, &local_err); + obj =3D QAPI_TO_QOBJECT(BlockdevOptions, options, &local_err); if (local_err) { error_propagate(errp, local_err); - goto fail; + return; } - visit_complete(v, &obj); qdict =3D qobject_to_qdict(obj); qdict_flatten(qdict); if (!qdict_get_try_str(qdict, "node-name")) { error_setg(errp, "'node-name' must be specified for the root node"= ); - goto fail; + return; } bs =3D bds_tree_init(qdict, errp); if (!bs) { - goto fail; + return; } QTAILQ_INSERT_TAIL(&monitor_bdrv_states, bs, monitor_list); - -fail: - visit_free(v); } void qmp_blockdev_del(const char *node_name, Error **errp) --=20 2.13.3