Add test suite, fix a mountain of small errors.
diff --git a/generator/sections/gen-section-ccix-per.c b/generator/sections/gen-section-ccix-per.c
index a61983b..074fd0d 100644
--- a/generator/sections/gen-section-ccix-per.c
+++ b/generator/sections/gen-section-ccix-per.c
@@ -28,6 +28,10 @@
UINT16* reserved = (UINT16*)(bytes + 14);
*reserved = 0; //Reserved bytes 14-15.
+ //Set expected values.
+ UINT32* length = (UINT32*)bytes;
+ *length = size;
+
//Set return values, exit.
*location = bytes;
return size;
diff --git a/generator/sections/gen-section-ia32x64.c b/generator/sections/gen-section-ia32x64.c
index 7412ca3..a9b41e4 100644
--- a/generator/sections/gen-section-ia32x64.c
+++ b/generator/sections/gen-section-ia32x64.c
@@ -75,25 +75,25 @@
{
//Cache
case 0:
- memcpy(guid, &gEfiIa32x64ErrorTypeCacheCheckGuid, sizeof(guid));
+ memcpy(guid, &gEfiIa32x64ErrorTypeCacheCheckGuid, sizeof(EFI_GUID));
memset(error_structure + 30, 0, 34);
break;
//TLB
case 1:
- memcpy(guid, &gEfiIa32x64ErrorTypeTlbCheckGuid, sizeof(guid));
+ memcpy(guid, &gEfiIa32x64ErrorTypeTlbCheckGuid, sizeof(EFI_GUID));
memset(error_structure + 30, 0, 34);
break;
//Bus
case 2:
- memcpy(guid, &gEfiIa32x64ErrorTypeBusCheckGuid, sizeof(guid));
+ memcpy(guid, &gEfiIa32x64ErrorTypeBusCheckGuid, sizeof(EFI_GUID));
memset(error_structure + 35, 0, 29);
break;
//MS
case 3:
- memcpy(guid, &gEfiIa32x64ErrorTypeMsCheckGuid, sizeof(guid));
+ memcpy(guid, &gEfiIa32x64ErrorTypeMsCheckGuid, sizeof(EFI_GUID));
memset(error_structure + 24, 0, 38);
break;
}
diff --git a/generator/sections/gen-section-pci-dev.c b/generator/sections/gen-section-pci-dev.c
index 1882d6c..f6a8bcc 100644
--- a/generator/sections/gen-section-pci-dev.c
+++ b/generator/sections/gen-section-pci-dev.c
@@ -27,6 +27,12 @@
*validation &= 0b11111; //Validation 5-63
for (int i=0; i<5; i++)
*(bytes + 27 + i) = 0; //Bytes 11-15 of ID info.
+
+ //Set expected values.
+ UINT32* memory_number_field = (UINT32*)(bytes + 32);
+ UINT32* io_number_field = (UINT32*)(bytes + 36);
+ *memory_number_field = num_memory_pairs;
+ *io_number_field = num_io_pairs;
//Fix error status.
create_valid_error_section(bytes + 8);