Files
slimbootloader/BootloaderCommonPkg/Library/BootOptionLib/BootOptionLib.c
Jiaqing Zhao c65cd572d2 OsLoader: Print all extra images
Currently only PreOs and Extra0 image info is printed in boot options
list, this patch prints all of them.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
2023-09-12 13:55:06 -07:00

104 lines
2.3 KiB
C

/** @file
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <PiPei.h>
#include <Library/BaseLib.h>
#include <Guid/OsBootOptionGuid.h>
#include <Library/HobLib.h>
#include <Library/DebugLib.h>
#include <Library/BootloaderCommonLib.h>
#include <Library/BootOptionLib.h>
CHAR8 *mOsBootDeviceName[] = { "SATA", "SD", "MMC", "UFS", "SPI", "USB", "NVME", "MEM" };
CHAR8 *mOsFsTypeName[] = { "FAT", "EXT2", "AUTO", "RAW" };
CHAR8 *mImageTypeName[] = { "Normal", "PreOs", "Misc", "Extra0", "Extra1", "Extra2", "Extra3" };
/**
Get boot option list
This function will get OS boot option from HOB.
@retval HOB data Return HOB data if it is found.
@retval NULL Return NULL if it is NOT found.
**/
OS_BOOT_OPTION_LIST *
EFIAPI
GetBootOptionList (
VOID
)
{
EFI_HOB_GUID_TYPE *GuidHob;
GuidHob = GetNextGuidHob (&gOsBootOptionGuid, GetHobListPtr());
if (GuidHob == NULL) {
return NULL;
}
return (OS_BOOT_OPTION_LIST *) GET_GUID_HOB_DATA (GuidHob);
}
/**
Get file system string by file type
@param[in] FsType File system type
@retval String Return a string when file systme is found.
@retval NULL Return NULL if file system is not found.
**/
CHAR8 *
EFIAPI
GetFsTypeString (
IN OS_FILE_SYSTEM_TYPE FsType
)
{
if (FsType > EnumFileSystemMax) {
return NULL;
}
return mOsFsTypeName[FsType];
}
/**
Get boot device name string by boot device type
@param[in] DevType Boot device type
@retval String Return a string when boot device type is found.
@retval NULL Return NULL if boot device type is not found.
**/
CHAR8 *
EFIAPI
GetBootDeviceNameString (
OS_BOOT_MEDIUM_TYPE DevType
)
{
if (DevType >= OsBootDeviceMax) {
return NULL;
}
return mOsBootDeviceName[DevType];
}
/**
Get image type name string by loaded image type
@param[in] ImageType Loaded Image Type
@retval String Return a string when loaded image type is found.
@retval NULL Return NULL if loaded image type is not found.
**/
CHAR8 *
EFIAPI
GetLoadedImageTypeNameString (
LOAD_IMAGE_TYPE ImageType
)
{
if (ImageType >= LoadImageTypeMax) {
return NULL;
}
return mImageTypeName[ImageType];
}