mirror of https://github.com/acidanthera/audk.git
ProcessCapsule() and BdsMemoryTest() are implemented in the BdsDxe module, which will be invoked at PlatformBds library.
It is not proper for a library implementation to assume the names of function in a parent module. Instead, they must be designed as the pointers to these two BdsDxe functions and passed in. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8929 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
03a2bbf3a1
commit
a798a78906
|
@ -19,6 +19,47 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
#include <Protocol/GenericMemoryTest.h>
|
||||
#include <Library/GenericBdsLib.h>
|
||||
|
||||
/**
|
||||
Perform the memory test base on the memory test intensive level,
|
||||
and update the memory resource.
|
||||
|
||||
@param Level The memory test intensive level.
|
||||
|
||||
@retval EFI_STATUS Success test all the system memory and update
|
||||
the memory resource
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *BASEM_MEMORY_TEST)(
|
||||
IN EXTENDMEM_COVERAGE_LEVEL Level
|
||||
);
|
||||
|
||||
/**
|
||||
This routine is called to see if there are any capsules we need to process.
|
||||
If the boot mode is not UPDATE, then we do nothing. Otherwise find the
|
||||
capsule HOBS and produce firmware volumes for them via the DXE service.
|
||||
Then call the dispatcher to dispatch drivers from them. Finally, check
|
||||
the status of the updates.
|
||||
|
||||
This function should be called by BDS in case we need to do some
|
||||
sort of processing even if there is no capsule to process. We
|
||||
need to do this if an earlier update went away and we need to
|
||||
clear the capsule variable so on the next reset PEI does not see it and
|
||||
think there is a capsule available.
|
||||
|
||||
@param BootMode the current boot mode
|
||||
|
||||
@retval EFI_INVALID_PARAMETER boot mode is not correct for an update
|
||||
@retval EFI_SUCCESS There is no error when processing capsule
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PROCESS_CAPSULES)(
|
||||
IN EFI_BOOT_MODE BootMode
|
||||
);
|
||||
|
||||
/**
|
||||
Platform Bds initialization. Includes the platform firmware vendor, revision
|
||||
and so crc check.
|
||||
|
@ -37,13 +78,17 @@ PlatformBdsInit (
|
|||
|
||||
@param DriverOptionList The header of the driver option link list
|
||||
@param BootOptionList The header of the boot option link list
|
||||
@param ProcessCapsules A pointer to ProcessCapsules()
|
||||
@param BaseMemoryTest A pointer to BaseMemoryTest()
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PlatformBdsPolicyBehavior (
|
||||
IN LIST_ENTRY *DriverOptionList,
|
||||
IN LIST_ENTRY *BootOptionList
|
||||
IN LIST_ENTRY *BootOptionList,
|
||||
IN PROCESS_CAPSULES ProcessCapsules,
|
||||
IN BASEM_MEMORY_TEST BaseMemoryTest
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
|
@ -81,12 +81,14 @@ PlatformBdsGetDriverOption (
|
|||
|
||||
@param MemoryTestLevel The memory test intensive level
|
||||
@param QuietBoot Indicate if need to enable the quiet boot
|
||||
@param BaseMemoryTest A pointer to BdsMemoryTest()
|
||||
|
||||
**/
|
||||
VOID
|
||||
PlatformBdsDiagnostics (
|
||||
IN EXTENDMEM_COVERAGE_LEVEL MemoryTestLevel,
|
||||
IN BOOLEAN QuietBoot
|
||||
IN BOOLEAN QuietBoot,
|
||||
IN BASEM_MEMORY_TEST BaseMemoryTest
|
||||
)
|
||||
{
|
||||
}
|
||||
|
@ -98,13 +100,17 @@ PlatformBdsDiagnostics (
|
|||
|
||||
@param DriverOptionList The header of the driver option link list
|
||||
@param BootOptionList The header of the boot option link list
|
||||
@param ProcessCapsules A pointer to ProcessCapsules()
|
||||
@param BaseMemoryTest A pointer to BaseMemoryTest()
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PlatformBdsPolicyBehavior (
|
||||
IN LIST_ENTRY *DriverOptionList,
|
||||
IN LIST_ENTRY *BootOptionList
|
||||
IN LIST_ENTRY *BootOptionList,
|
||||
IN PROCESS_CAPSULES ProcessCapsules,
|
||||
IN BASEM_MEMORY_TEST BaseMemoryTest
|
||||
)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -40,6 +40,9 @@ UINT16 *mBootNext = NULL;
|
|||
|
||||
EFI_HANDLE mBdsImageHandle;
|
||||
|
||||
extern EFI_STATUS BdsMemoryTest (EXTENDMEM_COVERAGE_LEVEL Level);
|
||||
extern EFI_STATUS ProcessCapsules (EFI_BOOT_MODE BootMode);
|
||||
|
||||
/**
|
||||
|
||||
Install Boot Device Selection Protocol
|
||||
|
@ -347,7 +350,7 @@ BdsEntry (
|
|||
//
|
||||
// Setup some platform policy here
|
||||
//
|
||||
PlatformBdsPolicyBehavior (&DriverOptionList, &BootOptionList);
|
||||
PlatformBdsPolicyBehavior (&DriverOptionList, &BootOptionList, ProcessCapsules, BdsMemoryTest);
|
||||
PERF_END (0, "PlatformBds", "BDS", 0);
|
||||
|
||||
//
|
||||
|
|
|
@ -193,15 +193,13 @@ PlatformBdsShowProgress (
|
|||
}
|
||||
|
||||
/**
|
||||
|
||||
Perform the memory test base on the memory test intensive level,
|
||||
and update the memory resource.
|
||||
|
||||
@param Level The memory test intensive level.
|
||||
|
||||
@param Level The memory test intensive level.
|
||||
|
||||
@retval EFI_STATUS Success test all the system memory and update
|
||||
the memory resource
|
||||
@retval EFI_STATUS Success test all the system memory and update
|
||||
the memory resource
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
|
|
Loading…
Reference in New Issue