xref: /openbmc/libcper/generator/sections/gen-section-ampere.c (revision ae8f6d9aaeaf37332e8924dd2c0b6f320335548c)
1 /**
2  * Functions for generating pseudo-random CPER AMPERE error sections.
3  *
4  **/
5 
6 #include <stdlib.h>
7 #include <string.h>
8 #include <stdio.h>
9 #include <libcper/BaseTypes.h>
10 #include <libcper/generator/gen-utils.h>
11 #include <libcper/generator/sections/gen-section.h>
12 
13 //Generates a single pseudo-random Ampere error section, saving the resulting address to the given
14 //location. Returns the size of the newly created section.
generate_section_ampere(void ** location,GEN_VALID_BITS_TEST_TYPE validBitsType)15 size_t generate_section_ampere(void **location,
16 			       GEN_VALID_BITS_TEST_TYPE validBitsType)
17 {
18 	(void)validBitsType;
19 	//Create random bytes.
20 	size_t size = sizeof(EFI_AMPERE_ERROR_DATA);
21 	UINT8 *section = generate_random_bytes(size);
22 
23 	//Reserved byte.
24 	EFI_AMPERE_ERROR_DATA *ampere_error = (EFI_AMPERE_ERROR_DATA *)section;
25 	ampere_error->TypeId = 10;
26 	ampere_error->SubtypeId = 1;
27 	ampere_error->InstanceId = 0;
28 
29 	//Set return values, exit.
30 	*location = section;
31 	return size;
32 }
33