| /** @file | |
| Include file for platform variable cleanup. | |
| Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef _PLAT_VAR_CLEANUP_ | |
| #define _PLAT_VAR_CLEANUP_ | |
| #include <Library/UefiBootServicesTableLib.h> | |
| #include <Library/UefiRuntimeServicesTableLib.h> | |
| #include <Library/BaseLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/BaseMemoryLib.h> | |
| #include <Library/PrintLib.h> | |
| #include <Library/MemoryAllocationLib.h> | |
| #include <Library/HiiLib.h> | |
| #include <Library/PlatformVarCleanupLib.h> | |
| #include <Protocol/Variable.h> | |
| #include <Protocol/VarCheck.h> | |
| #include <Protocol/FormBrowser2.h> | |
| #include <Protocol/HiiConfigAccess.h> | |
| #include <Protocol/HiiConfigRouting.h> | |
| #include <Protocol/DevicePath.h> | |
| #include <Guid/EventGroup.h> | |
| #include <Guid/MdeModuleHii.h> | |
| #include <Guid/ImageAuthentication.h> | |
| #include <Guid/VarErrorFlag.h> | |
| #include "PlatVarCleanupHii.h" | |
| // | |
| // This is the generated IFR binary data for each formset defined in VFR. | |
| // This data array is ready to be used as input of HiiAddPackages() to | |
| // create a packagelist (which contains Form packages, String packages, etc). | |
| // | |
| extern UINT8 PlatVarCleanupBin[]; | |
| // | |
| // This is the generated String package data for all .UNI files. | |
| // This data array is ready to be used as input of HiiAddPackages() to | |
| // create a packagelist (which contains Form packages, String packages, etc). | |
| // | |
| extern UINT8 PlatformVarCleanupLibStrings[]; | |
| #define USER_VARIABLE_NODE_SIGNATURE SIGNATURE_32 ('U', 'V', 'N', 'S') | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| EFI_GUID Guid; | |
| CHAR16 *PromptString; | |
| LIST_ENTRY NameLink; | |
| } USER_VARIABLE_NODE; | |
| #define USER_VARIABLE_FROM_LINK(a) CR (a, USER_VARIABLE_NODE, Link, USER_VARIABLE_NODE_SIGNATURE) | |
| #define USER_VARIABLE_NAME_NODE_SIGNATURE SIGNATURE_32 ('U', 'V', 'N', 'N') | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| CHAR16 *Name; | |
| UINTN DataSize; | |
| UINT32 Attributes; | |
| UINT16 Index; | |
| EFI_QUESTION_ID QuestionId; | |
| CHAR16 *PromptString; | |
| CHAR16 *HelpString; | |
| BOOLEAN Deleted; | |
| } USER_VARIABLE_NAME_NODE; | |
| #define USER_VARIABLE_NAME_FROM_LINK(a) CR (a, USER_VARIABLE_NAME_NODE, Link, USER_VARIABLE_NAME_NODE_SIGNATURE) | |
| #pragma pack(1) | |
| // | |
| // HII specific Vendor Device Path definition. | |
| // | |
| typedef struct { | |
| VENDOR_DEVICE_PATH VendorDevicePath; | |
| EFI_DEVICE_PATH_PROTOCOL End; | |
| } HII_VENDOR_DEVICE_PATH; | |
| #pragma pack() | |
| #define VARIABLE_CLEANUP_HII_PRIVATE_SIGNATURE SIGNATURE_32 ('V', 'C', 'H', 'P') | |
| typedef struct { | |
| UINTN Signature; | |
| EFI_HANDLE DriverHandle; | |
| EFI_HII_HANDLE HiiHandle; | |
| EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; | |
| EFI_HII_CONFIG_ROUTING_PROTOCOL *ConfigRouting; | |
| VARIABLE_CLEANUP_DATA VariableCleanupData; | |
| } VARIABLE_CLEANUP_HII_PRIVATE_DATA; | |
| #define VARIABLE_CLEANUP_HII_PRIVATE_FROM_THIS(a) CR (a, VARIABLE_CLEANUP_HII_PRIVATE_DATA, ConfigAccess, VARIABLE_CLEANUP_HII_PRIVATE_SIGNATURE) | |
| #endif |