4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Variable Architectural Protocol as defined in PI Specification VOLUME 2 DXE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This provides the services required to get and set environment variables. This
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync protocol must be produced by a runtime DXE driver and may be consumed only by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the DXE Foundation. The DXE driver that produces this protocol must be a runtime
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync driver. This driver is responsible for initializing the GetVariable(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GetNextVariableName(), and SetVariable() fields of the UEFI Runtime Services Table.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync After the three fields of the UEFI Runtime Services Table have been initialized,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the driver must install the EFI_VARIABLE_ARCH_PROTOCOL_GUID on a new handle with
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a NULL interface pointer. The installation of this protocol informs the DXE Foundation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync that the read-only and the volatile environment variable related services are
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync now available and that the DXE Foundation must update the 32-bit CRC of the UEFI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Runtime Services Table. The full complement of environment variable services are
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync not available until both this protocol and EFI_VARIABLE_WRITE_ARCH_PROTOCOL are
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync installed. DXE drivers that require read-only access or read/write access to volatile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync environment variables must have this architectural protocol in their dependency
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync expressions. DXE drivers that require write access to nonvolatile environment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync variables must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync expressions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef __ARCH_PROTOCOL_VARIABLE_ARCH_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define __ARCH_PROTOCOL_VARIABLE_ARCH_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Global ID for the Variable Architectural Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_VARIABLE_ARCH_PROTOCOL_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiVariableArchProtocolGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif