]>
Commit | Line | Data |
---|---|---|
9dc96664 HY |
1 | /* |
2 | * apei.h - ACPI Platform Error Interface | |
3 | */ | |
4 | ||
5 | #ifndef ACPI_APEI_H | |
6 | #define ACPI_APEI_H | |
7 | ||
a08f82d0 HY |
8 | #include <linux/acpi.h> |
9 | #include <linux/cper.h> | |
10 | #include <asm/ioctls.h> | |
11 | ||
12 | #define APEI_ERST_INVALID_RECORD_ID 0xffffffffffffffffULL | |
13 | ||
14 | #define APEI_ERST_CLEAR_RECORD _IOW('E', 1, u64) | |
15 | #define APEI_ERST_GET_RECORD_COUNT _IOR('E', 2, u32) | |
16 | ||
17 | #ifdef __KERNEL__ | |
18 | ||
90ab5ee9 | 19 | extern bool hest_disable; |
a08f82d0 | 20 | extern int erst_disable; |
a7e09d45 | 21 | #ifdef CONFIG_ACPI_APEI_GHES |
90ab5ee9 | 22 | extern bool ghes_disable; |
a7e09d45 LB |
23 | #else |
24 | #define ghes_disable 1 | |
25 | #endif | |
9dc96664 | 26 | |
415e12b2 RW |
27 | #ifdef CONFIG_ACPI_APEI |
28 | void __init acpi_hest_init(void); | |
29 | #else | |
30 | static inline void acpi_hest_init(void) { return; } | |
31 | #endif | |
32 | ||
9dc96664 HY |
33 | typedef int (*apei_hest_func_t)(struct acpi_hest_header *hest_hdr, void *data); |
34 | int apei_hest_parse(apei_hest_func_t func, void *data); | |
35 | ||
a08f82d0 HY |
36 | int erst_write(const struct cper_record_header *record); |
37 | ssize_t erst_get_record_count(void); | |
885b976f HY |
38 | int erst_get_record_id_begin(int *pos); |
39 | int erst_get_record_id_next(int *pos, u64 *record_id); | |
40 | void erst_get_record_id_end(void); | |
a08f82d0 HY |
41 | ssize_t erst_read(u64 record_id, struct cper_record_header *record, |
42 | size_t buflen); | |
a08f82d0 HY |
43 | int erst_clear(u64 record_id); |
44 | ||
9dae3d0d TN |
45 | int arch_apei_enable_cmcff(struct acpi_hest_header *hest_hdr, void *data); |
46 | void arch_apei_report_mem_error(int sev, struct cper_sec_mem_err *mem_err); | |
594c7255 | 47 | void arch_apei_flush_tlb_one(unsigned long addr); |
9dae3d0d | 48 | |
a08f82d0 | 49 | #endif |
9dc96664 | 50 | #endif |