]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/SmmAccess2.h
MdePkg: Fix coding style issues
[mirror_edk2.git] / MdePkg / Include / Protocol / SmmAccess2.h
index 17e884e6050738e6aef9f38544a7489728bc457a..c5b59233fd20389433c92a43ad7f32669e697f89 100644 (file)
   It abstracts the location and characteristics of SMRAM.  The expectation is\r
   that the north bridge or memory controller would publish this protocol.\r
 \r
-  The principal functionality found in the memory controller includes the following: \r
+  The principal functionality found in the memory controller includes the following:\r
   - Exposing the SMRAM to all non-SMM agents, or the "open" state\r
   - Shrouding the SMRAM to all but the SMM agents, or the "closed" state\r
-  - Preserving the system integrity, or "locking" the SMRAM, such that the settings cannot be \r
-    perturbed by either boot service or runtime agents \r
+  - Preserving the system integrity, or "locking" the SMRAM, such that the settings cannot be\r
+    perturbed by either boot service or runtime agents\r
 \r
-  Copyright (c) 2009, Intel Corporation                                                         \r
-  All rights reserved. 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
+  Copyright (c) 2009 - 2018, 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
 \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
+  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
 \r
 **/\r
 \r
 #ifndef _SMM_ACCESS2_H_\r
 #define _SMM_ACCESS2_H_\r
 \r
-#include <PiDxe.h>\r
+#include <Protocol/MmAccess.h>\r
 \r
-#define EFI_SMM_ACCESS2_PROTOCOL_GUID \\r
-  { \\r
-     0xc2702b74, 0x800c, 0x4131, {0x87, 0x46, 0x8f, 0xb5, 0xb8, 0x9c, 0xe4, 0xac } \\r
-  }\r
+#define EFI_SMM_ACCESS2_PROTOCOL_GUID       EFI_MM_ACCESS_PROTOCOL_GUID\r
 \r
-///\r
-/// SMRAM states and capabilities\r
-///\r
-#define EFI_SMRAM_OPEN                  0x00000001\r
-#define EFI_SMRAM_CLOSED                0x00000002\r
-#define EFI_SMRAM_LOCKED                0x00000004\r
-#define EFI_CACHEABLE                   0x00000008\r
-#define EFI_ALLOCATED                   0x00000010\r
-#define EFI_NEEDS_TESTING               0x00000020\r
-#define EFI_NEEDS_ECC_INITIALIZATION    0x00000040\r
+typedef EFI_MM_ACCESS_PROTOCOL  EFI_SMM_ACCESS2_PROTOCOL;\r
 \r
-///\r
-/// Structure describing a SMRAM region and its accessibility attributes\r
-///\r
-typedef struct {\r
-  ///\r
-  /// Designates the physical address of the SMRAM in memory. This view of memory is \r
-  /// the same as seen by I/O-based agents, for example, but it may not be the address seen \r
-  /// by the processors.\r
-  ///\r
-  EFI_PHYSICAL_ADDRESS  PhysicalStart;\r
-  ///\r
-  /// Designates the address of the SMRAM, as seen by software executing on the \r
-  /// processors. This address may or may not match PhysicalStart.\r
-  ///\r
-  EFI_PHYSICAL_ADDRESS  CpuStart;       \r
-  ///\r
-  /// Describes the number of bytes in the SMRAM region.\r
-  ///\r
-  UINT64                PhysicalSize;\r
-  ///\r
-  /// Describes the accessibility attributes of the SMRAM.  These attributes include the \r
-  /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical \r
-  /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC \r
-  /// initialization).\r
-  ///\r
-  UINT64                RegionState;\r
-} EFI_SMRAM_DESCRIPTOR;\r
+typedef EFI_MM_OPEN EFI_SMM_OPEN2;\r
 \r
-typedef struct _EFI_SMM_ACCESS2_PROTOCOL  EFI_SMM_ACCESS2_PROTOCOL;\r
+typedef EFI_MM_CLOSE EFI_SMM_CLOSE2;\r
 \r
-/**\r
-  Opens the SMRAM area to be accessible by a boot-service driver.\r
-\r
-  This function "opens" SMRAM so that it is visible while not inside of SMM. The function should \r
-  return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM. The function \r
-  should return EFI_DEVICE_ERROR if the SMRAM configuration is locked.\r
-\r
-  @param[in] This           The EFI_SMM_ACCESS2_PROTOCOL instance.\r
-\r
-  @retval EFI_SUCCESS       The operation was successful.\r
-  @retval EFI_UNSUPPORTED   The system does not support opening and closing of SMRAM.\r
-  @retval EFI_DEVICE_ERROR  SMRAM cannot be opened, perhaps because it is locked.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_OPEN)(\r
-  IN CONST EFI_SMM_ACCESS2_PROTOCOL  *This\r
-  );\r
-\r
-/**\r
-  Inhibits access to the SMRAM.\r
-\r
-  This function "closes" SMRAM so that it is not visible while outside of SMM. The function should \r
-  return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM.\r
-\r
-  @param[in] This           The EFI_SMM_ACCESS2_PROTOCOL instance.\r
-\r
-  @retval EFI_SUCCESS       The operation was successful.\r
-  @retval EFI_UNSUPPORTED   The system does not support opening and closing of SMRAM.\r
-  @retval EFI_DEVICE_ERROR  SMRAM cannot be closed.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CLOSE)(\r
-  IN CONST EFI_SMM_ACCESS2_PROTOCOL  *This\r
-  );\r
-\r
-/**\r
-  Inhibits access to the SMRAM.\r
-\r
-  This function prohibits access to the SMRAM region.  This function is usually implemented such \r
-  that it is a write-once operation. \r
-\r
-  @param[in] This          The EFI_SMM_ACCESS2_PROTOCOL instance.\r
-\r
-  @retval EFI_SUCCESS      The device was successfully locked.\r
-  @retval EFI_UNSUPPORTED  The system does not support locking of SMRAM.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_LOCK)(\r
-  IN CONST EFI_SMM_ACCESS2_PROTOCOL  *This\r
-  );\r
-\r
-/**\r
-  Queries the memory controller for the possible regions that will support SMRAM.\r
-\r
-  @param[in]     This           The EFI_SMM_ACCESS2_PROTOCOL instance.\r
-  @param[in,out] SmramMapSize   A pointer to the size, in bytes, of the SmramMemoryMap buffer.\r
-  @param[in,out] SmramMap       A pointer to the buffer in which firmware places the current memory map.\r
-\r
-  @retval EFI_SUCCESS           The chipset supported the given resource.\r
-  @retval EFI_BUFFER_TOO_SMALL  The SmramMap parameter was too small.  The current buffer size \r
-                                needed to hold the memory map is returned in SmramMapSize.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CAPABILITIES)(\r
-  IN CONST EFI_SMM_ACCESS2_PROTOCOL  *This,\r
-  IN OUT UINTN                       *SmramMapSize,\r
-  IN OUT EFI_SMRAM_DESCRIPTOR        *SmramMap\r
-  );\r
-\r
-///\r
-///  EFI SMM Access2 Protocol is used to control the visibility of the SMRAM on the platform.\r
-///  It abstracts the location and characteristics of SMRAM.  The expectation is\r
-///  that the north bridge or memory controller would publish this protocol.\r
-/// \r
-struct _EFI_SMM_ACCESS2_PROTOCOL {\r
-  EFI_SMM_OPEN          Open;\r
-  EFI_SMM_CLOSE         Close;\r
-  EFI_SMM_LOCK          Lock;\r
-  EFI_SMM_CAPABILITIES  GetCapabilities;\r
-  ///\r
-  /// Indicates the current state of the SMRAM. Set to TRUE if SMRAM is locked.\r
-  ///\r
-  BOOLEAN               LockState;\r
-  ///\r
-  /// Indicates the current state of the SMRAM. Set to TRUE if SMRAM is open.\r
-  ///\r
-  BOOLEAN               OpenState;\r
-};\r
+typedef EFI_MM_LOCK EFI_SMM_LOCK2;\r
 \r
+typedef EFI_MM_CAPABILITIES EFI_SMM_CAPABILITIES2;\r
 extern EFI_GUID gEfiSmmAccess2ProtocolGuid;\r
 \r
 #endif\r