From: Igor Mammedov <imammedo@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, michael.roth@amd.com, jsnow@redhat.com,
eblake@redhat.com, "Michael S . Tsirkin" <mst@redhat.com>,
Ani Sinha <ani@anisinha.ca>
Subject: Re: [PATCH 06/27] qapi acpi: Elide redundant has_FOO in generated C
Date: Fri, 16 Sep 2022 09:50:13 +0200 [thread overview]
Message-ID: <20220916095013.5c197a33@redhat.com> (raw)
In-Reply-To: <20220915204317.3766007-7-armbru@redhat.com>
On Thu, 15 Sep 2022 22:42:56 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> 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 <mst@redhat.com>
> Cc: Igor Mammedov <imammedo@redhat.com>
> Cc: Ani Sinha <ani@anisinha.ca>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@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 *blob, size_t bloblen,
> changed_fields = 0;
> ext_hdr->_length = cpu_to_le16(acpi_payload_size);
>
> - 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 *blob, size_t bloblen,
>
> ext_hdr->checksum = 0;
>
> - 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 *blob, size_t bloblen,
> ext_hdr->oem_revision = 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 **errp)
> if (!hdrs) {
> goto out;
> }
> - if (hdrs->has_file == hdrs->has_data) {
> + if (!hdrs->file == !hdrs->data) {
> error_setg(errp, "'-acpitable' requires one of 'data' or 'file'");
> goto out;
> }
>
> - pathnames = g_strsplit(hdrs->has_file ? hdrs->file : hdrs->data, ":", 0);
> + pathnames = g_strsplit(hdrs->file ?: hdrs->data, ":", 0);
> if (pathnames == NULL || pathnames[0] == 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);
> }
>
> - acpi_table_install(blob, bloblen, hdrs->has_file, hdrs, errp);
> + acpi_table_install(blob, bloblen, !!hdrs->file, hdrs, errp);
>
> 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, AcpiCpuStatus *cdev)
> DeviceState *dev = DEVICE(cdev->cpu);
> if (dev->id) {
> info->device = g_strdup(dev->id);
> - info->has_device = 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, MemStatus *mdev)
> DeviceState *dev = DEVICE(mdev->dimm);
> if (dev->id) {
> info->device = g_strdup(dev->id);
> - info->has_device = true;
> }
> }
> return info;
> diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
> index 3ae94300c4..5160a659b7 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 chunks
> opt_out = [
> - 'qapi/acpi.json',
> 'qapi/audio.json',
> 'qapi/block-core.json',
> 'qapi/block-export.json',
next prev parent reply other threads:[~2022-09-16 7:52 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-15 20:42 [PATCH 00/27] qapi: Elide redundant has_FOO in generated C Markus Armbruster
2022-09-15 20:42 ` [PATCH 01/27] docs/devel/qapi-code-gen: Update example to match current code Markus Armbruster
2022-09-16 8:38 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 02/27] qapi: Tidy up whitespace in generated code Markus Armbruster
2022-09-16 8:44 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 03/27] docs/devel/qapi-code-gen: Extend example for next commit's change Markus Armbruster
2022-09-16 8:47 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 04/27] qapi: Start to elide redundant has_FOO in generated C Markus Armbruster
2022-09-16 8:50 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 05/27] qapi tests: Elide " Markus Armbruster
2022-09-16 8:54 ` Daniel P. Berrangé
2022-09-16 10:36 ` Markus Armbruster
2022-09-15 20:42 ` [PATCH 06/27] qapi acpi: " Markus Armbruster
2022-09-16 7:50 ` Igor Mammedov [this message]
2022-09-16 8:00 ` Ani Sinha
2022-09-16 8:18 ` Markus Armbruster
2022-09-16 8:21 ` Ani Sinha
2022-09-16 8:37 ` Daniel P. Berrangé
2022-09-16 8:45 ` Ani Sinha
2022-09-16 9:32 ` Ani Sinha
2022-09-16 9:35 ` Markus Armbruster
2022-09-16 8:59 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 07/27] qapi audio: " Markus Armbruster
2022-09-16 9:13 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 08/27] qapi block: " Markus Armbruster
2022-09-15 20:42 ` [PATCH 09/27] qapi char: " Markus Armbruster
2022-09-16 9:09 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 10/27] qapi crypto: " Markus Armbruster
2022-09-16 9:02 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 11/27] qapi dump: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 12/27] qapi job: " Markus Armbruster
2022-09-16 8:42 ` Vladimir Sementsov-Ogievskiy
2022-09-15 20:43 ` [PATCH 13/27] qapi machine: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 14/27] qapi migration: " Markus Armbruster
2022-09-22 11:28 ` Dr. David Alan Gilbert
2022-09-22 12:40 ` Daniel P. Berrangé
2022-09-22 13:15 ` Philippe Mathieu-Daudé via
2022-09-22 13:36 ` Markus Armbruster
2022-09-15 20:43 ` [PATCH 15/27] qapi misc: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 16/27] qapi net: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 17/27] qapi pci: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 18/27] qapi qdev qom: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 19/27] qapi replay: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 20/27] qapi rocker: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 21/27] qapi run-state: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 22/27] qapi stats: " Markus Armbruster
2022-09-16 14:29 ` Mark Kanda
2022-09-15 20:43 ` [PATCH 23/27] qapi tpm: " Markus Armbruster
2022-09-15 21:12 ` Stefan Berger
2022-09-15 20:43 ` [PATCH 24/27] qapi transaction: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 25/27] qapi ui: " Markus Armbruster
2022-09-16 9:04 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 26/27] qapi qga: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 27/27] qapi: Drop temporary logic to support conversion step by step Markus Armbruster
2022-09-16 9:04 ` Daniel P. Berrangé
2022-09-16 8:42 ` [PATCH 00/27] qapi: Elide redundant has_FOO in generated C Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220916095013.5c197a33@redhat.com \
--to=imammedo@redhat.com \
--cc=ani@anisinha.ca \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=jsnow@redhat.com \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).