1 #ifndef GEN_SECTIONS_H 2 #define GEN_SECTIONS_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <stdlib.h> 9 #include "../../edk/Cper.h" 10 11 //Section generator function predefinitions. 12 size_t generate_section_generic(void **location); 13 size_t generate_section_ia32x64(void **location); 14 size_t generate_section_arm(void **location); 15 size_t generate_section_memory(void **location); 16 size_t generate_section_memory2(void **location); 17 size_t generate_section_pcie(void **location); 18 size_t generate_section_pci_bus(void **location); 19 size_t generate_section_pci_dev(void **location); 20 size_t generate_section_firmware(void **location); 21 size_t generate_section_dmar_generic(void **location); 22 size_t generate_section_dmar_vtd(void **location); 23 size_t generate_section_dmar_iommu(void **location); 24 size_t generate_section_ccix_per(void **location); 25 size_t generate_section_cxl_protocol(void **location); 26 size_t generate_section_cxl_component(void **location); 27 size_t generate_section_nvidia(void **location); 28 size_t generate_section_ampere(void **location); 29 30 //Definition structure for a single CPER section generator. 31 typedef struct { 32 EFI_GUID *Guid; 33 const char *ShortName; 34 size_t (*Generate)(void **); 35 } CPER_GENERATOR_DEFINITION; 36 37 extern CPER_GENERATOR_DEFINITION generator_definitions[]; 38 extern const size_t generator_definitions_len; 39 40 #ifdef __cplusplus 41 } 42 #endif 43 44 #endif 45