X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=IntelFrameworkPkg%2FInclude%2FProtocol%2FSmmAccess.h;h=16d66b93ad657b7e15f91e883c6aa06f0732a9f7;hb=c5b900bed8bab2f16149c48f11c525690611b33d;hp=df7a87ed8bc82efd337ddf921876975380081f8c;hpb=b80fbe8543eb535e40172a263b6b5d633e5b282c;p=mirror_edk2.git diff --git a/IntelFrameworkPkg/Include/Protocol/SmmAccess.h b/IntelFrameworkPkg/Include/Protocol/SmmAccess.h index df7a87ed8b..16d66b93ad 100644 --- a/IntelFrameworkPkg/Include/Protocol/SmmAccess.h +++ b/IntelFrameworkPkg/Include/Protocol/SmmAccess.h @@ -1,16 +1,19 @@ /** @file - This file declares SMM SMRAM Access abstraction protocol - - Copyright (c) 2007, Intel Corporation - All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - Module Name: SmmAccess.h + This file declares the SMM SMRAM Access abstraction protocol, which is used to control + the visibility of the SMRAM on the platform. The expectation is + that the north bridge or memory controller would publish this protocol. + For example, the Memory Controller Hub (MCH) has the hardware provision for this + type of control. Because of the protected, distinguished class of memory for IA-32 + systems, the expectation is that this protocol would be supported only on IA-32 systems. + +Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php. + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. @par Revision Reference: This Protocol is defined in Framework of EFI SMM Core Interface Spec @@ -20,7 +23,6 @@ #ifndef _SMM_ACCESS_H_ #define _SMM_ACCESS_H_ -#include #include typedef struct _EFI_SMM_ACCESS_PROTOCOL EFI_SMM_ACCESS_PROTOCOL; @@ -30,19 +32,6 @@ typedef struct _EFI_SMM_ACCESS_PROTOCOL EFI_SMM_ACCESS_PROTOCOL; 0x3792095a, 0xe309, 0x4c1e, {0xaa, 0x01, 0x85, 0xf5, 0x65, 0x5a, 0x17, 0xf1 } \ } -// -// SMM Access specification constant and types -// -// ******************************************************* -// EFI_SMRAM_STATE -// ******************************************************* -// -#define EFI_SMRAM_OPEN 0x00000001 -#define EFI_SMRAM_CLOSED 0x00000002 -#define EFI_SMRAM_LOCKED 0x00000004 -#define EFI_CACHEABLE 0x00000008 -#define EFI_ALLOCATED 0x00000010 - // // SMM Access specification Member Function // @@ -60,7 +49,7 @@ typedef struct _EFI_SMM_ACCESS_PROTOCOL EFI_SMM_ACCESS_PROTOCOL; **/ typedef EFI_STATUS -(EFIAPI *EFI_SMM_OPEN) ( +(EFIAPI *EFI_SMM_OPEN)( IN EFI_SMM_ACCESS_PROTOCOL *This, UINTN DescriptorIndex ); @@ -69,7 +58,7 @@ EFI_STATUS Inhibits access to the SMRAM. @param This The EFI_SMM_ACCESS_PROTOCOL instance. - @param DescriptorIndex Indicates that the driver wishes to open + @param DescriptorIndex Indicates that the driver wishes to close the memory tagged by this index. @retval EFI_SUCCESS The operation was successful. @@ -80,15 +69,16 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SMM_CLOSE) ( +(EFIAPI *EFI_SMM_CLOSE)( IN EFI_SMM_ACCESS_PROTOCOL *This, UINTN DescriptorIndex ); /** Inhibits access to the SMRAM. + @param This The EFI_SMM_ACCESS_PROTOCOL instance. - @param DescriptorIndex Indicates that the driver wishes to open + @param DescriptorIndex Indicates that the driver wishes to lock the memory tagged by this index. @retval EFI_SUCCESS The operation was successful. @@ -99,7 +89,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SMM_LOCK) ( +(EFIAPI *EFI_SMM_LOCK)( IN EFI_SMM_ACCESS_PROTOCOL *This, UINTN DescriptorIndex ); @@ -117,42 +107,22 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SMM_CAPABILITIES) ( +(EFIAPI *EFI_SMM_CAPABILITIES)( IN EFI_SMM_ACCESS_PROTOCOL *This, IN OUT UINTN *SmramMapSize, IN OUT EFI_SMRAM_DESCRIPTOR *SmramMap ); /** - @par Protocol Description: This protocol is used to control the visibility of the SMRAM on the platform. - - @param Open - Opens the SMRAM. - - @param Close - Closes the SMRAM. - - @param Lock - Locks the SMRAM. - - @param GetCapabilities - Gets information on possible SMRAM regions. - - @param LockState -Indicates the current state of the SMRAM. Set to TRUE if any region is locked. - - @param OpenState -Indicates the current state of the SMRAM. Set to TRUE if any region is open. - **/ struct _EFI_SMM_ACCESS_PROTOCOL { - EFI_SMM_OPEN Open; - EFI_SMM_CLOSE Close; - EFI_SMM_LOCK Lock; - EFI_SMM_CAPABILITIES GetCapabilities; - BOOLEAN LockState; - BOOLEAN OpenState; + EFI_SMM_OPEN Open; ///< Opens the SMRAM. + EFI_SMM_CLOSE Close; ///< Closes the SMRAM. + EFI_SMM_LOCK Lock; ///< Locks the SMRAM. + EFI_SMM_CAPABILITIES GetCapabilities; ///< Gets information on possible SMRAM regions. + BOOLEAN LockState; ///< Indicates the current state of the SMRAM. Set to TRUE if any region is locked. + BOOLEAN OpenState; ///< Indicates the current state of the SMRAM. Set to TRUE if any region is open. }; extern EFI_GUID gEfiSmmAccessProtocolGuid;