1 /** @file
2   This library class defines a set of interfaces to be used by customize Ui module
3 
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef __BOOT_MAINTENANCE_MANAGER_UI_LIB_H__
16 #define __BOOT_MAINTENANCE_MANAGER_UI_LIB_H__
17 
18 /**
19   Create Time Out Menu in the page.
20 
21   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
22   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
23 
24 **/
25 VOID
26 BmmCreateTimeOutMenu (
27   IN EFI_HII_HANDLE              HiiHandle,
28   IN VOID                        *StartOpCodeHandle
29   );
30 
31 /**
32   Create the dynamic item to allow user to set the "BootNext" vaule.
33 
34   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
35   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
36 
37 **/
38 VOID
39 BmmCreateBootNextMenu(
40   IN EFI_HII_HANDLE              HiiHandle,
41   IN VOID                        *StartOpCodeHandle
42   );
43 
44 /**
45   Create Boot Option menu in the page.
46 
47   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
48   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
49 
50 **/
51 VOID
52 BmmCreateBootOptionMenu (
53   IN EFI_HII_HANDLE              HiiHandle,
54   IN VOID                        *StartOpCodeHandle
55   );
56 
57 /**
58   Create Driver Option menu in the page.
59 
60   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
61   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
62 
63 **/
64 VOID
65 BmmCreateDriverOptionMenu (
66   IN EFI_HII_HANDLE              HiiHandle,
67   IN VOID                        *StartOpCodeHandle
68   );
69 
70 /**
71   Create Com Option menu in the page.
72 
73   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
74   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
75 
76 **/
77 VOID
78 BmmCreateComOptionMenu (
79   IN EFI_HII_HANDLE              HiiHandle,
80   IN VOID                        *StartOpCodeHandle
81   );
82 
83 /**
84   Create Com Option menu in the page.
85 
86   @param[in]    HiiHandle           The hii handle for the Uiapp driver.
87   @param[in]    StartOpCodeHandle   The opcode handle to save the new opcode.
88 
89 **/
90 VOID
91 BmmCreateBootFromFileMenu (
92   IN EFI_HII_HANDLE              HiiHandle,
93   IN VOID                        *StartOpCodeHandle
94   );
95 
96 /**
97   Create empty line menu in the front page.
98 
99   @param    HiiHandle           The hii handle for the Uiapp driver.
100   @param    StartOpCodeHandle   The opcode handle to save the new opcode.
101 
102 **/
103 VOID
104 BmmCreateEmptyLine (
105   IN EFI_HII_HANDLE              HiiHandle,
106   IN VOID                        *StartOpCodeHandle
107   );
108 
109 /**
110   Rename the driver name if necessary.
111 
112   @param    DriverName          Input the driver name.
113   @param    NewDriverName       Return the new driver name.
114   @param    EmptyLineAfter      Whether need to insert empty line.
115 
116   @retval   New driver name if compared, else NULL.
117 
118 **/
119 typedef
120 EFI_STATUS
121 (EFIAPI *DRIVER_SPECIAL_HANDLER)(
122   IN  CHAR16                   *DriverName,
123   OUT CHAR16                   **NewName,
124   OUT BOOLEAN                  *EmptyLineAfter
125 );
126 
127 /**
128   Search the drivers in the system which need to show in the front page
129   and insert the menu to the front page.
130 
131   @param    HiiHandle           The hii handle for the Uiapp driver.
132   @param    ClassGuid           The class guid for the driver which is the target.
133   @param    SpecialHandlerFn      The pointer to the specail handler function, if any.
134   @param    StartOpCodeHandle   The opcode handle to save the new opcode.
135 
136   @retval   EFI_SUCCESS         Search the driver success
137 
138 **/
139 EFI_STATUS
140 BmmListThirdPartyDrivers (
141   IN EFI_HII_HANDLE              HiiHandle,
142   IN EFI_GUID                    *ClassGuid,
143   IN DRIVER_SPECIAL_HANDLER      SpecialHandlerFn,
144   IN VOID                        *StartOpCodeHandle
145   );
146 
147 #endif
148