blob: ed2bc70205a45fb993fddde9f4a21ea8610149f0 [file] [log] [blame]
#ifndef CPER_SECTION_MEMORY_H
#define CPER_SECTION_MEMORY_H
#ifdef __cplusplus
extern "C" {
#endif
#include <json.h>
#include "Cper.h"
#define MEMORY_ERROR_VALID_BITFIELD_NAMES \
(const char *[]) \
{ \
"errorStatusValid", "physicalAddressValid", \
"physicalAddressMaskValid", "nodeValid", "cardValid", \
"moduleValid", "bankValid", "deviceValid", "rowValid", \
"columnValid", "bitPositionValid", \
"platformRequestorIDValid", \
"platformResponderIDValid", \
"memoryPlatformTargetValid", "memoryErrorTypeValid", \
"rankNumberValid", "cardHandleValid", \
"moduleHandleValid", "extendedRowBitsValid", \
"bankGroupValid", "bankAddressValid", \
"chipIdentificationValid" \
}
#define MEMORY_ERROR_TYPES_KEYS \
(int[]) \
{ \
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 \
}
#define MEMORY_ERROR_TYPES_VALUES \
(const char *[]) \
{ \
"Unknown", "No Error", "Single-bit ECC", "Multi-bit ECC", \
"Single-symbol ChipKill ECC", \
"Multi-symbol ChipKill ECC", "Master Abort", \
"Target Abort", "Parity Error", "Watchdog Timeout", \
"Invalid Address", "Mirror Broken", "Memory Sparing", \
"Scrub Corrected Error", "Scrub Uncorrected Error", \
"Physical Memory Map-out Event" \
}
#define MEMORY_ERROR_2_VALID_BITFIELD_NAMES \
(const char *[]) \
{ \
"errorStatusValid", "physicalAddressValid", \
"physicalAddressMaskValid", "nodeValid", "cardValid", \
"moduleValid", "bankValid", "deviceValid", "rowValid", \
"columnValid", "rankValid", "bitPositionValid", \
"chipIDValid", "memoryErrorTypeValid", "statusValid", \
"requestorIDValid", "responderIDValid", \
"targetIDValid", "cardHandleValid", \
"moduleHandleValid", "bankGroupValid", \
"bankAddressValid" \
}
json_object *cper_section_platform_memory_to_ir(void *section);
json_object *cper_section_platform_memory2_to_ir(void *section);
void ir_section_memory_to_cper(json_object *section, FILE *out);
void ir_section_memory2_to_cper(json_object *section, FILE *out);
#ifdef __cplusplus
}
#endif
#endif