]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Include/Ppi/ArmGlobalVariable.h
ArmPlatformPkg: Introduce ArmPlatformGlobalVariableLib
[mirror_edk2.git] / ArmPlatformPkg / Include / Ppi / ArmGlobalVariable.h
CommitLineData
8fc38a3f 1/** @file\r
2*\r
3* Copyright (c) 2011, ARM Limited. All rights reserved.\r
4*\r
5* This program and the accompanying materials\r
6* are licensed and made available under the terms and conditions of the BSD License\r
7* which accompanies this distribution. The full text of the license may be found at\r
8* http://opensource.org/licenses/bsd-license.php\r
9*\r
10* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12*\r
13**/\r
14\r
15#ifndef __ARM_GLOBAL_VARIABLE_H__\r
16#define __ARM_GLOBAL_VARIABLE_H__\r
17\r
18#define ARM_GLOBAL_VARIABLE_PPI_GUID \\r
19 { 0xab1c1816, 0xd542, 0x4e6f, {0x9b, 0x1e, 0x8e, 0xcd, 0x92, 0x53, 0xe2, 0xe7} }\r
20\r
21\r
22/**\r
23 This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into\r
24 permanent memory.\r
25\r
26 @param PeiServices Pointer to the PEI Services Table.\r
27 @param TemporaryMemoryBase Source Address in temporary memory from which the SEC or PEIM will copy the\r
28 Temporary RAM contents.\r
29 @param PermanentMemoryBase Destination Address in permanent memory into which the SEC or PEIM will copy the\r
30 Temporary RAM contents.\r
31 @param CopySize Amount of memory to migrate from temporary to permanent memory.\r
32\r
33 @retval EFI_SUCCESS The data was successfully returned.\r
34 @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when\r
35 TemporaryMemoryBase > PermanentMemoryBase.\r
36\r
37**/\r
38typedef\r
39EFI_STATUS\r
40(EFIAPI * ARM_GLOBAL_VARIABLE_GET_MEMORY) (\r
41 OUT EFI_PHYSICAL_ADDRESS *GlobalVariableBase\r
42);\r
43\r
44///\r
45/// This service abstracts the ability to migrate contents of the platform early memory store.\r
46/// Note: The name EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI is different from the current PI 1.2 spec.\r
47/// This PPI was optional.\r
48///\r
49typedef struct {\r
50 ARM_GLOBAL_VARIABLE_GET_MEMORY GetGlobalVariableMemory;\r
51} ARM_GLOBAL_VARIABLE_PPI;\r
52\r
53extern EFI_GUID gArmGlobalVariablePpiGuid;\r
54\r
55#endif\r