/**\r
Get the DMAR ACPI table.\r
\r
- @retval EFI_SUCCESS The DMAR ACPI table is got.\r
- @retval EFI_NOT_FOUND The DMAR ACPI table is not found.\r
+ @retval EFI_SUCCESS The DMAR ACPI table is got.\r
+ @retval EFI_ALREADY_STARTED The DMAR ACPI table has been got previously.\r
+ @retval EFI_NOT_FOUND The DMAR ACPI table is not found.\r
**/\r
EFI_STATUS\r
GetDmarAcpiTable (\r
VOID *AcpiTable;\r
EFI_STATUS Status;\r
\r
+ if (mAcpiDmarTable != NULL) {\r
+ return EFI_ALREADY_STARTED;\r
+ }\r
+\r
AcpiTable = NULL;\r
Status = EfiGetSystemConfigurationTable (\r
&gEfiAcpi20TableGuid,\r
(EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)AcpiTable,\r
EFI_ACPI_4_0_DMA_REMAPPING_TABLE_SIGNATURE\r
);\r
- DEBUG ((DEBUG_INFO,"DMAR Table - 0x%08x\n", mAcpiDmarTable));\r
if (mAcpiDmarTable == NULL) {\r
- return EFI_UNSUPPORTED;\r
+ return EFI_NOT_FOUND;\r
}\r
+ DEBUG ((DEBUG_INFO,"DMAR Table - 0x%08x\n", mAcpiDmarTable));\r
VtdDumpDmarTable();\r
\r
return EFI_SUCCESS;\r