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