]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/BdsDxe/FrontPage.h
UEFI HII: Merge UEFI HII support changes from branch.
[mirror_edk2.git] / MdeModulePkg / Universal / BdsDxe / FrontPage.h
1 /*++
2
3 Copyright (c) 2004 - 2008, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 FrontPage.h
15
16 Abstract:
17
18 FrontPage routines to handle the callbacks and browser calls
19
20 Revision History
21
22 --*/
23
24 #ifndef _FRONT_PAGE_H
25 #define _FRONT_PAGE_H
26
27 #include "DeviceMngr/DeviceManager.h"
28 #include "BootMaint/BootMaint.h"
29 #include "BootMngr/BootManager.h"
30 #include "String.h"
31
32 #define ONE_SECOND 10000000
33
34 //
35 // This is the VFR compiler generated header file which defines the
36 // string identifiers.
37 //
38 #define PRINTABLE_LANGUAGE_NAME_STRING_ID 0x0001
39
40 //
41 // These are defined as the same with vfr file
42 //
43 #define FRONT_PAGE_FORM_ID 0x1000
44
45 #define FRONT_PAGE_KEY_CONTINUE 0x1000
46 #define FRONT_PAGE_KEY_LANGUAGE 0x1234
47 #define FRONT_PAGE_KEY_BOOT_MANAGER 0x1064
48 #define FRONT_PAGE_KEY_DEVICE_MANAGER 0x8567
49 #define FRONT_PAGE_KEY_BOOT_MAINTAIN 0x9876
50
51 #define LABEL_SELECT_LANGUAGE 0x1000
52
53 #define FRONT_PAGE_FORMSET_GUID \
54 { \
55 0x9e0c30bc, 0x3f06, 0x4ba6, 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe \
56 }
57
58 #define FRONT_PAGE_CALLBACK_DATA_SIGNATURE EFI_SIGNATURE_32 ('F', 'P', 'C', 'B')
59
60 typedef struct {
61 UINTN Signature;
62
63 //
64 // HII relative handles
65 //
66 EFI_HII_HANDLE HiiHandle;
67 EFI_HANDLE DriverHandle;
68 EFI_STRING_ID *LanguageToken;
69
70 //
71 // Produced protocols
72 //
73 EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
74 } FRONT_PAGE_CALLBACK_DATA;
75
76 #define EFI_FP_CALLBACK_DATA_FROM_THIS(a) \
77 CR (a, \
78 FRONT_PAGE_CALLBACK_DATA, \
79 ConfigAccess, \
80 FRONT_PAGE_CALLBACK_DATA_SIGNATURE \
81 )
82
83 //
84 // These are the VFR compiler generated data representing our VFR data.
85 //
86 extern UINT8 FrontPageVfrBin[];
87
88 extern EFI_HII_DATABASE_PROTOCOL *gHiiDatabase;
89 extern EFI_HII_STRING_PROTOCOL *gHiiString;
90 extern EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2;
91 extern EFI_HII_CONFIG_ROUTING_PROTOCOL *gHiiConfigRouting;
92
93 extern UINTN gCallbackKey;
94 extern BOOLEAN gConnectAllHappened;
95
96 EFI_STATUS
97 EFIAPI
98 FakeExtractConfig (
99 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
100 IN CONST EFI_STRING Request,
101 OUT EFI_STRING *Progress,
102 OUT EFI_STRING *Results
103 );
104
105 EFI_STATUS
106 EFIAPI
107 FakeRouteConfig (
108 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
109 IN CONST EFI_STRING Configuration,
110 OUT EFI_STRING *Progress
111 );
112
113 EFI_STATUS
114 EFIAPI
115 FrontPageCallback (
116 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
117 IN EFI_BROWSER_ACTION Action,
118 IN EFI_QUESTION_ID QuestionId,
119 IN UINT8 Type,
120 IN EFI_IFR_TYPE_VALUE *Value,
121 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
122 );
123
124 EFI_STATUS
125 InitializeFrontPage (
126 IN BOOLEAN ReInitializeStrings
127 );
128
129 EFI_STATUS
130 GetProducerString (
131 IN EFI_GUID *ProducerGuid,
132 IN EFI_STRING_ID Token,
133 OUT CHAR16 **String
134 );
135
136 BOOLEAN
137 TimeCompare (
138 IN EFI_TIME *FirstTime,
139 IN EFI_TIME *SecondTime
140 );
141
142 VOID
143 PlatformBdsEnterFrontPage (
144 IN UINT16 TimeoutDefault,
145 IN BOOLEAN ConnectAllHappened
146 );
147
148 #endif // _FRONT_PAGE_H_
149