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 <libcper/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