From: Igor Mammedov <imammedo@redhat.com>
To: Eric Auger <eauger@redhat.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [PATCH v3 33/35] acpi: build_facs: use build_append_int_noprefix() API to compose table
Date: Wed, 22 Sep 2021 15:58:39 +0200 [thread overview]
Message-ID: <20210922155839.7153d145@redhat.com> (raw)
In-Reply-To: <d41d58c8-7978-e9e9-88bb-28ebc46f4fdc@redhat.com>
On Wed, 22 Sep 2021 15:33:27 +0200
Eric Auger <eauger@redhat.com> wrote:
> On 9/7/21 4:48 PM, Igor Mammedov wrote:
> > Drop usage of packed structures and explicit endian
> > conversions when building table and use endian agnostic
> > build_append_int_noprefix() API to build it.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > CC: marcel.apfelbaum@gmail.com
> > ---
> > include/hw/acpi/acpi-defs.h | 14 --------------
> > include/hw/acpi/aml-build.h | 1 +
> > hw/acpi/aml-build.c | 2 +-
> > hw/i386/acpi-build.c | 18 ++++++++++++++----
> > 4 files changed, 16 insertions(+), 19 deletions(-)
> >
> > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h
> > index 0b375e7589..1a0774edd6 100644
> > --- a/include/hw/acpi/acpi-defs.h
> > +++ b/include/hw/acpi/acpi-defs.h
> > @@ -117,18 +117,4 @@ typedef struct AcpiFadtData {
> > #define ACPI_FADT_ARM_PSCI_COMPLIANT (1 << 0)
> > #define ACPI_FADT_ARM_PSCI_USE_HVC (1 << 1)
> >
> > -/*
> > - * ACPI 1.0 Firmware ACPI Control Structure (FACS)
> > - */
> > -struct AcpiFacsDescriptorRev1 {
> > - uint32_t signature; /* ACPI Signature */
> > - uint32_t length; /* Length of structure, in bytes */
> > - uint32_t hardware_signature; /* Hardware configuration signature */
> > - uint32_t firmware_waking_vector; /* ACPI OS waking vector */
> > - uint32_t global_lock; /* Global Lock */
> > - uint32_t flags;
> > - uint8_t resverved3 [40]; /* Reserved - must be zero */
> > -} QEMU_PACKED;
> > -typedef struct AcpiFacsDescriptorRev1 AcpiFacsDescriptorRev1;
> > -
> > #endif
> > diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
> > index 6e1f42e119..6f3d1de1b1 100644
> > --- a/include/hw/acpi/aml-build.h
> > +++ b/include/hw/acpi/aml-build.h
> > @@ -413,6 +413,7 @@ Aml *aml_concatenate(Aml *source1, Aml *source2, Aml *target);
> > Aml *aml_object_type(Aml *object);
> >
> > void build_append_int_noprefix(GArray *table, uint64_t value, int size);
> > +void build_append_byte(GArray *array, uint8_t val);
> what's the rationale behind changes related to build_append_byte?
looks like stray remnants from previous revisions, not really needed.
I'll drop it.
> >
> > typedef struct AcpiTable {
> > const char *sig;
> > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
> > index 050fdb3f37..4135b385e5 100644
> > --- a/hw/acpi/aml-build.c
> > +++ b/hw/acpi/aml-build.c
> > @@ -47,7 +47,7 @@ static void build_prepend_byte(GArray *array, uint8_t val)
> > g_array_prepend_val(array, val);
> > }
> >
> > -static void build_append_byte(GArray *array, uint8_t val)
> > +void build_append_byte(GArray *array, uint8_t val)
> > {
> > g_array_append_val(array, val);
> > }
> > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > index 9f888d5a2c..547cd4ed9d 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -345,13 +345,23 @@ static void acpi_align_size(GArray *blob, unsigned align)
> > g_array_set_size(blob, ROUND_UP(acpi_data_len(blob), align));
> > }
> >
> > -/* FACS */
> > +/*
> > + * ACPI spec 1.0b,
> > + * 5.2.6 Firmware ACPI Control Structure
> > + */
> > static void
> > build_facs(GArray *table_data)
> > {
> > - AcpiFacsDescriptorRev1 *facs = acpi_data_push(table_data, sizeof *facs);
> > - memcpy(&facs->signature, "FACS", 4);
> > - facs->length = cpu_to_le32(sizeof(*facs));
> > + const char *sig = "FACS";
> > + const uint8_t reserved[40] = {};
> > +
> > + g_array_append_vals(table_data, sig, 4); /* Signature */
> > + build_append_int_noprefix(table_data, 64, 4); /* Length */
> > + build_append_int_noprefix(table_data, 0, 4); /* Hardware Signature */
> > + build_append_int_noprefix(table_data, 0, 4); /* Firmware Waking Vector */
> > + build_append_int_noprefix(table_data, 0, 4); /* Global Lock */
> > + build_append_int_noprefix(table_data, 0, 4); /* Flags */
> > + g_array_append_vals(table_data, reserved, 40); /* Reserved */
> > }
> >
> > static void build_append_pcihp_notify_entry(Aml *method, int slot)
> >
> Without thoses changes
>
> Reviewed-by: Eric Auger <eric.auger@redhat.com>
>
next prev parent reply other threads:[~2021-09-22 13:59 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-07 14:47 [PATCH v3 00/35] acpi: refactor error prone build_header() and packed structures usage in ACPI tables Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 01/35] acpi: add helper routines to initialize " Igor Mammedov
2021-09-20 16:21 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 02/35] acpi: build_rsdt: use acpi_table_begin()/acpi_table_end() instead of build_header() Igor Mammedov
2021-09-20 16:21 ` Eric Auger
2021-09-21 9:13 ` Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 03/35] acpi: build_xsdt: " Igor Mammedov
2021-09-20 16:21 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 04/35] acpi: build_slit: " Igor Mammedov
2021-09-20 16:24 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 05/35] acpi: build_fadt: " Igor Mammedov
2021-09-20 16:25 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 06/35] acpi: build_tpm2: " Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 07/35] acpi: acpi_build_hest: " Igor Mammedov
2021-09-20 16:27 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 08/35] acpi: build_mcfg: " Igor Mammedov
2021-09-20 16:28 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 09/35] acpi: build_hmat: " Igor Mammedov
2021-09-20 16:33 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 10/35] acpi: nvdimm_build_nfit: " Igor Mammedov
2021-09-20 16:36 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 11/35] acpi: nvdimm_build_ssdt: " Igor Mammedov
2021-09-20 16:41 ` Eric Auger
2021-09-22 14:38 ` Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 12/35] acpi: vmgenid_build_acpi: " Igor Mammedov
2021-09-22 7:23 ` Eric Auger
2021-09-22 14:46 ` Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 13/35] acpi: x86: build_dsdt: " Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 14/35] acpi: build_hpet: " Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 15/35] acpi: build_tpm_tcpa: " Igor Mammedov
2021-09-22 7:23 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 16/35] acpi: arm/x86: build_srat: " Igor Mammedov
2021-09-22 7:38 ` Eric Auger
2021-09-22 15:02 ` Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 17/35] acpi: use build_append_int_noprefix() API to compose SRAT table Igor Mammedov
2021-09-22 8:55 ` Eric Auger
2021-09-22 10:02 ` Igor Mammedov
2021-09-22 15:32 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 18/35] acpi: build_dmar_q35: use acpi_table_begin()/acpi_table_end() instead of build_header() Igor Mammedov
2021-09-22 9:19 ` Eric Auger
2021-09-22 10:06 ` Igor Mammedov
2021-09-07 14:47 ` [PATCH v3 19/35] acpi: build_waet: " Igor Mammedov
2021-09-22 9:20 ` Eric Auger
2021-09-07 14:47 ` [PATCH v3 20/35] acpi: build_amd_iommu: " Igor Mammedov
2021-09-22 9:22 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 21/35] acpi: madt: arm/x86: " Igor Mammedov
2021-09-22 9:36 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 22/35] acpi: x86: remove dead code Igor Mammedov
2021-09-22 9:38 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 23/35] acpi: x86: set enabled when composing _MAT entries Igor Mammedov
2021-09-22 9:50 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 24/35] acpi: x86: madt: use build_append_int_noprefix() API to compose MADT table Igor Mammedov
2021-09-22 10:20 ` Eric Auger
2021-09-22 15:30 ` Igor Mammedov
2021-09-22 15:37 ` Eric Auger
2021-09-23 6:34 ` Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 25/35] acpi: arm/virt: " Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 26/35] acpi: build_dsdt_microvm: use acpi_table_begin()/acpi_table_end() instead of build_header() Igor Mammedov
2021-09-22 10:01 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 27/35] acpi: arm: virt: build_dsdt: " Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 28/35] acpi: arm: virt: build_iort: " Igor Mammedov
2021-09-22 12:31 ` Eric Auger
2021-09-22 12:32 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 29/35] acpi: arm/virt: convert build_iort() to endian agnostic build_append_FOO() API Igor Mammedov
2021-09-22 13:26 ` Eric Auger
2021-09-22 13:54 ` Igor Mammedov
2021-09-22 15:31 ` Eric Auger
2021-09-23 7:47 ` [PATCH v4 " Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 30/35] acpi: arm/virt: build_spcr: fix invalid cast Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 31/35] acpi: arm/virt: build_spcr: use acpi_table_begin()/acpi_table_end() instead of build_header() Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 32/35] acpi: arm/virt: build_gtdt: " Igor Mammedov
2021-09-07 14:48 ` [PATCH v3 33/35] acpi: build_facs: use build_append_int_noprefix() API to compose table Igor Mammedov
2021-09-22 13:33 ` Eric Auger
2021-09-22 13:58 ` Igor Mammedov [this message]
2021-09-07 14:48 ` [PATCH v3 34/35] acpi: remove no longer used build_header() Igor Mammedov
2021-09-22 13:34 ` Eric Auger
2021-09-07 14:48 ` [PATCH v3 35/35] acpi: AcpiGenericAddress no longer used to map/access fields of MMIO, drop packed attribute Igor Mammedov
2021-09-22 13:34 ` Eric Auger
2021-09-22 14:03 ` [PATCH v3 00/35] acpi: refactor error prone build_header() and packed structures usage in ACPI tables Igor Mammedov
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=20210922155839.7153d145@redhat.com \
--to=imammedo@redhat.com \
--cc=eauger@redhat.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).