1 #ifndef CPER_SECTION_CXL_COMPONENT_H 2 #define CPER_SECTION_CXL_COMPONENT_H 3 4 #include "json.h" 5 #include "../edk/Cper.h" 6 7 /// 8 /// CXL Generic Component Error Section 9 /// 10 typedef struct { 11 UINT64 VendorId : 16; 12 UINT64 DeviceId : 16; 13 UINT64 FunctionNumber : 8; 14 UINT64 DeviceNumber : 8; 15 UINT64 BusNumber : 8; 16 UINT64 SegmentNumber : 16; 17 UINT64 Resv1 : 3; 18 UINT64 SlotNumber : 13; 19 UINT64 Resv2 : 8; 20 } EFI_CXL_DEVICE_ID_INFO; 21 22 typedef struct { 23 UINT32 Length; 24 UINT64 ValidBits; 25 EFI_CXL_DEVICE_ID_INFO DeviceId; 26 UINT64 DeviceSerial; 27 } EFI_CXL_COMPONENT_EVENT_HEADER; 28 29 typedef struct { 30 //todo: What is the structure for this? The UEFI spec is a bit vague. 31 } EFI_CXL_COMPONENT_COMMON_RECORD_HEAD; 32 33 json_object* cper_section_cxl_component_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor); 34 35 #endif