@@ -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
*/
@@ -425,6 +425,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);
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 <gengdongjiu@huawei.com> --- hw/acpi/aml-build.c | 14 ++++++++++++++ include/hw/acpi/aml-build.h | 6 ++++++ 2 files changed, 20 insertions(+)