From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006799; cv=none; d=zohomail.com; s=zohoarc; b=dtYK30SUR+0lYpc4PASeEo9/+uuceDgft+KGHRk6FSKlETDD8DgMPMx8MphHnFJuRmH+1650Dhe3eZ6H5y4LUptoWFmkwtdN0d/eGDP+uTEVrDJW0ziKWg42PDk5Bw7IrRStS3b1vRJ1LVPq7A2SWXw7KQUBVgi5D83XqPAJKaA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006799; h=Content-Type:Content-Transfer-Encoding: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=6XWI7v9ZGslokbyHWaV533+cNnkX5zeauW58/eQhQBA=; b=dP6e4JLOTlcGYFXTad83QI6LevAQZlkKAH7X4Q9Kfs/ILLFuG8lBHvq+bcuHwqzdg4h7PIYXNj5jhGtTgnfv3lL8E/35NsoAb/QqvenBwJgDpxYYRnwI5BTXw2odmlJbNGV6aSBZLUZ507JdLBUVEqctzpT0iWWYDUJQ8wNQhzk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006799850942.4719745890751; Wed, 14 Dec 2022 00:33:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MXt-00064x-IW; Wed, 14 Dec 2022 02:51:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MXl-00061y-HW for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:51:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MXh-0004Fk-0t for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:51:06 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-52-xnPN6Lh8MnSd6DN4gbos0A-1; Wed, 14 Dec 2022 02:47:24 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AF79B3814591 for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8A97F40C2004 for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4F88D21E6921; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6XWI7v9ZGslokbyHWaV533+cNnkX5zeauW58/eQhQBA=; b=OyEtU65YOsmw3L1HlT0fZH+dZWeU1j9dUleI06Z+NrZlW/qXXTWWtCy48syHS1QwvK3Xaq dx9iNdSbGAL3Dnrc9CdBDmUHV8RCpJyXcV7iJSL7h6dZM/xXnNlc6BQH2Jlzy33JewzD+B LzSjs+KpJmFkeUntu3n7TfBa9EFNOuw= X-MC-Unique: xnPN6Lh8MnSd6DN4gbos0A-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 1/2] include/hw/virtio: Break inclusion loop Date: Wed, 14 Dec 2022 08:46:51 +0100 Message-Id: <20221214074721.731441-3-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006802116100001 Content-Type: text/plain; charset="utf-8" hw/virtio/virtio.h and hw/virtio/vhost.h include each other. The former doesn't actually need the latter, so drop that inclusion to break the loop. Signed-off-by: Markus Armbruster --- include/hw/virtio/virtio.h | 1 - hw/virtio/virtio.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index a973811cbf..8b68b69e00 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -22,7 +22,6 @@ #include "standard-headers/linux/virtio_config.h" #include "standard-headers/linux/virtio_ring.h" #include "qom/object.h" -#include "hw/virtio/vhost.h" =20 /* * A guest should never accept this. It implies negotiation is broken diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index eb6347ab5d..faedf886da 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -26,6 +26,7 @@ #include "qemu/module.h" #include "qom/object_interfaces.h" #include "hw/virtio/virtio.h" +#include "hw/virtio/vhost.h" #include "migration/qemu-file-types.h" #include "qemu/atomic.h" #include "hw/virtio/virtio-bus.h" --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007429; cv=none; d=zohomail.com; s=zohoarc; b=h4CAQyy01dq9dK3W1bYD9aNm+tfmUrkPtDvjEW6ydLHcrwPoAehO4zaLbq3gQH7IAYkmYJBJvgoYTjSeyG7OEKs8USXHqEDuGz+nqP6mAbNqZipsv6J/0w3FwgK474yurjfM0EpSTjmgMC7xJXXlABrOYSjmiVgTjbIkrT3XT/s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007429; 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=09E7UR9qPxL04Z80tUXF6JJbW1qXmpr3BWBwuCKePn0=; b=ZFDjWhHE5WnKwsknEaWDErcFutAHt8xWqJw0uz35sPYFMPERgXDkB8ckXEbTedk38nsPBmCjAHrtmaZLcjRt3mpcR4v+JVjSOSuitGDgRdYqqpZXBFMbo5t604B9ABqH0qZ+6Qi0dNerChgAtf7K8pvMZ2ao2U/+92+NfMFdUvc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007429026595.3176270855107; Wed, 14 Dec 2022 00:43:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUM-0003S7-A2; Wed, 14 Dec 2022 02:47:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003PO-FT for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:31 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUC-0003bw-5R for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:31 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-52-QoLoO0ybPQWGKGU9cFCJFA-1; Wed, 14 Dec 2022 02:47:24 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AF78A85CCE6 for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8A58E2166B2A; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4DAD521E6901; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004046; h=from:from: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; bh=09E7UR9qPxL04Z80tUXF6JJbW1qXmpr3BWBwuCKePn0=; b=ZrDBumzF2AY/P5pvBz2FtuNi/4NSDwaz+aDoqv9q2pQJapWI4Yla2hqdFlk0RoI6tUiF8i QAEzgm8PnUNOIFu3RkpYo1HhTCCG0hr+tT1igZVIKlO5jqmwGGaeT88Qkk133ZUsmC+j8X vaOlKup6A6IiDjkiultibbKleH0scqk= X-MC-Unique: QoLoO0ybPQWGKGU9cFCJFA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 01/30] docs/devel/qapi-code-gen: Update example to match current code Date: Wed, 14 Dec 2022 08:46:50 +0100 Message-Id: <20221214074721.731441-2-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007430140100001 Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-2-armbru@redhat.com> --- docs/devel/qapi-code-gen.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst index cd9b544376..997313fce7 100644 --- a/docs/devel/qapi-code-gen.rst +++ b/docs/devel/qapi-code-gen.rst @@ -1748,7 +1748,7 @@ Example:: QTAILQ_INIT(cmds); =20 qmp_register_command(cmds, "my-command", - qmp_marshal_my_command, QCO_NO_OPTIONS); + qmp_marshal_my_command, 0, 0); } [Uninteresting stuff omitted...] =20 --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005634; cv=none; d=zohomail.com; s=zohoarc; b=MJiDXcqo7D8DaML5JV0908mit8rDuJpYbLZ9C4YBsNrYQfqTUf7CGu+cR6h3FlCmP3AvjysYaL3o9Lk2xv5wCZ68k+GAvDVNz9PqwzAfvw8GY8MSHpkLSpzaQPsSFJpWnipJUwmjqQKhTtQ52YpxPrst/taigq/2E0lP+HfzM1k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005634; h=Content-Type:Content-Transfer-Encoding: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=nauq0/8fo/Ao/Vhukag+8e/aSRrTi6h6T3TEcWsF790=; b=NXTDn0+yuvKIrSE6NpealzCrWh0EVVgGqj433qt9s50mbxbPu23Uk7bp6mFCFubMiBjpU+aArBgk08yPltRbtWp2Jji3xNoaCo8kznRFgBy3GdXMiccgFKmkEjA7o22/Q4K6bAmEF9aJuDYB7L3z8o9PzMUUSFLEouprUzCvMM8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005634166951.8018872379727; Wed, 14 Dec 2022 00:13:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003Qb-1q; Wed, 14 Dec 2022 02:47:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003PN-KM for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:31 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUB-0003c0-L7 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:30 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-605-vj4VbBOTN1SssHmTlF3pEA-1; Wed, 14 Dec 2022 02:47:25 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EE2E68588EB for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8A5572166B29 for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5234921E6930; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nauq0/8fo/Ao/Vhukag+8e/aSRrTi6h6T3TEcWsF790=; b=AFcP2+PP7bB7gwqRTVQcM9eiU8NPQ80MrhWAujTfZjJWB2wutfM0tr6eoZGnY+4+zCPmQR Y/9Pbx062vwpegAq/mKi05obPAw9rqCbBR1Zs+A/yWk/gi1A2qz2WGJvQxg3Zh+N6urSBl knELXhORJ/5qENzHtLCEZDKFlUxjLHY= X-MC-Unique: vj4VbBOTN1SssHmTlF3pEA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 2/2] include: Include headers where needed Date: Wed, 14 Dec 2022 08:46:52 +0100 Message-Id: <20221214074721.731441-4-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005634556100003 Content-Type: text/plain; charset="utf-8" A number of headers neglect to include everything they need. They compile only if the headers they need are already included from elsewhere. Fix that. Signed-off-by: Markus Armbruster --- include/exec/plugin-gen.h | 1 + include/hw/acpi/erst.h | 3 +++ include/hw/char/cmsdk-apb-uart.h | 1 + include/hw/char/goldfish_tty.h | 1 + include/hw/char/xilinx_uartlite.h | 1 + include/hw/cris/etraxfs.h | 1 + include/hw/display/macfb.h | 3 ++- include/hw/dma/sifive_pdma.h | 2 ++ include/hw/i386/ioapic_internal.h | 1 + include/hw/i386/sgx-epc.h | 1 + include/hw/intc/goldfish_pic.h | 2 ++ include/hw/intc/loongarch_pch_msi.h | 2 ++ include/hw/intc/loongarch_pch_pic.h | 2 ++ include/hw/intc/nios2_vic.h | 2 ++ include/hw/misc/mchp_pfsoc_dmc.h | 2 ++ include/hw/misc/mchp_pfsoc_ioscb.h | 2 ++ include/hw/misc/mchp_pfsoc_sysreg.h | 2 ++ include/hw/misc/pvpanic.h | 1 + include/hw/misc/sifive_e_prci.h | 3 ++- include/hw/misc/sifive_u_otp.h | 3 ++- include/hw/misc/sifive_u_prci.h | 3 ++- include/hw/misc/virt_ctrl.h | 2 ++ include/hw/misc/xlnx-versal-pmc-iou-slcr.h | 1 + include/hw/net/lasi_82596.h | 2 +- include/hw/net/xlnx-zynqmp-can.h | 1 + include/hw/ppc/pnv_psi.h | 2 +- include/hw/riscv/boot_opensbi.h | 2 ++ include/hw/riscv/microchip_pfsoc.h | 3 +++ include/hw/riscv/numa.h | 1 + include/hw/riscv/sifive_u.h | 2 ++ include/hw/riscv/spike.h | 2 +- include/hw/riscv/virt.h | 2 +- include/hw/ssi/sifive_spi.h | 3 +++ include/hw/timer/sse-timer.h | 1 + include/hw/usb/hcd-dwc3.h | 1 + include/hw/usb/hcd-musb.h | 2 ++ include/hw/usb/xlnx-usb-subsystem.h | 2 ++ include/hw/usb/xlnx-versal-usb2-ctrl-regs.h | 3 +++ include/hw/virtio/virtio-mmio.h | 2 +- include/qemu/plugin-memory.h | 3 +++ include/sysemu/dirtyrate.h | 2 ++ include/sysemu/dump.h | 1 + include/user/syscall-trace.h | 1 + 43 files changed, 71 insertions(+), 9 deletions(-) diff --git a/include/exec/plugin-gen.h b/include/exec/plugin-gen.h index 5004728c61..5f5506f1cc 100644 --- a/include/exec/plugin-gen.h +++ b/include/exec/plugin-gen.h @@ -12,6 +12,7 @@ #ifndef QEMU_PLUGIN_GEN_H #define QEMU_PLUGIN_GEN_H =20 +#include "exec/cpu_ldst.h" #include "qemu/plugin.h" #include "tcg/tcg.h" =20 diff --git a/include/hw/acpi/erst.h b/include/hw/acpi/erst.h index b747fe7739..b2ff663ddc 100644 --- a/include/hw/acpi/erst.h +++ b/include/hw/acpi/erst.h @@ -11,6 +11,9 @@ #ifndef HW_ACPI_ERST_H #define HW_ACPI_ERST_H =20 +#include "hw/acpi/bios-linker-loader.h" +#include "qom/object.h" + void build_erst(GArray *table_data, BIOSLinker *linker, Object *erst_dev, const char *oem_id, const char *oem_table_id); =20 diff --git a/include/hw/char/cmsdk-apb-uart.h b/include/hw/char/cmsdk-apb-u= art.h index 9daff0eeee..64b0a3d534 100644 --- a/include/hw/char/cmsdk-apb-uart.h +++ b/include/hw/char/cmsdk-apb-uart.h @@ -15,6 +15,7 @@ #include "hw/qdev-properties.h" #include "hw/sysbus.h" #include "chardev/char-fe.h" +#include "qapi/error.h" #include "qom/object.h" =20 #define TYPE_CMSDK_APB_UART "cmsdk-apb-uart" diff --git a/include/hw/char/goldfish_tty.h b/include/hw/char/goldfish_tty.h index 7503d2fa1e..d59733e5ae 100644 --- a/include/hw/char/goldfish_tty.h +++ b/include/hw/char/goldfish_tty.h @@ -12,6 +12,7 @@ =20 #include "qemu/fifo8.h" #include "chardev/char-fe.h" +#include "hw/sysbus.h" =20 #define TYPE_GOLDFISH_TTY "goldfish_tty" OBJECT_DECLARE_SIMPLE_TYPE(GoldfishTTYState, GOLDFISH_TTY) diff --git a/include/hw/char/xilinx_uartlite.h b/include/hw/char/xilinx_uar= tlite.h index bb32d0fcb3..dd09c06801 100644 --- a/include/hw/char/xilinx_uartlite.h +++ b/include/hw/char/xilinx_uartlite.h @@ -17,6 +17,7 @@ =20 #include "hw/qdev-properties.h" #include "hw/sysbus.h" +#include "qapi/error.h" =20 static inline DeviceState *xilinx_uartlite_create(hwaddr addr, qemu_irq irq, diff --git a/include/hw/cris/etraxfs.h b/include/hw/cris/etraxfs.h index 8b01ed67d3..467b529dc0 100644 --- a/include/hw/cris/etraxfs.h +++ b/include/hw/cris/etraxfs.h @@ -29,6 +29,7 @@ #include "hw/cris/etraxfs_dma.h" #include "hw/qdev-properties.h" #include "hw/sysbus.h" +#include "qapi/error.h" =20 DeviceState *etraxfs_eth_init(NICInfo *nd, hwaddr base, int phyaddr, struct etraxfs_dma_client *dma_out, diff --git a/include/hw/display/macfb.h b/include/hw/display/macfb.h index 55a50d3fb0..27cebefc9e 100644 --- a/include/hw/display/macfb.h +++ b/include/hw/display/macfb.h @@ -15,9 +15,10 @@ =20 #include "exec/memory.h" #include "hw/irq.h" +#include "hw/nubus/nubus.h" +#include "hw/sysbus.h" #include "ui/console.h" #include "qemu/timer.h" -#include "qom/object.h" =20 typedef enum { MACFB_DISPLAY_APPLE_21_COLOR =3D 0, diff --git a/include/hw/dma/sifive_pdma.h b/include/hw/dma/sifive_pdma.h index e319bbd6c4..8c6cfa7f32 100644 --- a/include/hw/dma/sifive_pdma.h +++ b/include/hw/dma/sifive_pdma.h @@ -23,6 +23,8 @@ #ifndef SIFIVE_PDMA_H #define SIFIVE_PDMA_H =20 +#include "hw/sysbus.h" + struct sifive_pdma_chan { uint32_t control; uint32_t next_config; diff --git a/include/hw/i386/ioapic_internal.h b/include/hw/i386/ioapic_int= ernal.h index 9880443cc7..e8ff338d7f 100644 --- a/include/hw/i386/ioapic_internal.h +++ b/include/hw/i386/ioapic_internal.h @@ -23,6 +23,7 @@ #define QEMU_IOAPIC_INTERNAL_H =20 #include "exec/memory.h" +#include "hw/i386/ioapic.h" #include "hw/sysbus.h" #include "qemu/notify.h" #include "qom/object.h" diff --git a/include/hw/i386/sgx-epc.h b/include/hw/i386/sgx-epc.h index 581fac389a..3e00efd870 100644 --- a/include/hw/i386/sgx-epc.h +++ b/include/hw/i386/sgx-epc.h @@ -12,6 +12,7 @@ #ifndef QEMU_SGX_EPC_H #define QEMU_SGX_EPC_H =20 +#include "hw/qdev-core.h" #include "hw/i386/hostmem-epc.h" =20 #define TYPE_SGX_EPC "sgx-epc" diff --git a/include/hw/intc/goldfish_pic.h b/include/hw/intc/goldfish_pic.h index e9d552f796..3e79580367 100644 --- a/include/hw/intc/goldfish_pic.h +++ b/include/hw/intc/goldfish_pic.h @@ -10,6 +10,8 @@ #ifndef HW_INTC_GOLDFISH_PIC_H #define HW_INTC_GOLDFISH_PIC_H =20 +#include "hw/sysbus.h" + #define TYPE_GOLDFISH_PIC "goldfish_pic" OBJECT_DECLARE_SIMPLE_TYPE(GoldfishPICState, GOLDFISH_PIC) =20 diff --git a/include/hw/intc/loongarch_pch_msi.h b/include/hw/intc/loongarc= h_pch_msi.h index 6d67560dea..2810665ef7 100644 --- a/include/hw/intc/loongarch_pch_msi.h +++ b/include/hw/intc/loongarch_pch_msi.h @@ -5,6 +5,8 @@ * Copyright (C) 2021 Loongson Technology Corporation Limited */ =20 +#include "hw/sysbus.h" + #define TYPE_LOONGARCH_PCH_MSI "loongarch_pch_msi" OBJECT_DECLARE_SIMPLE_TYPE(LoongArchPCHMSI, LOONGARCH_PCH_MSI) =20 diff --git a/include/hw/intc/loongarch_pch_pic.h b/include/hw/intc/loongarc= h_pch_pic.h index 2d4aa9ed6f..5d5dee9280 100644 --- a/include/hw/intc/loongarch_pch_pic.h +++ b/include/hw/intc/loongarch_pch_pic.h @@ -5,6 +5,8 @@ * Copyright (c) 2021 Loongson Technology Corporation Limited */ =20 +#include "hw/sysbus.h" + #define TYPE_LOONGARCH_PCH_PIC "loongarch_pch_pic" #define PCH_PIC_NAME(name) TYPE_LOONGARCH_PCH_PIC#name OBJECT_DECLARE_SIMPLE_TYPE(LoongArchPCHPIC, LOONGARCH_PCH_PIC) diff --git a/include/hw/intc/nios2_vic.h b/include/hw/intc/nios2_vic.h index ac507b9d74..5c975a2ac4 100644 --- a/include/hw/intc/nios2_vic.h +++ b/include/hw/intc/nios2_vic.h @@ -35,6 +35,8 @@ #ifndef HW_INTC_NIOS2_VIC_H #define HW_INTC_NIOS2_VIC_H =20 +#include "hw/sysbus.h" + #define TYPE_NIOS2_VIC "nios2-vic" OBJECT_DECLARE_SIMPLE_TYPE(Nios2VIC, NIOS2_VIC) =20 diff --git a/include/hw/misc/mchp_pfsoc_dmc.h b/include/hw/misc/mchp_pfsoc_= dmc.h index 2baa1413b0..3bc1581e0f 100644 --- a/include/hw/misc/mchp_pfsoc_dmc.h +++ b/include/hw/misc/mchp_pfsoc_dmc.h @@ -23,6 +23,8 @@ #ifndef MCHP_PFSOC_DMC_H #define MCHP_PFSOC_DMC_H =20 +#include "hw/sysbus.h" + /* DDR SGMII PHY module */ =20 #define MCHP_PFSOC_DDR_SGMII_PHY_REG_SIZE 0x1000 diff --git a/include/hw/misc/mchp_pfsoc_ioscb.h b/include/hw/misc/mchp_pfso= c_ioscb.h index 9235523e33..bab83a96a6 100644 --- a/include/hw/misc/mchp_pfsoc_ioscb.h +++ b/include/hw/misc/mchp_pfsoc_ioscb.h @@ -23,6 +23,8 @@ #ifndef MCHP_PFSOC_IOSCB_H #define MCHP_PFSOC_IOSCB_H =20 +#include "hw/sysbus.h" + typedef struct MchpPfSoCIoscbState { SysBusDevice parent; MemoryRegion container; diff --git a/include/hw/misc/mchp_pfsoc_sysreg.h b/include/hw/misc/mchp_pfs= oc_sysreg.h index 546ba68f6a..a2fd1c9f07 100644 --- a/include/hw/misc/mchp_pfsoc_sysreg.h +++ b/include/hw/misc/mchp_pfsoc_sysreg.h @@ -23,6 +23,8 @@ #ifndef MCHP_PFSOC_SYSREG_H #define MCHP_PFSOC_SYSREG_H =20 +#include "hw/sysbus.h" + #define MCHP_PFSOC_SYSREG_REG_SIZE 0x2000 =20 typedef struct MchpPfSoCSysregState { diff --git a/include/hw/misc/pvpanic.h b/include/hw/misc/pvpanic.h index e520566ab0..fab94165d0 100644 --- a/include/hw/misc/pvpanic.h +++ b/include/hw/misc/pvpanic.h @@ -15,6 +15,7 @@ #ifndef HW_MISC_PVPANIC_H #define HW_MISC_PVPANIC_H =20 +#include "exec/memory.h" #include "qom/object.h" =20 #define TYPE_PVPANIC_ISA_DEVICE "pvpanic" diff --git a/include/hw/misc/sifive_e_prci.h b/include/hw/misc/sifive_e_prc= i.h index 262ca16181..6aa949e910 100644 --- a/include/hw/misc/sifive_e_prci.h +++ b/include/hw/misc/sifive_e_prci.h @@ -18,7 +18,8 @@ =20 #ifndef HW_SIFIVE_E_PRCI_H #define HW_SIFIVE_E_PRCI_H -#include "qom/object.h" + +#include "hw/sysbus.h" =20 enum { SIFIVE_E_PRCI_HFROSCCFG =3D 0x0, diff --git a/include/hw/misc/sifive_u_otp.h b/include/hw/misc/sifive_u_otp.h index 5d0d7df455..170d2148f2 100644 --- a/include/hw/misc/sifive_u_otp.h +++ b/include/hw/misc/sifive_u_otp.h @@ -18,7 +18,8 @@ =20 #ifndef HW_SIFIVE_U_OTP_H #define HW_SIFIVE_U_OTP_H -#include "qom/object.h" + +#include "hw/sysbus.h" =20 #define SIFIVE_U_OTP_PA 0x00 #define SIFIVE_U_OTP_PAIO 0x04 diff --git a/include/hw/misc/sifive_u_prci.h b/include/hw/misc/sifive_u_prc= i.h index d9ebf40b7f..4d2491ad46 100644 --- a/include/hw/misc/sifive_u_prci.h +++ b/include/hw/misc/sifive_u_prci.h @@ -18,7 +18,8 @@ =20 #ifndef HW_SIFIVE_U_PRCI_H #define HW_SIFIVE_U_PRCI_H -#include "qom/object.h" + +#include "hw/sysbus.h" =20 #define SIFIVE_U_PRCI_HFXOSCCFG 0x00 #define SIFIVE_U_PRCI_COREPLLCFG0 0x04 diff --git a/include/hw/misc/virt_ctrl.h b/include/hw/misc/virt_ctrl.h index 25a237e518..81346cf017 100644 --- a/include/hw/misc/virt_ctrl.h +++ b/include/hw/misc/virt_ctrl.h @@ -7,6 +7,8 @@ #ifndef VIRT_CTRL_H #define VIRT_CTRL_H =20 +#include "hw/sysbus.h" + #define TYPE_VIRT_CTRL "virt-ctrl" OBJECT_DECLARE_SIMPLE_TYPE(VirtCtrlState, VIRT_CTRL) =20 diff --git a/include/hw/misc/xlnx-versal-pmc-iou-slcr.h b/include/hw/misc/x= lnx-versal-pmc-iou-slcr.h index 2170420f01..f7d24c93c4 100644 --- a/include/hw/misc/xlnx-versal-pmc-iou-slcr.h +++ b/include/hw/misc/xlnx-versal-pmc-iou-slcr.h @@ -54,6 +54,7 @@ #ifndef XLNX_VERSAL_PMC_IOU_SLCR_H #define XLNX_VERSAL_PMC_IOU_SLCR_H =20 +#include "hw/sysbus.h" #include "hw/register.h" =20 #define TYPE_XILINX_VERSAL_PMC_IOU_SLCR "xlnx.versal-pmc-iou-slcr" diff --git a/include/hw/net/lasi_82596.h b/include/hw/net/lasi_82596.h index 7b62b04833..3ef2f47ba2 100644 --- a/include/hw/net/lasi_82596.h +++ b/include/hw/net/lasi_82596.h @@ -10,7 +10,7 @@ =20 #include "net/net.h" #include "hw/net/i82596.h" -#include "qom/object.h" +#include "hw/sysbus.h" =20 #define TYPE_LASI_82596 "lasi_82596" typedef struct SysBusI82596State SysBusI82596State; diff --git a/include/hw/net/xlnx-zynqmp-can.h b/include/hw/net/xlnx-zynqmp-= can.h index eb1558708b..fd2aa77760 100644 --- a/include/hw/net/xlnx-zynqmp-can.h +++ b/include/hw/net/xlnx-zynqmp-can.h @@ -30,6 +30,7 @@ #ifndef XLNX_ZYNQMP_CAN_H #define XLNX_ZYNQMP_CAN_H =20 +#include "hw/sysbus.h" #include "hw/register.h" #include "net/can_emu.h" #include "net/can_host.h" diff --git a/include/hw/ppc/pnv_psi.h b/include/hw/ppc/pnv_psi.h index 8253469b8f..2a6f715350 100644 --- a/include/hw/ppc/pnv_psi.h +++ b/include/hw/ppc/pnv_psi.h @@ -23,7 +23,7 @@ #include "hw/sysbus.h" #include "hw/ppc/xics.h" #include "hw/ppc/xive.h" -#include "qom/object.h" +#include "hw/qdev-core.h" =20 #define TYPE_PNV_PSI "pnv-psi" OBJECT_DECLARE_TYPE(PnvPsi, PnvPsiClass, diff --git a/include/hw/riscv/boot_opensbi.h b/include/hw/riscv/boot_opensb= i.h index c19cad4818..1b749663dc 100644 --- a/include/hw/riscv/boot_opensbi.h +++ b/include/hw/riscv/boot_opensbi.h @@ -8,6 +8,8 @@ #ifndef RISCV_BOOT_OPENSBI_H #define RISCV_BOOT_OPENSBI_H =20 +#include "exec/cpu-defs.h" + /** Expected value of info magic ('OSBI' ascii string in hex) */ #define FW_DYNAMIC_INFO_MAGIC_VALUE 0x4942534f =20 diff --git a/include/hw/riscv/microchip_pfsoc.h b/include/hw/riscv/microchi= p_pfsoc.h index a757b240e0..9e806b09b1 100644 --- a/include/hw/riscv/microchip_pfsoc.h +++ b/include/hw/riscv/microchip_pfsoc.h @@ -22,13 +22,16 @@ #ifndef HW_MICROCHIP_PFSOC_H #define HW_MICROCHIP_PFSOC_H =20 +#include "hw/boards.h" #include "hw/char/mchp_pfsoc_mmuart.h" +#include "hw/cpu/cluster.h" #include "hw/dma/sifive_pdma.h" #include "hw/misc/mchp_pfsoc_dmc.h" #include "hw/misc/mchp_pfsoc_ioscb.h" #include "hw/misc/mchp_pfsoc_sysreg.h" #include "hw/net/cadence_gem.h" #include "hw/sd/cadence_sdhci.h" +#include "hw/riscv/riscv_hart.h" =20 typedef struct MicrochipPFSoCState { /*< private >*/ diff --git a/include/hw/riscv/numa.h b/include/hw/riscv/numa.h index fcce942cee..1a9cce3344 100644 --- a/include/hw/riscv/numa.h +++ b/include/hw/riscv/numa.h @@ -19,6 +19,7 @@ #ifndef RISCV_NUMA_H #define RISCV_NUMA_H =20 +#include "hw/boards.h" #include "hw/sysbus.h" #include "sysemu/numa.h" =20 diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h index 8f63a183c4..a43304292c 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -19,6 +19,8 @@ #ifndef HW_SIFIVE_U_H #define HW_SIFIVE_U_H =20 +#include "hw/boards.h" +#include "hw/cpu/cluster.h" #include "hw/dma/sifive_pdma.h" #include "hw/net/cadence_gem.h" #include "hw/riscv/riscv_hart.h" diff --git a/include/hw/riscv/spike.h b/include/hw/riscv/spike.h index 73d69234de..73bf2a9aad 100644 --- a/include/hw/riscv/spike.h +++ b/include/hw/riscv/spike.h @@ -19,9 +19,9 @@ #ifndef HW_RISCV_SPIKE_H #define HW_RISCV_SPIKE_H =20 +#include "hw/boards.h" #include "hw/riscv/riscv_hart.h" #include "hw/sysbus.h" -#include "qom/object.h" =20 #define SPIKE_CPUS_MAX 8 #define SPIKE_SOCKETS_MAX 8 diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index be4ab8fe7f..3007bb3646 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -19,10 +19,10 @@ #ifndef HW_RISCV_VIRT_H #define HW_RISCV_VIRT_H =20 +#include "hw/boards.h" #include "hw/riscv/riscv_hart.h" #include "hw/sysbus.h" #include "hw/block/flash.h" -#include "qom/object.h" =20 #define VIRT_CPUS_MAX_BITS 9 #define VIRT_CPUS_MAX (1 << VIRT_CPUS_MAX_BITS) diff --git a/include/hw/ssi/sifive_spi.h b/include/hw/ssi/sifive_spi.h index 47d0d6a47c..d0c40cdb11 100644 --- a/include/hw/ssi/sifive_spi.h +++ b/include/hw/ssi/sifive_spi.h @@ -22,6 +22,9 @@ #ifndef HW_SIFIVE_SPI_H #define HW_SIFIVE_SPI_H =20 +#include "qemu/fifo8.h" +#include "hw/sysbus.h" + #define SIFIVE_SPI_REG_NUM (0x78 / 4) =20 #define TYPE_SIFIVE_SPI "sifive.spi" diff --git a/include/hw/timer/sse-timer.h b/include/hw/timer/sse-timer.h index b4ee8e7f6c..265ad32400 100644 --- a/include/hw/timer/sse-timer.h +++ b/include/hw/timer/sse-timer.h @@ -25,6 +25,7 @@ #define SSE_TIMER_H =20 #include "hw/sysbus.h" +#include "qemu/timer.h" #include "qom/object.h" #include "hw/timer/sse-counter.h" =20 diff --git a/include/hw/usb/hcd-dwc3.h b/include/hw/usb/hcd-dwc3.h index 7c804d536d..f752a27e94 100644 --- a/include/hw/usb/hcd-dwc3.h +++ b/include/hw/usb/hcd-dwc3.h @@ -26,6 +26,7 @@ #ifndef HCD_DWC3_H #define HCD_DWC3_H =20 +#include "hw/register.h" #include "hw/usb/hcd-xhci.h" #include "hw/usb/hcd-xhci-sysbus.h" =20 diff --git a/include/hw/usb/hcd-musb.h b/include/hw/usb/hcd-musb.h index f30a26f7f4..4d4b1ec0fc 100644 --- a/include/hw/usb/hcd-musb.h +++ b/include/hw/usb/hcd-musb.h @@ -13,6 +13,8 @@ #ifndef HW_USB_HCD_MUSB_H #define HW_USB_HCD_MUSB_H =20 +#include "exec/hwaddr.h" + enum musb_irq_source_e { musb_irq_suspend =3D 0, musb_irq_resume, diff --git a/include/hw/usb/xlnx-usb-subsystem.h b/include/hw/usb/xlnx-usb-= subsystem.h index 5b730abd84..40f9e97e09 100644 --- a/include/hw/usb/xlnx-usb-subsystem.h +++ b/include/hw/usb/xlnx-usb-subsystem.h @@ -25,6 +25,8 @@ #ifndef XLNX_USB_SUBSYSTEM_H #define XLNX_USB_SUBSYSTEM_H =20 +#include "hw/register.h" +#include "hw/sysbus.h" #include "hw/usb/xlnx-versal-usb2-ctrl-regs.h" #include "hw/usb/hcd-dwc3.h" =20 diff --git a/include/hw/usb/xlnx-versal-usb2-ctrl-regs.h b/include/hw/usb/x= lnx-versal-usb2-ctrl-regs.h index 633bf3013a..6a502006b0 100644 --- a/include/hw/usb/xlnx-versal-usb2-ctrl-regs.h +++ b/include/hw/usb/xlnx-versal-usb2-ctrl-regs.h @@ -26,6 +26,9 @@ #ifndef XLNX_VERSAL_USB2_CTRL_REGS_H #define XLNX_VERSAL_USB2_CTRL_REGS_H =20 +#include "hw/register.h" +#include "hw/sysbus.h" + #define TYPE_XILINX_VERSAL_USB2_CTRL_REGS "xlnx.versal-usb2-ctrl-regs" =20 #define XILINX_VERSAL_USB2_CTRL_REGS(obj) \ diff --git a/include/hw/virtio/virtio-mmio.h b/include/hw/virtio/virtio-mmi= o.h index 090f7730e7..aa49262022 100644 --- a/include/hw/virtio/virtio-mmio.h +++ b/include/hw/virtio/virtio-mmio.h @@ -22,8 +22,8 @@ #ifndef HW_VIRTIO_MMIO_H #define HW_VIRTIO_MMIO_H =20 +#include "hw/sysbus.h" #include "hw/virtio/virtio-bus.h" -#include "qom/object.h" =20 /* QOM macros */ /* virtio-mmio-bus */ diff --git a/include/qemu/plugin-memory.h b/include/qemu/plugin-memory.h index 8ad13c110c..6fd539022a 100644 --- a/include/qemu/plugin-memory.h +++ b/include/qemu/plugin-memory.h @@ -9,6 +9,9 @@ #ifndef PLUGIN_MEMORY_H #define PLUGIN_MEMORY_H =20 +#include "exec/cpu-defs.h" +#include "exec/hwaddr.h" + struct qemu_plugin_hwaddr { bool is_io; bool is_store; diff --git a/include/sysemu/dirtyrate.h b/include/sysemu/dirtyrate.h index 4d3b9a4902..20813f303f 100644 --- a/include/sysemu/dirtyrate.h +++ b/include/sysemu/dirtyrate.h @@ -13,6 +13,8 @@ #ifndef QEMU_DIRTYRATE_H #define QEMU_DIRTYRATE_H =20 +#include "qapi/qapi-types-migration.h" + typedef struct VcpuStat { int nvcpu; /* number of vcpu */ DirtyRateVcpu *rates; /* array of dirty rate for each vcpu */ diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h index 4ffed0b659..7008d43d04 100644 --- a/include/sysemu/dump.h +++ b/include/sysemu/dump.h @@ -15,6 +15,7 @@ #define DUMP_H =20 #include "qapi/qapi-types-dump.h" +#include "qemu/thread.h" =20 #define MAKEDUMPFILE_SIGNATURE "makedumpfile" #define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_hea= der */ diff --git a/include/user/syscall-trace.h b/include/user/syscall-trace.h index b4e53d3870..c5a220da34 100644 --- a/include/user/syscall-trace.h +++ b/include/user/syscall-trace.h @@ -10,6 +10,7 @@ #ifndef SYSCALL_TRACE_H #define SYSCALL_TRACE_H =20 +#include "exec/user/abitypes.h" #include "trace/trace-root.h" =20 /* --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007530; cv=none; d=zohomail.com; s=zohoarc; b=TBDg0yIn1cHyH4DfnnzMQqijOdN0SEBBHc+XCEddkC5FfS8gr7/gznDzRz6CV765ldCKDPb0tZnOo9dL31BI3Za7cPdg5ZDF4y8Ujld6mcJUR672NS/VwACm8xxC1MYziApGXxEd/4evywswcvP4cl09++TLUGwlRdfkHErqF3A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007530; 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=bLymAHSGzaFTWRDHZEovTgyPzveRdcZKs3gInKleL6w=; b=K4Ud+V0QNmyqeOTlX1wFDeYd2AkEQQxoRbN5FG/imfCo4s6WRB/BYibsqj4HAU62XutDW/64k9v9CfeKpkZsV2LOwdUNJqGODtMxELvJ9W03rnvmSK3suoeNn3hJmYCjMMJBcJQnWStLZ4jWmFQKgIXNFu52x1pYPm4vDdGNwbg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007530485823.561641661138; Wed, 14 Dec 2022 00:45:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUT-0003Z1-G9; Wed, 14 Dec 2022 02:47:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003PQ-KA for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:31 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUC-0003bs-5c for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:31 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-605-akNy8YgLPtG-k2QmmZ3UQA-1; Wed, 14 Dec 2022 02:47:25 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B0127100F903 for ; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8AC751121314; Wed, 14 Dec 2022 07:47:24 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 54B0721E6936; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004046; h=from:from: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; bh=bLymAHSGzaFTWRDHZEovTgyPzveRdcZKs3gInKleL6w=; b=OzP2yY/LRHB6vNs09uv4nLi/Npdx+odoIqtH3uu6cMqfrwliJf6Znt20IhDxO/E0+VzYDc ix0VkENDoLPtp2jovaZ2uWufqOrFBGVkuIaK+xS6xd68xNQz+NWEH7wxgVRvm2dBLqWF4m z5ofI/KWO1ii+Nkef5UQvQSKzt1RmV4= X-MC-Unique: akNy8YgLPtG-k2QmmZ3UQA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 02/30] qapi: Tidy up whitespace in generated code Date: Wed, 14 Dec 2022 08:46:53 +0100 Message-Id: <20221214074721.731441-5-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007531043100001 Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-3-armbru@redhat.com> --- docs/devel/qapi-code-gen.rst | 1 - scripts/qapi/commands.py | 7 +++---- scripts/qapi/events.py | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst index 997313fce7..b56ea4546d 100644 --- a/docs/devel/qapi-code-gen.rst +++ b/docs/devel/qapi-code-gen.rst @@ -1664,7 +1664,6 @@ Example:: $ cat qapi-generated/example-qapi-commands.c [Uninteresting stuff omitted...] =20 - static void qmp_marshal_output_UserDefOne(UserDefOne *ret_in, QObject **ret_out, Error **errp) { diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py index 38ca38a7b9..cf68aaf0bf 100644 --- a/scripts/qapi/commands.py +++ b/scripts/qapi/commands.py @@ -83,7 +83,7 @@ def gen_call(name: str, =20 trace_qmp_enter_%(name)s(req_json->str); } - ''', +''', upper=3Dupper, name=3Dname) =20 ret +=3D mcgen(''' @@ -124,13 +124,13 @@ def gen_call(name: str, =20 trace_qmp_exit_%(name)s(ret_json->str, true); } - ''', +''', upper=3Dupper, name=3Dname) else: ret +=3D mcgen(''' =20 trace_qmp_exit_%(name)s("{}", true); - ''', +''', name=3Dname) =20 return ret @@ -316,7 +316,6 @@ def _begin_user_module(self, name: str) -> None: #include "qapi/error.h" #include "%(visit)s.h" #include "%(commands)s.h" - ''', commands=3Dcommands, visit=3Dvisit)) =20 diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py index 27b44c49f5..e762d53d19 100644 --- a/scripts/qapi/events.py +++ b/scripts/qapi/events.py @@ -196,7 +196,6 @@ def _begin_user_module(self, name: str) -> None: #include "qapi/error.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp-event.h" - ''', events=3Devents, visit=3Dvisit, prefix=3Dself._prefix)) --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004098; cv=none; d=zohomail.com; s=zohoarc; b=WtzgZFTp5CPnS+3tQLftz38FLvNM26KQskGWrr/234ChY4ZQf6aSjXQ4e6pzHX6C9BHciazAiSiLbIE4A+BOUzAGowzKETh1ES69msBtzt3NBcb86J16tTavEqlXq5EcAhoqEyDzkWZ/HadpvPVdIs4vgtyyQ1KGkpWNWmF0IVo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004098; 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=RnZ+VAAI4lVWzu20Hlb0QCdd6aRMdLgNrgr6Z8/crug=; b=n8rX/L36v6RqXhm19T0zkYXvxSoOKaFWUhBB5Fi6Hbur3roBMzMWk3y3qCu6Y1M2T7GAprAMU434g2qGVIgaZufW16o85j3ADZdBKgyrf+2G8Wd6zyiHdRZFd5YvzqNeKYRYUj0JcGBjetU9gjUq4O8IolqBptznoa1rulXW8as= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004098085908.5688421069789; Tue, 13 Dec 2022 23:48:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003RN-V8; Wed, 14 Dec 2022 02:47:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUG-0003Pm-Va for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003dZ-77 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:32 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-384-sg6I5jJQP1qmMTKx0X3wXA-1; Wed, 14 Dec 2022 02:47:29 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2B614101B42B for ; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0430F2026D68; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 56FE721E675B; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004050; h=from:from: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; bh=RnZ+VAAI4lVWzu20Hlb0QCdd6aRMdLgNrgr6Z8/crug=; b=cR7gkJ7giYqGTDlYG6W3YdZ03qXzwoIyh8whC7j+T9D4KjlgtMzX/eY/ubZVs3fXaaAQwE vpDdYIWRPsYjHby0Yp6ntsT2qJP+Rt8QAmHdyNstOrHTP41+3pVoR+OunwKK9srH5EfJzH 4QJLAi174WBYcpxoWl/uRyUPo38uMR8= X-MC-Unique: sg6I5jJQP1qmMTKx0X3wXA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 03/30] docs/devel/qapi-code-gen: Extend example for next commit's change Date: Wed, 14 Dec 2022 08:46:54 +0100 Message-Id: <20221214074721.731441-6-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004100390100007 The next commit will change the code generated for some optional members. The example schema contains an optional member affected by the change. Add one that is not affected. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-4-armbru@redhat.com> --- docs/devel/qapi-code-gen.rst | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst index b56ea4546d..3a817ba498 100644 --- a/docs/devel/qapi-code-gen.rst +++ b/docs/devel/qapi-code-gen.rst @@ -1357,7 +1357,7 @@ qmp_my_command(); everything else is produced by the = generator. :: =20 $ cat example-schema.json { 'struct': 'UserDefOne', - 'data': { 'integer': 'int', '*string': 'str' } } + 'data': { 'integer': 'int', '*string': 'str', '*flag': 'bool' } } =20 { 'command': 'my-command', 'data': { 'arg1': ['UserDefOne'] }, @@ -1412,6 +1412,8 @@ Example:: int64_t integer; bool has_string; char *string; + bool has_flag; + bool flag; }; =20 void qapi_free_UserDefOne(UserDefOne *obj); @@ -1531,6 +1533,11 @@ Example:: return false; } } + if (visit_optional(v, "flag", &obj->has_flag)) { + if (!visit_type_bool(v, "flag", &obj->flag, errp)) { + return false; + } + } return true; } =20 @@ -1916,6 +1923,12 @@ Example:: { "type", QLIT_QSTR("str"), }, {} })), + QLIT_QDICT(((QLitDictEntry[]) { + { "default", QLIT_QNULL, }, + { "name", QLIT_QSTR("flag"), }, + { "type", QLIT_QSTR("bool"), }, + {} + })), {} })), }, { "meta-type", QLIT_QSTR("object"), }, @@ -1949,6 +1962,12 @@ Example:: { "name", QLIT_QSTR("str"), }, {} })), + QLIT_QDICT(((QLitDictEntry[]) { + { "json-type", QLIT_QSTR("boolean"), }, + { "meta-type", QLIT_QSTR("builtin"), }, + { "name", QLIT_QSTR("bool"), }, + {} + })), {} })); =20 --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005934; cv=none; d=zohomail.com; s=zohoarc; b=X06WgIAv2ReYIRYGd0wiUK2k/6YzPVcvPBSOtkj9Z9W9phexhm7hq6SX4ALfP517itFtB4sFnYb0pe0F5PzrJHiT+F89f9uyJD4qVhgdiNuKbyiu4tU0w3bxA5dfuY1zzr+il4lURXsgEhQDaXoxqvDoaXO6gc7K7ev1FocYl84= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005934; 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=YXL0hVOZCuY8/W/ndbVdDllA5AFVwE2ivvmRXFXVP0g=; b=nOKTtrvdse30QPUR8NKm6EkUZAu47e3QKiFAm6eDYP/9Mg2/CNFn1gykmsKWAibUW3qCr/bbBU+B7pljdBZjvhX9EKusBu4qsgHjrQikvrd4FnWYhWTA8sSy+6BzeoL3hPstq0sT1ZCl+NixynBxJV6NaZxUjPDHncnZDRH1jZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005934016992.8350875424064; Wed, 14 Dec 2022 00:18:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TH-Af; Wed, 14 Dec 2022 02:47:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003QJ-JK for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003dM-6r for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:33 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-669-sqi27NrBNTiDVMXbWiXVmw-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4B9AC3814595 for ; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03D30C15BA0; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5960721E6481; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004050; h=from:from: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; bh=YXL0hVOZCuY8/W/ndbVdDllA5AFVwE2ivvmRXFXVP0g=; b=ddX3RsTLPKlDkvEX3lfgOb5K9Iyb1gRil6G52YMpYIs57SR6wCQbIBQiM/VJPv21Gw6vsB R9qJ3dadH2TT32GGri/453uSgvMkrgENpAjJTiWb7bA8j2iyHAqsgwF8Vg4pKYlaD+kjKC MPf28l46EwZwTcNyFpQREiTTfhYFwHM= X-MC-Unique: sqi27NrBNTiDVMXbWiXVmw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 04/30] qapi: Start to elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:46:55 +0100 Message-Id: <20221214074721.731441-7-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005934420100003 In QAPI, absent optional members are distinct from any present value. We thus represent an optional schema member FOO as two C members: a FOO with the member's type, and a bool has_FOO. Likewise for function arguments. However, has_FOO is actually redundant for a pointer-valued FOO, which can be null only when has_FOO is false, i.e. has_FOO =3D=3D !!FOO. Except for arrays, where we a null FOO can also be a present empty array. The redundant has_FOO are a nuisance to work with. Improve the generator to elide them. Uses of has_FOO need to be replaced as follows. Tests of has_FOO become the equivalent comparison of FOO with null. For brevity, this is commonly done by implicit conversion to bool. Assignments to has_FOO get dropped. Likewise for arguments to has_FOO parameters. Beware: code may violate the invariant has_FOO =3D=3D !!FOO before the transformation, and get away with it. The above transformation can then break things. Two cases: * Absent: if code ignores FOO entirely when !has_FOO (except for freeing it if necessary), even non-null / uninitialized FOO works. Such code is known to exist. * Present: if code ignores FOO entirely when has_FOO, even null FOO works. Such code should not exist. In both cases, replacing tests of has_FOO by FOO reverts their sense. We have to fix the value of FOO then. To facilitate review of the necessary updates to handwritten code, add means to opt out of this change, and opt out for all QAPI schema modules where the change requires updates to handwritten code. The next few commits will remove these opt-outs in reviewable chunks, then drop the means to opt out. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-5-armbru@redhat.com> --- docs/devel/qapi-code-gen.rst | 5 +-- docs/devel/writing-monitor-commands.rst | 14 ++++---- scripts/qapi/commands.py | 2 +- scripts/qapi/events.py | 2 +- scripts/qapi/gen.py | 2 +- scripts/qapi/schema.py | 48 +++++++++++++++++++++++++ scripts/qapi/types.py | 2 +- scripts/qapi/visit.py | 17 +++++++-- 8 files changed, 77 insertions(+), 15 deletions(-) diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst index 3a817ba498..5edc49aa74 100644 --- a/docs/devel/qapi-code-gen.rst +++ b/docs/devel/qapi-code-gen.rst @@ -1410,7 +1410,6 @@ Example:: =20 struct UserDefOne { int64_t integer; - bool has_string; char *string; bool has_flag; bool flag; @@ -1525,10 +1524,12 @@ Example:: =20 bool visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error = **errp) { + bool has_string =3D !!obj->string; + if (!visit_type_int(v, "integer", &obj->integer, errp)) { return false; } - if (visit_optional(v, "string", &obj->has_string)) { + if (visit_optional(v, "string", &has_string)) { if (!visit_type_str(v, "string", &obj->string, errp)) { return false; } diff --git a/docs/devel/writing-monitor-commands.rst b/docs/devel/writing-m= onitor-commands.rst index 2fefedcd98..2c11e71665 100644 --- a/docs/devel/writing-monitor-commands.rst +++ b/docs/devel/writing-monitor-commands.rst @@ -166,9 +166,9 @@ and user defined types. =20 Now, let's update our C implementation in monitor/qmp-cmds.c:: =20 - void qmp_hello_world(bool has_message, const char *message, Error **errp) + void qmp_hello_world(const char *message, Error **errp) { - if (has_message) { + if (message) { printf("%s\n", message); } else { printf("Hello, world\n"); @@ -210,9 +210,9 @@ file. Basically, most errors are set by calling the err= or_setg() function. Let's say we don't accept the string "message" to contain the word "love".= If it does contain it, we want the "hello-world" command to return an error:: =20 - void qmp_hello_world(bool has_message, const char *message, Error **errp) + void qmp_hello_world(const char *message, Error **errp) { - if (has_message) { + if (message) { if (strstr(message, "love")) { error_setg(errp, "the word 'love' is not allowed"); return; @@ -467,9 +467,9 @@ There are a number of things to be noticed: allocated by the regular g_malloc0() function. Note that we chose to initialize the memory to zero. This is recommended for all QAPI types, = as it helps avoiding bad surprises (specially with booleans) -4. Remember that "next_deadline" is optional? All optional members have a - 'has_TYPE_NAME' member that should be properly set by the implementatio= n, - as shown above +4. Remember that "next_deadline" is optional? Non-pointer optional + members have a 'has_TYPE_NAME' member that should be properly set + by the implementation, as shown above 5. Even static strings, such as "alarm_timer->name", should be dynamically allocated by the implementation. This is so because the QAPI also gener= ates a function to free its types and it cannot distinguish between dynamica= lly diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py index cf68aaf0bf..79c5e5c3a9 100644 --- a/scripts/qapi/commands.py +++ b/scripts/qapi/commands.py @@ -64,7 +64,7 @@ def gen_call(name: str, elif arg_type: assert not arg_type.variants for memb in arg_type.members: - if memb.optional: + if memb.need_has(): argstr +=3D 'arg.has_%s, ' % c_name(memb.name) argstr +=3D 'arg.%s, ' % c_name(memb.name) =20 diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py index e762d53d19..3cf01e96b6 100644 --- a/scripts/qapi/events.py +++ b/scripts/qapi/events.py @@ -60,7 +60,7 @@ def gen_param_var(typ: QAPISchemaObjectType) -> str: for memb in typ.members: ret +=3D sep sep =3D ', ' - if memb.optional: + if memb.need_has(): ret +=3D 'has_' + c_name(memb.name) + sep if memb.type.name =3D=3D 'str': # Cast away const added in build_params() diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py index 113b49134d..b5a8d03e8e 100644 --- a/scripts/qapi/gen.py +++ b/scripts/qapi/gen.py @@ -121,7 +121,7 @@ def build_params(arg_type: Optional[QAPISchemaObjectTyp= e], for memb in arg_type.members: ret +=3D sep sep =3D ', ' - if memb.optional: + if memb.need_has(): ret +=3D 'bool has_%s, ' % c_name(memb.name) ret +=3D '%s %s' % (memb.type.c_param_type(), c_name(memb.name)) diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 3728340c37..58b00982ea 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -253,6 +253,11 @@ def doc_type(self): return None return self.name =20 + def need_has_if_optional(self): + # When FOO is a pointer, has_FOO =3D=3D !!FOO, i.e. has_FOO is red= undant. + # Except for arrays; see QAPISchemaArrayType.need_has_if_optional(= ). + return not self.c_type().endswith(POINTER_SUFFIX) + def check(self, schema): QAPISchemaEntity.check(self, schema) for feat in self.features: @@ -352,6 +357,11 @@ def __init__(self, name, info, element_type): self._element_type_name =3D element_type self.element_type =3D None =20 + def need_has_if_optional(self): + # When FOO is an array, we still need has_FOO to distinguish + # absent (!has_FOO) from present and empty (has_FOO && !FOO). + return True + def check(self, schema): super().check(schema) self.element_type =3D schema.resolve_type( @@ -745,6 +755,44 @@ def __init__(self, name, info, typ, optional, ifcond= =3DNone, features=3DNone): self.optional =3D optional self.features =3D features or [] =20 + def need_has(self): + assert self.type + # Temporary hack to support dropping the has_FOO in reviewable chu= nks + opt_out =3D [ + 'qapi/acpi.json', + 'qapi/audio.json', + 'qapi/block-core.json', + 'qapi/block-export.json', + 'qapi/block.json', + 'qapi/char.json', + 'qapi/crypto.json', + 'qapi/dump.json', + 'qapi/introspect.json', + 'qapi/job.json', + 'qapi/machine.json', + 'qapi/machine-target.json', + 'qapi/migration.json', + 'qapi/misc.json', + 'qapi/net.json', + 'qapi/pci.json', + 'qapi/qdev.json', + 'qapi/qom.json', + 'qapi/replay.json', + 'qapi/rocker.json', + 'qapi/run-state.json', + 'qapi/stats.json', + 'qapi/tpm.json', + 'qapi/transaction.json', + 'qapi/ui.json', + 'qapi/virtio.json', + 'qga/qapi-schema.json', + 'tests/qapi-schema/qapi-schema-test.json'] + if self.info and any(self.info.fname.endswith(mod) + for mod in opt_out): + return self.optional + # End of temporary hack + return self.optional and self.type.need_has_if_optional() + def check(self, schema): assert self.defined_in self.type =3D schema.resolve_type(self._type_name, self.info, diff --git a/scripts/qapi/types.py b/scripts/qapi/types.py index 477d027001..c39d054d2c 100644 --- a/scripts/qapi/types.py +++ b/scripts/qapi/types.py @@ -142,7 +142,7 @@ def gen_struct_members(members: List[QAPISchemaObjectTy= peMember]) -> str: ret =3D '' for memb in members: ret +=3D memb.ifcond.gen_if() - if memb.optional: + if memb.need_has(): ret +=3D mcgen(''' bool has_%(c_name)s; ''', diff --git a/scripts/qapi/visit.py b/scripts/qapi/visit.py index 380fa197f5..26a584ee4c 100644 --- a/scripts/qapi/visit.py +++ b/scripts/qapi/visit.py @@ -71,6 +71,16 @@ def gen_visit_object_members(name: str, ''', c_name=3Dc_name(name)) =20 + sep =3D '' + for memb in members: + if memb.optional and not memb.need_has(): + ret +=3D mcgen(''' + bool has_%(c_name)s =3D !!obj->%(c_name)s; +''', + c_name=3Dc_name(memb.name)) + sep =3D '\n' + ret +=3D sep + if base: ret +=3D mcgen(''' if (!visit_type_%(c_type)s_members(v, (%(c_type)s *)obj, errp)) { @@ -82,10 +92,13 @@ def gen_visit_object_members(name: str, for memb in members: ret +=3D memb.ifcond.gen_if() if memb.optional: + has =3D 'has_' + c_name(memb.name) + if memb.need_has(): + has =3D 'obj->' + has ret +=3D mcgen(''' - if (visit_optional(v, "%(name)s", &obj->has_%(c_name)s)) { + if (visit_optional(v, "%(name)s", &%(has)s)) { ''', - name=3Dmemb.name, c_name=3Dc_name(memb.name)) + name=3Dmemb.name, has=3Dhas) indent.increase() special_features =3D gen_special_features(memb.features) if special_features !=3D '0': --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004114; cv=none; d=zohomail.com; s=zohoarc; b=K8ZaKCtVE5Kc9d8HN0nG4J9A8RASJC51B0DmCWhkc33JyeQ7PRLH6neK8zIq+1FbOrhi2ZPfdqgLgZdj3rj68rIQMo4BN71BmyZf/CrhH5mVI7NweWPWcNGYHFafuhiXFLAhG/IRWR4TtmknZq+9qNzgue6BzKwpQm1LD8+S9po= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004114; 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=IS93IVCU+lCvLV157EcMiPMjbtjam72kl+zc8ZOsMMM=; b=iuxFSB0hmESS/2tJZGoL5Y7XuOxjTgbb2wVNiSt6kFmvcAU0My5L6Z+SmXdMMdODx2RROYWdB5w/nsK1t4L+vYxSLaKKjRp0j9shURtrb+sGoFnKHSiqRpw1TenSmfviud3jc0Kojamhr+oPqUvikFt+dvrB2woOrzusXq8HWZ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004114575282.52316536765466; Tue, 13 Dec 2022 23:48:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TB-6M; Wed, 14 Dec 2022 02:47:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUH-0003Pp-Al for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003dJ-6f for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:32 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-384-CeUzWuvpPBGgm0jYKr9uDw-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4A02F101B44E for ; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03548400F5B; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5C09921E6491; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004050; h=from:from: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; bh=IS93IVCU+lCvLV157EcMiPMjbtjam72kl+zc8ZOsMMM=; b=Hxkqg3tJCkLKVaiBZ1rybi4tNgd/MrRwaid2lqGAz6sf2YIWyRSH+e6Z3pkg+WFdCh3txD kvQsO6JssbHEjv6WDsZaoC+t+oTgQqnqDYtPF7SCIWx7makmCfhvz1IFXzbMQS+4KvDm7Z 3omTVcGjNgJxCNAK1GQxB6mdSWRnXb8= X-MC-Unique: CeUzWuvpPBGgm0jYKr9uDw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 05/30] qapi tests: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:46:56 +0100 Message-Id: <20221214074721.731441-8-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004116318100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for tests/qapi-schema/qapi-schema-test.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-6-armbru@redhat.com> --- tests/qtest/qmp-cmd-test.c | 2 +- tests/unit/test-qmp-cmds.c | 26 +++++++++++------------- tests/unit/test-qmp-event.c | 4 ++-- tests/unit/test-qobject-input-visitor.c | 2 +- tests/unit/test-qobject-output-visitor.c | 2 -- tests/unit/test-visitor-serialization.c | 3 +-- scripts/qapi/schema.py | 4 +--- 7 files changed, 18 insertions(+), 25 deletions(-) diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c index 897e4e937b..98caf6fef6 100644 --- a/tests/qtest/qmp-cmd-test.c +++ b/tests/qtest/qmp-cmd-test.c @@ -174,7 +174,7 @@ static bool object_type_has_mandatory_members(SchemaInf= o *type) g_assert(type->meta_type =3D=3D SCHEMA_META_TYPE_OBJECT); =20 for (tail =3D type->u.object.members; tail; tail =3D tail->next) { - if (!tail->value->has_q_default) { + if (!tail->value->q_default) { return true; } } diff --git a/tests/unit/test-qmp-cmds.c b/tests/unit/test-qmp-cmds.c index 6085c09995..2373cd64cb 100644 --- a/tests/unit/test-qmp-cmds.c +++ b/tests/unit/test-qmp-cmds.c @@ -43,15 +43,15 @@ void qmp_user_def_cmd1(UserDefOne * ud1, Error **errp) { } =20 -FeatureStruct1 *qmp_test_features0(bool has_fs0, FeatureStruct0 *fs0, - bool has_fs1, FeatureStruct1 *fs1, - bool has_fs2, FeatureStruct2 *fs2, - bool has_fs3, FeatureStruct3 *fs3, - bool has_fs4, FeatureStruct4 *fs4, - bool has_cfs1, CondFeatureStruct1 *cfs1, - bool has_cfs2, CondFeatureStruct2 *cfs2, - bool has_cfs3, CondFeatureStruct3 *cfs3, - bool has_cfs4, CondFeatureStruct4 *cfs4, +FeatureStruct1 *qmp_test_features0(FeatureStruct0 *fs0, + FeatureStruct1 *fs1, + FeatureStruct2 *fs2, + FeatureStruct3 *fs3, + FeatureStruct4 *fs4, + CondFeatureStruct1 *cfs1, + CondFeatureStruct2 *cfs2, + CondFeatureStruct3 *cfs3, + CondFeatureStruct4 *cfs4, Error **errp) { return g_new0(FeatureStruct1, 1); @@ -77,8 +77,7 @@ void qmp_test_command_cond_features3(Error **errp) { } =20 -UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, - bool has_udb1, UserDefOne *ud1b, +UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, UserDefOne *ud1b, Error **errp) { UserDefTwo *ret; @@ -87,8 +86,8 @@ UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, =20 ud1c->string =3D strdup(ud1a->string); ud1c->integer =3D ud1a->integer; - ud1d->string =3D strdup(has_udb1 ? ud1b->string : "blah0"); - ud1d->integer =3D has_udb1 ? ud1b->integer : 0; + ud1d->string =3D strdup(ud1b ? ud1b->string : "blah0"); + ud1d->integer =3D ud1b ? ud1b->integer : 0; =20 ret =3D g_new0(UserDefTwo, 1); ret->string0 =3D strdup("blah1"); @@ -98,7 +97,6 @@ UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, ret->dict1->dict2->userdef =3D ud1c; ret->dict1->dict2->string =3D strdup("blah3"); ret->dict1->dict3 =3D g_new0(UserDefTwoDictDict, 1); - ret->dict1->has_dict3 =3D true; ret->dict1->dict3->userdef =3D ud1d; ret->dict1->dict3->string =3D strdup("blah4"); =20 diff --git a/tests/unit/test-qmp-event.c b/tests/unit/test-qmp-event.c index 7d961d716a..3626d2372f 100644 --- a/tests/unit/test-qmp-event.c +++ b/tests/unit/test-qmp-event.c @@ -109,7 +109,7 @@ static void test_event_c(TestEventData *data, data->expect =3D qdict_from_jsonf_nofail( "{ 'event': 'EVENT_C', 'data': {" " 'a': 1, 'b': { 'integer': 2, 'string': 'test1' }, 'c': 'test2' }= }"); - qapi_event_send_event_c(true, 1, true, &b, "test2"); + qapi_event_send_event_c(true, 1, &b, "test2"); g_assert(data->emitted); qobject_unref(data->expect); } @@ -135,7 +135,7 @@ static void test_event_d(TestEventData *data, " 'struct1': { 'integer': 2, 'string': 'test1', 'enum1': 'value1'= }," " 'string': 'test2', 'enum2': 'value2' }," " 'b': 'test3', 'enum3': 'value3' } }"); - qapi_event_send_event_d(&a, "test3", false, NULL, true, ENUM_ONE_VALUE= 3); + qapi_event_send_event_d(&a, "test3", NULL, true, ENUM_ONE_VALUE3); g_assert(data->emitted); qobject_unref(data->expect); } diff --git a/tests/unit/test-qobject-input-visitor.c b/tests/unit/test-qobj= ect-input-visitor.c index 5f614afdbf..77fbf985be 100644 --- a/tests/unit/test-qobject-input-visitor.c +++ b/tests/unit/test-qobject-input-visitor.c @@ -431,7 +431,7 @@ static void test_visitor_in_struct_nested(TestInputVisi= torData *data, g_assert_cmpint(udp->dict1->dict2->userdef->integer, =3D=3D, 42); g_assert_cmpstr(udp->dict1->dict2->userdef->string, =3D=3D, "string"); g_assert_cmpstr(udp->dict1->dict2->string, =3D=3D, "string2"); - g_assert(udp->dict1->has_dict3 =3D=3D false); + g_assert(!udp->dict1->dict3); } =20 static void test_visitor_in_list(TestInputVisitorData *data, diff --git a/tests/unit/test-qobject-output-visitor.c b/tests/unit/test-qob= ject-output-visitor.c index 66b27fad66..7f054289fe 100644 --- a/tests/unit/test-qobject-output-visitor.c +++ b/tests/unit/test-qobject-output-visitor.c @@ -182,7 +182,6 @@ static void test_visitor_out_struct_nested(TestOutputVi= sitorData *data, ud2->dict1->dict2->string =3D g_strdup(strings[2]); =20 ud2->dict1->dict3 =3D g_malloc0(sizeof(*ud2->dict1->dict3)); - ud2->dict1->has_dict3 =3D true; ud2->dict1->dict3->userdef =3D g_new0(UserDefOne, 1); ud2->dict1->dict3->userdef->string =3D g_strdup(string); ud2->dict1->dict3->userdef->integer =3D value; @@ -284,7 +283,6 @@ static void test_visitor_out_list_qapi_free(TestOutputV= isitorData *data, value->dict1->dict2->userdef->string =3D g_strdup(string); value->dict1->dict2->userdef->integer =3D 42; value->dict1->dict2->string =3D g_strdup(string); - value->dict1->has_dict3 =3D false; =20 QAPI_LIST_PREPEND(head, value); } diff --git a/tests/unit/test-visitor-serialization.c b/tests/unit/test-visi= tor-serialization.c index 667e8fed82..c2056c3eaa 100644 --- a/tests/unit/test-visitor-serialization.c +++ b/tests/unit/test-visitor-serialization.c @@ -223,7 +223,6 @@ static UserDefTwo *nested_struct_create(void) udnp->dict1->dict2->userdef->string =3D strdup("test_string"); udnp->dict1->dict2->string =3D strdup("test_string2"); udnp->dict1->dict3 =3D g_malloc0(sizeof(*udnp->dict1->dict3)); - udnp->dict1->has_dict3 =3D true; udnp->dict1->dict3->userdef =3D g_new0(UserDefOne, 1); udnp->dict1->dict3->userdef->integer =3D 43; udnp->dict1->dict3->userdef->string =3D strdup("test_string"); @@ -243,7 +242,7 @@ static void nested_struct_compare(UserDefTwo *udnp1, Us= erDefTwo *udnp2) udnp2->dict1->dict2->userdef->string); g_assert_cmpstr(udnp1->dict1->dict2->string, =3D=3D, udnp2->dict1->dict2->string); - g_assert(udnp1->dict1->has_dict3 =3D=3D udnp2->dict1->has_dict3); + g_assert(!udnp1->dict1->dict3 =3D=3D !udnp2->dict1->dict3); g_assert_cmpint(udnp1->dict1->dict3->userdef->integer, =3D=3D, udnp2->dict1->dict3->userdef->integer); g_assert_cmpstr(udnp1->dict1->dict3->userdef->string, =3D=3D, diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 58b00982ea..ae09c38103 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -767,7 +767,6 @@ def need_has(self): 'qapi/char.json', 'qapi/crypto.json', 'qapi/dump.json', - 'qapi/introspect.json', 'qapi/job.json', 'qapi/machine.json', 'qapi/machine-target.json', @@ -785,8 +784,7 @@ def need_has(self): 'qapi/transaction.json', 'qapi/ui.json', 'qapi/virtio.json', - 'qga/qapi-schema.json', - 'tests/qapi-schema/qapi-schema-test.json'] + 'qga/qapi-schema.json'] if self.info and any(self.info.fname.endswith(mod) for mod in opt_out): return self.optional --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005205; cv=none; d=zohomail.com; s=zohoarc; b=U88yXIGPhsjJoTW1l+oNpHUPjGpYjM120HiXX9GJoOHHv/3q/yGKPReg/mVAsV2tIx5du8fzGc+jJu9nCCAj0EPxcDB6OB22VLzFXvIrvwkjEO+iADadkDcyxV1QtKGGYW3xmhuVPGPMUKJE8NnUBexq3i7AKP9vYCHKH4RKq/w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005205; 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=ElgcK3E91wbS/roT6x9L3CIhVublUDQIdbTCO2BGDT8=; b=nYBOODzdvr8ApOh9Yueu7mFIo8qa1qAs6qq2q3N+3B0EctqSUGm+LJSA9bPo2sObR0YvDS9iqt4OeG31uoPA4C1jPw8e9ydyVAJ478fhqPB2677q5EjI+jTPRUPIcsye5uv92PG/0ka6tRn9Ga80nOKTI1PG2fIP/968a6oJtRw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005205405622.4806760518959; Wed, 14 Dec 2022 00:06:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUX-0003Zt-49; Wed, 14 Dec 2022 02:47:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003Qw-5Y for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:37 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUG-0003e4-DK for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-240-vTOOLx4dNie55XnsMhWfOw-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5B8C685CCE9; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0827214171BE; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5E69521E6493; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004051; h=from:from: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; bh=ElgcK3E91wbS/roT6x9L3CIhVublUDQIdbTCO2BGDT8=; b=ELFSqtheTkVTlyTGfDbRreheQefEEqe/9uGpagMEh84y/KeLwWXQpBKCaSDk1OlOZ9Ljym c3DYsGTAKkUxBwFiGrlTn6bx6f3fH4XnZRanIPP3n/ySk1iJwVlF3ivKXFzG/WxhA8kdT+ 6x2R2LpglbLyt1cSe6kwNFVtJJwDw7g= X-MC-Unique: vTOOLx4dNie55XnsMhWfOw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: "Michael S . Tsirkin" , Igor Mammedov , Ani Sinha , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 06/30] qapi acpi: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:46:57 +0100 Message-Id: <20221214074721.731441-9-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005206332100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/acpi.py. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Ani Sinha Signed-off-by: Markus Armbruster Reviewed-by: Igor Mammedov Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-7-armbru@redhat.com> --- hw/acpi/core.c | 14 +++++++------- hw/acpi/cpu.c | 1 - hw/acpi/memory_hotplug.c | 1 - scripts/qapi/schema.py | 1 - 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 3e811bf03c..6da275c599 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -185,7 +185,7 @@ static void acpi_table_install(const char unsigned *blo= b, size_t bloblen, changed_fields =3D 0; ext_hdr->_length =3D cpu_to_le16(acpi_payload_size); =20 - if (hdrs->has_sig) { + if (hdrs->sig) { strncpy(ext_hdr->sig, hdrs->sig, sizeof ext_hdr->sig); ++changed_fields; } @@ -204,11 +204,11 @@ static void acpi_table_install(const char unsigned *b= lob, size_t bloblen, =20 ext_hdr->checksum =3D 0; =20 - if (hdrs->has_oem_id) { + if (hdrs->oem_id) { strncpy(ext_hdr->oem_id, hdrs->oem_id, sizeof ext_hdr->oem_id); ++changed_fields; } - if (hdrs->has_oem_table_id) { + if (hdrs->oem_table_id) { strncpy(ext_hdr->oem_table_id, hdrs->oem_table_id, sizeof ext_hdr->oem_table_id); ++changed_fields; @@ -217,7 +217,7 @@ static void acpi_table_install(const char unsigned *blo= b, size_t bloblen, ext_hdr->oem_revision =3D cpu_to_le32(hdrs->oem_rev); ++changed_fields; } - if (hdrs->has_asl_compiler_id) { + if (hdrs->asl_compiler_id) { strncpy(ext_hdr->asl_compiler_id, hdrs->asl_compiler_id, sizeof ext_hdr->asl_compiler_id); ++changed_fields; @@ -255,12 +255,12 @@ void acpi_table_add(const QemuOpts *opts, Error **err= p) if (!hdrs) { goto out; } - if (hdrs->has_file =3D=3D hdrs->has_data) { + if (!hdrs->file =3D=3D !hdrs->data) { error_setg(errp, "'-acpitable' requires one of 'data' or 'file'"); goto out; } =20 - pathnames =3D g_strsplit(hdrs->has_file ? hdrs->file : hdrs->data, ":"= , 0); + pathnames =3D g_strsplit(hdrs->file ?: hdrs->data, ":", 0); if (pathnames =3D=3D NULL || pathnames[0] =3D=3D NULL) { error_setg(errp, "'-acpitable' requires at least one pathname"); goto out; @@ -297,7 +297,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp) close(fd); } =20 - acpi_table_install(blob, bloblen, hdrs->has_file, hdrs, errp); + acpi_table_install(blob, bloblen, !!hdrs->file, hdrs, errp); =20 out: g_free(blob); diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c index 3646dbfe68..4e580959a2 100644 --- a/hw/acpi/cpu.c +++ b/hw/acpi/cpu.c @@ -35,7 +35,6 @@ static ACPIOSTInfo *acpi_cpu_device_status(int idx, AcpiC= puStatus *cdev) DeviceState *dev =3D DEVICE(cdev->cpu); if (dev->id) { info->device =3D g_strdup(dev->id); - info->has_device =3D true; } } return info; diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c index 0a7e89a13e..a7476330a8 100644 --- a/hw/acpi/memory_hotplug.c +++ b/hw/acpi/memory_hotplug.c @@ -44,7 +44,6 @@ static ACPIOSTInfo *acpi_memory_device_status(int slot, M= emStatus *mdev) DeviceState *dev =3D DEVICE(mdev->dimm); if (dev->id) { info->device =3D g_strdup(dev->id); - info->has_device =3D true; } } return info; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index ae09c38103..ad7634de58 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/acpi.json', 'qapi/audio.json', 'qapi/block-core.json', 'qapi/block-export.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004598; cv=none; d=zohomail.com; s=zohoarc; b=cd18OvOlXm0ZPH6+ti5ZhowqA8WOQ36yeDfQnCCBstF34Vdc7g83t1cv+/KrRosRPI/zJ6dSFJmQTpa2q9h+GY8/clR+QFiBudDpek6supH+/ByuScGVtmWOJ9UDe4qJPalNd/E0f3nY2x8vbsdmaJhYdkV0yAOlmf0j7lHkacs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004598; 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=1/feZTs5+GMYRba9vkIZ13umGQ/sRXQWUIrd8lcce9w=; b=GiY3yIjGDikICjE53i55XzWNeQTwCfibApTPw+YhQ2a+ThIrUzZebqLTsbTd/BUauc8PwxIXO6U/Ct0aUlgG6O3tOYTKG/r+DGBn2f4I4Pqj+RHwKRIO/8ppL9fMq8/u/ELBbqHw206iOQ5OuC7QjM8jHNPP2v8dby4m0efZ+k4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004598434510.94834017214635; Tue, 13 Dec 2022 23:56:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUQ-0003Wr-Mp; Wed, 14 Dec 2022 02:47:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003Q2-5E for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:34 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003dQ-7F for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:33 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-626-uGBj5BqNNsmsrDjbBH7vUw-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 54027811E6E; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 09E72C15BAD; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 60B0621E6496; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004050; h=from:from: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; bh=1/feZTs5+GMYRba9vkIZ13umGQ/sRXQWUIrd8lcce9w=; b=gjwRJ6lSP9Yitl0XSNLGDkpv5RLcx5FqiBCpjH11r6ghuG8tpQnh0FuIJnC397D7ZU+R/0 Q9uLvUgmtUyeBymwDR7thI3is5ZwX78KiMvbqGo1Yp2LPVULO3nEwObdcM7l8ILRh8EWO6 p7x3Q92p81T2/SxeFcJXoavF7DrjF7M= X-MC-Unique: uGBj5BqNNsmsrDjbBH7vUw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 07/30] qapi audio: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:46:58 +0100 Message-Id: <20221214074721.731441-10-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004600904100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/audio.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Additionally, helper get_str() loses its @has_dst parameter. Cc: Gerd Hoffmann Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-8-armbru@redhat.com> --- audio/alsaaudio.c | 2 +- audio/audio.c | 6 ++---- audio/audio_legacy.c | 17 +++++++---------- audio/ossaudio.c | 8 +++----- audio/paaudio.c | 12 ++++++------ audio/sndioaudio.c | 2 +- audio/wavaudio.c | 2 +- scripts/qapi/schema.py | 1 - 8 files changed, 21 insertions(+), 29 deletions(-) diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c index 7a2a94cd42..714bfb6453 100644 --- a/audio/alsaaudio.c +++ b/audio/alsaaudio.c @@ -449,7 +449,7 @@ static int alsa_open(bool in, struct alsa_params_req *r= eq, snd_pcm_hw_params_t *hw_params; int err; unsigned int freq, nchannels; - const char *pcm_name =3D apdo->has_dev ? apdo->dev : "default"; + const char *pcm_name =3D apdo->dev ?: "default"; snd_pcm_uframes_t obt_buffer_size; const char *typ =3D in ? "ADC" : "DAC"; snd_pcm_format_t obtfmt; diff --git a/audio/audio.c b/audio/audio.c index 065602ce1b..d849a94a81 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -2035,15 +2035,13 @@ void audio_create_pdos(Audiodev *dev) switch (dev->driver) { #define CASE(DRIVER, driver, pdo_name) \ case AUDIODEV_DRIVER_##DRIVER: \ - if (!dev->u.driver.has_in) { \ + if (!dev->u.driver.in) { \ dev->u.driver.in =3D g_malloc0( \ sizeof(Audiodev##pdo_name##PerDirectionOptions)); \ - dev->u.driver.has_in =3D true; \ } \ - if (!dev->u.driver.has_out) { \ + if (!dev->u.driver.out) { \ dev->u.driver.out =3D g_malloc0( \ sizeof(Audiodev##pdo_name##PerDirectionOptions)); \ - dev->u.driver.has_out =3D true; \ } \ break =20 diff --git a/audio/audio_legacy.c b/audio/audio_legacy.c index 595949f52c..18a89ffffb 100644 --- a/audio/audio_legacy.c +++ b/audio/audio_legacy.c @@ -62,15 +62,12 @@ static void get_int(const char *env, uint32_t *dst, boo= l *has_dst) } } =20 -static void get_str(const char *env, char **dst, bool *has_dst) +static void get_str(const char *env, char **dst) { const char *val =3D getenv(env); if (val) { - if (*has_dst) { - g_free(*dst); - } + g_free(*dst); *dst =3D g_strdup(val); - *has_dst =3D true; } } =20 @@ -169,7 +166,7 @@ static void handle_alsa_per_direction( get_bool(buf, &apdo->try_poll, &apdo->has_try_poll); =20 strcpy(buf + len, "DEV"); - get_str(buf, &apdo->dev, &apdo->has_dev); + get_str(buf, &apdo->dev); =20 strcpy(buf + len, "SIZE_IN_USEC"); get_bool(buf, &size_in_usecs, &dummy); @@ -235,7 +232,7 @@ static void handle_oss_per_direction( const char *dev_env) { get_bool(try_poll_env, &opdo->try_poll, &opdo->has_try_poll); - get_str(dev_env, &opdo->dev, &opdo->has_dev); + get_str(dev_env, &opdo->dev); =20 get_bytes_to_usecs("QEMU_OSS_FRAGSIZE", &opdo->buffer_length, &opdo->has_buffer_length, @@ -261,7 +258,7 @@ static void handle_oss(Audiodev *dev) static void handle_pa_per_direction( AudiodevPaPerDirectionOptions *ppdo, const char *env) { - get_str(env, &ppdo->name, &ppdo->has_name); + get_str(env, &ppdo->name); } =20 static void handle_pa(Audiodev *dev) @@ -278,7 +275,7 @@ static void handle_pa(Audiodev *dev) &dev->u.pa.out->has_buffer_length, qapi_AudiodevPaPerDirectionOptions_base(dev->u.pa.out)); =20 - get_str("QEMU_PA_SERVER", &dev->u.pa.server, &dev->u.pa.has_server); + get_str("QEMU_PA_SERVER", &dev->u.pa.server); } =20 /* SDL */ @@ -299,7 +296,7 @@ static void handle_wav(Audiodev *dev) &dev->u.wav.out->has_format); get_int("QEMU_WAV_DAC_FIXED_CHANNELS", &dev->u.wav.out->channels, &dev->u.wav.out->has_channels); - get_str("QEMU_WAV_PATH", &dev->u.wav.path, &dev->u.wav.has_path); + get_str("QEMU_WAV_PATH", &dev->u.wav.path); } =20 /* general */ diff --git a/audio/ossaudio.c b/audio/ossaudio.c index 8e075edb70..e8d732b612 100644 --- a/audio/ossaudio.c +++ b/audio/ossaudio.c @@ -252,7 +252,7 @@ static int oss_open(int in, struct oss_params *req, aud= settings *as, audio_buf_info abinfo; int fmt, freq, nchannels; int setfragment =3D 1; - const char *dspname =3D opdo->has_dev ? opdo->dev : "/dev/dsp"; + const char *dspname =3D opdo->dev ?: "/dev/dsp"; const char *typ =3D in ? "ADC" : "DAC"; #ifdef USE_DSP_POLICY int policy =3D oopts->has_dsp_policy ? oopts->dsp_policy : 5; @@ -745,10 +745,8 @@ static void *oss_audio_init(Audiodev *dev) oss_init_per_direction(oopts->in); oss_init_per_direction(oopts->out); =20 - if (access(oopts->in->has_dev ? oopts->in->dev : "/dev/dsp", - R_OK | W_OK) < 0 || - access(oopts->out->has_dev ? oopts->out->dev : "/dev/dsp", - R_OK | W_OK) < 0) { + if (access(oopts->in->dev ?: "/dev/dsp", R_OK | W_OK) < 0 || + access(oopts->out->dev ?: "/dev/dsp", R_OK | W_OK) < 0) { return NULL; } return dev; diff --git a/audio/paaudio.c b/audio/paaudio.c index e91116f239..529b39daac 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -536,9 +536,9 @@ static int qpa_init_out(HWVoiceOut *hw, struct audsetti= ngs *as, =20 pa->stream =3D qpa_simple_new ( c, - ppdo->has_stream_name ? ppdo->stream_name : g->dev->id, + ppdo->stream_name ?: g->dev->id, PA_STREAM_PLAYBACK, - ppdo->has_name ? ppdo->name : NULL, + ppdo->name, &ss, &ba, /* buffering attributes */ &error @@ -585,9 +585,9 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsetting= s *as, void *drv_opaque) =20 pa->stream =3D qpa_simple_new ( c, - ppdo->has_stream_name ? ppdo->stream_name : g->dev->id, + ppdo->stream_name ?: g->dev->id, PA_STREAM_RECORD, - ppdo->has_name ? ppdo->name : NULL, + ppdo->name, &ss, &ba, /* buffering attributes */ &error @@ -827,7 +827,7 @@ static void *qpa_audio_init(Audiodev *dev) =20 assert(dev->driver =3D=3D AUDIODEV_DRIVER_PA); =20 - if (!popts->has_server) { + if (!popts->server) { char pidfile[64]; char *runtime; struct stat st; @@ -850,7 +850,7 @@ static void *qpa_audio_init(Audiodev *dev) } =20 g =3D g_new0(paaudio, 1); - server =3D popts->has_server ? popts->server : NULL; + server =3D popts->server; =20 g->dev =3D dev; =20 diff --git a/audio/sndioaudio.c b/audio/sndioaudio.c index 7c45276d36..632b0e3825 100644 --- a/audio/sndioaudio.c +++ b/audio/sndioaudio.c @@ -333,7 +333,7 @@ static int sndio_init(SndioVoice *self, unsigned int nch; int i, nfds; =20 - dev_name =3D opts->has_dev ? opts->dev : SIO_DEVANY; + dev_name =3D opts->dev ?: SIO_DEVANY; latency =3D opts->has_latency ? opts->latency : SNDIO_LATENCY_US; =20 /* open the device in non-blocking mode */ diff --git a/audio/wavaudio.c b/audio/wavaudio.c index 3e1d84db83..6445a2cb90 100644 --- a/audio/wavaudio.c +++ b/audio/wavaudio.c @@ -78,7 +78,7 @@ static int wav_init_out(HWVoiceOut *hw, struct audsetting= s *as, Audiodev *dev =3D drv_opaque; AudiodevWavOptions *wopts =3D &dev->u.wav; struct audsettings wav_as =3D audiodev_to_audsettings(dev->u.wav.out); - const char *wav_path =3D wopts->has_path ? wopts->path : "qemu.wav"; + const char *wav_path =3D wopts->path ?: "qemu.wav"; =20 stereo =3D wav_as.nchannels =3D=3D 2; switch (wav_as.fmt) { diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index ad7634de58..8db1c2caef 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/audio.json', 'qapi/block-core.json', 'qapi/block-export.json', 'qapi/block.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005760; cv=none; d=zohomail.com; s=zohoarc; b=YPHXCRGJpC1diQui+pTXR2+0uYpf2jg26px90eff1yyeknw2aFCedXDzMViJJUn+5XoTW+b1IdEXZS7kqGl8vaFbs2GFifW+tkd97zgR2XkXxv+xKrOyBrNh2ak84Pj/1FyTfTpWLRVN6casJM+rDCwgv1PDPq1c2pu4AJfbfac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005760; 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=eVHvMEwuxUvl9djAZ1mBOtP/TaLImV8ASuD/2djkqc0=; b=Y4gACHd1NpicsTH1AlyMpPU46XNEWnGlhyd/bZ/P5864wcZqQ8KHcFn6eVEcYijRYa/MNpJPdCF1KNrIjjhIh8EnsBzsFSkBXSu4QhM99uLwIC9aHoWZmFJUA3FMlzRHID1inchIlCpflSu8kDBRBm8HWHsfQI2q1KLcv/wVp6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167100576054163.75759977289226; Wed, 14 Dec 2022 00:16:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUW-0003Zs-Of; Wed, 14 Dec 2022 02:47:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUJ-0003QL-1p for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUG-0003e2-D1 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:34 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-626-ODZKYc5wMiK0k3kCO3F2nQ-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2A3A93C02529; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03F4A40C2064; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 631DE21E6498; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004051; h=from:from: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; bh=eVHvMEwuxUvl9djAZ1mBOtP/TaLImV8ASuD/2djkqc0=; b=RadnhPScwKV47MirH/uHqgkmBslauDA0WwtTu4jzbHhOHPi3V0g/4iPqhlbAWlY4pXd7dc gMWSIgyhF9nz9iuJXexCQMmUhdnv/1rcSR0h67vZjBw4zVdGb/tanOLcnFZqA9J+xtNiQq wd8y2rBWSxDrFBeY+A9O2C6U0UR2siQ= X-MC-Unique: ODZKYc5wMiK0k3kCO3F2nQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org, Eric Blake Subject: [PULL 08/30] blockdev: Clean up abuse of DriveBackup member format Date: Wed, 14 Dec 2022 08:46:59 +0100 Message-Id: <20221214074721.731441-11-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005761318100003 Content-Type: text/plain; charset="utf-8" drive-backup argument @format defaults to the format of the source unless @mode is "existing". drive_backup_prepare() implements this by copying the source's @format_name to DriveBackup member @format. It leaves @has_format false, violating the "has_format =3D=3D !!format" invariant. Unclean. Falls apart when we elide @has_format (commit after next): then QAPI passes @format, which is a string constant, to g_free(). iotest 056 duly explodes. Clean it up. Since the value stored in member @format is not actually used outside this function, use a local variable instead of modifying the QAPI object. Signed-off-by: Markus Armbruster Cc: Kevin Wolf Cc: Hanna Reitz Cc: qemu-block@nongnu.org Message-Id: <20221104160712.3005652-9-armbru@redhat.com> Reviewed-by: Eric Blake --- blockdev.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/blockdev.c b/blockdev.c index 3f1dec6242..d6550e0dc8 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1686,6 +1686,7 @@ static void drive_backup_prepare(BlkActionState *comm= on, Error **errp) BlockDriverState *source =3D NULL; AioContext *aio_context; AioContext *old_context; + const char *format; QDict *options; Error *local_err =3D NULL; int flags; @@ -1717,9 +1718,9 @@ static void drive_backup_prepare(BlkActionState *comm= on, Error **errp) /* Paired with .clean() */ bdrv_drained_begin(bs); =20 - if (!backup->has_format) { - backup->format =3D backup->mode =3D=3D NEW_IMAGE_MODE_EXISTING ? - NULL : (char *) bs->drv->format_name; + format =3D backup->format; + if (!format && backup->mode !=3D NEW_IMAGE_MODE_EXISTING) { + format =3D bs->drv->format_name; } =20 /* Early check to avoid creating target */ @@ -1758,19 +1759,19 @@ static void drive_backup_prepare(BlkActionState *co= mmon, Error **errp) } =20 if (backup->mode !=3D NEW_IMAGE_MODE_EXISTING) { - assert(backup->format); + assert(format); if (source) { /* Implicit filters should not appear in the filename */ BlockDriverState *explicit_backing =3D bdrv_skip_implicit_filters(source); =20 bdrv_refresh_filename(explicit_backing); - bdrv_img_create(backup->target, backup->format, + bdrv_img_create(backup->target, format, explicit_backing->filename, explicit_backing->drv->format_name, NULL, size, flags, false, &local_err); } else { - bdrv_img_create(backup->target, backup->format, NULL, NULL, NU= LL, + bdrv_img_create(backup->target, format, NULL, NULL, NULL, size, flags, false, &local_err); } } @@ -1783,8 +1784,8 @@ static void drive_backup_prepare(BlkActionState *comm= on, Error **errp) options =3D qdict_new(); qdict_put_str(options, "discard", "unmap"); qdict_put_str(options, "detect-zeroes", "unmap"); - if (backup->format) { - qdict_put_str(options, "driver", backup->format); + if (format) { + qdict_put_str(options, "driver", format); } =20 target_bs =3D bdrv_open(backup->target, NULL, options, flags, errp); --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005684; cv=none; d=zohomail.com; s=zohoarc; b=kacse45K8YGTPbIk9bT1dAHeG7hg08Le/akJE3ptvwK6+yP6fNdIaEnm+jvgjRdoy2sjcoViWZ9mN0aTR7D/eFjKDdQx0bEhfS2743LhGQwnQMX20cE2nt15Lm8UcLLKhaHcGUJlXS5dg9W1+zlm135HWipd6RWdmEFHARUZ2Wk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005684; 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=ZZRwhE1xKN0CA/F1JsARn3W6nBLiCdT0U9+UWX3WYC8=; b=mVnhR50ScN6cRP0rpRTWaMN8QElTZjGIEw+vwRGhiO/gbEwiJ4u0Y1CNF6Uzl8FgHG8/LQhkiY4Emf6tjfF/qR/KnmyvpXemzfsUtp9sfsnOYeTymDnmREz0CiZf+cUvjdmLVXdgaefSpixQ/4ZTTH51h/wxH60qobX63+7QCXI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005684629769.3078331030111; Wed, 14 Dec 2022 00:14:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MWF-0005Ay-OG; Wed, 14 Dec 2022 02:49:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MVu-0004sk-Rw for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:49:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MVq-0003t7-Cw for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:49:12 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-55-uDt7JTzCM7OKtHGVkYc6yQ-1; Wed, 14 Dec 2022 02:47:29 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A49323C0252D; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03B97492C14; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6569B21E649B; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004149; h=from:from: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; bh=ZZRwhE1xKN0CA/F1JsARn3W6nBLiCdT0U9+UWX3WYC8=; b=CKKl4cnLVjJ52RHRbAsjQkdTuhZbEegXOEBgeJulnU99VZ5RrrjUqTC1x1ppb8sGYKomhe fe/VPN5bnzLSNqo8wPEJZ724NMhHqZR/x9TwfBBIKxO4DGWE7WafNehRsP0eH4Ima1Il6c qJ6eUNSRPluNvhPHoy1YRJndJ1XPTRE= X-MC-Unique: uDt7JTzCM7OKtHGVkYc6yQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Eric Blake , Vladimir Sementsov-Ogievskiy , qemu-block@nongnu.org Subject: [PULL 09/30] nbd/server: Clean up abuse of BlockExportOptionsNbd member @arg Date: Wed, 14 Dec 2022 08:47:00 +0100 Message-Id: <20221214074721.731441-12-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005686769100003 Content-Type: text/plain; charset="utf-8" block-export-add argument @name defaults to the value of argument @node-name. nbd_export_create() implements this by copying @node_name to @name. It leaves @has_node_name false, violating the "has_node_name =3D=3D !!node_name" invariant. Unclean. Falls apart when we elide @has_node_name (next commit): then QAPI frees the same value twice, once for @node_name and once @name. iotest 307 duly explodes. Goes back to commit c62d24e906 "blockdev-nbd: Boxed argument type for nbd-server-add" (v5.0.0). Got moved from qmp_nbd_server_add() to nbd_export_create() (commit 56ee86261e), then copied back (commit b6076afcab). Commit 8675cbd68b "nbd: Utilize QAPI_CLONE for type conversion" (v5.2.0) cleaned up the copy in qmp_nbd_server_add() noting Second, our assignment to arg->name is fishy: the generated QAPI code for qapi_free_NbdServerAddOptions does not visit arg->name if arg->has_name is false, but if it DID visit it, we would have introduced a double-free situation when arg is finally freed. Exactly. However, the copy in nbd_export_create() remained dirty. Clean it up. Since the value stored in member @name is not actually used outside this function, use a local variable instead of modifying the QAPI object. Signed-off-by: Markus Armbruster Cc: Eric Blake Cc: Vladimir Sementsov-Ogievskiy Cc: qemu-block@nongnu.org Message-Id: <20221104160712.3005652-10-armbru@redhat.com> Reviewed-by: Eric Blake Reviewed-by: Vladimir Sementsov-Ogievskiy --- nbd/server.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index ada16089f3..0570596312 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1638,6 +1638,7 @@ static int nbd_export_create(BlockExport *blk_exp, Bl= ockExportOptions *exp_args, { NBDExport *exp =3D container_of(blk_exp, NBDExport, common); BlockExportOptionsNbd *arg =3D &exp_args->u.nbd; + const char *name =3D arg->name ?: exp_args->node_name; BlockBackend *blk =3D blk_exp->blk; int64_t size; uint64_t perm, shared_perm; @@ -1653,12 +1654,8 @@ static int nbd_export_create(BlockExport *blk_exp, B= lockExportOptions *exp_args, return -EINVAL; } =20 - if (!arg->has_name) { - arg->name =3D exp_args->node_name; - } - - if (strlen(arg->name) > NBD_MAX_STRING_SIZE) { - error_setg(errp, "export name '%s' too long", arg->name); + if (strlen(name) > NBD_MAX_STRING_SIZE) { + error_setg(errp, "export name '%s' too long", name); return -EINVAL; } =20 @@ -1667,8 +1664,8 @@ static int nbd_export_create(BlockExport *blk_exp, Bl= ockExportOptions *exp_args, return -EINVAL; } =20 - if (nbd_export_find(arg->name)) { - error_setg(errp, "NBD server already has export named '%s'", arg->= name); + if (nbd_export_find(name)) { + error_setg(errp, "NBD server already has export named '%s'", name); return -EEXIST; } =20 @@ -1688,7 +1685,7 @@ static int nbd_export_create(BlockExport *blk_exp, Bl= ockExportOptions *exp_args, } =20 QTAILQ_INIT(&exp->clients); - exp->name =3D g_strdup(arg->name); + exp->name =3D g_strdup(name); exp->description =3D g_strdup(arg->description); exp->nbdflags =3D (NBD_FLAG_HAS_FLAGS | NBD_FLAG_SEND_FLUSH | NBD_FLAG_SEND_FUA | NBD_FLAG_SEND_CACHE); --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005019; cv=none; d=zohomail.com; s=zohoarc; b=B6US1D9HaWTNYQuRqQKRvZmAbOh5n5gnbLFbRMX9jkS91uN10Bd6DsG7dpjwzkN1bvUnUILjx4j0igkqraUWCk9S/iqlhGs2c2JqzSjL/mQBslwGoYrnIuJQzQJWHxPfrYqX0ceppoqAKujlwb63ijB/mkTeTpPFVTbls1P0cVc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005019; 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=40BK9/VANY7QE7AGii5JrmEQwnjWPqPnE8ifHUJhU3M=; b=BKTodrIUFovkMdy7qTBuAw0rJ4nlr70E5YU4l+zzWMZffJumSk3QVgjkMxzso7vTrPnBONW8988wQfnUnVlybVREEpxqL9jfHj3OVE/MNm5g/hTUuAbhW7sETHQiO0lsbR2srn32zuQ2d3oUmxsYYAcPfMnx581/69rn3lTnzZY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005019818716.622199214627; Wed, 14 Dec 2022 00:03:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUW-0003Zr-K7; Wed, 14 Dec 2022 02:47:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUJ-0003QM-PX for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUF-0003dV-8K for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-240-Gi-_l_0QM6Saq9BLwmJ-YA-1; Wed, 14 Dec 2022 02:47:29 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ACA851C02D3F; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 03EAF40C945A; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6882B21E649C; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004050; h=from:from: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; bh=40BK9/VANY7QE7AGii5JrmEQwnjWPqPnE8ifHUJhU3M=; b=hXrLPt+u0E3lN9qznveT6qqCOgOBP4r0K8WuoQLk1kjbFkTJJi++Ry6LjYRE2nmECnZiO/ jKUoxdPBEuw2k/eoNU96pouTPlu3ug2FIeP1ZsjRUJgvddHjL3pesr67mTmUrAh3tgn+mN tBXsdqy+w5uNZNpH6RhCtk8kHn1R89Q= X-MC-Unique: Gi-_l_0QM6Saq9BLwmJ-YA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org Subject: [PULL 10/30] qapi block: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:01 +0100 Message-Id: <20221214074721.731441-13-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005021305100003 Content-Type: text/plain; charset="utf-8" The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/block*.json. Said commit explains the transformation in more detail. There is one instance of the invariant violation mentioned there: qcow2_signal_corruption() passes false, "" when node_name is an empty string. Take care to pass NULL then. The previous two commits cleaned up two more. Additionally, helper bdrv_latency_histogram_stats() loses its output parameters and returns a value instead. Cc: Kevin Wolf Cc: Hanna Reitz Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-11-armbru@redhat.com> --- block/block-backend.c | 2 +- block/copy-before-write.c | 2 +- block/dirty-bitmap.c | 1 - block/export/export.c | 2 +- block/export/vduse-blk.c | 3 +- block/gluster.c | 3 - block/monitor/block-hmp-cmds.c | 48 ++++------ block/qapi-sysemu.c | 73 +++++---------- block/qapi.c | 62 +++++-------- block/qcow.c | 10 +- block/qcow2.c | 18 ++-- block/qed.c | 2 +- block/quorum.c | 2 +- block/rbd.c | 15 +-- block/ssh.c | 2 +- blockdev-nbd.c | 9 +- blockdev.c | 164 +++++++++++++-------------------- blockjob.c | 2 - monitor/hmp-cmds.c | 3 +- qemu-img.c | 13 ++- qemu-nbd.c | 2 - scripts/qapi/schema.py | 3 - 22 files changed, 167 insertions(+), 274 deletions(-) diff --git a/block/block-backend.c b/block/block-backend.c index d98a96ff37..bf0ea3cfed 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -1860,7 +1860,7 @@ static void send_qmp_error_event(BlockBackend *blk, BlockDriverState *bs =3D blk_bs(blk); =20 optype =3D is_read ? IO_OPERATION_TYPE_READ : IO_OPERATION_TYPE_WRITE; - qapi_event_send_block_io_error(blk_name(blk), !!bs, + qapi_event_send_block_io_error(blk_name(blk), bs ? bdrv_get_node_name(bs) : NULL, opt= ype, action, blk_iostatus_is_enabled(blk), error =3D=3D ENOSPC, strerror(error)); diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 4abaa7339e..b28ae25ec1 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -432,7 +432,7 @@ static int cbw_open(BlockDriverState *bs, QDict *option= s, int flags, return -EINVAL; } =20 - if (opts->has_bitmap) { + if (opts->bitmap) { bitmap =3D block_dirty_bitmap_lookup(opts->bitmap->node, opts->bitmap->name, NULL, errp); if (!bitmap) { diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index bf3dc0512a..9c39550698 100644 --- a/block/dirty-bitmap.c +++ b/block/dirty-bitmap.c @@ -541,7 +541,6 @@ BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDrive= rState *bs) =20 info->count =3D bdrv_get_dirty_count(bm); info->granularity =3D bdrv_dirty_bitmap_granularity(bm); - info->has_name =3D !!bm->name; info->name =3D g_strdup(bm->name); info->recording =3D bdrv_dirty_bitmap_recording(bm); info->busy =3D bdrv_dirty_bitmap_busy(bm); diff --git a/block/export/export.c b/block/export/export.c index 7cc0c25c1c..28a91c9c42 100644 --- a/block/export/export.c +++ b/block/export/export.c @@ -114,7 +114,7 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Er= ror **errp) ctx =3D bdrv_get_aio_context(bs); aio_context_acquire(ctx); =20 - if (export->has_iothread) { + if (export->iothread) { IOThread *iothread; AioContext *new_ctx; Error **set_context_errp; diff --git a/block/export/vduse-blk.c b/block/export/vduse-blk.c index f101c24c3f..350d6fdaf0 100644 --- a/block/export/vduse-blk.c +++ b/block/export/vduse-blk.c @@ -265,8 +265,7 @@ static int vduse_blk_exp_create(BlockExport *exp, Block= ExportOptions *opts, } vblk_exp->num_queues =3D num_queues; vblk_exp->handler.blk =3D exp->blk; - vblk_exp->handler.serial =3D g_strdup(vblk_opts->has_serial ? - vblk_opts->serial : ""); + vblk_exp->handler.serial =3D g_strdup(vblk_opts->serial ?: ""); vblk_exp->handler.logical_block_size =3D logical_block_size; vblk_exp->handler.writable =3D opts->writable; =20 diff --git a/block/gluster.c b/block/gluster.c index 7c90f7ba4b..7efc296399 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -830,7 +830,6 @@ static int qemu_gluster_open(BlockDriverState *bs, QDi= ct *options, s->logfile =3D g_strdup(logfile ? logfile : GLUSTER_LOGFILE_DEFAULT); =20 gconf->logfile =3D g_strdup(s->logfile); - gconf->has_logfile =3D true; =20 s->glfs =3D qemu_gluster_init(gconf, filename, options, errp); if (!s->glfs) { @@ -917,7 +916,6 @@ static int qemu_gluster_reopen_prepare(BDRVReopenState = *state, gconf->debug =3D s->debug; gconf->has_debug =3D true; gconf->logfile =3D g_strdup(s->logfile); - gconf->has_logfile =3D true; =20 /* * If 'state->bs->exact_filename' is empty, 'state->options' should co= ntain @@ -1162,7 +1160,6 @@ static int coroutine_fn qemu_gluster_co_create_opts(B= lockDriver *drv, if (!gconf->logfile) { gconf->logfile =3D g_strdup(GLUSTER_LOGFILE_DEFAULT); } - gconf->has_logfile =3D true; =20 ret =3D qemu_gluster_parse(gconf, filename, NULL, errp); if (ret < 0) { diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index b6135e9bfe..0ff7c84039 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -241,7 +241,6 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict) DriveMirror mirror =3D { .device =3D (char *)qdict_get_str(qdict, "device"), .target =3D (char *)filename, - .has_format =3D !!format, .format =3D (char *)format, .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, .has_mode =3D true, @@ -270,7 +269,6 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict) DriveBackup backup =3D { .device =3D (char *)device, .target =3D (char *)filename, - .has_format =3D !!format, .format =3D (char *)format, .sync =3D full ? MIRROR_SYNC_MODE_FULL : MIRROR_SYNC_MODE_TOP, .has_mode =3D true, @@ -360,9 +358,7 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdi= ct) } =20 mode =3D reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUTE_PAT= HS; - qmp_blockdev_snapshot_sync(true, device, false, NULL, - filename, false, NULL, - !!format, format, + qmp_blockdev_snapshot_sync(device, NULL, filename, NULL, format, true, mode, &err); end: hmp_handle_error(mon, err); @@ -385,8 +381,7 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, = const QDict *qdict) const char *id =3D qdict_get_try_str(qdict, "id"); Error *err =3D NULL; =20 - qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id, - true, name, &err); + qmp_blockdev_snapshot_delete_internal_sync(device, id, name, &err); hmp_handle_error(mon, err); } =20 @@ -427,7 +422,7 @@ void hmp_nbd_server_start(Monitor *mon, const QDict *qd= ict) block_list =3D qmp_query_block(NULL); =20 for (info =3D block_list; info; info =3D info->next) { - if (!info->value->has_inserted) { + if (!info->value->inserted) { continue; } =20 @@ -460,7 +455,6 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdic= t) =20 NbdServerAddOptions export =3D { .device =3D (char *) device, - .has_name =3D !!name, .name =3D (char *) name, .has_writable =3D true, .writable =3D writable, @@ -495,7 +489,7 @@ void coroutine_fn hmp_block_resize(Monitor *mon, const = QDict *qdict) int64_t size =3D qdict_get_int(qdict, "size"); Error *err =3D NULL; =20 - qmp_block_resize(true, device, false, NULL, size, &err); + qmp_block_resize(device, NULL, size, &err); hmp_handle_error(mon, err); } =20 @@ -506,11 +500,10 @@ void hmp_block_stream(Monitor *mon, const QDict *qdic= t) const char *base =3D qdict_get_try_str(qdict, "base"); int64_t speed =3D qdict_get_try_int(qdict, "speed", 0); =20 - qmp_block_stream(true, device, device, base !=3D NULL, base, false, NU= LL, - false, NULL, false, NULL, - qdict_haskey(qdict, "speed"), speed, true, - BLOCKDEV_ON_ERROR_REPORT, false, NULL, false, false, = false, - false, &error); + qmp_block_stream(device, device, base, NULL, NULL, NULL, + qdict_haskey(qdict, "speed"), speed, + true, BLOCKDEV_ON_ERROR_REPORT, NULL, + false, false, false, false, &error); =20 hmp_handle_error(mon, error); } @@ -534,10 +527,8 @@ void hmp_block_set_io_throttle(Monitor *mon, const QDi= ct *qdict) * version has only one, so we must decide which one to pass. */ if (blk_by_name(device)) { - throttle.has_device =3D true; throttle.device =3D device; } else { - throttle.has_id =3D true; throttle.id =3D device; } =20 @@ -551,7 +542,7 @@ void hmp_eject(Monitor *mon, const QDict *qdict) const char *device =3D qdict_get_str(qdict, "device"); Error *err =3D NULL; =20 - qmp_eject(true, device, false, NULL, true, force, &err); + qmp_eject(device, NULL, true, force, &err); hmp_handle_error(mon, err); } =20 @@ -635,18 +626,18 @@ static void print_block_info(Monitor *mon, BlockInfo = *info, { ImageInfo *image_info; =20 - assert(!info || !info->has_inserted || info->inserted =3D=3D inserted); + assert(!info || !info->inserted || info->inserted =3D=3D inserted); =20 if (info && *info->device) { monitor_puts(mon, info->device); - if (inserted && inserted->has_node_name) { + if (inserted && inserted->node_name) { monitor_printf(mon, " (%s)", inserted->node_name); } } else { assert(info || inserted); monitor_puts(mon, - inserted && inserted->has_node_name ? inserted->node_= name - : info && info->has_qdev ? info->qdev + inserted && inserted->node_name ? inserted->node_name + : info && info->qdev ? info->qdev : ""); } =20 @@ -661,7 +652,7 @@ static void print_block_info(Monitor *mon, BlockInfo *i= nfo, } =20 if (info) { - if (info->has_qdev) { + if (info->qdev) { monitor_printf(mon, " Attached to: %s\n", info->qdev); } if (info->has_io_status && info->io_status !=3D BLOCK_DEVICE_IO_ST= ATUS_OK) { @@ -686,7 +677,7 @@ static void print_block_info(Monitor *mon, BlockInfo *i= nfo, inserted->cache->direct ? ", direct" : "", inserted->cache->no_flush ? ", ignore flushes" : ""); =20 - if (inserted->has_backing_file) { + if (inserted->backing_file) { monitor_printf(mon, " Backing file: %s " "(chain depth: %" PRId64 ")\n", @@ -735,7 +726,7 @@ static void print_block_info(Monitor *mon, BlockInfo *i= nfo, image_info =3D inserted->image; while (1) { bdrv_image_info_dump(image_info); - if (image_info->has_backing_image) { + if (image_info->backing_image) { image_info =3D image_info->backing_image; } else { break; @@ -769,8 +760,7 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) monitor_printf(mon, "\n"); } =20 - print_block_info(mon, info->value, info->value->has_inserted - ? info->value->inserted : NULL, + print_block_info(mon, info->value, info->value->inserted, verbose); printed =3D true; } @@ -784,7 +774,7 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) /* Print node information */ blockdev_list =3D qmp_query_named_block_nodes(false, false, NULL); for (blockdev =3D blockdev_list; blockdev; blockdev =3D blockdev->next= ) { - assert(blockdev->value->has_node_name); + assert(blockdev->value->node_name); if (device && strcmp(device, blockdev->value->node_name)) { continue; } @@ -805,7 +795,7 @@ void hmp_info_blockstats(Monitor *mon, const QDict *qdi= ct) stats_list =3D qmp_query_blockstats(false, false, NULL); =20 for (stats =3D stats_list; stats; stats =3D stats->next) { - if (!stats->value->has_device) { + if (!stats->value->device) { continue; } =20 diff --git a/block/qapi-sysemu.c b/block/qapi-sysemu.c index 680c7ee342..0c7a1423de 100644 --- a/block/qapi-sysemu.c +++ b/block/qapi-sysemu.c @@ -116,8 +116,8 @@ static int do_open_tray(const char *blk_name, const cha= r *qdev_id, return 0; } =20 -void qmp_blockdev_open_tray(bool has_device, const char *device, - bool has_id, const char *id, +void qmp_blockdev_open_tray(const char *device, + const char *id, bool has_force, bool force, Error **errp) { @@ -127,9 +127,7 @@ void qmp_blockdev_open_tray(bool has_device, const char= *device, if (!has_force) { force =3D false; } - rc =3D do_open_tray(has_device ? device : NULL, - has_id ? id : NULL, - force, &local_err); + rc =3D do_open_tray(device, id, force, &local_err); if (rc && rc !=3D -ENOSYS && rc !=3D -EINPROGRESS) { error_propagate(errp, local_err); return; @@ -137,16 +135,13 @@ void qmp_blockdev_open_tray(bool has_device, const ch= ar *device, error_free(local_err); } =20 -void qmp_blockdev_close_tray(bool has_device, const char *device, - bool has_id, const char *id, +void qmp_blockdev_close_tray(const char *device, + const char *id, Error **errp) { BlockBackend *blk; Error *local_err =3D NULL; =20 - device =3D has_device ? device : NULL; - id =3D has_id ? id : NULL; - blk =3D qmp_get_blk(device, id, errp); if (!blk) { return; @@ -173,17 +168,14 @@ void qmp_blockdev_close_tray(bool has_device, const c= har *device, } } =20 -static void blockdev_remove_medium(bool has_device, const char *device, - bool has_id, const char *id, Error **er= rp) +static void blockdev_remove_medium(const char *device, const char *id, + Error **errp) { BlockBackend *blk; BlockDriverState *bs; AioContext *aio_context; bool has_attached_device; =20 - device =3D has_device ? device : NULL; - id =3D has_id ? id : NULL; - blk =3D qmp_get_blk(device, id, errp); if (!blk) { return; @@ -232,7 +224,7 @@ out: =20 void qmp_blockdev_remove_medium(const char *id, Error **errp) { - blockdev_remove_medium(false, NULL, true, id, errp); + blockdev_remove_medium(NULL, id, errp); } =20 static void qmp_blockdev_insert_anon_medium(BlockBackend *blk, @@ -280,16 +272,13 @@ static void qmp_blockdev_insert_anon_medium(BlockBack= end *blk, } } =20 -static void blockdev_insert_medium(bool has_device, const char *device, - bool has_id, const char *id, +static void blockdev_insert_medium(const char *device, const char *id, const char *node_name, Error **errp) { BlockBackend *blk; BlockDriverState *bs; =20 - blk =3D qmp_get_blk(has_device ? device : NULL, - has_id ? id : NULL, - errp); + blk =3D qmp_get_blk(device, id, errp); if (!blk) { return; } @@ -311,13 +300,13 @@ static void blockdev_insert_medium(bool has_device, c= onst char *device, void qmp_blockdev_insert_medium(const char *id, const char *node_name, Error **errp) { - blockdev_insert_medium(false, NULL, true, id, node_name, errp); + blockdev_insert_medium(NULL, id, node_name, errp); } =20 -void qmp_blockdev_change_medium(bool has_device, const char *device, - bool has_id, const char *id, +void qmp_blockdev_change_medium(const char *device, + const char *id, const char *filename, - bool has_format, const char *format, + const char *format, bool has_force, bool force, bool has_read_only, BlockdevChangeReadOnlyMode read_only, @@ -331,9 +320,7 @@ void qmp_blockdev_change_medium(bool has_device, const = char *device, QDict *options =3D NULL; Error *err =3D NULL; =20 - blk =3D qmp_get_blk(has_device ? device : NULL, - has_id ? id : NULL, - errp); + blk =3D qmp_get_blk(device, id, errp); if (!blk) { goto fail; } @@ -370,7 +357,7 @@ void qmp_blockdev_change_medium(bool has_device, const = char *device, detect_zeroes =3D blk_get_detect_zeroes_from_root_state(blk); qdict_put_str(options, "detect-zeroes", detect_zeroes ? "on" : "off"); =20 - if (has_format) { + if (format) { qdict_put_str(options, "driver", format); } =20 @@ -379,9 +366,7 @@ void qmp_blockdev_change_medium(bool has_device, const = char *device, goto fail; } =20 - rc =3D do_open_tray(has_device ? device : NULL, - has_id ? id : NULL, - force, &err); + rc =3D do_open_tray(device, id, force, &err); if (rc && rc !=3D -ENOSYS) { error_propagate(errp, err); goto fail; @@ -389,7 +374,7 @@ void qmp_blockdev_change_medium(bool has_device, const = char *device, error_free(err); err =3D NULL; =20 - blockdev_remove_medium(has_device, device, has_id, id, &err); + blockdev_remove_medium(device, id, &err); if (err) { error_propagate(errp, err); goto fail; @@ -401,7 +386,7 @@ void qmp_blockdev_change_medium(bool has_device, const = char *device, goto fail; } =20 - qmp_blockdev_close_tray(has_device, device, has_id, id, errp); + qmp_blockdev_close_tray(device, id, errp); =20 fail: /* If the medium has been inserted, the device has its own reference, = so @@ -410,8 +395,7 @@ fail: bdrv_unref(medium_bs); } =20 -void qmp_eject(bool has_device, const char *device, - bool has_id, const char *id, +void qmp_eject(const char *device, const char *id, bool has_force, bool force, Error **errp) { Error *local_err =3D NULL; @@ -421,16 +405,14 @@ void qmp_eject(bool has_device, const char *device, force =3D false; } =20 - rc =3D do_open_tray(has_device ? device : NULL, - has_id ? id : NULL, - force, &local_err); + rc =3D do_open_tray(device, id, force, &local_err); if (rc && rc !=3D -ENOSYS) { error_propagate(errp, local_err); return; } error_free(local_err); =20 - blockdev_remove_medium(has_device, device, has_id, id, errp); + blockdev_remove_medium(device, id, errp); } =20 /* throttling disk I/O limits */ @@ -441,9 +423,7 @@ void qmp_block_set_io_throttle(BlockIOThrottle *arg, Er= ror **errp) BlockBackend *blk; AioContext *aio_context; =20 - blk =3D qmp_get_blk(arg->has_device ? arg->device : NULL, - arg->has_id ? arg->id : NULL, - errp); + blk =3D qmp_get_blk(arg->device, arg->id, errp); if (!blk) { return; } @@ -516,11 +496,8 @@ void qmp_block_set_io_throttle(BlockIOThrottle *arg, E= rror **errp) /* Enable I/O limits if they're not enabled yet, otherwise * just update the throttling group. */ if (!blk_get_public(blk)->throttle_group_member.throttle_state) { - blk_io_limits_enable(blk, - arg->has_group ? arg->group : - arg->has_device ? arg->device : - arg->id); - } else if (arg->has_group) { + blk_io_limits_enable(blk, arg->group ?: arg->device ?: arg->id= ); + } else if (arg->group) { blk_io_limits_update_group(blk, arg->group); } /* Set the new throttling configuration */ diff --git a/block/qapi.c b/block/qapi.c index cf557e3aea..fea808425b 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -71,13 +71,11 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *b= lk, }; =20 if (bs->node_name[0]) { - info->has_node_name =3D true; info->node_name =3D g_strdup(bs->node_name); } =20 backing =3D bdrv_cow_bs(bs); if (backing) { - info->has_backing_file =3D true; info->backing_file =3D g_strdup(backing->filename); } =20 @@ -139,7 +137,6 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *b= lk, info->has_iops_size =3D cfg.op_size; info->iops_size =3D cfg.op_size; =20 - info->has_group =3D true; info->group =3D g_strdup(throttle_group_get_name(&blkp->throttle_group_member)= ); } @@ -170,7 +167,6 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *b= lk, */ info->backing_file_depth++; bs0 =3D bdrv_filter_or_cow_bs(bs0); - (*p_image_info)->has_backing_image =3D true; p_image_info =3D &((*p_image_info)->backing_image); } else { break; @@ -301,26 +297,21 @@ void bdrv_query_image_info(BlockDriverState *bs, qapi_free_ImageInfo(info); goto out; } - info->has_format_specific =3D info->format_specific !=3D NULL; - backing_filename =3D bs->backing_file; if (backing_filename[0] !=3D '\0') { char *backing_filename2; =20 info->backing_filename =3D g_strdup(backing_filename); - info->has_backing_filename =3D true; backing_filename2 =3D bdrv_get_full_backing_filename(bs, NULL); =20 /* Always report the full_backing_filename if present, even if it'= s the * same as backing_filename. That they are same is useful info. */ if (backing_filename2) { info->full_backing_filename =3D g_strdup(backing_filename2); - info->has_full_backing_filename =3D true; } =20 if (bs->backing_format[0]) { info->backing_filename_format =3D g_strdup(bs->backing_format); - info->has_backing_filename_format =3D true; } g_free(backing_filename2); } @@ -367,7 +358,6 @@ static void bdrv_query_info(BlockBackend *blk, BlockInf= o **p_info, =20 qdev =3D blk_get_attached_dev_id(blk); if (qdev && *qdev) { - info->has_qdev =3D true; info->qdev =3D qdev; } else { g_free(qdev); @@ -384,7 +374,6 @@ static void bdrv_query_info(BlockBackend *blk, BlockInf= o **p_info, } =20 if (bs && bs->drv) { - info->has_inserted =3D true; info->inserted =3D bdrv_block_device_info(blk, bs, false, errp); if (info->inserted =3D=3D NULL) { goto err; @@ -411,23 +400,26 @@ static uint64List *uint64_list(uint64_t *list, int si= ze) return out_list; } =20 -static void bdrv_latency_histogram_stats(BlockLatencyHistogram *hist, - bool *not_null, - BlockLatencyHistogramInfo **info) +static BlockLatencyHistogramInfo * +bdrv_latency_histogram_stats(BlockLatencyHistogram *hist) { - *not_null =3D hist->bins !=3D NULL; - if (*not_null) { - *info =3D g_new0(BlockLatencyHistogramInfo, 1); + BlockLatencyHistogramInfo *info; =20 - (*info)->boundaries =3D uint64_list(hist->boundaries, hist->nbins = - 1); - (*info)->bins =3D uint64_list(hist->bins, hist->nbins); + if (!hist->bins) { + return NULL; } + + info =3D g_new0(BlockLatencyHistogramInfo, 1); + info->boundaries =3D uint64_list(hist->boundaries, hist->nbins - 1); + info->bins =3D uint64_list(hist->bins, hist->nbins); + return info; } =20 static void bdrv_query_blk_stats(BlockDeviceStats *ds, BlockBackend *blk) { BlockAcctStats *stats =3D blk_get_stats(blk); BlockAcctTimedStats *ts =3D NULL; + BlockLatencyHistogram *hgram; =20 ds->rd_bytes =3D stats->nr_bytes[BLOCK_ACCT_READ]; ds->wr_bytes =3D stats->nr_bytes[BLOCK_ACCT_WRITE]; @@ -493,15 +485,13 @@ static void bdrv_query_blk_stats(BlockDeviceStats *ds= , BlockBackend *blk) QAPI_LIST_PREPEND(ds->timed_stats, dev_stats); } =20 - bdrv_latency_histogram_stats(&stats->latency_histogram[BLOCK_ACCT_READ= ], - &ds->has_rd_latency_histogram, - &ds->rd_latency_histogram); - bdrv_latency_histogram_stats(&stats->latency_histogram[BLOCK_ACCT_WRIT= E], - &ds->has_wr_latency_histogram, - &ds->wr_latency_histogram); - bdrv_latency_histogram_stats(&stats->latency_histogram[BLOCK_ACCT_FLUS= H], - &ds->has_flush_latency_histogram, - &ds->flush_latency_histogram); + hgram =3D stats->latency_histogram; + ds->rd_latency_histogram + =3D bdrv_latency_histogram_stats(&hgram[BLOCK_ACCT_READ]); + ds->wr_latency_histogram + =3D bdrv_latency_histogram_stats(&hgram[BLOCK_ACCT_WRITE]); + ds->flush_latency_histogram + =3D bdrv_latency_histogram_stats(&hgram[BLOCK_ACCT_FLUSH]); } =20 static BlockStats *bdrv_query_bds_stats(BlockDriverState *bs, @@ -526,16 +516,12 @@ static BlockStats *bdrv_query_bds_stats(BlockDriverSt= ate *bs, } =20 if (bdrv_get_node_name(bs)[0]) { - s->has_node_name =3D true; s->node_name =3D g_strdup(bdrv_get_node_name(bs)); } =20 s->stats->wr_highest_offset =3D stat64_get(&bs->wr_highest_offset); =20 s->driver_specific =3D bdrv_get_specific_stats(bs); - if (s->driver_specific) { - s->has_driver_specific =3D true; - } =20 parent_child =3D bdrv_primary_child(bs); if (!parent_child || @@ -564,7 +550,6 @@ static BlockStats *bdrv_query_bds_stats(BlockDriverStat= e *bs, } } if (parent_child) { - s->has_parent =3D true; s->parent =3D bdrv_query_bds_stats(parent_child->bs, blk_level); } =20 @@ -575,7 +560,6 @@ static BlockStats *bdrv_query_bds_stats(BlockDriverStat= e *bs, * compatibility to when we put bs0->backing here, which might * be either) */ - s->has_backing =3D true; s->backing =3D bdrv_query_bds_stats(filter_or_cow_bs, blk_level); } =20 @@ -640,12 +624,10 @@ BlockStatsList *qmp_query_blockstats(bool has_query_n= odes, =20 aio_context_acquire(ctx); s =3D bdrv_query_bds_stats(blk_bs(blk), true); - s->has_device =3D true; s->device =3D g_strdup(blk_name(blk)); =20 qdev =3D blk_get_attached_dev_id(blk); if (qdev && *qdev) { - s->has_qdev =3D true; s->qdev =3D qdev; } else { g_free(qdev); @@ -822,16 +804,16 @@ void bdrv_image_info_dump(ImageInfo *info) qemu_printf("cleanly shut down: no\n"); } =20 - if (info->has_backing_filename) { + if (info->backing_filename) { qemu_printf("backing file: %s", info->backing_filename); - if (!info->has_full_backing_filename) { + if (!info->full_backing_filename) { qemu_printf(" (cannot determine actual path)"); } else if (strcmp(info->backing_filename, info->full_backing_filename) !=3D 0) { qemu_printf(" (actual path: %s)", info->full_backing_filename); } qemu_printf("\n"); - if (info->has_backing_filename_format) { + if (info->backing_filename_format) { qemu_printf("backing file format: %s\n", info->backing_filename_format); } @@ -865,7 +847,7 @@ void bdrv_image_info_dump(ImageInfo *info) } } =20 - if (info->has_format_specific) { + if (info->format_specific) { qemu_printf("Format specific information:\n"); bdrv_image_info_specific_dump(info->format_specific); } diff --git a/block/qcow.c b/block/qcow.c index daa38839ab..8bffc41531 100644 --- a/block/qcow.c +++ b/block/qcow.c @@ -825,7 +825,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOp= tions *opts, return -EINVAL; } =20 - if (qcow_opts->has_encrypt && + if (qcow_opts->encrypt && qcow_opts->encrypt->format !=3D Q_CRYPTO_BLOCK_FORMAT_QCOW) { error_setg(errp, "Unsupported encryption format"); @@ -853,7 +853,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOp= tions *opts, header.size =3D cpu_to_be64(total_size); header_size =3D sizeof(header); backing_filename_len =3D 0; - if (qcow_opts->has_backing_file) { + if (qcow_opts->backing_file) { if (strcmp(qcow_opts->backing_file, "fat:")) { header.backing_file_offset =3D cpu_to_be64(header_size); backing_filename_len =3D strlen(qcow_opts->backing_file); @@ -861,7 +861,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOp= tions *opts, header_size +=3D backing_filename_len; } else { /* special backing file for vvfat */ - qcow_opts->has_backing_file =3D false; + qcow_opts->backing_file =3D NULL; } header.cluster_bits =3D 9; /* 512 byte cluster to avoid copying unmodified sectors */ @@ -876,7 +876,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOp= tions *opts, =20 header.l1_table_offset =3D cpu_to_be64(header_size); =20 - if (qcow_opts->has_encrypt) { + if (qcow_opts->encrypt) { header.crypt_method =3D cpu_to_be32(QCOW_CRYPT_AES); =20 crypto =3D qcrypto_block_create(qcow_opts->encrypt, "encrypt.", @@ -895,7 +895,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOp= tions *opts, goto exit; } =20 - if (qcow_opts->has_backing_file) { + if (qcow_opts->backing_file) { ret =3D blk_co_pwrite(qcow_blk, sizeof(header), backing_filename_l= en, qcow_opts->backing_file, 0); if (ret < 0) { diff --git a/block/qcow2.c b/block/qcow2.c index 4d6666d3ff..941782a011 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3508,7 +3508,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) if (!qcow2_opts->has_preallocation) { qcow2_opts->preallocation =3D PREALLOC_MODE_OFF; } - if (qcow2_opts->has_backing_file && + if (qcow2_opts->backing_file && qcow2_opts->preallocation !=3D PREALLOC_MODE_OFF && !qcow2_opts->extended_l2) { @@ -3517,7 +3517,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) ret =3D -EINVAL; goto out; } - if (qcow2_opts->has_backing_fmt && !qcow2_opts->has_backing_file) { + if (qcow2_opts->has_backing_fmt && !qcow2_opts->backing_file) { error_setg(errp, "Backing format cannot be used without backing fi= le"); ret =3D -EINVAL; goto out; @@ -3558,7 +3558,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) ret =3D -EINVAL; goto out; } - if (qcow2_opts->data_file_raw && qcow2_opts->has_backing_file) { + if (qcow2_opts->data_file_raw && qcow2_opts->backing_file) { error_setg(errp, "Backing file and data-file-raw cannot be used at= " "the same time"); ret =3D -EINVAL; @@ -3584,7 +3584,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) * backing file when specifying data_file_raw is an error * anyway. */ - assert(!qcow2_opts->has_backing_file); + assert(!qcow2_opts->backing_file); } =20 if (qcow2_opts->data_file) { @@ -3752,7 +3752,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) } =20 /* Want a backing file? There you go. */ - if (qcow2_opts->has_backing_file) { + if (qcow2_opts->backing_file) { const char *backing_format =3D NULL; =20 if (qcow2_opts->has_backing_fmt) { @@ -3770,7 +3770,7 @@ qcow2_co_create(BlockdevCreateOptions *create_options= , Error **errp) } =20 /* Want encryption? There you go. */ - if (qcow2_opts->has_encrypt) { + if (qcow2_opts->encrypt) { ret =3D qcow2_set_up_encryption(blk_bs(blk), qcow2_opts->encrypt, = errp); if (ret < 0) { goto out; @@ -5195,7 +5195,6 @@ static ImageInfoSpecific *qcow2_get_specific_info(Blo= ckDriverState *bs, .refcount_bits =3D s->refcount_bits, .has_bitmaps =3D !!bitmaps, .bitmaps =3D bitmaps, - .has_data_file =3D !!s->image_data_file, .data_file =3D g_strdup(s->image_data_file), .has_data_file_raw =3D has_data_file(bs), .data_file_raw =3D data_file_is_raw(bs), @@ -5226,7 +5225,6 @@ static ImageInfoSpecific *qcow2_get_specific_info(Blo= ckDriverState *bs, memset(&encrypt_info->u, 0, sizeof(encrypt_info->u)); qapi_free_QCryptoBlockInfo(encrypt_info); =20 - spec_info->u.qcow2.data->has_encrypt =3D true; spec_info->u.qcow2.data->encrypt =3D qencrypt; } =20 @@ -5846,7 +5844,7 @@ static int coroutine_fn qcow2_co_amend(BlockDriverSta= te *bs, BDRVQcow2State *s =3D bs->opaque; int ret =3D 0; =20 - if (qopts->has_encrypt) { + if (qopts->encrypt) { if (!s->crypto) { error_setg(errp, "image is not encrypted, can't amend"); return -EOPNOTSUPP; @@ -5911,7 +5909,7 @@ void qcow2_signal_corruption(BlockDriverState *bs, bo= ol fatal, int64_t offset, =20 node_name =3D bdrv_get_node_name(bs); qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs), - *node_name !=3D '\0', node_name, + *node_name ? node_name : NULL, message, offset >=3D 0, offset, size >=3D 0, size, fatal); diff --git a/block/qed.c b/block/qed.c index 2f36ad342c..0ab159b468 100644 --- a/block/qed.c +++ b/block/qed.c @@ -698,7 +698,7 @@ static int coroutine_fn bdrv_qed_co_create(BlockdevCrea= teOptions *opts, goto out; } =20 - if (qed_opts->has_backing_file) { + if (qed_opts->backing_file) { header.features |=3D QED_F_BACKING_FILE; header.backing_filename_offset =3D sizeof(le_header); header.backing_filename_size =3D strlen(qed_opts->backing_file); diff --git a/block/quorum.c b/block/quorum.c index f9e6539ceb..7f21c03f1f 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -202,7 +202,7 @@ static void quorum_report_bad(QuorumOpType type, uint64= _t offset, msg =3D strerror(-ret); } =20 - qapi_event_send_quorum_report_bad(type, !!msg, msg, node_name, start_s= ector, + qapi_event_send_quorum_report_bad(type, msg, node_name, start_sector, end_sector - start_sector); } =20 diff --git a/block/rbd.c b/block/rbd.c index f826410f40..d809b8e0a3 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -536,7 +536,7 @@ static int qemu_rbd_do_create(BlockdevCreateOptions *op= tions, int ret; =20 assert(options->driver =3D=3D BLOCKDEV_DRIVER_RBD); - if (opts->location->has_snapshot) { + if (opts->location->snapshot) { error_setg(errp, "Can't use snapshot name for image creation"); return -EINVAL; } @@ -574,7 +574,7 @@ static int qemu_rbd_do_create(BlockdevCreateOptions *op= tions, } =20 #ifdef LIBRBD_SUPPORTS_ENCRYPTION - if (opts->has_encrypt) { + if (opts->encrypt) { rbd_image_t image; =20 ret =3D rbd_open(io_ctx, opts->location->image, &image, NULL); @@ -686,7 +686,6 @@ static int coroutine_fn qemu_rbd_co_create_opts(BlockDr= iver *drv, goto exit; } rbd_opts->encrypt =3D encrypt; - rbd_opts->has_encrypt =3D !!encrypt; =20 /* * Caution: while qdict_get_try_str() is fine, getting non-string @@ -697,11 +696,8 @@ static int coroutine_fn qemu_rbd_co_create_opts(BlockD= river *drv, loc =3D rbd_opts->location; loc->pool =3D g_strdup(qdict_get_try_str(options, "pool")); loc->conf =3D g_strdup(qdict_get_try_str(options, "conf")); - loc->has_conf =3D !!loc->conf; loc->user =3D g_strdup(qdict_get_try_str(options, "user")); - loc->has_user =3D !!loc->user; loc->q_namespace =3D g_strdup(qdict_get_try_str(options, "namespace")); - loc->has_q_namespace =3D !!loc->q_namespace; loc->image =3D g_strdup(qdict_get_try_str(options, "image")); keypairs =3D qdict_get_try_str(options, "=3Dkeyvalue-pairs"); =20 @@ -767,7 +763,6 @@ static int qemu_rbd_connect(rados_t *cluster, rados_ioc= tx_t *io_ctx, return -EINVAL; } opts->key_secret =3D g_strdup(secretid); - opts->has_key_secret =3D true; } =20 mon_host =3D qemu_rbd_mon_host(opts, &local_err); @@ -785,7 +780,7 @@ static int qemu_rbd_connect(rados_t *cluster, rados_ioc= tx_t *io_ctx, =20 /* try default location when conf=3DNULL, but ignore failure */ r =3D rados_conf_read_file(*cluster, opts->conf); - if (opts->has_conf && r < 0) { + if (opts->conf && r < 0) { error_setg_errno(errp, -r, "error reading conf file %s", opts->con= f); goto failed_shutdown; } @@ -833,7 +828,7 @@ static int qemu_rbd_connect(rados_t *cluster, rados_ioc= tx_t *io_ctx, } =20 #ifdef HAVE_RBD_NAMESPACE_EXISTS - if (opts->has_q_namespace && strlen(opts->q_namespace) > 0) { + if (opts->q_namespace && strlen(opts->q_namespace) > 0) { bool exists; =20 r =3D rbd_namespace_exists(*io_ctx, opts->q_namespace, &exists); @@ -991,7 +986,7 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *o= ptions, int flags, goto failed_open; } =20 - if (opts->has_encrypt) { + if (opts->encrypt) { #ifdef LIBRBD_SUPPORTS_ENCRYPTION r =3D qemu_rbd_encryption_load(s->image, opts->encrypt, errp); if (r < 0) { diff --git a/block/ssh.c b/block/ssh.c index 04726d4ecb..8508710f2f 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -643,7 +643,7 @@ static int connect_to_ssh(BDRVSSHState *s, BlockdevOpti= onsSsh *opts, unsigned int port =3D 0; int new_sock =3D -1; =20 - if (opts->has_user) { + if (opts->user) { s->user =3D g_strdup(opts->user); } else { s->user =3D g_strdup(g_get_user_name()); diff --git a/blockdev-nbd.c b/blockdev-nbd.c index 012256bb02..213012435f 100644 --- a/blockdev-nbd.c +++ b/blockdev-nbd.c @@ -173,8 +173,8 @@ void nbd_server_start_options(NbdServerOptions *arg, Er= ror **errp) } =20 void qmp_nbd_server_start(SocketAddressLegacy *addr, - bool has_tls_creds, const char *tls_creds, - bool has_tls_authz, const char *tls_authz, + const char *tls_creds, + const char *tls_authz, bool has_max_connections, uint32_t max_connectio= ns, Error **errp) { @@ -200,8 +200,7 @@ void qmp_nbd_server_add(NbdServerAddOptions *arg, Error= **errp) * block-export-add would default to the node-name, but we may have to= use * the device name as a default here for compatibility. */ - if (!arg->has_name) { - arg->has_name =3D true; + if (!arg->name) { arg->name =3D g_strdup(arg->device); } =20 @@ -215,7 +214,7 @@ void qmp_nbd_server_add(NbdServerAddOptions *arg, Error= **errp) }; QAPI_CLONE_MEMBERS(BlockExportOptionsNbdBase, &export_opts->u.nbd, qapi_NbdServerAddOptions_base(arg)); - if (arg->has_bitmap) { + if (arg->bitmap) { BlockDirtyBitmapOrStr *el =3D g_new(BlockDirtyBitmapOrStr, 1); =20 *el =3D (BlockDirtyBitmapOrStr) { diff --git a/blockdev.c b/blockdev.c index d6550e0dc8..59753400e9 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1051,23 +1051,17 @@ static void blockdev_do_action(TransactionAction *a= ction, Error **errp) qmp_transaction(&list, false, NULL, errp); } =20 -void qmp_blockdev_snapshot_sync(bool has_device, const char *device, - bool has_node_name, const char *node_name, +void qmp_blockdev_snapshot_sync(const char *device, const char *node_name, const char *snapshot_file, - bool has_snapshot_node_name, const char *snapshot_node_name, - bool has_format, const char *format, + const char *format, bool has_mode, NewImageMode mode, Error **= errp) { BlockdevSnapshotSync snapshot =3D { - .has_device =3D has_device, .device =3D (char *) device, - .has_node_name =3D has_node_name, .node_name =3D (char *) node_name, .snapshot_file =3D (char *) snapshot_file, - .has_snapshot_node_name =3D has_snapshot_node_name, .snapshot_node_name =3D (char *) snapshot_node_name, - .has_format =3D has_format, .format =3D (char *) format, .has_mode =3D has_mode, .mode =3D mode, @@ -1109,9 +1103,7 @@ void qmp_blockdev_snapshot_internal_sync(const char *= device, } =20 SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *devic= e, - bool has_id, const char *id, - bool has_name, const char *name, Error **errp) { @@ -1129,14 +1121,6 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_= sync(const char *device, aio_context =3D bdrv_get_aio_context(bs); aio_context_acquire(aio_context); =20 - if (!has_id) { - id =3D NULL; - } - - if (!has_name) { - name =3D NULL; - } - if (!id && !name) { error_setg(errp, "Name or id must be provided"); goto out_aio_context; @@ -1450,8 +1434,8 @@ static void external_snapshot_prepare(BlkActionState = *common, case TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC: { BlockdevSnapshotSync *s =3D action->u.blockdev_snapshot_sync.d= ata; - device =3D s->has_device ? s->device : NULL; - node_name =3D s->has_node_name ? s->node_name : NULL; + device =3D s->device; + node_name =3D s->node_name; new_image_file =3D s->snapshot_file; snapshot_ref =3D NULL; } @@ -1495,10 +1479,9 @@ static void external_snapshot_prepare(BlkActionState= *common, =20 if (action->type =3D=3D TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC= ) { BlockdevSnapshotSync *s =3D action->u.blockdev_snapshot_sync.data; - const char *format =3D s->has_format ? s->format : "qcow2"; + const char *format =3D s->format ?: "qcow2"; enum NewImageMode mode; - const char *snapshot_node_name =3D - s->has_snapshot_node_name ? s->snapshot_node_name : NULL; + const char *snapshot_node_name =3D s->snapshot_node_name; =20 if (node_name && !snapshot_node_name) { error_setg(errp, "New overlay node-name missing"); @@ -2412,8 +2395,7 @@ BlockDirtyBitmapSha256 *qmp_x_debug_block_dirty_bitma= p_sha256(const char *node, return ret; } =20 -void coroutine_fn qmp_block_resize(bool has_device, const char *device, - bool has_node_name, const char *node_na= me, +void coroutine_fn qmp_block_resize(const char *device, const char *node_na= me, int64_t size, Error **errp) { Error *local_err =3D NULL; @@ -2421,9 +2403,7 @@ void coroutine_fn qmp_block_resize(bool has_device, c= onst char *device, BlockDriverState *bs; AioContext *old_ctx; =20 - bs =3D bdrv_lookup_bs(has_device ? device : NULL, - has_node_name ? node_name : NULL, - &local_err); + bs =3D bdrv_lookup_bs(device, node_name, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -2458,14 +2438,14 @@ void coroutine_fn qmp_block_resize(bool has_device,= const char *device, bdrv_co_unlock(bs); } =20 -void qmp_block_stream(bool has_job_id, const char *job_id, const char *dev= ice, - bool has_base, const char *base, - bool has_base_node, const char *base_node, - bool has_backing_file, const char *backing_file, - bool has_bottom, const char *bottom, +void qmp_block_stream(const char *job_id, const char *device, + const char *base, + const char *base_node, + const char *backing_file, + const char *bottom, bool has_speed, int64_t speed, bool has_on_error, BlockdevOnError on_error, - bool has_filter_node_name, const char *filter_node_n= ame, + const char *filter_node_name, bool has_auto_finalize, bool auto_finalize, bool has_auto_dismiss, bool auto_dismiss, Error **errp) @@ -2477,19 +2457,19 @@ void qmp_block_stream(bool has_job_id, const char *= job_id, const char *device, Error *local_err =3D NULL; int job_flags =3D JOB_DEFAULT; =20 - if (has_base && has_base_node) { + if (base && base_node) { error_setg(errp, "'base' and 'base-node' cannot be specified " "at the same time"); return; } =20 - if (has_base && has_bottom) { + if (base && bottom) { error_setg(errp, "'base' and 'bottom' cannot be specified " "at the same time"); return; } =20 - if (has_bottom && has_base_node) { + if (bottom && base_node) { error_setg(errp, "'bottom' and 'base-node' cannot be specified " "at the same time"); return; @@ -2507,7 +2487,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, aio_context =3D bdrv_get_aio_context(bs); aio_context_acquire(aio_context); =20 - if (has_base) { + if (base) { base_bs =3D bdrv_find_backing_image(bs, base); if (base_bs =3D=3D NULL) { error_setg(errp, "Can't find '%s' in the backing chain", base); @@ -2516,7 +2496,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, assert(bdrv_get_aio_context(base_bs) =3D=3D aio_context); } =20 - if (has_base_node) { + if (base_node) { base_bs =3D bdrv_lookup_bs(NULL, base_node, errp); if (!base_bs) { goto out; @@ -2530,7 +2510,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, bdrv_refresh_filename(base_bs); } =20 - if (has_bottom) { + if (bottom) { bottom_bs =3D bdrv_lookup_bs(NULL, bottom, errp); if (!bottom_bs) { goto out; @@ -2555,7 +2535,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, /* * Check for op blockers in the whole chain between bs and base (or bo= ttom) */ - iter_end =3D has_bottom ? bdrv_filter_or_cow_bs(bottom_bs) : base_bs; + iter_end =3D bottom ? bdrv_filter_or_cow_bs(bottom_bs) : base_bs; for (iter =3D bs; iter && iter !=3D iter_end; iter =3D bdrv_filter_or_cow_bs(iter)) { @@ -2566,7 +2546,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, =20 /* if we are streaming the entire chain, the result will have no backi= ng * file, and specifying one is therefore an error */ - if (base_bs =3D=3D NULL && has_backing_file) { + if (!base_bs && backing_file) { error_setg(errp, "backing file specified, but streaming the " "entire chain"); goto out; @@ -2579,7 +2559,7 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, job_flags |=3D JOB_MANUAL_DISMISS; } =20 - stream_start(has_job_id ? job_id : NULL, bs, base_bs, backing_file, + stream_start(job_id, bs, base_bs, backing_file, bottom_bs, job_flags, has_speed ? speed : 0, on_error, filter_node_name, &local_err); if (local_err) { @@ -2593,15 +2573,15 @@ out: aio_context_release(aio_context); } =20 -void qmp_block_commit(bool has_job_id, const char *job_id, const char *dev= ice, - bool has_base_node, const char *base_node, - bool has_base, const char *base, - bool has_top_node, const char *top_node, - bool has_top, const char *top, - bool has_backing_file, const char *backing_file, +void qmp_block_commit(const char *job_id, const char *device, + const char *base_node, + const char *base, + const char *top_node, + const char *top, + const char *backing_file, bool has_speed, int64_t speed, bool has_on_error, BlockdevOnError on_error, - bool has_filter_node_name, const char *filter_node_n= ame, + const char *filter_node_name, bool has_auto_finalize, bool auto_finalize, bool has_auto_dismiss, bool auto_dismiss, Error **errp) @@ -2620,9 +2600,6 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, if (!has_on_error) { on_error =3D BLOCKDEV_ON_ERROR_REPORT; } - if (!has_filter_node_name) { - filter_node_name =3D NULL; - } if (has_auto_finalize && !auto_finalize) { job_flags |=3D JOB_MANUAL_FINALIZE; } @@ -2658,10 +2635,10 @@ void qmp_block_commit(bool has_job_id, const char *= job_id, const char *device, /* default top_bs is the active layer */ top_bs =3D bs; =20 - if (has_top_node && has_top) { + if (top_node && top) { error_setg(errp, "'top-node' and 'top' are mutually exclusive"); goto out; - } else if (has_top_node) { + } else if (top_node) { top_bs =3D bdrv_lookup_bs(NULL, top_node, errp); if (top_bs =3D=3D NULL) { goto out; @@ -2671,7 +2648,7 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, top_node); goto out; } - } else if (has_top && top) { + } else if (top) { /* This strcmp() is just a shortcut, there is no need to * refresh @bs's filename. If it mismatches, * bdrv_find_backing_image() will do the refresh and may still @@ -2688,10 +2665,10 @@ void qmp_block_commit(bool has_job_id, const char *= job_id, const char *device, =20 assert(bdrv_get_aio_context(top_bs) =3D=3D aio_context); =20 - if (has_base_node && has_base) { + if (base_node && base) { error_setg(errp, "'base-node' and 'base' are mutually exclusive"); goto out; - } else if (has_base_node) { + } else if (base_node) { base_bs =3D bdrv_lookup_bs(NULL, base_node, errp); if (base_bs =3D=3D NULL) { goto out; @@ -2701,7 +2678,7 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, base_node); goto out; } - } else if (has_base && base) { + } else if (base) { base_bs =3D bdrv_find_backing_image(top_bs, base); if (base_bs =3D=3D NULL) { error_setg(errp, "Can't find '%s' in the backing chain", base); @@ -2743,7 +2720,7 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, if (top_perm & BLK_PERM_WRITE || bdrv_skip_filters(top_bs) =3D=3D bdrv_skip_filters(bs)) { - if (has_backing_file) { + if (backing_file) { if (bdrv_skip_filters(top_bs) =3D=3D bdrv_skip_filters(bs)) { error_setg(errp, "'backing-file' specified," " but 'top' is the active layer"); @@ -2753,7 +2730,7 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, } goto out; } - if (!has_job_id) { + if (!job_id) { /* * Emulate here what block_job_create() does, because it * is possible that @bs !=3D @top_bs (the block job should @@ -2769,8 +2746,8 @@ void qmp_block_commit(bool has_job_id, const char *jo= b_id, const char *device, if (bdrv_op_is_blocked(overlay_bs, BLOCK_OP_TYPE_COMMIT_TARGET, er= rp)) { goto out; } - commit_start(has_job_id ? job_id : NULL, bs, base_bs, top_bs, job_= flags, - speed, on_error, has_backing_file ? backing_file : NU= LL, + commit_start(job_id, bs, base_bs, top_bs, job_flags, + speed, on_error, backing_file, filter_node_name, &local_err); } if (local_err !=3D NULL) { @@ -2803,9 +2780,6 @@ static BlockJob *do_backup_common(BackupCommon *backu= p, if (!backup->has_on_target_error) { backup->on_target_error =3D BLOCKDEV_ON_ERROR_REPORT; } - if (!backup->has_job_id) { - backup->job_id =3D NULL; - } if (!backup->has_auto_finalize) { backup->auto_finalize =3D true; } @@ -2831,7 +2805,7 @@ static BlockJob *do_backup_common(BackupCommon *backu= p, if ((backup->sync =3D=3D MIRROR_SYNC_MODE_BITMAP) || (backup->sync =3D=3D MIRROR_SYNC_MODE_INCREMENTAL)) { /* done before desugaring 'incremental' to print the right message= */ - if (!backup->has_bitmap) { + if (!backup->bitmap) { error_setg(errp, "must provide a valid bitmap name for " "'%s' sync mode", MirrorSyncMode_str(backup->sync)); return NULL; @@ -2852,7 +2826,7 @@ static BlockJob *do_backup_common(BackupCommon *backu= p, backup->bitmap_mode =3D BITMAP_SYNC_MODE_ON_SUCCESS; } =20 - if (backup->has_bitmap) { + if (backup->bitmap) { bmap =3D bdrv_find_dirty_bitmap(bs, backup->bitmap); if (!bmap) { error_setg(errp, "Bitmap '%s' could not be found", backup->bit= map); @@ -2885,7 +2859,7 @@ static BlockJob *do_backup_common(BackupCommon *backu= p, } } =20 - if (!backup->has_bitmap && backup->has_bitmap_mode) { + if (!backup->bitmap && backup->has_bitmap_mode) { error_setg(errp, "Cannot specify bitmap sync mode without a bitmap= "); return NULL; } @@ -2945,7 +2919,7 @@ void qmp_blockdev_backup(BlockdevBackup *backup, Erro= r **errp) **/ static void blockdev_mirror_common(const char *job_id, BlockDriverState *b= s, BlockDriverState *target, - bool has_replaces, const char *replaces, + const char *replaces, enum MirrorSyncMode sync, BlockMirrorBackingMode backing_mode, bool zero_target, @@ -2957,7 +2931,6 @@ static void blockdev_mirror_common(const char *job_id= , BlockDriverState *bs, bool has_on_target_error, BlockdevOnError on_target_error, bool has_unmap, bool unmap, - bool has_filter_node_name, const char *filter_node_name, bool has_copy_mode, MirrorCopyMode copy= _mode, bool has_auto_finalize, bool auto_final= ize, @@ -2985,9 +2958,6 @@ static void blockdev_mirror_common(const char *job_id= , BlockDriverState *bs, if (!has_unmap) { unmap =3D true; } - if (!has_filter_node_name) { - filter_node_name =3D NULL; - } if (!has_copy_mode) { copy_mode =3D MIRROR_COPY_MODE_BACKGROUND; } @@ -3020,16 +2990,15 @@ static void blockdev_mirror_common(const char *job_= id, BlockDriverState *bs, sync =3D MIRROR_SYNC_MODE_FULL; } =20 - if (!has_replaces) { + if (!replaces) { /* We want to mirror from @bs, but keep implicit filters on top */ unfiltered_bs =3D bdrv_skip_implicit_filters(bs); if (unfiltered_bs !=3D bs) { replaces =3D unfiltered_bs->node_name; - has_replaces =3D true; } } =20 - if (has_replaces) { + if (replaces) { BlockDriverState *to_replace_bs; AioContext *replace_aio_context; int64_t bs_size, replace_size; @@ -3066,7 +3035,7 @@ static void blockdev_mirror_common(const char *job_id= , BlockDriverState *bs, * and will allow to check whether the node still exist at mirror comp= letion */ mirror_start(job_id, bs, target, - has_replaces ? replaces : NULL, job_flags, + replaces, job_flags, speed, granularity, buf_size, sync, backing_mode, zero_ta= rget, on_source_error, on_target_error, unmap, filter_node_name, copy_mode, errp); @@ -3104,7 +3073,7 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) arg->mode =3D NEW_IMAGE_MODE_ABSOLUTE_PATHS; } =20 - if (!arg->has_format) { + if (!arg->format) { format =3D (arg->mode =3D=3D NEW_IMAGE_MODE_EXISTING ? NULL : bs->drv->format_name); } @@ -3124,8 +3093,8 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) goto out; } =20 - if (arg->has_replaces) { - if (!arg->has_node_name) { + if (arg->replaces) { + if (!arg->node_name) { error_setg(errp, "a node-name must be provided when replacing = a" " named node of the graph"); goto out; @@ -3175,7 +3144,7 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) } =20 options =3D qdict_new(); - if (arg->has_node_name) { + if (arg->node_name) { qdict_put_str(options, "node-name", arg->node_name); } if (format) { @@ -3210,8 +3179,8 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) aio_context_release(old_context); aio_context_acquire(aio_context); =20 - blockdev_mirror_common(arg->has_job_id ? arg->job_id : NULL, bs, targe= t_bs, - arg->has_replaces, arg->replaces, arg->sync, + blockdev_mirror_common(arg->job_id, bs, target_bs, + arg->replaces, arg->sync, backing_mode, zero_target, arg->has_speed, arg->speed, arg->has_granularity, arg->granularity, @@ -3219,7 +3188,7 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) arg->has_on_source_error, arg->on_source_error, arg->has_on_target_error, arg->on_target_error, arg->has_unmap, arg->unmap, - false, NULL, + NULL, arg->has_copy_mode, arg->copy_mode, arg->has_auto_finalize, arg->auto_finalize, arg->has_auto_dismiss, arg->auto_dismiss, @@ -3229,9 +3198,9 @@ out: aio_context_release(aio_context); } =20 -void qmp_blockdev_mirror(bool has_job_id, const char *job_id, +void qmp_blockdev_mirror(const char *job_id, const char *device, const char *target, - bool has_replaces, const char *replaces, + const char *replaces, MirrorSyncMode sync, bool has_speed, int64_t speed, bool has_granularity, uint32_t granularity, @@ -3240,7 +3209,6 @@ void qmp_blockdev_mirror(bool has_job_id, const char = *job_id, BlockdevOnError on_source_error, bool has_on_target_error, BlockdevOnError on_target_error, - bool has_filter_node_name, const char *filter_node_name, bool has_copy_mode, MirrorCopyMode copy_mode, bool has_auto_finalize, bool auto_finalize, @@ -3281,15 +3249,14 @@ void qmp_blockdev_mirror(bool has_job_id, const cha= r *job_id, goto out; } =20 - blockdev_mirror_common(has_job_id ? job_id : NULL, bs, target_bs, - has_replaces, replaces, sync, backing_mode, + blockdev_mirror_common(job_id, bs, target_bs, + replaces, sync, backing_mode, zero_target, has_speed, speed, has_granularity, granularity, has_buf_size, buf_size, has_on_source_error, on_source_error, has_on_target_error, on_target_error, - true, true, - has_filter_node_name, filter_node_name, + true, true, filter_node_name, has_copy_mode, copy_mode, has_auto_finalize, auto_finalize, has_auto_dismiss, auto_dismiss, @@ -3561,7 +3528,7 @@ void qmp_blockdev_reopen(BlockdevOptionsList *reopen_= list, Error **errp) QDict *qdict; =20 /* Check for the selected node name */ - if (!options->has_node_name) { + if (!options->node_name) { error_setg(errp, "node-name not specified"); goto fail; } @@ -3666,8 +3633,7 @@ static BdrvChild *bdrv_find_child(BlockDriverState *p= arent_bs, return NULL; } =20 -void qmp_x_blockdev_change(const char *parent, bool has_child, - const char *child, bool has_node, +void qmp_x_blockdev_change(const char *parent, const char *child, const char *node, Error **errp) { BlockDriverState *parent_bs, *new_bs =3D NULL; @@ -3678,8 +3644,8 @@ void qmp_x_blockdev_change(const char *parent, bool h= as_child, return; } =20 - if (has_child =3D=3D has_node) { - if (has_child) { + if (!child =3D=3D !node) { + if (child) { error_setg(errp, "The parameters child and node are in conflic= t"); } else { error_setg(errp, "Either child or node must be specified"); @@ -3687,7 +3653,7 @@ void qmp_x_blockdev_change(const char *parent, bool h= as_child, return; } =20 - if (has_child) { + if (child) { p_child =3D bdrv_find_child(parent_bs, child); if (!p_child) { error_setg(errp, "Node '%s' does not have child '%s'", @@ -3697,7 +3663,7 @@ void qmp_x_blockdev_change(const char *parent, bool h= as_child, bdrv_del_child(parent_bs, p_child, errp); } =20 - if (has_node) { + if (node) { new_bs =3D bdrv_find_node(node); if (!new_bs) { error_setg(errp, "Node '%s' not found", node); diff --git a/blockjob.c b/blockjob.c index f51d4e18f3..3c8f3543a2 100644 --- a/blockjob.c +++ b/blockjob.c @@ -354,7 +354,6 @@ BlockJobInfo *block_job_query_locked(BlockJob *job, Err= or **errp) info->auto_finalize =3D job->job.auto_finalize; info->auto_dismiss =3D job->job.auto_dismiss; if (job->job.ret) { - info->has_error =3D true; info->error =3D job->job.err ? g_strdup(error_get_pretty(job->job.err)) : g_strdup(strerror(-job->job.ret)); @@ -414,7 +413,6 @@ static void block_job_event_completed_locked(Notifier *= n, void *opaque) progress_total, progress_current, job->speed, - !!msg, msg); } =20 diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 01b789a79e..878e3ca1f3 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1496,8 +1496,7 @@ void hmp_change(Monitor *mon, const QDict *qdict) } } =20 - qmp_blockdev_change_medium(true, device, false, NULL, target, - !!arg, arg, true, force, + qmp_blockdev_change_medium(device, NULL, target, arg, true, force, !!read_only, read_only_mode, &err); } diff --git a/qemu-img.c b/qemu-img.c index a9b3a8103c..439d8de1e3 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -2915,15 +2915,15 @@ static ImageInfoList *collect_image_info_list(bool = image_opts, image_opts =3D false; =20 if (chain) { - if (info->has_full_backing_filename) { + if (info->full_backing_filename) { filename =3D info->full_backing_filename; - } else if (info->has_backing_filename) { + } else if (info->backing_filename) { error_report("Could not determine absolute backing filenam= e," " but backing filename '%s' present", info->backing_filename); goto err; } - if (info->has_backing_filename_format) { + if (info->backing_filename_format) { fmt =3D info->backing_filename_format; } } @@ -3046,7 +3046,7 @@ static int dump_map_entry(OutputFormat output_format,= MapEntry *e, printf("%#-16"PRIx64"%#-16"PRIx64"%#-16"PRIx64"%s\n", e->start, e->length, e->has_offset ? e->offset : 0, - e->has_filename ? e->filename : ""); + e->filename ?: ""); } /* This format ignores the distinction between 0, ZERO and ZERO|DA= TA. * Modify the flags here to allow more coalescing. @@ -3127,7 +3127,6 @@ static int get_block_status(BlockDriverState *bs, int= 64_t offset, .has_offset =3D has_offset, .depth =3D depth, .present =3D !!(ret & BDRV_BLOCK_ALLOCATED), - .has_filename =3D filename, .filename =3D filename, }; =20 @@ -3143,11 +3142,11 @@ static inline bool entry_mergeable(const MapEntry *= curr, const MapEntry *next) curr->data !=3D next->data || curr->depth !=3D next->depth || curr->present !=3D next->present || - curr->has_filename !=3D next->has_filename || + !curr->filename !=3D !next->filename || curr->has_offset !=3D next->has_offset) { return false; } - if (curr->has_filename && strcmp(curr->filename, next->filename)) { + if (curr->filename && strcmp(curr->filename, next->filename)) { return false; } if (curr->has_offset && curr->offset + curr->length !=3D next->offset)= { diff --git a/qemu-nbd.c b/qemu-nbd.c index 0cd5aa6f02..6ff45308a9 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -1107,9 +1107,7 @@ int main(int argc, char **argv) .has_writable =3D true, .writable =3D !readonly, .u.nbd =3D { - .has_name =3D true, .name =3D g_strdup(export_name), - .has_description =3D !!export_description, .description =3D g_strdup(export_description), .has_bitmaps =3D !!bitmaps, .bitmaps =3D bitmaps, diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 8db1c2caef..a205aae1e3 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,9 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/block-core.json', - 'qapi/block-export.json', - 'qapi/block.json', 'qapi/char.json', 'qapi/crypto.json', 'qapi/dump.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005686; cv=none; d=zohomail.com; s=zohoarc; b=Jt8BHfFCnqTlHs6/h4OYrXDt/Ivh7mb9n5hJo7p3jlRT8bNS/uEgAmOPzvSHhfp+6pXOLuiQk/D9LkFL7R9I0MaY4MStPIfbHz+wbG3iQhdCavbUd6+9tkHdb5hjbEMQse+NxDBAXJeKH+X9VCqoPFeZQg6vgrbAyIrT3WMWEmI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005686; 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=IWLNTjgXu8jR0MRakAY25tFDEETQkSqbquBCbwr8QKw=; b=lHcac6Os0u4QcR8N/13CY3xJjF9bhkwN2CQ25CfedYvHNyriJODoOAR3eEY+q5ZPE9j9pX4Ca3aLnv0ZntvtNI9MkOyKHOivzW8XPwju9KOWYQ5aUhOMu0PCjfy35nxFLwkXNx2sA404p11mFE/nqAe+e4vPmQMRtWuDuO+Lib0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005686491131.58725351025714; Wed, 14 Dec 2022 00:14:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TQ-PW; Wed, 14 Dec 2022 02:47:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003R6-AK for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:37 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUG-0003e7-PG for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:35 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-341-8i-pERD8OKSouwkyBDVtJg-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 55A258588E9; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 09F6640C2004; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6B11921E649E; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004051; h=from:from: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; bh=IWLNTjgXu8jR0MRakAY25tFDEETQkSqbquBCbwr8QKw=; b=JA1uHGTNP1MZ0l7qVNIKprLorBf0xRginzosVMwLxeShxmwRXYjGHQvthszgDdC3Pg+4MJ gEPfqArZNxX6EAzT4yUvnJaNjgh+2zyU+kwKgAjSkTqjThiJ/c5IfD5e8hK2lX65GV9NkC 8LFMQeys8YgIeNaecJRpGzBPBqDnTDg= X-MC-Unique: 8i-pERD8OKSouwkyBDVtJg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 11/30] qapi chardev: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:02 +0100 Message-Id: <20221214074721.731441-14-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005686784100004 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/char.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Marc-Andr=C3=A9 Lureau Cc: Paolo Bonzini Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-12-armbru@redhat.com> --- chardev/char-file.c | 4 ++-- chardev/char-socket.c | 10 ++++------ chardev/char-udp.c | 1 - chardev/char.c | 6 +----- tests/unit/test-char.c | 1 - scripts/qapi/schema.py | 1 - 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/chardev/char-file.c b/chardev/char-file.c index 2fd80707e5..3a7b9caf6f 100644 --- a/chardev/char-file.c +++ b/chardev/char-file.c @@ -45,7 +45,7 @@ static void qmp_chardev_open_file(Chardev *chr, DWORD accessmode; DWORD flags; =20 - if (file->has_in) { + if (file->in) { error_setg(errp, "input file not supported"); return; } @@ -83,7 +83,7 @@ static void qmp_chardev_open_file(Chardev *chr, return; } =20 - if (file->has_in) { + if (file->in) { flags =3D O_RDONLY; in =3D qmp_chardev_open_file_source(file->in, flags, errp); if (in < 0) { diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 879564aa8a..29ffe5075e 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1251,7 +1251,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket= *sock, "'fd' address type"); return false; } - if (sock->has_tls_creds && + if (sock->tls_creds && !(sock->has_server && sock->server)) { error_setg(errp, "'tls_creds' option is incompatible with " @@ -1261,7 +1261,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket= *sock, break; =20 case SOCKET_ADDRESS_TYPE_UNIX: - if (sock->has_tls_creds) { + if (sock->tls_creds) { error_setg(errp, "'tls_creds' option is incompatible with " "'unix' address type"); @@ -1273,7 +1273,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket= *sock, break; =20 case SOCKET_ADDRESS_TYPE_VSOCK: - if (sock->has_tls_creds) { + if (sock->tls_creds) { error_setg(errp, "'tls_creds' option is incompatible with " "'vsock' address type"); @@ -1284,7 +1284,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket= *sock, break; } =20 - if (sock->has_tls_authz && !sock->has_tls_creds) { + if (sock->tls_authz && !sock->tls_creds) { error_setg(errp, "'tls_authz' option requires 'tls_creds' option"); return false; } @@ -1465,9 +1465,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts, Cha= rdevBackend *backend, sock->wait =3D qemu_opt_get_bool(opts, "wait", true); sock->has_reconnect =3D qemu_opt_find(opts, "reconnect"); sock->reconnect =3D qemu_opt_get_number(opts, "reconnect", 0); - sock->has_tls_creds =3D qemu_opt_get(opts, "tls-creds"); sock->tls_creds =3D g_strdup(qemu_opt_get(opts, "tls-creds")); - sock->has_tls_authz =3D qemu_opt_get(opts, "tls-authz"); sock->tls_authz =3D g_strdup(qemu_opt_get(opts, "tls-authz")); =20 addr =3D g_new0(SocketAddressLegacy, 1); diff --git a/chardev/char-udp.c b/chardev/char-udp.c index 6756e69924..3d9a2d5e77 100644 --- a/chardev/char-udp.c +++ b/chardev/char-udp.c @@ -178,7 +178,6 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevB= ackend *backend, udp->remote =3D addr; =20 if (has_local) { - udp->has_local =3D true; addr =3D g_new0(SocketAddressLegacy, 1); addr->type =3D SOCKET_ADDRESS_TYPE_INET; addr->u.inet.data =3D g_new(InetSocketAddress, 1); diff --git a/chardev/char.c b/chardev/char.c index b005df3ccf..4c5de16402 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -240,7 +240,7 @@ static void qemu_char_open(Chardev *chr, ChardevBackend= *backend, /* Any ChardevCommon member would work */ ChardevCommon *common =3D backend ? backend->u.null.data : NULL; =20 - if (common && common->has_logfile) { + if (common && common->logfile) { int flags =3D O_WRONLY; if (common->has_logappend && common->logappend) { @@ -496,9 +496,7 @@ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommo= n *backend) { const char *logfile =3D qemu_opt_get(opts, "logfile"); =20 - backend->has_logfile =3D logfile !=3D NULL; backend->logfile =3D g_strdup(logfile); - backend->has_logappend =3D true; backend->logappend =3D qemu_opt_get_bool(opts, "logappend", false); } @@ -1057,7 +1055,6 @@ ChardevReturn *qmp_chardev_add(const char *id, Charde= vBackend *backend, ret =3D g_new0(ChardevReturn, 1); if (CHARDEV_IS_PTY(chr)) { ret->pty =3D g_strdup(chr->filename + 4); - ret->has_pty =3D true; } =20 return ret; @@ -1160,7 +1157,6 @@ ChardevReturn *qmp_chardev_change(const char *id, Cha= rdevBackend *backend, ret =3D g_new0(ChardevReturn, 1); if (CHARDEV_IS_PTY(chr_new)) { ret->pty =3D g_strdup(chr_new->filename + 4); - ret->has_pty =3D true; } =20 return ret; diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c index 5b3b48ebac..649fdf64e1 100644 --- a/tests/unit/test-char.c +++ b/tests/unit/test-char.c @@ -1212,7 +1212,6 @@ static void char_file_fifo_test(void) char *fifo =3D g_build_filename(tmp_path, "fifo", NULL); char *out =3D g_build_filename(tmp_path, "out", NULL); ChardevFile file =3D { .in =3D fifo, - .has_in =3D true, .out =3D out }; ChardevBackend backend =3D { .type =3D CHARDEV_BACKEND_KIND_FILE, .u.file.data =3D &file }; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index a205aae1e3..707c671133 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/char.json', 'qapi/crypto.json', 'qapi/dump.json', 'qapi/job.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004098; cv=none; d=zohomail.com; s=zohoarc; b=XThTzd5BzcFBiuSHHDJTWJ7G2UbuQSOb36kJsLcHdJ+IIFAtf/7psikhGubWt87KUYbUH/jYhNZiXsp+M/HZoeH7gg8g749eqENaN6S2Nk7nhahEq8VWVNDGRh+BCazh3VQGu3QaR9D75+GInBtA8ATMBaCZX+N5SPIkeN3i5PE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004098; 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=TGrUtI2n7KbWMdaP+revxXuTTkogDgEI9a2fi4V1fgY=; b=XplkdqAmY3eSA3yB8FNMkC1Mpzofke0IGVhhgf2bgUxSv5DmeCykVk8P8tacD2225OASvVRFrbirON9IRLL9Sf6yiY14ZpI+LnO3nKtGXpy3oX8UB5Vs5sqexagKn/N31dlgcBCaKF1AV5S374SMp6NXaOWGXhQvEpumiKksRLA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004098167166.32317696092014; Tue, 13 Dec 2022 23:48:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUQ-0003Wh-BT; Wed, 14 Dec 2022 02:47:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003R7-IU for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:37 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUG-0003eG-TH for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:36 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-669-hNVyBAhqP9mj8I8gBDpxfw-1; Wed, 14 Dec 2022 02:47:28 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 871AF802D2A; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 43167C15BAE; Wed, 14 Dec 2022 07:47:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6D56121E649F; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004052; h=from:from: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; bh=TGrUtI2n7KbWMdaP+revxXuTTkogDgEI9a2fi4V1fgY=; b=ZTTbxgf02giawUdpdvN1a92AC6nYSibTf3Mcb/0zm+XfIreM9u8ngs5LNE0FWKMl4/bvxC t9943oeOS+vEsluaOgW35pbDepUQztL7VBV6zr/d80azWOKK7RpHmRJ2IANHxM80h451hb jJ/CH1k5gUpPeAVYMwtmeionJw4tq2E= X-MC-Unique: hNVyBAhqP9mj8I8gBDpxfw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 12/30] qapi crypto: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:03 +0100 Message-Id: <20221214074721.731441-15-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004100418100009 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/crypto.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Daniel P. Berrang=C3=A9" Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-13-armbru@redhat.com> --- crypto/block-luks.c | 16 ++++++++-------- tests/unit/test-crypto-block.c | 6 ------ scripts/qapi/schema.py | 1 - 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/crypto/block-luks.c b/crypto/block-luks.c index df2b4105d6..ff9e3945d1 100644 --- a/crypto/block-luks.c +++ b/crypto/block-luks.c @@ -1597,13 +1597,13 @@ qcrypto_block_luks_amend_add_keyslot(QCryptoBlock *= block, g_autofree char *new_password =3D NULL; g_autofree uint8_t *master_key =3D NULL; =20 - char *secret =3D opts_luks->has_secret ? opts_luks->secret : luks->sec= ret; + char *secret =3D opts_luks->secret ?: luks->secret; =20 - if (!opts_luks->has_new_secret) { + if (!opts_luks->new_secret) { error_setg(errp, "'new-secret' is required to activate a keyslot"); return -1; } - if (opts_luks->has_old_secret) { + if (opts_luks->old_secret) { error_setg(errp, "'old-secret' must not be given when activating keyslot= s"); return -1; @@ -1677,7 +1677,7 @@ qcrypto_block_luks_amend_erase_keyslots(QCryptoBlock = *block, g_autofree uint8_t *tmpkey =3D NULL; g_autofree char *old_password =3D NULL; =20 - if (opts_luks->has_new_secret) { + if (opts_luks->new_secret) { error_setg(errp, "'new-secret' must not be given when erasing keyslots"); return -1; @@ -1687,14 +1687,14 @@ qcrypto_block_luks_amend_erase_keyslots(QCryptoBloc= k *block, "'iter-time' must not be given when erasing keyslots"); return -1; } - if (opts_luks->has_secret) { + if (opts_luks->secret) { error_setg(errp, "'secret' must not be given when erasing keyslots"); return -1; } =20 /* Load the old password if given */ - if (opts_luks->has_old_secret) { + if (opts_luks->old_secret) { old_password =3D qcrypto_secret_lookup_as_utf8(opts_luks->old_secr= et, errp); if (!old_password) { @@ -1719,7 +1719,7 @@ qcrypto_block_luks_amend_erase_keyslots(QCryptoBlock = *block, return -1; } =20 - if (opts_luks->has_old_secret) { + if (opts_luks->old_secret) { int rv =3D qcrypto_block_luks_load_key(block, keyslot, old_password, @@ -1761,7 +1761,7 @@ qcrypto_block_luks_amend_erase_keyslots(QCryptoBlock = *block, } =20 /* Erase all keyslots that match the given old password */ - } else if (opts_luks->has_old_secret) { + } else if (opts_luks->old_secret) { =20 unsigned long slots_to_erase_bitmap =3D 0; size_t i; diff --git a/tests/unit/test-crypto-block.c b/tests/unit/test-crypto-block.c index b629e240a9..347cd5f3d7 100644 --- a/tests/unit/test-crypto-block.c +++ b/tests/unit/test-crypto-block.c @@ -41,7 +41,6 @@ static QCryptoBlockCreateOptions qcow_create_opts =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_QCOW, .u.qcow =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", }, }; @@ -49,7 +48,6 @@ static QCryptoBlockCreateOptions qcow_create_opts =3D { static QCryptoBlockOpenOptions qcow_open_opts =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_QCOW, .u.qcow =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", }, }; @@ -59,7 +57,6 @@ static QCryptoBlockOpenOptions qcow_open_opts =3D { static QCryptoBlockOpenOptions luks_open_opts =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_LUKS, .u.luks =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", }, }; @@ -69,7 +66,6 @@ static QCryptoBlockOpenOptions luks_open_opts =3D { static QCryptoBlockCreateOptions luks_create_opts_default =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_LUKS, .u.luks =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", }, }; @@ -79,7 +75,6 @@ static QCryptoBlockCreateOptions luks_create_opts_default= =3D { static QCryptoBlockCreateOptions luks_create_opts_aes256_cbc_plain64 =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_LUKS, .u.luks =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", .has_cipher_alg =3D true, .cipher_alg =3D QCRYPTO_CIPHER_ALG_AES_256, @@ -94,7 +89,6 @@ static QCryptoBlockCreateOptions luks_create_opts_aes256_= cbc_plain64 =3D { static QCryptoBlockCreateOptions luks_create_opts_aes256_cbc_essiv =3D { .format =3D Q_CRYPTO_BLOCK_FORMAT_LUKS, .u.luks =3D { - .has_key_secret =3D true, .key_secret =3D (char *)"sec0", .has_cipher_alg =3D true, .cipher_alg =3D QCRYPTO_CIPHER_ALG_AES_256, diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 707c671133..21d0b28790 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/crypto.json', 'qapi/dump.json', 'qapi/job.json', 'qapi/machine.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005676; cv=none; d=zohomail.com; s=zohoarc; b=Iz6sZpKidLYfvXq6hl8yolRKpLKizCfnkPdbdS8MODP88w05JJX/irvXklKzbLl6Ov/Y8VbyLGEGpjj43WDxYbge6Kc2Ow3g++M3pAO3gKJMMKaGFZLcDkqCdyO2DddRNtf9l4b5Oa6FcFMKg6H3zGXDnjTcGhqpz20dnHc4Q1g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005676; 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=gkzoqZ7NVhTuprHsbkXesUnjv0kWvibewBuhmBHyoA0=; b=VtTqGage/KMtCxpGI3qrSQzcGjndg4iWpE/rWLXVV9l5vHsODPM03TPAdGE66czTgPi1Z4SCD0q05ZprCJoglorOcw68GLWfUbyHrhw+botAoQ48FomUDbl1WebmatMNjQd4Q2GAboHgFlT7zIfkhMEFaIorVbSfAGMVA6SI5Xg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005676229120.13146350479599; Wed, 14 Dec 2022 00:14:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUU-0003ZG-4S; Wed, 14 Dec 2022 02:47:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TP-Kf for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003em-SF for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-620-YdSL-o3hOnKCmsiOyyqUtg-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A4DC229AA2CA; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7640C2026D68; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6F71021E64A2; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=gkzoqZ7NVhTuprHsbkXesUnjv0kWvibewBuhmBHyoA0=; b=ZxaIpFthWPP4DNPXkO45DDDxKRp94lQW3b/HDzWsuV59FVMiRf82vqVc36aLv7JO9fhHtN pOZFzAu0o7buHIYrTeMT2LUb8bNYdNYbz7Bk/zqsvEAEFxnSTtseinMrUv9d87C0SFAyFz /R2JO0jtscTw1cxmtiWpnWp+yOaEkc4= X-MC-Unique: YdSL-o3hOnKCmsiOyyqUtg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 13/30] qapi dump: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:04 +0100 Message-Id: <20221214074721.731441-16-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005676757100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/dump.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Marc-Andr=C3=A9 Lureau Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-14-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- dump/dump.c | 4 ++-- scripts/qapi/schema.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/dump/dump.c b/dump/dump.c index df117c847f..1278dc35f9 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -2044,8 +2044,8 @@ static void dump_process(DumpState *s, Error **errp) result =3D qmp_query_dump(NULL); /* should never fail */ assert(result); - qapi_event_send_dump_completed(result, !!*errp, (*errp ? - error_get_pretty(*err= p) : NULL)); + qapi_event_send_dump_completed(result, + *errp ? error_get_pretty(*errp) : NULL); qapi_free_DumpQueryResult(result); =20 dump_cleanup(s); diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 21d0b28790..07e2a0f263 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/dump.json', 'qapi/job.json', 'qapi/machine.json', 'qapi/machine-target.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006082; cv=none; d=zohomail.com; s=zohoarc; b=Y9/nCuvRMWuBNHrG4zCbP8hn2WB69/btjY+D2rVeawaq3ULiCBc1fKfmpjAIov/Uae7htbIe+InThWcd8/phBtCFPmYUWh+Rx4KWIy2O5AGzxbZVj/zIYj/6gYJWz6pin6lTzEz8nPm4KtEXJEVu8Hm6Mll9WlsHOLMPJNwJPDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006082; 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=OOkkXcJ2PzGUdSITFGlfKL+iHrhtw7EjC4rEsj/Tlik=; b=gPDm0amcHVTFc0t/+C+KYDA7dxdCrs34tr7nRQdaxV5lcXclvguGH0KHubLbWlHHFofU//MOdLL8KyJAvZnEN7TtTTPuUaOxePY40/X6jEGS9rwFITg2pYlWGUTZeo/EumsxJcBGu6v9P6nO+ZmvPdoW3tPyc5Pmkfo9w8vzFXI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006082818979.0841030241685; Wed, 14 Dec 2022 00:21:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUo-0003cx-Pv; Wed, 14 Dec 2022 02:48:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003Tv-Do for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003gF-4l for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-527-ugloYu5MNtmEgmEboaMJMw-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9DF1E3C0252C; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7658B2026D76; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 71C2021E64A4; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=OOkkXcJ2PzGUdSITFGlfKL+iHrhtw7EjC4rEsj/Tlik=; b=gfxMRvkOJK/8JaUaWu6U/YteehO3iAoblbnkvYfglNagV3hgzS24ofvlFs/7V6by3/WAE2 b7UF9THZ/Pdlud14MH0XVXXFB4BuUi9HzQuv342lm5iE3DPwlIAh9VqUQmFUIIhjxjbwmD EJCylWN1MG0LjtkxpVRcfo6iHnChpYE= X-MC-Unique: ugloYu5MNtmEgmEboaMJMw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: John Snow , Vladimir Sementsov-Ogievskiy , qemu-block@nongnu.org Subject: [PULL 14/30] qapi job: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:05 +0100 Message-Id: <20221214074721.731441-17-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006084546100003 Content-Type: text/plain; charset="utf-8" The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/job.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: John Snow Cc: Vladimir Sementsov-Ogievskiy Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster Reviewed-by: Vladimir Sementsov-Ogievskiy Message-Id: <20221104160712.3005652-15-armbru@redhat.com> --- job-qmp.c | 3 +-- scripts/qapi/schema.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/job-qmp.c b/job-qmp.c index d498fc89c0..9e26fa899f 100644 --- a/job-qmp.c +++ b/job-qmp.c @@ -156,8 +156,7 @@ static JobInfo *job_query_single_locked(Job *job, Error= **errp) .status =3D job->status, .current_progress =3D progress_current, .total_progress =3D progress_total, - .has_error =3D !!job->err, - .error =3D job->err ? \ + .error =3D job->err ? g_strdup(error_get_pretty(job->err)) : NULL, }; =20 diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 07e2a0f263..ff73fdb0b3 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/job.json', 'qapi/machine.json', 'qapi/machine-target.json', 'qapi/migration.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006893; cv=none; d=zohomail.com; s=zohoarc; b=jM7wMzM956wh1gPKW0sahcrw6A18ffSxwMoBUpHbaWbAtbJgp2LcwHsCc1T3+9yyqM6oeLZF6XrQPIHz6ZuvK9tJPztVp8tlAsKtMO4cZBXNUN7HvPbbxwhs+02ns8fHt+JYld+WttMqOz5MCCVBVfPYjMgp2slLe20SdK1GR8E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006893; 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=ISvEREfX79HaPE+apjAaDwd03P8J7YN5/7Tf0vMWRjQ=; b=Xs+8QN7d9V/46jZf3sqhzg/SvefLRixc6kJo0MA+MguzOWQEQT782kdAGyTvfZlLFUNOQT8Qn/PF8cep0wRRG2XKzFB3Z9csKIM8rvADz6Zufy+cxedtPqjm7fuRGrlfyVvE1ky7NHR/huM8DpyHXdqlSQp5U/soBoiuwXeFGKE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006893329514.4943009806417; Wed, 14 Dec 2022 00:34:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUV-0003Zo-Ry; Wed, 14 Dec 2022 02:47:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUR-0003Xs-Fa for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:43 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003h7-LE for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:43 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-155-BNXaZTNVNtqBlsE3aHJoeQ-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0D7FC8030D1; Wed, 14 Dec 2022 07:47:32 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7A3C414171C3; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 7448421E64A5; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004056; h=from:from: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; bh=ISvEREfX79HaPE+apjAaDwd03P8J7YN5/7Tf0vMWRjQ=; b=eWAnq2kdFabXD3GN3xjT99XZTr1mVEPWh6cz5i/sFHel5FRpEk2ze0pk29n2CaXyD7+uGQ rODgRexg/ua1CTUn2/fknmANLtTCFhWQSHRMmO7wfrNF3IFplfxWdrLMN91E5y4nTiL4R+ TnV1xBRMrlRZY9NcCU/mV8SHAUBE+pE= X-MC-Unique: BNXaZTNVNtqBlsE3aHJoeQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Eduardo Habkost , Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Yanan Wang Subject: [PULL 15/30] qapi machine: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:06 +0100 Message-Id: <20221214074721.731441-18-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006894598100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/machine*.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: Philippe Mathieu-Daud=C3=A9 Cc: Yanan Wang Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-16-armbru@redhat.com> --- hw/core/machine-hmp-cmds.c | 2 +- hw/core/machine-qmp-cmds.c | 9 ++------- hw/core/machine.c | 10 ++++------ hw/core/numa.c | 8 ++++---- hw/mem/pc-dimm.c | 1 - hw/nvram/fw_cfg.c | 2 +- hw/virtio/virtio-mem-pci.c | 4 +--- hw/virtio/virtio-pmem-pci.c | 1 - target/arm/monitor.c | 1 - target/i386/cpu-sysemu.c | 7 ++----- target/i386/cpu.c | 1 - target/s390x/cpu_models_sysemu.c | 1 - scripts/qapi/schema.py | 2 -- 13 files changed, 15 insertions(+), 34 deletions(-) diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c index 5cb5eecbfc..a1a51e9778 100644 --- a/hw/core/machine-hmp-cmds.c +++ b/hw/core/machine-hmp-cmds.c @@ -62,7 +62,7 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdi= ct) monitor_printf(mon, " type: \"%s\"\n", l->value->type); monitor_printf(mon, " vcpus_count: \"%" PRIu64 "\"\n", l->value->vcpus_count); - if (l->value->has_qom_path) { + if (l->value->qom_path) { monitor_printf(mon, " qom_path: \"%s\"\n", l->value->qom_path= ); } =20 diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c index 4f4ab30f8c..80d5e59651 100644 --- a/hw/core/machine-qmp-cmds.c +++ b/hw/core/machine-qmp-cmds.c @@ -55,8 +55,7 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp) value->qom_path =3D object_get_canonical_path(OBJECT(cpu)); value->thread_id =3D cpu->thread_id; =20 - value->has_props =3D !!mc->cpu_index_to_instance_props; - if (value->has_props) { + if (mc->cpu_index_to_instance_props) { CpuInstanceProperties *props; props =3D g_malloc0(sizeof(*props)); *props =3D mc->cpu_index_to_instance_props(ms, cpu->cpu_index); @@ -90,7 +89,6 @@ MachineInfoList *qmp_query_machines(Error **errp) } =20 if (mc->alias) { - info->has_alias =3D true; info->alias =3D g_strdup(mc->alias); } =20 @@ -101,11 +99,9 @@ MachineInfoList *qmp_query_machines(Error **errp) info->deprecated =3D !!mc->deprecation_reason; if (mc->default_cpu_type) { info->default_cpu_type =3D g_strdup(mc->default_cpu_type); - info->has_default_cpu_type =3D true; } if (mc->default_ram_id) { info->default_ram_id =3D g_strdup(mc->default_ram_id); - info->has_default_ram_id =3D true; } =20 QAPI_LIST_PREPEND(mach_list, info); @@ -168,7 +164,6 @@ static int query_memdev(Object *obj, void *opaque) m =3D g_malloc0(sizeof(*m)); =20 m->id =3D g_strdup(object_get_canonical_path_component(obj)); - m->has_id =3D !!m->id; =20 m->size =3D object_property_get_uint(obj, "size", &error_abort); m->merge =3D object_property_get_bool(obj, "merge", &error_abort); @@ -227,7 +222,7 @@ HumanReadableText *qmp_x_query_numa(Error **errp) for (i =3D 0; i < nb_numa_nodes; i++) { g_string_append_printf(buf, "node %d cpus:", i); for (cpu =3D cpu_list; cpu; cpu =3D cpu->next) { - if (cpu->value->has_props && cpu->value->props->has_node_id && + if (cpu->value->props && cpu->value->props->has_node_id && cpu->value->props->node_id =3D=3D i) { g_string_append_printf(buf, " %" PRIi64, cpu->value->cpu_i= ndex); } diff --git a/hw/core/machine.c b/hw/core/machine.c index 8d34caa31d..c76e402bbf 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -684,7 +684,6 @@ HotpluggableCPUList *machine_query_hotpluggable_cpus(Ma= chineState *machine) =20 cpu =3D machine->possible_cpus->cpus[i].cpu; if (cpu) { - cpu_item->has_qom_path =3D true; cpu_item->qom_path =3D object_get_canonical_path(cpu); } QAPI_LIST_PREPEND(head, cpu_item); @@ -873,8 +872,7 @@ static void machine_copy_boot_config(MachineState *ms, = BootConfiguration *config =20 machine_free_boot_config(ms); ms->boot_config =3D *config; - if (!config->has_order) { - ms->boot_config.has_order =3D true; + if (!config->order) { ms->boot_config.order =3D g_strdup(machine_class->default_boot_ord= er); } } @@ -889,13 +887,13 @@ static void machine_set_boot(Object *obj, Visitor *v,= const char *name, if (!visit_type_BootConfiguration(v, name, &config, errp)) { return; } - if (config->has_order) { + if (config->order) { validate_bootdevices(config->order, errp); if (*errp) { goto out_free; } } - if (config->has_once) { + if (config->once) { validate_bootdevices(config->once, errp); if (*errp) { goto out_free; @@ -1424,7 +1422,7 @@ void qdev_machine_creation_done(void) { cpu_synchronize_all_post_init(); =20 - if (current_machine->boot_config.has_once) { + if (current_machine->boot_config.once) { qemu_boot_set(current_machine->boot_config.once, &error_fatal); qemu_register_reset(restore_boot_order, g_strdup(current_machine->= boot_config.order)); } diff --git a/hw/core/numa.c b/hw/core/numa.c index ea24a5fa8c..d8d36b16d8 100644 --- a/hw/core/numa.c +++ b/hw/core/numa.c @@ -130,9 +130,9 @@ static void parse_numa_node(MachineState *ms, NumaNodeO= ptions *node, } } =20 - have_memdevs =3D have_memdevs ? : node->has_memdev; - have_mem =3D have_mem ? : node->has_mem; - if ((node->has_mem && have_memdevs) || (node->has_memdev && have_mem))= { + have_memdevs =3D have_memdevs || node->memdev; + have_mem =3D have_mem || node->has_mem; + if ((node->has_mem && have_memdevs) || (node->memdev && have_mem)) { error_setg(errp, "numa configuration should use either mem=3D or m= emdev=3D," "mixing both is not allowed"); return; @@ -152,7 +152,7 @@ static void parse_numa_node(MachineState *ms, NumaNodeO= ptions *node, " use -numa node,memdev instead"); } } - if (node->has_memdev) { + if (node->memdev) { Object *o; o =3D object_resolve_path_type(node->memdev, TYPE_MEMORY_BACKEND, = NULL); if (!o) { diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index f27e1a11ba..50ef83215c 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -252,7 +252,6 @@ static void pc_dimm_md_fill_device_info(const MemoryDev= iceState *md, const DeviceState *dev =3D DEVICE(md); =20 if (dev->id) { - di->has_id =3D true; di->id =3D g_strdup(dev->id); } di->hotplugged =3D dev->hotplugged; diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 6edf5ea3e9..a00881bc64 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -201,7 +201,7 @@ static void fw_cfg_bootsplash(FWCfgState *s) } =20 /* insert splash file if user configurated */ - if (current_machine->boot_config.has_splash) { + if (current_machine->boot_config.splash) { const char *boot_splash_filename =3D current_machine->boot_config.= splash; filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, boot_splash_filen= ame); if (filename =3D=3D NULL) { diff --git a/hw/virtio/virtio-mem-pci.c b/hw/virtio/virtio-mem-pci.c index 5c5c1e3ae3..e8c338c5d9 100644 --- a/hw/virtio/virtio-mem-pci.c +++ b/hw/virtio/virtio-mem-pci.c @@ -65,7 +65,6 @@ static void virtio_mem_pci_fill_device_info(const MemoryD= eviceState *md, DeviceState *dev =3D DEVICE(md); =20 if (dev->id) { - vi->has_id =3D true; vi->id =3D g_strdup(dev->id); } =20 @@ -90,8 +89,7 @@ static void virtio_mem_pci_size_change_notify(Notifier *n= otifier, void *data) char *qom_path =3D object_get_canonical_path(OBJECT(dev)); const uint64_t * const size_p =3D data; =20 - qapi_event_send_memory_device_size_change(!!dev->id, dev->id, *size_p, - qom_path); + qapi_event_send_memory_device_size_change(dev->id, *size_p, qom_path); g_free(qom_path); } =20 diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c index 7d9f4ec189..1b89ade9d1 100644 --- a/hw/virtio/virtio-pmem-pci.c +++ b/hw/virtio/virtio-pmem-pci.c @@ -70,7 +70,6 @@ static void virtio_pmem_pci_fill_device_info(const Memory= DeviceState *md, DeviceState *dev =3D DEVICE(md); =20 if (dev->id) { - vi->has_id =3D true; vi->id =3D g_strdup(dev->id); } =20 diff --git a/target/arm/monitor.c b/target/arm/monitor.c index 80c64fa355..ecdd5ee817 100644 --- a/target/arm/monitor.c +++ b/target/arm/monitor.c @@ -221,7 +221,6 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(Cp= uModelExpansionType type, qobject_unref(qdict_out); } else { expansion_info->model->props =3D QOBJECT(qdict_out); - expansion_info->model->has_props =3D true; } =20 object_unref(obj); diff --git a/target/i386/cpu-sysemu.c b/target/i386/cpu-sysemu.c index a6f47b7d11..fc97213a73 100644 --- a/target/i386/cpu-sysemu.c +++ b/target/i386/cpu-sysemu.c @@ -187,10 +187,8 @@ qmp_query_cpu_model_expansion(CpuModelExpansionType ty= pe, QDict *props =3D NULL; const char *base_name; =20 - xc =3D x86_cpu_from_model(model->name, - model->has_props ? - qobject_to(QDict, model->props) : - NULL, &err); + xc =3D x86_cpu_from_model(model->name, qobject_to(QDict, model->props), + &err); if (err) { goto out; } @@ -198,7 +196,6 @@ qmp_query_cpu_model_expansion(CpuModelExpansionType typ= e, props =3D qdict_new(); ret->model =3D g_new0(CpuModelInfo, 1); ret->model->props =3D QOBJECT(props); - ret->model->has_props =3D true; =20 switch (type) { case CPU_MODEL_EXPANSION_TYPE_STATIC: diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 22b681ca37..ae502f0bfe 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4901,7 +4901,6 @@ static void x86_cpu_definition_entry(gpointer data, g= pointer user_data) */ if (default_cpu_version !=3D CPU_VERSION_LEGACY) { info->alias_of =3D x86_cpu_class_get_alias_of(cc); - info->has_alias_of =3D !!info->alias_of; } =20 QAPI_LIST_PREPEND(*cpu_list, info); diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sys= emu.c index d8a141a023..63981bf36b 100644 --- a/target/s390x/cpu_models_sysemu.c +++ b/target/s390x/cpu_models_sysemu.c @@ -210,7 +210,6 @@ static void cpu_info_from_model(CpuModelInfo *info, con= st S390CPUModel *model, qobject_unref(qdict); } else { info->props =3D QOBJECT(qdict); - info->has_props =3D true; } } =20 diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index ff73fdb0b3..9d729468b5 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,8 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/machine.json', - 'qapi/machine-target.json', 'qapi/migration.json', 'qapi/misc.json', 'qapi/net.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005870; cv=none; d=zohomail.com; s=zohoarc; b=bWujt44hhI0ui9hF2/C0hcJHyvPKeOyLqw0vLzpXUgCY4f5nV2zo4w34JIAOCv0RoSFpCLx7xEfPLKejNQX+f6AEWwHALY9YptyFGmCanbkzYENp6QMPUuQEGxEem/oGilsb2vb3UMtfZgNp4j5Il7IP3oO3hWig2EyWv9nPwxo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005870; 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=KXy1m7Ng567/+lx2TORl3Ne7RqmmnPt3btLyXwMAbeE=; b=TDiS/gQaPexpTc7/9oDtA1yVX7T6dnskKNQCvLhuVJVGhJzQ8vU4tukTRPEdpJ5/7dZaAsDVy8C+n8G323bsMEyCEE1HRbofK86mar2mDQXWwP0C+/5zYH65nj4SZQJ69P4GWekkPM7GxIPQLBueuxESB09LDggm28h4CXCmDTM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005870169138.87437621612162; Wed, 14 Dec 2022 00:17:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003UY-Qb; Wed, 14 Dec 2022 02:47:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUM-0003SN-CK for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:38 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003eo-NL for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:38 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-224-O6fU84y5NryYkiF1rp37rg-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DECC71006E2E for ; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 77C7E1121314; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 76C3B21E64A9; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=KXy1m7Ng567/+lx2TORl3Ne7RqmmnPt3btLyXwMAbeE=; b=d0O6xXFStnrsYaYAQTOgILStZ1eKBjodiis0sJURp+Hy06ydA1WooSXVtEqRULZV5iXZey 9sBPCTdT0MKOq2W7z4ZrxPazShEGMAcvdyYoymexh9+wRSxo1z0F2nyRVTk/P/U/mgAJmB 9xXe0MWdIiivYe864SEYDwQ0R2fl1po= X-MC-Unique: O6fU84y5NryYkiF1rp37rg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Juan Quintela , "Dr . David Alan Gilbert" , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 16/30] qapi migration: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:07 +0100 Message-Id: <20221214074721.731441-19-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005872080100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/migration.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Juan Quintela Cc: Dr. David Alan Gilbert Signed-off-by: Markus Armbruster Reviewed-by: Dr. David Alan Gilbert Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-17-armbru@redhat.com> --- migration/block-dirty-bitmap.c | 4 ++-- migration/colo.c | 1 - migration/migration.c | 27 ++++++++------------------- monitor/hmp-cmds.c | 26 +++++++++++--------------- monitor/misc.c | 2 +- scripts/qapi/schema.py | 1 - 6 files changed, 22 insertions(+), 39 deletions(-) diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c index 9aba7d9c22..283017d7d3 100644 --- a/migration/block-dirty-bitmap.c +++ b/migration/block-dirty-bitmap.c @@ -551,7 +551,7 @@ static int add_bitmaps_to_list(DBMSaveState *s, BlockDr= iverState *bs, } =20 bitmap_alias =3D bmap_inner->alias; - if (bmap_inner->has_transform) { + if (bmap_inner->transform) { bitmap_transform =3D bmap_inner->transform; } } else { @@ -821,7 +821,7 @@ static int dirty_bitmap_load_start(QEMUFile *f, DBMLoad= State *s) } =20 if (s->bmap_inner && - s->bmap_inner->has_transform && + s->bmap_inner->transform && s->bmap_inner->transform->has_persistent) { persistent =3D s->bmap_inner->transform->persistent; } else { diff --git a/migration/colo.c b/migration/colo.c index 2b71722fd6..232c8d44b1 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -250,7 +250,6 @@ ReplicationStatus *qmp_query_xen_replication_status(Err= or **errp) replication_get_error_all(&err); if (err) { s->error =3D true; - s->has_desc =3D true; s->desc =3D g_strdup(error_get_pretty(err)); } else { s->error =3D false; diff --git a/migration/migration.c b/migration/migration.c index f485eea5fb..78a0b010d4 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -918,11 +918,8 @@ MigrationParameters *qmp_query_migrate_parameters(Erro= r **errp) params->cpu_throttle_increment =3D s->parameters.cpu_throttle_incremen= t; params->has_cpu_throttle_tailslow =3D true; params->cpu_throttle_tailslow =3D s->parameters.cpu_throttle_tailslow; - params->has_tls_creds =3D true; params->tls_creds =3D g_strdup(s->parameters.tls_creds); - params->has_tls_hostname =3D true; params->tls_hostname =3D g_strdup(s->parameters.tls_hostname); - params->has_tls_authz =3D true; params->tls_authz =3D g_strdup(s->parameters.tls_authz ? s->parameters.tls_authz : ""); params->has_max_bandwidth =3D true; @@ -1047,7 +1044,6 @@ static void populate_ram_info(MigrationInfo *info, Mi= grationState *s) { size_t page_size =3D qemu_target_page_size(); =20 - info->has_ram =3D true; info->ram =3D g_malloc0(sizeof(*info->ram)); info->ram->transferred =3D ram_counters.transferred; info->ram->total =3D ram_bytes_total(); @@ -1069,7 +1065,6 @@ static void populate_ram_info(MigrationInfo *info, Mi= grationState *s) info->ram->postcopy_bytes =3D ram_counters.postcopy_bytes; =20 if (migrate_use_xbzrle()) { - info->has_xbzrle_cache =3D true; info->xbzrle_cache =3D g_malloc0(sizeof(*info->xbzrle_cache)); info->xbzrle_cache->cache_size =3D migrate_xbzrle_cache_size(); info->xbzrle_cache->bytes =3D xbzrle_counters.bytes; @@ -1081,7 +1076,6 @@ static void populate_ram_info(MigrationInfo *info, Mi= grationState *s) } =20 if (migrate_use_compression()) { - info->has_compression =3D true; info->compression =3D g_malloc0(sizeof(*info->compression)); info->compression->pages =3D compression_counters.pages; info->compression->busy =3D compression_counters.busy; @@ -1106,7 +1100,6 @@ static void populate_ram_info(MigrationInfo *info, Mi= grationState *s) static void populate_disk_info(MigrationInfo *info) { if (blk_mig_active()) { - info->has_disk =3D true; info->disk =3D g_malloc0(sizeof(*info->disk)); info->disk->transferred =3D blk_mig_bytes_transferred(); info->disk->remaining =3D blk_mig_bytes_remaining(); @@ -1171,7 +1164,6 @@ static void fill_source_migration_info(MigrationInfo = *info) case MIGRATION_STATUS_FAILED: info->has_status =3D true; if (s->error) { - info->has_error_desc =3D true; info->error_desc =3D g_strdup(error_get_pretty(s->error)); } break; @@ -1575,7 +1567,7 @@ static bool migrate_params_check(MigrationParameters = *params, Error **errp) #ifdef CONFIG_LINUX if (migrate_use_zero_copy_send() && ((params->has_multifd_compression && params->multifd_compression) = || - (params->has_tls_creds && params->tls_creds && *params->tls_creds= ))) { + (params->tls_creds && *params->tls_creds))) { error_setg(errp, "Zero copy only available for non-compressed non-TLS mu= ltifd migration"); return false; @@ -1624,12 +1616,12 @@ static void migrate_params_test_apply(MigrateSetPar= ameters *params, dest->cpu_throttle_tailslow =3D params->cpu_throttle_tailslow; } =20 - if (params->has_tls_creds) { + if (params->tls_creds) { assert(params->tls_creds->type =3D=3D QTYPE_QSTRING); dest->tls_creds =3D params->tls_creds->u.s; } =20 - if (params->has_tls_hostname) { + if (params->tls_hostname) { assert(params->tls_hostname->type =3D=3D QTYPE_QSTRING); dest->tls_hostname =3D params->tls_hostname->u.s; } @@ -1721,19 +1713,19 @@ static void migrate_params_apply(MigrateSetParamete= rs *params, Error **errp) s->parameters.cpu_throttle_tailslow =3D params->cpu_throttle_tails= low; } =20 - if (params->has_tls_creds) { + if (params->tls_creds) { g_free(s->parameters.tls_creds); assert(params->tls_creds->type =3D=3D QTYPE_QSTRING); s->parameters.tls_creds =3D g_strdup(params->tls_creds->u.s); } =20 - if (params->has_tls_hostname) { + if (params->tls_hostname) { g_free(s->parameters.tls_hostname); assert(params->tls_hostname->type =3D=3D QTYPE_QSTRING); s->parameters.tls_hostname =3D g_strdup(params->tls_hostname->u.s); } =20 - if (params->has_tls_authz) { + if (params->tls_authz) { g_free(s->parameters.tls_authz); assert(params->tls_authz->type =3D=3D QTYPE_QSTRING); s->parameters.tls_authz =3D g_strdup(params->tls_authz->u.s); @@ -1810,14 +1802,14 @@ void qmp_migrate_set_parameters(MigrateSetParameter= s *params, Error **errp) MigrationParameters tmp; =20 /* TODO Rewrite "" to null instead */ - if (params->has_tls_creds + if (params->tls_creds && params->tls_creds->type =3D=3D QTYPE_QNULL) { qobject_unref(params->tls_creds->u.n); params->tls_creds->type =3D QTYPE_QSTRING; params->tls_creds->u.s =3D strdup(""); } /* TODO Rewrite "" to null instead */ - if (params->has_tls_hostname + if (params->tls_hostname && params->tls_hostname->type =3D=3D QTYPE_QNULL) { qobject_unref(params->tls_hostname->u.n); params->tls_hostname->type =3D QTYPE_QSTRING; @@ -4492,9 +4484,6 @@ static void migration_instance_init(Object *obj) params->has_announce_max =3D true; params->has_announce_rounds =3D true; params->has_announce_step =3D true; - params->has_tls_creds =3D true; - params->has_tls_hostname =3D true; - params->has_tls_authz =3D true; =20 qemu_sem_init(&ms->postcopy_pause_sem, 0); qemu_sem_init(&ms->postcopy_pause_rp_sem, 0); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 878e3ca1f3..aa71fdba11 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -219,8 +219,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) if (info->has_status) { monitor_printf(mon, "Migration status: %s", MigrationStatus_str(info->status)); - if (info->status =3D=3D MIGRATION_STATUS_FAILED && - info->has_error_desc) { + if (info->status =3D=3D MIGRATION_STATUS_FAILED && info->error_des= c) { monitor_printf(mon, " (%s)\n", info->error_desc); } else { monitor_printf(mon, "\n"); @@ -242,7 +241,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) } } =20 - if (info->has_ram) { + if (info->ram) { monitor_printf(mon, "transferred ram: %" PRIu64 " kbytes\n", info->ram->transferred >> 10); monitor_printf(mon, "throughput: %0.2f mbps\n", @@ -295,7 +294,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) } } =20 - if (info->has_disk) { + if (info->disk) { monitor_printf(mon, "transferred disk: %" PRIu64 " kbytes\n", info->disk->transferred >> 10); monitor_printf(mon, "remaining disk: %" PRIu64 " kbytes\n", @@ -304,7 +303,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) info->disk->total >> 10); } =20 - if (info->has_xbzrle_cache) { + if (info->xbzrle_cache) { monitor_printf(mon, "cache size: %" PRIu64 " bytes\n", info->xbzrle_cache->cache_size); monitor_printf(mon, "xbzrle transferred: %" PRIu64 " kbytes\n", @@ -321,7 +320,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) info->xbzrle_cache->overflow); } =20 - if (info->has_compression) { + if (info->compression) { monitor_printf(mon, "compression pages: %" PRIu64 " pages\n", info->compression->pages); monitor_printf(mon, "compression busy: %" PRIu64 "\n", @@ -368,7 +367,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict) monitor_printf(mon, "]\n"); } =20 - if (info->has_vfio) { + if (info->vfio) { monitor_printf(mon, "vfio device transferred: %" PRIu64 " kbytes\n= ", info->vfio->transferred >> 10); } @@ -448,11 +447,11 @@ void hmp_info_migrate_parameters(Monitor *mon, const = QDict *qdict) monitor_printf(mon, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_MAX_CPU_THROTTLE), params->max_cpu_throttle); - assert(params->has_tls_creds); + assert(params->tls_creds); monitor_printf(mon, "%s: '%s'\n", MigrationParameter_str(MIGRATION_PARAMETER_TLS_CREDS), params->tls_creds); - assert(params->has_tls_hostname); + assert(params->tls_hostname); monitor_printf(mon, "%s: '%s'\n", MigrationParameter_str(MIGRATION_PARAMETER_TLS_HOSTNAME), params->tls_hostname); @@ -1237,19 +1236,16 @@ void hmp_migrate_set_parameter(Monitor *mon, const = QDict *qdict) visit_type_uint8(v, param, &p->max_cpu_throttle, &err); break; case MIGRATION_PARAMETER_TLS_CREDS: - p->has_tls_creds =3D true; p->tls_creds =3D g_new0(StrOrNull, 1); p->tls_creds->type =3D QTYPE_QSTRING; visit_type_str(v, param, &p->tls_creds->u.s, &err); break; case MIGRATION_PARAMETER_TLS_HOSTNAME: - p->has_tls_hostname =3D true; p->tls_hostname =3D g_new0(StrOrNull, 1); p->tls_hostname->type =3D QTYPE_QSTRING; visit_type_str(v, param, &p->tls_hostname->u.s, &err); break; case MIGRATION_PARAMETER_TLS_AUTHZ: - p->has_tls_authz =3D true; p->tls_authz =3D g_new0(StrOrNull, 1); p->tls_authz->type =3D QTYPE_QSTRING; visit_type_str(v, param, &p->tls_authz->u.s, &err); @@ -1361,7 +1357,7 @@ void hmp_client_migrate_info(Monitor *mon, const QDic= t *qdict) =20 qmp_client_migrate_info(protocol, hostname, has_port, port, has_tls_port, tls_port, - !!cert_subject, cert_subject, &err); + cert_subject, &err); hmp_handle_error(mon, err); } =20 @@ -1519,7 +1515,7 @@ static void hmp_migrate_status_cb(void *opaque) info =3D qmp_query_migrate(NULL); if (!info->has_status || info->status =3D=3D MIGRATION_STATUS_ACTIVE || info->status =3D=3D MIGRATION_STATUS_SETUP) { - if (info->has_disk) { + if (info->disk) { int progress; =20 if (info->disk->remaining) { @@ -1537,7 +1533,7 @@ static void hmp_migrate_status_cb(void *opaque) if (status->is_block_migration) { monitor_printf(status->mon, "\n"); } - if (info->has_error_desc) { + if (info->error_desc) { error_report("%s", info->error_desc); } monitor_resume(status->mon); diff --git a/monitor/misc.c b/monitor/misc.c index 205487e2b9..78790306b1 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -398,7 +398,7 @@ static void hmp_info_trace_events(Monitor *mon, const Q= Dict *qdict) void qmp_client_migrate_info(const char *protocol, const char *hostname, bool has_port, int64_t port, bool has_tls_port, int64_t tls_port, - bool has_cert_subject, const char *cert_subje= ct, + const char *cert_subject, Error **errp) { if (strcmp(protocol, "spice") =3D=3D 0) { diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 9d729468b5..ad5b665212 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/migration.json', 'qapi/misc.json', 'qapi/net.json', 'qapi/pci.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007885; cv=none; d=zohomail.com; s=zohoarc; b=FoOs2x+HgTunKnH3eMW0xwDKNC/D0aqGL9fjL7MBl4iCEYG5IWixPLBL3+MnlughhvQzVHbf8b14EFUpr4TzcC8v2fMyv4Z570OrqhrAKvsNQ+0MrAIR9nC3lFMvfqQgX7AKA+bo+iKhTdi8ajHdN2c+pHvBUztlxM6j+nqz/Ew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007885; 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=eniEyFKLifDi6SMu5FxMTCpkIgZYMu78BnAT8pDcmHw=; b=fuLs4ljwxoGP9oXJwLP2zu4pOfiZjaNYTqcPyHFDs6lWQavliA7c1ShGRuRPz9ZqLrbVZ5gPleYNnC/aTnObyCkQlIA9G7CzHB03rsHFjTCJ8ngLn4bEnbK+ILPg7TNaKK4LAAMz69kwStl1u18+/CcrA8h6dGwrKvuwO0o34yE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007885928767.4747854078151; Wed, 14 Dec 2022 00:51:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUR-0003XW-6L; Wed, 14 Dec 2022 02:47:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TD-3a for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003et-Pi for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:38 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-527-qy4hG7vlNpe6iVisAkP_eQ-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BE28B85CCE6 for ; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 785512166B26; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 78E8121E64B2; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=eniEyFKLifDi6SMu5FxMTCpkIgZYMu78BnAT8pDcmHw=; b=Bu6UGxY8m8Zjs8yUtmWb8KQ2Gb2OkdnyHZuRgX2LxDzHA6i8eZhcVumDIaeziro/fb+fBZ GqhIRmcTHszT+MuM3pmvghHnTHfjYopZNY8RV5SzNThdYSZJtQAOkeNRAlCsUgAjaHcEun nSntZbdDH3C09j7L+3J3F684V92HZuQ= X-MC-Unique: qy4hG7vlNpe6iVisAkP_eQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: "Dr . David Alan Gilbert" Subject: [PULL 17/30] qapi misc: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:08 +0100 Message-Id: <20221214074721.731441-20-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007887324100006 Content-Type: text/plain; charset="utf-8" The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/misc.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Dr. David Alan Gilbert Signed-off-by: Markus Armbruster Reviewed-by: Dr. David Alan Gilbert Message-Id: <20221104160712.3005652-18-armbru@redhat.com> --- include/monitor/monitor.h | 3 +-- monitor/hmp-cmds.c | 2 +- monitor/misc.c | 19 +++++-------------- monitor/qmp-cmds.c | 6 +----- softmmu/vl.c | 2 +- util/qemu-config.c | 17 +++++------------ scripts/qapi/schema.py | 1 - 7 files changed, 14 insertions(+), 36 deletions(-) diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index 737e750670..1e6f4c9bd7 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -46,8 +46,7 @@ int monitor_read_password(MonitorHMP *mon, ReadLineFunc *= readline_func, void *opaque); =20 AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_i= d, - bool has_opaque, const char *opaque, - Error **errp); + const char *opaque, Error **errp); int monitor_fdset_dup_fd_add(int64_t fdset_id, int flags); void monitor_fdset_dup_fd_remove(int dup_fd); int64_t monitor_fdset_dup_fd_find(int dup_fd); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index aa71fdba11..c5c8cb593e 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -104,7 +104,7 @@ void hmp_info_name(Monitor *mon, const QDict *qdict) NameInfo *info; =20 info =3D qmp_query_name(NULL); - if (info->has_name) { + if (info->name) { monitor_printf(mon, "%s\n", info->name); } qapi_free_NameInfo(info); diff --git a/monitor/misc.c b/monitor/misc.c index 78790306b1..77aa5f1650 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -1132,7 +1132,7 @@ void monitor_fdsets_cleanup(void) } } =20 -AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id, bool has_opaque, +AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id, const char *opaque, Error **errp) { int fd; @@ -1145,8 +1145,7 @@ AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdse= t_id, bool has_opaque, goto error; } =20 - fdinfo =3D monitor_fdset_add_fd(fd, has_fdset_id, fdset_id, - has_opaque, opaque, errp); + fdinfo =3D monitor_fdset_add_fd(fd, has_fdset_id, fdset_id, opaque, er= rp); if (fdinfo) { return fdinfo; } @@ -1214,12 +1213,7 @@ FdsetInfoList *qmp_query_fdsets(Error **errp) =20 fdsetfd_info =3D g_malloc0(sizeof(*fdsetfd_info)); fdsetfd_info->fd =3D mon_fdset_fd->fd; - if (mon_fdset_fd->opaque) { - fdsetfd_info->has_opaque =3D true; - fdsetfd_info->opaque =3D g_strdup(mon_fdset_fd->opaque); - } else { - fdsetfd_info->has_opaque =3D false; - } + fdsetfd_info->opaque =3D g_strdup(mon_fdset_fd->opaque); =20 QAPI_LIST_PREPEND(fdset_info->fds, fdsetfd_info); } @@ -1231,8 +1225,7 @@ FdsetInfoList *qmp_query_fdsets(Error **errp) } =20 AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_i= d, - bool has_opaque, const char *opaque, - Error **errp) + const char *opaque, Error **errp) { MonFdset *mon_fdset =3D NULL; MonFdsetFd *mon_fdset_fd; @@ -1300,9 +1293,7 @@ AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdse= t_id, int64_t fdset_id, mon_fdset_fd =3D g_malloc0(sizeof(*mon_fdset_fd)); mon_fdset_fd->fd =3D fd; mon_fdset_fd->removed =3D false; - if (has_opaque) { - mon_fdset_fd->opaque =3D g_strdup(opaque); - } + mon_fdset_fd->opaque =3D g_strdup(opaque); QLIST_INSERT_HEAD(&mon_fdset->fds, mon_fdset_fd, next); =20 fdinfo =3D g_malloc0(sizeof(*fdinfo)); diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 81c8fdadf8..f8ab5dd50f 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -50,11 +50,7 @@ NameInfo *qmp_query_name(Error **errp) { NameInfo *info =3D g_malloc0(sizeof(*info)); =20 - if (qemu_name) { - info->has_name =3D true; - info->name =3D g_strdup(qemu_name); - } - + info->name =3D g_strdup(qemu_name); return info; } =20 diff --git a/softmmu/vl.c b/softmmu/vl.c index 5115221efe..798e1dc933 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -611,7 +611,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, E= rror **errp) } =20 /* add the duplicate fd, and optionally the opaque string, to the fd s= et */ - fdinfo =3D monitor_fdset_add_fd(dupfd, true, fdset_id, !!fd_opaque, fd= _opaque, + fdinfo =3D monitor_fdset_add_fd(dupfd, true, fdset_id, fd_opaque, &error_abort); g_free(fdinfo); =20 diff --git a/util/qemu-config.c b/util/qemu-config.c index 433488aa56..2467a07bd7 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -80,14 +80,8 @@ static CommandLineParameterInfoList *query_option_descs(= const QemuOptDesc *desc) break; } =20 - if (desc[i].help) { - info->has_help =3D true; - info->help =3D g_strdup(desc[i].help); - } - if (desc[i].def_value_str) { - info->has_q_default =3D true; - info->q_default =3D g_strdup(desc[i].def_value_str); - } + info->help =3D g_strdup(desc[i].help); + info->q_default =3D g_strdup(desc[i].def_value_str); =20 QAPI_LIST_PREPEND(param_list, info); } @@ -241,8 +235,7 @@ static QemuOptsList machine_opts =3D { } }; =20 -CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option, - const char *opti= on, +CommandLineOptionInfoList *qmp_query_command_line_options(const char *opti= on, Error **errp) { CommandLineOptionInfoList *conf_list =3D NULL; @@ -250,7 +243,7 @@ CommandLineOptionInfoList *qmp_query_command_line_optio= ns(bool has_option, int i; =20 for (i =3D 0; vm_config_groups[i] !=3D NULL; i++) { - if (!has_option || !strcmp(option, vm_config_groups[i]->name)) { + if (!option || !strcmp(option, vm_config_groups[i]->name)) { info =3D g_malloc0(sizeof(*info)); info->option =3D g_strdup(vm_config_groups[i]->name); if (!strcmp("drive", vm_config_groups[i]->name)) { @@ -263,7 +256,7 @@ CommandLineOptionInfoList *qmp_query_command_line_optio= ns(bool has_option, } } =20 - if (!has_option || !strcmp(option, "machine")) { + if (!option || !strcmp(option, "machine")) { info =3D g_malloc0(sizeof(*info)); info->option =3D g_strdup("machine"); info->parameters =3D query_option_descs(machine_opts.desc); diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index ad5b665212..a34e25fdd7 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/misc.json', 'qapi/net.json', 'qapi/pci.json', 'qapi/qdev.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006850; cv=none; d=zohomail.com; s=zohoarc; b=CJDi5YY3ypnDXK+8dOqa2uzI/K5+/U9dQK66HMTaKEnCY2Tp3cr4jORuXOiS+dzgK6FbWBvAmupCBhsOtOQXA5DpFpTBBsc+xrjQI0iP52UNgX+NGtGzaWfvbNr8O4qclWkdN5nPrQ/CZReetaT7Gix39bptaWOe7YtTM4AgADY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006850; 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=VvAI+TubrfaJLcfJF3p60r+TIYpfi9CqU834Nmk04yM=; b=XqszwWfkqL+6q10AuZ1EzPu0fc5inSmlrWyLDUm8X3bY1Pfy9Dr031Sm6j41juELR71bhmTcul6XpzbjQF0Vejf3OJDO5i+au3TWpLr4MLKsi2QcbnQlQx5QvbIp6VcAvcT/EzsSgjY1g4qvoamcuk8MFmnLepfo6VY+4tRWqPA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006850855888.3348361532783; Wed, 14 Dec 2022 00:34:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUo-0003d1-Pj; Wed, 14 Dec 2022 02:48:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUQ-0003Wi-5D for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003gJ-8n for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-155-Htoj4-mlME6conn54oiU6w-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DCF4A1C02D40; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 777E0C15BA0; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 7B62F21E61AC; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=VvAI+TubrfaJLcfJF3p60r+TIYpfi9CqU834Nmk04yM=; b=ieObiuo3u4Ia8o1hZkvHEmSyAwrN+Go0dXwW/FaePSmSuwxRQv2Ega7+jyYZ9iozV205Wj RmXdBEiWX9gqYPwpHTkW1TD81kJqUCufE1zxJWUdgF8fEQZ1hlaci2Q0CeIUJqwGobNHbm vIV5VsZcUoF6+yUM/f9Wcbvydc60B18= X-MC-Unique: Htoj4-mlME6conn54oiU6w-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Jason Wang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 18/30] qapi net: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:09 +0100 Message-Id: <20221214074721.731441-21-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006852397100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/net.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Jason Wang Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-19-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/net/virtio-net.c | 3 +-- monitor/hmp-cmds.c | 1 - net/announce.c | 8 +++---- net/hub.c | 2 +- net/l2tpv3.c | 2 +- net/net.c | 25 ++++++++++----------- net/slirp.c | 4 ++-- net/socket.c | 18 +++++++-------- net/tap-win32.c | 2 +- net/tap.c | 51 +++++++++++++++++++++--------------------- net/vhost-vdpa.c | 6 ++--- scripts/qapi/schema.py | 1 - 12 files changed, 59 insertions(+), 64 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index aba12759d5..d1ce744619 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -457,8 +457,7 @@ static void rxfilter_notify(NetClientState *nc) =20 if (nc->rxfilter_notify_enabled) { char *path =3D object_get_canonical_path(OBJECT(n->qdev)); - qapi_event_send_nic_rx_filter_changed(!!n->netclient_name, - n->netclient_name, path); + qapi_event_send_nic_rx_filter_changed(n->netclient_name, path); g_free(path); =20 /* disable event notification to avoid events flooding */ diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index c5c8cb593e..45d78ba257 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1104,7 +1104,6 @@ void hmp_announce_self(Monitor *mon, const QDict *qdi= ct) params->interfaces =3D strList_from_comma_list(interfaces_str); params->has_interfaces =3D params->interfaces !=3D NULL; params->id =3D g_strdup(id); - params->has_id =3D !!params->id; qmp_announce_self(params, NULL); qapi_free_AnnounceParameters(params); } diff --git a/net/announce.c b/net/announce.c index 62c60192a3..9e99044422 100644 --- a/net/announce.c +++ b/net/announce.c @@ -46,7 +46,7 @@ void qemu_announce_timer_del(AnnounceTimer *timer, bool f= ree_named) } qapi_free_strList(timer->params.interfaces); timer->params.interfaces =3D NULL; - if (free_named && timer->params.has_id) { + if (free_named && timer->params.id) { AnnounceTimer *list_timer; /* * Sanity check: There should only be one timer on the list with @@ -157,7 +157,7 @@ static void qemu_announce_self_iter(NICState *nic, void= *opaque) skip =3D false; } =20 - trace_qemu_announce_self_iter(timer->params.has_id ? timer->params.id = : "_", + trace_qemu_announce_self_iter(timer->params.id ?: "_", nic->ncs->name, qemu_ether_ntoa(&nic->conf->macaddr), sk= ip); =20 @@ -199,9 +199,9 @@ void qemu_announce_self(AnnounceTimer *timer, AnnounceP= arameters *params) void qmp_announce_self(AnnounceParameters *params, Error **errp) { AnnounceTimer *named_timer; - if (!params->has_id) { + + if (!params->id) { params->id =3D g_strdup(""); - params->has_id =3D true; } =20 named_timer =3D g_datalist_get_data(&named_timers, params->id); diff --git a/net/hub.c b/net/hub.c index 67ca534856..4c8a469a50 100644 --- a/net/hub.c +++ b/net/hub.c @@ -274,7 +274,7 @@ int net_init_hubport(const Netdev *netdev, const char *= name, assert(!peer); hubport =3D &netdev->u.hubport; =20 - if (hubport->has_netdev) { + if (hubport->netdev) { hubpeer =3D qemu_find_netdev(hubport->netdev); if (!hubpeer) { error_setg(errp, "netdev '%s' not found", hubport->netdev); diff --git a/net/l2tpv3.c b/net/l2tpv3.c index 350041a0d6..5852e42738 100644 --- a/net/l2tpv3.c +++ b/net/l2tpv3.c @@ -578,7 +578,7 @@ int net_init_l2tpv3(const Netdev *netdev, =20 if (l2tpv3->has_udp && l2tpv3->udp) { s->udp =3D true; - if (!(l2tpv3->has_srcport && l2tpv3->has_dstport)) { + if (!(l2tpv3->srcport && l2tpv3->dstport)) { error_setg(errp, "need both src and dst port for udp"); goto outerr; } else { diff --git a/net/net.c b/net/net.c index 840ad9dca5..2d01472998 100644 --- a/net/net.c +++ b/net/net.c @@ -964,7 +964,7 @@ static int net_init_nic(const Netdev *netdev, const cha= r *name, =20 memset(nd, 0, sizeof(*nd)); =20 - if (nic->has_netdev) { + if (nic->netdev) { nd->netdev =3D qemu_find_netdev(nic->netdev); if (!nd->netdev) { error_setg(errp, "netdev '%s' not found", nic->netdev); @@ -975,19 +975,19 @@ static int net_init_nic(const Netdev *netdev, const c= har *name, nd->netdev =3D peer; } nd->name =3D g_strdup(name); - if (nic->has_model) { + if (nic->model) { nd->model =3D g_strdup(nic->model); } - if (nic->has_addr) { + if (nic->addr) { nd->devaddr =3D g_strdup(nic->addr); } =20 - if (nic->has_macaddr && + if (nic->macaddr && net_parse_macaddr(nd->macaddr.a, nic->macaddr) < 0) { error_setg(errp, "invalid syntax for ethernet address"); return -1; } - if (nic->has_macaddr && + if (nic->macaddr && is_multicast_ether_addr(nd->macaddr.a)) { error_setg(errp, "NIC cannot have multicast MAC address (odd 1st byte)"); @@ -1081,7 +1081,7 @@ static int net_client_init1(const Netdev *netdev, boo= l is_netdev, Error **errp) =20 /* Do not add to a hub if it's a nic with a netdev=3D parameter. */ if (netdev->type !=3D NET_CLIENT_DRIVER_NIC || - !netdev->u.nic.has_netdev) { + !netdev->u.nic.netdev) { peer =3D net_hub_add_port(0, NULL, NULL); } } @@ -1295,8 +1295,7 @@ void print_net_client(Monitor *mon, NetClientState *n= c) } } =20 -RxFilterInfoList *qmp_query_rx_filter(bool has_name, const char *name, - Error **errp) +RxFilterInfoList *qmp_query_rx_filter(const char *name, Error **errp) { NetClientState *nc; RxFilterInfoList *filter_list =3D NULL, **tail =3D &filter_list; @@ -1304,13 +1303,13 @@ RxFilterInfoList *qmp_query_rx_filter(bool has_name= , const char *name, QTAILQ_FOREACH(nc, &net_clients, next) { RxFilterInfo *info; =20 - if (has_name && strcmp(nc->name, name) !=3D 0) { + if (name && strcmp(nc->name, name) !=3D 0) { continue; } =20 /* only query rx-filter information of NIC */ if (nc->info->type !=3D NET_CLIENT_DRIVER_NIC) { - if (has_name) { + if (name) { error_setg(errp, "net client(%s) isn't a NIC", name); assert(!filter_list); return NULL; @@ -1327,19 +1326,19 @@ RxFilterInfoList *qmp_query_rx_filter(bool has_name= , const char *name, if (nc->info->query_rx_filter) { info =3D nc->info->query_rx_filter(nc); QAPI_LIST_APPEND(tail, info); - } else if (has_name) { + } else if (name) { error_setg(errp, "net client(%s) doesn't support" " rx-filter querying", name); assert(!filter_list); return NULL; } =20 - if (has_name) { + if (name) { break; } } =20 - if (filter_list =3D=3D NULL && has_name) { + if (filter_list =3D=3D NULL && name) { error_setg(errp, "invalid net client name: %s", name); } =20 diff --git a/net/slirp.c b/net/slirp.c index 14a8d59277..2ee3f1a0d7 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -1153,8 +1153,8 @@ int net_init_slirp(const Netdev *netdev, const char *= name, ipv6 =3D 0; } =20 - vnet =3D user->has_net ? g_strdup(user->net) : - user->has_ip ? g_strdup_printf("%s/24", user->ip) : + vnet =3D user->net ? g_strdup(user->net) : + user->ip ? g_strdup_printf("%s/24", user->ip) : NULL; =20 dnssearch =3D slirp_dnssearch(user->dnssearch); diff --git a/net/socket.c b/net/socket.c index e62137c839..b67437a1f0 100644 --- a/net/socket.c +++ b/net/socket.c @@ -705,19 +705,19 @@ int net_init_socket(const Netdev *netdev, const char = *name, assert(netdev->type =3D=3D NET_CLIENT_DRIVER_SOCKET); sock =3D &netdev->u.socket; =20 - if (sock->has_fd + sock->has_listen + sock->has_connect + sock->has_mc= ast + - sock->has_udp !=3D 1) { + if (!!sock->fd + !!sock->listen + !!sock->connect + !!sock->mcast + + !!sock->udp !=3D 1) { error_setg(errp, "exactly one of listen=3D, connect=3D, mcast=3D o= r udp=3D" " is required"); return -1; } =20 - if (sock->has_localaddr && !sock->has_mcast && !sock->has_udp) { + if (sock->localaddr && !sock->mcast && !sock->udp) { error_setg(errp, "localaddr=3D is only valid with mcast=3D or udp= =3D"); return -1; } =20 - if (sock->has_fd) { + if (sock->fd) { int fd, ret; =20 fd =3D monitor_fd_param(monitor_cur(), sock->fd, errp); @@ -737,7 +737,7 @@ int net_init_socket(const Netdev *netdev, const char *n= ame, return 0; } =20 - if (sock->has_listen) { + if (sock->listen) { if (net_socket_listen_init(peer, "socket", name, sock->listen, err= p) < 0) { return -1; @@ -745,7 +745,7 @@ int net_init_socket(const Netdev *netdev, const char *n= ame, return 0; } =20 - if (sock->has_connect) { + if (sock->connect) { if (net_socket_connect_init(peer, "socket", name, sock->connect, e= rrp) < 0) { return -1; @@ -753,7 +753,7 @@ int net_init_socket(const Netdev *netdev, const char *n= ame, return 0; } =20 - if (sock->has_mcast) { + if (sock->mcast) { /* if sock->localaddr is missing, it has been initialized to "all = bits * zero" */ if (net_socket_mcast_init(peer, "socket", name, sock->mcast, @@ -763,8 +763,8 @@ int net_init_socket(const Netdev *netdev, const char *n= ame, return 0; } =20 - assert(sock->has_udp); - if (!sock->has_localaddr) { + assert(sock->udp); + if (!sock->localaddr) { error_setg(errp, "localaddr=3D is mandatory with udp=3D"); return -1; } diff --git a/net/tap-win32.c b/net/tap-win32.c index a49c28ba5d..f327d62ab0 100644 --- a/net/tap-win32.c +++ b/net/tap-win32.c @@ -807,7 +807,7 @@ int net_init_tap(const Netdev *netdev, const char *name, assert(netdev->type =3D=3D NET_CLIENT_DRIVER_TAP); tap =3D &netdev->u.tap; =20 - if (!tap->has_ifname) { + if (!tap->ifname) { error_report("tap: no interface name"); return -1; } diff --git a/net/tap.c b/net/tap.c index 1210a0436d..e28ceb078f 100644 --- a/net/tap.c +++ b/net/tap.c @@ -611,8 +611,8 @@ int net_init_bridge(const Netdev *netdev, const char *n= ame, =20 assert(netdev->type =3D=3D NET_CLIENT_DRIVER_BRIDGE); bridge =3D &netdev->u.bridge; - helper =3D bridge->has_helper ? bridge->helper : NULL; - br =3D bridge->has_br ? bridge->br : DEFAULT_BRIDGE_INTERF= ACE; + helper =3D bridge->helper; + br =3D bridge->br ?: DEFAULT_BRIDGE_INTERFACE; =20 fd =3D net_bridge_run_helper(helper, br, errp); if (fd =3D=3D -1) { @@ -688,9 +688,9 @@ static void net_init_tap_one(const NetdevTapOptions *ta= p, NetClientState *peer, goto failed; } =20 - if (tap->has_fd || tap->has_fds) { + if (tap->fd || tap->fds) { qemu_set_info_str(&s->nc, "fd=3D%d", fd); - } else if (tap->has_helper) { + } else if (tap->helper) { qemu_set_info_str(&s->nc, "helper=3D%s", tap->helper); } else { qemu_set_info_str(&s->nc, "ifname=3D%s,script=3D%s,downscript=3D%s= ", ifname, @@ -812,21 +812,21 @@ int net_init_tap(const Netdev *netdev, const char *na= me, assert(netdev->type =3D=3D NET_CLIENT_DRIVER_TAP); tap =3D &netdev->u.tap; queues =3D tap->has_queues ? tap->queues : 1; - vhostfdname =3D tap->has_vhostfd ? tap->vhostfd : NULL; - script =3D tap->has_script ? tap->script : NULL; - downscript =3D tap->has_downscript ? tap->downscript : NULL; + vhostfdname =3D tap->vhostfd; + script =3D tap->script; + downscript =3D tap->downscript; =20 /* QEMU hubs do not support multiqueue tap, in this case peer is set. * For -netdev, peer is always NULL. */ - if (peer && (tap->has_queues || tap->has_fds || tap->has_vhostfds)) { + if (peer && (tap->has_queues || tap->fds || tap->vhostfds)) { error_setg(errp, "Multiqueue tap cannot be used with hubs"); return -1; } =20 - if (tap->has_fd) { - if (tap->has_ifname || tap->has_script || tap->has_downscript || - tap->has_vnet_hdr || tap->has_helper || tap->has_queues || - tap->has_fds || tap->has_vhostfds) { + if (tap->fd) { + if (tap->ifname || tap->script || tap->downscript || + tap->has_vnet_hdr || tap->helper || tap->has_queues || + tap->fds || tap->vhostfds) { error_setg(errp, "ifname=3D, script=3D, downscript=3D, vnet_hd= r=3D, " "helper=3D, queues=3D, fds=3D, and vhostfds=3D " "are invalid with fd=3D"); @@ -859,14 +859,14 @@ int net_init_tap(const Netdev *netdev, const char *na= me, close(fd); return -1; } - } else if (tap->has_fds) { + } else if (tap->fds) { char **fds; char **vhost_fds; int nfds =3D 0, nvhosts =3D 0; =20 - if (tap->has_ifname || tap->has_script || tap->has_downscript || - tap->has_vnet_hdr || tap->has_helper || tap->has_queues || - tap->has_vhostfd) { + if (tap->ifname || tap->script || tap->downscript || + tap->has_vnet_hdr || tap->helper || tap->has_queues || + tap->vhostfd) { error_setg(errp, "ifname=3D, script=3D, downscript=3D, vnet_hd= r=3D, " "helper=3D, queues=3D, and vhostfd=3D " "are invalid with fds=3D"); @@ -877,7 +877,7 @@ int net_init_tap(const Netdev *netdev, const char *name, vhost_fds =3D g_new0(char *, MAX_TAP_QUEUES); =20 nfds =3D get_fds(tap->fds, fds, MAX_TAP_QUEUES); - if (tap->has_vhostfds) { + if (tap->vhostfds) { nvhosts =3D get_fds(tap->vhostfds, vhost_fds, MAX_TAP_QUEUES); if (nfds !=3D nvhosts) { error_setg(errp, "The number of fds passed does not match " @@ -916,7 +916,7 @@ int net_init_tap(const Netdev *netdev, const char *name, =20 net_init_tap_one(tap, peer, "tap", name, ifname, script, downscript, - tap->has_vhostfds ? vhost_fds[i] : NULL, + tap->vhostfds ? vhost_fds[i] : NULL, vnet_hdr, fd, &err); if (err) { error_propagate(errp, err); @@ -935,17 +935,16 @@ free_fail: g_free(fds); g_free(vhost_fds); return ret; - } else if (tap->has_helper) { - if (tap->has_ifname || tap->has_script || tap->has_downscript || - tap->has_vnet_hdr || tap->has_queues || tap->has_vhostfds) { + } else if (tap->helper) { + if (tap->ifname || tap->script || tap->downscript || + tap->has_vnet_hdr || tap->has_queues || tap->vhostfds) { error_setg(errp, "ifname=3D, script=3D, downscript=3D, vnet_hd= r=3D, " "queues=3D, and vhostfds=3D are invalid with helper= =3D"); return -1; } =20 fd =3D net_bridge_run_helper(tap->helper, - tap->has_br ? - tap->br : DEFAULT_BRIDGE_INTERFACE, + tap->br ?: DEFAULT_BRIDGE_INTERFACE, errp); if (fd =3D=3D -1) { return -1; @@ -972,7 +971,7 @@ free_fail: } else { g_autofree char *default_script =3D NULL; g_autofree char *default_downscript =3D NULL; - if (tap->has_vhostfds) { + if (tap->vhostfds) { error_setg(errp, "vhostfds=3D is invalid if fds=3D wasn't spec= ified"); return -1; } @@ -985,7 +984,7 @@ free_fail: get_relocated_path(DEFAULT_NETWORK_DOWN_S= CRIPT); } =20 - if (tap->has_ifname) { + if (tap->ifname) { pstrcpy(ifname, sizeof ifname, tap->ifname); } else { ifname[0] =3D '\0'; @@ -998,7 +997,7 @@ free_fail: return -1; } =20 - if (queues > 1 && i =3D=3D 0 && !tap->has_ifname) { + if (queues > 1 && i =3D=3D 0 && !tap->ifname) { if (tap_fd_get_ifname(fd, ifname)) { error_setg(errp, "Fail to get ifname"); close(fd); diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 2b4b85d8f8..260e474863 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -635,19 +635,19 @@ int net_init_vhost_vdpa(const Netdev *netdev, const c= har *name, =20 assert(netdev->type =3D=3D NET_CLIENT_DRIVER_VHOST_VDPA); opts =3D &netdev->u.vhost_vdpa; - if (!opts->has_vhostdev && !opts->has_vhostfd) { + if (!opts->vhostdev && !opts->vhostfd) { error_setg(errp, "vhost-vdpa: neither vhostdev=3D nor vhostfd=3D was spe= cified"); return -1; } =20 - if (opts->has_vhostdev && opts->has_vhostfd) { + if (opts->vhostdev && opts->vhostfd) { error_setg(errp, "vhost-vdpa: vhostdev=3D and vhostfd=3D are mutually ex= clusive"); return -1; } =20 - if (opts->has_vhostdev) { + if (opts->vhostdev) { vdpa_device_fd =3D qemu_open(opts->vhostdev, O_RDWR, errp); if (vdpa_device_fd =3D=3D -1) { return -errno; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index a34e25fdd7..930dffd780 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/net.json', 'qapi/pci.json', 'qapi/qdev.json', 'qapi/qom.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006011; cv=none; d=zohomail.com; s=zohoarc; b=SrOlNWmgevrJuZemlfVHMp47rMGdQQWPE99kGSPjG3w5jjePNB+aSFq0bSN4eVOKGcC5cHVFS1UfON8UlsGQDrco6nURIHhN7k0rH3gMKKPqwNZXJEU9Las/n0EI/sK2dKX8gTEQqePCULhGGUoJMWkmoQNPksmtctAY1uNXS6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006011; 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=uhh7gPrjEJrFMJbhRY5+1ha+REazY+zDAFyYt8Ww3UI=; b=mx+I09n5CaEfKRdIIlwCip8glfY2Bqy53CGgXkHYWF7D/HMz52YpArGfQ0T7pj/d6XbL3aQ7wIbZjXaLjV73b5NOwww6j6PdHXE/jhKHv8bINYIG+yR1p2NQUaK3weZV+maMB8jAOyhs6cj13Zpa8s4CYYtB2KVUh7jIpQ7mmZc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006011297198.17666336131947; Wed, 14 Dec 2022 00:20:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUU-0003ZJ-7a; Wed, 14 Dec 2022 02:47:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUN-0003TV-Sy for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003fI-Sx for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-620-J8S_hjpTOd2JAnTuoSnNiA-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A27FD1C02D3F; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 76E7D14171C1; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 7DA6221E61AF; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=uhh7gPrjEJrFMJbhRY5+1ha+REazY+zDAFyYt8Ww3UI=; b=WIkZVlLdRmNCNW6rMx8dBkBhdrMytLU9jOFClxZHyKGCDTVtUc2H8ipZeU023Nzo9TrPw7 JXKVWDtZW2lDj6o+ZsStns2v1WECkCeMjL56wZUrd+J2Z6UANOUgEJOhES4qCj2Ld6/K4m oSEawDqroy+JH8+pigvA2Up2SRrTnfo= X-MC-Unique: J8S_hjpTOd2JAnTuoSnNiA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: "Michael S . Tsirkin" , Marcel Apfelbaum , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 19/30] qapi pci: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:10 +0100 Message-Id: <20221214074721.731441-22-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006012014100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/pci.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Michael S. Tsirkin Cc: Marcel Apfelbaum Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-20-armbru@redhat.com> --- hw/pci/pci.c | 2 -- monitor/hmp-cmds.c | 6 +++--- scripts/qapi/schema.py | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 2f450f6a72..e6292d8060 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -1879,7 +1879,6 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice = *dev, PCIBus *bus, info->class_info->q_class =3D class; desc =3D get_class_desc(class); if (desc->desc) { - info->class_info->has_desc =3D true; info->class_info->desc =3D g_strdup(desc->desc); } =20 @@ -1897,7 +1896,6 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice = *dev, PCIBus *bus, =20 type =3D dev->config[PCI_HEADER_TYPE] & ~PCI_HEADER_TYPE_MULTI_FUNCTIO= N; if (type =3D=3D PCI_HEADER_TYPE_BRIDGE) { - info->has_pci_bridge =3D true; info->pci_bridge =3D qmp_query_pci_bridge(dev, bus, bus_num); } else if (type =3D=3D PCI_HEADER_TYPE_NORMAL) { info->id->has_subsystem =3D info->id->has_subsystem_vendor =3D tru= e; diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 45d78ba257..ae5ebe765a 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -709,7 +709,7 @@ static void hmp_info_pci_device(Monitor *mon, const Pci= DeviceInfo *dev) dev->slot, dev->function); monitor_printf(mon, " "); =20 - if (dev->class_info->has_desc) { + if (dev->class_info->desc) { monitor_puts(mon, dev->class_info->desc); } else { monitor_printf(mon, "Class %04" PRId64, dev->class_info->q_class); @@ -727,7 +727,7 @@ static void hmp_info_pci_device(Monitor *mon, const Pci= DeviceInfo *dev) dev->irq, (char)('A' + dev->irq_pin - 1)); } =20 - if (dev->has_pci_bridge) { + if (dev->pci_bridge) { monitor_printf(mon, " BUS %" PRId64 ".\n", dev->pci_bridge->bus->number); monitor_printf(mon, " secondary bus %" PRId64 ".\n", @@ -773,7 +773,7 @@ static void hmp_info_pci_device(Monitor *mon, const Pci= DeviceInfo *dev) =20 monitor_printf(mon, " id \"%s\"\n", dev->qdev_id); =20 - if (dev->has_pci_bridge) { + if (dev->pci_bridge) { if (dev->pci_bridge->has_devices) { PciDeviceInfoList *cdev; for (cdev =3D dev->pci_bridge->devices; cdev; cdev =3D cdev->n= ext) { diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 930dffd780..388b90812b 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/pci.json', 'qapi/qdev.json', 'qapi/qom.json', 'qapi/replay.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004184; cv=none; d=zohomail.com; s=zohoarc; b=U8mmQhnLdsIyQWMIcrFWGEIqUWwZf7BF41shEx9dLoJFH2pTIKirY2GAlegfHJ5j8dGoUjOzDtVclw7xuvY+d8IOI+Ni5v/YAZKfbOnDEcyKQExE00usiW0LynljCeFRxIHK1/YELZe9fVSZSL0MZI5MpYK4p5IcdtYS00pF3G8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004184; 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=IXhnhemVJN3t9x8Uhzvv6nrEOuJGZxCNfdBOFD5vk/o=; b=BptSL9cjR6RlxgIb3BvtDQRf2viPTSukw6qbCp7+eDdkw50qSEL/FUAdNICXRZX7c9dOcp3yF4xLOi8+la0FoKBgJrGOzsoM0sN9Z92ddrhoNeqnl+w7rRGGmJ7NivG+hafsdjqAGy5e5sO9jIKO6vtKjzjN6b6ajT3XhL+hSMg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004184661291.9896868575315; Tue, 13 Dec 2022 23:49:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUd-0003b4-2c; Wed, 14 Dec 2022 02:47:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUR-0003XX-4X for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:43 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003h1-JE for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:42 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-437-8fD1oB3BPqW5tK6QBEIPvA-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C4A818030CC; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7EF8CC15BAD; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 8022C21E61B0; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004056; h=from:from: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; bh=IXhnhemVJN3t9x8Uhzvv6nrEOuJGZxCNfdBOFD5vk/o=; b=FBzsg+PWoxqWwPLimp1RB8mD8DoHXcJF4HS1BJNo2sMVEMNqlwb1TaRBoBuWAI0PVT464k 7vSQBfB6NDCXp+diz5u0dPlide9jrxcAE0hQHzJJ0P3mSoWK5qClUhtWDUKBpFaigK2T5B g/MC/tl+L80O8cLjP//lqh+ZxxLoEHA= X-MC-Unique: 8fD1oB3BPqW5tK6QBEIPvA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Eduardo Habkost , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 20/30] qapi qdev qom: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:11 +0100 Message-Id: <20221214074721.731441-23-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004186588100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/qdev.json and qapi/qom.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Paolo Bonzini Cc: Daniel P. Berrang=C3=A9 Cc: Eduardo Habkost Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-21-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/acpi/memory_hotplug.c | 2 +- hw/core/qdev.c | 2 +- hw/ppc/spapr.c | 2 +- hw/ppc/spapr_drc.c | 3 +-- qom/qom-qmp-cmds.c | 7 +------ stubs/qdev.c | 6 ++---- tests/qtest/fuzz/qos_fuzz.c | 3 +-- scripts/qapi/schema.py | 2 -- 8 files changed, 8 insertions(+), 19 deletions(-) diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c index a7476330a8..d926f4f77d 100644 --- a/hw/acpi/memory_hotplug.c +++ b/hw/acpi/memory_hotplug.c @@ -185,7 +185,7 @@ static void acpi_memory_hotplug_write(void *opaque, hwa= ddr addr, uint64_t data, */ qapi_event_send_mem_unplug_error(dev->id ? : "", error_get_pretty(local_er= r)); - qapi_event_send_device_unplug_guest_error(!!dev->id, dev->= id, + qapi_event_send_device_unplug_guest_error(dev->id, dev->canonical_p= ath); error_free(local_err); break; diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 0145501904..4a23ee64ac 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -757,7 +757,7 @@ static void device_finalize(Object *obj) if (dev->pending_deleted_event) { g_assert(dev->canonical_path); =20 - qapi_event_send_device_deleted(!!dev->id, dev->id, dev->canonical_= path); + qapi_event_send_device_deleted(dev->id, dev->canonical_path); g_free(dev->canonical_path); dev->canonical_path =3D NULL; } diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 66b414d2e9..dc850032ae 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3728,7 +3728,7 @@ void spapr_memory_unplug_rollback(SpaprMachineState *= spapr, DeviceState *dev) =20 qapi_event_send_mem_unplug_error(dev->id ? : "", qapi_error); =20 - qapi_event_send_device_unplug_guest_error(!!dev->id, dev->id, + qapi_event_send_device_unplug_guest_error(dev->id, dev->canonical_path); } =20 diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 76bc5d42a0..4923435a8b 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -175,8 +175,7 @@ static uint32_t drc_unisolate_logical(SpaprDrc *drc) "for device %s", drc->dev->id); } =20 - qapi_event_send_device_unplug_guest_error(!!drc->dev->id, - drc->dev->id, + qapi_event_send_device_unplug_guest_error(drc->dev->id, drc->dev->canonical_= path); } =20 diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index 2e63a4c184..7c087299de 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -99,15 +99,13 @@ static void qom_list_types_tramp(ObjectClass *klass, vo= id *data) info->name =3D g_strdup(object_class_get_name(klass)); info->has_abstract =3D info->abstract =3D object_class_is_abstract(kla= ss); if (parent) { - info->has_parent =3D true; info->parent =3D g_strdup(object_class_get_name(parent)); } =20 QAPI_LIST_PREPEND(*pret, info); } =20 -ObjectTypeInfoList *qmp_qom_list_types(bool has_implements, - const char *implements, +ObjectTypeInfoList *qmp_qom_list_types(const char *implements, bool has_abstract, bool abstract, Error **errp) @@ -168,10 +166,8 @@ ObjectPropertyInfoList *qmp_device_list_properties(con= st char *typename, info =3D g_new0(ObjectPropertyInfo, 1); info->name =3D g_strdup(prop->name); info->type =3D g_strdup(prop->type); - info->has_description =3D !!prop->description; info->description =3D g_strdup(prop->description); info->default_value =3D qobject_ref(prop->defval); - info->has_default_value =3D !!info->default_value; =20 QAPI_LIST_PREPEND(prop_list, info); } @@ -215,7 +211,6 @@ ObjectPropertyInfoList *qmp_qom_list_properties(const c= har *typename, info =3D g_malloc0(sizeof(*info)); info->name =3D g_strdup(prop->name); info->type =3D g_strdup(prop->type); - info->has_description =3D !!prop->description; info->description =3D g_strdup(prop->description); =20 QAPI_LIST_PREPEND(prop_list, info); diff --git a/stubs/qdev.c b/stubs/qdev.c index 187659f707..6869f6f90a 100644 --- a/stubs/qdev.c +++ b/stubs/qdev.c @@ -15,15 +15,13 @@ #include "qemu/osdep.h" #include "qapi/qapi-events-qdev.h" =20 -void qapi_event_send_device_deleted(bool has_device, - const char *device, +void qapi_event_send_device_deleted(const char *device, const char *path) { /* Nothing to do. */ } =20 -void qapi_event_send_device_unplug_guest_error(bool has_device, - const char *device, +void qapi_event_send_device_unplug_guest_error(const char *device, const char *path) { /* Nothing to do. */ diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c index 3a3d9c16dd..e403d373a0 100644 --- a/tests/qtest/fuzz/qos_fuzz.c +++ b/tests/qtest/fuzz/qos_fuzz.c @@ -50,8 +50,7 @@ static void qos_set_machines_devices_available(void) machines_apply_to_node(mach_info); qapi_free_MachineInfoList(mach_info); =20 - type_info =3D qmp_qom_list_types(true, "device", true, true, - &error_abort); + type_info =3D qmp_qom_list_types("device", true, true, &error_abort); types_apply_to_node(type_info); qapi_free_ObjectTypeInfoList(type_info); } diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 388b90812b..c74c26bda3 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,8 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/qdev.json', - 'qapi/qom.json', 'qapi/replay.json', 'qapi/rocker.json', 'qapi/run-state.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005517; cv=none; d=zohomail.com; s=zohoarc; b=YWyQvHcWHicLuvBuwNVMbWSjuqO6aW57I3bjeSsTjPmI41e6lXubfQuLWM8XKN4Inf4gUFjKH6qqE2yciZH559e/fEGFanbqyicvzThAKH+Ya/hK6XnhVCzLtoussmkOFeFsHLg9Ab2KlWs5cLIHgzSyybQ7SXR7hbP+TbyEIK4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005517; 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=6Zs/EQX8YqFQi3IyocXncQtW7sA2qAo9QiMM+nTTISk=; b=SjhW7PIrsF7eAQwhNjLpJrwajMWq1+FrNeSKPazEbAChNTMDGfxzgcMH7itNsoSbtTa5kXRfJJc2V9y/Fg4aR8ctu72/AI2HvMwwGKFLh4/ElJIfbNhMHiGYWUcUTCcwEG3R3YnQzH9PxNmJY3y/DF9AFCunepA8LXsmh/akFkA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005517463218.94265561085388; Wed, 14 Dec 2022 00:11:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUd-0003b5-28; Wed, 14 Dec 2022 02:47:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUP-0003W7-Kp for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003ga-Dx for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-527-ohWoemMzO6SbThsC3KIxSw-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9DC291C02D3B; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 76DFE14171BE; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 827E921E61B4; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=6Zs/EQX8YqFQi3IyocXncQtW7sA2qAo9QiMM+nTTISk=; b=AVTVbIPqgoBwd6xpmjcDIpHEV6JEPZiHsqqdOEDV6PncY9LVrPnbkrxFBhRZdn4PeP3vm+ dj+6kDJkvkWXvlS9oGnLCbAIXIcraylyGtryAflgwu/D5W//gCFAy01xUbGT6yaQo0/Dhv GNrLWHOC8fFjju2z2SrRkkLX0BQMAEE= X-MC-Unique: ohWoemMzO6SbThsC3KIxSw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Pavel Dovgalyuk , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 21/30] qapi replay: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:12 +0100 Message-Id: <20221214074721.731441-24-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005518433100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/replay.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Pavel Dovgalyuk Cc: Paolo Bonzini Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-22-armbru@redhat.com> --- replay/replay-debugging.c | 1 - scripts/qapi/schema.py | 1 - 2 files changed, 2 deletions(-) diff --git a/replay/replay-debugging.c b/replay/replay-debugging.c index 1cde50e9f3..3e60549a4a 100644 --- a/replay/replay-debugging.c +++ b/replay/replay-debugging.c @@ -50,7 +50,6 @@ ReplayInfo *qmp_query_replay(Error **errp) retval->mode =3D replay_mode; if (replay_get_filename()) { retval->filename =3D g_strdup(replay_get_filename()); - retval->has_filename =3D true; } retval->icount =3D replay_get_current_icount(); return retval; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index c74c26bda3..2b6644f1c3 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/replay.json', 'qapi/rocker.json', 'qapi/run-state.json', 'qapi/stats.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007790; cv=none; d=zohomail.com; s=zohoarc; b=UEBoEV8/c+1aLBsroHN2PuvIDhU6TY/6eq5QJHIVg/woh+j2bDThjfaXXDE7mzy79e3YbuohjWoeRuZQQLIpcLWIHX79iiPgZr5QacEXEVXQfLmCsP9Q+nbGShPkn0o0Fyk1wG0OKMMLxIqD8BuOxY64jPCgIDl7gWtfn8nWb/Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007790; 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=6icPNvg6Lh6O2W3eKU3QL0p5PLssdBFWDF4IqVi9ZHk=; b=HlWqgrSKCeaFpqPiyTOTeFMaW+EPz+OfMCYS3xnDop4hWJ6cywMIVZg8LPdR9cIQ9nrV68f8oana4YaU2tItZPICkckHP6SYJQd9OoQnJJdjD2DG8QjaopIF+e38dIq+rGFlGHpM7z7EpJvmqQE3QWGKx+dfeXQ2cBh70Zq62cY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007790624798.1595690882912; Wed, 14 Dec 2022 00:49:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUR-0003XV-5A; Wed, 14 Dec 2022 02:47:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUM-0003SW-Jb for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:38 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003ez-Na for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:38 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-439-C6A2iBu1OcKVldAa_LUNbQ-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F23638030CF; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 771F214171C2; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 84E8121E61BE; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=6icPNvg6Lh6O2W3eKU3QL0p5PLssdBFWDF4IqVi9ZHk=; b=Rd4aO+ZM/syTPtYC3AFC+S45ewlcQ5MQaCo54EjIYFQm8saAtuDhY370np0oZ6VRgcdMTR 1DO71LBoRYnCkHSJGxfBVglFX4q9hTGl3C0vGXiXwuLwGwJXtLmaMK/TnhQsUkdZ68SxoV cCep5Gr9JfeK24dMoQivVhHq4bhjBMg= X-MC-Unique: C6A2iBu1OcKVldAa_LUNbQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Jiri Pirko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 22/30] qapi rocker: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:13 +0100 Message-Id: <20221214074721.731441-25-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007792496100007 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/rocker.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Jiri Pirko Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-23-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/net/rocker/rocker_of_dpa.c | 13 ++----------- monitor/hmp-cmds.c | 22 +++++++++++----------- scripts/qapi/schema.py | 1 - 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/hw/net/rocker/rocker_of_dpa.c b/hw/net/rocker/rocker_of_dpa.c index b3b8c5bb6d..dfe4754469 100644 --- a/hw/net/rocker/rocker_of_dpa.c +++ b/hw/net/rocker/rocker_of_dpa.c @@ -2348,23 +2348,19 @@ static void of_dpa_flow_fill(void *cookie, void *va= lue, void *user_data) =20 if (memcmp(key->eth.src.a, zero_mac.a, ETH_ALEN) || memcmp(mask->eth.src.a, zero_mac.a, ETH_ALEN)) { - nkey->has_eth_src =3D true; nkey->eth_src =3D qemu_mac_strdup_printf(key->eth.src.a); } =20 - if (nkey->has_eth_src && memcmp(mask->eth.src.a, ff_mac.a, ETH_ALEN)) { - nmask->has_eth_src =3D true; + if (nkey->eth_src && memcmp(mask->eth.src.a, ff_mac.a, ETH_ALEN)) { nmask->eth_src =3D qemu_mac_strdup_printf(mask->eth.src.a); } =20 if (memcmp(key->eth.dst.a, zero_mac.a, ETH_ALEN) || memcmp(mask->eth.dst.a, zero_mac.a, ETH_ALEN)) { - nkey->has_eth_dst =3D true; nkey->eth_dst =3D qemu_mac_strdup_printf(key->eth.dst.a); } =20 - if (nkey->has_eth_dst && memcmp(mask->eth.dst.a, ff_mac.a, ETH_ALEN)) { - nmask->has_eth_dst =3D true; + if (nkey->eth_dst && memcmp(mask->eth.dst.a, ff_mac.a, ETH_ALEN)) { nmask->eth_dst =3D qemu_mac_strdup_printf(mask->eth.dst.a); } =20 @@ -2400,7 +2396,6 @@ static void of_dpa_flow_fill(void *cookie, void *valu= e, void *user_data) if (key->ipv4.addr.dst || mask->ipv4.addr.dst) { char *dst =3D inet_ntoa(*(struct in_addr *)&key->ipv4.addr= .dst); int dst_len =3D of_dpa_mask2prefix(mask->ipv4.addr.dst); - nkey->has_ip_dst =3D true; nkey->ip_dst =3D g_strdup_printf("%s/%d", dst, dst_len); } break; @@ -2501,12 +2496,10 @@ static void of_dpa_group_fill(void *key, void *valu= e, void *user_data) ngroup->set_vlan_id =3D ntohs(group->l2_rewrite.vlan_id); } if (memcmp(group->l2_rewrite.src_mac.a, zero_mac.a, ETH_ALEN)) { - ngroup->has_set_eth_src =3D true; ngroup->set_eth_src =3D qemu_mac_strdup_printf(group->l2_rewrite.src_mac.a); } if (memcmp(group->l2_rewrite.dst_mac.a, zero_mac.a, ETH_ALEN)) { - ngroup->has_set_eth_dst =3D true; ngroup->set_eth_dst =3D qemu_mac_strdup_printf(group->l2_rewrite.dst_mac.a); } @@ -2532,12 +2525,10 @@ static void of_dpa_group_fill(void *key, void *valu= e, void *user_data) ngroup->set_vlan_id =3D ntohs(group->l3_unicast.vlan_id); } if (memcmp(group->l3_unicast.src_mac.a, zero_mac.a, ETH_ALEN)) { - ngroup->has_set_eth_src =3D true; ngroup->set_eth_src =3D qemu_mac_strdup_printf(group->l3_unicast.src_mac.a); } if (memcmp(group->l3_unicast.dst_mac.a, zero_mac.a, ETH_ALEN)) { - ngroup->has_set_eth_dst =3D true; ngroup->set_eth_dst =3D qemu_mac_strdup_printf(group->l3_unicast.dst_mac.a); } diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index ae5ebe765a..a41f94a34a 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -2010,35 +2010,35 @@ void hmp_rocker_of_dpa_flows(Monitor *mon, const QD= ict *qdict) } } =20 - if (key->has_eth_src) { + if (key->eth_src) { if ((strcmp(key->eth_src, "01:00:00:00:00:00") =3D=3D 0) && - (mask->has_eth_src) && + mask->eth_src && (strcmp(mask->eth_src, "01:00:00:00:00:00") =3D=3D 0)) { monitor_printf(mon, " src "); } else if ((strcmp(key->eth_src, "00:00:00:00:00:00") =3D=3D 0= ) && - (mask->has_eth_src) && + mask->eth_src && (strcmp(mask->eth_src, "01:00:00:00:00:00") =3D=3D 0)) { monitor_printf(mon, " src "); } else { monitor_printf(mon, " src %s", key->eth_src); - if (mask->has_eth_src) { + if (mask->eth_src) { monitor_printf(mon, "(%s)", mask->eth_src); } } } =20 - if (key->has_eth_dst) { + if (key->eth_dst) { if ((strcmp(key->eth_dst, "01:00:00:00:00:00") =3D=3D 0) && - (mask->has_eth_dst) && + mask->eth_dst && (strcmp(mask->eth_dst, "01:00:00:00:00:00") =3D=3D 0)) { monitor_printf(mon, " dst "); } else if ((strcmp(key->eth_dst, "00:00:00:00:00:00") =3D=3D 0= ) && - (mask->has_eth_dst) && + mask->eth_dst && (strcmp(mask->eth_dst, "01:00:00:00:00:00") =3D=3D 0)) { monitor_printf(mon, " dst "); } else { monitor_printf(mon, " dst %s", key->eth_dst); - if (mask->has_eth_dst) { + if (mask->eth_dst) { monitor_printf(mon, "(%s)", mask->eth_dst); } } @@ -2058,7 +2058,7 @@ void hmp_rocker_of_dpa_flows(Monitor *mon, const QDic= t *qdict) } } =20 - if (key->has_ip_dst) { + if (key->ip_dst) { monitor_printf(mon, " dst %s", key->ip_dst); } =20 @@ -2137,7 +2137,7 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const QDi= ct *qdict) group->set_vlan_id & VLAN_VID_MASK); } =20 - if (group->has_set_eth_src) { + if (group->set_eth_src) { if (!set) { set =3D true; monitor_printf(mon, " set"); @@ -2145,7 +2145,7 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const QDi= ct *qdict) monitor_printf(mon, " src %s", group->set_eth_src); } =20 - if (group->has_set_eth_dst) { + if (group->set_eth_dst) { if (!set) { monitor_printf(mon, " set"); } diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 2b6644f1c3..1b3195bc87 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/rocker.json', 'qapi/run-state.json', 'qapi/stats.json', 'qapi/tpm.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005495; cv=none; d=zohomail.com; s=zohoarc; b=K/PO3HaslznifJjthphEA7RufhL9xBsIS8sK71g7Nxpo2qzMDlaH8zniqEAB/mDGw0ei25GNIatcH+jlNZ+1RlzGdPPv5obVdbEJWfnWuxAOIPGO7LsK2ZvmVjXRgTMixh+Ii858sYi+RoWfKU4sCCy4qAuVaT7XJ90krMv2IZw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005495; 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=j7/IgEQgH174r0eepRmeSiDMMpDJmclgd8GirNkaJiE=; b=SehZLiwIYp+NLBpoQK08A7tzKsIIzzUtLlATWaxuDBt4q47qJ0Bv8dWirZNVLJHxlqjiCfNr41A7AdOe+rfRI5r9Ox+a8Hl6Hepmsvw0IkubS8GA4942HfaZPaWhZWvkzUsKobvmFqRJnArYDANrbSqKONYTsH+gTJtupvsCRxM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005495854981.5810528200022; Wed, 14 Dec 2022 00:11:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUd-0003bJ-8w; Wed, 14 Dec 2022 02:47:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003Tg-50 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003gB-0r for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:39 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-35-I73bqVBqOBa8ZcJl4yu6wQ-1; Wed, 14 Dec 2022 02:47:31 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9CD2F101A521; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 776027AE5; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 8729D21E60C9; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=j7/IgEQgH174r0eepRmeSiDMMpDJmclgd8GirNkaJiE=; b=Q7sGJNwPR91mej7nVsk99PNrWHB3JtF5i7D3Eyp3KJE9CuOk3dKMTd7XtxmSRRmYmElXnd ydWBzGoulXMzTU4yYjwWZZLE5xrWl0maM+v2upNEQFu/AWAti2vkdWZplx4pQlhV8CGIhf 6S46khbidanZlL+gaKloYYhQYicwJCE= X-MC-Unique: I73bqVBqOBa8ZcJl4yu6wQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 23/30] qapi run-state: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:14 +0100 Message-Id: <20221214074721.731441-26-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005498337100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/run-state.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Drop a superfluous conditional around qapi_free_GuestPanicInformation() while there. Cc: Paolo Bonzini Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-24-armbru@redhat.com> --- softmmu/runstate.c | 18 +++++------------- scripts/qapi/schema.py | 1 - 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/softmmu/runstate.c b/softmmu/runstate.c index 3dd83d5e5d..cab9f6fc07 100644 --- a/softmmu/runstate.c +++ b/softmmu/runstate.c @@ -484,18 +484,15 @@ void qemu_system_guest_panicked(GuestPanicInformation= *info) */ if (panic_action =3D=3D PANIC_ACTION_PAUSE || (panic_action =3D=3D PANIC_ACTION_SHUTDOWN && shutdown_action = =3D=3D SHUTDOWN_ACTION_PAUSE)) { - qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, - !!info, info); + qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, info); vm_stop(RUN_STATE_GUEST_PANICKED); } else if (panic_action =3D=3D PANIC_ACTION_SHUTDOWN || panic_action =3D=3D PANIC_ACTION_EXIT_FAILURE) { - qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_POWEROFF, - !!info, info); + qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_POWEROFF, info); vm_stop(RUN_STATE_GUEST_PANICKED); qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_PANIC); } else { - qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_RUN, - !!info, info); + qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_RUN, info); } =20 if (info) { @@ -522,13 +519,8 @@ void qemu_system_guest_panicked(GuestPanicInformation = *info) void qemu_system_guest_crashloaded(GuestPanicInformation *info) { qemu_log_mask(LOG_GUEST_ERROR, "Guest crash loaded"); - - qapi_event_send_guest_crashloaded(GUEST_PANIC_ACTION_RUN, - !!info, info); - - if (info) { - qapi_free_GuestPanicInformation(info); - } + qapi_event_send_guest_crashloaded(GUEST_PANIC_ACTION_RUN, info); + qapi_free_GuestPanicInformation(info); } =20 void qemu_system_reset_request(ShutdownCause reason) diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 1b3195bc87..f405ab7f49 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/run-state.json', 'qapi/stats.json', 'qapi/tpm.json', 'qapi/transaction.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007885; cv=none; d=zohomail.com; s=zohoarc; b=imcncWaL9Pilu2SeLpAPrW203UcFG8xNfVDwggHNzkaQM54NIYqYdhppvrUH2q/k73rZ3CdA0Kekfo1FVl5SsUtLoi9nfiicxkkZNN64HIiYGo+DC22JqqWJcLYNSnz6vuODvBMLSpRWBC1apMJLlvjM+yQLQNVpiQRCTKkPdEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007885; 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=qzt8zYcWVMWnWAwR86hnorHQh+O9D2EK2Gu1Z9Syfxo=; b=FnO7K7GOCDRbGIRys7M/enGkPDBdiyj+7iHduj5Ki/92snCw/Pxy+wgJ5USvYGTcKTSqms9VIGBQGeu+QBoYOxv1tHBdjka4ptjyqZ9Id2dh3MDvQd4APoMN6cjeJu8IKXiy9qyYTM0QMoBkxGAPgKyM1z1sWH20zLc1BIC0WjE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007885927464.0337805803258; Wed, 14 Dec 2022 00:51:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MXt-00064O-0Y; Wed, 14 Dec 2022 02:51:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MXg-0005xu-73 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:51:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MXe-0004F0-J0 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:51:03 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-620-2WypxWVTNjaa0vIo1qyQAg-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A0588802C1D; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 776B9492C14; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 89C0721E60CA; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004262; h=from:from: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; bh=qzt8zYcWVMWnWAwR86hnorHQh+O9D2EK2Gu1Z9Syfxo=; b=BWI7VCmsINMuibss8ScU4knjVO28PnxmOjyH/2Fb9SNKX0FfM6T3WYeuX2AWTYYIK3SxIQ YTLzX2fH/Y16c9x19nkMLpCSc+wKpPhMZEAw8SVlWRofnAsbzkhicjvStqDFyStK5nNqT5 pmdlrVetJwL0Vgb8UIhrTmyh3RG/qLU= X-MC-Unique: 2WypxWVTNjaa0vIo1qyQAg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Mark Kanda , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 24/30] qapi stats: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:15 +0100 Message-Id: <20221214074721.731441-27-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007887267100005 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/stats.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Mark Kanda Cc: Paolo Bonzini Signed-off-by: Markus Armbruster Reviewed-by: Mark Kanda Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-25-armbru@redhat.com> --- monitor/qmp-cmds.c | 5 +---- scripts/qapi/schema.py | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index f8ab5dd50f..3bf2ae9bb7 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -560,10 +560,7 @@ void add_stats_entry(StatsResultList **stats_results, = StatsProvider provider, StatsResult *entry =3D g_new0(StatsResult, 1); =20 entry->provider =3D provider; - if (qom_path) { - entry->has_qom_path =3D true; - entry->qom_path =3D g_strdup(qom_path); - } + entry->qom_path =3D g_strdup(qom_path); entry->stats =3D stats_list; =20 QAPI_LIST_PREPEND(*stats_results, entry); diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index f405ab7f49..0544037e71 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/stats.json', 'qapi/tpm.json', 'qapi/transaction.json', 'qapi/ui.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671007035; cv=none; d=zohomail.com; s=zohoarc; b=U1WYuBTKG8/OSLjFNffU6435YMLl3R9WyJ7kk1D/Dgxn7TIALE1lReN7ey84FrupbsdCVa5h89Pqzt2NPWavYzhurRWWuUeM8RhmAQQSnoT70INRqAUq9ov1OjnEELmVX9euc7JxQ5f60+YGooojCuloO2VWN9SkX3oQwp8OXA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671007035; 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=NE6Lb95o/KiTNsvo06dImTcJ5V7qV8PLno0lBKydMXg=; b=UWwFuubneDEF5E0f1BJFypOq+uubwVZHH4LmV0RpENONuF3MSa40nihXOJj16iXwxT74oYMP0lrHt6SG8dImF/q0EHSOE0ao7idGnYyCKr7yl2xzrT/LxJLBYQR3cxMpphT/c0+p/WxrWsbqgkJ9nkd31DFMwQWChXyJfcAA0dE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671007035411659.9871777360103; Wed, 14 Dec 2022 00:37:15 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUR-0003Y1-Ru; Wed, 14 Dec 2022 02:47:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003Ui-V6 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003gD-84 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-35-b9ijw-IVNea4nnhO7_4tnQ-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A1BC78030CB; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 767BB40C2064; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 8C25D21E688F; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=NE6Lb95o/KiTNsvo06dImTcJ5V7qV8PLno0lBKydMXg=; b=fPDkkkf3Q/LEVlC3pTxDQ2XhDV6auSNbU/soanjvCxxpmrKLk4DV65v2b680+BEV6+r+i6 RRn1K+ulpiHMjxYWxleg13RpnwoNT7NOGHB7wjoFdVsyAURBrW7SscCUZdAldpmpxWwaU4 ymk1gbWpk/8Jt/PzzMoRTzWFxVdxUzI= X-MC-Unique: b9ijw-IVNea4nnhO7_4tnQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Stefan Berger , Stefan Berger Subject: [PULL 25/30] qapi tpm: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:16 +0100 Message-Id: <20221214074721.731441-28-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671007037468100001 Content-Type: text/plain; charset="utf-8" The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/tpm.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Stefan Berger Signed-off-by: Markus Armbruster Reviewed-by: Stefan Berger Message-Id: <20221104160712.3005652-26-armbru@redhat.com> --- backends/tpm/tpm_passthrough.c | 2 -- monitor/hmp-cmds.c | 8 ++++---- scripts/qapi/schema.py | 1 - 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/backends/tpm/tpm_passthrough.c b/backends/tpm/tpm_passthrough.c index 5a2f74db1b..179697a3a9 100644 --- a/backends/tpm/tpm_passthrough.c +++ b/backends/tpm/tpm_passthrough.c @@ -259,12 +259,10 @@ tpm_passthrough_handle_device_opts(TPMPassthruState *= tpm_pt, QemuOpts *opts) value =3D qemu_opt_get(opts, "cancel-path"); if (value) { tpm_pt->options->cancel_path =3D g_strdup(value); - tpm_pt->options->has_cancel_path =3D true; } =20 value =3D qemu_opt_get(opts, "path"); if (value) { - tpm_pt->options->has_path =3D true; tpm_pt->options->path =3D g_strdup(value); } =20 diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index a41f94a34a..3ada344d77 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -864,10 +864,10 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdict) case TPM_TYPE_PASSTHROUGH: tpo =3D ti->options->u.passthrough.data; monitor_printf(mon, "%s%s%s%s", - tpo->has_path ? ",path=3D" : "", - tpo->has_path ? tpo->path : "", - tpo->has_cancel_path ? ",cancel-path=3D" : "", - tpo->has_cancel_path ? tpo->cancel_path : ""); + tpo->path ? ",path=3D" : "", + tpo->path ?: "", + tpo->cancel_path ? ",cancel-path=3D" : "", + tpo->cancel_path ?: ""); break; case TPM_TYPE_EMULATOR: teo =3D ti->options->u.emulator.data; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 0544037e71..f0726af876 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/tpm.json', 'qapi/transaction.json', 'qapi/ui.json', 'qapi/virtio.json', --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006192; cv=none; d=zohomail.com; s=zohoarc; b=mLMyVSjrhz1IDC+iqh2WqRyL08xCGOeCMGJYfr8jTSZowpbwmAl38DIGo49f17r1lVmzur3xCpE9Mlv48LPM9pf5yA8JMK6HkuvFyAGE9NOaLINmS4nsJyjAFHfHYMjPNabj8gzUDh/tc0hh9Z43SMyJUHQgNzJcBpXV3BGw+Pc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006192; 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=rewWDc0nig3TSt5RMtP2IHBgkB7HPsHvjxTex93NkvM=; b=VzaSNgfaE7ecpcaTgiTOaBnyYeaPB6YIhRHTh8mk5G2cmJS3UOFjlslZYiLNnakTmKmUdiQg/gw2rMaXS5NtpBMjtTfUSFkut5wYyFArvtvtbKsi1fVJIumax3Zvy6Y6avcuMVIRd6FrMudXSJX+m1k6EFSbID3XX2bwEVvRAp0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006192581243.57999632034046; Wed, 14 Dec 2022 00:23:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUV-0003Zh-LR; Wed, 14 Dec 2022 02:47:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUP-0003W3-JT for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUK-0003gS-Dp for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-527-G9P68N-2NZOn5t-oOdJFrA-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A34CA85CCE0; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7724279A1; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 8EA3721E60CB; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=rewWDc0nig3TSt5RMtP2IHBgkB7HPsHvjxTex93NkvM=; b=eqob1MAIwxkF3a1ng3q72TC8FoP9QC/IPij+wccSx2UUYqgFuH72ihgwXzAqdePpiDSJ1U b6k8lGfAZKMywYaLYw9rwX/PcY/vdq4l71PvL0hfFYBB1oC2crp0NnSK+dhloV4qePw6jz 7fJPyA3uunZjiCbr//efOBwjNcdcSDs= X-MC-Unique: G9P68N-2NZOn5t-oOdJFrA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 26/30] qapi transaction: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:17 +0100 Message-Id: <20221214074721.731441-29-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006193376100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/transaction.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. In qmp_transaction(), we can't just drop parameter @has_props, since it's used to track whether @props needs to be freed. Replace it by a local variable. Cc: Kevin Wolf Cc: Hanna Reitz Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-27-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- blockdev.c | 4 ++-- scripts/qapi/schema.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/blockdev.c b/blockdev.c index 59753400e9..75eef8535e 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1048,7 +1048,7 @@ static void blockdev_do_action(TransactionAction *act= ion, Error **errp) =20 list.value =3D action; list.next =3D NULL; - qmp_transaction(&list, false, NULL, errp); + qmp_transaction(&list, NULL, errp); } =20 void qmp_blockdev_snapshot_sync(const char *device, const char *node_name, @@ -2289,11 +2289,11 @@ static TransactionProperties *get_transaction_prope= rties( * Always run under BQL. */ void qmp_transaction(TransactionActionList *dev_list, - bool has_props, struct TransactionProperties *props, Error **errp) { TransactionActionList *dev_entry =3D dev_list; + bool has_props =3D !!props; JobTxn *block_job_txn =3D NULL; BlkActionState *state, *next; Error *local_err =3D NULL; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index f0726af876..3673296ad8 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/transaction.json', 'qapi/ui.json', 'qapi/virtio.json', 'qga/qapi-schema.json'] --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005588; cv=none; d=zohomail.com; s=zohoarc; b=P3o1X5jzR9Hv/Sw8zSnGSKNin+qn81krbbSsP83l2zzp14c13NJl7V6r7txrQVTypI8sxbOu4PDGxjxVO+Jje+SKVB+50DkEsGa8N2zLqKhr6vM8HbxlezwByv8zNLTPlqc/fgxYmu9JsN3MimQKc6vUX8zGo6O2KtEF7tHkD/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005588; 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=n7+wxcMwbuVbXtFpL8rb4U90RrI5xYQHsQD5/oVdEZ0=; b=Kew8fVwSogaRNkuEXLlhHrUM8mAhlE7slbPy7fLby9oCIcJLxybsUfk3plObEsy6N10Ym+5QVXF8mUGgiMWNA5nc6knoA9X+aidFbXX7kapHhGg0Pxda9zR5o4csyf7nkn9E7nKjr5ifG+Oboh4jI6r3mg7uImB2eENnu5bc32E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005588573625.4945297034453; Wed, 14 Dec 2022 00:13:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUs-0003fs-0i; Wed, 14 Dec 2022 02:48:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUQ-0003Wu-MV for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003h3-K1 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:42 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-630-sy3ZyNUtPFOcDTPFOdQm4g-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 23D533C02530 for ; Wed, 14 Dec 2022 07:47:32 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC38A492C14; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9142521E60CC; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004056; h=from:from: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; bh=n7+wxcMwbuVbXtFpL8rb4U90RrI5xYQHsQD5/oVdEZ0=; b=GIK48vxyyvBtgRHQHvux6RmykV+y/LhUHJuLzLGWyVmkM4pzh34Qz/UW+wbd+gr/vI3In4 tpLoHIvB5RYpAsLIAR0LNTTLgO03QHOL1dbGosYn14BaFMREtZ1t027Wsmv7TiaNvAcBFO XlhjeJdiZtjhRxFYzFNL9lLIlkZaYVg= X-MC-Unique: sy3ZyNUtPFOcDTPFOdQm4g-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= Subject: [PULL 27/30] qapi ui: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:18 +0100 Message-Id: <20221214074721.731441-30-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005590339100003 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/ui.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Gerd Hoffmann Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Message-Id: <20221104160712.3005652-28-armbru@redhat.com> --- monitor/hmp-cmds.c | 12 ++++-------- ui/console.c | 4 ++-- ui/input.c | 4 ++-- ui/spice-core.c | 5 ----- ui/vnc.c | 10 ---------- scripts/qapi/schema.py | 1 - 6 files changed, 8 insertions(+), 28 deletions(-) diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 3ada344d77..263b7762ab 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -548,11 +548,9 @@ static void hmp_info_vnc_clients(Monitor *mon, VncClie= ntInfoList *client) =20 hmp_info_VncBasicInfo(mon, qapi_VncClientInfo_base(cinfo), "Client= "); monitor_printf(mon, " x509_dname: %s\n", - cinfo->has_x509_dname ? - cinfo->x509_dname : "none"); + cinfo->x509_dname ?: "none"); monitor_printf(mon, " sasl_username: %s\n", - cinfo->has_sasl_username ? - cinfo->sasl_username : "none"); + cinfo->sasl_username ?: "none"); =20 client =3D client->next; } @@ -597,7 +595,7 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict) hmp_info_vnc_authcrypt(mon, " ", info->auth, info->has_vencrypt ? &info->vencrypt : NULL= ); } - if (info->has_display) { + if (info->display) { monitor_printf(mon, " Display: %s\n", info->display); } info2l =3D info2l->next; @@ -1401,7 +1399,6 @@ void hmp_set_password(Monitor *mon, const QDict *qdic= t) } =20 if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { - opts.u.vnc.has_display =3D !!display; opts.u.vnc.display =3D (char *)display; } =20 @@ -1429,7 +1426,6 @@ void hmp_expire_password(Monitor *mon, const QDict *q= dict) } =20 if (opts.protocol =3D=3D DISPLAY_PROTOCOL_VNC) { - opts.u.vnc.has_display =3D !!display; opts.u.vnc.display =3D (char *)display; } =20 @@ -1714,7 +1710,7 @@ hmp_screendump(Monitor *mon, const QDict *qdict) goto end; } =20 - qmp_screendump(filename, id !=3D NULL, id, id !=3D NULL, head, + qmp_screendump(filename, id, id !=3D NULL, head, input_format !=3D NULL, format, &err); end: hmp_handle_error(mon, err); diff --git a/ui/console.c b/ui/console.c index 3c0d9b061a..9ff9217f9b 100644 --- a/ui/console.c +++ b/ui/console.c @@ -407,7 +407,7 @@ static void graphic_hw_update_bh(void *con) =20 /* Safety: coroutine-only, concurrent-coroutine safe, main thread only */ void coroutine_fn -qmp_screendump(const char *filename, bool has_device, const char *device, +qmp_screendump(const char *filename, const char *device, bool has_head, int64_t head, bool has_format, ImageFormat format, Error **errp) { @@ -416,7 +416,7 @@ qmp_screendump(const char *filename, bool has_device, c= onst char *device, DisplaySurface *surface; int fd; =20 - if (has_device) { + if (device) { con =3D qemu_console_lookup_by_device_name(device, has_head ? head= : 0, errp); if (!con) { diff --git a/ui/input.c b/ui/input.c index e2a90af889..8f4a87d1d7 100644 --- a/ui/input.c +++ b/ui/input.c @@ -124,7 +124,7 @@ qemu_input_find_handler(uint32_t mask, QemuConsole *con) return NULL; } =20 -void qmp_input_send_event(bool has_device, const char *device, +void qmp_input_send_event(const char *device, bool has_head, int64_t head, InputEventList *events, Error **errp) { @@ -133,7 +133,7 @@ void qmp_input_send_event(bool has_device, const char *= device, Error *err =3D NULL; =20 con =3D NULL; - if (has_device) { + if (device) { if (!has_head) { head =3D 0; } diff --git a/ui/spice-core.c b/ui/spice-core.c index c3ac20ad43..72f8f1681c 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -222,7 +222,6 @@ static void channel_event(int event, SpiceChannelEventI= nfo *info) break; case SPICE_CHANNEL_EVENT_INITIALIZED: if (auth) { - server->has_auth =3D true; server->auth =3D g_strdup(auth); } add_channel_info(client, info); @@ -522,13 +521,9 @@ static SpiceInfo *qmp_query_spice_real(Error **errp) port =3D qemu_opt_get_number(opts, "port", 0); tls_port =3D qemu_opt_get_number(opts, "tls-port", 0); =20 - info->has_auth =3D true; info->auth =3D g_strdup(auth); - - info->has_host =3D true; info->host =3D g_strdup(addr ? addr : "*"); =20 - info->has_compiled_version =3D true; major =3D (SPICE_SERVER_VERSION & 0xff0000) >> 16; minor =3D (SPICE_SERVER_VERSION & 0xff00) >> 8; micro =3D SPICE_SERVER_VERSION & 0xff; diff --git a/ui/vnc.c b/ui/vnc.c index 88f55cbf3c..d9eacad759 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -244,7 +244,6 @@ static VncServerInfo *vnc_server_info_get(VncDisplay *v= d) info =3D g_malloc0(sizeof(*info)); vnc_init_basic_info_from_server_addr(vd->listener->sioc[0], qapi_VncServerInfo_base(info), &e= rr); - info->has_auth =3D true; info->auth =3D g_strdup(vnc_auth_name(vd)); if (err) { qapi_free_VncServerInfo(info); @@ -263,13 +262,10 @@ static void vnc_client_cache_auth(VncState *client) if (client->tls) { client->info->x509_dname =3D qcrypto_tls_session_get_peer_name(client->tls); - client->info->has_x509_dname =3D - client->info->x509_dname !=3D NULL; } #ifdef CONFIG_VNC_SASL if (client->sasl.conn && client->sasl.username) { - client->info->has_sasl_username =3D true; client->info->sasl_username =3D g_strdup(client->sasl.username); } #endif @@ -341,11 +337,9 @@ static VncClientInfo *qmp_query_vnc_client(const VncSt= ate *client) =20 if (client->tls) { info->x509_dname =3D qcrypto_tls_session_get_peer_name(client->tls= ); - info->has_x509_dname =3D info->x509_dname !=3D NULL; } #ifdef CONFIG_VNC_SASL if (client->sasl.conn && client->sasl.username) { - info->has_sasl_username =3D true; info->sasl_username =3D g_strdup(client->sasl.username); } #endif @@ -426,11 +420,8 @@ VncInfo *qmp_query_vnc(Error **errp) abort(); } =20 - info->has_host =3D true; - info->has_service =3D true; info->has_family =3D true; =20 - info->has_auth =3D true; info->auth =3D g_strdup(vnc_auth_name(vd)); } =20 @@ -568,7 +559,6 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp) if (vd->dcl.con) { dev =3D DEVICE(object_property_get_link(OBJECT(vd->dcl.con), "device", &error_abort)); - info->has_display =3D true; info->display =3D g_strdup(dev->id); } for (i =3D 0; vd->listener !=3D NULL && i < vd->listener->nsioc; i= ++) { diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 3673296ad8..fd18f8249b 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/ui.json', 'qapi/virtio.json', 'qga/qapi-schema.json'] if self.info and any(self.info.fname.endswith(mod) --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671004675; cv=none; d=zohomail.com; s=zohoarc; b=Tht9OQ4Eh2bzx0rE7kpSTlGbKQyVa+k1Bm5130DtadjtRHFTTyV67kdky54kpYS8FIFSxFNEa/fqr3W9M1fD5cZDJvIm4RV19P6eJUCUv8i51G356BqLNC2gx+S7pSlQz+mj6oXaOSy8F0mtYtII+9urajB7jyVN9FGWJLmG7xo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671004675; 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=r16/niz33SX+1pcXp7WfpLVhQ74c5lUkm/rPQhupUdk=; b=GqGbm8j+x9ZXbXT/GFtftg7YMx+Q39DZ11s7qjyo9GE95EM7oeW8Vfi5VBeSgElFJKyzGL3kUx7z+/vJi1bHsFODc1ASpoP+QH8ubPm7c6dJh4026kqOS30CLcRrtrrQ2WtxszsjvTGaEqpFKP5M/XKIMGrvIAKnWaPbMIdcSfg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671004675793171.2023917892618; Tue, 13 Dec 2022 23:57:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003Ti-Ar; Wed, 14 Dec 2022 02:47:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003Rh-Ua for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:37 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003ev-OT for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:37 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-298-sv3I-SGoN5GtzkCCDmqofQ-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 051B63814593; Wed, 14 Dec 2022 07:47:32 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC1222166B26; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 93BA621E60CD; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004053; h=from:from: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; bh=r16/niz33SX+1pcXp7WfpLVhQ74c5lUkm/rPQhupUdk=; b=DOZvpw/vLyPZ0otJr5u/ZZacaILnHK08IXIZ6RPGUHFVu0+T86cWH1IWOKSvr76c/6jUIQ UTmPE2KFyqZHG40l5lXWMmTSkkZhT63o9S7xqudnZXH4eNstK8twouBYxu8SaXqkm+rXP6 syEOXq3FP62Xu4y9X5E7Bu6MWgfmbJ0= X-MC-Unique: sv3I-SGoN5GtzkCCDmqofQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Laurent Vivier , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 28/30] qapi virtio: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:19 +0100 Message-Id: <20221214074721.731441-31-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671004677141100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/virtio.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Laurent Vivier Cc: Michael S. Tsirkin Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-29-armbru@redhat.com> --- hw/virtio/virtio.c | 1 - monitor/hmp-cmds.c | 4 ++-- scripts/qapi/schema.py | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index eb6347ab5d..2118efbe72 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -4701,7 +4701,6 @@ VirtioStatus *qmp_x_query_virtio_status(const char *p= ath, Error **errp) status->disable_legacy_check =3D vdev->disable_legacy_check; status->bus_name =3D g_strdup(vdev->bus_name); status->use_guest_notifier_mask =3D vdev->use_guest_notifier_mask; - status->has_vhost_dev =3D vdev->vhost_started; =20 if (vdev->vhost_started) { VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(vdev); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 263b7762ab..b847b26041 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -2549,7 +2549,7 @@ void hmp_virtio_status(Monitor *mon, const QDict *qdi= ct) =20 monitor_printf(mon, "%s:\n", path); monitor_printf(mon, " device_name: %s %s\n", - s->name, s->has_vhost_dev ? "(vhost)" : ""); + s->name, s->vhost_dev ? "(vhost)" : ""); monitor_printf(mon, " device_id: %d\n", s->device_id); monitor_printf(mon, " vhost_started: %s\n", s->vhost_started ? "true" : "false"); @@ -2585,7 +2585,7 @@ void hmp_virtio_status(Monitor *mon, const QDict *qdi= ct) monitor_printf(mon, " Backend features:\n"); hmp_virtio_dump_features(mon, s->backend_features); =20 - if (s->has_vhost_dev) { + if (s->vhost_dev) { monitor_printf(mon, " VHost:\n"); monitor_printf(mon, " nvqs: %d\n", s->vhost_dev->nvqs); diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index fd18f8249b..b2df148e01 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks opt_out =3D [ - 'qapi/virtio.json', 'qga/qapi-schema.json'] if self.info and any(self.info.fname.endswith(mod) for mod in opt_out): --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671006965; cv=none; d=zohomail.com; s=zohoarc; b=BtkLhnY/CdGa5f3MRj03MuTjEV7DdCBAQ2GV/h97bjmLQxHq+lhXCBtHxy8nZGLVbnoDLp+sBuZmvJOJQOij8AKlQBmsKGUqSDDsY+PdMWi/RHQh/ECUFGGDiX4vcwt+VQuN0G8uKfHm78FHLoU75WPMDtaeb6bS2JxKwaMPsbw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671006964; 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=JQ6OfOXT0tvYSJkHppv1zqgb4kgtFRp8E2Ii+0dtgwM=; b=bMKdiroxxU0xvu+044In4y7Z8/ZckT+MhuHkcZkzcVuABtytIC+JwJVRv/ecJCmfr/cYrJs1HFzgwOmTP0bJWpigWpMNmor74lJvC3/7ad5yCW88djnK/wDxZx/tSBVNBV/y9Bul/TiN/JhWi6x1mrh0K6ovsUd0hLn+oQyDgy4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671006964991359.43619022762664; Wed, 14 Dec 2022 00:36:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUV-0003Zg-Ht; Wed, 14 Dec 2022 02:47:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUO-0003Tl-AF for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUI-0003fN-QJ for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:40 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-439-ZtxD1GeuPZKc6F6kFo-D_Q-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3EAB78030D0; Wed, 14 Dec 2022 07:47:32 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC31640C2004; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9655B21E60CE; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004054; h=from:from: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; bh=JQ6OfOXT0tvYSJkHppv1zqgb4kgtFRp8E2Ii+0dtgwM=; b=fkDef58KokQ/7/SCEfrdp/0BxCOEO0ApKuUf8DL1Z+g1Rkmsi/ShVL/o8FaFixVYPXtRKi njVpLgBtrpHoarkGSqfIn0KGFOKMfnaV4/lmwxWpN1o7/8D9C7FnpwJISu/lF8Pzkocgtd 9LijnKKFlC54NqFycKYBOsNE95WmBGg= X-MC-Unique: ZtxD1GeuPZKc6F6kFo-D_Q-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: Michael Roth , Konstantin Kostiuk , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 29/30] qapi qga: Elide redundant has_FOO in generated C Date: Wed, 14 Dec 2022 08:47:20 +0100 Message-Id: <20221214074721.731441-32-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671006967016100001 The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qga/qapi-schema.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Michael Roth Cc: Konstantin Kostiuk Signed-off-by: Markus Armbruster Message-Id: <20221104160712.3005652-30-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- qga/commands-posix.c | 32 ++++++++------------------------ qga/commands-win32.c | 40 +++++++--------------------------------- qga/commands.c | 11 ++++------- scripts/qapi/schema.py | 3 +-- 4 files changed, 20 insertions(+), 66 deletions(-) diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 32493d6383..1a28326ec7 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -71,7 +71,7 @@ static void ga_wait_child(pid_t pid, int *status, Error *= *errp) g_assert(rpid =3D=3D pid); } =20 -void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) +void qmp_guest_shutdown(const char *mode, Error **errp) { const char *shutdown_flag; Error *local_err =3D NULL; @@ -93,7 +93,7 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, = Error **errp) #endif =20 slog("guest-shutdown called, mode: %s", mode); - if (!has_mode || strcmp(mode, "powerdown") =3D=3D 0) { + if (!mode || strcmp(mode, "powerdown") =3D=3D 0) { shutdown_flag =3D powerdown_flag; } else if (strcmp(mode, "halt") =3D=3D 0) { shutdown_flag =3D halt_flag; @@ -404,14 +404,14 @@ end: return f; } =20 -int64_t qmp_guest_file_open(const char *path, bool has_mode, const char *m= ode, +int64_t qmp_guest_file_open(const char *path, const char *mode, Error **errp) { FILE *fh; Error *local_err =3D NULL; int64_t handle; =20 - if (!has_mode) { + if (!mode) { mode =3D "r"; } slog("guest-file-open called, filepath: %s, mode: %s", path, mode); @@ -1037,7 +1037,6 @@ static bool build_guest_fsinfo_for_ccw_dev(char const= *syspath, return false; } =20 - disk->has_ccw_address =3D true; disk->ccw_address =3D g_new0(GuestCCWAddress, 1); disk->ccw_address->cssid =3D cssid; disk->ccw_address->ssid =3D ssid; @@ -1084,12 +1083,10 @@ static void build_guest_fsinfo_for_real_device(char= const *syspath, devnode =3D udev_device_get_devnode(udevice); if (devnode !=3D NULL) { disk->dev =3D g_strdup(devnode); - disk->has_dev =3D true; } serial =3D udev_device_get_property_value(udevice, "ID_SERIAL"); if (serial !=3D NULL && *serial !=3D 0) { disk->serial =3D g_strdup(serial); - disk->has_serial =3D true; } } =20 @@ -1108,7 +1105,7 @@ static void build_guest_fsinfo_for_real_device(char c= onst *syspath, has_hwinf =3D false; } =20 - if (has_hwinf || disk->has_dev || disk->has_serial) { + if (has_hwinf || disk->dev || disk->serial) { QAPI_LIST_PREPEND(fs->disk, disk); } else { qapi_free_GuestDiskAddress(disk); @@ -1411,7 +1408,6 @@ static void get_nvme_smart(GuestDiskInfo *disk) return; } =20 - disk->has_smart =3D true; disk->smart =3D g_new0(GuestDiskSmart, 1); disk->smart->type =3D GUEST_DISK_BUS_TYPE_NVME; =20 @@ -1449,7 +1445,7 @@ static void get_nvme_smart(GuestDiskInfo *disk) =20 static void get_disk_smart(GuestDiskInfo *disk) { - if (disk->has_address + if (disk->address && (disk->address->bus_type =3D=3D GUEST_DISK_BUS_TYPE_NVME)) { get_nvme_smart(disk); } @@ -1502,7 +1498,6 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) disk->name =3D dev_name; disk->partition =3D false; disk->alias =3D get_alias_for_syspath(disk_dir); - disk->has_alias =3D (disk->alias !=3D NULL); QAPI_LIST_PREPEND(ret, disk); =20 /* Get address for non-virtual devices */ @@ -1522,8 +1517,6 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) error_get_pretty(local_err)); error_free(local_err); local_err =3D NULL; - } else if (disk->address !=3D NULL) { - disk->has_address =3D true; } } =20 @@ -1641,7 +1634,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) if (fd =3D=3D -1) { result->error =3D g_strdup_printf("failed to open: %s", strerror(errno)); - result->has_error =3D true; continue; } =20 @@ -1656,7 +1648,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) r.minlen =3D has_minimum ? minimum : 0; ret =3D ioctl(fd, FITRIM, &r); if (ret =3D=3D -1) { - result->has_error =3D true; if (errno =3D=3D ENOTTY || errno =3D=3D EOPNOTSUPP) { result->error =3D g_strdup("trim not supported"); } else { @@ -2967,7 +2958,7 @@ GuestNetworkInterfaceList *qmp_guest_network_get_inte= rfaces(Error **errp) QAPI_LIST_APPEND(tail, info); } =20 - if (!info->has_hardware_address) { + if (!info->hardware_address) { if (!guest_get_hw_addr(ifa, mac_addr, &obtained, errp)) { goto error; } @@ -2977,7 +2968,6 @@ GuestNetworkInterfaceList *qmp_guest_network_get_inte= rfaces(Error **errp) (int) mac_addr[0], (int) mac_addr[1], (int) mac_addr[2], (int) mac_addr[3], (int) mac_addr[4], (int) mac_addr[5]); - info->has_hardware_address =3D true; } } =20 @@ -3037,14 +3027,12 @@ GuestNetworkInterfaceList *qmp_guest_network_get_in= terfaces(Error **errp) =20 info->has_ip_addresses =3D true; =20 - if (!info->has_statistics) { + if (!info->statistics) { interface_stat =3D g_malloc0(sizeof(*interface_stat)); if (guest_get_network_stats(info->name, interface_stat) =3D=3D= -1) { - info->has_statistics =3D false; g_free(interface_stat); } else { info->statistics =3D interface_stat; - info->has_statistics =3D true; } } } @@ -3351,11 +3339,8 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp) if (uname(&kinfo) !=3D 0) { error_setg_errno(errp, errno, "uname failed"); } else { - info->has_kernel_version =3D true; info->kernel_version =3D g_strdup(kinfo.version); - info->has_kernel_release =3D true; info->kernel_release =3D g_strdup(kinfo.release); - info->has_machine =3D true; info->machine =3D g_strdup(kinfo.machine); } =20 @@ -3375,7 +3360,6 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp) value =3D g_key_file_get_value(osrelease, "os-release", osfield, NULL)= ; \ if (value !=3D NULL) { \ ga_osrelease_replace_special(value); \ - info->has_ ## field =3D true; \ info->field =3D value; \ } \ } while (0) diff --git a/qga/commands-win32.c b/qga/commands-win32.c index ec9f55b453..7d8d34d87d 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -193,8 +193,7 @@ static void handle_set_nonblocking(HANDLE fh) SetNamedPipeHandleState(fh, &pipe_state, NULL, NULL); } =20 -int64_t qmp_guest_file_open(const char *path, bool has_mode, - const char *mode, Error **errp) +int64_t qmp_guest_file_open(const char *path, const char *mode, Error **er= rp) { int64_t fd =3D -1; HANDLE fh; @@ -206,7 +205,7 @@ int64_t qmp_guest_file_open(const char *path, bool has_= mode, GError *gerr =3D NULL; wchar_t *w_path =3D NULL; =20 - if (!has_mode) { + if (!mode) { mode =3D "r"; } slog("guest-file-open called, filepath: %s, mode: %s", path, mode); @@ -317,14 +316,14 @@ static void execute_async(DWORD WINAPI (*func)(LPVOID= ), LPVOID opaque, } } =20 -void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) +void qmp_guest_shutdown(const char *mode, Error **errp) { Error *local_err =3D NULL; UINT shutdown_flag =3D EWX_FORCE; =20 slog("guest-shutdown called, mode: %s", mode); =20 - if (!has_mode || strcmp(mode, "powerdown") =3D=3D 0) { + if (!mode || strcmp(mode, "powerdown") =3D=3D 0) { shutdown_flag |=3D EWX_POWEROFF; } else if (strcmp(mode, "halt") =3D=3D 0) { shutdown_flag |=3D EWX_SHUTDOWN; @@ -833,7 +832,6 @@ static void get_disk_properties(HANDLE vol_h, GuestDisk= Address *disk, g_debug("serial number \"%s\"", serial); if (*serial !=3D 0) { disk->serial =3D g_strndup(serial, len); - disk->has_serial =3D true; } } out_free: @@ -951,7 +949,6 @@ static GuestDiskAddressList *build_guest_disk_info(char= *guid, Error **errp) /* Possibly CD-ROM or a shared drive. Try to pass the volume */ g_debug("volume not on disk"); disk =3D g_new0(GuestDiskAddress, 1); - disk->has_dev =3D true; disk->dev =3D g_strdup(name); get_single_disk_info(0xffffffff, disk, &local_err); if (local_err) { @@ -983,7 +980,6 @@ static GuestDiskAddressList *build_guest_disk_info(char= *guid, Error **errp) * See also Naming Files, Paths and Namespaces: * https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-= a-file#win32-device-namespaces */ - disk->has_dev =3D true; disk->dev =3D g_strdup_printf("\\\\.\\PhysicalDrive%lu", extents->Extents[i].DiskNumber); =20 @@ -1078,7 +1074,6 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) =20 g_debug(" number: %lu", sdn.DeviceNumber); address =3D g_new0(GuestDiskAddress, 1); - address->has_dev =3D true; address->dev =3D g_strdup(disk->name); get_single_disk_info(sdn.DeviceNumber, address, &local_err); if (local_err) { @@ -1089,7 +1084,6 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) address =3D NULL; } else { disk->address =3D address; - disk->has_address =3D true; } =20 QAPI_LIST_PREPEND(ret, disk); @@ -1369,7 +1363,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) g_free(uc_path); =20 if (!path) { - res->has_error =3D true; res->error =3D g_strdup(gerr->message); g_error_free(gerr); break; @@ -1387,7 +1380,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) if (!g_spawn_sync(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NUL= L, &out /* stdout */, NULL /* stdin */, NULL, &gerr)) { - res->has_error =3D true; res->error =3D g_strdup(gerr->message); g_error_free(gerr); } else { @@ -1403,7 +1395,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) if (g_strstr_len(lines[i], -1, "(0x") =3D=3D NULL) { continue; } - res->has_error =3D true; res->error =3D g_strdup(lines[i]); break; } @@ -1683,8 +1674,6 @@ GuestNetworkInterfaceList *qmp_guest_network_get_inte= rfaces(Error **errp) (int) mac_addr[0], (int) mac_addr[1], (int) mac_addr[2], (int) mac_addr[3], (int) mac_addr[4], (int) mac_addr[5]); - - info->has_hardware_address =3D true; } =20 head_addr =3D NULL; @@ -1713,15 +1702,13 @@ GuestNetworkInterfaceList *qmp_guest_network_get_in= terfaces(Error **errp) info->has_ip_addresses =3D true; info->ip_addresses =3D head_addr; } - if (!info->has_statistics) { + if (!info->statistics) { interface_stat =3D g_malloc0(sizeof(*interface_stat)); - if (guest_get_network_stats(addr->AdapterName, - interface_stat) =3D=3D -1) { - info->has_statistics =3D false; + if (guest_get_network_stats(addr->AdapterName, interface_stat) + =3D=3D -1) { g_free(interface_stat); } else { info->statistics =3D interface_stat; - info->has_statistics =3D true; } } } @@ -2113,7 +2100,6 @@ GuestUserList *qmp_guest_get_users(Error **errp) =20 user->user =3D g_strdup(info->UserName); user->domain =3D g_strdup(info->Domain); - user->has_domain =3D true; =20 user->login_time =3D login_time; =20 @@ -2332,29 +2318,19 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp) =20 info =3D g_new0(GuestOSInfo, 1); =20 - info->has_kernel_version =3D true; info->kernel_version =3D g_strdup_printf("%lu.%lu", os_version.dwMajorVersion, os_version.dwMinorVersion); - info->has_kernel_release =3D true; info->kernel_release =3D g_strdup_printf("%lu", os_version.dwBuildNumber); - info->has_machine =3D true; info->machine =3D ga_get_current_arch(); =20 - info->has_id =3D true; info->id =3D g_strdup("mswindows"); - info->has_name =3D true; info->name =3D g_strdup("Microsoft Windows"); - info->has_pretty_name =3D true; info->pretty_name =3D product_name; - info->has_version =3D true; info->version =3D ga_get_win_name(&os_version, false); - info->has_version_id =3D true; info->version_id =3D ga_get_win_name(&os_version, true); - info->has_variant =3D true; info->variant =3D g_strdup(server ? "server" : "client"); - info->has_variant_id =3D true; info->variant_id =3D g_strdup(server ? "server" : "client"); =20 return info; @@ -2478,7 +2454,6 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **er= rp) device_id =3D g_match_info_fetch(match_info, 2); =20 device->id =3D g_new0(GuestDeviceId, 1); - device->has_id =3D true; device->id->type =3D GUEST_DEVICE_TYPE_PCI; id =3D &device->id->u.pci; id->vendor_id =3D g_ascii_strtoull(vendor_id, NULL, 16); @@ -2502,7 +2477,6 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **er= rp) error_setg(errp, "conversion to utf8 failed (driver version)"); return NULL; } - device->has_driver_version =3D true; =20 date =3D (LPFILETIME)cm_get_property(dev_info_data.DevInst, &qga_DEVPKEY_Device_DriverDate, &cm_type); diff --git a/qga/commands.c b/qga/commands.c index 7ff551d092..360077364e 100644 --- a/qga/commands.c +++ b/qga/commands.c @@ -206,14 +206,12 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, E= rror **errp) } #endif if (gei->out.length > 0) { - ges->has_out_data =3D true; ges->out_data =3D g_base64_encode(gei->out.data, gei->out.leng= th); g_free(gei->out.data); ges->has_out_truncated =3D gei->out.truncated; } =20 if (gei->err.length > 0) { - ges->has_err_data =3D true; ges->err_data =3D g_base64_encode(gei->err.data, gei->err.leng= th); g_free(gei->err.data); ges->has_err_truncated =3D gei->err.truncated; @@ -385,7 +383,7 @@ close: GuestExec *qmp_guest_exec(const char *path, bool has_arg, strList *arg, bool has_env, strList *env, - bool has_input_data, const char *input_data, + const char *input_data, bool has_capture_output, bool capture_output, Error **errp) { @@ -406,7 +404,7 @@ GuestExec *qmp_guest_exec(const char *path, arglist.value =3D (char *)path; arglist.next =3D has_arg ? arg : NULL; =20 - if (has_input_data) { + if (input_data) { input =3D qbase64_decode(input_data, -1, &ninput, errp); if (!input) { return NULL; @@ -423,7 +421,7 @@ GuestExec *qmp_guest_exec(const char *path, } =20 ret =3D g_spawn_async_with_pipes(NULL, argv, envp, flags, - guest_exec_task_setup, NULL, &pid, has_input_data ? &in_fd : N= ULL, + guest_exec_task_setup, NULL, &pid, input_data ? &in_fd : NULL, has_output ? &out_fd : NULL, has_output ? &err_fd : NULL, &ger= r); if (!ret) { error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message); @@ -438,7 +436,7 @@ GuestExec *qmp_guest_exec(const char *path, gei->has_output =3D has_output; g_child_watch_add(pid, guest_exec_child_watch, gei); =20 - if (has_input_data) { + if (input_data) { gei->in.data =3D g_steal_pointer(&input); gei->in.size =3D ninput; #ifdef G_OS_WIN32 @@ -547,7 +545,6 @@ GuestTimezone *qmp_guest_get_timezone(Error **errp) info->offset =3D g_time_zone_get_offset(tz, intv); name =3D g_time_zone_get_abbreviation(tz, intv); if (name !=3D NULL) { - info->has_zone =3D true; info->zone =3D g_strdup(name); } g_time_zone_unref(tz); diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index b2df148e01..4594c69d0b 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -758,8 +758,7 @@ def __init__(self, name, info, typ, optional, ifcond=3D= None, features=3DNone): def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chu= nks - opt_out =3D [ - 'qga/qapi-schema.json'] + opt_out =3D [] if self.info and any(self.info.fname.endswith(mod) for mod in opt_out): return self.optional --=20 2.37.3 From nobody Sun May 19 09:42:13 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1671005037; cv=none; d=zohomail.com; s=zohoarc; b=K0bF5rckcmVToacyVfYNa1keTy3+bwdETEPFJPws8vNpx+SFU/oFUWzBGPFC1xrf9FCkkpMKx1zBa0YMkP8mQjWerSJ9NFa9N9TZ1gqIuwm6QO3tnKNmdho9IbC1zTcMHK7GopFP/j1QxZrCrrwgT+HHI7BqMEztK279k7oVs6E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1671005037; 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=QFuxQfl9mZUqDu/Ztg77JfB7XVRfXY9fZyr974i072o=; b=DWAdV9/W9RItDAoV/VV/4vLxIw4+whTvsl1NLPMVvj4yNA4ybOCyXEk5u39pvKSSAOo0GvlOK7zc/KivsESfwrXATkE+eXSvoHAF+AVuDYsr7Ze5NfmZjKp995Tw8sf9merDviZUcFpV+XDYvnzB3Bic9Pjik1Cg1WWqUxOKCmI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671005037720603.7719497948184; Wed, 14 Dec 2022 00:03:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5MUU-0003ZP-Ej; Wed, 14 Dec 2022 02:47:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUP-0003WM-Qu for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5MUL-0003gk-J8 for qemu-devel@nongnu.org; Wed, 14 Dec 2022 02:47:41 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-439-Lmz9pza9NFKTAhVt2QKNgw-1; Wed, 14 Dec 2022 02:47:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F1F011010453; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.39.195.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC35D40C2005; Wed, 14 Dec 2022 07:47:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 98D3021E60CF; Wed, 14 Dec 2022 08:47:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671004055; h=from:from: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; bh=QFuxQfl9mZUqDu/Ztg77JfB7XVRfXY9fZyr974i072o=; b=cacXtUnXMbx/+sFCant0WAXyAVBL6In6AZ2NjxekzZgDA0fS/gxPo++2VEBvts0KiEtiUn rHnedwrTHQ3LX8AYkltYIPIb5U0kR2azC2Asi/RAdnv5bO2ZjWDJC87mHzpc3IzhrTi/6i 08GHnfgt7K03q/8R8PHS9eqQdbz6L2s= X-MC-Unique: Lmz9pza9NFKTAhVt2QKNgw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 30/30] qapi: Drop temporary logic to support conversion step by step Date: Wed, 14 Dec 2022 08:47:21 +0100 Message-Id: <20221214074721.731441-33-armbru@redhat.com> In-Reply-To: <20221214074721.731441-1-armbru@redhat.com> References: <20221214074721.731441-1-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1671005057384100001 Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221104160712.3005652-31-armbru@redhat.com> --- scripts/qapi/schema.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 4594c69d0b..cd8661125c 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -757,12 +757,6 @@ def __init__(self, name, info, typ, optional, ifcond= =3DNone, features=3DNone): =20 def need_has(self): assert self.type - # Temporary hack to support dropping the has_FOO in reviewable chu= nks - opt_out =3D [] - if self.info and any(self.info.fname.endswith(mod) - for mod in opt_out): - return self.optional - # End of temporary hack return self.optional and self.type.need_has_if_optional() =20 def check(self, schema): --=20 2.37.3