45 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * CXL protocol Error INJection support.4 *5 * Copyright (c) 2023 Advanced Micro Devices, Inc.6 * All Rights Reserved.7 *8 * Author: Ben Cheatham <benjamin.cheatham@amd.com>9 */10#ifndef EINJ_CXL_H11#define EINJ_CXL_H12 13#include <linux/errno.h>14#include <linux/types.h>15 16struct pci_dev;17struct seq_file;18 19#if IS_ENABLED(CONFIG_ACPI_APEI_EINJ_CXL)20int einj_cxl_available_error_type_show(struct seq_file *m, void *v);21int einj_cxl_inject_error(struct pci_dev *dport_dev, u64 type);22int einj_cxl_inject_rch_error(u64 rcrb, u64 type);23bool einj_cxl_is_initialized(void);24#else /* !IS_ENABLED(CONFIG_ACPI_APEI_EINJ_CXL) */25static inline int einj_cxl_available_error_type_show(struct seq_file *m,26 void *v)27{28 return -ENXIO;29}30 31static inline int einj_cxl_inject_error(struct pci_dev *dport_dev, u64 type)32{33 return -ENXIO;34}35 36static inline int einj_cxl_inject_rch_error(u64 rcrb, u64 type)37{38 return -ENXIO;39}40 41static inline bool einj_cxl_is_initialized(void) { return false; }42#endif /* CONFIG_ACPI_APEI_EINJ_CXL */43 44#endif /* EINJ_CXL_H */45