blob: a28cdf1fc80838e9e873d81d62955f3857ad3276 [file] [log] [blame]
Dung Cao04f57712024-08-29 08:03:59 +00001/**
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>
Thu Nguyene42fb482024-10-15 14:43:11 +00009#include <libcper/BaseTypes.h>
10#include <libcper/generator/gen-utils.h>
11#include <libcper/generator/sections/gen-section.h>
Dung Cao04f57712024-08-29 08:03:59 +000012
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.
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -080015size_t generate_section_ampere(void **location,
16 GEN_VALID_BITS_TEST_TYPE validBitsType)
Dung Cao04f57712024-08-29 08:03:59 +000017{
Aushim Nagarkattiae8f6d92025-01-29 17:34:44 -080018 (void)validBitsType;
Dung Cao04f57712024-08-29 08:03:59 +000019 //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}