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