/**
 * Functions for generating pseudo-random CPER AMPERE error sections.
 *
 **/

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <libcper/BaseTypes.h>
#include <libcper/generator/gen-utils.h>
#include <libcper/generator/sections/gen-section.h>

//Generates a single pseudo-random Ampere error section, saving the resulting address to the given
//location. Returns the size of the newly created section.
size_t generate_section_ampere(void **location)
{
	//Create random bytes.
	size_t size = sizeof(EFI_AMPERE_ERROR_DATA);
	UINT8 *section = generate_random_bytes(size);

	//Reserved byte.
	EFI_AMPERE_ERROR_DATA *ampere_error = (EFI_AMPERE_ERROR_DATA *)section;
	ampere_error->TypeId = 10;
	ampere_error->SubtypeId = 1;
	ampere_error->InstanceId = 0;

	//Set return values, exit.
	*location = section;
	return size;
}
