git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			303 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			303 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*++
 | |
| 
 | |
| Copyright (c) 2006, Intel Corporation                                                         
 | |
| All rights reserved. This program and the accompanying materials                          
 | |
| are licensed and made available under the terms and conditions of the BSD License         
 | |
| which accompanies this distribution.  The full text of the license may be found at        
 | |
| http://opensource.org/licenses/bsd-license.php                                            
 | |
|                                                                                           
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
 | |
| 
 | |
| Module Name:
 | |
| 
 | |
|   HiiDatabase.h
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
|   This file contains global defines and prototype definitions 
 | |
|   for the HII database.
 | |
| 
 | |
| --*/
 | |
| 
 | |
| #ifndef _HIIDATABASE_H
 | |
| #define _HIIDATABASE_H
 | |
| 
 | |
| //
 | |
| // HII Database Global data
 | |
| //
 | |
| #define EFI_HII_DATA_SIGNATURE            EFI_SIGNATURE_32 ('H', 'i', 'i', 'P')
 | |
| 
 | |
| #define MAX_GLYPH_COUNT                   65535
 | |
| #define NARROW_GLYPH_ARRAY_SIZE           19
 | |
| #define WIDE_GLYPH_ARRAY_SIZE             38
 | |
| 
 | |
| #define SETUP_MAP_NAME                              L"Setup"
 | |
| #define HII_VARIABLE_SUFFIX_USER_DATA               L"UserSavedData"
 | |
| #define HII_VARIABLE_SUFFIX_DEFAULT_OVERRIDE        L"DefaultOverride"
 | |
| #define HII_VARIABLE_SUFFIX_MANUFACTURING_OVERRIDE  L"ManufacturingOverride"
 | |
| 
 | |
| typedef struct _EFI_HII_HANDLE_DATABASE {
 | |
|   VOID                            *Buffer;        // Actual buffer pointer
 | |
|   EFI_HII_HANDLE                  Handle;         // Monotonically increasing value to signify the value returned to caller
 | |
|   UINT32                          NumberOfTokens; // The initial number of tokens when first registered
 | |
|   struct _EFI_HII_HANDLE_DATABASE *NextHandleDatabase;
 | |
| } EFI_HII_HANDLE_DATABASE;
 | |
| 
 | |
| typedef struct {
 | |
|   EFI_NARROW_GLYPH    NarrowGlyphs[MAX_GLYPH_COUNT];
 | |
|   EFI_WIDE_GLYPH      WideGlyphs[MAX_GLYPH_COUNT];
 | |
|   EFI_KEY_DESCRIPTOR  SystemKeyboardLayout[106];
 | |
|   EFI_KEY_DESCRIPTOR  OverrideKeyboardLayout[106];
 | |
|   BOOLEAN             SystemKeyboardUpdate;       // Has the SystemKeyboard been updated?
 | |
| } EFI_HII_GLOBAL_DATA;
 | |
| 
 | |
| typedef struct {
 | |
|   UINTN                   Signature;
 | |
| 
 | |
|   EFI_HII_GLOBAL_DATA     *GlobalData;
 | |
|   EFI_HII_HANDLE_DATABASE *DatabaseHead;          // Head of the Null-terminated singly-linked list of handles.
 | |
|   EFI_HII_PROTOCOL        Hii;
 | |
| } EFI_HII_DATA;
 | |
| 
 | |
| typedef struct {
 | |
|   EFI_HII_HANDLE      Handle;
 | |
|   EFI_GUID            Guid;
 | |
|   EFI_HII_HANDLE_PACK HandlePack;
 | |
|   UINTN               IfrSize;
 | |
|   UINTN               StringSize;
 | |
|   EFI_HII_IFR_PACK    *IfrData;                   // All the IFR data stored here
 | |
|   EFI_HII_STRING_PACK *StringData;                // All the String data stored at &IfrData + IfrSize (StringData is just a label - never referenced)
 | |
| } EFI_HII_PACKAGE_INSTANCE;
 | |
| 
 | |
| typedef struct {
 | |
|   EFI_HII_PACK_HEADER   Header;
 | |
|   EFI_IFR_FORM_SET      FormSet;
 | |
|   EFI_IFR_END_FORM_SET  EndFormSet;
 | |
| } EFI_FORM_SET_STUB;
 | |
| 
 | |
| #define EFI_HII_DATA_FROM_THIS(a) CR (a, EFI_HII_DATA, Hii, EFI_HII_DATA_SIGNATURE)
 | |
| 
 | |
| #define NARROW_WIDTH              8
 | |
| #define WIDE_WIDTH                16
 | |
| 
 | |
| extern UINT8  mUnknownGlyph[38];
 | |
| 
 | |
| //
 | |
| // Prototypes
 | |
| //
 | |
| EFI_STATUS
 | |
| GetPackSize (
 | |
|   IN  VOID                *Pack,
 | |
|   OUT UINTN               *PackSize,
 | |
|   OUT UINT32              *NumberOfTokens
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| ValidatePack (
 | |
|   IN   EFI_HII_PROTOCOL          *This,
 | |
|   IN   EFI_HII_PACKAGE_INSTANCE  *PackageInstance,
 | |
|   OUT  EFI_HII_PACKAGE_INSTANCE  **StringPackageInstance,
 | |
|   OUT  UINT32                    *TotalStringCount
 | |
|   )
 | |
| ;
 | |
| 
 | |
| //
 | |
| // Public Interface Prototypes
 | |
| //
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| InitializeHiiDatabase (
 | |
|   IN EFI_HANDLE             ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE       *SystemTable
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiNewPack (
 | |
|   IN  EFI_HII_PROTOCOL      *This,
 | |
|   IN  EFI_HII_PACKAGES      *PackageList,
 | |
|   OUT EFI_HII_HANDLE        *Handle
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiRemovePack (
 | |
|   IN EFI_HII_PROTOCOL    *This,
 | |
|   IN EFI_HII_HANDLE      Handle
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiFindHandles (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN OUT UINT16              *HandleBufferLength,
 | |
|   OUT    EFI_HII_HANDLE      *Handle
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiExportDatabase (
 | |
|   IN     EFI_HII_PROTOCOL *This,
 | |
|   IN     EFI_HII_HANDLE   Handle,
 | |
|   IN OUT UINTN            *BufferSize,
 | |
|   OUT    VOID             *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetGlyph (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     CHAR16              *Source,
 | |
|   IN OUT UINT16              *Index,
 | |
|   OUT    UINT8               **GlyphBuffer,
 | |
|   OUT    UINT16              *BitWidth,
 | |
|   IN OUT UINT32              *InternalStatus
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGlyphToBlt (
 | |
|   IN     EFI_HII_PROTOCOL   *This,
 | |
|   IN     UINT8              *GlyphBuffer,
 | |
|   IN     EFI_UGA_PIXEL      Foreground,
 | |
|   IN     EFI_UGA_PIXEL      Background,
 | |
|   IN     UINTN              Count,
 | |
|   IN     UINTN              Width,
 | |
|   IN     UINTN              Height,
 | |
|   IN OUT EFI_UGA_PIXEL      *BltBuffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiNewString (
 | |
|   IN     EFI_HII_PROTOCOL        *This,
 | |
|   IN     CHAR16                  *Language,
 | |
|   IN     EFI_HII_HANDLE          Handle,
 | |
|   IN OUT STRING_REF              *Reference,
 | |
|   IN     CHAR16                  *NewString
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetString (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     EFI_HII_HANDLE      Handle,
 | |
|   IN     STRING_REF          Token,
 | |
|   IN     BOOLEAN             Raw,
 | |
|   IN     CHAR16              *LanguageString,
 | |
|   IN OUT UINTN               *BufferLength,
 | |
|   OUT    EFI_STRING          StringBuffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiResetStrings (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     EFI_HII_HANDLE      Handle
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiTestString (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     CHAR16              *StringToTest,
 | |
|   IN OUT UINT32              *FirstMissing,
 | |
|   OUT    UINT32              *GlyphBufferSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetPrimaryLanguages (
 | |
|   IN  EFI_HII_PROTOCOL      *This,
 | |
|   IN  EFI_HII_HANDLE        Handle,
 | |
|   OUT EFI_STRING            *LanguageString
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetSecondaryLanguages (
 | |
|   IN  EFI_HII_PROTOCOL      *This,
 | |
|   IN  EFI_HII_HANDLE        Handle,
 | |
|   IN  CHAR16                *PrimaryLanguage,
 | |
|   OUT EFI_STRING            *LanguageString
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetLine (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     EFI_HII_HANDLE      Handle,
 | |
|   IN     STRING_REF          Token,
 | |
|   IN OUT UINT16              *Index,
 | |
|   IN     UINT16              LineWidth,
 | |
|   IN     CHAR16              *LanguageString,
 | |
|   IN OUT UINT16              *BufferLength,
 | |
|   OUT    EFI_STRING          StringBuffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetForms (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   IN     EFI_HII_HANDLE      Handle,
 | |
|   IN     EFI_FORM_ID         FormId,
 | |
|   IN OUT UINTN               *BufferLength,
 | |
|   OUT    UINT8               *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetDefaultImage (
 | |
|   IN     EFI_HII_PROTOCOL           *This,
 | |
|   IN     EFI_HII_HANDLE             Handle,
 | |
|   IN     UINTN                      DefaultMask,
 | |
|   OUT    EFI_HII_VARIABLE_PACK_LIST **VariablePackList
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiUpdateForm (
 | |
|   IN EFI_HII_PROTOCOL       *This,
 | |
|   IN EFI_HII_HANDLE         Handle,
 | |
|   IN EFI_FORM_LABEL         Label,
 | |
|   IN BOOLEAN                AddData,
 | |
|   IN EFI_HII_UPDATE_DATA    *Data
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| HiiGetKeyboardLayout (
 | |
|   IN     EFI_HII_PROTOCOL    *This,
 | |
|   OUT    UINT16              *DescriptorCount,
 | |
|   OUT    EFI_KEY_DESCRIPTOR  *Descriptor
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| HiiCompareLanguage (
 | |
|   IN  CHAR16                *LanguageStringLocation,
 | |
|   IN  CHAR16                *Language
 | |
|   )
 | |
| ;
 | |
| 
 | |
| #endif
 |