From patchwork Tue May 29 16:41:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 922245 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="bCe2Jkg1"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40wKLh54Rtz9s1R for ; Wed, 30 May 2018 02:44:12 +1000 (AEST) Received: from localhost ([::1]:33955 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNhjG-0003jw-Do for incoming@patchwork.ozlabs.org; Tue, 29 May 2018 12:44:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47808) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNhh1-0002Wc-Ua for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fNhgx-0003tF-FZ for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:51 -0400 Received: from mail-db5eur01on0139.outbound.protection.outlook.com ([104.47.2.139]:7424 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fNhgx-0003qD-87 for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dUnBTEYvxNvWC3eFiKlsVqKxrdT4UYPpPoO0inzcS+0=; b=bCe2Jkg1EcJHd83nxCVoa4NFMbyn3eJNWwGyQykz7odmdRiHp5bfuXtV8XMs3wUGRu7St2HS9E9MVrpF8RSvGDA1r90Prukp02vc645vkDEnAhRJ5vF+IM8zmUxUi2knJPKdsrQyvwDHTD8DuUXe+mV2sku0d3fk0x8DinSTTnE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; Received: from xantnef-ws.sw.ru (195.214.232.6) by AM0PR08MB3345.eurprd08.prod.outlook.com (2603:10a6:208:5f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.797.11; Tue, 29 May 2018 16:41:45 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Date: Tue, 29 May 2018 19:41:31 +0300 Message-Id: <1527612092-65980-2-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1527612092-65980-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1527612092-65980-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0102CA0008.eurprd01.prod.exchangelabs.com (2603:10a6:7:14::21) To AM0PR08MB3345.eurprd08.prod.outlook.com (2603:10a6:208:5f::18) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM0PR08MB3345; X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 3:75xlft+tpPDop+iyYu29jeAmL5e1K0vvDkCkwf+WzlcvJ06JGAp2wr+pSzFNqa0UW+a86jR1sMmUZxOAEgJUcOT4utfGHFUDJEQweAonQKVqWlRKUZAqfoD9XUfDt3KOJ6Lf8u4o8bG2WLVCPozxAAlBw90nxKH4hhnMRb9zR2hOpUp3J/W1l5Erg0X/UExdg25071/gZPXPhccRpurl+V62z2VztNknSGLNdk2Kape/9xfappEs4h9vCM4E2tFu; 25:6xL9CMmZECTDXfLF5+mMP2d6SPrS/oDKizTfu+D/xk1qlK7GDEkTnbHw1Q1o9c2tL5+hJ2C19xEZQVMG02HjhclFapRcRrMEmrbhM1j+IniZY+Xx43cftMK39pCtJE0iuVN3KJI6ZzNsfPz66+gDXqThCQ8rrk2Hx42vUendH5BPJ2rGG/n4MfpzJYswtS1U/awr2kmFjhzKIpQQ259gl2zXaOob8jlrHAYZktRjuyCGZ7UdbXHXGlv6WlADT6B4bxdINsO2xuTKT7zVwMq6Wc57m8enC3Z8bYBMCdYQbXlEemSTawbbsEb26n+vMYQ012YiuSyIW2vBQArj6nlzxQ==; 31:y2cxKpyxHu4mmhq8PJZJDE4ePLCZFYgClX4vJJ+wFXc9Jn1NB+q4jRMtR2XtPFMlgrIfFzpk28D/KM3jLusoW835k1ME7lZ/qrpdIYUaHb2fnSr3N/46PWlNtmCC6aVzz750NzUVuzsxDeFfZmVd9FWMS0RRW9NcAbADWAYTJ+4xiAo4KLdszthC2IvPo81zvZg7Ndb/X2vWBeloEe2Bgbc8JXYoF6VwYQS0xSPj/5U= X-MS-TrafficTypeDiagnostic: AM0PR08MB3345: X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 20:4FEt0Zch6X3u9jMXl3qmSQ/mA5yTmdHMGIB3+9JYQeOv5iKoRkdEHQThyhxXCr8BsR9JVJG0zMcN2PhO5CGBe1HC3WL8nNk+Wm/eMBhShX8ftFC+8OZivv6SWRe38l17UslYViXCu8TcFsp9C6L2sbyM6DkYNorXs1d/tse7r9N3KO1ofMFtA2hYTNk6dUwtmmnjXwe6IOu03U5czlH9xuxfB0thafzBgWNCOagzH1a235T7/oxw3F0zeT4PE8jnIw+LO9GpaGzbzIe/d+XQfDa07JTGlWNVUYkGDz4l1RB9jMpnb/DTXLjqYv5NrmMz1/d8h7MF8+RCU1LMEymkGOlvCt2PNS9YOUK/oFnlb/lBvipE+m8iEUVlBA3DzwqRI4VWbJ3S/VarUktuHMq/M9ccMy5tSCs0Svr5wG+0FNMlVM82buZI1Vpv7M1+AhVX7EX3MOmCmiQ0ZxzKi3EQkXw7ZvQLx3DJW6GzNA0hIprB+eq75m4Iio2sW/QOPA5P; 4:7xTFZAw6Q90Zvp08pVHPC0ViOFj6Kx+ljGbeGjCHLDf9byaRTWs2M/2G53Tm9GNJOPOxrmYrWtq7meZNOJ1GXlKwXZ0uP97jLmiVIB2NqgLl/tiNVYOJBm62e8OkgrUdHb1QgQ9+kmcamqlqD3bI3ehKXKBzpWWiDCYxO9pnjZAQuBAVEdBn4N2I/b2aupUMwTP24kioLFAVApoS/dbAlXuD0LN1r9xkPxlK0T4CTM8gs22gQpWgWbaw1oBDC3KjDfU9MWsR7rdaPjStMnaw2Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:AM0PR08MB3345; BCL:0; PCL:0; RULEID:; SRVR:AM0PR08MB3345; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(366004)(376002)(396003)(39850400004)(39380400002)(346002)(199004)(189003)(76176011)(50226002)(8676002)(6512007)(106356001)(48376002)(97736004)(50466002)(105586002)(4326008)(59450400001)(51416003)(107886003)(478600001)(52116002)(25786009)(68736007)(81166006)(81156014)(53416004)(8936002)(2616005)(2361001)(36756003)(956004)(6486002)(446003)(476003)(47776003)(66066001)(11346002)(53936002)(7736002)(16586007)(44832011)(2351001)(3846002)(486006)(6116002)(26005)(6506007)(5660300001)(69596002)(305945005)(575784001)(86362001)(2906002)(186003)(316002)(6916009)(55236004)(6666003)(386003)(16526019)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM0PR08MB3345; H:xantnef-ws.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR08MB3345; 23:EoxpE2QWXvcwjmoeaMe82ivwPVXm9/JFYjyxe4hsZ?= RvWS3Ta/kNFcZa4YVkjHoy707G3UFiVts6FYyGkaNMr4C8xANeAry/X9+WNcL2k1jEE0CPuAz+V4PHaS9Xv930tT3P76jafVfklx6p2URkv7uzlDdkF5s7Wa5FBYdlhnimvR24brMa5V2xsDipwoVS7p/vcSrgSmkQZ5kCUZY8TxEx+DS/xBNubKyhHkhWiPLIYkICCt8EuTUH827WvaazET2xhldLNfddanAG452KQ5yM2yLLwe/00DgUeyZMJhIzmq1/Qv9XLlDqCRojY1ZV93sDTaGjDFK4/fvzSFYfpAoysHzzpzWCYS1M1Uxr747LJ9cvuWuohEs4Cgi6LsLCl3fOWPAT6vE5FKBELlvwmGSaE9uDZ8yAaMiDc/p5doclcZJRqBYTowlb9XgteWJsQEs69lyYm6PqKGv7tfS+MJm2YIgWdZ1FHX/pAfvmL+w6+uhOy/JGTWG2YkDht+pU6HoghDAdWm40ItDMHTZlSRZLJiFK+BtMz2WObVlG6gpJ4TO5XsF96/bvOuPNeATNnb1hpiqMsOMkHtxcMl9L4nB1ioUK1c6eA0D4MdNBQ+kwATIyoSN6iO5wa55wClQMxwd3H5NmsLic3dIWKGheNsSIJiyX+jNOx6mVQ9TFSeHDlqCsnto6Kv5AsPqWd0xY+KRcHQlhzKf7UpADmlrR9qtR++e9odPasqK8OBMeogPUlvNUYqJBca3TPrACzyMlf280NCz52pAsUOGnRWJGpmmFbLEaRJNbCwJfbquXEArRtNhtIL75oiHENdGwxWC2tyzoPm9C/pM7lMiMoa8wvobq0gdc7UxwdWQJLARreHR8HuNtz+qSMJbvExQBlHLPXRYE375jyvVMzhGaddhfXCt+/i3vZtspuqxglTmIr8Hw0AY5yTFbpdZIKO8dxdQgcNTMTkax6i4aORGbWW8QTqxA8w2jMA6jb8SFQ8YWR+hFRFthm2ek3uxuWM3369KEOuswEziDjmzkYwdPCaSlsSnddt8zDGS24sGazBw+B6phcbJgzEZIaGC8NkCg1YJInL9QCArg6bymTbKh/u7Jv9pdNJ/tv0TfmsU5/MTxtqNGY3CcLX9E1ZC4kpgweqYjt4hr6r+O7/myv7UQHrmELMIfQeuJP35NXDBsOGgkmnz6dhyWimP638I+8hJNUkCaZKmP4B9L/OQmOJib3Q5hc4q5rNddnAK7yF2LRq/PgKsypJnvSgTY2uHTOTW7XgxEIc+AwQU4wUMiZ+TvbTVNJRQMnvRMzcoTi7kZHumtiPmw9dAkWyMw6dxTp2dxKB3ST2oG69HU7+JjzjyFcb6KvajRufrNwOoOYCpkTIpzaN5MPcldPlgIUyPQK3uP8Mu/VQ+Mp2zmGSqOQdsojzId5Z+C6sm/8M+2fp0Zdq+MNAFdTw2WFevQInV1QmfpiJ2cC X-Microsoft-Antispam-Message-Info: OACS3d8ghhcaVrrt+nQD26apuaNx9hwT0D9e+cGyJfCIJKbLMx4J5fuEMwq09xdFkLuJ+VM4txkgdaZ5PEQ4UdszU5xkwDJ2xlfwE8v1U2G68Z+ACxKo26qOYusHOUD1hM0PbIQPO0zHkusR1hAhg5jmfM9OL4rEovkhT+joTE/5b9HGuPV0eZq1VMuGiEd9 X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 6:OKw3EbBeROw0z1n/t0UZ2ya+o6Rup6F9mybXP6avtEpWQB6I89bS/+ZJARvxvxUuaQBwc3BojIXk4KbLYxkAazwR3LfhyPEsOv3FV8VCMl7VGxYzfc53Vy8KuKgCKwE5HL07RXgiBBJ9i5MwYBdGHVAPYbuxGWCglfQD5jje2P7FVN0xq089LC+CVv6dqWy/R+jH4blgtsUQO38Qoved/RCqtkNm6pjnC4F8m9z+L9gTYazQ8gNItohoBUxtAe04guYbzqTt3Q++59qM1t4lhPbjjiAFVMid72iFpc6i5MMZKy09C8xwh4HsnODcuw/HCqXk/OBedRHmgZk8i9Z6IngP/xbogSOzkrkbVF7LpxgFIafObtla23EEz7/qtVgYe1qwI3JQTxxQuwlB4abN2+g006iFpcuiZ4LXCaoZLta4yP93D+sJLDQ1jDPbT+Wu1vRH3ehCCjBcSZb6ooK6dg==; 5:6dqeBQLGXQ24AFTiK6jZCzt/0STbRc1NPwdNpMms6WRXqvTPpXSRUH/tMh1LYs1QGyZ8+dX0hqFdgPOZEmeRez+XdhJrmkOr64HnjV/4vupu3+XuHCjtlvLF19yB2SjdOpiNDl7PelP50Yq/8O6Vqki7HgM0HXg2XUjSBIAQgAk=; 24:dQJodju6zFeM0uAHbTl0vWGg83x4xfPF/V4Lr/m4rW0GTs/qFp2tovDwXfMvSVJPEoFe7unXay0ac86wVqK3jsSjeU947Y1vg8tKftxJ8kc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 7:sRUBNg5Y6RwVHhlnkD0RV8gZGeJujDiprDPd8NmvSfXr4QTN38p++zoKRqkPwX6LHzu4YeFQ1ji+O8HdXnZemZMRMjNltaJ6XyR85dn/BDXPJr4/LXU+RaDKLhUh8xnWQevBVzQoEvXfmz8YEVOwAqgz3ow5gpiQakiQARpBhtfE/LZTCOKoLuux+Sy41eEX4qOf2GDkFswjA+DqCsuSFGc9eeebNRJvmJ5RnkujsvzoA/fQOa22N9O6TWt+1SmB; 20:ij3u66n4fstCRaJx0wY9xNf3kb7yqM1EvBn64n17vnWGrDrYlgy6BRVPg2GQHmqo0Ms/AkPNbqAkmDBLHyTNO0WnR3f1Rd2HuTTvI2enSRiQreIwORjfj79ySCMxtdR7sq6qFlk/ZaMrWR2whKgds+VOkm5c9qI159eVIlT+rU8= X-MS-Office365-Filtering-Correlation-Id: b8a4f724-ddb8-4f0e-9a0b-08d5c58310ff X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2018 16:41:45.5134 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8a4f724-ddb8-4f0e-9a0b-08d5c58310ff X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3345 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.139 Subject: [Qemu-devel] [PATCH v2 1/2] qapi: allow empty branches in flat unions 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: Anton Nefedov , armbru@redhat.com, mdroth@linux.vnet.ibm.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" It often happens that just a few discriminator values imply extra data in a flat union. Existing checks did not make possible to leave other values uncovered. Such cases had to be worked around by either stating a dummy (empty) type or introducing another (subset) discriminator enumeration. Both options create redundant entities in qapi files for little profit. With this patch it is not necessary anymore to add designated union fields for every possible value of a discriminator enumeration. Signed-off-by: Anton Nefedov --- docs/devel/qapi-code-gen.txt | 7 ++++--- scripts/qapi/common.py | 11 ++++------- scripts/qapi/types.py | 4 +++- scripts/qapi/visit.py | 17 +++++++++++++---- tests/qapi-schema/flat-union-incomplete-branch.err | 1 - tests/qapi-schema/flat-union-incomplete-branch.exit | 2 +- tests/qapi-schema/flat-union-incomplete-branch.out | 14 ++++++++++++++ 7 files changed, 39 insertions(+), 17 deletions(-) diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt index b9b6eab..a3ea450 100644 --- a/docs/devel/qapi-code-gen.txt +++ b/docs/devel/qapi-code-gen.txt @@ -496,9 +496,10 @@ Resulting in these JSON objects: Notice that in a flat union, the discriminator name is controlled by the user, but because it must map to a base member with enum type, the -code generator can ensure that branches exist for all values of the -enum (although the order of the keys need not match the declaration of -the enum). In the resulting generated C data types, a flat union is +code generator ensures that branches match the existing values of the +enum. The order of the keys need not match the declaration of the enum. +The keys need not cover all possible enum values. +In the resulting generated C data types, a flat union is represented as a struct with the base members included directly, and then a union of structures for each branch of the struct. diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py index a032cec..df6190a 100644 --- a/scripts/qapi/common.py +++ b/scripts/qapi/common.py @@ -782,13 +782,6 @@ def check_union(expr, info): "enum '%s'" % (key, enum_define['enum'])) - # If discriminator is user-defined, ensure all values are covered - if enum_define: - for value in enum_define['data']: - if value not in members.keys(): - raise QAPISemError(info, "Union '%s' data missing '%s' branch" - % (name, value)) - def check_alternate(expr, info): name = expr['alternate'] @@ -1644,6 +1637,10 @@ class QAPISchema(object): if tag_name: variants = [self._make_variant(key, value) for (key, value) in data.items()] + # branches that are not explicitly covered get an empty type + variants += [self._make_variant(key, 'q_empty') + for key in discriminator_find_enum_define(expr)['data'] + if key not in data.keys()] members = [] else: variants = [self._make_simple_variant(key, value, info) diff --git a/scripts/qapi/types.py b/scripts/qapi/types.py index 64d9c0f..1fb2b6d 100644 --- a/scripts/qapi/types.py +++ b/scripts/qapi/types.py @@ -124,7 +124,9 @@ def gen_variants(variants): ''', c_name=c_name(variants.tag_member.name)) - for var in variants.variants: + # filter out the empty types + for var in filter(lambda var: var.type.name != 'q_empty', + variants.variants): ret += mcgen(''' %(c_type)s %(c_name)s; ''', diff --git a/scripts/qapi/visit.py b/scripts/qapi/visit.py index 5d72d89..96bd32c 100644 --- a/scripts/qapi/visit.py +++ b/scripts/qapi/visit.py @@ -81,14 +81,23 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp) c_name=c_name(variants.tag_member.name)) for var in variants.variants: - ret += mcgen(''' + case_str = c_enum_const(variants.tag_member.type.name, + var.name, + variants.tag_member.type.prefix) + if var.type.name == 'q_empty': + # valid variant and nothing to do + ret += mcgen(''' + case %(case)s: + break; +''', + case=case_str) + else: + ret += mcgen(''' case %(case)s: visit_type_%(c_type)s_members(v, &obj->u.%(c_name)s, &err); break; ''', - case=c_enum_const(variants.tag_member.type.name, - var.name, - variants.tag_member.type.prefix), + case=case_str, c_type=var.type.c_name(), c_name=c_name(var.name)) ret += mcgen(''' diff --git a/tests/qapi-schema/flat-union-incomplete-branch.err b/tests/qapi-schema/flat-union-incomplete-branch.err index e826bf0..e69de29 100644 --- a/tests/qapi-schema/flat-union-incomplete-branch.err +++ b/tests/qapi-schema/flat-union-incomplete-branch.err @@ -1 +0,0 @@ -tests/qapi-schema/flat-union-incomplete-branch.json:6: Union 'TestUnion' data missing 'value2' branch diff --git a/tests/qapi-schema/flat-union-incomplete-branch.exit b/tests/qapi-schema/flat-union-incomplete-branch.exit index d00491f..573541a 100644 --- a/tests/qapi-schema/flat-union-incomplete-branch.exit +++ b/tests/qapi-schema/flat-union-incomplete-branch.exit @@ -1 +1 @@ -1 +0 diff --git a/tests/qapi-schema/flat-union-incomplete-branch.out b/tests/qapi-schema/flat-union-incomplete-branch.out index e69de29..4e774bc 100644 --- a/tests/qapi-schema/flat-union-incomplete-branch.out +++ b/tests/qapi-schema/flat-union-incomplete-branch.out @@ -0,0 +1,14 @@ +object q_empty +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] + prefix QTYPE +module flat-union-incomplete-branch.json +enum TestEnum ['value1', 'value2'] +object TestTypeA + member string: str optional=False +object q_obj_TestUnion-base + member type: TestEnum optional=False +object TestUnion + base q_obj_TestUnion-base + tag type + case value1: TestTypeA + case value2: q_empty From patchwork Tue May 29 16:41:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Nefedov X-Patchwork-Id: 922244 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="ENj1SUB5"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40wKJc6Dkqz9s1R for ; Wed, 30 May 2018 02:42:24 +1000 (AEST) Received: from localhost ([::1]:33950 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNhhW-0002ZG-Jm for incoming@patchwork.ozlabs.org; Tue, 29 May 2018 12:42:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47831) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNhh4-0002XJ-Qh for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fNhh0-0003vk-3G for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:54 -0400 Received: from mail-db5eur01on0116.outbound.protection.outlook.com ([104.47.2.116]:56524 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fNhgz-0003uE-MB for qemu-devel@nongnu.org; Tue, 29 May 2018 12:41:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ElDH2r+ACYwcPIGMhxMvHnffPDqrNCiUilVOekR+L6A=; b=ENj1SUB5/gcpTCTO62hcan0TXZd7ltT2Q8NBZ6mMj8Mhdisg7h5x9ydRDkuiH3lQkwSPO5SmkfkoijYIp/vF3g0LRrNxD9lmfyWKVALSbw1ODSHE/eTFeTfS/k7IEGq7D8u6bmFP38Sp9Q0+rH9oJaut2UU0QbpCvs6ByiqETjM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=anton.nefedov@virtuozzo.com; Received: from xantnef-ws.sw.ru (195.214.232.6) by AM0PR08MB3345.eurprd08.prod.outlook.com (2603:10a6:208:5f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.797.11; Tue, 29 May 2018 16:41:46 +0000 From: Anton Nefedov To: qemu-devel@nongnu.org Date: Tue, 29 May 2018 19:41:32 +0300 Message-Id: <1527612092-65980-3-git-send-email-anton.nefedov@virtuozzo.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1527612092-65980-1-git-send-email-anton.nefedov@virtuozzo.com> References: <1527612092-65980-1-git-send-email-anton.nefedov@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0102CA0008.eurprd01.prod.exchangelabs.com (2603:10a6:7:14::21) To AM0PR08MB3345.eurprd08.prod.outlook.com (2603:10a6:208:5f::18) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM0PR08MB3345; X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 3:cPB3sdmpXQOrEDR8w/aR2r1p2zh0HLRQsfZdYqjsCm9RmYF9hNGyw5BrdmD3aYqOKmxvt3g5bYfRgJqpN6veKoS15F/elFpgGZdBThjn937Rj+nCuwKZbOeuL6FJYJgDPRw3k8sFmDWLXiG2kWEkSB9SJyTAUrk14J/LkFp7VentKfW7qTNS4HJe+R+SS/aQyVMY+m/J1ojsMnb/9Y9exoYwsiZtBy4COmyK8J78gaoQEpLwR7qHAOOL08GqAH4K; 25:fBkmcDCNXHDeoJI2Bo4ZNW0JQdcYknbGTaQx4oSQcs8st2yHSb0CQYcjxHuoYjFVEqLc4xcD27MZCC67ZDwmI9uKwRKnny/ZeeSDw9KYBE7H/8M48w6bJ0SR1xgoKw1lyWn7mSk8BtuxeLbhfnPlclIInSjkeW16J5TR3c3K7npBCkgLRRV5VTLZ3W9RCdVb9gZ8hoMTE5nL2vqYnMLfN47xur+hZ/ox0DGcVAPSo2NaHBVWY7v/CPW3lJLj68JHw7C0nMNoarOMJpvzfuU9k9zYKhaq/s0yRX6dj1SpARB97xFCR1FwgOZGzzLYM1UnV5PN9N2ZVVPA71rU/jVk2w==; 31:nbEj2JrMKIBJbPMPNKtLAg15VeuoHD5CrlaXRp1aGI3oc4P03le54HJVp0iUW8ezvO7TmWrULgt8rvkNV/yXWjSrI2b+op9TXkuMmLAkUxs5vNH0/AlkELymAp4nl+StP8ElYX6HiB4DXd1xmjc4kSaSYbAmHCWmydg1dLZt+lfO40jbX+XnjDscVkAXCt8n+m0kd4t4G5W6HUy/pGyCHhkJzqMZKxV9mD+iG0OKn5o= X-MS-TrafficTypeDiagnostic: AM0PR08MB3345: X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 20:UVA0+O/fJGbUOWsOmqj6U08qq2BySu/zQxn8vvACfD7Bt3l9xc1LKcF2I9Gc/vYINUuCHsFdaDYS8QDrg4qRkVoDvlknO7Uor0IkLfTwM7kyNkhvpi/OLMmScBty7LIOLShqHW4jUH6RxxEYzOCbs3ig5MC2X9thJJt1k26F87Elq1Jt+x+AgZyNBrxAwqpSw9zQceM4+XyuUke4Z6vPil2Y+5fNe/beYVrvN5hTL/mIrpNtpkT0o4bDoLXdYXNer8lAZeyj5mRjyiD+gQGc0Mk0G4xJam5ch1a5tf8vNZ+rdD8rWsrvRWsnnFPYaMg8D4vtJ6LfR2d2NK7kUd/U38qky781e+eOxn2zKUgGJQv+y5qaCRRm0UCAUi7vi5KJneLY6FfN2zJ6cd9cRBEq96YfedCUfsgCEpoecH8+8g+2MqADg2NRQ/HMO2y2KWBxKepA7Ss1RqEOXpqD4+v4UaFu+AGq0pBOnd6N7UBB7ZJS1N0iZEVO97D0CWf4b9di; 4:zysGKiX531uZXsvYV8TiCMO9Wg/EN0pZqgaw7slHw/tOwjSzANG59ql5oZ4VKH/kNSDKtswwVyuccs44+zwxKR04tKx9uEplQrnzI2rRw24M/PwWANmPjpWxvkcO3B9dRPflFgbyDi8wvXt3qOgU6BzsqyEpNHO70fzKRtCxae6qXpuKknVTRQ1nTpRbJIDos/Ne9a4WaPwjwnIU0ZcVVqZmQB/xkDG2SFOMvd/iFoPA0ywGx2tdbGKMBzGSfWSvICPWhG+Z2KEj9IUrEGAGDg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:AM0PR08MB3345; BCL:0; PCL:0; RULEID:; SRVR:AM0PR08MB3345; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(376002)(396003)(39850400004)(39380400002)(346002)(199004)(189003)(76176011)(50226002)(8676002)(6512007)(106356001)(48376002)(97736004)(50466002)(105586002)(4326008)(59450400001)(51416003)(107886003)(478600001)(52116002)(25786009)(68736007)(81166006)(81156014)(53416004)(8936002)(2616005)(2361001)(36756003)(956004)(6486002)(446003)(476003)(47776003)(66066001)(11346002)(53936002)(7736002)(16586007)(44832011)(2351001)(3846002)(486006)(6116002)(26005)(6506007)(5660300001)(69596002)(305945005)(575784001)(86362001)(2906002)(186003)(316002)(6916009)(55236004)(6666003)(386003)(16526019)(357404004); DIR:OUT; SFP:1102; SCL:1; SRVR:AM0PR08MB3345; H:xantnef-ws.sw.ru; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR08MB3345; 23:DGwnfsu1qE2UmCIJ83ruToM4h577vwA/kLyPeJTNk?= WEVnKXVYwzPHv5/tcrgnbgbXEPWBg32Bai6AQbtiZZB0atrEAieatRfouXQjim0HEdGCiU1Y1NS3kCTcND7TIh5yBav1+MIHdd1cJtGPHOJ4ZL7tVCW18K9Qp83vY8ZnqJxZS1rvspD3YIruP/8oLdQegNgbz9H6ov8oEJ5z2c8+r5hZoi3wzpTPjwCTi4YrnGlQARGevtj7ng1EgwLp5ZM5u1kQxo8aw+8HjvFo/Z0Ih0CbEnbD4+eqkx0eDRRf2XuVA26EbOpVMm9JEHrPSyEQvlkPRuCiWZ+TDoypF79I5SHb77CIC/acnkQPP4duONaJhKZ91IACRYE0GaBHVk3UpznrU2KLDRjRS17aY41HFV/wN5eAT0bnSNnfpYcTSslXv63rw/d2AVZEdemSdoIA7G0c41VH205ORe+wGFUgA8EZC3YdPxIAyDIcgzLkoOXMbq1sCSlmFnADE2hFUuUokvz5dOzbo4UMPrD6QznrMQntFw9MU4DU2mdLizANKv/lcavCOEZ5QMb0vrvyQjsds/Vwc+15FoC7dk7fQHayqCtC+EH9lp+de0HGbN8TbnhfmvQydD7sh2g2TUSrsuRRl6mjgwDLQs6WI8e7DaZHWilNeLjIomDHTF1JdkmHtUC04nstpPPsx2JW+6JUCR5kgU4eOhZjO7EeKQq9JjADSrijrwrFzSgq5XHeC2WZlXfgiCL9UjiSJA7HF0ta+ddUljhy3oUP1TjOQXf03p6DEdOLEoQxaTlHxqTFsOr9dP2QW0jc5PqUozpyOjZPLSo8qv19h8FY11ixc5w6ID0uWPqhZYKEqv4LH0zc2ecpNYRKymb0ZhBV2BllixWo5Yu9Nn2I3KM1tiW6zCzdE9z/cJ/4Q4d1WnUV5AVcsO2R0chIUbu/PJYxVcYeLN1Oep5rtYckE2PnCht1otUC2263M5sO11mFMQ5gOFObiLZ9l2OrVj74BBR8nRJSTnBpo3sAjrSo/Rdgyf3JylEQzfbgv4wD5CLMwbEBH8ssu3OwiV/S6umUVTzXerB/9o3nmk7H9+N4+jMuafZhdVIKZSFMiK1leLHyuAUuzLn7KcxDBsax+mdno80vP+4gJwm3Tmyc+L1mNyexzQiM0Lb1jwQJxzRbRUpkth1+4g6wGxdUGB62bTs87/mtYR3AP/N/8IU/12FIv/4GeXpr8/sPGJyl3IElv/J7M4yhmhl9ejs0z15nOuDeRT2V4avJbPcqbIabIgc0DrRb3VMvCp24eiE5Oo3y+OcdjKRLgn3/HfHT2TMZX14JD/TTwN4eozOaPlPJv+nlFoHIa8zK0e2Rpv6EsUXm1T4KrnXXUp72/XTndOO2/uL5VdsSGwuMCCWvo6Z X-Microsoft-Antispam-Message-Info: hy59nsrHL/fTv8TTS1I3NJ+gLl/ixq+0KvqHj+ZF4MyFrthxuM7c3K+Y3EmH2WJ5FW33acmn/8Cxdpn0jb1BCq7Y2gj12r7O4+6TNL2vYmzbFXN5xEdKT+lww/SH/8OTv1eJ/p9l/ih4cqyq0GKXnh9gUwnjIYcUwMJlsoKEWUtrOPuca+iQfxFzxJKE44OG X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 6:a37gtYiVxtk25l9+xtrlw2AIDveVWRvXmMaRqoHxybtaZTFG3xmZ3v0p3GRREYwgDdWGJaqlg0ugXt88drorLpiVJf4kW9XUn+JstykOzGceEjEW1ZIi+LGYG7P7YZuFYki6qYKkTa1HBL+FGz3A1kAI2eP+EZ6f9VzmOKzBCQmoAXx6jE0uBAdYn7G91n53YhvAKDbUfLxbShj/GWrHfHJshyPpK3yilHE0o3PI2zXTBETmc/UC6HnwqOWOdqYFXudBFzl8aQxKYLdnFOfsmKHB4y+I+w15cGmWXT3PFxpK5iHrjxeIHU+AiK9c7Jus7rxnDcB/0LIGTENy9Qy6tD2epKC32kMqcYsBlh+JBxPl1CiDoN0POM7doviB5Orrc+ivqM+OMne6E9uo2UpKmNpY/qHcYMOaul6xgEd6+NkjHLWAUlk8WMi7vMjaW7q/9UrSkAoEM0N4rF1ZtUwRZw==; 5:riWLiiffrqmdoS8wZoYAabnf02rZOoOziC7vUaB1x4blw0xtD9rta4v94pc02UWvbrJCqS88LrLDWCpgpmEVz5dT59t2Xmt+jjZQPvs68GcFfqMFdBm/0GKp31TdEYoxhujO0hGUItrxV5IVtixU5t1KjVMID66zXAIM11OKCHw=; 24:waxe0C0xd0B0gBdcxDwVhbfIZ0N4Bh4vQ++DR4SsPQGlFnIUGeTcVgjsM0FhLmcSLPdvBY+llYVcYp+hqRyCWdvIUdhcaL2hI5zQfrByOgI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM0PR08MB3345; 7:ih+k7+LtImDJiqtJV64XXJQ/VoV9l6+ivLZObpB89ktczN5MP9TKOzKBWOrrYDyD1UP5rYqQQtKVh9Vy5OLB5jYXDUY5bjPnpja7b3WAPzIQEbgtVgzODX/8evEfWSGdAvH++T0vHEHU0jMA5jQd+gOwIJqpPOkgQw1E0JXQ9peoTqBzJGoSpIHPZgF2dTYHRT9BE82aRRCHUAIehXraGMV32XDPZiQW4T7/n1rE5+Yz+ht74TQYUn24qVghlE/R; 20:2WHNTY1avToEkRtZo+fgaCcZ2D7cTmfNQT2mDUs5dLL4azbEmqJmFeHTN2887SV7weIZGbQZ2SjhuA1Xq6UalhgEzlOSr+QuqzWiamQTWj42+/nliKTlXyFJ1uUaLF7PNsmr+9F/+jgTva74iIPV4FyL5QPge9RT61CZz31ddw4= X-MS-Office365-Filtering-Correlation-Id: e9e111a9-86a2-40e9-8675-08d5c58311e0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2018 16:41:46.9864 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e9e111a9-86a2-40e9-8675-08d5c58311e0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3345 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.116 Subject: [Qemu-devel] [PATCH v2 2/2] qapi: remove empty flat union branches and types 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: Anton Nefedov , armbru@redhat.com, mdroth@linux.vnet.ibm.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Flat unions may now have uncovered branches, so it is possible to get rid of empty types defined for that purpose only. Signed-off-by: Anton Nefedov Reviewed-by: Eric Blake --- qapi/block-core.json | 55 ++++------------------------------------------------ qapi/crypto.json | 13 +------------ qapi/misc.json | 46 ++----------------------------------------- qapi/net.json | 12 ------------ qapi/ui.json | 19 +----------------- block/qcow2.c | 1 - cpus.c | 2 -- 7 files changed, 8 insertions(+), 140 deletions(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index ad66ad6..d0b95f0 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -52,8 +52,7 @@ { 'union': 'ImageInfoSpecificQCow2Encryption', 'base': 'ImageInfoSpecificQCow2EncryptionBase', 'discriminator': 'format', - 'data': { 'aes': 'QCryptoBlockInfoQCow', - 'luks': 'QCryptoBlockInfoLUKS' } } + 'data': { 'luks': 'QCryptoBlockInfoLUKS' } } ## # @ImageInfoSpecificQCow2: @@ -2671,8 +2670,7 @@ { 'union': 'BlockdevQcow2Encryption', 'base': { 'format': 'BlockdevQcow2EncryptionFormat' }, 'discriminator': 'format', - 'data': { 'aes': 'QCryptoBlockOptionsQCow', - 'luks': 'QCryptoBlockOptionsLUKS'} } + 'data': { 'luks': 'QCryptoBlockOptionsLUKS'} } ## # @BlockdevOptionsQcow2: @@ -2769,16 +2767,6 @@ 'hash': 'str' }} ## -# @SshHostKeyDummy: -# -# For those union branches that don't need additional fields. -# -# Since: 2.12 -## -{ 'struct': 'SshHostKeyDummy', - 'data': {} } - -## # @SshHostKeyCheck: # # Since: 2.12 @@ -2786,9 +2774,7 @@ { 'union': 'SshHostKeyCheck', 'base': { 'mode': 'SshHostKeyCheckMode' }, 'discriminator': 'mode', - 'data': { 'none': 'SshHostKeyDummy', - 'hash': 'SshHostKeyHash', - 'known_hosts': 'SshHostKeyDummy' } } + 'data': { 'hash': 'SshHostKeyHash' } } ## # @BlockdevOptionsSsh: @@ -3948,15 +3934,6 @@ '*force-size': 'bool' } } ## -# @BlockdevCreateNotSupported: -# -# This is used for all drivers that don't support creating images. -# -# Since: 2.12 -## -{ 'struct': 'BlockdevCreateNotSupported', 'data': {}} - -## # @BlockdevCreateOptions: # # Options for creating an image format on a given node. @@ -3970,44 +3947,20 @@ 'driver': 'BlockdevDriver' }, 'discriminator': 'driver', 'data': { - 'blkdebug': 'BlockdevCreateNotSupported', - 'blkverify': 'BlockdevCreateNotSupported', - 'bochs': 'BlockdevCreateNotSupported', - 'cloop': 'BlockdevCreateNotSupported', - 'copy-on-read': 'BlockdevCreateNotSupported', - 'dmg': 'BlockdevCreateNotSupported', 'file': 'BlockdevCreateOptionsFile', - 'ftp': 'BlockdevCreateNotSupported', - 'ftps': 'BlockdevCreateNotSupported', 'gluster': 'BlockdevCreateOptionsGluster', - 'host_cdrom': 'BlockdevCreateNotSupported', - 'host_device': 'BlockdevCreateNotSupported', - 'http': 'BlockdevCreateNotSupported', - 'https': 'BlockdevCreateNotSupported', - 'iscsi': 'BlockdevCreateNotSupported', 'luks': 'BlockdevCreateOptionsLUKS', - 'nbd': 'BlockdevCreateNotSupported', 'nfs': 'BlockdevCreateOptionsNfs', - 'null-aio': 'BlockdevCreateNotSupported', - 'null-co': 'BlockdevCreateNotSupported', - 'nvme': 'BlockdevCreateNotSupported', 'parallels': 'BlockdevCreateOptionsParallels', 'qcow': 'BlockdevCreateOptionsQcow', 'qcow2': 'BlockdevCreateOptionsQcow2', 'qed': 'BlockdevCreateOptionsQed', - 'quorum': 'BlockdevCreateNotSupported', - 'raw': 'BlockdevCreateNotSupported', 'rbd': 'BlockdevCreateOptionsRbd', - 'replication': 'BlockdevCreateNotSupported', 'sheepdog': 'BlockdevCreateOptionsSheepdog', 'ssh': 'BlockdevCreateOptionsSsh', - 'throttle': 'BlockdevCreateNotSupported', 'vdi': 'BlockdevCreateOptionsVdi', 'vhdx': 'BlockdevCreateOptionsVhdx', - 'vmdk': 'BlockdevCreateNotSupported', - 'vpc': 'BlockdevCreateOptionsVpc', - 'vvfat': 'BlockdevCreateNotSupported', - 'vxhs': 'BlockdevCreateNotSupported' + 'vpc': 'BlockdevCreateOptionsVpc' } } ## diff --git a/qapi/crypto.json b/qapi/crypto.json index 288bc05..a51b434 100644 --- a/qapi/crypto.json +++ b/qapi/crypto.json @@ -297,16 +297,6 @@ 'uuid': 'str', 'slots': [ 'QCryptoBlockInfoLUKSSlot' ] }} -## -# @QCryptoBlockInfoQCow: -# -# Information about the QCow block encryption options -# -# Since: 2.7 -## -{ 'struct': 'QCryptoBlockInfoQCow', - 'data': { }} - ## # @QCryptoBlockInfo: @@ -318,5 +308,4 @@ { 'union': 'QCryptoBlockInfo', 'base': 'QCryptoBlockInfoBase', 'discriminator': 'format', - 'data': { 'qcow': 'QCryptoBlockInfoQCow', - 'luks': 'QCryptoBlockInfoLUKS' } } + 'data': { 'luks': 'QCryptoBlockInfoLUKS' } } diff --git a/qapi/misc.json b/qapi/misc.json index 99bcaac..a46e55c 100644 --- a/qapi/misc.json +++ b/qapi/misc.json @@ -393,8 +393,7 @@ 'mips': 'CpuInfoMIPS', 'tricore': 'CpuInfoTricore', 's390': 'CpuInfoS390', - 'riscv': 'CpuInfoRISCV', - 'other': 'CpuInfoOther' } } + 'riscv': 'CpuInfoRISCV' } } ## # @CpuInfoX86: @@ -465,16 +464,6 @@ { 'struct': 'CpuInfoRISCV', 'data': { 'pc': 'int' } } ## -# @CpuInfoOther: -# -# No additional information is available about the virtual CPU -# -# Since: 2.6 -# -## -{ 'struct': 'CpuInfoOther', 'data': { } } - -## # @CpuS390State: # # An enumeration of cpu states that can be assumed by a virtual @@ -575,38 +564,7 @@ 'arch' : 'CpuInfoArch', 'target' : 'SysEmuTarget' }, 'discriminator' : 'target', - 'data' : { 'aarch64' : 'CpuInfoOther', - 'alpha' : 'CpuInfoOther', - 'arm' : 'CpuInfoOther', - 'cris' : 'CpuInfoOther', - 'hppa' : 'CpuInfoOther', - 'i386' : 'CpuInfoOther', - 'lm32' : 'CpuInfoOther', - 'm68k' : 'CpuInfoOther', - 'microblaze' : 'CpuInfoOther', - 'microblazeel' : 'CpuInfoOther', - 'mips' : 'CpuInfoOther', - 'mips64' : 'CpuInfoOther', - 'mips64el' : 'CpuInfoOther', - 'mipsel' : 'CpuInfoOther', - 'moxie' : 'CpuInfoOther', - 'nios2' : 'CpuInfoOther', - 'or1k' : 'CpuInfoOther', - 'ppc' : 'CpuInfoOther', - 'ppc64' : 'CpuInfoOther', - 'ppcemb' : 'CpuInfoOther', - 'riscv32' : 'CpuInfoOther', - 'riscv64' : 'CpuInfoOther', - 's390x' : 'CpuInfoS390', - 'sh4' : 'CpuInfoOther', - 'sh4eb' : 'CpuInfoOther', - 'sparc' : 'CpuInfoOther', - 'sparc64' : 'CpuInfoOther', - 'tricore' : 'CpuInfoOther', - 'unicore32' : 'CpuInfoOther', - 'x86_64' : 'CpuInfoOther', - 'xtensa' : 'CpuInfoOther', - 'xtensaeb' : 'CpuInfoOther' } } + 'data' : { 's390x' : 'CpuInfoS390' } } ## # @query-cpus-fast: diff --git a/qapi/net.json b/qapi/net.json index 5c1dc48..3a43950 100644 --- a/qapi/net.json +++ b/qapi/net.json @@ -89,16 +89,6 @@ { 'command': 'netdev_del', 'data': {'id': 'str'} } ## -# @NetdevNoneOptions: -# -# Use it alone to have zero network devices. -# -# Since: 1.2 -## -{ 'struct': 'NetdevNoneOptions', - 'data': { } } - -## # @NetLegacyNicOptions: # # Create a new Network Interface Card. @@ -473,7 +463,6 @@ 'base': { 'id': 'str', 'type': 'NetClientDriver' }, 'discriminator': 'type', 'data': { - 'none': 'NetdevNoneOptions', 'nic': 'NetLegacyNicOptions', 'user': 'NetdevUserOptions', 'tap': 'NetdevTapOptions', @@ -526,7 +515,6 @@ 'base': { 'type': 'NetLegacyOptionsType' }, 'discriminator': 'type', 'data': { - 'none': 'NetdevNoneOptions', 'nic': 'NetLegacyNicOptions', 'user': 'NetdevUserOptions', 'tap': 'NetdevTapOptions', diff --git a/qapi/ui.json b/qapi/ui.json index fc18a05..f48d2a0 100644 --- a/qapi/ui.json +++ b/qapi/ui.json @@ -996,17 +996,6 @@ ## -# @DisplayNoOpts: -# -# Empty struct for displays without config options. -# -# Since: 2.12 -# -## -{ 'struct' : 'DisplayNoOpts', - 'data' : { } } - -## # @DisplayGTK: # # GTK display options. @@ -1068,10 +1057,4 @@ '*window-close' : 'bool', '*gl' : 'DisplayGLMode' }, 'discriminator' : 'type', - 'data' : { 'default' : 'DisplayNoOpts', - 'none' : 'DisplayNoOpts', - 'gtk' : 'DisplayGTK', - 'sdl' : 'DisplayNoOpts', - 'egl-headless' : 'DisplayNoOpts', - 'curses' : 'DisplayNoOpts', - 'cocoa' : 'DisplayNoOpts' } } + 'data' : { 'gtk' : 'DisplayGTK' } } diff --git a/block/qcow2.c b/block/qcow2.c index 6d53247..389d96d 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -4003,7 +4003,6 @@ static ImageInfoSpecific *qcow2_get_specific_info(BlockDriverState *bs) switch (encrypt_info->format) { case Q_CRYPTO_BLOCK_FORMAT_QCOW: qencrypt->format = BLOCKDEV_QCOW2_ENCRYPTION_FORMAT_AES; - qencrypt->u.aes = encrypt_info->u.qcow; break; case Q_CRYPTO_BLOCK_FORMAT_LUKS: qencrypt->format = BLOCKDEV_QCOW2_ENCRYPTION_FORMAT_LUKS; diff --git a/cpus.c b/cpus.c index d1f1629..19c5d37 100644 --- a/cpus.c +++ b/cpus.c @@ -2273,8 +2273,6 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp) info->value->target = target; if (target == SYS_EMU_TARGET_S390X) { cpustate_to_cpuinfo_s390(&info->value->u.s390x, cpu); - } else { - /* do nothing for @CpuInfoOther */ } if (!cur_item) {