diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-15 09:41:22 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-21 18:16:28 +0100 |
commit | 40e064153814ce534a28714b25cb98259f107d96 (patch) | |
tree | 835c07367569b2d244fe7db8ff23e565e76b72f3 /include/acpi | |
parent | edac: add support for error type "Info" (diff) | |
download | linux-40e064153814ce534a28714b25cb98259f107d96.tar.xz linux-40e064153814ce534a28714b25cb98259f107d96.zip |
ghes: move structures/enum to a header file
As a ghes_edac driver will need to access ghes structures, in order
to properly handle the errors, move those structures to a separate
header file. No functional changes.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/ghes.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h new file mode 100644 index 000000000000..3eb8dc483449 --- /dev/null +++ b/include/acpi/ghes.h @@ -0,0 +1,45 @@ +#include <acpi/apei.h> +#include <acpi/hed.h> + +/* + * One struct ghes is created for each generic hardware error source. + * It provides the context for APEI hardware error timer/IRQ/SCI/NMI + * handler. + * + * estatus: memory buffer for error status block, allocated during + * HEST parsing. + */ +#define GHES_TO_CLEAR 0x0001 +#define GHES_EXITING 0x0002 + +struct ghes { + struct acpi_hest_generic *generic; + struct acpi_hest_generic_status *estatus; + u64 buffer_paddr; + unsigned long flags; + union { + struct list_head list; + struct timer_list timer; + unsigned int irq; + }; +}; + +struct ghes_estatus_node { + struct llist_node llnode; + struct acpi_hest_generic *generic; +}; + +struct ghes_estatus_cache { + u32 estatus_len; + atomic_t count; + struct acpi_hest_generic *generic; + unsigned long long time_in; + struct rcu_head rcu; +}; + +enum { + GHES_SEV_NO = 0x0, + GHES_SEV_CORRECTED = 0x1, + GHES_SEV_RECOVERABLE = 0x2, + GHES_SEV_PANIC = 0x3, +}; |