blob: 93f61beda886c31a23addf2d502d3c5bc22ae151 [file] [log] [blame]
Lawrence Tang214a1542022-07-06 14:11:28 +01001#ifndef CPER_SECTION_PCI_BUS_H
2#define CPER_SECTION_PCI_BUS_H
3
Karthik Rajagopalan255bd812024-09-06 14:36:34 -07004#ifdef __cplusplus
5extern "C" {
6#endif
7
Lawrence Tang5202bbb2022-08-12 14:54:36 +01008#include <json.h>
Lawrence Tang214a1542022-07-06 14:11:28 +01009#include "../edk/Cper.h"
10
John Chungf8fc7052024-05-03 20:05:29 +080011#define PCI_BUS_ERROR_VALID_BITFIELD_NAMES \
12 (const char *[]) \
13 { \
14 "errorStatusValid", "errorTypeValid", "busIDValid", \
15 "busAddressValid", "busDataValid", "commandValid", \
16 "requestorIDValid", "completerIDValid", \
17 "targetIDValid" \
18 }
19#define PCI_BUS_ERROR_TYPES_KEYS \
20 (int[]) \
21 { \
22 0, 1, 2, 3, 4, 5, 6, 7 \
23 }
24#define PCI_BUS_ERROR_TYPES_VALUES \
25 (const char *[]) \
26 { \
27 "Unknown/OEM Specific Error", "Data Parity Error", \
28 "System Error", "Master Abort", \
29 "Bus Timeout/No Device Present (No DEVSEL#)", \
30 "Master Data Parity Error", "Address Parity Error", \
31 "Command Parity Error" \
32 }
Lawrence Tang214a1542022-07-06 14:11:28 +010033
John Chungf8fc7052024-05-03 20:05:29 +080034json_object *cper_section_pci_bus_to_ir(void *section);
35void ir_section_pci_bus_to_cper(json_object *section, FILE *out);
Lawrence Tang214a1542022-07-06 14:11:28 +010036
Karthik Rajagopalan255bd812024-09-06 14:36:34 -070037#ifdef __cplusplus
38}
39#endif
40
John Chungf8fc7052024-05-03 20:05:29 +080041#endif