blob: 1c6e227927e9d791969ae7c47ad9985ea6f62361 [file] [log] [blame]
Lawrence Tang67cbed62022-07-18 16:44:51 +01001#ifndef GEN_SECTIONS_H
2#define GEN_SECTIONS_H
3
Karthik Rajagopalan255bd812024-09-06 14:36:34 -07004#ifdef __cplusplus
5extern "C" {
6#endif
7
Lawrence Tang67cbed62022-07-18 16:44:51 +01008#include <stdlib.h>
Lawrence Tang8f977452022-08-24 14:55:07 +01009#include "../../edk/Cper.h"
Lawrence Tang67cbed62022-07-18 16:44:51 +010010
Lawrence Tang8f977452022-08-24 14:55:07 +010011//Section generator function predefinitions.
John Chungf8fc7052024-05-03 20:05:29 +080012size_t generate_section_generic(void **location);
13size_t generate_section_ia32x64(void **location);
14size_t generate_section_arm(void **location);
15size_t generate_section_memory(void **location);
16size_t generate_section_memory2(void **location);
17size_t generate_section_pcie(void **location);
18size_t generate_section_pci_bus(void **location);
19size_t generate_section_pci_dev(void **location);
20size_t generate_section_firmware(void **location);
21size_t generate_section_dmar_generic(void **location);
22size_t generate_section_dmar_vtd(void **location);
23size_t generate_section_dmar_iommu(void **location);
24size_t generate_section_ccix_per(void **location);
25size_t generate_section_cxl_protocol(void **location);
26size_t generate_section_cxl_component(void **location);
Karthik Rajagopalan683e0552024-03-07 12:30:43 -080027size_t generate_section_nvidia(void **location);
Dung Cao04f57712024-08-29 08:03:59 +000028size_t generate_section_ampere(void **location);
Lawrence Tang67cbed62022-07-18 16:44:51 +010029
Lawrence Tang8f977452022-08-24 14:55:07 +010030//Definition structure for a single CPER section generator.
31typedef struct {
John Chungf8fc7052024-05-03 20:05:29 +080032 EFI_GUID *Guid;
33 const char *ShortName;
34 size_t (*Generate)(void **);
Lawrence Tang8f977452022-08-24 14:55:07 +010035} CPER_GENERATOR_DEFINITION;
36
37extern CPER_GENERATOR_DEFINITION generator_definitions[];
38extern const size_t generator_definitions_len;
39
Karthik Rajagopalan255bd812024-09-06 14:36:34 -070040#ifdef __cplusplus
41}
42#endif
43
John Chungf8fc7052024-05-03 20:05:29 +080044#endif