18f977457SLawrence Tang #ifndef GEN_SECTIONS_H
28f977457SLawrence Tang #define GEN_SECTIONS_H
38f977457SLawrence Tang 
48f977457SLawrence Tang #include <stdlib.h>
58f977457SLawrence Tang #include "../../edk/Cper.h"
68f977457SLawrence Tang 
78f977457SLawrence Tang //Section generator function predefinitions.
88f977457SLawrence Tang size_t generate_section_generic(void **location);
98f977457SLawrence Tang size_t generate_section_ia32x64(void **location);
108f977457SLawrence Tang size_t generate_section_arm(void **location);
118f977457SLawrence Tang size_t generate_section_memory(void **location);
128f977457SLawrence Tang size_t generate_section_memory2(void **location);
138f977457SLawrence Tang size_t generate_section_pcie(void **location);
148f977457SLawrence Tang size_t generate_section_pci_bus(void **location);
158f977457SLawrence Tang size_t generate_section_pci_dev(void **location);
168f977457SLawrence Tang size_t generate_section_firmware(void **location);
178f977457SLawrence Tang size_t generate_section_dmar_generic(void **location);
188f977457SLawrence Tang size_t generate_section_dmar_vtd(void **location);
198f977457SLawrence Tang size_t generate_section_dmar_iommu(void **location);
208f977457SLawrence Tang size_t generate_section_ccix_per(void **location);
218f977457SLawrence Tang size_t generate_section_cxl_protocol(void **location);
228f977457SLawrence Tang size_t generate_section_cxl_component(void **location);
23*683e0550SKarthik Rajagopalan size_t generate_section_nvidia(void **location);
248f977457SLawrence Tang 
258f977457SLawrence Tang //Definition structure for a single CPER section generator.
268f977457SLawrence Tang typedef struct {
278f977457SLawrence Tang 	EFI_GUID *Guid;
288f977457SLawrence Tang 	const char *ShortName;
298f977457SLawrence Tang 	size_t (*Generate)(void **);
308f977457SLawrence Tang } CPER_GENERATOR_DEFINITION;
318f977457SLawrence Tang 
328f977457SLawrence Tang extern CPER_GENERATOR_DEFINITION generator_definitions[];
338f977457SLawrence Tang extern const size_t generator_definitions_len;
348f977457SLawrence Tang 
358f977457SLawrence Tang #endif
36