diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-15 03:41:22 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-21 12:16:28 -0500 |
commit | 40e064153814ce534a28714b25cb98259f107d96 (patch) | |
tree | 835c07367569b2d244fe7db8ff23e565e76b72f3 /include/acpi/ghes.h | |
parent | 8dd93d450bff251575c56b8f058393124e1f00fb (diff) |
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/ghes.h')
-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 @@ | |||
1 | #include <acpi/apei.h> | ||
2 | #include <acpi/hed.h> | ||
3 | |||
4 | /* | ||
5 | * One struct ghes is created for each generic hardware error source. | ||
6 | * It provides the context for APEI hardware error timer/IRQ/SCI/NMI | ||
7 | * handler. | ||
8 | * | ||
9 | * estatus: memory buffer for error status block, allocated during | ||
10 | * HEST parsing. | ||
11 | */ | ||
12 | #define GHES_TO_CLEAR 0x0001 | ||
13 | #define GHES_EXITING 0x0002 | ||
14 | |||
15 | struct ghes { | ||
16 | struct acpi_hest_generic *generic; | ||
17 | struct acpi_hest_generic_status *estatus; | ||
18 | u64 buffer_paddr; | ||
19 | unsigned long flags; | ||
20 | union { | ||
21 | struct list_head list; | ||
22 | struct timer_list timer; | ||
23 | unsigned int irq; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | struct ghes_estatus_node { | ||
28 | struct llist_node llnode; | ||
29 | struct acpi_hest_generic *generic; | ||
30 | }; | ||
31 | |||
32 | struct ghes_estatus_cache { | ||
33 | u32 estatus_len; | ||
34 | atomic_t count; | ||
35 | struct acpi_hest_generic *generic; | ||
36 | unsigned long long time_in; | ||
37 | struct rcu_head rcu; | ||
38 | }; | ||
39 | |||
40 | enum { | ||
41 | GHES_SEV_NO = 0x0, | ||
42 | GHES_SEV_CORRECTED = 0x1, | ||
43 | GHES_SEV_RECOVERABLE = 0x2, | ||
44 | GHES_SEV_PANIC = 0x3, | ||
45 | }; | ||