1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /** @file
- Copyright (c) 2018, Linaro. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __PLATFORM_BOOT_MANAGER_PROTOCOL_H__
- #define __PLATFORM_BOOT_MANAGER_PROTOCOL_H__
- //
- // Protocol interface structure
- //
- typedef struct _PLATFORM_BOOT_MANAGER_PROTOCOL PLATFORM_BOOT_MANAGER_PROTOCOL;
- //
- // Function Prototypes
- //
- /*
- Get predefined boot options for platform.
- @param[out] Count The number of elements in each of
- BootOptions and BootKeys. On successful
- return, Count is at least one.
- @param[out] BootOptions An array of platform boot options.
- BootOptions is pool-allocated by
- GET_PLATFORM_BOOT_OPTIONS_AND_KEYS, and
- GET_PLATFORM_BOOT_OPTIONS_AND_KEYS populates
- every element in BootOptions with
- EfiBootManagerInitializeLoadOption().
- BootOptions shall not contain duplicate
- entries. The caller is responsible for
- releasing BootOptions after use with
- EfiBootManagerFreeLoadOptions().
- @param[out] BootKeys A pool-allocated array of platform boot
- hotkeys. For every 0 <= Index < Count, if
- BootOptions[Index] is not to be associated
- with a hotkey, then BootKeys[Index] is
- zero-filled. Otherwise, BootKeys[Index]
- specifies the boot hotkey for
- BootOptions[Index]. BootKeys shall not
- contain duplicate entries (other than
- zero-filled entries). The caller is
- responsible for releasing BootKeys with
- FreePool() after use.
- @retval EFI_SUCCESS Count, BootOptions and BootKeys have
- been set.
- @retval EFI_OUT_OF_RESOURCES Memory allocation failed.
- @retval EFI_UNSUPPORTED The platform doesn't provide boot options
- as a feature.
- @retval EFI_NOT_FOUND The platform could provide boot options
- as a feature, but none have been
- configured.
- @return Error codes propagated from underlying
- functions.
- */
- typedef
- EFI_STATUS
- (EFIAPI *GET_PLATFORM_BOOT_OPTIONS_AND_KEYS) (
- OUT UINTN *Count,
- OUT EFI_BOOT_MANAGER_LOAD_OPTION **BootOptions,
- OUT EFI_INPUT_KEY **BootKeys
- );
- struct _PLATFORM_BOOT_MANAGER_PROTOCOL {
- GET_PLATFORM_BOOT_OPTIONS_AND_KEYS GetPlatformBootOptionsAndKeys;
- };
- extern EFI_GUID gPlatformBootManagerProtocolGuid;
- #endif /* __PLATFORM_BOOT_MANAGER_PROTOCOL_H__ */
|