Home | History | Annotate | Download | only in Ppi
      1 /** @file
      2   This file declares Temporary RAM Support PPI.
      3   This Ppi provides the service that migrates temporary RAM into permanent memory.
      4 
      5   Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
      6   This program and the accompanying materials
      7   are licensed and made available under the terms and conditions of the BSD License
      8   which accompanies this distribution.  The full text of the license may be found at
      9   http://opensource.org/licenses/bsd-license.php
     10 
     11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14   @par Revision Reference:
     15   This PPI is introduced in PI Version 1.0.
     16 
     17 **/
     18 
     19 #ifndef __TEMPORARY_RAM_SUPPORT_H__
     20 #define __TEMPORARY_RAM_SUPPORT_H__
     21 
     22 ///
     23 /// Note: The GUID name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI_GUID is different from the current
     24 ///       PI 1.2 spec.
     25 ///
     26 #define EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI_GUID  \
     27   { 0xdbe23aa9, 0xa345, 0x4b97, {0x85, 0xb6, 0xb2, 0x26, 0xf1, 0x61, 0x73, 0x89} }
     28 
     29 
     30 /**
     31   This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into
     32   permanent memory.
     33 
     34   @param PeiServices            Pointer to the PEI Services Table.
     35   @param TemporaryMemoryBase    Source Address in temporary memory from which the SEC or PEIM will copy the
     36                                 Temporary RAM contents.
     37   @param PermanentMemoryBase    Destination Address in permanent memory into which the SEC or PEIM will copy the
     38                                 Temporary RAM contents.
     39   @param CopySize               Amount of memory to migrate from temporary to permanent memory.
     40 
     41   @retval EFI_SUCCESS           The data was successfully returned.
     42   @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when
     43                                 TemporaryMemoryBase > PermanentMemoryBase.
     44 
     45 **/
     46 typedef
     47 EFI_STATUS
     48 (EFIAPI * TEMPORARY_RAM_MIGRATION)(
     49   IN CONST EFI_PEI_SERVICES   **PeiServices,
     50   IN EFI_PHYSICAL_ADDRESS     TemporaryMemoryBase,
     51   IN EFI_PHYSICAL_ADDRESS     PermanentMemoryBase,
     52   IN UINTN                    CopySize
     53 );
     54 
     55 ///
     56 /// This service abstracts the ability to migrate contents of the platform early memory store.
     57 /// Note: The name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI is different from the current PI 1.2 spec.
     58 ///       This PPI was optional.
     59 ///
     60 typedef struct {
     61   TEMPORARY_RAM_MIGRATION   TemporaryRamMigration;
     62 } EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI;
     63 
     64 extern EFI_GUID gEfiTemporaryRamSupportPpiGuid;
     65 
     66 #endif
     67