]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
MdeModulePkg AcpiTableDxe: Cover EFI_ACPI_TABLE_VERSION_5_0.
[mirror_edk2.git] / MdeModulePkg / Universal / Acpi / AcpiTableDxe / AcpiTableProtocol.c
index 247c398c4fe0047abdce436e0ed0ad6e9d723ea0..d016f341cacde3eab471b6639e4aff72cbf39a1e 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   ACPI Table Protocol Implementation\r
 \r
-  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -134,8 +134,7 @@ PublishTables (
     CurrentRsdtEntry  = (UINT32 *) ((UINT8 *) AcpiTableInstance->Rsdt1 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));\r
     *CurrentRsdtEntry = (UINT32) (UINTN) AcpiTableInstance->Fadt1;\r
   }\r
-  if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-      (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+  if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
     CurrentRsdtEntry  = (UINT32 *) ((UINT8 *) AcpiTableInstance->Rsdt3 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));\r
     *CurrentRsdtEntry = (UINT32) (UINTN) AcpiTableInstance->Fadt3;\r
     CurrentXsdtEntry  = (VOID *) ((UINT8 *) AcpiTableInstance->Xsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER));\r
@@ -170,8 +169,7 @@ PublishTables (
     AcpiTableInstance->TablesInstalled1 = TRUE;\r
   }\r
 \r
-  if (((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-       (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) &&\r
+  if ((Version & ACPI_TABLE_VERSION_GTE_2_0) &&\r
       !AcpiTableInstance->TablesInstalled3) {\r
     Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, AcpiTableInstance->Rsdp3);\r
     if (EFI_ERROR (Status)) {\r
@@ -240,13 +238,13 @@ InstallAcpiTable (
              AcpiTableInstance,\r
              AcpiTableBufferConst,\r
              TRUE,\r
-             EFI_ACPI_TABLE_VERSION_1_0B | EFI_ACPI_TABLE_VERSION_2_0 | EFI_ACPI_TABLE_VERSION_3_0,\r
+             EFI_ACPI_TABLE_VERSION_1_0B | ACPI_TABLE_VERSION_GTE_2_0,\r
              TableKey\r
              );\r
   if (!EFI_ERROR (Status)) {\r
     Status = PublishTables (\r
                AcpiTableInstance,\r
-               EFI_ACPI_TABLE_VERSION_1_0B | EFI_ACPI_TABLE_VERSION_2_0 | EFI_ACPI_TABLE_VERSION_3_0\r
+               EFI_ACPI_TABLE_VERSION_1_0B | ACPI_TABLE_VERSION_GTE_2_0\r
                );\r
   }\r
   FreePool (AcpiTableBufferConst);\r
@@ -258,7 +256,7 @@ InstallAcpiTable (
     if (!EFI_ERROR (Status)) {\r
       SdtNotifyAcpiList (\r
         AcpiTableInstance,\r
-        EFI_ACPI_TABLE_VERSION_1_0B | EFI_ACPI_TABLE_VERSION_2_0 | EFI_ACPI_TABLE_VERSION_3_0,\r
+        EFI_ACPI_TABLE_VERSION_1_0B | ACPI_TABLE_VERSION_GTE_2_0,\r
         *TableKey\r
         );\r
     }\r
@@ -298,13 +296,13 @@ UninstallAcpiTable (
   //\r
   Status = RemoveTableFromList (\r
              AcpiTableInstance,\r
-             EFI_ACPI_TABLE_VERSION_1_0B | EFI_ACPI_TABLE_VERSION_2_0 | EFI_ACPI_TABLE_VERSION_3_0,\r
+             EFI_ACPI_TABLE_VERSION_1_0B | ACPI_TABLE_VERSION_GTE_2_0,\r
              TableKey\r
              );\r
   if (!EFI_ERROR (Status)) {\r
     Status = PublishTables (\r
                AcpiTableInstance,\r
-               EFI_ACPI_TABLE_VERSION_1_0B | EFI_ACPI_TABLE_VERSION_2_0 | EFI_ACPI_TABLE_VERSION_3_0\r
+               EFI_ACPI_TABLE_VERSION_1_0B | ACPI_TABLE_VERSION_GTE_2_0\r
                );\r
   }\r
 \r
@@ -559,8 +557,7 @@ AddTableToList (
     // Check that the table has not been previously added.\r
     //\r
     if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Fadt1 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_2_0)  != 0 && AcpiTableInstance->Fadt3 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_3_0)  != 0 && AcpiTableInstance->Fadt3 != NULL)\r
+        ((Version & ACPI_TABLE_VERSION_GTE_2_0)  != 0 && AcpiTableInstance->Fadt3 != NULL)\r
         ) {\r
       gBS->FreePages (CurrentTableList->PageAddress, CurrentTableList->NumberOfPages);\r
       gBS->FreePool (CurrentTableList);\r
@@ -607,8 +604,7 @@ AddTableToList (
       AcpiTableInstance->Rsdt1->OemRevision = AcpiTableInstance->Fadt1->Header.OemRevision;\r
     }\r
 \r
-    if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-        (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+    if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
       //\r
       // Save a pointer to the table\r
       //\r
@@ -696,8 +692,7 @@ AddTableToList (
     // Check that the table has not been previously added.\r
     //\r
     if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Facs1 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_2_0)  != 0 && AcpiTableInstance->Facs3 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_3_0)  != 0 && AcpiTableInstance->Facs3 != NULL)\r
+        ((Version & ACPI_TABLE_VERSION_GTE_2_0)  != 0 && AcpiTableInstance->Facs3 != NULL)\r
         ) {\r
       gBS->FreePages (CurrentTableList->PageAddress, CurrentTableList->NumberOfPages);\r
       gBS->FreePool (CurrentTableList);\r
@@ -735,8 +730,7 @@ AddTableToList (
       }\r
     }\r
 \r
-    if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-        (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+    if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
       //\r
       // Save a pointer to the table\r
       //\r
@@ -782,8 +776,7 @@ AddTableToList (
     // Check that the table has not been previously added.\r
     //\r
     if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Dsdt1 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_2_0)  != 0 && AcpiTableInstance->Dsdt3 != NULL) ||\r
-        ((Version & EFI_ACPI_TABLE_VERSION_3_0)  != 0 && AcpiTableInstance->Dsdt3 != NULL)\r
+        ((Version & ACPI_TABLE_VERSION_GTE_2_0)  != 0 && AcpiTableInstance->Dsdt3 != NULL)\r
         ) {\r
       gBS->FreePages (CurrentTableList->PageAddress, CurrentTableList->NumberOfPages);\r
       gBS->FreePool (CurrentTableList);\r
@@ -821,8 +814,7 @@ AddTableToList (
       }\r
     }\r
     \r
-    if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-        (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+    if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
       //\r
       // Save a pointer to the table\r
       //\r
@@ -922,8 +914,7 @@ AddTableToList (
   //\r
   // Add to ACPI 2.0/3.0  table tree\r
   //\r
-  if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-      (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+  if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
      if (AddToRsdt) {\r
        //\r
        // If the table number exceed the gEfiAcpiMaxNumTables, enlarge the table buffer\r
@@ -1255,17 +1246,11 @@ DeleteTable (
       }\r
     }\r
 \r
-    if ((Version & EFI_ACPI_TABLE_VERSION_2_0 & Table->Version) ||\r
-        (Version & EFI_ACPI_TABLE_VERSION_3_0 & Table->Version)) {\r
+    if (Version & ACPI_TABLE_VERSION_GTE_2_0 & Table->Version) {\r
       //\r
       // Remove this version from the table\r
       //\r
-      if (Version & EFI_ACPI_TABLE_VERSION_2_0 & Table->Version) {\r
-        Table->Version = Table->Version &~EFI_ACPI_TABLE_VERSION_2_0;\r
-      }      \r
-      if (Version & EFI_ACPI_TABLE_VERSION_3_0 & Table->Version) {\r
-        Table->Version = Table->Version &~EFI_ACPI_TABLE_VERSION_3_0;\r
-      }\r
+      Table->Version = Table->Version &~(Version & ACPI_TABLE_VERSION_GTE_2_0);\r
       \r
       //\r
       // Remove from Rsdt and Xsdt.  We don't care about the return value\r
@@ -1291,8 +1276,7 @@ DeleteTable (
         AcpiTableInstance->Fadt1 = NULL;\r
       }\r
 \r
-      if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-          (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+      if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
         AcpiTableInstance->Fadt3 = NULL;\r
       }\r
       break;\r
@@ -1319,8 +1303,7 @@ DeleteTable (
         }\r
       }\r
 \r
-      if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-          (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+      if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
         AcpiTableInstance->Facs3 = NULL;\r
 \r
         //\r
@@ -1366,8 +1349,7 @@ DeleteTable (
       }\r
 \r
       \r
-      if ((Version & EFI_ACPI_TABLE_VERSION_2_0) != 0 ||\r
-          (Version & EFI_ACPI_TABLE_VERSION_3_0) != 0) {\r
+      if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
         AcpiTableInstance->Dsdt3 = NULL;\r
 \r
         //\r