xref: /openbmc/libcper/include/libcper/generator/sections/gen-section.h (revision 51c1813200b42fa35d49eb0c214339ac479f090d)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #ifndef GEN_SECTIONS_H
4 #define GEN_SECTIONS_H
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #include <stdlib.h>
11 #include <libcper/Cper.h>
12 
13 // Run tests with some or all validation bits set.
14 typedef enum { SOME_VALID, RANDOM_VALID, ALL_VALID } GEN_VALID_BITS_TEST_TYPE;
15 
16 //Section generator function predefinitions.
17 size_t generate_section_generic(void **location,
18 				GEN_VALID_BITS_TEST_TYPE validBitsType);
19 size_t generate_section_ia32x64(void **location,
20 				GEN_VALID_BITS_TEST_TYPE validBitsType);
21 size_t generate_section_arm(void **location,
22 			    GEN_VALID_BITS_TEST_TYPE validBitsType);
23 size_t generate_section_arm_ras(void **location,
24 				GEN_VALID_BITS_TEST_TYPE validBitsType);
25 size_t generate_section_memory(void **location,
26 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
27 size_t generate_section_memory2(void **location,
28 				GEN_VALID_BITS_TEST_TYPE validBitsType);
29 size_t generate_section_pcie(void **location,
30 			     GEN_VALID_BITS_TEST_TYPE validBitsType);
31 size_t generate_section_pci_bus(void **location,
32 				GEN_VALID_BITS_TEST_TYPE validBitsType);
33 size_t generate_section_pci_dev(void **location,
34 				GEN_VALID_BITS_TEST_TYPE validBitsType);
35 size_t generate_section_firmware(void **location,
36 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
37 size_t generate_section_dmar_generic(void **location,
38 				     GEN_VALID_BITS_TEST_TYPE validBitsType);
39 size_t generate_section_dmar_vtd(void **location,
40 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
41 size_t generate_section_dmar_iommu(void **location,
42 				   GEN_VALID_BITS_TEST_TYPE validBitsType);
43 size_t generate_section_ccix_per(void **location,
44 				 GEN_VALID_BITS_TEST_TYPE validBitsType);
45 size_t generate_section_cxl_protocol(void **location,
46 				     GEN_VALID_BITS_TEST_TYPE validBitsType);
47 size_t generate_section_cxl_component(void **location,
48 				      GEN_VALID_BITS_TEST_TYPE validBitsType);
49 size_t generate_section_nvidia(void **location,
50 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
51 size_t generate_section_nvidia_events(void **location,
52 				      GEN_VALID_BITS_TEST_TYPE validBitsType);
53 size_t generate_section_ampere(void **location,
54 			       GEN_VALID_BITS_TEST_TYPE validBitsType);
55 
56 //Definition structure for a single CPER section generator.
57 typedef struct {
58 	EFI_GUID *Guid;
59 	const char *ShortName;
60 	size_t (*Generate)(void **, GEN_VALID_BITS_TEST_TYPE);
61 } CPER_GENERATOR_DEFINITION;
62 
63 extern CPER_GENERATOR_DEFINITION generator_definitions[];
64 extern const size_t generator_definitions_len;
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 
70 #endif
71