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