mirror of https://github.com/acidanthera/audk.git
1695 lines
74 KiB
C
1695 lines
74 KiB
C
/** @file
|
||
|
||
Copyright (c) 2007, 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:
|
||
|
||
Private structures definitions in HiiDatabase.
|
||
|
||
Revision History
|
||
|
||
|
||
**/
|
||
|
||
#ifndef __HII_DATABASE_PRIVATE_H__
|
||
#define __HII_DATABASE_PRIVATE_H__
|
||
|
||
#include <PiDxe.h>
|
||
|
||
#include <Protocol/ConsoleControl.h>
|
||
#include <Protocol/DevicePath.h>
|
||
#include <Protocol/HiiFont.h>
|
||
#include <Protocol/HiiImage.h>
|
||
#include <Protocol/HiiString.h>
|
||
#include <Protocol/HiiDatabase.h>
|
||
#include <Protocol/HiiConfigRouting.h>
|
||
#include <Protocol/HiiConfigAccess.h>
|
||
#include <Protocol/SimpleTextOut.h>
|
||
|
||
#include <Guid/HiiKeyBoardLayout.h>
|
||
|
||
|
||
#include <Library/DebugLib.h>
|
||
#include <Library/BaseMemoryLib.h>
|
||
#include <Library/UefiDriverEntryPoint.h>
|
||
#include <Library/UefiBootServicesTableLib.h>
|
||
#include <Library/BaseLib.h>
|
||
#include <Library/DevicePathLib.h>
|
||
#include <Library/MemoryAllocationLib.h>
|
||
|
||
#define HII_DATABASE_NOTIFY_GUID \
|
||
{ \
|
||
0xc1c76, 0xd79e, 0x42fe, 0x86, 0xb, 0x8b, 0xe8, 0x7b, 0x3e, 0x7a, 0x78 \
|
||
}
|
||
|
||
#define MAX_STRING_LENGTH 1024
|
||
#define MAX_FONT_NAME_LEN 256
|
||
#define NARROW_BASELINE 15
|
||
#define WIDE_BASELINE 14
|
||
#define SYS_FONT_INFO_MASK 0x37
|
||
#define REPLACE_UNKNOWN_GLYPH 0xFFFD
|
||
#define PROPORTIONAL_GLYPH 0x80
|
||
#define NARROW_GLYPH 0x40
|
||
|
||
#define BITMAP_LEN_1_BIT(Width, Height) (((Width) + 7) / 8 * (Height))
|
||
#define BITMAP_LEN_4_BIT(Width, Height) (((Width) + 1) / 2 * (Height))
|
||
#define BITMAP_LEN_8_BIT(Width, Height) ((Width) * (Height))
|
||
#define BITMAP_LEN_24_BIT(Width, Height) ((Width) * (Height) * 3)
|
||
|
||
//
|
||
// Storage types
|
||
//
|
||
#define EFI_HII_VARSTORE_BUFFER 0
|
||
#define EFI_HII_VARSTORE_NAME_VALUE 1
|
||
#define EFI_HII_VARSTORE_EFI_VARIABLE 2
|
||
|
||
#define HII_FORMSET_STORAGE_SIGNATURE EFI_SIGNATURE_32 ('H', 'S', 'T', 'G')
|
||
typedef struct {
|
||
UINTN Signature;
|
||
LIST_ENTRY Entry;
|
||
|
||
EFI_HII_HANDLE HiiHandle;
|
||
EFI_HANDLE DriverHandle;
|
||
|
||
UINT8 Type; // EFI_HII_VARSTORE_BUFFER, EFI_HII_VARSTORE_NAME_VALUE, EFI_HII_VARSTORE_EFI_VARIABLE
|
||
EFI_GUID Guid;
|
||
CHAR16 *Name;
|
||
UINT16 Size;
|
||
} HII_FORMSET_STORAGE;
|
||
|
||
#define HII_FORMSET_STORAGE_FROM_LINK(a) CR (a, HII_FORMSET_STORAGE, Link, HII_FORMSET_STORAGE_SIGNATURE)
|
||
|
||
|
||
//
|
||
// String Package definitions
|
||
//
|
||
#define HII_STRING_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','s','p')
|
||
typedef struct _HII_STRING_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
EFI_HII_STRING_PACKAGE_HDR *StringPkgHdr;
|
||
UINT8 *StringBlock;
|
||
LIST_ENTRY StringEntry;
|
||
LIST_ENTRY FontInfoList; // local font info list
|
||
UINT8 FontId;
|
||
} HII_STRING_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// Form Package definitions
|
||
//
|
||
#define HII_IFR_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','f','r','p')
|
||
typedef struct _HII_IFR_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
EFI_HII_PACKAGE_HEADER FormPkgHdr;
|
||
UINT8 *IfrData;
|
||
LIST_ENTRY IfrEntry;
|
||
} HII_IFR_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// Simple Font Package definitions
|
||
//
|
||
#define HII_S_FONT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','s','f','p')
|
||
typedef struct _HII_SIMPLE_FONT_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimpleFontPkgHdr;
|
||
LIST_ENTRY SimpleFontEntry;
|
||
} HII_SIMPLE_FONT_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// Font Package definitions
|
||
//
|
||
#define HII_FONT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','f','p')
|
||
typedef struct _HII_FONT_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;
|
||
UINT8 *GlyphBlock;
|
||
LIST_ENTRY FontEntry;
|
||
LIST_ENTRY GlyphInfoList;
|
||
} HII_FONT_PACKAGE_INSTANCE;
|
||
|
||
#define HII_GLYPH_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','g','i','s')
|
||
typedef struct _HII_GLYPH_INFO {
|
||
UINTN Signature;
|
||
LIST_ENTRY Entry;
|
||
CHAR16 CharId;
|
||
EFI_HII_GLYPH_INFO Cell;
|
||
} HII_GLYPH_INFO;
|
||
|
||
#define HII_FONT_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','l','f','i')
|
||
typedef struct _HII_FONT_INFO {
|
||
UINTN Signature;
|
||
LIST_ENTRY Entry;
|
||
LIST_ENTRY *GlobalEntry;
|
||
UINT8 FontId;
|
||
} HII_FONT_INFO;
|
||
|
||
#define HII_GLOBAL_FONT_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','g','f','i')
|
||
typedef struct _HII_GLOBAL_FONT_INFO {
|
||
UINTN Signature;
|
||
LIST_ENTRY Entry;
|
||
HII_FONT_PACKAGE_INSTANCE *FontPackage;
|
||
UINTN FontInfoSize;
|
||
EFI_FONT_INFO *FontInfo;
|
||
} HII_GLOBAL_FONT_INFO;
|
||
|
||
//
|
||
// Image Package definitions
|
||
//
|
||
|
||
#define HII_PIXEL_MASK 0x80
|
||
|
||
typedef struct _HII_IMAGE_PACKAGE_INSTANCE {
|
||
EFI_HII_IMAGE_PACKAGE_HDR ImagePkgHdr;
|
||
UINT32 ImageBlockSize;
|
||
UINT32 PaletteInfoSize;
|
||
UINT8 *ImageBlock;
|
||
UINT8 *PaletteBlock;
|
||
} HII_IMAGE_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// Keyboard Layout Pacakge definitions
|
||
//
|
||
#define HII_KB_LAYOUT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','k','l','p')
|
||
typedef struct _HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
UINT8 *KeyboardPkg;
|
||
LIST_ENTRY KeyboardEntry;
|
||
} HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// Guid Package definitions
|
||
//
|
||
#define HII_GUID_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','g','p')
|
||
typedef struct _HII_GUID_PACKAGE_INSTANCE {
|
||
UINTN Signature;
|
||
UINT8 *GuidPkg;
|
||
LIST_ENTRY GuidEntry;
|
||
} HII_GUID_PACKAGE_INSTANCE;
|
||
|
||
//
|
||
// A package list can contain only one or less than one device path package.
|
||
// This rule also applies to image package since ImageId can not be duplicate.
|
||
//
|
||
typedef struct _HII_DATABASE_PACKAGE_LIST_INSTANCE {
|
||
EFI_HII_PACKAGE_LIST_HEADER PackageListHdr;
|
||
LIST_ENTRY GuidPkgHdr;
|
||
LIST_ENTRY FormPkgHdr;
|
||
LIST_ENTRY KeyboardLayoutHdr;
|
||
LIST_ENTRY StringPkgHdr;
|
||
LIST_ENTRY FontPkgHdr;
|
||
HII_IMAGE_PACKAGE_INSTANCE *ImagePkg;
|
||
LIST_ENTRY SimpleFontPkgHdr;
|
||
UINT8 *DevicePathPkg;
|
||
} HII_DATABASE_PACKAGE_LIST_INSTANCE;
|
||
|
||
#define HII_HANDLE_SIGNATURE EFI_SIGNATURE_32 ('h','i','h','l')
|
||
|
||
typedef struct {
|
||
UINTN Signature;
|
||
LIST_ENTRY Handle;
|
||
UINTN Key;
|
||
} HII_HANDLE;
|
||
|
||
#define HII_DATABASE_RECORD_SIGNATURE EFI_SIGNATURE_32 ('h','i','d','r')
|
||
|
||
typedef struct _HII_DATABASE_RECORD {
|
||
UINTN Signature;
|
||
HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
|
||
EFI_HANDLE DriverHandle;
|
||
EFI_HII_HANDLE Handle;
|
||
LIST_ENTRY DatabaseEntry;
|
||
} HII_DATABASE_RECORD;
|
||
|
||
#define HII_DATABASE_NOTIFY_SIGNATURE EFI_SIGNATURE_32 ('h','i','d','n')
|
||
|
||
typedef struct _HII_DATABASE_NOTIFY {
|
||
UINTN Signature;
|
||
EFI_HANDLE NotifyHandle;
|
||
UINT8 PackageType;
|
||
EFI_GUID *PackageGuid;
|
||
EFI_HII_DATABASE_NOTIFY PackageNotifyFn;
|
||
EFI_HII_DATABASE_NOTIFY_TYPE NotifyType;
|
||
LIST_ENTRY DatabaseNotifyEntry;
|
||
} HII_DATABASE_NOTIFY;
|
||
|
||
#define HII_DATABASE_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('H', 'i', 'D', 'p')
|
||
|
||
typedef struct _HII_DATABASE_PRIVATE_DATA {
|
||
UINTN Signature;
|
||
LIST_ENTRY DatabaseList;
|
||
LIST_ENTRY DatabaseNotifyList;
|
||
EFI_HII_FONT_PROTOCOL HiiFont;
|
||
#ifndef DISABLE_UNUSED_HII_PROTOCOLS
|
||
EFI_HII_IMAGE_PROTOCOL HiiImage;
|
||
#endif
|
||
EFI_HII_STRING_PROTOCOL HiiString;
|
||
EFI_HII_DATABASE_PROTOCOL HiiDatabase;
|
||
EFI_HII_CONFIG_ROUTING_PROTOCOL ConfigRouting;
|
||
LIST_ENTRY HiiHandleList;
|
||
INTN HiiHandleCount;
|
||
LIST_ENTRY FontInfoList; // global font info list
|
||
UINTN Attribute; // default system color
|
||
EFI_GUID CurrentLayoutGuid;
|
||
EFI_HII_KEYBOARD_LAYOUT *CurrentLayout;
|
||
} HII_DATABASE_PRIVATE_DATA;
|
||
|
||
#define HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
|
||
CR (a, \
|
||
HII_DATABASE_PRIVATE_DATA, \
|
||
HiiFont, \
|
||
HII_DATABASE_PRIVATE_DATA_SIGNATURE \
|
||
)
|
||
|
||
#define HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
|
||
CR (a, \
|
||
HII_DATABASE_PRIVATE_DATA, \
|
||
HiiImage, \
|
||
HII_DATABASE_PRIVATE_DATA_SIGNATURE \
|
||
)
|
||
|
||
#define HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
|
||
CR (a, \
|
||
HII_DATABASE_PRIVATE_DATA, \
|
||
HiiString, \
|
||
HII_DATABASE_PRIVATE_DATA_SIGNATURE \
|
||
)
|
||
|
||
#define HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
|
||
CR (a, \
|
||
HII_DATABASE_PRIVATE_DATA, \
|
||
HiiDatabase, \
|
||
HII_DATABASE_PRIVATE_DATA_SIGNATURE \
|
||
)
|
||
|
||
#define CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
|
||
CR (a, \
|
||
HII_DATABASE_PRIVATE_DATA, \
|
||
ConfigRouting, \
|
||
HII_DATABASE_PRIVATE_DATA_SIGNATURE \
|
||
)
|
||
|
||
//
|
||
// Internal function prototypes.
|
||
//
|
||
|
||
/**
|
||
This function checks whether a handle is a valid EFI_HII_HANDLE
|
||
|
||
@param Handle Pointer to a EFI_HII_HANDLE
|
||
|
||
@retval TRUE Valid
|
||
@retval FALSE Invalid
|
||
|
||
**/
|
||
BOOLEAN
|
||
IsHiiHandleValid (
|
||
EFI_HII_HANDLE Handle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function checks whether EFI_FONT_INFO exists in current database. If
|
||
FontInfoMask is specified, check what options can be used to make a match.
|
||
Note that the masks relate to where the system default should be supplied
|
||
are ignored by this function.
|
||
|
||
@param Private Hii database private structure.
|
||
@param FontInfo Points to EFI_FONT_INFO structure.
|
||
@param FontInfoMask If not NULL, describes what options can be used
|
||
to make a match between the font requested and
|
||
the font available. The caller must guarantee
|
||
this mask is valid.
|
||
@param FontHandle On entry, Points to the font handle returned by a
|
||
previous call to GetFontInfo() or NULL to start
|
||
with the first font.
|
||
@param GlobalFontInfo If not NULL, output the corresponding globa font
|
||
info.
|
||
|
||
@retval TRUE Existed
|
||
@retval FALSE Not existed
|
||
|
||
**/
|
||
BOOLEAN
|
||
IsFontInfoExisted (
|
||
IN HII_DATABASE_PRIVATE_DATA *Private,
|
||
IN EFI_FONT_INFO *FontInfo,
|
||
IN EFI_FONT_INFO_MASK *FontInfoMask, OPTIONAL
|
||
IN EFI_FONT_HANDLE FontHandle, OPTIONAL
|
||
OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Retrieve system default font and color.
|
||
|
||
@param Private HII database driver private data.
|
||
@param FontInfo Points to system default font output-related
|
||
information. It's caller's responsibility to free
|
||
this buffer.
|
||
@param FontInfoSize If not NULL, output the size of buffer FontInfo.
|
||
|
||
@retval EFI_SUCCESS Cell information is added to the GlyphInfoList.
|
||
@retval EFI_OUT_OF_RESOURCES The system is out of resources to accomplish the
|
||
task.
|
||
@retval EFI_INVALID_PARAMETER Any input parameter is invalid.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
GetSystemFont (
|
||
IN HII_DATABASE_PRIVATE_DATA *Private,
|
||
OUT EFI_FONT_DISPLAY_INFO **FontInfo,
|
||
OUT UINTN *FontInfoSize OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Parse all string blocks to find a String block specified by StringId.
|
||
If StringId = (EFI_STRING_ID) (-1), find out all EFI_HII_SIBT_FONT blocks
|
||
within this string package and backup its information.
|
||
If StringId = 0, output the string id of last string block (EFI_HII_SIBT_END).
|
||
|
||
@param Private Hii database private structure.
|
||
@param StringPackage Hii string package instance.
|
||
@param StringId The string<6E><67>s id, which is unique within
|
||
PackageList.
|
||
@param BlockType Output the block type of found string block.
|
||
@param StringBlockAddr Output the block address of found string block.
|
||
@param StringTextOffset Offset, relative to the found block address, of
|
||
the string text information.
|
||
@param LastStringId Output the last string id when StringId = 0.
|
||
|
||
@retval EFI_SUCCESS The string text and font is retrieved
|
||
successfully.
|
||
@retval EFI_NOT_FOUND The specified text or font info can not be found
|
||
out.
|
||
@retval EFI_OUT_OF_RESOURCES The system is out of resources to accomplish the
|
||
task.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
FindStringBlock (
|
||
IN HII_DATABASE_PRIVATE_DATA *Private,
|
||
IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
|
||
IN EFI_STRING_ID StringId,
|
||
OUT UINT8 *BlockType, OPTIONAL
|
||
OUT UINT8 **StringBlockAddr, OPTIONAL
|
||
OUT UINTN *StringTextOffset, OPTIONAL
|
||
OUT EFI_STRING_ID *LastStringId OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Parse all glyph blocks to find a glyph block specified by CharValue.
|
||
If CharValue = (CHAR16) (-1), collect all default character cell information
|
||
within this font package and backup its information.
|
||
|
||
@param FontPackage Hii string package instance.
|
||
@param CharValue Unicode character value, which identifies a glyph
|
||
block.
|
||
@param GlyphBuffer Output the corresponding bitmap data of the found
|
||
block. It is the caller's responsiblity to free
|
||
this buffer.
|
||
@param Cell Output cell information of the encoded bitmap.
|
||
@param GlyphBufferLen If not NULL, output the length of GlyphBuffer.
|
||
|
||
@retval EFI_SUCCESS The bitmap data is retrieved successfully.
|
||
@retval EFI_NOT_FOUND The specified CharValue does not exist in current
|
||
database.
|
||
@retval EFI_OUT_OF_RESOURCES The system is out of resources to accomplish the
|
||
task.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
FindGlyphBlock (
|
||
IN HII_FONT_PACKAGE_INSTANCE *FontPackage,
|
||
IN CHAR16 CharValue,
|
||
OUT UINT8 **GlyphBuffer, OPTIONAL
|
||
OUT EFI_HII_GLYPH_INFO *Cell, OPTIONAL
|
||
OUT UINTN *GlyphBufferLen OPTIONAL
|
||
)
|
||
;
|
||
|
||
//
|
||
// EFI_HII_FONT_PROTOCOL protocol interfaces
|
||
//
|
||
|
||
|
||
/**
|
||
Renders a string to a bitmap or to the display.
|
||
|
||
@param This A pointer to the EFI_HII_FONT_PROTOCOL instance.
|
||
@param Flags Describes how the string is to be drawn.
|
||
@param String Points to the null-terminated string to be
|
||
displayed.
|
||
@param StringInfo Points to the string output information,
|
||
including the color and font. If NULL, then the
|
||
string will be output in the default system font
|
||
and color.
|
||
@param Blt If this points to a non-NULL on entry, this
|
||
points to the image, which is Width pixels wide
|
||
and Height pixels high. The string will be drawn
|
||
onto this image and
|
||
EFI_HII_OUT_FLAG_CLIP is implied. If this points
|
||
to a NULL on entry, then a buffer
|
||
will be allocated to hold the generated image and
|
||
the pointer updated on exit. It is the caller<65><72>s
|
||
responsibility to free this buffer.
|
||
@param BltX,BLTY Specifies the offset from the left and top edge
|
||
of the image of the first character cell in the
|
||
image.
|
||
@param RowInfoArray If this is non-NULL on entry, then on exit, this
|
||
will point to an allocated buffer containing
|
||
row information and RowInfoArraySize will be
|
||
updated to contain the number of elements.
|
||
This array describes the characters which were at
|
||
least partially drawn and the heights of the
|
||
rows. It is the caller<65><72>s responsibility to free
|
||
this buffer.
|
||
@param RowInfoArraySize If this is non-NULL on entry, then on exit it
|
||
contains the number of elements in RowInfoArray.
|
||
@param ColumnInfoArray If this is non-NULL, then on return it will be
|
||
filled with the horizontal offset for each
|
||
character in the string on the row where it is
|
||
displayed. Non-printing characters will have
|
||
the offset ~0. The caller is responsible to
|
||
allocate a buffer large enough so that there
|
||
is one entry for each character in the string,
|
||
not including the null-terminator. It is possible
|
||
when character display is normalized that some
|
||
character cells overlap.
|
||
|
||
@retval EFI_SUCCESS The string was successfully rendered.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for
|
||
RowInfoArray or Blt.
|
||
@retval EFI_INVALID_PARAMETER The String was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiStringToImage (
|
||
IN CONST EFI_HII_FONT_PROTOCOL *This,
|
||
IN EFI_HII_OUT_FLAGS Flags,
|
||
IN CONST EFI_STRING String,
|
||
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
|
||
IN OUT EFI_IMAGE_OUTPUT **Blt,
|
||
IN UINTN BltX,
|
||
IN UINTN BltY,
|
||
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
|
||
OUT UINTN *RowInfoArraySize OPTIONAL,
|
||
OUT UINTN *ColumnInfoArray OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Render a string to a bitmap or the screen containing the contents of the specified string.
|
||
|
||
@param This A pointer to the EFI_HII_FONT_PROTOCOL instance.
|
||
@param Flags Describes how the string is to be drawn.
|
||
@param PackageList The package list in the HII database to search
|
||
for the specified string.
|
||
@param StringId The string<6E><67>s id, which is unique within
|
||
PackageList.
|
||
@param Language Points to the language for the retrieved string.
|
||
If NULL, then the current system language is
|
||
used.
|
||
@param StringInfo Points to the string output information,
|
||
including the color and font. If NULL, then the
|
||
string will be output in the default system font
|
||
and color.
|
||
@param Blt If this points to a non-NULL on entry, this
|
||
points to the image, which is Width pixels wide
|
||
and Height pixels high. The string will be drawn
|
||
onto this image and
|
||
EFI_HII_OUT_FLAG_CLIP is implied. If this points
|
||
to a NULL on entry, then a buffer
|
||
will be allocated to hold the generated image and
|
||
the pointer updated on exit. It is the caller<65><72>s
|
||
responsibility to free this buffer.
|
||
@param BltX,BLTY Specifies the offset from the left and top edge
|
||
of the image of the first character cell in the
|
||
image.
|
||
@param RowInfoArray If this is non-NULL on entry, then on exit, this
|
||
will point to an allocated buffer containing
|
||
row information and RowInfoArraySize will be
|
||
updated to contain the number of elements.
|
||
This array describes the characters which were at
|
||
least partially drawn and the heights of the
|
||
rows. It is the caller<65><72>s responsibility to free
|
||
this buffer.
|
||
@param RowInfoArraySize If this is non-NULL on entry, then on exit it
|
||
contains the number of elements in RowInfoArray.
|
||
@param ColumnInfoArray If this is non-NULL, then on return it will be
|
||
filled with the horizontal offset for each
|
||
character in the string on the row where it is
|
||
displayed. Non-printing characters will have
|
||
the offset ~0. The caller is responsible to
|
||
allocate a buffer large enough so that there
|
||
is one entry for each character in the string,
|
||
not including the null-terminator. It is possible
|
||
when character display is normalized that some
|
||
character cells overlap.
|
||
|
||
@retval EFI_SUCCESS The string was successfully rendered.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for
|
||
RowInfoArray or Blt.
|
||
@retval EFI_INVALID_PARAMETER The String was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiStringIdToImage (
|
||
IN CONST EFI_HII_FONT_PROTOCOL *This,
|
||
IN EFI_HII_OUT_FLAGS Flags,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_STRING_ID StringId,
|
||
IN CONST CHAR8* Language,
|
||
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
|
||
IN OUT EFI_IMAGE_OUTPUT **Blt,
|
||
IN UINTN BltX,
|
||
IN UINTN BltY,
|
||
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
|
||
OUT UINTN *RowInfoArraySize OPTIONAL,
|
||
OUT UINTN *ColumnInfoArray OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Convert the glyph for a single character into a bitmap.
|
||
|
||
@param This A pointer to the EFI_HII_FONT_PROTOCOL instance.
|
||
@param Char Character to retrieve.
|
||
@param StringInfo Points to the string font and color information
|
||
or NULL if the string should use the default
|
||
system font and color.
|
||
@param Blt Thus must point to a NULL on entry. A buffer will
|
||
be allocated to hold the output and the pointer
|
||
updated on exit. It is the caller<65><72>s
|
||
responsibility to free this buffer.
|
||
@param Baseline Number of pixels from the bottom of the bitmap to
|
||
the baseline.
|
||
|
||
@retval EFI_SUCCESS Glyph bitmap created.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate the output buffer Blt.
|
||
@retval EFI_WARN_UNKNOWN_GLYPH The glyph was unknown and was replaced with the
|
||
glyph for Unicode character 0xFFFD.
|
||
@retval EFI_INVALID_PARAMETER Blt is NULL or *Blt is not NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetGlyph (
|
||
IN CONST EFI_HII_FONT_PROTOCOL *This,
|
||
IN CHAR16 Char,
|
||
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
|
||
OUT EFI_IMAGE_OUTPUT **Blt,
|
||
OUT UINTN *Baseline OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function iterates through fonts which match the specified font, using
|
||
the specified criteria. If String is non-NULL, then all of the characters in
|
||
the string must exist in order for a candidate font to be returned.
|
||
|
||
@param This A pointer to the EFI_HII_FONT_PROTOCOL instance.
|
||
@param FontHandle On entry, points to the font handle returned by a
|
||
previous call to GetFontInfo() or NULL to start
|
||
with the first font. On return, points to the
|
||
returned font handle or points to NULL if there
|
||
are no more matching fonts.
|
||
@param StringInfoIn Upon entry, points to the font to return
|
||
information about.
|
||
@param StringInfoOut Upon return, contains the matching font<6E><74>s
|
||
information. If NULL, then no information is
|
||
returned. It's caller's responsibility to free
|
||
this buffer.
|
||
@param String Points to the string which will be tested to
|
||
determine if all characters are available. If
|
||
NULL, then any font is acceptable.
|
||
|
||
@retval EFI_SUCCESS Matching font returned successfully.
|
||
@retval EFI_NOT_FOUND No matching font was found.
|
||
@retval EFI_INVALID_PARAMETER StringInfoIn is NULL.
|
||
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to complete the
|
||
request.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetFontInfo (
|
||
IN CONST EFI_HII_FONT_PROTOCOL *This,
|
||
IN OUT EFI_FONT_HANDLE *FontHandle,
|
||
IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn,
|
||
OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
|
||
IN CONST EFI_STRING String OPTIONAL
|
||
)
|
||
;
|
||
|
||
//
|
||
// EFI_HII_IMAGE_PROTOCOL interfaces
|
||
//
|
||
|
||
|
||
/**
|
||
This function adds the image Image to the group of images owned by PackageList, and returns
|
||
a new image identifier (ImageId).
|
||
|
||
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
|
||
@param PackageList Handle of the package list where this image will
|
||
be added.
|
||
@param ImageId On return, contains the new image id, which is
|
||
unique within PackageList.
|
||
@param Image Points to the image.
|
||
|
||
@retval EFI_SUCCESS The new image was added successfully.
|
||
@retval EFI_NOT_FOUND The specified PackageList could not be found in
|
||
database.
|
||
@retval EFI_OUT_OF_RESOURCES Could not add the image due to lack of resources.
|
||
@retval EFI_INVALID_PARAMETER Image is NULL or ImageId is NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiNewImage (
|
||
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
OUT EFI_IMAGE_ID *ImageId,
|
||
IN CONST EFI_IMAGE_INPUT *Image
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function retrieves the image specified by ImageId which is associated with
|
||
the specified PackageList and copies it into the buffer specified by Image.
|
||
|
||
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
|
||
@param PackageList Handle of the package list where this image will
|
||
be searched.
|
||
@param ImageId The image<67><65>s id,, which is unique within
|
||
PackageList.
|
||
@param Image Points to the image.
|
||
@param ImageSize On entry, points to the size of the buffer
|
||
pointed to by Image, in bytes. On return, points
|
||
to the length of the image, in bytes.
|
||
|
||
@retval EFI_SUCCESS The new image was returned successfully.
|
||
@retval EFI_NOT_FOUND The image specified by ImageId is not available.
|
||
@retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too small to
|
||
hold the image.
|
||
@retval EFI_INVALID_PARAMETER The Image or ImageSize was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetImage (
|
||
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_IMAGE_ID ImageId,
|
||
OUT EFI_IMAGE_INPUT *Image,
|
||
OUT UINTN *ImageSize
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function updates the image specified by ImageId in the specified PackageListHandle to
|
||
the image specified by Image.
|
||
|
||
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
|
||
@param PackageList The package list containing the images.
|
||
@param ImageId The image<67><65>s id,, which is unique within
|
||
PackageList.
|
||
@param Image Points to the image.
|
||
|
||
@retval EFI_SUCCESS The new image was updated successfully.
|
||
@retval EFI_NOT_FOUND The image specified by ImageId is not in the
|
||
database.
|
||
@retval EFI_INVALID_PARAMETER The Image was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiSetImage (
|
||
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_IMAGE_ID ImageId,
|
||
IN CONST EFI_IMAGE_INPUT *Image
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function renders an image to a bitmap or the screen using the specified
|
||
color and options. It draws the image on an existing bitmap, allocates a new
|
||
bitmap or uses the screen. The images can be clipped.
|
||
|
||
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
|
||
@param Flags Describes how the image is to be drawn.
|
||
@param Image Points to the image to be displayed.
|
||
@param Blt If this points to a non-NULL on entry, this
|
||
points to the image, which is Width pixels wide
|
||
and Height pixels high. The image will be drawn
|
||
onto this image and EFI_HII_DRAW_FLAG_CLIP is
|
||
implied. If this points to a NULL on entry, then
|
||
a buffer will be allocated to hold the generated
|
||
image and the pointer updated on exit. It is the
|
||
caller<65><72>s responsibility to free this buffer.
|
||
@param BltY Specifies the offset from the left and top edge
|
||
of the output image of the first pixel in the
|
||
image.
|
||
|
||
@retval EFI_SUCCESS The image was successfully drawn.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt.
|
||
@retval EFI_INVALID_PARAMETER The Image or Blt was NULL.
|
||
@retval EFI_INVALID_PARAMETER Any combination of Flags is invalid.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiDrawImage (
|
||
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
|
||
IN EFI_HII_DRAW_FLAGS Flags,
|
||
IN CONST EFI_IMAGE_INPUT *Image,
|
||
IN OUT EFI_IMAGE_OUTPUT **Blt,
|
||
IN UINTN BltX,
|
||
IN UINTN BltY
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function renders an image to a bitmap or the screen using the specified
|
||
color and options. It draws the image on an existing bitmap, allocates a new
|
||
bitmap or uses the screen. The images can be clipped.
|
||
|
||
@param This A pointer to the EFI_HII_IMAGE_PROTOCOL instance.
|
||
@param Flags Describes how the image is to be drawn.
|
||
@param PackageList The package list in the HII database to search
|
||
for the specified image.
|
||
@param ImageId The image's id, which is unique within
|
||
PackageList.
|
||
@param Blt If this points to a non-NULL on entry, this
|
||
points to the image, which is Width pixels wide
|
||
and Height pixels high. The image will be drawn
|
||
onto this image and
|
||
EFI_HII_DRAW_FLAG_CLIP is implied. If this points
|
||
to a NULL on entry, then a buffer will be
|
||
allocated to hold the generated image and the
|
||
pointer updated on exit. It is the caller<65><72>s
|
||
responsibility to free this buffer.
|
||
@param BltY Specifies the offset from the left and top edge
|
||
of the output image of the first pixel in the
|
||
image.
|
||
|
||
@retval EFI_SUCCESS The image was successfully drawn.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt.
|
||
@retval EFI_INVALID_PARAMETER The Image was NULL.
|
||
@retval EFI_NOT_FOUND The specified packagelist could not be found in
|
||
current database.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiDrawImageId (
|
||
IN CONST EFI_HII_IMAGE_PROTOCOL *This,
|
||
IN EFI_HII_DRAW_FLAGS Flags,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_IMAGE_ID ImageId,
|
||
IN OUT EFI_IMAGE_OUTPUT **Blt,
|
||
IN UINTN BltX,
|
||
IN UINTN BltY
|
||
)
|
||
|
||
;
|
||
|
||
//
|
||
// EFI_HII_STRING_PROTOCOL
|
||
//
|
||
|
||
|
||
/**
|
||
This function adds the string String to the group of strings owned by PackageList, with the
|
||
specified font information StringFontInfo and returns a new string id.
|
||
|
||
@param This A pointer to the EFI_HII_STRING_PROTOCOL
|
||
instance.
|
||
@param PackageList Handle of the package list where this string will
|
||
be added.
|
||
@param StringId On return, contains the new strings id, which is
|
||
unique within PackageList.
|
||
@param Language Points to the language for the new string.
|
||
@param LanguageName Points to the printable language name to
|
||
associate with the passed in Language field.If
|
||
LanguageName is not NULL and the string package
|
||
header's LanguageName associated with a given
|
||
Language is not zero, the LanguageName being
|
||
passed in will be ignored.
|
||
@param String Points to the new null-terminated string.
|
||
@param StringFontInfo Points to the new string<6E><67>s font information or
|
||
NULL if the string should have the default system
|
||
font, size and style.
|
||
|
||
@retval EFI_SUCCESS The new string was added successfully.
|
||
@retval EFI_NOT_FOUND The specified PackageList could not be found in
|
||
database.
|
||
@retval EFI_OUT_OF_RESOURCES Could not add the string due to lack of
|
||
resources.
|
||
@retval EFI_INVALID_PARAMETER String is NULL or StringId is NULL or Language is
|
||
NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiNewString (
|
||
IN CONST EFI_HII_STRING_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
OUT EFI_STRING_ID *StringId,
|
||
IN CONST CHAR8 *Language,
|
||
IN CONST CHAR16 *LanguageName, OPTIONAL
|
||
IN CONST EFI_STRING String,
|
||
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function retrieves the string specified by StringId which is associated
|
||
with the specified PackageList in the language Language and copies it into
|
||
the buffer specified by String.
|
||
|
||
@param This A pointer to the EFI_HII_STRING_PROTOCOL
|
||
instance.
|
||
@param Language Points to the language for the retrieved string.
|
||
@param PackageList The package list in the HII database to search
|
||
for the specified string.
|
||
@param StringId The string's id, which is unique within
|
||
PackageList.
|
||
@param String Points to the new null-terminated string.
|
||
@param StringSize On entry, points to the size of the buffer
|
||
pointed to by String, in bytes. On return,
|
||
points to the length of the string, in bytes.
|
||
@param StringFontInfo If not NULL, points to the string<6E><67>s font
|
||
information. It's caller's responsibility to
|
||
free this buffer.
|
||
|
||
@retval EFI_SUCCESS The string was returned successfully.
|
||
@retval EFI_NOT_FOUND The string specified by StringId is not
|
||
available.
|
||
@retval EFI_NOT_FOUND The string specified by StringId is available but
|
||
not in the specified language.
|
||
@retval EFI_BUFFER_TOO_SMALL The buffer specified by StringSize is too small
|
||
to hold the string.
|
||
@retval EFI_INVALID_PARAMETER The String or Language or StringSize was NULL.
|
||
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to complete the
|
||
request.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetString (
|
||
IN CONST EFI_HII_STRING_PROTOCOL *This,
|
||
IN CONST CHAR8 *Language,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_STRING_ID StringId,
|
||
OUT EFI_STRING String,
|
||
IN OUT UINTN *StringSize,
|
||
OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function updates the string specified by StringId in the specified PackageList to the text
|
||
specified by String and, optionally, the font information specified by StringFontInfo.
|
||
|
||
@param This A pointer to the EFI_HII_STRING_PROTOCOL
|
||
instance.
|
||
@param PackageList The package list containing the strings.
|
||
@param StringId The string<6E><67>s id, which is unique within
|
||
PackageList.
|
||
@param Language Points to the language for the updated string.
|
||
@param String Points to the new null-terminated string.
|
||
@param StringFontInfo Points to the string<6E><67>s font information or NULL
|
||
if the string font information is not changed.
|
||
|
||
@retval EFI_SUCCESS The string was updated successfully.
|
||
@retval EFI_NOT_FOUND The string specified by StringId is not in the
|
||
database.
|
||
@retval EFI_INVALID_PARAMETER The String or Language was NULL.
|
||
@retval EFI_OUT_OF_RESOURCES The system is out of resources to accomplish the
|
||
task.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiSetString (
|
||
IN CONST EFI_HII_STRING_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN EFI_STRING_ID StringId,
|
||
IN CONST CHAR8 *Language,
|
||
IN CONST EFI_STRING String,
|
||
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function returns the list of supported languages, in the format specified
|
||
in Appendix M of UEFI 2.1 spec.
|
||
|
||
@param This A pointer to the EFI_HII_STRING_PROTOCOL
|
||
instance.
|
||
@param PackageList The package list to examine.
|
||
@param Languages Points to the buffer to hold the returned string.
|
||
@param LanguagesSize On entry, points to the size of the buffer
|
||
pointed to by Languages, in bytes. On return,
|
||
points to the length of Languages, in bytes.
|
||
|
||
@retval EFI_SUCCESS The languages were returned successfully.
|
||
@retval EFI_INVALID_PARAMETER The Languages or LanguagesSize was NULL.
|
||
@retval EFI_BUFFER_TOO_SMALL The LanguagesSize is too small to hold the list
|
||
of supported languages. LanguageSize is updated
|
||
to contain the required size.
|
||
@retval EFI_NOT_FOUND Could not find string package in specified
|
||
packagelist.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetLanguages (
|
||
IN CONST EFI_HII_STRING_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN OUT CHAR8 *Languages,
|
||
IN OUT UINTN *LanguagesSize
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Each string package has associated with it a single primary language and zero
|
||
or more secondary languages. This routine returns the secondary languages
|
||
associated with a package list.
|
||
|
||
@param This A pointer to the EFI_HII_STRING_PROTOCOL
|
||
instance.
|
||
@param PackageList The package list to examine.
|
||
@param FirstLanguage Points to the primary language.
|
||
@param SecondaryLanguages Points to the buffer to hold the returned list of
|
||
secondary languages for the specified
|
||
FirstLanguage. If there are no secondary
|
||
languages, the function returns successfully,
|
||
but this is set to NULL.
|
||
@param SecondaryLanguageSize On entry, points to the size of the buffer
|
||
pointed to by SecondLanguages, in bytes. On
|
||
return, points to the length of SecondLanguages
|
||
in bytes.
|
||
|
||
@retval EFI_SUCCESS Secondary languages were correctly returned.
|
||
@retval EFI_INVALID_PARAMETER FirstLanguage or SecondLanguages or
|
||
SecondLanguagesSize was NULL.
|
||
@retval EFI_BUFFER_TOO_SMALL The buffer specified by SecondLanguagesSize is
|
||
too small to hold the returned information.
|
||
SecondLanguageSize is updated to hold the size of
|
||
the buffer required.
|
||
@retval EFI_NOT_FOUND The language specified by FirstLanguage is not
|
||
present in the specified package list.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetSecondaryLanguages (
|
||
IN CONST EFI_HII_STRING_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageList,
|
||
IN CONST CHAR8 *FirstLanguage,
|
||
IN OUT CHAR8 *SecondLanguages,
|
||
IN OUT UINTN *SecondLanguagesSize
|
||
)
|
||
;
|
||
|
||
//
|
||
// EFI_HII_DATABASE_PROTOCOL protocol interfaces
|
||
//
|
||
|
||
|
||
/**
|
||
This function adds the packages in the package list to the database and returns a handle. If there is a
|
||
EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then this function will
|
||
create a package of type EFI_PACKAGE_TYPE_DEVICE_PATH and add it to the package list.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param PackageList A pointer to an EFI_HII_PACKAGE_LIST_HEADER
|
||
structure.
|
||
@param DriverHandle Associate the package list with this EFI handle.
|
||
@param Handle A pointer to the EFI_HII_HANDLE instance.
|
||
|
||
@retval EFI_SUCCESS The package list associated with the Handle was
|
||
added to the HII database.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate necessary resources for the
|
||
new database contents.
|
||
@retval EFI_INVALID_PARAMETER PackageList is NULL or Handle is NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiNewPackageList (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
|
||
IN CONST EFI_HANDLE DriverHandle,
|
||
OUT EFI_HII_HANDLE *Handle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function removes the package list that is associated with a handle Handle
|
||
from the HII database. Before removing the package, any registered functions
|
||
with the notification type REMOVE_PACK and the same package type will be called.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param Handle The handle that was registered to the data that
|
||
is requested for removal.
|
||
|
||
@retval EFI_SUCCESS The data associated with the Handle was removed
|
||
from the HII database.
|
||
@retval EFI_NOT_FOUND The specified PackageList could not be found in
|
||
database.
|
||
@retval EFI_INVALID_PARAMETER The Handle was not valid.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiRemovePackageList (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE Handle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function updates the existing package list (which has the specified Handle)
|
||
in the HII databases, using the new package list specified by PackageList.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param Handle The handle that was registered to the data that
|
||
is requested to be updated.
|
||
@param PackageList A pointer to an EFI_HII_PACKAGE_LIST_HEADER
|
||
package.
|
||
|
||
@retval EFI_SUCCESS The HII database was successfully updated.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate enough memory for the updated
|
||
database.
|
||
@retval EFI_INVALID_PARAMETER Handle or PackageList was NULL.
|
||
@retval EFI_NOT_FOUND The Handle was not valid or could not be found in
|
||
database.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiUpdatePackageList (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE Handle,
|
||
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function returns a list of the package handles of the specified type
|
||
that are currently active in the database. The pseudo-type
|
||
EFI_HII_PACKAGE_TYPE_ALL will cause all package handles to be listed.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param PackageType Specifies the package type of the packages to
|
||
list or EFI_HII_PACKAGE_TYPE_ALL for all packages
|
||
to be listed.
|
||
@param PackageGuid If PackageType is EFI_HII_PACKAGE_TYPE_GUID, then
|
||
this is the pointer to the GUID which must match
|
||
the Guid field of EFI_HII_GUID_PACKAGE_GUID_HDR.
|
||
Otherwise, it must be NULL.
|
||
@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 An array of EFI_HII_HANDLE instances returned.
|
||
|
||
@retval EFI_SUCCESS The matching handles are outputed successfully.
|
||
@retval EFI_BUFFER_TO_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.
|
||
@retval EFI_NOT_FOUND No matching handle could not be found in
|
||
database.
|
||
@retval EFI_INVALID_PARAMETER Handle or HandleBufferLength was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiListPackageLists (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN UINT8 PackageType,
|
||
IN CONST EFI_GUID *PackageGuid,
|
||
IN OUT UINTN *HandleBufferLength,
|
||
OUT EFI_HII_HANDLE *Handle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function will export one or all package lists in the database to a buffer.
|
||
For each package list exported, this function will call functions registered
|
||
with EXPORT_PACK and then copy the package list to the buffer.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param Handle An EFI_HII_HANDLE that corresponds to the desired
|
||
package list in the HII database to export or
|
||
NULL to indicate all package lists should be
|
||
exported.
|
||
@param BufferSize On input, a pointer to the length of the buffer.
|
||
On output, the length of the buffer that is
|
||
required for the exported data.
|
||
@param Buffer A pointer to a buffer that will contain the
|
||
results of the export function.
|
||
|
||
@retval EFI_SUCCESS Package exported.
|
||
@retval EFI_BUFFER_TO_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.
|
||
@retval EFI_NOT_FOUND The specifiecd Handle could not be found in the
|
||
current database.
|
||
@retval EFI_INVALID_PARAMETER Handle or Buffer or BufferSize was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiExportPackageLists (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE Handle,
|
||
IN OUT UINTN *BufferSize,
|
||
OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function registers a function which will be called when specified actions related to packages of
|
||
the specified type occur in the HII database. By registering a function, other HII-related drivers are
|
||
notified when specific package types are added, removed or updated in the HII database.
|
||
Each driver or application which registers a notification should use
|
||
EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() before exiting.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param PackageType Specifies the package type of the packages to
|
||
list or EFI_HII_PACKAGE_TYPE_ALL for all packages
|
||
to be listed.
|
||
@param PackageGuid If PackageType is EFI_HII_PACKAGE_TYPE_GUID, then
|
||
this is the pointer to the GUID which must match
|
||
the Guid field of
|
||
EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise, it must
|
||
be NULL.
|
||
@param PackageNotifyFn Points to the function to be called when the
|
||
event specified by
|
||
NotificationType occurs.
|
||
@param NotifyType Describes the types of notification which this
|
||
function will be receiving.
|
||
@param NotifyHandle Points to the unique handle assigned to the
|
||
registered notification. Can be used in
|
||
EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify()
|
||
to stop notifications.
|
||
|
||
@retval EFI_SUCCESS Notification registered successfully.
|
||
@retval EFI_OUT_OF_RESOURCES Unable to allocate necessary data structures
|
||
@retval EFI_INVALID_PARAMETER NotifyHandle is NULL.
|
||
@retval EFI_INVALID_PARAMETER PackageGuid is not NULL when PackageType is not
|
||
EFI_HII_PACKAGE_TYPE_GUID.
|
||
@retval EFI_INVALID_PARAMETER PackageGuid is NULL when PackageType is
|
||
EFI_HII_PACKAGE_TYPE_GUID.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiRegisterPackageNotify (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN UINT8 PackageType,
|
||
IN CONST EFI_GUID *PackageGuid,
|
||
IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
|
||
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
|
||
OUT EFI_HANDLE *NotifyHandle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Removes the specified HII database package-related notification.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param NotifyHandle The handle of the notification function being
|
||
unregistered.
|
||
|
||
@retval EFI_SUCCESS Notification is unregistered successfully.
|
||
@retval EFI_INVALID_PARAMETER The Handle is invalid.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiUnregisterPackageNotify (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN EFI_HANDLE NotificationHandle
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This routine retrieves an array of GUID values for each keyboard layout that
|
||
was previously registered in the system.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param KeyGuidBufferLength On input, a pointer to the length of the keyboard
|
||
GUID buffer. On output, the length of the handle
|
||
buffer that is required for the handles found.
|
||
@param KeyGuidBuffer An array of keyboard layout GUID instances
|
||
returned.
|
||
|
||
@retval EFI_SUCCESS KeyGuidBuffer was updated successfully.
|
||
@retval EFI_BUFFER_TOO_SMALL The KeyGuidBufferLength parameter indicates
|
||
that KeyGuidBuffer is too small to support the
|
||
number of GUIDs. KeyGuidBufferLength is
|
||
updated with a value that will enable the data to
|
||
fit.
|
||
@retval EFI_INVALID_PARAMETER The KeyGuidBuffer or KeyGuidBufferLength was
|
||
NULL.
|
||
@retval EFI_NOT_FOUND There was no keyboard layout.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiFindKeyboardLayouts (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN OUT UINT16 *KeyGuidBufferLength,
|
||
OUT EFI_GUID *KeyGuidBuffer
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This routine retrieves the requested keyboard layout. The layout is a physical description of the keys
|
||
on a keyboard and the character(s) that are associated with a particular set of key strokes.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param KeyGuid A pointer to the unique ID associated with a
|
||
given keyboard layout. If KeyGuid is NULL then
|
||
the current layout will be retrieved.
|
||
@param KeyboardLayoutLength On input, a pointer to the length of the
|
||
KeyboardLayout buffer. On output, the length of
|
||
the data placed into KeyboardLayout.
|
||
@param KeyboardLayout A pointer to a buffer containing the retrieved
|
||
keyboard layout.
|
||
|
||
@retval EFI_SUCCESS The keyboard layout was retrieved successfully.
|
||
@retval EFI_NOT_FOUND The requested keyboard layout was not found.
|
||
@retval EFI_INVALID_PARAMETER The KeyboardLayout or KeyboardLayoutLength was
|
||
NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetKeyboardLayout (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN CONST EFI_GUID *KeyGuid,
|
||
IN OUT UINT16 *KeyboardLayoutLength,
|
||
OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This routine sets the default keyboard layout to the one referenced by KeyGuid. When this routine
|
||
is called, an event will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
|
||
group type. This is so that agents which are sensitive to the current keyboard layout being changed
|
||
can be notified of this change.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param KeyGuid A pointer to the unique ID associated with a
|
||
given keyboard layout.
|
||
|
||
@retval EFI_SUCCESS The current keyboard layout was successfully set.
|
||
@retval EFI_NOT_FOUND The referenced keyboard layout was not found, so
|
||
action was taken.
|
||
@retval EFI_INVALID_PARAMETER The KeyGuid was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiSetKeyboardLayout (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN CONST EFI_GUID *KeyGuid
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
Return the EFI handle associated with a package list.
|
||
|
||
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
|
||
instance.
|
||
@param PackageListHandle An EFI_HII_HANDLE that corresponds to the desired
|
||
package list in the HIIdatabase.
|
||
@param DriverHandle On return, contains the EFI_HANDLE which was
|
||
registered with the package list in
|
||
NewPackageList().
|
||
|
||
@retval EFI_SUCCESS The DriverHandle was returned successfully.
|
||
@retval EFI_INVALID_PARAMETER The PackageListHandle was not valid or
|
||
DriverHandle was NULL.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetPackageListHandle (
|
||
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
||
IN EFI_HII_HANDLE PackageListHandle,
|
||
OUT EFI_HANDLE *DriverHandle
|
||
)
|
||
;
|
||
|
||
//
|
||
// EFI_HII_CONFIG_ROUTING_PROTOCOL interfaces
|
||
//
|
||
|
||
|
||
/**
|
||
This function allows a caller to extract the current configuration
|
||
for one or more named elements from one or more drivers.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param Request A null-terminated Unicode string in
|
||
<MultiConfigRequest> format.
|
||
@param Progress On return, points to a character in the Request
|
||
string. Points to the string's null terminator if
|
||
request was successful. Points to the most recent
|
||
& before the first failing name / value pair (or
|
||
the beginning of the string if the failure is in
|
||
the first name / value pair) if the request was
|
||
not successful.
|
||
@param Results Null-terminated Unicode string in
|
||
<MultiConfigAltResp> format which has all values
|
||
filled in for the names in the Request string.
|
||
String to be allocated by the called function.
|
||
|
||
@retval EFI_SUCCESS The Results string is filled with the values
|
||
corresponding to all requested names.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the parts of the
|
||
results that must be stored awaiting possible
|
||
future protocols.
|
||
@retval EFI_NOT_FOUND Routing data doesn<73><6E>t match any known driver.
|
||
Progress set to the <20><>G<EFBFBD><47> in <20><>GUID<49><44> of the
|
||
routing header that doesn<73><6E>t match. Note: There
|
||
is no requirement that all routing data
|
||
be validated before any configuration extraction.
|
||
@retval EFI_INVALID_PARAMETER For example, passing in a NULL for the Request
|
||
parameter would result in this type of error. The
|
||
Progress parameter is set to NULL.
|
||
@retval EFI_INVALID_PARAMETER Illegal syntax. Progress set to most recent &
|
||
before the error or the beginning of the string.
|
||
@retval EFI_INVALID_PARAMETER Unknown name. Progress points to the & before the
|
||
name in question.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiConfigRoutingExtractConfig (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
IN CONST EFI_STRING Request,
|
||
OUT EFI_STRING *Progress,
|
||
OUT EFI_STRING *Results
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function allows the caller to request the current configuration for the
|
||
entirety of the current HII database and returns the data in a null-terminated Unicode string.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param Results Null-terminated Unicode string in
|
||
<MultiConfigAltResp> format which has all values
|
||
filled in for the names in the Request string.
|
||
String to be allocated by the called function.
|
||
De-allocation is up to the caller.
|
||
|
||
@retval EFI_SUCCESS The Results string is filled with the values
|
||
corresponding to all requested names.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the parts of the
|
||
results that must be stored awaiting possible
|
||
future protocols.
|
||
@retval EFI_INVALID_PARAMETER For example, passing in a NULL for the Results
|
||
parameter would result in this type of error.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiConfigRoutingExportConfig (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
OUT EFI_STRING *Results
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This function processes the results of processing forms and routes it to the
|
||
appropriate handlers or storage.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param Configuration A null-terminated Unicode string in
|
||
<MulltiConfigResp> format.
|
||
@param Progress A pointer to a string filled in with the offset
|
||
of the most recent & before the first failing
|
||
name / value pair (or the beginning of the string
|
||
if the failure is in the first name / value pair)
|
||
or the terminating NULL if all was successful.
|
||
|
||
@retval EFI_SUCCESS The results have been distributed or are awaiting
|
||
distribution.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the parts of the
|
||
results that must be stored awaiting possible
|
||
future protocols.
|
||
@retval EFI_INVALID_PARAMETER Passing in a NULL for the Configuration parameter
|
||
would result in this type of error.
|
||
@retval EFI_NOT_FOUND Target for the specified routing data was not
|
||
found.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiConfigRoutingRoutConfig (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
IN CONST EFI_STRING Configuration,
|
||
OUT EFI_STRING *Progress
|
||
)
|
||
;
|
||
|
||
|
||
|
||
/**
|
||
This helper function is to be called by drivers to map configuration data stored
|
||
in byte array (<28><>block<63><6B>) formats such as UEFI Variables into current configuration strings.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param ConfigRequest A null-terminated Unicode string in
|
||
<ConfigRequest> format.
|
||
@param Block Array of bytes defining the block's
|
||
configuration.
|
||
@param BlockSize Length in bytes of Block.
|
||
@param Config Filled-in configuration string. String allocated
|
||
by the function. Returned only if call is
|
||
successful.
|
||
@param Progress A pointer to a string filled in with the offset
|
||
of the most recent & before the first failing
|
||
name/value pair (or the beginning of the string
|
||
if the failure is in the first name / value pair)
|
||
or the terminating NULL if all was successful.
|
||
|
||
@retval EFI_SUCCESS The request succeeded. Progress points to the
|
||
null terminator at the end of the ConfigRequest
|
||
string.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to allocate Config.
|
||
Progress points to the first character of
|
||
ConfigRequest.
|
||
@retval EFI_INVALID_PARAMETER Passing in a NULL for the ConfigRequest or
|
||
Block parameter would result in this type of
|
||
error. Progress points to the first character of
|
||
ConfigRequest.
|
||
@retval EFI_NOT_FOUND Target for the specified routing data was not
|
||
found. Progress points to the <20><>G<EFBFBD><47> in <20><>GUID<49><44> of
|
||
the errant routing data.
|
||
@retval EFI_DEVICE_ERROR Block not large enough. Progress undefined.
|
||
@retval EFI_INVALID_PARAMETER Encountered non <BlockName> formatted string.
|
||
Block is left updated and Progress points at
|
||
the <20><>&<26><> preceding the first non-<BlockName>.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiBlockToConfig (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
IN CONST EFI_STRING ConfigRequest,
|
||
IN CONST UINT8 *Block,
|
||
IN CONST UINTN BlockSize,
|
||
OUT EFI_STRING *Config,
|
||
OUT EFI_STRING *Progress
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This helper function is to be called by drivers to map configuration strings
|
||
to configurations stored in byte array (<28><>block<63><6B>) formats such as UEFI Variables.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param ConfigResp A null-terminated Unicode string in <ConfigResp>
|
||
format.
|
||
@param Block A possibly null array of bytes representing the
|
||
current block. Only bytes referenced in the
|
||
ConfigResp string in the block are modified. If
|
||
this parameter is null or if the *BlockSize
|
||
parameter is (on input) shorter than required by
|
||
the Configuration string, only the BlockSize
|
||
parameter is updated and an appropriate status
|
||
(see below) is returned.
|
||
@param BlockSize The length of the Block in units of UINT8. On
|
||
input, this is the size of the Block. On output,
|
||
if successful, contains the index of the last
|
||
modified byte in the Block.
|
||
@param Progress On return, points to an element of the ConfigResp
|
||
string filled in with the offset of the most
|
||
recent '&' before the first failing name / value
|
||
pair (or the beginning of the string if the
|
||
failure is in the first name / value pair) or
|
||
the terminating NULL if all was successful.
|
||
|
||
@retval EFI_SUCCESS The request succeeded. Progress points to the
|
||
null terminator at the end of the ConfigResp
|
||
string.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to allocate Config.
|
||
Progress points to the first character of
|
||
ConfigResp.
|
||
@retval EFI_INVALID_PARAMETER Passing in a NULL for the ConfigResp or
|
||
Block parameter would result in this type of
|
||
error. Progress points to the first character of
|
||
ConfigResp.
|
||
@retval EFI_NOT_FOUND Target for the specified routing data was not
|
||
found. Progress points to the <20><>G<EFBFBD><47> in <20><>GUID<49><44> of
|
||
the errant routing data.
|
||
@retval EFI_INVALID_PARAMETER Encountered non <BlockName> formatted name /
|
||
value pair. Block is left updated and
|
||
Progress points at the <20><>&<26><> preceding the first
|
||
non-<BlockName>.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiConfigToBlock (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
IN CONST EFI_STRING ConfigResp,
|
||
IN OUT UINT8 *Block,
|
||
IN OUT UINTN *BlockSize,
|
||
OUT EFI_STRING *Progress
|
||
)
|
||
;
|
||
|
||
|
||
/**
|
||
This helper function is to be called by drivers to extract portions of
|
||
a larger configuration string.
|
||
|
||
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL
|
||
instance.
|
||
@param Configuration A null-terminated Unicode string in
|
||
<MultiConfigAltResp> format.
|
||
@param Guid A pointer to the GUID value to search for in the
|
||
routing portion of the ConfigResp string when
|
||
retrieving the requested data. If Guid is NULL,
|
||
then all GUID values will be searched for.
|
||
@param Name A pointer to the NAME value to search for in the
|
||
routing portion of the ConfigResp string when
|
||
retrieving the requested data. If Name is NULL,
|
||
then all Name values will be searched for.
|
||
@param DevicePath A pointer to the PATH value to search for in the
|
||
routing portion of the ConfigResp string when
|
||
retrieving the requested data. If DevicePath is
|
||
NULL, then all DevicePath values will be
|
||
searched for.
|
||
@param AltCfgId A pointer to the ALTCFG value to search for in
|
||
the routing portion of the ConfigResp string
|
||
when retrieving the requested data. If this
|
||
parameter is NULL, then the current setting will
|
||
be retrieved.
|
||
@param AltCfgResp A pointer to a buffer which will be allocated by
|
||
the function which contains the retrieved string
|
||
as requested. This buffer is only allocated if
|
||
the call was successful.
|
||
|
||
@retval EFI_SUCCESS The request succeeded. The requested data was
|
||
extracted and placed in the newly allocated
|
||
AltCfgResp buffer.
|
||
@retval EFI_OUT_OF_RESOURCES Not enough memory to allocate AltCfgResp.
|
||
@retval EFI_INVALID_PARAMETER Any parameter is invalid.
|
||
@retval EFI_NOT_FOUND Target for the specified routing data was not
|
||
found.
|
||
|
||
**/
|
||
EFI_STATUS
|
||
EFIAPI
|
||
HiiGetAltCfg (
|
||
IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
|
||
IN CONST EFI_STRING Configuration,
|
||
IN CONST EFI_GUID *Guid,
|
||
IN CONST EFI_STRING Name,
|
||
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||
IN CONST UINT16 *AltCfgId,
|
||
OUT EFI_STRING *AltCfgResp
|
||
)
|
||
;
|
||
|
||
|
||
//
|
||
// Global variables
|
||
//
|
||
extern EFI_EVENT gHiiKeyboardLayoutChanged;
|
||
|
||
#include "R8Lib.h"
|
||
|
||
#endif
|