aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi/ghes.h
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2013-02-15 03:41:22 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-02-21 12:16:28 -0500
commit40e064153814ce534a28714b25cb98259f107d96 (patch)
tree835c07367569b2d244fe7db8ff23e565e76b72f3 /include/acpi/ghes.h
parent8dd93d450bff251575c56b8f058393124e1f00fb (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.h45
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
15struct 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
27struct ghes_estatus_node {
28 struct llist_node llnode;
29 struct acpi_hest_generic *generic;
30};
31
32struct 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
40enum {
41 GHES_SEV_NO = 0x0,
42 GHES_SEV_CORRECTED = 0x1,
43 GHES_SEV_RECOVERABLE = 0x2,
44 GHES_SEV_PANIC = 0x3,
45};