summaryrefslogtreecommitdiffstats
path: root/memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c
diff options
context:
space:
mode:
Diffstat (limited to 'memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c')
-rw-r--r--memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c57
1 files changed, 47 insertions, 10 deletions
diff --git a/memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c b/memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c
index 905a21e..4d056d1 100644
--- a/memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c
+++ b/memtestEDK/Memtest/ConfigurationTable/ConfigurationTable.c
@@ -3,6 +3,22 @@
#include <Library/UefiLib.h>
#include <Library/UefiApplicationEntryPoint.h>
+EFI_GUID EFI_ACPI_20_TABLE_GUID = {0x8868e871,0xe4f1,0x11d3, {0xbc,0x22,0x0,0x80,0xc7,0x3c,0x88,0x81}};
+EFI_GUID ACPI_TABLE_GUID = {0xeb9d2d30,0x2d88,0x11d3, {0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d}};
+EFI_GUID SAL_SYSTEM_TABLE_GUID = {0xeb9d2d32,0x2d88,0x11d3, {0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d}};
+EFI_GUID SMBIOS_TABLE_GUID = {0xeb9d2d31,0x2d88,0x11d3, {0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d}};
+EFI_GUID MPS_TABLE_GUID = {0xeb9d2d2f,0x2d88,0x11d3, {0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d}};
+EFI_GUID EFI_ACPI_TABLE_GUID = {0x8868e871,0xe4f1,0x11d3, {0xbc,0x22,0x0,0x80,0xc7,0x3c,0x88,0x81}};
+EFI_GUID ACPI_10_TABLE_GUID = {0xeb9d2d30,0x2d88,0x11d3, {0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d}};
+
+BOOLEAN compareGUID(EFI_GUID guid1, EFI_GUID guid2) {
+ if (guid1.Data1 == guid2.Data1 && guid1.Data2 == guid2.Data2) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+
+}
EFI_STATUS
EFIAPI
@@ -11,21 +27,42 @@ UefiMain (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- Print(L"This is the Memtest Application\n");
+ Print(L"Application to get ConfigurationTable\n");
EFI_SYSTEM_TABLE *st = SystemTable;
EFI_CONFIGURATION_TABLE *ct = st->ConfigurationTable;
- EFI_GUID guid = ct->VendorGuid;
- UINT32 data1 = guid.Data1;
- // UINT16 data2 = guid.Data2;
- // UINT16 data3 ;
- // UINT8 data4[8];
+ UINTN NumberOfTableEntries = SystemTable->NumberOfTableEntries;
+
+ Print(L"Number of Table entries: %d\n", NumberOfTableEntries);
+
+ for (int i = 0; i < NumberOfTableEntries; i++) {
+
+ EFI_GUID guid = ct->VendorGuid;
+
+ Print(L"GUID: %x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x",
+ guid.Data1, guid.Data2, guid.Data3,
+ guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
+ guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
+ if (compareGUID(guid, EFI_ACPI_20_TABLE_GUID)) {
+ Print(L" EFI_ACPI_20_TABLE_GUID");
+ } else if (compareGUID(guid, ACPI_TABLE_GUID)) {
+ Print(L" ACPI_TABLE_GUID");
+ } else if (compareGUID(guid, SAL_SYSTEM_TABLE_GUID)) {
+ Print(L" SAL_SYSTEM_TABLE_GUID");
+ } else if (compareGUID(guid, SMBIOS_TABLE_GUID)) {
+ Print(L" SMBIOS_TABLE_GUID");
+ } else if (compareGUID(guid, MPS_TABLE_GUID)) {
+ Print(L" MPS_TABLE_GUID");
+ } else if (compareGUID(guid, EFI_ACPI_TABLE_GUID)) {
+ Print(L" EFI_ACPI_TABLE_GUID");
+ } else if (compareGUID(guid, ACPI_10_TABLE_GUID)) {
+ Print(L" ACPI_10_TABLE_GUID");
+ }
- //
- // Use UefiLib Print API to print string to UEFI console
- //
- Print(L"Data1: %d\n", data1);
+ Print(L"\n");
+ ct++;
+ }
return EFI_SUCCESS;
}