X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkCompatibilityPkg%2FCompatibility%2FFrameworkHiiOnUefiHiiThunk%2FHiiDatabase.h;fp=EdkCompatibilityPkg%2FCompatibility%2FFrameworkHiiOnUefiHiiThunk%2FHiiDatabase.h;h=0000000000000000000000000000000000000000;hp=c736990f3e87776a4317f7eb499241018f25f4f3;hb=c455bc8c8d78ad51c24426a500914ea32504bf06;hpb=5bca07268acabe7f31407358e875ccf89cb5e386 diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/HiiDatabase.h b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/HiiDatabase.h deleted file mode 100644 index c736990f3e..0000000000 --- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/HiiDatabase.h +++ /dev/null @@ -1,947 +0,0 @@ -/** @file - - This file contains global defines and prototype definitions - for the Framework HII to Uefi HII Thunk Module. - -Copyright (c) 2006 - 2011, 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. - -**/ - -#ifndef _HIIDATABASE_H_ -#define _HIIDATABASE_H_ - - -#include - -#include -#include -#include -#include - -// -// UEFI HII Protocols -// -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "UefiIfrParser.h" - - -// -// VARSTORE ID of 0 for Buffer Storage Type Storage is defined as invalid in UEFI 2.1 HII. VARSTORE ID -// 0 is the default VarStore ID for storage without explicit declaration in Framework HII 0.92. EDK II UEFI VFR compiler -// in compatible mode will assign 0x0001 as UEFI VARSTORE ID to this default storage id in Framework VFR without -// VARSTORE declaration. -// -// In addition, the Name of Default VarStore is assumed to be L"Setup" for those storage without explicit VARSTORE declaration in the formset -// by Framework HII. EDK II UEFI VFR compiler in compatible mode hard-coded L"Setup" as VARSTORE name. -// -#define FRAMEWORK_RESERVED_VARSTORE_ID 0x0001 -#define FRAMEWORK_RESERVED_VARSTORE_NAME L"Setup" - -/// -/// The size of a 3 character ISO639 language code. -/// -#define ISO_639_2_ENTRY_SIZE 3 - -#pragma pack (1) -typedef struct { - EFI_HII_PACK_HEADER FrameworkPackageHeader; - EFI_HII_PACKAGE_HEADER PackageHeader; -} TIANO_AUTOGEN_PACKAGES_HEADER; -#pragma pack () - -#define HII_THUNK_PRIVATE_DATA_FROM_THIS(Record) CR(Record, HII_THUNK_PRIVATE_DATA, Hii, HII_THUNK_PRIVATE_DATA_SIGNATURE) -#define HII_THUNK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('H', 'i', 'I', 'T') -typedef struct { - UINTN Signature; - EFI_HANDLE Handle; - EFI_HII_PROTOCOL Hii; - - // - // The head of link list for all HII_THUNK_CONTEXT. - // - LIST_ENTRY ThunkContextListHead; - - EFI_HANDLE RemovePackNotifyHandle; - EFI_HANDLE AddPackNotifyHandle; -} HII_THUNK_PRIVATE_DATA; - - - - - -#define QUESTION_ID_MAP_ENTRY_FROM_LINK(Record) CR(Record, QUESTION_ID_MAP_ENTRY, Link, QUESTION_ID_MAP_ENTRY_SIGNATURE) -#define QUESTION_ID_MAP_ENTRY_SIGNATURE SIGNATURE_32 ('Q', 'I', 'M', 'E') -typedef struct { - UINT32 Signature; - LIST_ENTRY Link; - UINT16 FwQId; - EFI_QUESTION_ID UefiQid; -} QUESTION_ID_MAP_ENTRY; - - - -#define QUESTION_ID_MAP_FROM_LINK(Record) CR(Record, QUESTION_ID_MAP, Link, QUESTION_ID_MAP_SIGNATURE) -#define QUESTION_ID_MAP_SIGNATURE SIGNATURE_32 ('Q', 'I', 'M', 'P') -typedef struct { - UINT32 Signature; - LIST_ENTRY Link; - UINT16 VarStoreId; - UINTN VarSize; - LIST_ENTRY MapEntryListHead; -} QUESTION_ID_MAP; - - - -#define HII_THUNK_CONTEXT_FROM_LINK(Record) CR(Record, HII_THUNK_CONTEXT, Link, HII_THUNK_CONTEXT_SIGNATURE) -#define HII_THUNK_CONTEXT_SIGNATURE SIGNATURE_32 ('H', 'T', 'H', 'M') -typedef struct { - LIST_ENTRY Link; - UINT32 Signature; - FRAMEWORK_EFI_HII_HANDLE FwHiiHandle; - EFI_HII_HANDLE UefiHiiHandle; - EFI_HANDLE UefiHiiDriverHandle; - - UINTN IfrPackageCount; - UINTN StringPackageCount; - - BOOLEAN ByFrameworkHiiNewPack; - - // - // HII Thunk will use TagGuid to associate the String Package and Form Package togehter. - // See description for TagGuid. This field is to record if either one of the following condition - // is TRUE: - // 1) if ((SharingStringPack == TRUE) && (StringPackageCount != 0 && IfrPackageCount == 0)), then this Package List only - /// has String Packages and provides Strings to other IFR package. - // 2) if ((SharingStringPack == TRUE) && (StringPackageCount == 0 && IfrPackageCount != 1)), then this Form Package - // copied String Packages from other Package List. - // 3) if ((SharingStringPack == FALSE)), this Package does not provide String Package or copy String Packages from other - // Package List. - // - // - // When a Hii->NewString() is called for this FwHiiHandle and SharingStringPack is TRUE, then all Package List that sharing - // the same TagGuid will update or create String in there respective String Packages. If SharingStringPack is FALSE, then - // only the String from String Packages in this Package List will be updated or created. - // - BOOLEAN SharingStringPack; - - // - // The HII 0.92 version of HII data implementation in EDK 1.03 and 1.04 make an the following assumption - // in both HII Database implementation and all modules that registering packages: - // If a Package List has only IFR package and no String Package, the IFR package will reference - // String in another Package List registered with the HII database with the same EFI_HII_PACKAGES.GuidId. - // TagGuid is the used to record this GuidId. - EFI_GUID TagGuid; - - UINT8 *NvMapOverride; - - FORM_BROWSER_FORMSET *FormSet; - -} HII_THUNK_CONTEXT; - - - -#define BUFFER_STORAGE_ENTRY_SIGNATURE SIGNATURE_32 ('H', 'T', 's', 'k') -#define BUFFER_STORAGE_ENTRY_FROM_LINK(Record) CR(Record, BUFFER_STORAGE_ENTRY, Link, BUFFER_STORAGE_ENTRY_SIGNATURE) -typedef struct { - LIST_ENTRY Link; - UINT32 Signature; - EFI_GUID Guid; - CHAR16 *Name; - UINTN Size; - UINT16 VarStoreId; -} BUFFER_STORAGE_ENTRY; - -#pragma pack(1) -/// -/// HII specific Vendor Device Path Node definition. -/// -typedef struct { - VENDOR_DEVICE_PATH VendorDevicePath; - UINT32 Reserved; - UINT64 UniqueId; -} HII_VENDOR_DEVICE_PATH_NODE; - -/// -/// HII specific Vendor Device Path definition. -/// -typedef struct { - HII_VENDOR_DEVICE_PATH_NODE Node; - EFI_DEVICE_PATH_PROTOCOL End; -} HII_VENDOR_DEVICE_PATH; -#pragma pack() - -#define CONFIG_ACCESS_PRIVATE_SIGNATURE SIGNATURE_32 ('H', 'T', 'c', 'a') -#define CONFIG_ACCESS_PRIVATE_FROM_PROTOCOL(Record) CR(Record, CONFIG_ACCESS_PRIVATE, ConfigAccessProtocol, CONFIG_ACCESS_PRIVATE_SIGNATURE) -typedef struct { - UINT32 Signature; - EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccessProtocol; - // - // Framework's callback - // - EFI_FORM_CALLBACK_PROTOCOL *FormCallbackProtocol; - - HII_THUNK_CONTEXT *ThunkContext; -} CONFIG_ACCESS_PRIVATE; - - - -#define EFI_FORMBROWSER_THUNK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('F', 'B', 'T', 'd') -#define EFI_FORMBROWSER_THUNK_PRIVATE_DATA_FROM_THIS(Record) CR(Record, EFI_FORMBROWSER_THUNK_PRIVATE_DATA, FormBrowser, EFI_FORMBROWSER_THUNK_PRIVATE_DATA_SIGNATURE) -typedef struct { - UINTN Signature; - EFI_HANDLE Handle; - HII_THUNK_PRIVATE_DATA *ThunkPrivate; - EFI_FORM_BROWSER_PROTOCOL FormBrowser; -} EFI_FORMBROWSER_THUNK_PRIVATE_DATA; - - -// -// Extern Variables -// -extern CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabase; -extern CONST EFI_HII_IMAGE_PROTOCOL *mHiiImageProtocol; -extern CONST EFI_HII_STRING_PROTOCOL *mHiiStringProtocol; -extern CONST EFI_HII_FONT_PROTOCOL *mHiiFontProtocol; -extern CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRoutingProtocol; -extern CONST EFI_FORM_BROWSER2_PROTOCOL *mFormBrowser2Protocol; - -extern HII_THUNK_PRIVATE_DATA *mHiiThunkPrivateData; - -extern BOOLEAN mInFrameworkUpdatePakcage; - - -/** - - Registers the various packages that are passed in a Package List. - - @param This Pointer of Frameowk HII protocol instance. - @param Packages Pointer of HII packages. - @param Handle Handle value to be returned. - - @retval EFI_SUCCESS Packages has added to HII database successfully. - @retval EFI_INVALID_PARAMETER If Handle or Packages is NULL. - -**/ -EFI_STATUS -EFIAPI -HiiNewPack ( - IN EFI_HII_PROTOCOL *This, - IN EFI_HII_PACKAGES *Packages, - OUT FRAMEWORK_EFI_HII_HANDLE *Handle - ); - -/** - - Remove a package from the HII database. - - @param This Pointer of Frameowk HII protocol instance. - @param Handle Handle value to be removed. - - @retval EFI_SUCCESS Packages has added to HII database successfully. - @retval EFI_INVALID_PARAMETER If Handle or Packages is NULL. - -**/ -EFI_STATUS -EFIAPI -HiiRemovePack ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle - ); - -/** - Determines the handles that are currently active in the database. - - This function determines the handles that are currently active in the database. - For example, a program wishing to create a Setup-like configuration utility would use this call - to determine the handles that are available. It would then use calls defined in the forms section - below to extract forms and then interpret them. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param HandleBufferLength On input, a pointer to the length of the handle buffer. - On output, the length of the handle buffer that is required for the handles found. - @param Handle Pointer to an array of EFI_HII_HANDLE instances returned. - Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() in the Packages section. - - @retval EFI_SUCCESS Handle was updated successfully. - - @retval EFI_BUFFER_TOO_SMALL The HandleBufferLength parameter indicates that Handle is too small - to support the number of handles. HandleBufferLength is updated with a value that - will enable the data to fit. -**/ -EFI_STATUS -EFIAPI -HiiFindHandles ( - IN EFI_HII_PROTOCOL *This, - IN OUT UINT16 *HandleBufferLength, - OUT FRAMEWORK_EFI_HII_HANDLE *Handle - ); - -/** - - This thunk module only handles UEFI HII packages. The caller of this function - won't be able to parse the content. Therefore, it is not supported. - - This function will ASSERT and return EFI_UNSUPPORTED. - - @param This N.A. - @param Handle N.A. - @param BufferSize N.A. - @param Buffer N.A. - - @retval EFI_UNSUPPORTED - -**/ -EFI_STATUS -EFIAPI -HiiExportDatabase ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN OUT UINTN *BufferSize, - OUT VOID *Buffer - ); - -/** - Translates a Unicode character into the corresponding font glyph. - - Notes: - This function is only called by Graphics Console module and GraphicsLib. - Wrap the Framework HII GetGlyph function to UEFI Font Protocol. - - EDK II provides a UEFI Graphics Console module. ECP provides a GraphicsLib - complying to UEFI HII. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Source A pointer to a Unicode string. - @param Index On input, the offset into the string from which to fetch the character. On successful completion, the - index is updated to the first character past the character(s) making up the just extracted glyph. - @param GlyphBuffer Pointer to an array where the glyphs corresponding to the characters in the source may be stored. - GlyphBuffer is assumed to be wide enough to accept a wide glyph character. - @param BitWidth If EFI_SUCCESS was returned, the UINT16 pointed to by this value is filled with the length of the glyph in pixels. - It is unchanged if the call was unsuccessful. - @param InternalStatus To save the time required to read the string from the beginning on each glyph extraction - (for example, to ensure that the narrow versus wide glyph mode is correct), this value is - updated each time the function is called with the status that is local to the call. The cell pointed - to by this parameter must be initialized to zero prior to invoking the call the first time for any string. - - @retval EFI_SUCCESS It worked. - @retval EFI_NOT_FOUND A glyph for a character was not found. - - -**/ -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 - ); - -/** - Translates a glyph into the format required for input to the Universal Graphics Adapter (UGA) Block Transfer (BLT) routines. - - Notes: - This function is only called by Graphics Console module and GraphicsLib. - EDK II provides a UEFI Graphics Console module. ECP provides a GraphicsLib - complying to UEFI HII. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param GlyphBuffer A pointer to the buffer that contains glyph data. - @param Foreground The foreground setting requested to be used for the generated BltBuffer data. Type EFI_UGA_PIXEL is defined in "Related Definitions" below. - @param Background The background setting requested to be used for the generated BltBuffer data. - @param Count The entry in the BltBuffer upon which to act. - @param Width The width in bits of the glyph being converted. - @param Height The height in bits of the glyph being converted - @param BltBuffer A pointer to the buffer that contains the data that is ready to be used by the UGA BLT routines. - - @retval EFI_SUCCESS It worked. - @retval EFI_NOT_FOUND A glyph for a character was not found. - - -**/ -EFI_STATUS -EFIAPI -HiiGlyphToBlt ( - IN EFI_HII_PROTOCOL *This, - IN UINT8 *GlyphBuffer, - IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground, - IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background, - IN UINTN Count, - IN UINTN Width, - IN UINTN Height, - IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer - ); - -/** - Create or update a String Token in a String Package. - - If *Reference == 0, a new String Token is created. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Language Pointer to a NULL-terminated string containing a single ISO 639-2 language - identifier, indicating the language to print. A string consisting of - all spaces indicates that the string is applicable to all languages. - @param Handle The handle of the language pack to which the string is to be added. - @param Reference The string token assigned to the string. - @param NewString The string to be added. - - - @retval EFI_SUCCESS The string was effectively registered. - @retval EFI_INVALID_PARAMETER The Handle was unknown. The string is not created or updated in the - the string package. -**/ -EFI_STATUS -EFIAPI -HiiNewString ( - IN EFI_HII_PROTOCOL *This, - IN CHAR16 *Language, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN OUT STRING_REF *Reference, - IN CHAR16 *NewString - ); - -/** - This function extracts a string from a package already registered with the EFI HII database. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The HII handle on which the string resides. - @param Token The string token assigned to the string. - @param Raw If TRUE, the string is returned unedited in the internal storage format described - above. If false, the string returned is edited by replacing with - and by removing special characters such as the prefix. - @param LanguageString Pointer to a NULL-terminated string containing a single ISO 639-2 language - identifier, indicating the language to print. If the LanguageString is empty (starts - with a NULL), the default system language will be used to determine the language. - @param BufferLength Length of the StringBuffer. If the status reports that the buffer width is too - small, this parameter is filled with the length of the buffer needed. - @param StringBuffer The buffer designed to receive the characters in the string. Type EFI_STRING is - defined in String. - - @retval EFI_INVALID_PARAMETER If input parameter is invalid. - @retval EFI_BUFFER_TOO_SMALL If the *BufferLength is too small. - @retval EFI_SUCCESS Operation is successful. - -**/ -EFI_STATUS -EFIAPI -HiiThunkGetString ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN STRING_REF Token, - IN BOOLEAN Raw, - IN CHAR16 *LanguageString, - IN OUT UINTN *BufferLength, - OUT EFI_STRING StringBuffer - ); - -/** - This function removes any new strings that were added after the initial string export for this handle. - UEFI HII String Protocol does not have Reset String function. This function perform nothing. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The HII handle on which the string resides. - - @retval EFI_SUCCESS This function is a NOP and always return EFI_SUCCESS. - -**/ -EFI_STATUS -EFIAPI -HiiResetStrings ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle - ); - -/** - Test if all of the characters in a string have corresponding font characters. - - This is a deprecated API. No Framework HII module is calling it. This function will ASSERT and - return EFI_UNSUPPORTED. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param StringToTest A pointer to a Unicode string. - @param FirstMissing A pointer to an index into the string. On input, the index of - the first character in the StringToTest to examine. On exit, the index - of the first character encountered for which a glyph is unavailable. - If all glyphs in the string are available, the index is the index of the terminator - of the string. - @param GlyphBufferSize A pointer to a value. On output, if the function returns EFI_SUCCESS, - it contains the amount of memory that is required to store the string? glyph equivalent. - - @retval EFI_UNSUPPORTED The function performs nothing and return EFI_UNSUPPORTED. -**/ -EFI_STATUS -EFIAPI -HiiTestString ( - IN EFI_HII_PROTOCOL *This, - IN CHAR16 *StringToTest, - IN OUT UINT32 *FirstMissing, - OUT UINT32 *GlyphBufferSize - ); - -/** - Allows a program to determine the primary languages that are supported on a given handle. - - This routine is intended to be used by drivers to query the interface database for supported languages. - This routine returns a string of concatenated 3-byte language identifiers, one per string package associated with the handle. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The handle on which the strings reside. Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() - in the Packages section. - @param LanguageString A string allocated by GetPrimaryLanguages() that contains a list of all primary languages - registered on the handle. The routine will not return the three-spaces language identifier used in - other functions to indicate non-language-specific strings. - - @retval EFI_SUCCESS LanguageString was correctly returned. - - @retval EFI_INVALID_PARAMETER The Handle was unknown. -**/ -EFI_STATUS -EFIAPI -HiiGetPrimaryLanguages ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - OUT EFI_STRING *LanguageString - ); - -/** - Allows a program to determine which secondary languages are supported on a given handle for a given primary language - - This routine is intended to be used by drivers to query the interface database for supported languages. - This routine returns a string of concatenated 3-byte language identifiers, one per string package associated with the handle. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The handle on which the strings reside. Type EFI_HII_HANDLE is defined in EFI_HII_PROTOCOL.NewPack() - in the Packages section. - @param PrimaryLanguage Pointer to a NULL-terminated string containing a single ISO 639-2 language identifier, indicating - the primary language. - @param LanguageString A string allocated by GetSecondaryLanguages() containing a list of all secondary languages registered - on the handle. The routine will not return the three-spaces language identifier used in other functions - to indicate non-language-specific strings, nor will it return the primary language. This function succeeds - but returns a NULL LanguageString if there are no secondary languages associated with the input Handle and - PrimaryLanguage pair. Type EFI_STRING is defined in String. - - @retval EFI_SUCCESS LanguageString was correctly returned. - @retval EFI_INVALID_PARAMETER The Handle was unknown. -**/ -EFI_STATUS -EFIAPI -HiiGetSecondaryLanguages ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN CHAR16 *PrimaryLanguage, - OUT EFI_STRING *LanguageString - ); - -/** - - This function allows a program to extract a part of a string of not more than a given width. - With repeated calls, this allows a calling program to extract "lines" of text that fit inside - columns. The effort of measuring the fit of strings inside columns is localized to this call. - - This is a deprecated API. No Framework HII module is calling it. This function will ASSERT and - return EFI_UNSUPPORTED. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The HII handle on which the string resides. - @param Token The string token assigned to the string. - @param Index On input, the offset into the string where the line is to start. - On output, the index is updated to point to beyond the last character returned - in the call. - @param LineWidth The maximum width of the line in units of narrow glyphs. - @param LanguageString Pointer to a NULL-terminated string containing a single ISO 639-2 language - identifier, indicating the language to print. If the LanguageString is empty (starts - with a NULL), the default system language will be used to determine the language. - @param BufferLength Length of the StringBuffer. If the status reports that the buffer width is too - small, this parameter is filled with the length of the buffer needed. - @param StringBuffer The buffer designed to receive the characters in the string. Type EFI_STRING is - defined in String. - - @retval EFI_UNSUPPORTED. -**/ -EFI_STATUS -EFIAPI -HiiGetLine ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_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 - ); - -/** - This function allows a program to extract a form or form package that has - previously been registered with the EFI HII database. - - In this thunk module, this function will create a IFR Package with only - one Formset. Effectively, only the GUID of the Formset is updated and return - in this IFR package to caller. This is enable the Framework modules which call - a API named GetStringFromToken. GetStringFromToken retieves a String based on - a String Token from a Package List known only by the Formset GUID. - - - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle Handle on which the form resides. Type FRAMEWORK_EFI_HII_HANDLE is defined in - EFI_HII_PROTOCOL.NewPack() in the Packages section. - @param FormId Ignored by this implementation. - @param BufferLengthTemp On input, the size of input buffer. On output, it - is the size of FW_HII_FORMSET_TEMPLATE. - @param Buffer The buffer designed to receive the form(s). - - @retval EFI_SUCCESS Buffer filled with the requested forms. BufferLength - was updated. - @retval EFI_INVALID_PARAMETER The handle is unknown. - @retval EFI_NOT_FOUND A form on the requested handle cannot be found with the - requested FormId. - @retval EFI_BUFFER_TOO_SMALL The buffer provided was not large enough to allow the form to be stored. - -**/ -EFI_STATUS -EFIAPI -HiiGetForms ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN EFI_FORM_ID FormId, - IN OUT UINTN *BufferLengthTemp, - OUT UINT8 *Buffer - ); - -/** - - This function allows a program to extract the NV Image - that represents the default storage image - - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param Handle The HII handle from which will have default data retrieved. - UINTN - Mask used to retrieve the default image. - @param DefaultMask EDES_TODO: Add parameter description - @param VariablePackList Callee allocated, tightly-packed, link list data - structure that contain all default varaible packs - from the Hii Database. - - @retval EFI_NOT_FOUND If Hii database does not contain any default images. - @retval EFI_INVALID_PARAMETER Invalid input parameter. - @retval EFI_SUCCESS Operation successful. - -**/ -EFI_STATUS -EFIAPI -HiiGetDefaultImage ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN UINTN DefaultMask, - OUT EFI_HII_VARIABLE_PACK_LIST **VariablePackList - ); - -/** - This function allows the caller to update a form that has - previously been registered with the EFI HII database. - - - @param This EDES_TODO: Add parameter description - @param Handle Hii Handle associated with the Formset to modify - @param Label Update information starting immediately after this label in the IFR - @param AddData If TRUE, add data. If FALSE, remove data - @param Data If adding data, this is the pointer to the data to add - - @retval EFI_SUCCESS Update success. - @retval Other Update fail. - -**/ -EFI_STATUS -EFIAPI -HiiThunkUpdateForm ( - IN EFI_HII_PROTOCOL *This, - IN FRAMEWORK_EFI_HII_HANDLE Handle, - IN EFI_FORM_LABEL Label, - IN BOOLEAN AddData, - IN EFI_HII_UPDATE_DATA *Data - ); - -/** - Retrieves the current keyboard layout. - This function is not implemented by HII Thunk Module. - - @param This A pointer to the EFI_HII_PROTOCOL instance. - @param DescriptorCount A pointer to the number of Descriptor entries being described in the keyboard layout being retrieved. - @param Descriptor A pointer to a buffer containing an array of EFI_KEY_DESCRIPTOR entries. Each entry will reflect the - definition of a specific physical key. Type EFI_KEY_DESCRIPTOR is defined in "Related Definitions" below. - - @retval EFI_SUCCESS The keyboard layout was retrieved successfully. - -**/ -EFI_STATUS -EFIAPI -HiiGetKeyboardLayout ( - IN EFI_HII_PROTOCOL *This, - OUT UINT16 *DescriptorCount, - OUT FRAMEWORK_EFI_KEY_DESCRIPTOR *Descriptor - ); - -/** - This is the Framework Setup Browser interface which displays a FormSet. - - @param This The EFI_FORM_BROWSER_PROTOCOL context. - @param UseDatabase TRUE if the FormSet is from HII database. The Thunk implementation - only support UseDatabase is TRUE. - @param Handle The Handle buffer. - @param HandleCount The number of Handle in the Handle Buffer. It must be 1 for this implementation. - @param Packet The pointer to data buffer containing IFR and String package. Not supported. - @param CallbackHandle Not supported. - @param NvMapOverride The buffer is used only when there is no NV variable to define the - current settings and the caller needs to provide to the browser the - current settings for the the "fake" NV variable. If used, no saving of - an NV variable is possbile. This parameter is also ignored if Handle is NULL. - @param ScreenDimensions - Allows the browser to be called so that it occupies a portion of the physical - screen instead of dynamically determining the screen dimensions. - @param ResetRequired This BOOLEAN value denotes whether a reset is required based on the data that - might have been changed. The ResetRequired parameter is primarily applicable - for configuration applications, and is an optional parameter. - - @retval EFI_SUCCESS If the Formset is displayed correctly. - @retval EFI_UNSUPPORTED If UseDatabase is FALSE or HandleCount is not 1. - @retval EFI_INVALID_PARAMETER If the *Handle passed in is not found in the database. -**/ -EFI_STATUS -EFIAPI -ThunkSendForm ( - IN EFI_FORM_BROWSER_PROTOCOL *This, - IN BOOLEAN UseDatabase, - IN FRAMEWORK_EFI_HII_HANDLE *Handle, - IN UINTN HandleCount, - IN EFI_IFR_PACKET *Packet, OPTIONAL - IN EFI_HANDLE CallbackHandle, OPTIONAL - IN UINT8 *NvMapOverride, OPTIONAL - IN FRAMEWORK_EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL - OUT BOOLEAN *ResetRequired OPTIONAL - ); - -/** - - Rountine used to display a generic dialog interface and return - the Key or Input from user input. - - @param LinesNumber The number of lines for the dialog box. - @param HotKey Defines if a single character is parsed (TRUE) and returned in KeyValue - or if a string is returned in StringBuffer. - @param MaximumStringSize The maximum size in bytes of a typed-in string. - @param StringBuffer On return contains the typed-in string if HotKey is FALSE. - @param Key The EFI_INPUT_KEY value returned if HotKey is TRUE. - @param FirstString The pointer to the first string in the list of strings - that comprise the dialog box. - @param ... A series of NumberOfLines text strings that will be used - to construct the dialog box. - @retval EFI_SUCCESS The dialog is created successfully and user interaction was received. - @retval EFI_DEVICE_ERROR The user typed in an ESC. - @retval EFI_INVALID_PARAMETER One of the parameters was invalid.(StringBuffer == NULL && HotKey == FALSE). -**/ -EFI_STATUS -EFIAPI -ThunkCreatePopUp ( - IN UINTN LinesNumber, - IN BOOLEAN HotKey, - IN UINTN MaximumStringSize, - OUT CHAR16 *StringBuffer, - OUT EFI_INPUT_KEY *Key, - IN CHAR16 *FirstString, - ... - ); - -/** - This notification function will be called when a Package List is removed - using UEFI HII interface. The Package List removed need to be removed from - Framework Thunk module too. - - If the Package List registered is not Sting Package, - then ASSERT. If the NotifyType is not REMOVE_PACK, then ASSERT. - Both cases means UEFI HII Database itself is buggy. - - @param PackageType The Package Type. - @param PackageGuid The Package GUID. - @param Package The Package Header. - @param Handle The HII Handle of this Package List. - @param NotifyType The reason of the notification. - - @retval EFI_SUCCESS The notification function is successful. - -**/ -EFI_STATUS -EFIAPI -RemovePackNotify ( - IN UINT8 PackageType, - IN CONST EFI_GUID *PackageGuid, - IN CONST EFI_HII_PACKAGE_HEADER *Package, - IN EFI_HII_HANDLE Handle, - IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType - ); - -/** - This notification function will be called when a Package List is registered - using UEFI HII interface. The Package List registered need to be recorded in - Framework Thunk module as Thunk Module may need to look for String Package in - the package registered. - - If the Package List registered is not either Sting Package or IFR package, - then ASSERT. If the NotifyType is not ADD_PACK or NEW_PACK, then ASSERT. - Both cases means UEFI HII Database itself is buggy. - - @param PackageType The Package Type. - @param PackageGuid The Package GUID. - @param Package The Package Header. - @param Handle The HII Handle of this Package List. - @param NotifyType The reason of the notification. - - @retval EFI_SUCCESS The notification function is successful. - -**/ -EFI_STATUS -EFIAPI -NewOrAddPackNotify ( - IN UINT8 PackageType, - IN CONST EFI_GUID *PackageGuid, - IN CONST EFI_HII_PACKAGE_HEADER *Package, - IN EFI_HII_HANDLE Handle, - IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType - ); - -/** - Create a Hii Update data Handle used to call IfrLibUpdateForm. - - @param ThunkContext The HII Thunk Context. - @param FwUpdateData The Framework Update Data. - @param UefiOpCodeHandle The UEFI Update Data. - - @retval EFI_SUCCESS The UEFI Update Data is created successfully. - @retval EFI_UNSUPPORTED There is unsupported opcode in FwUpdateData. - @retval EFI_OUT_OF_RESOURCES There is not enough resource. -**/ -EFI_STATUS -FwUpdateDataToUefiUpdateData ( - IN HII_THUNK_CONTEXT *ThunkContext, - IN CONST EFI_HII_UPDATE_DATA *FwUpdateData, - IN VOID *UefiOpCodeHandle - ) -; - -/** - - Initialize string packages in HII database. - -**/ -VOID -InitSetBrowserStrings ( - VOID - ) -; - -/** - Convert language code from RFC4646 to ISO639-2. - - LanguageRfc4646 contain a single RFC 4646 code such as - "en-US" or "fr-FR". - - The LanguageRfc4646 must be a buffer large enough - for ISO_639_2_ENTRY_SIZE characters. - - If LanguageRfc4646 is NULL, then ASSERT. - If LanguageIso639 is NULL, then ASSERT. - - @param LanguageRfc4646 RFC4646 language code. - @param LanguageIso639 ISO639-2 language code. - - @retval EFI_SUCCESS Language code converted. - @retval EFI_NOT_FOUND Language code not found. - -**/ -EFI_STATUS -EFIAPI -ConvertRfc4646LanguageToIso639Language ( - IN CHAR8 *LanguageRfc4646, - OUT CHAR8 *LanguageIso639 - ) -; - -/** - Convert language code from ISO639-2 to RFC4646 and return the converted language. - Caller is responsible for freeing the allocated buffer. - - LanguageIso639 contain a single ISO639-2 code such as - "eng" or "fra". - - If LanguageIso639 is NULL, then ASSERT. - If LanguageRfc4646 is NULL, then ASSERT. - - @param LanguageIso639 ISO639-2 language code. - - @return the allocated buffer or NULL, if the language is not found. - -**/ -CHAR8* -EFIAPI -ConvertIso639LanguageToRfc4646Language ( - IN CONST CHAR8 *LanguageIso639 - ) -; - -/** - Get next language from language code list (with separator ';'). - - If LangCode is NULL, then ASSERT. - If Lang is NULL, then ASSERT. - - @param LangCode On input: point to first language in the list. On - output: point to next language in the list, or - NULL if no more language in the list. - @param Lang The first language in the list. - -**/ -VOID -EFIAPI -GetNextLanguage ( - IN OUT CHAR8 **LangCode, - OUT CHAR8 *Lang - ) -; - -#include "Utility.h" -#include "ConfigAccess.h" - -#endif