/** @file | |
Variable Architectural Protocol as defined in PI Specification VOLUME 2 DXE | |
This provides the services required to get and set environment variables. This | |
protocol must be produced by a runtime DXE driver and may be consumed only by | |
the DXE Foundation. The DXE driver that produces this protocol must be a runtime | |
driver. This driver is responsible for initializing the GetVariable(), | |
GetNextVariableName(), and SetVariable() fields of the UEFI Runtime Services Table. | |
After the three fields of the UEFI Runtime Services Table have been initialized, | |
the driver must install the EFI_VARIABLE_ARCH_PROTOCOL_GUID on a new handle with | |
a NULL interface pointer. The installation of this protocol informs the DXE Foundation | |
that the read-only and the volatile environment variable related services are | |
now available and that the DXE Foundation must update the 32-bit CRC of the UEFI | |
Runtime Services Table. The full complement of environment variable services are | |
not available until both this protocol and EFI_VARIABLE_WRITE_ARCH_PROTOCOL are | |
installed. DXE drivers that require read-only access or read/write access to volatile | |
environment variables must have this architectural protocol in their dependency | |
expressions. DXE drivers that require write access to nonvolatile environment | |
variables must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency | |
expressions. | |
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> | |
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. | |
**/ | |
#ifndef __ARCH_PROTOCOL_VARIABLE_ARCH_H__ | |
#define __ARCH_PROTOCOL_VARIABLE_ARCH_H__ | |
/// | |
/// Global ID for the Variable Architectural Protocol | |
/// | |
#define EFI_VARIABLE_ARCH_PROTOCOL_GUID \ | |
{ 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } | |
extern EFI_GUID gEfiVariableArchProtocolGuid; | |
#endif |