Formatting .c/.h files and fix memory leakage issues
Signed-off-by: John Chung <john.chung@arm.com>
Change-Id: Id8328f412c2724992d80c0b3f895c8f85bc4ae68
diff --git a/generator/sections/gen-section-ia32x64.c b/generator/sections/gen-section-ia32x64.c
index a01d2b7..2bd9c72 100644
--- a/generator/sections/gen-section-ia32x64.c
+++ b/generator/sections/gen-section-ia32x64.c
@@ -11,155 +11,160 @@
#include "gen-section.h"
#define IA32X64_ERROR_STRUCTURE_SIZE 64
-void* generate_ia32x64_error_structure();
-size_t generate_ia32x64_context_structure(void** location);
+void *generate_ia32x64_error_structure();
+size_t generate_ia32x64_context_structure(void **location);
//Generates a single pseudo-random IA32/x64 section, saving the resulting address to the given
//location. Returns the size of the newly created section.
-size_t generate_section_ia32x64(void** location)
+size_t generate_section_ia32x64(void **location)
{
- //Set up for generation of error/context structures.
- UINT16 error_structure_num = rand() % 5;
- UINT16 context_structure_num = rand() % 5;
- void* error_structures[error_structure_num];
- void* context_structures[context_structure_num];
- size_t context_structure_lengths[context_structure_num];
+ //Set up for generation of error/context structures.
+ UINT16 error_structure_num = rand() % 4 + 1;
+ UINT16 context_structure_num = rand() % 4 + 1;
+ void *error_structures[error_structure_num];
+ void *context_structures[context_structure_num];
+ size_t context_structure_lengths[context_structure_num];
- //Generate the structures.
- for (int i=0; i<error_structure_num; i++)
- error_structures[i] = generate_ia32x64_error_structure();
- for (int i=0; i<context_structure_num; i++)
- context_structure_lengths[i] = generate_ia32x64_context_structure(context_structures + i);
+ //Generate the structures.
+ for (int i = 0; i < error_structure_num; i++) {
+ error_structures[i] = generate_ia32x64_error_structure();
+ }
+ for (int i = 0; i < context_structure_num; i++) {
+ context_structure_lengths[i] =
+ generate_ia32x64_context_structure(context_structures +
+ i);
+ }
- //Create a valid IA32/x64 section.
- size_t total_len = 64 + (IA32X64_ERROR_STRUCTURE_SIZE * error_structure_num);
- for (int i=0; i<context_structure_num; i++)
- total_len += context_structure_lengths[i];
- UINT8* section = generate_random_bytes(total_len);
+ //Create a valid IA32/x64 section.
+ size_t total_len =
+ 64 + (IA32X64_ERROR_STRUCTURE_SIZE * error_structure_num);
+ for (int i = 0; i < context_structure_num; i++) {
+ total_len += context_structure_lengths[i];
+ }
+ UINT8 *section = generate_random_bytes(total_len);
- //Null extend the end of the CPUID in the header.
- for (int i=0; i<16; i++)
- *(section + 48 + i) = 0x0;
+ //Null extend the end of the CPUID in the header.
+ for (int i = 0; i < 16; i++) {
+ *(section + 48 + i) = 0x0;
+ }
- //Set header information.
- UINT64* validation = (UINT64*)section;
- *validation &= 0b11;
- *validation |= error_structure_num << 2;
- *validation |= context_structure_num << 8;
+ //Set header information.
+ UINT64 *validation = (UINT64 *)section;
+ *validation &= 0x3;
+ *validation |= error_structure_num << 2;
+ *validation |= context_structure_num << 8;
- //Copy in structures, free resources.
- UINT8* cur_pos = section + 64;
- for (int i=0; i<error_structure_num; i++)
- {
- memcpy(cur_pos, error_structures[i], IA32X64_ERROR_STRUCTURE_SIZE);
- free(error_structures[i]);
- cur_pos += IA32X64_ERROR_STRUCTURE_SIZE;
- }
- for (int i=0; i<context_structure_num; i++)
- {
- memcpy(cur_pos, context_structures[i], context_structure_lengths[i]);
- free(context_structures[i]);
- cur_pos += context_structure_lengths[i];
- }
+ //Copy in structures, free resources.
+ UINT8 *cur_pos = section + 64;
+ for (int i = 0; i < error_structure_num; i++) {
+ memcpy(cur_pos, error_structures[i],
+ IA32X64_ERROR_STRUCTURE_SIZE);
+ free(error_structures[i]);
+ cur_pos += IA32X64_ERROR_STRUCTURE_SIZE;
+ }
+ for (int i = 0; i < context_structure_num; i++) {
+ memcpy(cur_pos, context_structures[i],
+ context_structure_lengths[i]);
+ free(context_structures[i]);
+ cur_pos += context_structure_lengths[i];
+ }
- //Set return values, exist.
- *location = section;
- return total_len;
+ //Set return values, exist.
+ *location = section;
+ return total_len;
}
//Generates a single IA32/x64 error structure. Must later be freed.
-void* generate_ia32x64_error_structure()
+void *generate_ia32x64_error_structure()
{
- UINT8* error_structure = generate_random_bytes(IA32X64_ERROR_STRUCTURE_SIZE);
+ UINT8 *error_structure =
+ generate_random_bytes(IA32X64_ERROR_STRUCTURE_SIZE);
- //Set error structure reserved space to zero.
- UINT64* validation = (UINT64*)(error_structure + 16);
- *validation &= 0x1F;
+ //Set error structure reserved space to zero.
+ UINT64 *validation = (UINT64 *)(error_structure + 16);
+ *validation &= 0x1F;
- //Create a random type of error structure.
- EFI_GUID* guid = (EFI_GUID*)error_structure;
- UINT64* check_info = (UINT64*)(error_structure + 24);
- int error_structure_type = rand() % 4;
- switch (error_structure_type)
- {
- //Cache
- case 0:
- memcpy(guid, &gEfiIa32x64ErrorTypeCacheCheckGuid, sizeof(EFI_GUID));
+ //Create a random type of error structure.
+ EFI_GUID *guid = (EFI_GUID *)error_structure;
+ UINT64 *check_info = (UINT64 *)(error_structure + 24);
+ int error_structure_type = rand() % 4;
+ switch (error_structure_type) {
+ //Cache
+ case 0:
+ memcpy(guid, &gEfiIa32x64ErrorTypeCacheCheckGuid,
+ sizeof(EFI_GUID));
- //Set reserved space to zero.
- *check_info &= ~0xFF00;
- *check_info &= 0x3FFFFFFF;
- break;
+ //Set reserved space to zero.
+ *check_info &= ~0x20FF00;
+ *check_info &= 0x3FFFFFFF;
+ break;
- //TLB
- case 1:
- memcpy(guid, &gEfiIa32x64ErrorTypeTlbCheckGuid, sizeof(EFI_GUID));
+ //TLB
+ case 1:
+ memcpy(guid, &gEfiIa32x64ErrorTypeTlbCheckGuid,
+ sizeof(EFI_GUID));
- //Set reserved space to zero.
- *check_info &= ~0xFF00;
- *check_info &= 0x3FFFFFFF;
- break;
+ //Set reserved space to zero.
+ *check_info &= ~0x20FF00;
+ *check_info &= 0x3FFFFFFF;
+ break;
- //Bus
- case 2:
- memcpy(guid, &gEfiIa32x64ErrorTypeBusCheckGuid, sizeof(EFI_GUID));
+ //Bus
+ case 2:
+ memcpy(guid, &gEfiIa32x64ErrorTypeBusCheckGuid,
+ sizeof(EFI_GUID));
- //Set reserved space to zero.
- *check_info &= ~0xF800;
- *check_info &= 0x7FFFFFFFF;
- break;
+ //Set reserved space to zero.
+ *check_info &= ~0x20F800;
+ *check_info &= 0x7FFFFFFFF;
+ break;
- //MS
- case 3:
- memcpy(guid, &gEfiIa32x64ErrorTypeMsCheckGuid, sizeof(EFI_GUID));
+ //MS
+ case 3:
+ memcpy(guid, &gEfiIa32x64ErrorTypeMsCheckGuid,
+ sizeof(EFI_GUID));
- //Set reserved space to zero.
- *check_info &= ~0xFFE0;
- *check_info &= 0xFFFFFF;
- break;
- }
+ //Set reserved space to zero.
+ *check_info &= ~0xFFE0;
+ *check_info &= 0xFFFFFF;
+ break;
+ }
- return error_structure;
+ return error_structure;
}
//Generates a single IA32/x64 context structure. Must later be freed.
-size_t generate_ia32x64_context_structure(void** location)
+size_t generate_ia32x64_context_structure(void **location)
{
- //Initial length is 16 bytes. Add extra based on type.
- int reg_type = rand() % 8;
- int reg_size = 0;
+ //Initial length is 16 bytes. Add extra based on type.
+ int reg_type = rand() % 8;
+ int reg_size = 0;
- //Set register size.
- if (reg_type == 2)
- {
- reg_size = 92; //IA32 registers.
- }
- else if (reg_type == 3)
- {
- reg_size = 244; //x64 registers.
- }
- else
- {
- reg_size = (rand() % 5 + 1) * 32; //Not table defined.
- }
+ //Set register size.
+ if (reg_type == 2) {
+ reg_size = 92; //IA32 registers.
+ } else if (reg_type == 3) {
+ reg_size = 244; //x64 registers.
+ } else {
+ reg_size = (rand() % 5 + 1) * 32; //Not table defined.
+ }
- //Create structure randomly.
- int total_size = 16 + reg_size;
- UINT16* context_structure = (UINT16*)generate_random_bytes(total_size);
+ //Create structure randomly.
+ int total_size = 16 + reg_size;
+ UINT16 *context_structure = (UINT16 *)generate_random_bytes(total_size);
- //If it is x64 registers, set reserved area accordingly.
- if (reg_type == 3)
- {
- UINT8* reg_bytes = (UINT8*)(context_structure + 8);
- UINT32* reserved = (UINT32*)(reg_bytes + 140);
- *reserved = 0;
- }
+ //If it is x64 registers, set reserved area accordingly.
+ if (reg_type == 3) {
+ UINT8 *reg_bytes = (UINT8 *)(context_structure + 8);
+ UINT32 *reserved = (UINT32 *)(reg_bytes + 140);
+ *reserved = 0;
+ }
- //Set header information.
- *(context_structure) = reg_type;
- *(context_structure + 1) = reg_size;
+ //Set header information.
+ *(context_structure) = reg_type;
+ *(context_structure + 1) = reg_size;
- //Set return values and exit.
- *location = context_structure;
- return total_size;
-}
\ No newline at end of file
+ //Set return values and exit.
+ *location = context_structure;
+ return total_size;
+}