From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gKhcO-0002wy-5i for qemu-devel@nongnu.org; Thu, 08 Nov 2018 05:32:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gKhcN-0000Oj-53 for qemu-devel@nongnu.org; Thu, 08 Nov 2018 05:32:56 -0500 From: Dongjiu Geng Date: Thu, 8 Nov 2018 02:29:43 -0800 Message-ID: <1541672989-15967-5-git-send-email-gengdongjiu@huawei.com> In-Reply-To: <1541672989-15967-1-git-send-email-gengdongjiu@huawei.com> References: <1541672989-15967-1-git-send-email-gengdongjiu@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH RESEND v15 04/10] acpi: add build_append_ghes_generic_status() helper for Generic Error Status Block List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: imammedo@redhat.com, mst@redhat.com, peter.maydell@linaro.org, lersek@redhat.com, marc.zyngier@arm.com, james.morse@arm.com, pbonzini@redhat.com, mtosatti@redhat.com, rth@twiddle.net, zhengxiang9@huawei.com, ehabkost@redhat.com, kvm@vger.kernel.org, shannon.zhaosl@gmail.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, gengdongjiu@huawei.com It will help to add Generic Error Status Block to ACPI tables without using packed C structures and avoid endianness issues as API doesn't need explicit conversion. Signed-off-by: Dongjiu Geng --- hw/acpi/aml-build.c | 14 ++++++++++++++ include/hw/acpi/aml-build.h | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 00b166e..5923248 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -296,6 +296,20 @@ void build_append_ghes_notify(GArray *table, const uint8_t type, build_append_int_noprefix(table, error_threshold_window, 4); } +/* Generic Error Status Block + * ACPI 4.0: 17.3.2.6.1 Generic Error Data + */ +void build_append_ghes_generic_status(GArray *table, uint32_t block_status, + uint32_t raw_data_offset, uint32_t raw_data_length, + uint32_t data_length, uint32_t error_severity) +{ + build_append_int_noprefix(table, block_status, 4); + build_append_int_noprefix(table, raw_data_offset, 4); + build_append_int_noprefix(table, raw_data_length, 4); + build_append_int_noprefix(table, data_length, 4); + build_append_int_noprefix(table, error_severity, 4); +} + /* Generic Error Data Entry * ACPI 4.0: 17.3.2.6.1 Generic Error Data */ diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 147eb38..657a0d5 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -423,6 +423,12 @@ void build_append_ghes_generic_data(GArray *table, const char *section_type, uint32_t error_data_length, uint8_t *fru_id, uint8_t *fru_text, uint64_t time_stamp); +void +build_append_ghes_generic_status(GArray *table, uint32_t block_status, + uint32_t raw_data_offset, + uint32_t raw_data_length, + uint32_t data_length, uint32_t error_severity); + void build_srat_memory(AcpiSratMemoryAffinity *numamem, uint64_t base, uint64_t len, int node, MemoryAffinityFlags flags); -- 1.8.3.1