mirror of https://github.com/acidanthera/audk.git
109 lines
3.5 KiB
C
109 lines
3.5 KiB
C
/** @file
|
|
Include file for platform variable cleanup.
|
|
|
|
Copyright (c) 2015, 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 _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
|