]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
MdeModulePkg: Convert all .uni files to utf-8
[mirror_edk2.git] / MdeModulePkg / Universal / Acpi / AcpiTableDxe / AcpiTableProtocol.c
index 76f2199c9653540f91f90b827abe643320756902..c6abf1bf0c52f565f4699ba1cf633bbb584e001f 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
@@ -160,25 +159,18 @@ PublishTables (
   // Add the RSD_PTR to the system table and store that we have installed the\r
   // tables.\r
   //\r
-  if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) &&\r
-      !AcpiTableInstance->TablesInstalled1) {\r
+  if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {\r
     Status = gBS->InstallConfigurationTable (&gEfiAcpi10TableGuid, AcpiTableInstance->Rsdp1);\r
     if (EFI_ERROR (Status)) {\r
       return EFI_ABORTED;\r
     }\r
-\r
-    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
-      !AcpiTableInstance->TablesInstalled3) {\r
+  if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {\r
     Status = gBS->InstallConfigurationTable (&gEfiAcpiTableGuid, AcpiTableInstance->Rsdp3);\r
     if (EFI_ERROR (Status)) {\r
       return EFI_ABORTED;\r
     }\r
-\r
-    AcpiTableInstance->TablesInstalled3= TRUE;\r
   }\r
 \r
   return EFI_SUCCESS;\r
@@ -240,13 +232,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 +250,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 +290,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 +551,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 +598,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
@@ -621,6 +611,7 @@ AddTableToList (
       //\r
       if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {\r
         AcpiTableInstance->Fadt3->FirmwareCtrl  = (UINT32) (UINTN) AcpiTableInstance->Facs3;\r
+        ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));\r
       } else {\r
         Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Facs3;\r
         CopyMem (\r
@@ -628,6 +619,7 @@ AddTableToList (
           &Buffer64,\r
           sizeof (UINT64)\r
           );\r
+        AcpiTableInstance->Fadt3->FirmwareCtrl = 0;\r
       }\r
       AcpiTableInstance->Fadt3->Dsdt  = (UINT32) (UINTN) AcpiTableInstance->Dsdt3;\r
       Buffer64                          = (UINT64) (UINTN) AcpiTableInstance->Dsdt3;\r
@@ -694,8 +686,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
@@ -733,8 +724,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
@@ -750,6 +740,7 @@ AddTableToList (
         //\r
         if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {\r
           AcpiTableInstance->Fadt3->FirmwareCtrl  = (UINT32) (UINTN) AcpiTableInstance->Facs3;\r
+          ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));\r
         } else {\r
           Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Facs3;\r
           CopyMem (\r
@@ -757,6 +748,7 @@ AddTableToList (
             &Buffer64,\r
             sizeof (UINT64)\r
             );\r
+          AcpiTableInstance->Fadt3->FirmwareCtrl = 0;\r
         }\r
 \r
         //\r
@@ -778,8 +770,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
@@ -817,8 +808,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
@@ -918,8 +908,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
@@ -1251,17 +1240,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
@@ -1287,8 +1270,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
@@ -1315,8 +1297,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
@@ -1362,8 +1343,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