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
 |