]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/HiiDatabase.c
add in a new API HiiLibGetSupportedSecondaryLanguages
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / HiiDatabase.c
CommitLineData
4259256b 1/**@file\r
2\r
3Framework to UEFI 2.1 HII Thunk\r
4\r
5Copyright (c) 2003, Intel Corporation\r
6All rights reserved. This program and the accompanying materials\r
7are licensed and made available under the terms and conditions of the BSD License\r
8which accompanies this distribution. The full text of the license may be found at\r
9http://opensource.org/licenses/bsd-license.php\r
10\r
11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#include "HiiDatabase.h"\r
17\r
18\r
19EFI_HII_THUNK_PRIVATE_DATA HiiThunkPrivateDataTempate = {\r
20 {//Signature\r
21 EFI_HII_THUNK_DRIVER_DATA_SIGNATURE \r
22 },\r
23 {//Handle\r
24 (EFI_HANDLE) NULL\r
25 },\r
26 { //Hii\r
27 HiiNewPack,\r
28 HiiRemovePack,\r
29 HiiFindHandles,\r
30 HiiExportDatabase,\r
31 \r
32 HiiTestString,\r
33 HiiGetGlyph,\r
34 HiiGlyphToBlt,\r
35 \r
36 HiiNewString,\r
37 HiiGetPrimaryLanguages,\r
38 HiiGetSecondaryLanguages,\r
39 HiiGetString,\r
40 HiiResetStrings,\r
41 HiiGetLine,\r
42 HiiGetForms,\r
43 HiiGetDefaultImage,\r
44 HiiUpdateForm,\r
45 \r
46 HiiGetKeyboardLayout\r
47 },\r
48 { //StaticHiiHandle\r
49 //The FRAMEWORK_EFI_HII_HANDLE starts from 1 \r
50 // and increase upwords untill reach 2^(sizeof (FRAMEWORK_EFI_HII_HANDLE)) - 1. \r
51 // The code will assert to prevent overflow.\r
52 (FRAMEWORK_EFI_HII_HANDLE) 1 \r
53 },\r
54 {\r
55 NULL, NULL //HiiHandleLinkList\r
56 },\r
57};\r
58\r
59EFI_HII_DATABASE_PROTOCOL *mUefiHiiDatabaseProtocol;\r
60EFI_HII_FONT_PROTOCOL *mUefiHiiFontProtocol;\r
61EFI_HII_IMAGE_PROTOCOL *mUefiHiiImageProtocol;\r
62EFI_HII_STRING_PROTOCOL *mUefiStringProtocol;\r
63\r
64EFI_STATUS\r
65EFIAPI\r
66InitializeHiiDatabase (\r
67 IN EFI_HANDLE ImageHandle,\r
68 IN EFI_SYSTEM_TABLE *SystemTable\r
69 )\r
70/*++\r
71\r
72Routine Description:\r
73 Initialize HII Database\r
74\r
75Arguments:\r
76 (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
77\r
78Returns:\r
79 EFI_SUCCESS - Setup loaded.\r
80 other - Setup Error\r
81\r
82--*/\r
83{\r
84 EFI_HII_THUNK_PRIVATE_DATA *HiiData;\r
85 EFI_HANDLE Handle;\r
86 EFI_STATUS Status;\r
87\r
88 ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiHiiProtocolGuid);\r
89\r
90 HiiData = AllocateCopyPool (sizeof (EFI_HII_THUNK_PRIVATE_DATA), &HiiThunkPrivateDataTempate);\r
91 ASSERT (HiiData != NULL);\r
92 InitializeListHead (&HiiData->HiiThunkHandleMappingDBListHead);\r
93\r
94 Status = gBS->LocateProtocol (\r
95 &gEfiHiiDatabaseProtocolGuid,\r
96 NULL,\r
97 (VOID **) &mUefiHiiDatabaseProtocol\r
98 );\r
99 ASSERT_EFI_ERROR (Status);\r
100\r
101 Status = gBS->LocateProtocol (\r
102 &gEfiHiiFontProtocolGuid,\r
103 NULL,\r
104 (VOID **) &mUefiHiiFontProtocol\r
105 );\r
106 ASSERT_EFI_ERROR (Status);\r
107\r
108 Status = gBS->LocateProtocol (\r
109 &gEfiHiiImageProtocolGuid,\r
110 NULL,\r
111 (VOID **) &mUefiHiiImageProtocol\r
112 );\r
113 ASSERT_EFI_ERROR (Status);\r
114\r
115 Status = gBS->LocateProtocol (\r
116 &gEfiHiiStringProtocolGuid,\r
117 NULL,\r
118 (VOID **) &mUefiStringProtocol\r
119 );\r
120 ASSERT_EFI_ERROR (Status);\r
121\r
122 //\r
123 // Install protocol interface\r
124 //\r
125 Handle = NULL;\r
126 Status = gBS->InstallProtocolInterface (\r
127 &HiiData->Handle,\r
128 &gEfiHiiProtocolGuid,\r
129 EFI_NATIVE_INTERFACE,\r
130 (VOID *) &HiiData->Hii\r
131 );\r
132 ASSERT_EFI_ERROR (Status);\r
133\r
134 return Status;\r
135}\r
136\r
137EFI_STATUS\r
138EFIAPI\r
139HiiFindHandles (\r
140 IN EFI_HII_PROTOCOL *This,\r
141 IN OUT UINT16 *HandleBufferLength,\r
142 OUT FRAMEWORK_EFI_HII_HANDLE Handle[1]\r
143 )\r
144/*++\r
145\r
146Routine Description:\r
147 Determines the handles that are currently active in the database.\r
148\r
149Arguments:\r
150\r
151Returns:\r
152\r
153--*/\r
154{\r
155 ASSERT (FALSE);\r
156 return EFI_SUCCESS;\r
157}\r
158\r
159EFI_STATUS\r
160EFIAPI\r
161HiiGetPrimaryLanguages (\r
162 IN EFI_HII_PROTOCOL *This,\r
163 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
164 OUT EFI_STRING *LanguageString\r
165 )\r
166/*++\r
167\r
168Routine Description:\r
169\r
170 This function allows a program to determine what the primary languages that are supported on a given handle.\r
171\r
172Arguments:\r
173\r
174Returns:\r
175\r
176--*/\r
177{\r
178 ASSERT (FALSE);\r
179 return EFI_SUCCESS;\r
180}\r
181\r
182EFI_STATUS\r
183EFIAPI\r
184HiiGetSecondaryLanguages (\r
185 IN EFI_HII_PROTOCOL *This,\r
186 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
187 IN CHAR16 *PrimaryLanguage,\r
188 OUT EFI_STRING *LanguageString\r
189 )\r
190/*++\r
191\r
192Routine Description:\r
193\r
194 This function allows a program to determine which secondary languages are supported\r
195 on a given handle for a given primary language.\r
196\r
197 Arguments:\r
198\r
199Returns:\r
200\r
201--*/\r
202{\r
203 ASSERT (FALSE);\r
204 return EFI_SUCCESS;\r
205}\r
206\r
207\r