1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __RAS_H__ 3#define __RAS_H__ 4 5#include <asm/errno.h> 6#include <linux/uuid.h> 7#include <linux/cper.h> 8 9#ifdef CONFIG_DEBUG_FS 10int ras_userspace_consumers(void); 11void ras_debugfs_init(void); 12int ras_add_daemon_trace(void); 13#else 14static inline int ras_userspace_consumers(void) { return 0; } 15static inline void ras_debugfs_init(void) { } 16static inline int ras_add_daemon_trace(void) { return 0; } 17#endif 18 19#ifdef CONFIG_RAS_CEC 20int __init parse_cec_param(char *str); 21#endif 22 23#ifdef CONFIG_RAS 24void log_non_standard_event(const guid_t *sec_type, 25 const guid_t *fru_id, const char *fru_text, 26 const u8 sev, const u8 *err, const u32 len); 27void log_arm_hw_error(struct cper_sec_proc_arm *err); 28 29#else 30static inline void 31log_non_standard_event(const guid_t *sec_type, 32 const guid_t *fru_id, const char *fru_text, 33 const u8 sev, const u8 *err, const u32 len) 34{ return; } 35static inline void 36log_arm_hw_error(struct cper_sec_proc_arm *err) { return; } 37#endif 38 39struct atl_err { 40 u64 addr; 41 u64 ipid; 42 u32 cpu; 43}; 44 45#if IS_ENABLED(CONFIG_AMD_ATL) 46void amd_atl_register_decoder(unsigned long (*f)(struct atl_err *)); 47void amd_atl_unregister_decoder(void); 48void amd_retire_dram_row(struct atl_err *err); 49unsigned long amd_convert_umc_mca_addr_to_sys_addr(struct atl_err *err); 50#else 51static inline void amd_retire_dram_row(struct atl_err *err) { } 52static inline unsigned long 53amd_convert_umc_mca_addr_to_sys_addr(struct atl_err *err) { return -EINVAL; } 54#endif /* CONFIG_AMD_ATL */ 55 56#endif /* __RAS_H__ */ 57