xref: /illumos-gate/usr/src/boot/efi/include/Protocol/Variable.h (revision f334afcfaebea1b7dc3430015651d8d748fa8a3e)
1*f334afcfSToomas Soome /** @file
2*f334afcfSToomas Soome   Variable Architectural Protocol as defined in PI Specification VOLUME 2 DXE
3*f334afcfSToomas Soome 
4*f334afcfSToomas Soome   This provides the services required to get and set environment variables. This
5*f334afcfSToomas Soome   protocol must be produced by a runtime DXE driver and may be consumed only by
6*f334afcfSToomas Soome   the DXE Foundation. The DXE driver that produces this protocol must be a runtime
7*f334afcfSToomas Soome   driver. This driver is responsible for initializing the GetVariable(),
8*f334afcfSToomas Soome   GetNextVariableName(), and SetVariable() fields of the UEFI Runtime Services Table.
9*f334afcfSToomas Soome 
10*f334afcfSToomas Soome   After the three fields of the UEFI Runtime Services Table have been initialized,
11*f334afcfSToomas Soome   the driver must install the EFI_VARIABLE_ARCH_PROTOCOL_GUID on a new handle with
12*f334afcfSToomas Soome   a NULL interface pointer. The installation of this protocol informs the DXE Foundation
13*f334afcfSToomas Soome   that the read-only and the volatile environment variable related services are
14*f334afcfSToomas Soome   now available and that the DXE Foundation must update the 32-bit CRC of the UEFI
15*f334afcfSToomas Soome   Runtime Services Table. The full complement of environment variable services are
16*f334afcfSToomas Soome   not available until both this protocol and EFI_VARIABLE_WRITE_ARCH_PROTOCOL are
17*f334afcfSToomas Soome   installed. DXE drivers that require read-only access or read/write access to volatile
18*f334afcfSToomas Soome   environment variables must have this architectural protocol in their dependency
19*f334afcfSToomas Soome   expressions. DXE drivers that require write access to nonvolatile environment
20*f334afcfSToomas Soome   variables must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency
21*f334afcfSToomas Soome   expressions.
22*f334afcfSToomas Soome 
23*f334afcfSToomas Soome   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
24*f334afcfSToomas Soome   SPDX-License-Identifier: BSD-2-Clause-Patent
25*f334afcfSToomas Soome 
26*f334afcfSToomas Soome **/
27*f334afcfSToomas Soome 
28*f334afcfSToomas Soome #ifndef __ARCH_PROTOCOL_VARIABLE_ARCH_H__
29*f334afcfSToomas Soome #define __ARCH_PROTOCOL_VARIABLE_ARCH_H__
30*f334afcfSToomas Soome 
31*f334afcfSToomas Soome ///
32*f334afcfSToomas Soome /// Global ID for the Variable Architectural Protocol
33*f334afcfSToomas Soome ///
34*f334afcfSToomas Soome #define EFI_VARIABLE_ARCH_PROTOCOL_GUID \
35*f334afcfSToomas Soome   { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
36*f334afcfSToomas Soome 
37*f334afcfSToomas Soome extern EFI_GUID  gEfiVariableArchProtocolGuid;
38*f334afcfSToomas Soome 
39*f334afcfSToomas Soome #endif
40