xref: /openbmc/libcper/include/libcper/generator/sections/gen-section.h (revision ae8f6d9aaeaf37332e8924dd2c0b6f320335548c)
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 // Run tests with some or all validation bits set.
12 typedef enum { SOME_VALID, RANDOM_VALID, ALL_VALID } GEN_VALID_BITS_TEST_TYPE;
13 
14 //Section generator function predefinitions.
15 size_t generate_section_generic(void **location,
16 				GEN_VALID_BITS_TEST_TYPE validBitsType);
17 size_t generate_section_ia32x64(void **location,
18 				GEN_VALID_BITS_TEST_TYPE validBitsType);
19 size_t generate_section_arm(void **location,
20 			    GEN_VALID_BITS_TEST_TYPE validBitsType);
21 size_t generate_section_memory(void **location,
22 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
23 size_t generate_section_memory2(void **location,
24 				GEN_VALID_BITS_TEST_TYPE validBitsType);
25 size_t generate_section_pcie(void **location,
26 			     GEN_VALID_BITS_TEST_TYPE validBitsType);
27 size_t generate_section_pci_bus(void **location,
28 				GEN_VALID_BITS_TEST_TYPE validBitsType);
29 size_t generate_section_pci_dev(void **location,
30 				GEN_VALID_BITS_TEST_TYPE validBitsType);
31 size_t generate_section_firmware(void **location,
32 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
33 size_t generate_section_dmar_generic(void **location,
34 				     GEN_VALID_BITS_TEST_TYPE validBitsType);
35 size_t generate_section_dmar_vtd(void **location,
36 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
37 size_t generate_section_dmar_iommu(void **location,
38 				   GEN_VALID_BITS_TEST_TYPE validBitsType);
39 size_t generate_section_ccix_per(void **location,
40 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
41 size_t generate_section_cxl_protocol(void **location,
42 				     GEN_VALID_BITS_TEST_TYPE validBitsType);
43 size_t generate_section_cxl_component(void **location,
44 				      GEN_VALID_BITS_TEST_TYPE validBitsType);
45 size_t generate_section_nvidia(void **location,
46 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
47 size_t generate_section_ampere(void **location,
48 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
49 
50 //Definition structure for a single CPER section generator.
51 typedef struct {
52 	EFI_GUID *Guid;
53 	const char *ShortName;
54 	size_t (*Generate)(void **, GEN_VALID_BITS_TEST_TYPE);
55 } CPER_GENERATOR_DEFINITION;
56 
57 extern CPER_GENERATOR_DEFINITION generator_definitions[];
58 extern const size_t generator_definitions_len;
59 
60 #ifdef __cplusplus
61 }
62 #endif
63 
64 #endif
65