/** @file | |
This file defines the Univeral Payload Platform BootManager Protocol. | |
Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef __PLATFORM_BOOT_MANAGER_OVERRIDE_H__ | |
#define __PLATFORM_BOOT_MANAGER_OVERRIDE_H__ | |
/** | |
Do the platform specific action before the console is connected. | |
Such as: | |
Update console variable; | |
Register new Driver#### or Boot####; | |
Signal ReadyToLock event. | |
This function will override the default behavior in PlatformBootManagerLib | |
**/ | |
typedef | |
VOID | |
(EFIAPI *UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_BEFORE_CONSOLE) ( | |
VOID | |
); | |
/** | |
Do the platform specific action after the console is connected. | |
Such as: | |
Dynamically switch output mode; | |
Signal console ready platform customized event; | |
Run diagnostics like memory testing; | |
Connect certain devices; | |
Dispatch aditional option roms. | |
This function will override the default behavior in PlatformBootManagerLib | |
**/ | |
typedef | |
VOID | |
(EFIAPI *UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_AFTER_CONSOLE) ( | |
VOID | |
); | |
/** | |
This function is called each second during the boot manager waits the timeout. | |
This function will override the default behavior in PlatformBootManagerLib | |
@param TimeoutRemain The remaining timeout. | |
**/ | |
typedef | |
VOID | |
(EFIAPI *UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_WAIT_CALLBACK) ( | |
UINT16 TimeoutRemain | |
); | |
/** | |
The function is called when no boot option could be launched, | |
including platform recovery options and options pointing to applications | |
built into firmware volumes. | |
If this function returns, BDS attempts to enter an infinite loop. | |
This function will override the default behavior in PlatformBootManagerLib | |
**/ | |
typedef | |
VOID | |
(EFIAPI *UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_UNABLE_TO_BOOT) ( | |
VOID | |
); | |
/// | |
/// Provides an interface to override the default behavior in PlatformBootManagerLib, | |
/// so platform can provide its own platform specific logic through this protocol | |
/// | |
typedef struct { | |
UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_BEFORE_CONSOLE BeforeConsole; | |
UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_AFTER_CONSOLE AfterConsole; | |
UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_WAIT_CALLBACK WaitCallback; | |
UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_UNABLE_TO_BOOT UnableToBoot; | |
} UNIVERSAL_PAYLOAD_PLATFORM_BOOT_MANAGER_OVERRIDE_PROTOCOL; | |
extern GUID gUniversalPayloadPlatformBootManagerOverrideProtocolGuid; | |
#endif |