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 <Protocol/GenericMemoryTest.h>
|
||||||
#include <Library/GenericBdsLib.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
|
Platform Bds initialization. Includes the platform firmware vendor, revision
|
||||||
and so crc check.
|
and so crc check.
|
||||||
|
@ -37,13 +78,17 @@ PlatformBdsInit (
|
||||||
|
|
||||||
@param DriverOptionList The header of the driver option link list
|
@param DriverOptionList The header of the driver option link list
|
||||||
@param BootOptionList The header of the boot 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
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PlatformBdsPolicyBehavior (
|
PlatformBdsPolicyBehavior (
|
||||||
IN LIST_ENTRY *DriverOptionList,
|
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 MemoryTestLevel The memory test intensive level
|
||||||
@param QuietBoot Indicate if need to enable the quiet boot
|
@param QuietBoot Indicate if need to enable the quiet boot
|
||||||
|
@param BaseMemoryTest A pointer to BdsMemoryTest()
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
PlatformBdsDiagnostics (
|
PlatformBdsDiagnostics (
|
||||||
IN EXTENDMEM_COVERAGE_LEVEL MemoryTestLevel,
|
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 DriverOptionList The header of the driver option link list
|
||||||
@param BootOptionList The header of the boot 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
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PlatformBdsPolicyBehavior (
|
PlatformBdsPolicyBehavior (
|
||||||
IN LIST_ENTRY *DriverOptionList,
|
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;
|
EFI_HANDLE mBdsImageHandle;
|
||||||
|
|
||||||
|
extern EFI_STATUS BdsMemoryTest (EXTENDMEM_COVERAGE_LEVEL Level);
|
||||||
|
extern EFI_STATUS ProcessCapsules (EFI_BOOT_MODE BootMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Install Boot Device Selection Protocol
|
Install Boot Device Selection Protocol
|
||||||
|
@ -347,7 +350,7 @@ BdsEntry (
|
||||||
//
|
//
|
||||||
// Setup some platform policy here
|
// Setup some platform policy here
|
||||||
//
|
//
|
||||||
PlatformBdsPolicyBehavior (&DriverOptionList, &BootOptionList);
|
PlatformBdsPolicyBehavior (&DriverOptionList, &BootOptionList, ProcessCapsules, BdsMemoryTest);
|
||||||
PERF_END (0, "PlatformBds", "BDS", 0);
|
PERF_END (0, "PlatformBds", "BDS", 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -193,11 +193,9 @@ PlatformBdsShowProgress (
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Perform the memory test base on the memory test intensive level,
|
Perform the memory test base on the memory test intensive level,
|
||||||
and update the memory resource.
|
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
|
@retval EFI_STATUS Success test all the system memory and update
|
||||||
|
|
Loading…
Reference in New Issue