Home | History | Annotate | Download | only in SmmAccess2OnSmmAccessThunk
      1 /** @file
      2   Include file for SMM Access2 Protocol on SMM Access Protocol Thunk driver.
      3 
      4   Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
      5   This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef  _SMM_ACCESS2_ON_SMM_ACCESS_THUNK_H_
     16 #define  _SMM_ACCESS2_ON_SMM_ACCESS_THUNK_H_
     17 
     18 #include <PiDxe.h>
     19 #include <FrameworkSmm.h>
     20 #include <Library/DebugLib.h>
     21 #include <Library/UefiBootServicesTableLib.h>
     22 #include <Library/UefiDriverEntryPoint.h>
     23 #include <Protocol/SmmAccess2.h>
     24 #include <Protocol/SmmAccess.h>
     25 
     26 /**
     27   Opens the SMRAM area to be accessible by a boot-service driver.
     28 
     29   This function "opens" SMRAM so that it is visible while not inside of SMM. The function should
     30   return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM. The function
     31   should return EFI_DEVICE_ERROR if the SMRAM configuration is locked.
     32 
     33   @param[in] This           The EFI_SMM_ACCESS2_PROTOCOL instance.
     34 
     35   @retval EFI_SUCCESS       The operation was successful.
     36   @retval EFI_UNSUPPORTED   The system does not support opening and closing of SMRAM.
     37   @retval EFI_DEVICE_ERROR  SMRAM cannot be opened, perhaps because it is locked.
     38 **/
     39 EFI_STATUS
     40 EFIAPI
     41 SmmAccess2Open (
     42   IN EFI_SMM_ACCESS2_PROTOCOL  *This
     43   );
     44 
     45 /**
     46   Inhibits access to the SMRAM.
     47 
     48   This function "closes" SMRAM so that it is not visible while outside of SMM. The function should
     49   return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM.
     50 
     51   @param[in] This           The EFI_SMM_ACCESS2_PROTOCOL instance.
     52 
     53   @retval EFI_SUCCESS       The operation was successful.
     54   @retval EFI_UNSUPPORTED   The system does not support opening and closing of SMRAM.
     55   @retval EFI_DEVICE_ERROR  SMRAM cannot be closed.
     56 **/
     57 EFI_STATUS
     58 EFIAPI
     59 SmmAccess2Close (
     60   IN EFI_SMM_ACCESS2_PROTOCOL  *This
     61   );
     62 
     63 /**
     64   Inhibits access to the SMRAM.
     65 
     66   This function prohibits access to the SMRAM region.  This function is usually implemented such
     67   that it is a write-once operation.
     68 
     69   @param[in] This          The EFI_SMM_ACCESS2_PROTOCOL instance.
     70 
     71   @retval EFI_SUCCESS      The device was successfully locked.
     72   @retval EFI_UNSUPPORTED  The system does not support locking of SMRAM.
     73 **/
     74 EFI_STATUS
     75 EFIAPI
     76 SmmAccess2Lock (
     77   IN EFI_SMM_ACCESS2_PROTOCOL  *This
     78   );
     79 
     80 /**
     81   Queries the memory controller for the possible regions that will support SMRAM.
     82 
     83   @param[in]     This           The EFI_SMM_ACCESS2_PROTOCOL instance.
     84   @param[in, out] SmramMapSize   A pointer to the size, in bytes, of the SmramMemoryMap buffer.
     85   @param[in, out] SmramMap       A pointer to the buffer in which firmware places the current memory map.
     86 
     87   @retval EFI_SUCCESS           The chipset supported the given resource.
     88   @retval EFI_BUFFER_TOO_SMALL  The SmramMap parameter was too small.  The current buffer size
     89                                 needed to hold the memory map is returned in SmramMapSize.
     90 **/
     91 EFI_STATUS
     92 EFIAPI
     93 SmmAccess2GetCapabilities (
     94   IN CONST EFI_SMM_ACCESS2_PROTOCOL  *This,
     95   IN OUT UINTN                       *SmramMapSize,
     96   IN OUT EFI_SMRAM_DESCRIPTOR        *SmramMap
     97   );
     98 
     99 #endif
    100