]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/AcpiTable.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / Protocol / AcpiTable.h
index afc527c1a52ad808b40d000ceaafc389e04b84ad..98680c07043967370c8dcfcb5d1f4183c8b83b99 100644 (file)
@@ -1,15 +1,12 @@
 /** @file\r
   The file provides the protocol to install or remove an ACPI\r
-  table from a platform. \r
-  \r
-  Copyright (c) 2006 - 2008, 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
-  http://opensource.org/licenses/bsd-license.php                                            \r
+  table from a platform.\r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+  @par Revision Reference:\r
+  This Protocol was introduced in UEFI Specification 2.3.\r
 \r
 **/\r
 \r
@@ -24,19 +21,24 @@ typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;
 \r
 /**\r
 \r
-  The InstallAcpiTable() function allows a caller to install an   \r
-  ACPI table. When successful, the table will be linked by the   \r
-  RSDT/XSDT. AcpiTableBuffer specifies the table to be installed.   \r
-  InstallAcpiTable() will make a copy of the table and insert the   \r
-  copy into the RSDT/XSDT. InstallAcpiTable() must insert the new   \r
-  table at the end of the RSDT/XSDT. To prevent namespace   \r
-  collision, ACPI tables may be created using UEFI ACPI table   \r
-  format. On successful output, TableKey is   \r
-  initialized with a unique key. Its value may be used in a   \r
-  subsequent call to UninstallAcpiTable to remove an ACPI table.   \r
-  If an EFI application is running at the time of this call, the   \r
-  relevant EFI_CONFIGURATION_TABLE pointer to the RSDT is no   \r
-  longer considered valid.   \r
+  The InstallAcpiTable() function allows a caller to install an\r
+  ACPI table. When successful, the table will be linked by the\r
+  RSDT/XSDT. AcpiTableBuffer specifies the table to be installed.\r
+  InstallAcpiTable() will make a copy of the table and insert the\r
+  copy into the RSDT/XSDT. InstallAcpiTable() must insert the new\r
+  table at the end of the RSDT/XSDT. To prevent namespace\r
+  collision, ACPI tables may be created using UEFI ACPI table\r
+  format. If this protocol is used to install a table with a\r
+  signature already present in the system, the new table will not\r
+  replace the existing table. It is a platform implementation\r
+  decision to add a new table with a signature matching an\r
+  existing table or disallow duplicate table signatures and\r
+  return EFI_ACCESS_DENIED. On successful output, TableKey is\r
+  initialized with a unique key. Its value may be used in a\r
+  subsequent call to UninstallAcpiTable to remove an ACPI table.\r
+  If an EFI application is running at the time of this call, the\r
+  relevant EFI_CONFIGURATION_TABLE pointer to the RSDT is no\r
+  longer considered valid.\r
 \r
 \r
   @param This                 A pointer to a EFI_ACPI_TABLE_PROTOCOL.\r
@@ -49,32 +51,35 @@ typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;
 \r
 \r
   @param TableKey             Returns a key to refer to the ACPI table.\r
-  \r
+\r
   @retval EFI_SUCCESS           The table was successfully inserted\r
-  \r
+\r
   @retval EFI_INVALID_PARAMETER Either AcpiTableBuffer is NULL,\r
                                 TableKey is NULL, or\r
                                 AcpiTableBufferSize and the size\r
                                 field embedded in the ACPI table\r
                                 pointed to by AcpiTableBuffer\r
                                 are not in sync.\r
-  \r
+\r
   @retval EFI_OUT_OF_RESOURCES  Insufficient resources exist to\r
                                 complete the request.\r
-  \r
+  @retval EFI_ACCESS_DENIED     The table signature matches a table already\r
+                                present in the system and platform policy\r
+                                does not allow duplicate tables of this type.\r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_ACPI_TABLE_INSTALL_ACPI_TABLE)(\r
-  IN   CONST EFI_ACPI_TABLE_PROTOCOL *This,\r
-  IN   CONST VOID                    *AcpiTableBuffer,\r
+  IN   EFI_ACPI_TABLE_PROTOCOL       *This,\r
+  IN   VOID                          *AcpiTableBuffer,\r
   IN   UINTN                         AcpiTableBufferSize,\r
   OUT  UINTN                         *TableKey\r
 );\r
 \r
 \r
 /**\r
-  \r
+\r
   The UninstallAcpiTable() function allows a caller to remove an\r
   ACPI table. The routine will remove its reference from the\r
   RSDT/XSDT. A table is referenced by the TableKey parameter\r
@@ -95,13 +100,13 @@ EFI_STATUS
 \r
   @retval EFI_OUT_OF_RESOURCES  Insufficient resources exist to\r
                                 complete the request.\r
-  \r
+\r
 **/\r
 typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE)(\r
-  IN CONST EFI_ACPI_TABLE_PROTOCOL *This,\r
-  IN UINTN                         TableKey\r
+  IN  EFI_ACPI_TABLE_PROTOCOL       *This,\r
+  IN  UINTN                         TableKey\r
 );\r
 \r
 ///\r