Subrata Banik | 20fe24b | 2021-12-09 02:46:38 +0530 | [diff] [blame] | 1 | /** @file |
| 2 | Variable Write Architectural Protocol as defined in PI Specification VOLUME 2 DXE |
| 3 | |
| 4 | This provides the services required to set nonvolatile environment variables. |
| 5 | This protocol must be produced by a runtime DXE driver and may be consumed only |
| 6 | by the DXE Foundation. |
| 7 | |
| 8 | The DXE driver that produces this protocol must be a runtime driver. This driver |
| 9 | may update the SetVariable() field of the UEFI Runtime Services Table. |
| 10 | |
| 11 | After the UEFI Runtime Services Table has been initialized, the driver must |
| 12 | install the EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID on a new handle with a NULL |
| 13 | interface pointer. The installation of this protocol informs the DXE Foundation |
| 14 | that the write services for nonvolatile environment variables are now available |
| 15 | and that the DXE Foundation must update the 32-bit CRC of the UEFI Runtime Services |
| 16 | Table. The full complement of environment variable services are not available |
| 17 | until both this protocol and EFI_VARIABLE_ARCH_PROTOCOL are installed. DXE drivers |
| 18 | that require read-only access or read/write access to volatile environment variables |
| 19 | must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency expressions. |
| 20 | DXE drivers that require write access to nonvolatile environment variables must |
| 21 | have this architectural protocol in their dependency expressions. |
| 22 | |
| 23 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> |
| 24 | SPDX-License-Identifier: BSD-2-Clause-Patent |
| 25 | |
| 26 | **/ |
| 27 | |
| 28 | #ifndef __ARCH_PROTOCOL_VARIABLE_WRITE_ARCH_H__ |
| 29 | #define __ARCH_PROTOCOL_VARIABLE_WRITE_ARCH_H__ |
| 30 | |
| 31 | /// |
| 32 | /// Global ID for the Variable Write Architectural Protocol |
| 33 | /// |
| 34 | #define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \ |
| 35 | { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53 } } |
| 36 | |
| 37 | extern EFI_GUID gEfiVariableWriteArchProtocolGuid; |
| 38 | |
| 39 | #endif |