/** @file | |
Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef __PLATFORM_BOOT_MANAGER_PROTOCOL_H__ | |
#define __PLATFORM_BOOT_MANAGER_PROTOCOL_H__ | |
#include <Library/UefiBootManagerLib.h> | |
// | |
// Platform Boot Manager Protocol GUID value | |
// | |
#define EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL_GUID \ | |
{ \ | |
0xaa17add4, 0x756c, 0x460d, { 0x94, 0xb8, 0x43, 0x88, 0xd7, 0xfb, 0x3e, 0x59 } \ | |
} | |
// | |
// Protocol interface structure | |
// | |
typedef struct _EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL; | |
// | |
// Revision The revision to which the protocol interface adheres. | |
// All future revisions must be backwards compatible. | |
// If a future version is not back wards compatible it is not the same GUID. | |
// | |
#define EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL_REVISION 0x00000001 | |
// | |
// Function Prototypes | |
// | |
/* | |
This function allows platform to refresh all boot options specific to the platform. Within | |
this function, platform can make modifications to the auto enumerated platform boot options | |
as well as NV boot options. | |
@param[in const] BootOptions An array of auto enumerated platform boot options. | |
This array will be freed by caller upon successful | |
exit of this function and output array would be used. | |
@param[in const] BootOptionsCount The number of elements in BootOptions. | |
@param[out] UpdatedBootOptions An array of boot options that have been customized | |
for the platform on top of input boot options. This | |
array would be allocated by REFRESH_ALL_BOOT_OPTIONS | |
and would be freed by caller after consuming it. | |
@param[out] UpdatedBootOptionsCount The number of elements in UpdatedBootOptions. | |
@retval EFI_SUCCESS Platform refresh to input BootOptions and | |
BootCount have been done. | |
@retval EFI_OUT_OF_RESOURCES Memory allocation failed. | |
@retval EFI_INVALID_PARAMETER Input is not correct. | |
@retval EFI_UNSUPPORTED Platform specific overrides are not supported. | |
*/ | |
typedef | |
EFI_STATUS | |
(EFIAPI *PLATFORM_BOOT_MANAGER_REFRESH_ALL_BOOT_OPTIONS)( | |
IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions, | |
IN CONST UINTN BootOptionsCount, | |
OUT EFI_BOOT_MANAGER_LOAD_OPTION **UpdatedBootOptions, | |
OUT UINTN *UpdatedBootOptionsCount | |
); | |
struct _EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL { | |
UINT64 Revision; | |
PLATFORM_BOOT_MANAGER_REFRESH_ALL_BOOT_OPTIONS RefreshAllBootOptions; | |
}; | |
extern EFI_GUID gEdkiiPlatformBootManagerProtocolGuid; | |
#endif /* __PLATFORM_BOOT_MANAGER_PROTOCOL_H__ */ |