ICE_TEA_BIOS/Board/Oem/L05AlderLakePMultiBoardPkg/Library/SmmOemSvcKernelLib/OemSvcVariablePreservedTable.c
LCFC\AiXia.Jiang a870bff2f4 1.Frist commit
2022-09-30 14:59:06 +08:00

486 lines
20 KiB
C

/** @file
To return the preserved list.
;******************************************************************************
;* Copyright (c) 2014 - 2021, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#include <Library/SmmOemSvcKernelLib.h>
#include <Guid/H2OSeamlessRecovery.h>
//#include <SgxSetupData.h>
//_Start_L05_BIOS_OPTANE_SUPPORT_
#include <SetupConfig.h>
#include <Guid/L05BackupSetupItemVariable.h> // EFI_L05_BACKUP_SETUP_ITEM_VARIABLE_GUID
#include <Library/BaseMemoryLib.h>
#include <Library/SmmServicesTableLib.h>
#include <Protocol/SmmVariable.h>
//_End_L05_BIOS_OPTANE_SUPPORT_
//_Start_L05_BIOS_POST_LOGO_DIY_SUPPORT_
#include <Guid/L05EspCustomizePostLogoInfoVariable.h> // EFI_L05_ESP_CUSTOMIZE_POST_LOGO_INFO_VARIABLE_GUID
#include <Guid/L05EspCustomizePostLogoVcmVariable.h> // EFI_L05_ESP_CUSTOMIZE_POST_LOGO_VCM_VARIABLE_GUID
//_End_L05_BIOS_POST_LOGO_DIY_SUPPORT_
#define PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_GUID {0xffffffff, 0xffff, 0xffff, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,0xff, 0xff}}
#define PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_NAME L"PreservedTable2OtherAllName"
//
// The followings are the sample codes. Please customize here.
//
//[-start-210918-Dongxu0019-modify]//
//
// Don't keep the variable "MeSetupStorage". If ME FW be flashed and it was not, system will confusion
//
PRESERVED_VARIABLE_TABLE_2 mPreservedVariableTable2[] = {
// VariableGuid DeleteVariable VariableName
// { {0x523260e2, 0x7237, 0x46aa, { 0xbe, 0x3a, 0x20, 0xfb, 0x49, 0xa, 0x4f, 0x3a}}, FALSE, BIOS_GUARD_IOTRAP_DATA_NAME}, // gBiosGuardIotrapDataGuid
{ {0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C}}, FALSE, L"PlatformLang"}, // gEfiGlobalVariableGuid
{ {0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C}}, FALSE, L"SecureBoot"}, // gEfiGlobalVariableGuid
{ {0x1DA748E5, 0x3C39, 0x43E6, {0xB7, 0xAB, 0x55, 0xBA, 0xC7, 0x1A, 0xC7, 0xD2}}, FALSE, L"SetupChange"}, // gH2OSetupChangeVariableGuid
// { {0x45b5acb9, 0x0359, 0x49be, {0xad, 0xb1, 0x49, 0x37, 0x7b, 0xd6, 0x07, 0xf7}}, FALSE, SGX_SETUP_VARIABLE_NAME},
// { {0xd69a279b, 0x58eb, 0x45d1, {0xa1, 0x48, 0x77, 0x1b, 0xb9, 0xeb, 0x52, 0x51}}, FALSE, L"EPCSW"}, // gEpcOsDataGuid
{ {0x7f9102df, 0xe999, 0x4740, {0x80, 0xa6, 0xb2, 0x03, 0x85, 0x12, 0x21, 0x7b}}, FALSE, L"SystemSupervisorPw"}, // gEfiSupervisorPwGuid, DeleteVariable = FALSE to keep kernel behavior that flash BIOS doesn't clean password when password in stored in variable.
{ {0x8cf3cfd3, 0xd8e2, 0x4e30, {0x83, 0xff, 0xb8, 0x6f, 0x0c, 0x52, 0x2a, 0x5e}}, FALSE, L"SystemUserPw"}, // gEfiUserPwGuid, DeleteVariable = FALSE to keep kernel behavior that flash BIOS doesn't clean password when password in stored in variable.
{ {0xe83f7603, 0xa8ed, 0x4b9a, {0x8c, 0x16, 0xb0, 0x15, 0x29, 0xf6, 0x4b, 0x4f}}, FALSE, UPDATE_PROGRESS_NAME}, // gH2OSeamlessRecoveryGuid, DeleteVariable = FALSE to keep kernel behavior that flash BIOS doesn't clean the update progress stored in variable.
{ {0xfa07a1ea, 0x486d, 0x4b5e, {0xb9, 0x4d, 0x8e, 0x06, 0xe6, 0xfa, 0xd9, 0xdb}}, FALSE, BACKUP_SBB_FILE_DIGEST_SHA256_NAME}, // gH2OSeamlessRecoveryDigestGuid, DeleteVariable = FALSE to keep kernel behavior that flash BIOS doesn't clean the digest stored in variable.
{ {0x5060073d, 0x88c3, 0x421f, {0x82, 0xf8, 0x28, 0x3f, 0x0d, 0x29, 0xed, 0x90}}, FALSE, L"MeCapDigest"}, // gSysFwUpdateDigiestGuid, DeleteVariable = FALSE to keep behavior that flash BIOS doesn't clean the digest stored in variable.
{ {0x5060073d, 0x88c3, 0x421f, {0x82, 0xf8, 0x28, 0x3f, 0x0d, 0x29, 0xed, 0x90}}, FALSE, L"MeCapDigestTemp"}, // gSysFwUpdateDigiestGuid, DeleteVariable = FALSE to keep behavior that flash Me doesn't clean the digest stored in variable.
{ {0xf92b8157, 0xc647, 0x44d7, {0x8d, 0x94, 0x81, 0x7d, 0x18, 0xa2, 0x76, 0xdc}}, FALSE, L"FwUpdateInfo"}, //gSysFwUpdateProgressGuid, DeleteVariable = FALSE to keep behavior that flash Me doesn't clean the digest stored in variable.
//[-start-211108-Dennis0008-add]//
#if defined(S370_SUPPORT)
{ {0x59d1c24f, 0x50f1, 0x401a, {0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43 }}, FALSE, L"MachineSize"},
#endif
//[-end-211108-Dennis0008-add]//
//_Start_L05_BIOS_OPTANE_SUPPORT_
#ifdef LCFC_SUPPORT
{ EFI_BIOS_BACKUP_SETUP_KEEP_VARIABLE_GUID, FALSE, BIOS_BACKUP_SETUP_KEEP_VARIABLE_NAME}, // BIOSBackupSetupKeep
#endif
//[-end-210918-Dongxu0019-modify]//
//[-start-211109-BAIN000054-modify]//
#if defined(C970_SUPPORT)||defined(C770_SUPPORT)||defined(S77013_SUPPORT)||defined(S77014_SUPPORT)||defined(S77014IAH_SUPPORT)
{ {0x567ce681, 0x487d, 0x42ff, {0xb8, 0x75, 0x38, 0xc9, 0x63, 0xe5, 0xbb, 0x4c}}, FALSE, L"TbtRetimer1Version"},
{ {0x125622a2, 0x2aeb, 0x4930, {0xa5, 0xa4, 0xe2, 0xb9, 0x95, 0x5b, 0x6d, 0x9e}}, FALSE, L"TbtRetimer2Version"},
#endif
//[-end-211109-BAIN000054-modify]//
//[-start-211117-BAIN000058-add]//
#ifdef LCFC_SUPPORT
{ {0xE2C5A81A, 0x4F05, 0x477C, {0xBA, 0x4E, 0x49, 0xBD, 0xD5, 0x75, 0xE9, 0xAE }}, FALSE, L"LNFG"},
{ {0x86bbf7e3, 0xb772, 0x4d22, {0x80, 0xa9, 0xe7, 0xc5, 0x8c, 0x3c, 0x7f, 0xf0 }}, FALSE, L"SaveHddPassword"},
{ {0X5FDA220C, 0X9DDC, 0X4588, {0X9D, 0XA7, 0X34, 0X94, 0X6E, 0X00, 0XBF, 0XAD }}, FALSE, L"LVE"},
#endif
//[-end-211117-BAIN000058-add]//
//[-start-20211213-BAIN000066-add]//
#ifdef LCFC_SUPPORT
{ {0x6acce65d, 0xda35, 0x4b39, {0xb6, 0x4b, 0x5e, 0xd9, 0x27, 0xa7, 0xdc, 0x7e }}, FALSE, L"KeepSecureBootMode"},
#endif
//[-end-20211213-BAIN000066-add]//
//[-start-220216-BAIN000096-add]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
{ {0x6acce65d, 0xda35, 0x4b39, {0xb6, 0x4b, 0x5e, 0xd9, 0x27, 0xa7, 0xdc, 0x7e }}, FALSE, L"AfterFlashSBBRecovey"},
#endif
//[-end-220216-BAIN000096-add]//
#ifdef L05_BIOS_OPTANE_SUPPORT_ENABLE
{ EFI_L05_BACKUP_SETUP_ITEM_VARIABLE_GUID, FALSE, L05_BACKUP_SETUP_ITEM_VARIABLE_NAME}, // L05BackupSetupItem
#endif
//_End_L05_BIOS_OPTANE_SUPPORT_
//_Start_L05_BIOS_POST_LOGO_DIY_SUPPORT_
#ifdef L05_BIOS_POST_LOGO_DIY_SUPPORT
{ EFI_L05_ESP_CUSTOMIZE_POST_LOGO_INFO_VARIABLE_GUID, FALSE, L05_BIOS_LOGO_DIY_ESP_VARIABLE_NAME}, // LBLDESP
{ EFI_L05_ESP_CUSTOMIZE_POST_LOGO_VCM_VARIABLE_GUID, FALSE, L05_BIOS_LOGO_DIY_VERSION_CRC_CONTROL_VARIABLE_NAME}, // LBLDVCC
#endif
//_End_L05_BIOS_POST_LOGO_DIY_SUPPORT_
//_Start_L05_PROJECT_SHIP_SUPPORT_
#ifndef L05_PROJECT_SHIP_SUPPORT_ENABLE
{ PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_GUID, TRUE, PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_NAME}, // Put at here, Other all variable GUID and Other all variable name
#else
//
// [ODM request]
// After project ship support, keep all Setup item settings (all variable)
// which defined in Setup UI while BIOS update.
//
// Do not delete any variables.
//
{ PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_GUID, FALSE, PRESERVED_VARIABLE_TABLE_2_OTHER_ALL_NAME}, // Put at here, Other all variable GUID and Other all variable name
#endif
//_End_L05_PROJECT_SHIP_SUPPORT_
{ {0}, FALSE, NULL} // End of table
};
//_Start_L05_BIOS_OPTANE_SUPPORT_
#ifdef L05_BIOS_OPTANE_SUPPORT_ENABLE
/**
This function offers an interface to backup Setup Item.
@param None
@retval EFI_SUCCESS The operation completed successfully.
@retval Others An unexpected error occurred.
*/
EFI_STATUS
L05BackupSetupItem (
)
{
EFI_STATUS Status;
EFI_SMM_VARIABLE_PROTOCOL *SmmVariable;
L05_BACKUP_SETUP_ITEM L05BackupSetupItem;
UINTN BufferSize;
PCH_SETUP PchSetup;
EFI_GUID PchSetupVariableGuid = PCH_SETUP_GUID;
Status = EFI_SUCCESS;
SmmVariable = NULL;
BufferSize = 0;
ZeroMem (&L05BackupSetupItem, sizeof (L05_BACKUP_SETUP_ITEM));
Status = gSmst->SmmLocateProtocol (
&gEfiSmmVariableProtocolGuid,
NULL,
&SmmVariable
);
if (EFI_ERROR (Status)) {
return Status;
}
BufferSize = sizeof (PCH_SETUP);
Status = SmmVariable->SmmGetVariable (
PCH_SETUP_VARIABLE_NAME,
&PchSetupVariableGuid,
NULL,
&BufferSize,
&PchSetup
);
if (EFI_ERROR (Status)) {
return Status;
}
L05BackupSetupItem.SataInterfaceMode = PchSetup.SataInterfaceMode;
CopyMem (L05BackupSetupItem.RstPcieRemapEnabled, PchSetup.RstPcieRemapEnabled, PCH_MAX_PCIE_ROOT_PORTS);
L05BackupSetupItem.SataRstOptaneMemory = PchSetup.SataRstOptaneMemory;
Status = SmmVariable->SmmSetVariable (
L05_BACKUP_SETUP_ITEM_VARIABLE_NAME,
&gEfiL05BackupSetupItemVariableGuid,
(EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE),
sizeof (L05_BACKUP_SETUP_ITEM),
&L05BackupSetupItem
);
return Status;
}
#endif
//[-start-210918-Dongxu0019-add]//
/*
Stores the values of the Setup Utility options that the user can manipulate in the Variable "BiosBackupSetUpKeep".
*/
EFI_STATUS
BIOSBackupSetupKeep (
)
{
EFI_STATUS Status;
EFI_SMM_VARIABLE_PROTOCOL *SmmVariable;
BIOS_BACKUP_SETUP_KEEP BIOSSetupKeep;
UINTN BufferSize1;
UINTN BufferSize2;
UINTN BufferSize3;
SYSTEM_CONFIGURATION SetupVariable;
SA_SETUP SaSetup;
EFI_GUID SaSetupVariableGuid = SA_SETUP_GUID;
CPU_SETUP CpuSetup;
EFI_GUID CpuSetupVariableGuid = CPU_SETUP_GUID;
//[-start-20211213-BAIN000066-add]//
#ifdef LCFC_SUPPORT
UINT8 KeepSecureBootMode = 0;
UINTN KeepSecureBootModeSize = sizeof (KeepSecureBootMode);
#endif
//[-end-20211213-BAIN000066-add]//
//[-start-220216-BAIN000096-add]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
UINT8 AfterFlashSBBRecovey = 1;
UINTN AfterFlashSBBRecoveySize = sizeof (AfterFlashSBBRecovey);
#endif
//[-end-220216-BAIN000096-add]//
Status = EFI_SUCCESS;
SmmVariable = NULL;
BufferSize1 = 0;
BufferSize2 = 0;
BufferSize3 = 0;
ZeroMem (&BIOSSetupKeep, sizeof (BIOS_BACKUP_SETUP_KEEP));
Status = gSmst->SmmLocateProtocol (
&gEfiSmmVariableProtocolGuid,
NULL,
&SmmVariable
);
if (EFI_ERROR (Status)) {
return Status;
}
//Setup
BufferSize1 = sizeof (SYSTEM_CONFIGURATION);
Status = SmmVariable->SmmGetVariable (
L"Setup",
&gSystemConfigurationGuid,
NULL,
&BufferSize1,
&SetupVariable
);
if (EFI_ERROR (Status)) {
return Status;
}
//SaSetup
BufferSize2 = sizeof (SA_SETUP);
Status = SmmVariable->SmmGetVariable (
SA_SETUP_VARIABLE_NAME,
&SaSetupVariableGuid,
NULL,
&BufferSize2,
&SaSetup
);
if (EFI_ERROR (Status)) {
return Status;
}
//CpuSetup
BufferSize3 = sizeof (CPU_SETUP);
Status = SmmVariable->SmmGetVariable (
CPU_SETUP_VARIABLE_NAME,
&CpuSetupVariableGuid,
NULL,
&BufferSize3,
&CpuSetup
);
if (EFI_ERROR (Status)) {
return Status;
}
//
//Configuration Setup Items.
//
BIOSSetupKeep.L05WirelessLan = SetupVariable.L05WirelessLan;
BIOSSetupKeep.VmdEnable = SaSetup.VmdEnable;
BIOSSetupKeep.PrimaryDisplay = SaSetup.PrimaryDisplay;
BIOSSetupKeep.VT = CpuSetup.VT;
BIOSSetupKeep.EnableVtd = SaSetup.EnableVtd;
BIOSSetupKeep.HyperThreading = CpuSetup.HyperThreading;
BIOSSetupKeep.L05BiosBackFlash = SetupVariable.L05BiosBackFlash;
BIOSSetupKeep.L05HotKeyMode = SetupVariable.L05HotKeyMode;
BIOSSetupKeep.L05FoolProofFnCtrl = SetupVariable.L05FoolProofFnCtrl;
BIOSSetupKeep.L05AlwaysOnUsb = SetupVariable.L05AlwaysOnUsb;
BIOSSetupKeep.L05ChargeInBatteryMode = SetupVariable.L05ChargeInBatteryMode;
BIOSSetupKeep.L05DisableBuildingInBatterySupport = SetupVariable.L05DisableBuildingInBatterySupport;
BIOSSetupKeep.L05SystemPerformanceMode = SetupVariable.L05SystemPerformanceMode;
BIOSSetupKeep.L05ThermalMode = SetupVariable.L05ThermalMode;
BIOSSetupKeep.L05FlipToBoot = SetupVariable.L05FlipToBoot;
BIOSSetupKeep.L05OneKeyBattery = SetupVariable.L05OneKeyBattery;
//[-start-21119-TAMT000032-modify]//
//[-start-211203-QINGLIN0125-modify]//
//[-start-211206-OWENWU0029-modify]//
//[-start-211214-Ching000017-modify]//
#if defined(C970_BSH_SUPPORT) || defined(C770_BSH_SUPPORT) || defined(S77014_BSH_SUPPORT) || defined(S370_BSH_SUPPORT) || defined(S570_BSH_SUPPORT) || defined(S77013_BSH_SUPPORT) || defined(S77014IAH_BSH_SUPPORT)
BIOSSetupKeep.L05BiosSelfHealing = SetupVariable.L05BiosSelfHealing;
#endif
//[-end-211214-Ching000017-modify]//
//[-end-211206-OWENWU0029-modify]//
//[-end-211203-QINGLIN0125-modify]//
//[-end-21119-TAMT000032-modify]//
//[-start-211124-kebin000069-modify]//
//[-start-220113-YUNLEI0158-modify]//
//[-start-220117-SHAONN0027-modify]//
#if defined(C970_SUPPORT) || defined(C770_SUPPORT) || defined(S370_SUPPORT)
BIOSSetupKeep.L05UltraQuietMode = SetupVariable.L05UltraQuietMode;
#endif
//[-end-220117-SHAONN0027-modify]//
//[-end-220113-YUNLEI0158-modify]//
//[-end-211124-kebin000069-modify]//
//
//Security Setup Items.
//
BIOSSetupKeep.L05DeviceGuard = SetupVariable.L05DeviceGuard;
BIOSSetupKeep.L05SecureBoot = SetupVariable.L05SecureBoot;
BIOSSetupKeep.L05PlatformMode = SetupVariable.L05PlatformMode;
BIOSSetupKeep.L05SecureBootMode = SetupVariable.L05SecureBootMode;
//[-start-211117-BAIN000058-add]//
//[-start-211207-SHAONN0023-add]//
#ifdef LCFC_SUPPORT
BIOSSetupKeep.L05PowerOnPassword = SetupVariable.PowerOnPassword;
BIOSSetupKeep.L05NaturalFileGuard = SetupVariable.L05NaturalFileGuard;
BIOSSetupKeep.L05FtpmEnable = SetupVariable.L05FtpmEnable;
#endif
//[-end-211207-SHAONN0023-add]//
//[-end-211117-BAIN000058-add]//
//
//Boot Setup Items.
//
BIOSSetupKeep.L05FastBoot = SetupVariable.L05FastBoot;
BIOSSetupKeep.UsbBoot = SetupVariable.UsbBoot;
BIOSSetupKeep.PxeBootToLan = SetupVariable.PxeBootToLan;
BIOSSetupKeep.L05PxeIpv4First = SetupVariable.L05PxeIpv4First;
Status = SmmVariable->SmmSetVariable (
BIOS_BACKUP_SETUP_KEEP_VARIABLE_NAME,
&gEfiBIOSBackupSetupKeepVariableGuid,
(EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE),
sizeof (BIOS_BACKUP_SETUP_KEEP),
&BIOSSetupKeep
);
if (EFI_ERROR (Status)) {
return Status;
}
//[-start-20211213-BAIN000066-add]//
#ifdef LCFC_SUPPORT
Status = SmmVariable->SmmSetVariable (
L"KeepSecureBootMode",
&gLfcVariableGuid,
( EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE),
KeepSecureBootModeSize,
&KeepSecureBootMode
);
if (EFI_ERROR (Status)) {
return Status;
}
#endif
//[-end-20211213-BAIN000066-add]//
//[-start-220216-BAIN000096-add]//
#if defined(S77013_SUPPORT) || defined(S370_SUPPORT) || defined(S570_SUPPORT) || defined(S77014IAH_SUPPORT)
Status = SmmVariable->SmmSetVariable (
L"AfterFlashSBBRecovey",
&gLfcVariableGuid,
(EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE),
AfterFlashSBBRecoveySize,
&AfterFlashSBBRecovey
);
if (EFI_ERROR (Status)) {
return Status;
}
#endif
//[-end-220216-BAIN000096-add]//
return Status;
}
//[-end-210918-Dongxu0019-add]//
//_End_L05_BIOS_OPTANE_SUPPORT_
/**
To return the preserved list.
@param[in, out] VariablePreservedTable Pointer to the table of preserved variables.
@param[in, out] IsKeepVariableInList True: The variables in the table should be preserved.
FALSE: The variables in the table should be deleted.
@retval EFI_UNSUPPORTED Returns unsupported by default.
@retval EFI_SUCCESS The work to delete the variables is completed.
@retval EFI_MEDIA_CHANGED The table of preserved variables is updated.
**/
EFI_STATUS
OemSvcVariablePreservedTable2 (
IN OUT PRESERVED_VARIABLE_TABLE_2 **VariablePreservedTable2
)
{
/*++
Todo:
Add project specific code in here.
--*/
//
// The followings are the sample codes. Please customize here.
//
//_Start_L05_BIOS_OPTANE_SUPPORT_
#ifdef L05_BIOS_OPTANE_SUPPORT_ENABLE
L05BackupSetupItem ();
#endif
//_End_L05_BIOS_OPTANE_SUPPORT_
//[-start-210918-Dongxu0019-add]//
#ifdef LCFC_SUPPORT
BIOSBackupSetupKeep();
#endif
//[-end-210918-Dongxu0019-add]//
*VariablePreservedTable2 = mPreservedVariableTable2;
return EFI_MEDIA_CHANGED;
//return EFI_UNSUPPORTED;
}
/**
Old function OemSvcVariablePreservedTable to return the old sturcture (PRESERVED_VARIABLE_TABLE) preserved list.
The process will launch new function OemSvcVariablePreservedTable2 first,
and then launch old function OemSvcVariablePreservedTable only when new function OemSvcVariablePreservedTable2
return EFI_UNSUPPORTED.
According to logo requirement, should preserve all UEFI variables with VendorGuid
{77fa9abd-0359-4d32-bd60-28f4e78f784b}, so the those UEFI variables with this VendorGuidVendorGuid
will not be limited in this table when if table is filled with those special variables to remove in table,
this table parse process will skip those.
@param[in, out] VariablePreservedTable Pointer to the table of preserved variables.
(old structure PRESERVED_VARIABLE_TABLE)
@param[in, out] IsKeepVariableInList True: The variables in the table should be preserved.
FALSE: The variables in the table should be deleted.
@retval EFI_UNSUPPORTED Returns unsupported by default.
@retval EFI_SUCCESS The work to delete the variables is completed.
@retval EFI_MEDIA_CHANGED The table of preserved variables is updated.
**/
EFI_STATUS
OemSvcVariablePreservedTable (
IN OUT PRESERVED_VARIABLE_TABLE **VariablePreservedTable,
IN OUT BOOLEAN *IsKeepVariableInList
)
{
/*++
Todo:
Add project specific code in here.
--*/
//
// The followings are the sample codes. Please customize here.
//
//*IsKeepVariableInList = TRUE;
//*VariablePreservedTable = mPreservedVariableTable;
//return EFI_MEDIA_CHANGED;
return EFI_UNSUPPORTED;
}