From nobody Sat Apr 27 14:23:21 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.zoho.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 1486569985950820.9417890436628; Wed, 8 Feb 2017 08:06:25 -0800 (PST) Received: from localhost ([::1]:60227 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbUlD-0005mF-N0 for importer@patchew.org; Wed, 08 Feb 2017 11:06:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51444) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbUjO-0004ge-N6 for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cbUjL-0004vD-Fy for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:54156) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cbUjL-0004v4-B5 for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:27 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 82B567FB7F for ; Wed, 8 Feb 2017 16:04:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-50.ams2.redhat.com [10.36.116.50]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v18G4Q7H007947 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 8 Feb 2017 11:04:27 -0500 Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9BF531138649; Wed, 8 Feb 2017 17:04:24 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Wed, 8 Feb 2017 17:04:23 +0100 Message-Id: <1486569864-17005-2-git-send-email-armbru@redhat.com> In-Reply-To: <1486569864-17005-1-git-send-email-armbru@redhat.com> References: <1486569864-17005-1-git-send-email-armbru@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 08 Feb 2017 16:04:27 +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/2] numa: Turn simple union NumaOptions into a flat union 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: , 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" Simple unions are simpler than flat unions in the schema, but more complicated in C and on the QMP wire: there's extra indirection in C and extra nesting on the wire, both pointless. They're best avoided in new code. NumaOptions isn't new, but it's only used internally, not in QMP. Convert it to a flat union. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake --- numa.c | 4 ++-- qapi-schema.json | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/numa.c b/numa.c index 9f56be9..e01cb54 100644 --- a/numa.c +++ b/numa.c @@ -228,8 +228,8 @@ static int parse_numa(void *opaque, QemuOpts *opts, Err= or **errp) } =20 switch (object->type) { - case NUMA_OPTIONS_KIND_NODE: - numa_node_parse(object->u.node.data, opts, &err); + case NUMA_OPTIONS_TYPE_NODE: + numa_node_parse(&object->u.node, opts, &err); if (err) { goto end; } diff --git a/qapi-schema.json b/qapi-schema.json index cbdffdd..f9a9941 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -5545,6 +5545,12 @@ 'events' : [ 'InputEvent' ] } } =20 ## +# @NumaOptionsType: +## +{ 'enum': 'NumaOptionsType', + 'data': [ 'node' ] } + +## # @NumaOptions: # # A discriminated record of NUMA options. (for OptsVisitor) @@ -5552,6 +5558,8 @@ # Since: 2.1 ## { 'union': 'NumaOptions', + 'base': { 'type': 'NumaOptionsType' }, + 'discriminator': 'type', 'data': { 'node': 'NumaNodeOptions' }} =20 --=20 2.7.4 From nobody Sat Apr 27 14:23:21 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.zoho.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 1486569994710565.3795660569369; Wed, 8 Feb 2017 08:06:34 -0800 (PST) Received: from localhost ([::1]:60228 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbUlN-0005wB-5X for importer@patchew.org; Wed, 08 Feb 2017 11:06:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbUjR-0004hq-M7 for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cbUjL-0004vQ-NN for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52488) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cbUjL-0004v7-GI for qemu-devel@nongnu.org; Wed, 08 Feb 2017 11:04:27 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A53C4C04B31E for ; Wed, 8 Feb 2017 16:04:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-50.ams2.redhat.com [10.36.116.50]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v18G4Q8b007950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 8 Feb 2017 11:04:27 -0500 Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9F2D9113864B; Wed, 8 Feb 2017 17:04:24 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Wed, 8 Feb 2017 17:04:24 +0100 Message-Id: <1486569864-17005-3-git-send-email-armbru@redhat.com> In-Reply-To: <1486569864-17005-1-git-send-email-armbru@redhat.com> References: <1486569864-17005-1-git-send-email-armbru@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 08 Feb 2017 16:04:27 +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/2] net: Turn simple union NetLegacyOptions into a flat union 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: , 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" Simple unions are simpler than flat unions in the schema, but more complicated in C and on the QMP wire: there's extra indirection in C and extra nesting on the wire, both pointless. They're best avoided in new code. NetLegacyOptions isn't new, but it's only used internally, not in QMP. Convert it to a flat union. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake --- net/net.c | 44 ++++++++++++++++++++++---------------------- qapi-schema.json | 9 +++++++++ 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/net/net.c b/net/net.c index 939fe31..9e0d309b4 100644 --- a/net/net.c +++ b/net/net.c @@ -992,47 +992,47 @@ static int net_client_init1(const void *object, bool = is_netdev, Error **errp) =20 /* Map the old options to the new flat type */ switch (opts->type) { - case NET_LEGACY_OPTIONS_KIND_NONE: + case NET_LEGACY_OPTIONS_TYPE_NONE: return 0; /* nothing to do */ - case NET_LEGACY_OPTIONS_KIND_NIC: + case NET_LEGACY_OPTIONS_TYPE_NIC: legacy.type =3D NET_CLIENT_DRIVER_NIC; - legacy.u.nic =3D *opts->u.nic.data; + legacy.u.nic =3D opts->u.nic; break; - case NET_LEGACY_OPTIONS_KIND_USER: + case NET_LEGACY_OPTIONS_TYPE_USER: legacy.type =3D NET_CLIENT_DRIVER_USER; - legacy.u.user =3D *opts->u.user.data; + legacy.u.user =3D opts->u.user; break; - case NET_LEGACY_OPTIONS_KIND_TAP: + case NET_LEGACY_OPTIONS_TYPE_TAP: legacy.type =3D NET_CLIENT_DRIVER_TAP; - legacy.u.tap =3D *opts->u.tap.data; + legacy.u.tap =3D opts->u.tap; break; - case NET_LEGACY_OPTIONS_KIND_L2TPV3: + case NET_LEGACY_OPTIONS_TYPE_L2TPV3: legacy.type =3D NET_CLIENT_DRIVER_L2TPV3; - legacy.u.l2tpv3 =3D *opts->u.l2tpv3.data; + legacy.u.l2tpv3 =3D opts->u.l2tpv3; break; - case NET_LEGACY_OPTIONS_KIND_SOCKET: + case NET_LEGACY_OPTIONS_TYPE_SOCKET: legacy.type =3D NET_CLIENT_DRIVER_SOCKET; - legacy.u.socket =3D *opts->u.socket.data; + legacy.u.socket =3D opts->u.socket; break; - case NET_LEGACY_OPTIONS_KIND_VDE: + case NET_LEGACY_OPTIONS_TYPE_VDE: legacy.type =3D NET_CLIENT_DRIVER_VDE; - legacy.u.vde =3D *opts->u.vde.data; + legacy.u.vde =3D opts->u.vde; break; - case NET_LEGACY_OPTIONS_KIND_DUMP: + case NET_LEGACY_OPTIONS_TYPE_DUMP: legacy.type =3D NET_CLIENT_DRIVER_DUMP; - legacy.u.dump =3D *opts->u.dump.data; + legacy.u.dump =3D opts->u.dump; break; - case NET_LEGACY_OPTIONS_KIND_BRIDGE: + case NET_LEGACY_OPTIONS_TYPE_BRIDGE: legacy.type =3D NET_CLIENT_DRIVER_BRIDGE; - legacy.u.bridge =3D *opts->u.bridge.data; + legacy.u.bridge =3D opts->u.bridge; break; - case NET_LEGACY_OPTIONS_KIND_NETMAP: + case NET_LEGACY_OPTIONS_TYPE_NETMAP: legacy.type =3D NET_CLIENT_DRIVER_NETMAP; - legacy.u.netmap =3D *opts->u.netmap.data; + legacy.u.netmap =3D opts->u.netmap; break; - case NET_LEGACY_OPTIONS_KIND_VHOST_USER: + case NET_LEGACY_OPTIONS_TYPE_VHOST_USER: legacy.type =3D NET_CLIENT_DRIVER_VHOST_USER; - legacy.u.vhost_user =3D *opts->u.vhost_user.data; + legacy.u.vhost_user =3D opts->u.vhost_user; break; default: abort(); @@ -1047,7 +1047,7 @@ static int net_client_init1(const void *object, bool = is_netdev, Error **errp) =20 /* Do not add to a vlan if it's a nic with a netdev=3D parameter. = */ if (netdev->type !=3D NET_CLIENT_DRIVER_NIC || - !opts->u.nic.data->has_netdev) { + !opts->u.nic.has_netdev) { peer =3D net_hub_add_port(net->has_vlan ? net->vlan : 0, NULL); } } diff --git a/qapi-schema.json b/qapi-schema.json index f9a9941..8ed5e2a 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3934,6 +3934,13 @@ 'opts': 'NetLegacyOptions' } } =20 ## +# @NetLegacyOptionsType: +## +{ 'enum': 'NetLegacyOptionsType', + 'data': ['none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde', + 'dump', 'bridge', 'netmap', 'vhost-user'] } + +## # @NetLegacyOptions: # # Like Netdev, but for use only by the legacy command line options @@ -3941,6 +3948,8 @@ # Since: 1.2 ## { 'union': 'NetLegacyOptions', + 'base': { 'type': 'NetLegacyOptionsType' }, + 'discriminator': 'type', 'data': { 'none': 'NetdevNoneOptions', 'nic': 'NetLegacyNicOptions', --=20 2.7.4