]> git.proxmox.com Git - mirror_edk2.git/blob - EdkModulePkg/Universal/UserInterface/HiiDataBase/Dxe/HiiDatabase.h
Initial import.
[mirror_edk2.git] / EdkModulePkg / Universal / UserInterface / HiiDataBase / Dxe / HiiDatabase.h
1 /*++
2
3 Copyright (c) 2006, 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 HiiDatabase.h
15
16 Abstract:
17
18 This file contains global defines and prototype definitions
19 for the HII database.
20
21 --*/
22
23 #ifndef _HIIDATABASE_H
24 #define _HIIDATABASE_H
25
26 //
27 // HII Database Global data
28 //
29 #define EFI_HII_DATA_SIGNATURE EFI_SIGNATURE_32 ('H', 'i', 'i', 'P')
30
31 #define MAX_GLYPH_COUNT 65535
32 #define NARROW_GLYPH_ARRAY_SIZE 19
33 #define WIDE_GLYPH_ARRAY_SIZE 38
34
35 #define SETUP_MAP_NAME L"Setup"
36 #define HII_VARIABLE_SUFFIX_USER_DATA L"UserSavedData"
37 #define HII_VARIABLE_SUFFIX_DEFAULT_OVERRIDE L"DefaultOverride"
38 #define HII_VARIABLE_SUFFIX_MANUFACTURING_OVERRIDE L"ManufacturingOverride"
39
40 typedef struct _EFI_HII_HANDLE_DATABASE {
41 VOID *Buffer; // Actual buffer pointer
42 EFI_HII_HANDLE Handle; // Monotonically increasing value to signify the value returned to caller
43 UINT32 NumberOfTokens; // The initial number of tokens when first registered
44 struct _EFI_HII_HANDLE_DATABASE *NextHandleDatabase;
45 } EFI_HII_HANDLE_DATABASE;
46
47 typedef struct {
48 EFI_NARROW_GLYPH NarrowGlyphs[MAX_GLYPH_COUNT];
49 EFI_WIDE_GLYPH WideGlyphs[MAX_GLYPH_COUNT];
50 EFI_KEY_DESCRIPTOR SystemKeyboardLayout[106];
51 EFI_KEY_DESCRIPTOR OverrideKeyboardLayout[106];
52 BOOLEAN SystemKeyboardUpdate; // Has the SystemKeyboard been updated?
53 } EFI_HII_GLOBAL_DATA;
54
55 typedef struct {
56 UINTN Signature;
57
58 EFI_HII_GLOBAL_DATA *GlobalData;
59 EFI_HII_HANDLE_DATABASE *DatabaseHead; // Head of the Null-terminated singly-linked list of handles.
60 EFI_HII_PROTOCOL Hii;
61 } EFI_HII_DATA;
62
63 typedef struct {
64 EFI_HII_HANDLE Handle;
65 EFI_GUID Guid;
66 EFI_HII_HANDLE_PACK HandlePack;
67 UINTN IfrSize;
68 UINTN StringSize;
69 EFI_HII_IFR_PACK *IfrData; // All the IFR data stored here
70 EFI_HII_STRING_PACK *StringData; // All the String data stored at &IfrData + IfrSize (StringData is just a label - never referenced)
71 } EFI_HII_PACKAGE_INSTANCE;
72
73 typedef struct {
74 EFI_HII_PACK_HEADER Header;
75 EFI_IFR_FORM_SET FormSet;
76 EFI_IFR_END_FORM_SET EndFormSet;
77 } EFI_FORM_SET_STUB;
78
79 #define EFI_HII_DATA_FROM_THIS(a) CR (a, EFI_HII_DATA, Hii, EFI_HII_DATA_SIGNATURE)
80
81 #define NARROW_WIDTH 8
82 #define WIDE_WIDTH 16
83
84 extern UINT8 mUnknownGlyph[38];
85
86 //
87 // Prototypes
88 //
89 EFI_STATUS
90 GetPackSize (
91 IN VOID *Pack,
92 OUT UINTN *PackSize,
93 OUT UINT32 *NumberOfTokens
94 )
95 ;
96
97 EFI_STATUS
98 ValidatePack (
99 IN EFI_HII_PROTOCOL *This,
100 IN EFI_HII_PACKAGE_INSTANCE *PackageInstance,
101 OUT EFI_HII_PACKAGE_INSTANCE **StringPackageInstance,
102 OUT UINT32 *TotalStringCount
103 )
104 ;
105
106 //
107 // Public Interface Prototypes
108 //
109 EFI_STATUS
110 EFIAPI
111 InitializeHiiDatabase (
112 IN EFI_HANDLE ImageHandle,
113 IN EFI_SYSTEM_TABLE *SystemTable
114 )
115 ;
116
117 EFI_STATUS
118 EFIAPI
119 HiiNewPack (
120 IN EFI_HII_PROTOCOL *This,
121 IN EFI_HII_PACKAGES *PackageList,
122 OUT EFI_HII_HANDLE *Handle
123 )
124 ;
125
126 EFI_STATUS
127 EFIAPI
128 HiiRemovePack (
129 IN EFI_HII_PROTOCOL *This,
130 IN EFI_HII_HANDLE Handle
131 )
132 ;
133
134 EFI_STATUS
135 EFIAPI
136 HiiFindHandles (
137 IN EFI_HII_PROTOCOL *This,
138 IN OUT UINT16 *HandleBufferLength,
139 OUT EFI_HII_HANDLE *Handle
140 )
141 ;
142
143 EFI_STATUS
144 EFIAPI
145 HiiExportDatabase (
146 IN EFI_HII_PROTOCOL *This,
147 IN EFI_HII_HANDLE Handle,
148 IN OUT UINTN *BufferSize,
149 OUT VOID *Buffer
150 )
151 ;
152
153 EFI_STATUS
154 EFIAPI
155 HiiGetGlyph (
156 IN EFI_HII_PROTOCOL *This,
157 IN CHAR16 *Source,
158 IN OUT UINT16 *Index,
159 OUT UINT8 **GlyphBuffer,
160 OUT UINT16 *BitWidth,
161 IN OUT UINT32 *InternalStatus
162 )
163 ;
164
165 EFI_STATUS
166 EFIAPI
167 HiiGlyphToBlt (
168 IN EFI_HII_PROTOCOL *This,
169 IN UINT8 *GlyphBuffer,
170 IN EFI_UGA_PIXEL Foreground,
171 IN EFI_UGA_PIXEL Background,
172 IN UINTN Count,
173 IN UINTN Width,
174 IN UINTN Height,
175 IN OUT EFI_UGA_PIXEL *BltBuffer
176 )
177 ;
178
179 EFI_STATUS
180 EFIAPI
181 HiiNewString (
182 IN EFI_HII_PROTOCOL *This,
183 IN CHAR16 *Language,
184 IN EFI_HII_HANDLE Handle,
185 IN OUT STRING_REF *Reference,
186 IN CHAR16 *NewString
187 )
188 ;
189
190 EFI_STATUS
191 EFIAPI
192 HiiGetString (
193 IN EFI_HII_PROTOCOL *This,
194 IN EFI_HII_HANDLE Handle,
195 IN STRING_REF Token,
196 IN BOOLEAN Raw,
197 IN CHAR16 *LanguageString,
198 IN OUT UINTN *BufferLength,
199 OUT EFI_STRING StringBuffer
200 )
201 ;
202
203 EFI_STATUS
204 EFIAPI
205 HiiResetStrings (
206 IN EFI_HII_PROTOCOL *This,
207 IN EFI_HII_HANDLE Handle
208 )
209 ;
210
211 EFI_STATUS
212 EFIAPI
213 HiiTestString (
214 IN EFI_HII_PROTOCOL *This,
215 IN CHAR16 *StringToTest,
216 IN OUT UINT32 *FirstMissing,
217 OUT UINT32 *GlyphBufferSize
218 )
219 ;
220
221 EFI_STATUS
222 EFIAPI
223 HiiGetPrimaryLanguages (
224 IN EFI_HII_PROTOCOL *This,
225 IN EFI_HII_HANDLE Handle,
226 OUT EFI_STRING *LanguageString
227 )
228 ;
229
230 EFI_STATUS
231 EFIAPI
232 HiiGetSecondaryLanguages (
233 IN EFI_HII_PROTOCOL *This,
234 IN EFI_HII_HANDLE Handle,
235 IN CHAR16 *PrimaryLanguage,
236 OUT EFI_STRING *LanguageString
237 )
238 ;
239
240 EFI_STATUS
241 EFIAPI
242 HiiGetLine (
243 IN EFI_HII_PROTOCOL *This,
244 IN EFI_HII_HANDLE Handle,
245 IN STRING_REF Token,
246 IN OUT UINT16 *Index,
247 IN UINT16 LineWidth,
248 IN CHAR16 *LanguageString,
249 IN OUT UINT16 *BufferLength,
250 OUT EFI_STRING StringBuffer
251 )
252 ;
253
254 EFI_STATUS
255 EFIAPI
256 HiiGetForms (
257 IN EFI_HII_PROTOCOL *This,
258 IN EFI_HII_HANDLE Handle,
259 IN EFI_FORM_ID FormId,
260 IN OUT UINTN *BufferLength,
261 OUT UINT8 *Buffer
262 )
263 ;
264
265 EFI_STATUS
266 EFIAPI
267 HiiGetDefaultImage (
268 IN EFI_HII_PROTOCOL *This,
269 IN EFI_HII_HANDLE Handle,
270 IN UINTN DefaultMask,
271 OUT EFI_HII_VARIABLE_PACK_LIST **VariablePackList
272 )
273 ;
274
275 EFI_STATUS
276 EFIAPI
277 HiiUpdateForm (
278 IN EFI_HII_PROTOCOL *This,
279 IN EFI_HII_HANDLE Handle,
280 IN EFI_FORM_LABEL Label,
281 IN BOOLEAN AddData,
282 IN EFI_HII_UPDATE_DATA *Data
283 )
284 ;
285
286 EFI_STATUS
287 EFIAPI
288 HiiGetKeyboardLayout (
289 IN EFI_HII_PROTOCOL *This,
290 OUT UINT16 *DescriptorCount,
291 OUT EFI_KEY_DESCRIPTOR *Descriptor
292 )
293 ;
294
295 EFI_STATUS
296 HiiCompareLanguage (
297 IN CHAR16 *LanguageStringLocation,
298 IN CHAR16 *Language
299 )
300 ;
301
302 #endif