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
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.
18 This file contains global defines and prototype definitions
23 #ifndef _HIIDATABASE_H
24 #define _HIIDATABASE_H
27 // Include common header file for this module.
29 #include "CommonHeader.h"
32 // HII Database Global data
34 #define EFI_HII_DATA_SIGNATURE EFI_SIGNATURE_32 ('H', 'i', 'i', 'P')
36 #define MAX_GLYPH_COUNT 65535
37 #define NARROW_GLYPH_ARRAY_SIZE 19
38 #define WIDE_GLYPH_ARRAY_SIZE 38
40 #define SETUP_MAP_NAME L"Setup"
41 #define HII_VARIABLE_SUFFIX_USER_DATA L"UserSavedData"
42 #define HII_VARIABLE_SUFFIX_DEFAULT_OVERRIDE L"DefaultOverride"
43 #define HII_VARIABLE_SUFFIX_MANUFACTURING_OVERRIDE L"ManufacturingOverride"
45 typedef struct _EFI_HII_HANDLE_DATABASE
{
46 VOID
*Buffer
; // Actual buffer pointer
47 EFI_HII_HANDLE Handle
; // Monotonically increasing value to signify the value returned to caller
48 UINT32 NumberOfTokens
; // The initial number of tokens when first registered
49 struct _EFI_HII_HANDLE_DATABASE
*NextHandleDatabase
;
50 } EFI_HII_HANDLE_DATABASE
;
53 EFI_NARROW_GLYPH NarrowGlyphs
[MAX_GLYPH_COUNT
];
54 EFI_WIDE_GLYPH WideGlyphs
[MAX_GLYPH_COUNT
];
55 EFI_KEY_DESCRIPTOR SystemKeyboardLayout
[106];
56 EFI_KEY_DESCRIPTOR OverrideKeyboardLayout
[106];
57 BOOLEAN SystemKeyboardUpdate
; // Has the SystemKeyboard been updated?
58 } EFI_HII_GLOBAL_DATA
;
63 EFI_HII_GLOBAL_DATA
*GlobalData
;
64 EFI_HII_HANDLE_DATABASE
*DatabaseHead
; // Head of the Null-terminated singly-linked list of handles.
69 EFI_HII_HANDLE Handle
;
71 EFI_HII_HANDLE_PACK HandlePack
;
74 EFI_HII_IFR_PACK
*IfrData
; // All the IFR data stored here
75 EFI_HII_STRING_PACK
*StringData
; // All the String data stored at &IfrData + IfrSize (StringData is just a label - never referenced)
76 } EFI_HII_PACKAGE_INSTANCE
;
79 EFI_HII_PACK_HEADER Header
;
80 EFI_IFR_FORM_SET FormSet
;
81 EFI_IFR_END_FORM_SET EndFormSet
;
84 #define EFI_HII_DATA_FROM_THIS(a) CR (a, EFI_HII_DATA, Hii, EFI_HII_DATA_SIGNATURE)
86 #define NARROW_WIDTH 8
89 extern UINT8 mUnknownGlyph
[38];
98 OUT UINT32
*NumberOfTokens
104 IN EFI_HII_PROTOCOL
*This
,
105 IN EFI_HII_PACKAGE_INSTANCE
*PackageInstance
,
106 OUT EFI_HII_PACKAGE_INSTANCE
**StringPackageInstance
,
107 OUT UINT32
*TotalStringCount
112 // Public Interface Prototypes
116 InitializeHiiDatabase (
117 IN EFI_HANDLE ImageHandle
,
118 IN EFI_SYSTEM_TABLE
*SystemTable
125 IN EFI_HII_PROTOCOL
*This
,
126 IN EFI_HII_PACKAGES
*PackageList
,
127 OUT EFI_HII_HANDLE
*Handle
134 IN EFI_HII_PROTOCOL
*This
,
135 IN EFI_HII_HANDLE Handle
142 IN EFI_HII_PROTOCOL
*This
,
143 IN OUT UINT16
*HandleBufferLength
,
144 OUT EFI_HII_HANDLE
*Handle
151 IN EFI_HII_PROTOCOL
*This
,
152 IN EFI_HII_HANDLE Handle
,
153 IN OUT UINTN
*BufferSize
,
161 IN EFI_HII_PROTOCOL
*This
,
163 IN OUT UINT16
*Index
,
164 OUT UINT8
**GlyphBuffer
,
165 OUT UINT16
*BitWidth
,
166 IN OUT UINT32
*InternalStatus
173 IN EFI_HII_PROTOCOL
*This
,
174 IN UINT8
*GlyphBuffer
,
175 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground
,
176 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background
,
180 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL
*BltBuffer
187 IN EFI_HII_PROTOCOL
*This
,
189 IN EFI_HII_HANDLE Handle
,
190 IN OUT STRING_REF
*Reference
,
198 IN EFI_HII_PROTOCOL
*This
,
199 IN EFI_HII_HANDLE Handle
,
202 IN CHAR16
*LanguageString
,
203 IN OUT UINTN
*BufferLength
,
204 OUT EFI_STRING StringBuffer
211 IN EFI_HII_PROTOCOL
*This
,
212 IN EFI_HII_HANDLE Handle
219 IN EFI_HII_PROTOCOL
*This
,
220 IN CHAR16
*StringToTest
,
221 IN OUT UINT32
*FirstMissing
,
222 OUT UINT32
*GlyphBufferSize
228 HiiGetPrimaryLanguages (
229 IN EFI_HII_PROTOCOL
*This
,
230 IN EFI_HII_HANDLE Handle
,
231 OUT EFI_STRING
*LanguageString
237 HiiGetSecondaryLanguages (
238 IN EFI_HII_PROTOCOL
*This
,
239 IN EFI_HII_HANDLE Handle
,
240 IN CHAR16
*PrimaryLanguage
,
241 OUT EFI_STRING
*LanguageString
248 IN EFI_HII_PROTOCOL
*This
,
249 IN EFI_HII_HANDLE Handle
,
251 IN OUT UINT16
*Index
,
253 IN CHAR16
*LanguageString
,
254 IN OUT UINT16
*BufferLength
,
255 OUT EFI_STRING StringBuffer
262 IN EFI_HII_PROTOCOL
*This
,
263 IN EFI_HII_HANDLE Handle
,
264 IN EFI_FORM_ID FormId
,
265 IN OUT UINTN
*BufferLength
,
273 IN EFI_HII_PROTOCOL
*This
,
274 IN EFI_HII_HANDLE Handle
,
275 IN UINTN DefaultMask
,
276 OUT EFI_HII_VARIABLE_PACK_LIST
**VariablePackList
283 IN EFI_HII_PROTOCOL
*This
,
284 IN EFI_HII_HANDLE Handle
,
285 IN EFI_FORM_LABEL Label
,
287 IN EFI_HII_UPDATE_DATA
*Data
293 HiiGetKeyboardLayout (
294 IN EFI_HII_PROTOCOL
*This
,
295 OUT UINT16
*DescriptorCount
,
296 OUT EFI_KEY_DESCRIPTOR
*Descriptor
302 IN CHAR16
*LanguageStringLocation
,