Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : /* 3 : : * apei.h - ACPI Platform Error Interface 4 : : */ 5 : : 6 : : #ifndef ACPI_APEI_H 7 : : #define ACPI_APEI_H 8 : : 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 : : 20 : : enum hest_status { 21 : : HEST_ENABLED, 22 : : HEST_DISABLED, 23 : : HEST_NOT_FOUND, 24 : : }; 25 : : 26 : : extern int hest_disable; 27 : : extern int erst_disable; 28 : : #ifdef CONFIG_ACPI_APEI_GHES 29 : : extern bool ghes_disable; 30 : : #else 31 : : #define ghes_disable 1 32 : : #endif 33 : : 34 : : #ifdef CONFIG_ACPI_APEI 35 : : void __init acpi_hest_init(void); 36 : : #else 37 [ + - ]: 11 : static inline void acpi_hest_init(void) { return; } 38 : : #endif 39 : : 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 : : 43 : : int erst_write(const struct cper_record_header *record); 44 : : ssize_t erst_get_record_count(void); 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); 48 : : ssize_t erst_read(u64 record_id, struct cper_record_header *record, 49 : : size_t buflen); 50 : : int erst_clear(u64 record_id); 51 : : 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 : : 55 : : #endif 56 : : #endif