blob: ac0a024cedb95e4fa7b3fda8f3fb149baa5be623 [file] [log] [blame]
Lawrence Tang67cbed62022-07-18 16:44:51 +01001#ifndef GEN_SECTIONS_H
2#define GEN_SECTIONS_H
3
4#include <stdlib.h>
Lawrence Tang8f977452022-08-24 14:55:07 +01005#include "../../edk/Cper.h"
Lawrence Tang67cbed62022-07-18 16:44:51 +01006
Lawrence Tang8f977452022-08-24 14:55:07 +01007//Section generator function predefinitions.
Lawrence Tang67cbed62022-07-18 16:44:51 +01008size_t generate_section_generic(void** location);
9size_t generate_section_ia32x64(void** location);
10size_t generate_section_arm(void** location);
Lawrence Tangde9707f2022-07-19 10:54:31 +010011size_t generate_section_memory(void** location);
12size_t generate_section_memory2(void** location);
13size_t generate_section_pcie(void** location);
14size_t generate_section_pci_bus(void** location);
15size_t generate_section_pci_dev(void** location);
16size_t generate_section_firmware(void** location);
17size_t generate_section_dmar_generic(void** location);
18size_t generate_section_dmar_vtd(void** location);
19size_t generate_section_dmar_iommu(void** location);
20size_t generate_section_ccix_per(void** location);
21size_t generate_section_cxl_protocol(void** location);
22size_t generate_section_cxl_component(void** location);
Lawrence Tang67cbed62022-07-18 16:44:51 +010023
Lawrence Tang8f977452022-08-24 14:55:07 +010024//Definition structure for a single CPER section generator.
25typedef struct {
26 EFI_GUID* Guid;
27 const char* ShortName;
28 size_t (*Generate)(void**);
29} CPER_GENERATOR_DEFINITION;
30
31extern CPER_GENERATOR_DEFINITION generator_definitions[];
32extern const size_t generator_definitions_len;
33
Lawrence Tang67cbed62022-07-18 16:44:51 +010034#endif