mirror of https://github.com/acidanthera/audk.git
Code Clean up for IfrSupportLib, HiiLib, PeiExtractGuidedSectionLib and DxeExtractGuidedSectionLib,
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5687 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d1a44d08c1
commit
b911d09f55
|
@ -21,7 +21,7 @@
|
||||||
#include <Library/ExtractGuidedSectionLib.h>
|
#include <Library/ExtractGuidedSectionLib.h>
|
||||||
|
|
||||||
STATIC GUID *mExtractHandlerGuidTable;
|
STATIC GUID *mExtractHandlerGuidTable;
|
||||||
STATIC UINT32 mNumberOfExtractHandler;
|
STATIC UINT32 mNumberOfExtractHandler = 0;
|
||||||
|
|
||||||
STATIC EXTRACT_GUIDED_SECTION_DECODE_HANDLER *mExtractDecodeHandlerTable;
|
STATIC EXTRACT_GUIDED_SECTION_DECODE_HANDLER *mExtractDecodeHandlerTable;
|
||||||
STATIC EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER *mExtractGetInfoHandlerTable;
|
STATIC EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER *mExtractGetInfoHandlerTable;
|
||||||
|
@ -52,19 +52,17 @@ DxeExtractGuidedSectionLibConstructor (
|
||||||
|
|
||||||
mExtractDecodeHandlerTable = (EXTRACT_GUIDED_SECTION_DECODE_HANDLER *) AllocatePool (PcdGet32 (PcdMaximumGuidedExtractHandler) * sizeof (EXTRACT_GUIDED_SECTION_DECODE_HANDLER));
|
mExtractDecodeHandlerTable = (EXTRACT_GUIDED_SECTION_DECODE_HANDLER *) AllocatePool (PcdGet32 (PcdMaximumGuidedExtractHandler) * sizeof (EXTRACT_GUIDED_SECTION_DECODE_HANDLER));
|
||||||
if (mExtractDecodeHandlerTable == NULL) {
|
if (mExtractDecodeHandlerTable == NULL) {
|
||||||
|
FreePool (mExtractHandlerGuidTable);
|
||||||
return RETURN_OUT_OF_RESOURCES;
|
return RETURN_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
mExtractGetInfoHandlerTable = (EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER *) AllocatePool (PcdGet32 (PcdMaximumGuidedExtractHandler) * sizeof (EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER));
|
mExtractGetInfoHandlerTable = (EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER *) AllocatePool (PcdGet32 (PcdMaximumGuidedExtractHandler) * sizeof (EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER));
|
||||||
if (mExtractGetInfoHandlerTable == NULL) {
|
if (mExtractGetInfoHandlerTable == NULL) {
|
||||||
|
FreePool (mExtractHandlerGuidTable);
|
||||||
|
FreePool (mExtractDecodeHandlerTable);
|
||||||
return RETURN_OUT_OF_RESOURCES;
|
return RETURN_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// the initialized number is Zero.
|
|
||||||
//
|
|
||||||
mNumberOfExtractHandler = 0;
|
|
||||||
|
|
||||||
return RETURN_SUCCESS;
|
return RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,19 +120,15 @@ ExtractGuidedSectionRegisterHandlers (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (&mExtractHandlerGuidTable[Index], SectionGuid)) {
|
if (CompareGuid (&mExtractHandlerGuidTable[Index], SectionGuid)) {
|
||||||
break;
|
//
|
||||||
|
// If the guided handler has been registered before, only update its handler.
|
||||||
|
//
|
||||||
|
mExtractDecodeHandlerTable [Index] = DecodeHandler;
|
||||||
|
mExtractGetInfoHandlerTable [Index] = GetInfoHandler;
|
||||||
|
return RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// If the guided handler has been registered before, only update its handler.
|
|
||||||
//
|
|
||||||
if (Index < mNumberOfExtractHandler) {
|
|
||||||
mExtractDecodeHandlerTable [Index] = DecodeHandler;
|
|
||||||
mExtractGetInfoHandlerTable [Index] = GetInfoHandler;
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check the global table is enough to contain new Handler.
|
// Check the global table is enough to contain new Handler.
|
||||||
//
|
//
|
||||||
|
@ -197,26 +191,22 @@ ExtractGuidedSectionGetInfo (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (&mExtractHandlerGuidTable[Index], &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
if (CompareGuid (&mExtractHandlerGuidTable[Index], &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
break;
|
//
|
||||||
|
// Call the match handler to getinfo for the input section data.
|
||||||
|
//
|
||||||
|
return mExtractGetInfoHandlerTable [Index] (
|
||||||
|
InputSection,
|
||||||
|
OutputBufferSize,
|
||||||
|
ScratchBufferSize,
|
||||||
|
SectionAttribute
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Not found, the input guided section is not supported.
|
// Not found, the input guided section is not supported.
|
||||||
//
|
//
|
||||||
if (Index == mNumberOfExtractHandler) {
|
return RETURN_UNSUPPORTED;
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Call the match handler to getinfo for the input section data.
|
|
||||||
//
|
|
||||||
return mExtractGetInfoHandlerTable [Index] (
|
|
||||||
InputSection,
|
|
||||||
OutputBufferSize,
|
|
||||||
ScratchBufferSize,
|
|
||||||
SectionAttribute
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -270,24 +260,20 @@ ExtractGuidedSectionDecode (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < mNumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (&mExtractHandlerGuidTable[Index], &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
if (CompareGuid (&mExtractHandlerGuidTable[Index], &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
break;
|
//
|
||||||
|
// Call the match handler to extract raw data for the input section data.
|
||||||
|
//
|
||||||
|
return mExtractDecodeHandlerTable [Index] (
|
||||||
|
InputSection,
|
||||||
|
OutputBuffer,
|
||||||
|
ScratchBuffer,
|
||||||
|
AuthenticationStatus
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Not found, the input guided section is not supported.
|
// Not found, the input guided section is not supported.
|
||||||
//
|
//
|
||||||
if (Index == mNumberOfExtractHandler) {
|
return RETURN_UNSUPPORTED;
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Call the match handler to extract raw data for the input section data.
|
|
||||||
//
|
|
||||||
return mExtractDecodeHandlerTable [Index] (
|
|
||||||
InputSection,
|
|
||||||
OutputBuffer,
|
|
||||||
ScratchBuffer,
|
|
||||||
AuthenticationStatus
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
DebugLib
|
DebugLib
|
||||||
|
|
||||||
[FixedPcd.common]
|
[Pcd.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Language related HII Library implementation.
|
Language related HII Library implementation.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation<BR>
|
Copyright (c) 2006 - 2008, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -128,6 +128,7 @@ HiiLibGetSupportedLanguages (
|
||||||
ASSERT (IsHiiHandleRegistered (HiiHandle));
|
ASSERT (IsHiiHandleRegistered (HiiHandle));
|
||||||
//
|
//
|
||||||
// Collect current supported Languages for given HII handle
|
// Collect current supported Languages for given HII handle
|
||||||
|
// First try allocate 4K buffer to store the current supported languages.
|
||||||
//
|
//
|
||||||
BufferSize = 0x1000;
|
BufferSize = 0x1000;
|
||||||
LanguageString = AllocateZeroPool (BufferSize);
|
LanguageString = AllocateZeroPool (BufferSize);
|
||||||
|
@ -223,6 +224,7 @@ HiiLibGetSupportedSecondaryLanguages (
|
||||||
ASSERT (IsHiiHandleRegistered (HiiHandle));
|
ASSERT (IsHiiHandleRegistered (HiiHandle));
|
||||||
//
|
//
|
||||||
// Collect current supported 2nd Languages for given HII handle
|
// Collect current supported 2nd Languages for given HII handle
|
||||||
|
// First try allocate 4K buffer to store the current supported 2nd languages.
|
||||||
//
|
//
|
||||||
BufferSize = 0x1000;
|
BufferSize = 0x1000;
|
||||||
LanguageString = AllocateZeroPool (BufferSize);
|
LanguageString = AllocateZeroPool (BufferSize);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
HII Library implementation that uses DXE protocols and services.
|
HII Library implementation that uses DXE protocols and services.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation<BR>
|
Copyright (c) 2006 - 2008, Intel Corporation<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -14,10 +14,8 @@
|
||||||
|
|
||||||
#include "InternalHiiLib.h"
|
#include "InternalHiiLib.h"
|
||||||
|
|
||||||
CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt;
|
CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt = NULL;
|
||||||
CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt;
|
CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt = NULL;
|
||||||
BOOLEAN mHiiProtocolsInitialized = FALSE;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
|
@ -31,7 +29,7 @@ LocateHiiProtocols (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (mHiiProtocolsInitialized) {
|
if (mHiiStringProt != NULL && mHiiDatabaseProt != NULL) {
|
||||||
//
|
//
|
||||||
// Only need to initialize the protocol instance once.
|
// Only need to initialize the protocol instance once.
|
||||||
//
|
//
|
||||||
|
@ -43,8 +41,6 @@ LocateHiiProtocols (
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &mHiiStringProt);
|
Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &mHiiStringProt);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
mHiiProtocolsInitialized = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,7 +108,7 @@ InternalHiiLibPreparePackages (
|
||||||
PackageListHeader = AllocateZeroPool (PackageListLength);
|
PackageListHeader = AllocateZeroPool (PackageListLength);
|
||||||
ASSERT (PackageListHeader != NULL);
|
ASSERT (PackageListHeader != NULL);
|
||||||
|
|
||||||
CopyMem (&PackageListHeader->PackageListGuid, GuidId, sizeof (EFI_GUID));
|
CopyGuid (&PackageListHeader->PackageListGuid, GuidId);
|
||||||
PackageListHeader->PackageLength = PackageListLength;
|
PackageListHeader->PackageLength = PackageListLength;
|
||||||
|
|
||||||
PackageListData = ((UINT8 *) PackageListHeader) + sizeof (EFI_HII_PACKAGE_LIST_HEADER);
|
PackageListData = ((UINT8 *) PackageListHeader) + sizeof (EFI_HII_PACKAGE_LIST_HEADER);
|
||||||
|
@ -304,6 +300,7 @@ HiiLibGetHiiHandles (
|
||||||
|
|
||||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||||
*HiiHandleBuffer = AllocateZeroPool (BufferLength);
|
*HiiHandleBuffer = AllocateZeroPool (BufferLength);
|
||||||
|
ASSERT (*HiiHandleBuffer != NULL);
|
||||||
Status = mHiiDatabaseProt->ListPackageLists (
|
Status = mHiiDatabaseProt->ListPackageLists (
|
||||||
mHiiDatabaseProt,
|
mHiiDatabaseProt,
|
||||||
EFI_HII_PACKAGE_TYPE_ALL,
|
EFI_HII_PACKAGE_TYPE_ALL,
|
||||||
|
@ -366,13 +363,14 @@ HiiLibExtractGuidFromHiiHandle (
|
||||||
Status = mHiiDatabaseProt->ExportPackageLists (mHiiDatabaseProt, Handle, &BufferSize, HiiPackageList);
|
Status = mHiiDatabaseProt->ExportPackageLists (mHiiDatabaseProt, Handle, &BufferSize, HiiPackageList);
|
||||||
}
|
}
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
|
FreePool (HiiPackageList);
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Extract GUID
|
// Extract GUID
|
||||||
//
|
//
|
||||||
CopyMem (Guid, &HiiPackageList->PackageListGuid, sizeof (EFI_GUID));
|
CopyGuid (Guid, &HiiPackageList->PackageListGuid);
|
||||||
|
|
||||||
FreePool (HiiPackageList);
|
FreePool (HiiPackageList);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = HiiLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
LIBRARY_CLASS = HiiLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||||
EDK_RELEASE_VERSION = 0x00020000
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
EFI_SPECIFICATION_VERSION = 0x0002000A
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||||
|
@ -32,16 +32,19 @@
|
||||||
HiiLib.c
|
HiiLib.c
|
||||||
HiiString.c
|
HiiString.c
|
||||||
HiiLanguage.c
|
HiiLanguage.c
|
||||||
|
InternalHiiLib.h
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
|
BaseMemoryLib
|
||||||
|
BaseLib
|
||||||
DebugLib
|
DebugLib
|
||||||
PcdLib
|
PcdLib
|
||||||
UefiRuntimeServicesTableLib
|
UefiRuntimeServicesTableLib
|
||||||
|
UefiBootServicesTableLib
|
||||||
DevicePathLib
|
DevicePathLib
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
|
|
|
@ -38,8 +38,6 @@
|
||||||
|
|
||||||
extern CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt;
|
extern CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt;
|
||||||
extern CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt;
|
extern CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt;
|
||||||
extern BOOLEAN mHiiProtocolsInitialized;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function check if the Hii Handle is a valid handle registered
|
This function check if the Hii Handle is a valid handle registered
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#Utility functions which helps in opcode creation, HII configuration string manipulations,
|
#Utility functions which helps in opcode creation, HII configuration string manipulations,
|
||||||
#pop up window creations, setup browser persistence data set and get.
|
#pop up window creations, setup browser persistence data set and get.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007, Intel Corporation. All rights reserved.
|
# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
|
||||||
#
|
#
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
FILE_GUID = bf38668e-e231-4baa-99e4-8c0e4c35dca6
|
FILE_GUID = bf38668e-e231-4baa-99e4-8c0e4c35dca6
|
||||||
MODULE_TYPE = DXE_DRIVER
|
MODULE_TYPE = DXE_DRIVER
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = IfrSupportLib
|
LIBRARY_CLASS = IfrSupportLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||||
EDK_RELEASE_VERSION = 0x00020000
|
EDK_RELEASE_VERSION = 0x00020000
|
||||||
EFI_SPECIFICATION_VERSION = 0x00020000
|
EFI_SPECIFICATION_VERSION = 0x00020000
|
||||||
|
|
||||||
|
@ -46,20 +46,10 @@
|
||||||
DevicePathLib
|
DevicePathLib
|
||||||
BaseLib
|
BaseLib
|
||||||
UefiBootServicesTableLib
|
UefiBootServicesTableLib
|
||||||
UefiRuntimeServicesTableLib
|
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
DebugLib
|
DebugLib
|
||||||
PcdLib
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
gEfiGlobalVariableGuid # ALWAYS_CONSUMED
|
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiHiiDatabaseProtocolGuid
|
|
||||||
gEfiHiiStringProtocolGuid
|
|
||||||
gEfiHiiConfigRoutingProtocolGuid
|
gEfiHiiConfigRoutingProtocolGuid
|
||||||
gEfiFormBrowser2ProtocolGuid
|
gEfiFormBrowser2ProtocolGuid
|
||||||
|
|
||||||
[Pcd]
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
/** @file
|
|
||||||
Utility functions which helps in opcode creation, HII configuration string manipulations,
|
|
||||||
pop up window creations, setup browser persistence data set and get.
|
|
||||||
|
|
||||||
Copyright (c) 2007 - 2008, Intel Corporation
|
|
||||||
All rights reserved. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include "UefiIfrLibraryInternal.h"
|
|
||||||
|
|
||||||
EFI_HII_DATABASE_PROTOCOL *gIfrLibHiiDatabase;
|
|
||||||
EFI_HII_STRING_PROTOCOL *gIfrLibHiiString;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
IfrSupportLib's constructor. It locates the required protocol:
|
|
||||||
gEfiHiiDatabaseProtocolGuid and gEfiHiiStringProtocolGuid.
|
|
||||||
|
|
||||||
@param ImageHandle The firmware allocated handle for the EFI image.
|
|
||||||
|
|
||||||
@param SystemTable A pointer to the EFI System Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS This function always completes successfully.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
IfrSupportLibConstructor (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &gIfrLibHiiDatabase);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &gIfrLibHiiString);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,40 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include "UefiIfrLibraryInternal.h"
|
#include "UefiIfrLibraryInternal.h"
|
||||||
|
|
||||||
|
STATIC CONST EFI_FORM_BROWSER2_PROTOCOL *mFormBrowser2 = NULL;
|
||||||
|
STATIC CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting = NULL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function locate FormBrowser2 protocols for later usage.
|
||||||
|
|
||||||
|
@return Status the status to locate protocol.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
LocateFormBrowser2Protocols (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
//
|
||||||
|
// Locate protocols for later usage
|
||||||
|
//
|
||||||
|
if (mFormBrowser2 == NULL) {
|
||||||
|
Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &mFormBrowser2);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mHiiConfigRouting == NULL) {
|
||||||
|
Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &mHiiConfigRouting);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Fake <ConfigHdr>
|
// Fake <ConfigHdr>
|
||||||
//
|
//
|
||||||
|
@ -32,6 +66,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST UINT16 mFakeConfigHdr[] = L"GUID=00000000000
|
||||||
|
|
||||||
@retval EFI_SUCCESS Displayed dialog and received user interaction
|
@retval EFI_SUCCESS Displayed dialog and received user interaction
|
||||||
@retval EFI_INVALID_PARAMETER One of the parameters was invalid.
|
@retval EFI_INVALID_PARAMETER One of the parameters was invalid.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is no enough available memory space.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
@ -86,13 +121,19 @@ IfrLibCreatePopUp2 (
|
||||||
CurrentAttribute = ConOut->Mode->Attribute;
|
CurrentAttribute = ConOut->Mode->Attribute;
|
||||||
|
|
||||||
LineBuffer = AllocateZeroPool (DimensionsWidth * sizeof (CHAR16));
|
LineBuffer = AllocateZeroPool (DimensionsWidth * sizeof (CHAR16));
|
||||||
ASSERT (LineBuffer != NULL);
|
if (LineBuffer == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Determine the largest string in the dialog box
|
// Determine the largest string in the dialog box
|
||||||
// Notice we are starting with 1 since String is the first string
|
// Notice we are starting with 1 since String is the first string
|
||||||
//
|
//
|
||||||
StringArray = AllocateZeroPool (NumberOfLines * sizeof (CHAR16 *));
|
StringArray = AllocateZeroPool (NumberOfLines * sizeof (CHAR16 *));
|
||||||
|
if (StringArray == NULL) {
|
||||||
|
FreePool (LineBuffer);
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
LargestString = StrLen (String);
|
LargestString = StrLen (String);
|
||||||
StringArray[0] = String;
|
StringArray[0] = String;
|
||||||
|
|
||||||
|
@ -100,6 +141,8 @@ IfrLibCreatePopUp2 (
|
||||||
StackString = VA_ARG (Marker, CHAR16 *);
|
StackString = VA_ARG (Marker, CHAR16 *);
|
||||||
|
|
||||||
if (StackString == NULL) {
|
if (StackString == NULL) {
|
||||||
|
FreePool (LineBuffer);
|
||||||
|
FreePool (StringArray);
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,7 +254,11 @@ IfrLibCreatePopUp2 (
|
||||||
ConOut->SetAttribute (ConOut, CurrentAttribute);
|
ConOut->SetAttribute (ConOut, CurrentAttribute);
|
||||||
ConOut->EnableCursor (ConOut, TRUE);
|
ConOut->EnableCursor (ConOut, TRUE);
|
||||||
|
|
||||||
return Status;}
|
FreePool (LineBuffer);
|
||||||
|
FreePool (StringArray);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -307,6 +354,7 @@ ToLower (
|
||||||
@param BufferSize Size of the buffer in bytes.
|
@param BufferSize Size of the buffer in bytes.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The function completed successfully.
|
@retval EFI_SUCCESS The function completed successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is no enough available memory space.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
@ -322,6 +370,9 @@ BufferToHexString (
|
||||||
UINTN StrBufferLen;
|
UINTN StrBufferLen;
|
||||||
|
|
||||||
NewBuffer = AllocateCopyPool (BufferSize, Buffer);
|
NewBuffer = AllocateCopyPool (BufferSize, Buffer);
|
||||||
|
if (NewBuffer == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
SwapBuffer (NewBuffer, BufferSize);
|
SwapBuffer (NewBuffer, BufferSize);
|
||||||
|
|
||||||
StrBufferLen = BufferSize * sizeof (CHAR16) + 1;
|
StrBufferLen = BufferSize * sizeof (CHAR16) + 1;
|
||||||
|
@ -670,6 +721,7 @@ FindBlockName (
|
||||||
|
|
||||||
@retval EFI_SUCCESS Routine success.
|
@retval EFI_SUCCESS Routine success.
|
||||||
@retval EFI_BUFFER_TOO_SMALL The intput buffer is too small.
|
@retval EFI_BUFFER_TOO_SMALL The intput buffer is too small.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is no enough available memory space.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
@ -688,18 +740,11 @@ GetBrowserData (
|
||||||
UINTN HeaderLen;
|
UINTN HeaderLen;
|
||||||
UINTN BufferLen;
|
UINTN BufferLen;
|
||||||
CHAR16 *Progress;
|
CHAR16 *Progress;
|
||||||
EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
|
|
||||||
EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Locate protocols for use
|
// Locate protocols for use
|
||||||
//
|
//
|
||||||
Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &FormBrowser2);
|
Status = LocateFormBrowser2Protocols ();
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &HiiConfigRouting);
|
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -710,15 +755,21 @@ GetBrowserData (
|
||||||
ConfigHdr = mFakeConfigHdr;
|
ConfigHdr = mFakeConfigHdr;
|
||||||
HeaderLen = StrLen (ConfigHdr);
|
HeaderLen = StrLen (ConfigHdr);
|
||||||
|
|
||||||
|
//
|
||||||
|
// First try allocate 0x4000 buffer for the formet storage data.
|
||||||
|
//
|
||||||
BufferLen = 0x4000;
|
BufferLen = 0x4000;
|
||||||
ConfigResp = AllocateZeroPool (BufferLen + HeaderLen);
|
ConfigResp = AllocateZeroPool (BufferLen + HeaderLen);
|
||||||
|
if (ConfigResp == NULL) {
|
||||||
|
BufferLen = 0;
|
||||||
|
}
|
||||||
|
|
||||||
StringPtr = ConfigResp + HeaderLen;
|
StringPtr = ConfigResp + HeaderLen;
|
||||||
*StringPtr = L'&';
|
*StringPtr = L'&';
|
||||||
StringPtr++;
|
StringPtr++;
|
||||||
|
|
||||||
Status = FormBrowser2->BrowserCallback (
|
Status = mFormBrowser2->BrowserCallback (
|
||||||
FormBrowser2,
|
mFormBrowser2,
|
||||||
&BufferLen,
|
&BufferLen,
|
||||||
StringPtr,
|
StringPtr,
|
||||||
TRUE,
|
TRUE,
|
||||||
|
@ -726,15 +777,21 @@ GetBrowserData (
|
||||||
VariableName
|
VariableName
|
||||||
);
|
);
|
||||||
if (Status == EFI_BUFFER_TOO_SMALL) {
|
if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||||
FreePool (ConfigResp);
|
if (ConfigResp != NULL) {
|
||||||
|
FreePool (ConfigResp);
|
||||||
|
}
|
||||||
|
|
||||||
ConfigResp = AllocateZeroPool (BufferLen + HeaderLen);
|
ConfigResp = AllocateZeroPool (BufferLen + HeaderLen);
|
||||||
|
if (ConfigResp == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
StringPtr = ConfigResp + HeaderLen;
|
StringPtr = ConfigResp + HeaderLen;
|
||||||
*StringPtr = L'&';
|
*StringPtr = L'&';
|
||||||
StringPtr++;
|
StringPtr++;
|
||||||
|
|
||||||
Status = FormBrowser2->BrowserCallback (
|
Status = mFormBrowser2->BrowserCallback (
|
||||||
FormBrowser2,
|
mFormBrowser2,
|
||||||
&BufferLen,
|
&BufferLen,
|
||||||
StringPtr,
|
StringPtr,
|
||||||
TRUE,
|
TRUE,
|
||||||
|
@ -751,8 +808,8 @@ GetBrowserData (
|
||||||
//
|
//
|
||||||
// Convert <ConfigResp> to buffer data
|
// Convert <ConfigResp> to buffer data
|
||||||
//
|
//
|
||||||
Status = HiiConfigRouting->ConfigToBlock (
|
Status = mHiiConfigRouting->ConfigToBlock (
|
||||||
HiiConfigRouting,
|
mHiiConfigRouting,
|
||||||
ConfigResp,
|
ConfigResp,
|
||||||
Buffer,
|
Buffer,
|
||||||
BufferSize,
|
BufferSize,
|
||||||
|
@ -780,6 +837,7 @@ GetBrowserData (
|
||||||
&OFFSET=<Number>&WIDTH=<Number>*
|
&OFFSET=<Number>&WIDTH=<Number>*
|
||||||
|
|
||||||
@retval EFI_SUCCESS Routine success.
|
@retval EFI_SUCCESS Routine success.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES There is no enough available memory space.
|
||||||
@retval Other Updating Browser uncommitted data failed.
|
@retval Other Updating Browser uncommitted data failed.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -800,8 +858,6 @@ SetBrowserData (
|
||||||
UINTN HeaderLen;
|
UINTN HeaderLen;
|
||||||
UINTN BufferLen;
|
UINTN BufferLen;
|
||||||
CHAR16 *Progress;
|
CHAR16 *Progress;
|
||||||
EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
|
|
||||||
EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
|
|
||||||
CHAR16 BlockName[33];
|
CHAR16 BlockName[33];
|
||||||
CHAR16 *ConfigRequest;
|
CHAR16 *ConfigRequest;
|
||||||
CHAR16 *Request;
|
CHAR16 *Request;
|
||||||
|
@ -809,12 +865,7 @@ SetBrowserData (
|
||||||
//
|
//
|
||||||
// Locate protocols for use
|
// Locate protocols for use
|
||||||
//
|
//
|
||||||
Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &FormBrowser2);
|
Status = LocateFormBrowser2Protocols ();
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &HiiConfigRouting);
|
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -846,6 +897,9 @@ SetBrowserData (
|
||||||
|
|
||||||
BufferLen = HeaderLen * sizeof (CHAR16) + StrSize (Request);
|
BufferLen = HeaderLen * sizeof (CHAR16) + StrSize (Request);
|
||||||
ConfigRequest = AllocateZeroPool (BufferLen);
|
ConfigRequest = AllocateZeroPool (BufferLen);
|
||||||
|
if (ConfigRequest == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
CopyMem (ConfigRequest, ConfigHdr, HeaderLen * sizeof (CHAR16));
|
CopyMem (ConfigRequest, ConfigHdr, HeaderLen * sizeof (CHAR16));
|
||||||
StringPtr = ConfigRequest + HeaderLen;
|
StringPtr = ConfigRequest + HeaderLen;
|
||||||
|
@ -854,8 +908,8 @@ SetBrowserData (
|
||||||
//
|
//
|
||||||
// Convert buffer to <ConfigResp>
|
// Convert buffer to <ConfigResp>
|
||||||
//
|
//
|
||||||
Status = HiiConfigRouting->BlockToConfig (
|
Status = mHiiConfigRouting->BlockToConfig (
|
||||||
HiiConfigRouting,
|
mHiiConfigRouting,
|
||||||
ConfigRequest,
|
ConfigRequest,
|
||||||
Buffer,
|
Buffer,
|
||||||
BufferSize,
|
BufferSize,
|
||||||
|
@ -863,7 +917,7 @@ SetBrowserData (
|
||||||
&Progress
|
&Progress
|
||||||
);
|
);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
FreePool (ConfigResp);
|
FreePool (ConfigRequest);
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -875,14 +929,14 @@ SetBrowserData (
|
||||||
//
|
//
|
||||||
// Change uncommitted data in Browser
|
// Change uncommitted data in Browser
|
||||||
//
|
//
|
||||||
Status = FormBrowser2->BrowserCallback (
|
Status = mFormBrowser2->BrowserCallback (
|
||||||
FormBrowser2,
|
mFormBrowser2,
|
||||||
&BufferSize,
|
&BufferSize,
|
||||||
StringPtr,
|
StringPtr,
|
||||||
FALSE,
|
FALSE,
|
||||||
NULL,
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
FreePool (ConfigResp);
|
FreePool (ConfigRequest);
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Utility functions which helps in opcode creation, HII configuration string manipulations,
|
Utility functions which helps in opcode creation, HII configuration string manipulations,
|
||||||
pop up window creations, setup browser persistence data set and get.
|
pop up window creations, setup browser persistence data set and get.
|
||||||
|
|
||||||
Copyright (c) 2007, Intel Corporation
|
Copyright (c) 2007 - 2008, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -20,19 +20,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
#include <PiDxe.h>
|
#include <PiDxe.h>
|
||||||
|
|
||||||
#include <Guid/GlobalVariable.h>
|
|
||||||
#include <Protocol/DevicePath.h>
|
#include <Protocol/DevicePath.h>
|
||||||
|
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/UefiRuntimeServicesTableLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/DevicePathLib.h>
|
#include <Library/DevicePathLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
#include <Library/IfrSupportLib.h>
|
#include <Library/IfrSupportLib.h>
|
||||||
#include <Library/HiiLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -196,19 +196,15 @@ ExtractGuidedSectionRegisterHandlers (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionGuid)) {
|
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionGuid)) {
|
||||||
break;
|
//
|
||||||
|
// If the guided handler has been registered before, only update its handler.
|
||||||
|
//
|
||||||
|
HandlerInfo->ExtractDecodeHandlerTable [Index] = DecodeHandler;
|
||||||
|
HandlerInfo->ExtractGetInfoHandlerTable [Index] = GetInfoHandler;
|
||||||
|
return RETURN_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// If the guided handler has been registered before, only update its handler.
|
|
||||||
//
|
|
||||||
if (Index < HandlerInfo->NumberOfExtractHandler) {
|
|
||||||
HandlerInfo->ExtractDecodeHandlerTable [Index] = DecodeHandler;
|
|
||||||
HandlerInfo->ExtractGetInfoHandlerTable [Index] = GetInfoHandler;
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check the global table is enough to contain new Handler.
|
// Check the global table is enough to contain new Handler.
|
||||||
//
|
//
|
||||||
|
@ -284,26 +280,22 @@ ExtractGuidedSectionGetInfo (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
break;
|
//
|
||||||
|
// Call the match handler to getinfo for the input section data.
|
||||||
|
//
|
||||||
|
return HandlerInfo->ExtractGetInfoHandlerTable [Index] (
|
||||||
|
InputSection,
|
||||||
|
OutputBufferSize,
|
||||||
|
ScratchBufferSize,
|
||||||
|
SectionAttribute
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Not found, the input guided section is not supported.
|
// Not found, the input guided section is not supported.
|
||||||
//
|
//
|
||||||
if (Index == HandlerInfo->NumberOfExtractHandler) {
|
return RETURN_UNSUPPORTED;
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Call the match handler to getinfo for the input section data.
|
|
||||||
//
|
|
||||||
return HandlerInfo->ExtractGetInfoHandlerTable [Index] (
|
|
||||||
InputSection,
|
|
||||||
OutputBufferSize,
|
|
||||||
ScratchBufferSize,
|
|
||||||
SectionAttribute
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -366,24 +358,20 @@ ExtractGuidedSectionDecode (
|
||||||
//
|
//
|
||||||
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
|
||||||
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
|
||||||
break;
|
//
|
||||||
|
// Call the match handler to extract raw data for the input guided section.
|
||||||
|
//
|
||||||
|
return HandlerInfo->ExtractDecodeHandlerTable [Index] (
|
||||||
|
InputSection,
|
||||||
|
OutputBuffer,
|
||||||
|
ScratchBuffer,
|
||||||
|
AuthenticationStatus
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Not found, the input guided section is not supported.
|
// Not found, the input guided section is not supported.
|
||||||
//
|
//
|
||||||
if (Index == HandlerInfo->NumberOfExtractHandler) {
|
return RETURN_UNSUPPORTED;
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Call the match handler to extract raw data for the input guided section.
|
|
||||||
//
|
|
||||||
return HandlerInfo->ExtractDecodeHandlerTable [Index] (
|
|
||||||
InputSection,
|
|
||||||
OutputBuffer,
|
|
||||||
ScratchBuffer,
|
|
||||||
AuthenticationStatus
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
DebugLib
|
DebugLib
|
||||||
HobLib
|
HobLib
|
||||||
|
|
||||||
[FixedPcd.common]
|
[Pcd.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue