slimbootloader/BootloaderCorePkg/Library/BootloaderLib/BootloaderLib.c

284 lines
4.3 KiB
C

/** @file
Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <PiPei.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLogBufferLib.h>
#include <Library/SecureBootLib.h>
#include <Library/HobLib.h>
#include <Library/PcdLib.h>
#include <BootloaderCoreGlobal.h>
/**
Returns the pointer to the Flash Map.
This function will get the flash map pointer from global data
@return The pointer to the Flash Map.
**/
VOID *
EFIAPI
GetFlashMapPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->FlashMapPtr;
}
/**
Returns the pointer to the HOB list.
If the pointer to the HOB list is NULL, then ASSERT().
@return The pointer to the HOB list.
**/
VOID *
EFIAPI
GetHobListPtr (
VOID
)
{
LOADER_GLOBAL_DATA *LdrGlobal;
//
// Only check this parameter in debug mode
//
LdrGlobal = GetLoaderGlobalDataPointer();
return LdrGlobal->LdrHobList;
}
/**
This function retrieves performance data pointer.
@retval The performance data pointer.
**/
BL_PERF_DATA *
EFIAPI
GetPerfDataPtr (
VOID
)
{
return &GetLoaderGlobalDataPointer()->PerfData;
}
/**
This function gets the configuration data pointer.
@retval The configuration data blob pointer.
**/
VOID *
EFIAPI
GetConfigDataPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->CfgDataPtr;
}
/**
This function retrieves current platform id.
@retval The current platform id.
**/
UINT16
EFIAPI
GetPlatformId (
VOID
)
{
return GetLoaderGlobalDataPointer()->PlatformId;
}
/**
This function retrieves log buffer pointer.
@retval The log buffer pointer.
**/
VOID *
EFIAPI
GetDebugLogBufferPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->LogBufPtr;
}
/**
This function retrieves global library data pointer.
@retval The library data pointer.
**/
VOID *
EFIAPI
GetLibraryDataPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->LibDataPtr;
}
/**
This function retrieves global library data pointer.
@retval The library data pointer.
**/
VOID *
EFIAPI
GetServiceListPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->ServicePtr;
}
/**
This function retrieves global PCD data pointer.
@retval The PCD data pointer.
**/
VOID *
EFIAPI
GetPcdDataPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->PcdDataPtr;
}
/**
This function retrieves current boot partition.
@retval The current boot partition.
**/
UINT8
EFIAPI
GetCurrentBootPartition (
VOID
)
{
return GetLoaderGlobalDataPointer()->CurrentBootPartition;
}
/**
Returns the current stage of Bootloader execution.
@retval LOADER_STAGE Current stage of bootloader execution.
**/
LOADER_STAGE
EFIAPI
GetLoaderStage (
VOID
)
{
return GetLoaderGlobalDataPointer()->LoaderStage;
}
/**
This function retrieves platform data pointer.
@retval The platform data pointer.
**/
VOID *
EFIAPI
GetPlatformDataPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->PlatDataPtr;
}
/**
This function retrieves container list pointer.
@retval The container list pointer.
**/
VOID *
EFIAPI
GetContainerListPtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->ContainerList;
}
/**
This function retrieves hash store pointer.
@retval The hash store pointer.
**/
VOID *
EFIAPI
GetHashStorePtr (
VOID
)
{
return GetLoaderGlobalDataPointer()->HashStorePtr;
}
/**
This function retrieves features configuration.
@retval The feature configuration.
**/
UINT32
EFIAPI
GetFeatureCfg (
VOID
)
{
return GetLoaderGlobalDataPointer()->LdrFeatures;
}
/**
This function sets device table.
@param DeviceTable The pointer to device table.
**/
VOID
EFIAPI
SetDeviceTable (
IN VOID *DeviceTable
)
{
GetLoaderGlobalDataPointer()->DeviceTable = DeviceTable;
}
/**
This function retrieves the platform device table.
@retval The platform device table.
**/
VOID *
EFIAPI
GetDeviceTable (
VOID
)
{
return GetLoaderGlobalDataPointer()->DeviceTable;
}