]>
Commit | Line | Data |
---|---|---|
972d8872 AS |
1 | /** @file\r |
2 | \r | |
3 | Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.\r | |
4 | \r | |
5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
6 | \r | |
7 | **/\r | |
8 | \r | |
9 | #ifndef __PLATFORM_BOOT_MANAGER_PROTOCOL_H__\r | |
10 | #define __PLATFORM_BOOT_MANAGER_PROTOCOL_H__\r | |
11 | \r | |
12 | #include <Library/UefiBootManagerLib.h>\r | |
13 | \r | |
14 | //\r | |
15 | // Platform Boot Manager Protocol GUID value\r | |
16 | //\r | |
17 | #define EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL_GUID \\r | |
18 | { \\r | |
19 | 0xaa17add4, 0x756c, 0x460d, { 0x94, 0xb8, 0x43, 0x88, 0xd7, 0xfb, 0x3e, 0x59 } \\r | |
20 | }\r | |
21 | \r | |
22 | //\r | |
23 | // Protocol interface structure\r | |
24 | //\r | |
25 | typedef struct _EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL;\r | |
26 | \r | |
27 | //\r | |
28 | // Revision The revision to which the protocol interface adheres.\r | |
29 | // All future revisions must be backwards compatible.\r | |
30 | // If a future version is not back wards compatible it is not the same GUID.\r | |
31 | //\r | |
32 | #define EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL_REVISION 0x00000001\r | |
33 | \r | |
34 | //\r | |
35 | // Function Prototypes\r | |
36 | //\r | |
37 | \r | |
38 | /*\r | |
39 | This function allows platform to refresh all boot options specific to the platform. Within\r | |
40 | this function, platform can make modifications to the auto enumerated platform boot options\r | |
41 | as well as NV boot options.\r | |
42 | \r | |
43 | @param[in const] BootOptions An array of auto enumerated platform boot options.\r | |
44 | This array will be freed by caller upon successful\r | |
45 | exit of this function and output array would be used.\r | |
46 | \r | |
47 | @param[in const] BootOptionsCount The number of elements in BootOptions.\r | |
48 | \r | |
49 | @param[out] UpdatedBootOptions An array of boot options that have been customized\r | |
50 | for the platform on top of input boot options. This\r | |
51 | array would be allocated by REFRESH_ALL_BOOT_OPTIONS\r | |
52 | and would be freed by caller after consuming it.\r | |
53 | \r | |
54 | @param[out] UpdatedBootOptionsCount The number of elements in UpdatedBootOptions.\r | |
55 | \r | |
56 | \r | |
57 | @retval EFI_SUCCESS Platform refresh to input BootOptions and\r | |
58 | BootCount have been done.\r | |
59 | \r | |
60 | @retval EFI_OUT_OF_RESOURCES Memory allocation failed.\r | |
61 | \r | |
62 | @retval EFI_INVALID_PARAMETER Input is not correct.\r | |
63 | \r | |
64 | @retval EFI_UNSUPPORTED Platform specific overrides are not supported.\r | |
65 | */\r | |
66 | typedef\r | |
67 | EFI_STATUS\r | |
68 | (EFIAPI *PLATFORM_BOOT_MANAGER_REFRESH_ALL_BOOT_OPTIONS) (\r | |
69 | IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions,\r | |
70 | IN CONST UINTN BootOptionsCount,\r | |
71 | OUT EFI_BOOT_MANAGER_LOAD_OPTION **UpdatedBootOptions,\r | |
72 | OUT UINTN *UpdatedBootOptionsCount\r | |
73 | );\r | |
74 | \r | |
75 | struct _EDKII_PLATFORM_BOOT_MANAGER_PROTOCOL {\r | |
76 | UINT64 Revision;\r | |
77 | PLATFORM_BOOT_MANAGER_REFRESH_ALL_BOOT_OPTIONS RefreshAllBootOptions;\r | |
78 | };\r | |
79 | \r | |
80 | extern EFI_GUID gEdkiiPlatformBootManagerProtocolGuid;\r | |
81 | \r | |
82 | #endif /* __PLATFORM_BOOT_MANAGER_PROTOCOL_H__ */\r |