#ifndef LINUX_CPER_H
#define LINUX_CPER_H
#include <linux/uuid.h>
#include <linux/trace_seq.h>
#define CPER_SIG_RECORD …
#define CPER_SIG_SIZE …
#define CPER_SIG_END …
#define CPER_RECORD_REV …
#define CPER_REC_LEN …
enum { … };
#define CPER_VALID_PLATFORM_ID …
#define CPER_VALID_TIMESTAMP …
#define CPER_VALID_PARTITION_ID …
#define CPER_NOTIFY_CMC …
#define CPER_NOTIFY_CPE …
#define CPER_NOTIFY_MCE …
#define CPER_NOTIFY_PCIE …
#define CPER_NOTIFY_INIT …
#define CPER_NOTIFY_NMI …
#define CPER_NOTIFY_BOOT …
#define CPER_NOTIFY_DMAR …
#define CPER_SEC_CXL_GEN_MEDIA_GUID …
#define CPER_SEC_CXL_DRAM_GUID …
#define CPER_SEC_CXL_MEM_MODULE_GUID …
#define CPER_HW_ERROR_FLAGS_RECOVERED …
#define CPER_HW_ERROR_FLAGS_PREVERR …
#define CPER_HW_ERROR_FLAGS_SIMULATED …
#define CPER_SEC_REV …
#define CPER_SEC_VALID_FRU_ID …
#define CPER_SEC_VALID_FRU_TEXT …
#define CPER_SEC_PRIMARY …
#define CPER_SEC_CONTAINMENT_WARNING …
#define CPER_SEC_RESET …
#define CPER_SEC_ERROR_THRESHOLD_EXCEEDED …
#define CPER_SEC_RESOURCE_NOT_ACCESSIBLE …
#define CPER_SEC_LATENT_ERROR …
#define CPER_SEC_PROC_GENERIC …
#define CPER_SEC_PROC_IA …
#define CPER_SEC_PROC_IPF …
#define CPER_SEC_PROC_ARM …
#define CPER_SEC_PLATFORM_MEM …
#define CPER_SEC_PCIE …
#define CPER_SEC_FW_ERR_REC_REF …
#define CPER_SEC_PCI_X_BUS …
#define CPER_SEC_PCI_DEV …
#define CPER_SEC_DMAR_GENERIC …
#define CPER_SEC_DMAR_VT …
#define CPER_SEC_DMAR_IOMMU …
#define CPER_PROC_VALID_TYPE …
#define CPER_PROC_VALID_ISA …
#define CPER_PROC_VALID_ERROR_TYPE …
#define CPER_PROC_VALID_OPERATION …
#define CPER_PROC_VALID_FLAGS …
#define CPER_PROC_VALID_LEVEL …
#define CPER_PROC_VALID_VERSION …
#define CPER_PROC_VALID_BRAND_INFO …
#define CPER_PROC_VALID_ID …
#define CPER_PROC_VALID_TARGET_ADDRESS …
#define CPER_PROC_VALID_REQUESTOR_ID …
#define CPER_PROC_VALID_RESPONDER_ID …
#define CPER_PROC_VALID_IP …
#define CPER_MEM_VALID_ERROR_STATUS …
#define CPER_MEM_VALID_PA …
#define CPER_MEM_VALID_PA_MASK …
#define CPER_MEM_VALID_NODE …
#define CPER_MEM_VALID_CARD …
#define CPER_MEM_VALID_MODULE …
#define CPER_MEM_VALID_BANK …
#define CPER_MEM_VALID_DEVICE …
#define CPER_MEM_VALID_ROW …
#define CPER_MEM_VALID_COLUMN …
#define CPER_MEM_VALID_BIT_POSITION …
#define CPER_MEM_VALID_REQUESTOR_ID …
#define CPER_MEM_VALID_RESPONDER_ID …
#define CPER_MEM_VALID_TARGET_ID …
#define CPER_MEM_VALID_ERROR_TYPE …
#define CPER_MEM_VALID_RANK_NUMBER …
#define CPER_MEM_VALID_CARD_HANDLE …
#define CPER_MEM_VALID_MODULE_HANDLE …
#define CPER_MEM_VALID_ROW_EXT …
#define CPER_MEM_VALID_BANK_GROUP …
#define CPER_MEM_VALID_BANK_ADDRESS …
#define CPER_MEM_VALID_CHIP_ID …
#define CPER_MEM_EXT_ROW_MASK …
#define CPER_MEM_EXT_ROW_SHIFT …
#define CPER_MEM_BANK_ADDRESS_MASK …
#define CPER_MEM_BANK_GROUP_SHIFT …
#define CPER_MEM_CHIP_ID_SHIFT …
#define CPER_PCIE_VALID_PORT_TYPE …
#define CPER_PCIE_VALID_VERSION …
#define CPER_PCIE_VALID_COMMAND_STATUS …
#define CPER_PCIE_VALID_DEVICE_ID …
#define CPER_PCIE_VALID_SERIAL_NUMBER …
#define CPER_PCIE_VALID_BRIDGE_CONTROL_STATUS …
#define CPER_PCIE_VALID_CAPABILITY …
#define CPER_PCIE_VALID_AER_INFO …
#define CPER_PCIE_SLOT_SHIFT …
#define CPER_ARM_VALID_MPIDR …
#define CPER_ARM_VALID_AFFINITY_LEVEL …
#define CPER_ARM_VALID_RUNNING_STATE …
#define CPER_ARM_VALID_VENDOR_INFO …
#define CPER_ARM_INFO_VALID_MULTI_ERR …
#define CPER_ARM_INFO_VALID_FLAGS …
#define CPER_ARM_INFO_VALID_ERR_INFO …
#define CPER_ARM_INFO_VALID_VIRT_ADDR …
#define CPER_ARM_INFO_VALID_PHYSICAL_ADDR …
#define CPER_ARM_INFO_FLAGS_FIRST …
#define CPER_ARM_INFO_FLAGS_LAST …
#define CPER_ARM_INFO_FLAGS_PROPAGATED …
#define CPER_ARM_INFO_FLAGS_OVERFLOW …
#define CPER_ARM_CACHE_ERROR …
#define CPER_ARM_TLB_ERROR …
#define CPER_ARM_BUS_ERROR …
#define CPER_ARM_VENDOR_ERROR …
#define CPER_ARM_MAX_TYPE …
#define CPER_ARM_ERR_VALID_TRANSACTION_TYPE …
#define CPER_ARM_ERR_VALID_OPERATION_TYPE …
#define CPER_ARM_ERR_VALID_LEVEL …
#define CPER_ARM_ERR_VALID_PROC_CONTEXT_CORRUPT …
#define CPER_ARM_ERR_VALID_CORRECTED …
#define CPER_ARM_ERR_VALID_PRECISE_PC …
#define CPER_ARM_ERR_VALID_RESTARTABLE_PC …
#define CPER_ARM_ERR_VALID_PARTICIPATION_TYPE …
#define CPER_ARM_ERR_VALID_TIME_OUT …
#define CPER_ARM_ERR_VALID_ADDRESS_SPACE …
#define CPER_ARM_ERR_VALID_MEM_ATTRIBUTES …
#define CPER_ARM_ERR_VALID_ACCESS_MODE …
#define CPER_ARM_ERR_TRANSACTION_SHIFT …
#define CPER_ARM_ERR_TRANSACTION_MASK …
#define CPER_ARM_ERR_OPERATION_SHIFT …
#define CPER_ARM_ERR_OPERATION_MASK …
#define CPER_ARM_ERR_LEVEL_SHIFT …
#define CPER_ARM_ERR_LEVEL_MASK …
#define CPER_ARM_ERR_PC_CORRUPT_SHIFT …
#define CPER_ARM_ERR_PC_CORRUPT_MASK …
#define CPER_ARM_ERR_CORRECTED_SHIFT …
#define CPER_ARM_ERR_CORRECTED_MASK …
#define CPER_ARM_ERR_PRECISE_PC_SHIFT …
#define CPER_ARM_ERR_PRECISE_PC_MASK …
#define CPER_ARM_ERR_RESTARTABLE_PC_SHIFT …
#define CPER_ARM_ERR_RESTARTABLE_PC_MASK …
#define CPER_ARM_ERR_PARTICIPATION_TYPE_SHIFT …
#define CPER_ARM_ERR_PARTICIPATION_TYPE_MASK …
#define CPER_ARM_ERR_TIME_OUT_SHIFT …
#define CPER_ARM_ERR_TIME_OUT_MASK …
#define CPER_ARM_ERR_ADDRESS_SPACE_SHIFT …
#define CPER_ARM_ERR_ADDRESS_SPACE_MASK …
#define CPER_ARM_ERR_MEM_ATTRIBUTES_SHIFT …
#define CPER_ARM_ERR_MEM_ATTRIBUTES_MASK …
#define CPER_ARM_ERR_ACCESS_MODE_SHIFT …
#define CPER_ARM_ERR_ACCESS_MODE_MASK …
#pragma pack(1)
struct cper_record_header { … };
struct cper_section_descriptor { … };
struct cper_sec_proc_generic { … };
struct cper_sec_proc_ia { … };
struct cper_ia_err_info { … };
struct cper_ia_proc_ctx { … };
struct cper_sec_proc_arm { … };
struct cper_arm_err_info { … };
struct cper_arm_ctx_info { … };
struct cper_sec_mem_err_old { … };
struct cper_sec_mem_err { … };
struct cper_mem_err_compact { … };
static inline u32 cper_get_mem_extension(u64 mem_valid, u8 mem_extended)
{ … }
struct cper_sec_pcie { … };
struct cper_sec_fw_err_rec_ref { … };
#pragma pack()
extern const char *const cper_proc_error_type_strs[4];
u64 cper_next_record_id(void);
const char *cper_severity_str(unsigned int);
const char *cper_mem_err_type_str(unsigned int);
const char *cper_mem_err_status_str(u64 status);
void cper_print_bits(const char *prefix, unsigned int bits,
const char * const strs[], unsigned int strs_size);
void cper_mem_err_pack(const struct cper_sec_mem_err *,
struct cper_mem_err_compact *);
const char *cper_mem_err_unpack(struct trace_seq *,
struct cper_mem_err_compact *);
void cper_print_proc_arm(const char *pfx,
const struct cper_sec_proc_arm *proc);
void cper_print_proc_ia(const char *pfx,
const struct cper_sec_proc_ia *proc);
int cper_mem_err_location(struct cper_mem_err_compact *mem, char *msg);
int cper_dimm_err_location(struct cper_mem_err_compact *mem, char *msg);
struct acpi_hest_generic_status;
void cper_estatus_print(const char *pfx,
const struct acpi_hest_generic_status *estatus);
int cper_estatus_check_header(const struct acpi_hest_generic_status *estatus);
int cper_estatus_check(const struct acpi_hest_generic_status *estatus);
#endif