On Tue, May 14, 2019 at 04:18:15AM -0700, Dongjiu Geng wrote: > Add Generic Error Status Block structures and some macros > definitions, which is referred to the ACPI 4.0 or ACPI 6.2. The > HEST table generation and CPER record will use them. > > Signed-off-by: Dongjiu Geng <gengdongjiu@xxxxxxxxxx> Are these all still used? I'd rather you moved stuff to where it's used. > --- > include/hw/acpi/acpi-defs.h | 52 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h > index f9aa4bd..d1996fb 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -224,6 +224,25 @@ typedef struct AcpiMultipleApicTable AcpiMultipleApicTable; > #define ACPI_APIC_RESERVED 16 /* 16 and greater are reserved */ > > /* > + * Values for Hardware Error Notification Type field > + */ > +enum AcpiHestNotifyType { > + ACPI_HEST_NOTIFY_POLLED = 0, > + ACPI_HEST_NOTIFY_EXTERNAL = 1, > + ACPI_HEST_NOTIFY_LOCAL = 2, > + ACPI_HEST_NOTIFY_SCI = 3, > + ACPI_HEST_NOTIFY_NMI = 4, > + ACPI_HEST_NOTIFY_CMCI = 5, /* ACPI 5.0: 18.3.2.7, Table 18-290 */ > + ACPI_HEST_NOTIFY_MCE = 6, /* ACPI 5.0: 18.3.2.7, Table 18-290 */ > + ACPI_HEST_NOTIFY_GPIO = 7, /* ACPI 6.0: 18.3.2.7, Table 18-332 */ > + ACPI_HEST_NOTIFY_SEA = 8, /* ACPI 6.1: 18.3.2.9, Table 18-345 */ > + ACPI_HEST_NOTIFY_SEI = 9, /* ACPI 6.1: 18.3.2.9, Table 18-345 */ > + ACPI_HEST_NOTIFY_GSIV = 10, /* ACPI 6.1: 18.3.2.9, Table 18-345 */ > + ACPI_HEST_NOTIFY_SDEI = 11, /* ACPI 6.2: 18.3.2.9, Table 18-383 */ > + ACPI_HEST_NOTIFY_RESERVED = 12 /* 12 and greater are reserved */ > +}; > + If there's a single user, the best thing to do is just to open-code with a comment that matches spec names. It's hard to find stuff like ACPI_HEST_NOTIFY_GSIV in a spec. > +/* > * MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE) > */ > #define ACPI_SUB_HEADER_DEF /* Common ACPI sub-structure header */\ > @@ -400,6 +419,39 @@ struct AcpiSystemResourceAffinityTable { > } QEMU_PACKED; > typedef struct AcpiSystemResourceAffinityTable AcpiSystemResourceAffinityTable; > > +/* > + * Generic Error Status Block > + */ > +struct AcpiGenericErrorStatus { > + /* It is a bitmask composed of ACPI_GEBS_xxx macros */ > + uint32_t block_status; > + uint32_t raw_data_offset; > + uint32_t raw_data_length; > + uint32_t data_length; > + uint32_t error_severity; > +} QEMU_PACKED; > +typedef struct AcpiGenericErrorStatus AcpiGenericErrorStatus; > + > +/* > + * Masks for block_status flags above > + */ > +#define ACPI_GEBS_UNCORRECTABLE 1 > + > +/* > + * Values for error_severity field above > + */ > +enum AcpiGenericErrorSeverity { > + ACPI_CPER_SEV_RECOVERABLE, > + ACPI_CPER_SEV_FATAL, > + ACPI_CPER_SEV_CORRECTED, > + ACPI_CPER_SEV_NONE, > +}; > + > +/* > + * Generic Hardware Error Source version 2 > + */ > +#define ACPI_HEST_SOURCE_GENERIC_ERROR_V2 10 > + > #define ACPI_SRAT_PROCESSOR_APIC 0 > #define ACPI_SRAT_MEMORY 1 > #define ACPI_SRAT_PROCESSOR_x2APIC 2 > -- > 1.8.3.1