summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Protocol/HiiDatabase.h
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-21 14:41:31 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-21 14:41:31 +0000
commit7d582d6b499ed30268da033cc17fbde6e7b02a9d (patch)
treea875f20c0c31a6f87e92787e2816497bc4dd1a80 /MdePkg/Include/Protocol/HiiDatabase.h
parent93e3992d1ea50fb30c48f498d257d4e66252dd9b (diff)
downloadedk2-platforms-7d582d6b499ed30268da033cc17fbde6e7b02a9d.tar.xz
UEFI HII: Merge UEFI HII support changes from branch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4600 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Include/Protocol/HiiDatabase.h')
-rw-r--r--MdePkg/Include/Protocol/HiiDatabase.h1731
1 files changed, 43 insertions, 1688 deletions
diff --git a/MdePkg/Include/Protocol/HiiDatabase.h b/MdePkg/Include/Protocol/HiiDatabase.h
index a100a6bba8..75245c11cd 100644
--- a/MdePkg/Include/Protocol/HiiDatabase.h
+++ b/MdePkg/Include/Protocol/HiiDatabase.h
@@ -16,1456 +16,12 @@
#ifndef __HII_DATABASE_H__
#define __HII_DATABASE_H__
-#error "UEFI 2.1 HII is not fully implemented for now, Please don't include this file now."
-
#define EFI_HII_DATABASE_PROTOCOL_GUID \
{ 0xef9fc172, 0xa1b2, 0x4693, { 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } }
typedef struct _EFI_HII_DATABASE_PROTOCOL EFI_HII_DATABASE_PROTOCOL;
-//
-// ConfigurationS of HII.
-//
-#define GLYPH_WIDTH 8
-#define GLYPH_HEIGHT 19
-
-/**
-
- Each package starts with a header, as defined above, which
- indicates the size and type of the package. When added to a
- pointer pointing to the start of the header, Length points at
- the next package. The package lists form a package list when
- concatenated together and terminated with an
- EFI_HII_PACKAGE_HEADER with a Type of EFI_HII_PACKAGE_END. The
- type EFI_HII_PACKAGE_TYPE_GUID is used for vendor-defined HII
- packages, whose contents are determined by the Guid. The range
- of package types starting with EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN
- through EFI_HII_PACKAGE_TYPE_SYSTEM_END are reserved for system
- firmware implementers.
-
- @param Length The size of the package in bytes.
-
- @param Type The package type. See EFI_HII_PACKAGE_TYPE_x,
- below.
-
- @param Data The package data, the format of which is
- determined by Type.
-
-**/
-typedef struct {
- UINT32 Length:24;
- UINT32 Type:8;
- // UINT8 Data[...];
-} EFI_HII_PACKAGE_HEADER;
-
-//
-// EFI_HII_PACKAGE_TYPE_x.
-//
-#define EFI_HII_PACKAGE_TYPE_ALL 0x00
-#define EFI_HII_PACKAGE_TYPE_GUID 0x01
-#define EFI_HII_PACKAGE_FORM_CONFIG 0x02
-#define EFI_HII_PACKAGE_FORM_APP 0x03
-#define EFI_HII_PACKAGE_STRINGS 0x04
-#define EFI_HII_PACKAGE_FONTS 0x05
-#define EFI_HII_PACKAGE_IMAGES 0x06
-#define EFI_HII_PACKAGE_SIMPLE_FONTS 0x07
-#define EFI_HII_PACKAGE_DEVICE_PATH 0x08
-#define EFI_HII_PACKAGE_END 0x09
-#define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0
-#define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF
-
-
-/**
-
- This header uniquely identifies the package list.and is placed
- in front of a list of packages. Package lists with the same
- PackageListGuid value should contain the same data set. Updated
- versions should have updated GUIDs.
-
- @param PackageListGuid The unique identifier applied to the
- list of packages which follows.
-
-
- @param PackageLength The size of the package list (in
- bytes), including the header.
-
-**/
-typedef struct {
- EFI_GUID PackageListGuid;
- UINT32 PackagLength;
-} EFI_HII_PACKAGE_LIST_HEADER;
-
-/**
-
- The fonts must be presented in Unicode sort order. That is,
- the primary sort key is the UnicodeWeight and the secondary
- sort key is the SurrogateWeight. It is up to developers who
- manage fonts to choose efficient mechanisms for accessing
- fonts. The contiguous presentation can easily be used because
- narrow and wide glyphs are not intermixed, so a binary search
- is possible (hence the requirement that the glyphs be sorted
- by weight).
-
- @param Header The header contains a Length and Type field.
- In the case of a font package, the type will
- be EFI_HII_PACKAGE_SIMPLE_FONTS and the length
- will be the total size of the font package
- including the size of the narrow and wide
- glyphs. See EFI_HII_PACKAGE_HEADER.
-
- @param NumberOfNarrowGlyphs The number of NarrowGlyphs that
- are included in the font package.
-
- @param NumberOfWideGlyphs The number of WideGlyphs that are
- included in the font package.
-
- @param NarrowGlyphs An array of EFI_NARROW_GLYPH entries.
- The number of entries is specified by
- NumberOfNarrowGlyphs.
-
- @param WideGlyphs An array of EFI_WIDE_GLYPH entries. The
- number of entries is specified by
- NumberOfWideGlyphs. To calculate the
- offset of WideGlyphs, use the offset of
- NarrowGlyphs and add the size of
- EFI_NARROW_GLYPH multiplied by the
- NumberOfNarrowGlyphs.
-
-*/
-typedef struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR {
- EFI_HII_PACKAGE_HEADER Header;
- UINT16 NumberOfNarrowGlyphs;
- UINT16 NumberOfWideGlyphs;
- // EFI_NARROW_GLYPH NarrowGlyphs[];
- // EFI_WIDE_GLYPH WideGlyphs[];
-} EFI_HII_SIMPLE_FONT_PACKAGE_HDR;
-
-//
-// Contents of EFI_NARROW_GLYPH.Attributes
-//
-#define EFI_GLYPH_NON_SPACING 0x01
-#define EFI_GLYPH_WIDE 0x02
-
-/**
-
- Glyphs are represented by two structures, one each for the two
- sizes of glyphs. The narrow glyph (EFI_NARROW_GLYPH) is the
- normal glyph used for text display.
-
- @param UnicodeWeight The Unicode representation of the glyph.
- The term weight is the technical term
- for a character value.
-
- @param Attributes The data element containing the glyph
- definitions; see Related Definitions
- below.
-
- @param GlyphCol1 The column major glyph representation of the
- character. Bits with values of one
- indicate that the corresponding pixel is to
- be on when normally displayed; those with
- zero are off.
-
-**/
-typedef struct {
- CHAR16 UnicodeWeight;
- UINT8 Attributes;
- UINT8 GlyphCol1[19];
-} EFI_NARROW_GLYPH;
-
-/**
-
- Glyphs are represented via the two structures, one each for the
- two sizes of glyphs. The wide glyph (EFI_WIDE_GLYPH) is large
- enough to display logographic characters.
-
- @param UnicodeWeight The Unicode representation of the glyph.
- The term weight is the technical term
- for a character value.
-
- @param Attributes The data element containing the glyph
- definitions; see Related Definitions in
- EFI_NARROW_GLYPH for attribute values.
-
- @param GlyphCol1, GlyphCol2 The column major glyph
- representation of the character.
- Bits with values of one indicate
- that the corresponding pixel is
- to be on when normally
- displayed; those with zero are
- off.
-
- @param Pad Ensures that sizeof(EFI_WIDE_GLYPH) is twice the
- sizeof(EFI_NARROW_GLYPH). The contents of Pad must
- bezero.
-
-
-**/
-typedef struct {
- CHAR16 UnicodeWeight;
- UINT8 Attributes;
- UINT8 GlyphCol1[GLYPH_HEIGHT];
- UINT8 GlyphCol2[GLYPH_HEIGHT];
- UINT8 Pad[3];
-} EFI_WIDE_GLYPH;
-
-
-//
-// EFI_HII_FONT_STYLE
-//
-typedef UINT32 EFI_HII_FONT_STYLE;
-#define EFI_HII_FONT_STYLE_BOLD 0x00000001
-#define EFI_HII_FONT_STYLE_ITALIC 0x00000002
-#define EFI_HII_FONT_STYLE_EMBOSS 0x00010000
-#define EFI_HII_FONT_STYLE_OUTLINE 0x00020000
-#define EFI_HII_FONT_STYLE_SHADOW 0x00040000
-#define EFI_HII_FONT_STYLE_UNDERLINE 0x00080000
-#define EFI_HII_FONT_STYLE_DBL_UNDER 0x00100000
-
-//
-// EFI_HII_GLYPH_BLOCK.BlockType
-//
-#define EFI_HII_GIBT_END 0x00
-#define EFI_HII_GIBT_GLYPH 0x10
-#define EFI_HII_GIBT_GLYPHS 0x11
-#define EFI_HII_GIBT_GLYPH_DEFAULT 0x12
-#define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13
-#define EFI_HII_GIBT_DUPLICATE 0x20
-#define EFI_HII_GIBT_SKIP2 0x21
-#define EFI_HII_GIBT_SKIP1 0x22
-#define EFI_HII_GIBT_DEFAULTS 0x23
-#define EFI_HII_GIBT_EXT1 0x30
-#define EFI_HII_GIBT_EXT2 0x31
-#define EFI_HII_GIBT_EXT4 0x32
-
-/**
-
- EFI_HII_GIBT_END block is found. When processing the glyph
- blocks, each block refers to the current character value
- (CharValueCurrent), which is initially set to one (1). Glyph
- blocks of an unknown type should be skipped. If they cannot be
- skipped, then processing halts.
-
-**/
-typedef struct _EFI_HII_GLYPH_BLOCK {
- UINT8 BlockType;
- UINT8 BlockBody[1];
-} EFI_HII_GLYPH_BLOCK;
-
-
-/**
-
- @param Width Width of the character or character cell, in
- pixels. For fixed-pitch fonts, this is the same
- as the advance.
-
- @param Height Height of the character or character cell, in
- pixels.
-
- @param OffsetX Offset to the horizontal edge of the character
- cell.
-
- @param OffsetY Offset to the vertical edge of the character
- cell.
-
- @param AdvanceX Number of pixels to advance to the right
- when moving from the origin of the current
- glyph to the origin of the next glyph.
-
-**/
-typedef struct _EFI_HII_GLYPH_INFO {
- UINT16 Width;
- UINT16 Height;
- INT16 OffsetX;
- INT16 OffsetY;
- INT16 AdvanceX;
-} EFI_HII_GLYPH_INFO;
-
-
-/**
-
- Changes the default cell information used for subsequent
- EFI_HII_GIBT_GLYPH_DEFAULT and EFI_HII_GIBT_GLYPHS_DEFAULT glyph
- blocks. The cell information described by Cell remains in effect
- until the next EFI_HII_GIBT_DEFAULTS is found. Prior to the
- first EFI_HII_GIBT_DEFAULTS block, the cell information in the
- fixed header are used.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_DEFAULTS.
-
- @param Cell The new default cell information which will be
- applied to all subsequent GLYPH_DEFAULT and
- GLYPHS_DEFAULT blocks.
-
-**/
-typedef struct _EFI_HII_GIBT_DEFAULTS_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- EFI_HII_GLYPH_INFO Cell;
-} EFI_HII_GIBT_DEFAULTS_BLOCK;
-
-
-/**
-
- Indicates that the glyph with character value CharValueCurrent
- has the same glyph as a previously defined character value and
- increments CharValueCurrent by one.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_DUPLICATE.
-
- @param CharValue The previously defined character value with
- the exact same glyph.
-
-**/
-typedef struct _EFI_HII_GIBT_DUPLICATE_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- CHAR16 CharValue;
-} EFI_HII_GIBT_DUPLICATE_BLOCK;
-
-
-/**
-
- Any glyphs with a character value greater than or equal to
- CharValueCurrent are empty.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_END.
-
-**/
-typedef struct _EFI_GLYPH_GIBT_END_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
-} EFI_GLYPH_GIBT_END_BLOCK;
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skipped.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_EXT1,
- EFI_HII_GIBT_EXT2 or EFI_HII_GIBT_EXT4.
-
- @param Length Size of the glyph block, in bytes.
-
-**/
-typedef struct _EFI_HII_GIBT_EXT1_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT8 BlockType2;
- UINT8 Length;
-} EFI_HII_GIBT_EXT1_BLOCK;
-
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skipped.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_EXT1,
- EFI_HII_GIBT_EXT2 or EFI_HII_GIBT_EXT4.
-
- @param Length Size of the glyph block, in bytes.
-
-**/
-typedef struct _EFI_HII_GIBT_EXT2_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT8 BlockType2;
- UINT16 Length;
-} EFI_HII_GIBT_EXT2_BLOCK;
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skipped.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_EXT1,
- EFI_HII_GIBT_EXT2 or EFI_HII_GIBT_EXT4.
-
- @param Length Size of the glyph block, in bytes.
-
-**/
-typedef struct _EFI_HII_GIBT_EXT4_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT8 BlockType2;
- UINT32 Length;
-} EFI_HII_GIBT_EXT4_BLOCK;
-
-
-/**
-
- This block provides the bitmap for the character with the value
- CharValueCurrent and increments CharValueCurrent by one. Each
- glyph contains a glyph width and height, a drawing offset,
- number of pixels to advance after drawing and then the encoded
- bitmap.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_GLYPH.
-
- @param Cell Contains the width and height of the encoded
- bitmap (Cell.Width and Cell.Height), the number
- of pixels (signed) right of the character cell
- origin where the left edge of the bitmap should
- be placed (Cell.OffsetX), the number of pixels
- above the character cell origin where the top
- edge of the bitmap should be placed
- (Cell.OffsetY) and the number of pixels (signed)
- to move right to find the origin for the next
- charactercell (Cell.AdvanceX).
-
- @param GlyphCount The number of glyph bitmaps.
-
- @param BitmapData The bitmap data specifies a series of
- pixels, one bit per pixel, left-to-right,
- top-tobottom. Each glyph bitmap only
- encodes the portion of the bitmap enclosed
- by its character-bounding box, but the
- entire glyph is padded out to the nearest
- byte. The number of bytes per bitmap can
- be calculated as: ((Cell.Width + 7)/8) *
- Cell.Height.
-
-
-**/
-typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- EFI_HII_GLYPH_INFO Cell;
- UINT16 GlyphCount;
- UINT8 BitmapData[1];
-} EFI_HII_GIBT_GLYPH_BLOCK;
-
-/**
-
- Provides the bitmaps for the characters with the values
- CharValueCurrent through CharValueCurrent + Count -1 and
- increments CharValueCurrent by Count. These glyphs have
- identical cell information and the encoded bitmaps are exactly
- the same number of byes.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_GLYPHS.
-
- @param Cell Contains the width and height of the encoded
- bitmap (Cell.Width and Cell.Height), the
- number of pixels (signed) right of the
- character cell origin where the left edge of
- the bitmap should be placed (Cell.OffsetX),
- the number of pixels above the character cell
- origin where the top edge of the bitmap should
- be placed (Cell.OffsetY) and the number of
- pixels(signed) to move right to find the
- origin for the next character cell
- (Cell.AdvanceX).
-
- @param BitmapData The bitmap data specifies a series of
- pixels, one bit per pixel, left-to-right,
- top-tobottom, for each glyph. Each glyph
- bitmap only encodes the portion of the
- bitmap enclosed by its character-bounding
- box. The number of bytes per bitmap can be
- calculated as: ((Cell.Width + 7)/8) *
- Cell.Height.
-
-**/
-typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- EFI_HII_GLYPH_INFO Cell;
- UINT8 BitmapData[1];
-} EFI_HII_GIBT_GLYPHS_BLOCK;
-
-/**
-
- Provides the bitmap for the character with the value
- CharValueCurrent and increments CharValueCurrent by 1. This
- glyph uses the default cell information. The default cell
- information is found in the font header or the most recently
- processed EFI_HII_GIBT_DEFAULTS.
-
- @param Header Standard glyph block header, where
- Header.BlockType = EFI_HII_GIBT_GLYPH_DEFAULT.
-
- @param BitmapData The bitmap data specifies a series of
- pixels, one bit per pixel, left-to-right,
- top-tobottom. Each glyph bitmap only
- encodes the portion of the bitmap enclosed
- by its character-bounding box. The number
- of bytes per bitmap can be calculated as:
- ((Global.Cell.Width + 7)/8) *
- Global.Cell.Height.
-
-**/
-typedef struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT8 BitmapData[1];
-} EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK;
-
-
-
-
-/**
-
- Provides the bitmaps for the characters with the values
- CharValueCurrent through CharValueCurrent + Count -1 and
- increments CharValueCurrent by Count. These glyphs use the
- default cell information and the encoded bitmaps have exactly
- the same number of byes.
-
- @param Header Standard glyph block header, where
- Header.BlockType =
- EFI_HII_GIBT_GLYPHS_DEFAULT.
-
- @param Count Number of glyphs in the glyph block.
-
- @param BitmapData The bitmap data specifies a series of
- pixels, one bit per pixel, left-to-right,
- top-tobottom, for each glyph. Each glyph
- bitmap only encodes the portion of the
- bitmap enclosed by its character-bounding
- box. The number of bytes per bitmap can be
- calculated as: ((Global.Cell.Width + 7)/8)
- Global.Cell.Height.
-
-**/
-typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT16 Count;
- UINT8 BitmapData[1];
-} EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;
-
-/**
-
- Increments the current character value CharValueCurrent by the
- number specified.
-
- @param Header Standard glyph block header, where BlockType =
- EFI_HII_GIBT_SKIP1 or EFI_HII_GIBT_SKIP2.
-
- @param SkipCount The unsigned 8- or 16-bit value to add to
- CharValueCurrent.
-
-**/
-typedef struct _EFI_HII_GIBT_SKIP2_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT16 SkipCount;
-} EFI_HII_GIBT_SKIP2_BLOCK;
-
-
-/**
-
- Increments the current character value CharValueCurrent by the
- number specified.
-
- @param Header Standard glyph block header, where BlockType =
- EFI_HII_GIBT_SKIP1 or EFI_HII_GIBT_SKIP2.
-
- @param SkipCount The unsigned 8- or 16-bit value to add to
- CharValueCurrent.
-
-**/
-typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {
- EFI_HII_GLYPH_BLOCK Header;
- UINT8 SkipCount;
-} EFI_HII_GIBT_SKIP1_BLOCK;
-
-
-/**
-
- This package is created by NewPackageList() when the package
- list is first added to the HII database by locating the
- EFI_DEVICE_PATH_PROTOCOL attached to the driver handle passed in
- to that function.
-
-**/
-typedef EFI_DEVICE_PATH_PROTOCOL EFI_HII_DEVICE_PATH_PACKAGE_HDR;
-
-
-/**
-
- This is a free-form package type designed to allow extensibility
- by allowing the format to be specified using Guid.
-
- @param Guid Identifier which describes the remaining data
- within the package.
-
-**/
-typedef struct _EFI_HII_GUID_PACKAGE_HDR {
- EFI_GUID Guid;
-} EFI_HII_GUID_PACKAGE_HDR;
-
-
-/**
-
- The Strings package record describes the mapping between string
- identifiers and the actual text of the strings themselves. The
- package consists of three parts: a fixed header, the string
- information and the font information.
-
- @param Header The standard package header, where Header.Type
- = EFI_HII_PACKAGE_STRINGS.
-
- @param HdrSize Size of this header.
-
- @param StringInfoOffset Offset, relative to the start of
- this header, of the string information.
-
- @param LanguageWindow Specifies the default values placed in
- the static and dynamic windows before
- processing each SCSU-encoded strings.
-
-
- @param LanguageName String identifier within the current
- string package of the full name of the
- language specified by Language. Language
- Language of the strings, as specified by
- RFC 3066.
-
-**/
-typedef struct _EFI_HII_STRING_PACKAGE_HDR {
- EFI_HII_PACKAGE_HEADER Header;
- UINT32 HdrSize;
- UINT32 StringInfoOffset;
- CHAR16 LanguageWindow[16];
- EFI_STRING_ID LanguageName;
- CHAR8 Language[1];
-} EFI_HII_STRING_PACKAGE_HDR;
-
-
-
-/**
-
- The fixed header consists of a standard record header and then
- the character values in this section, the flags (including the
- encoding method) and the offsets of the glyph information, the
- glyph bitmaps and the character map.
-
- @param Header The standard package header, where Header.Size
- EFI_HII_PACKAGE_FONTS.
-
- @param HdrSize Size of this header.
-
- @param GlyphInfoOffset The offset, relative to the start of
- this header, of a series of
- variable-length glyph blocks, each
- describing information about the
- bitmap associated with a glyph.
-
- @param Cell This contains the measurement of the widest and
- tallest characters in the font (Cell.Width and
- Cell.Height). It also contains the offset to the
- horizontal and vertical origin point of the
- character cell (Cell.OffsetX and Cell.OffsetY).
- Finally, it contains the default AdvanceX. The
- individual glyph's OffsetX and OffsetY value is
- added to this position to determine where to
- draw the top-left pixel of the character's
- glyph. The character glyph's AdvanceX is added
- to this position to determine the origin point
- for the next character.
-
- @param FontStyle The design style of the font, 1 bit per
- style. See EFI_HII_FONT_STYLE.
-
- @param FontFamily The null-terminated string with the name
- of the font family to which the font
- belongs.
-
-**/
-typedef struct _EFI_HII_FONT_PACKAGE_HDR {
- EFI_HII_PACKAGE_HEADER Header;
- UINT32 HdrSize;
- UINT32 GlyphBlockOffset;
- EFI_HII_GLYPH_INFO Cell;
- EFI_HII_FONT_STYLE FontStyle;
- CHAR16 FontFamily[1];
-} EFI_HII_FONT_PACKAGE_HDR;
-
-
-//
-// EFI_HII_STRING_BLOCK.BlockType
-//
-#define FI_HII_SIBT_END 0x00
-#define EFI_HII_SIBT_STRING_SCSU 0x10
-#define EFI_HII_SIBT_STRING_SCSU_FONT 0x11
-#define EFI_HII_SIBT_STRINGS_SCSU 0x12
-#define EFI_HII_SIBT_STRINGS_SCSU_FONT 0x13
-#define EFI_HII_SIBT_STRING_UCS2 0x14
-#define EFI_HII_SIBT_STRING_UCS2_FONT 0x15
-#define EFI_HII_SIBT_STRINGS_UCS2 0x16
-#define EFI_HII_SIBT_STRINGS_UCS2_FONT 0x17
-#define EFI_HII_SIBT_DUPLICATE 0x20
-#define EFI_HII_SIBT_SKIP2 0x21
-#define EFI_HII_SIBT_SKIP1 0x22
-#define EFI_HII_SIBT_EXT1 0x30
-#define EFI_HII_SIBT_EXT2 0x31
-#define EFI_HII_SIBT_EXT4 0x32
-#define EFI_HII_SIBT_FONT 0x40
-
-/**
-
- String blocks specify the text and font for the current string
- identifier and increment to the next string identifier.
-**/
-typedef struct {
- UINT8 BlockType;
- UINT8 BlockBody[1];
-} EFI_HII_STRING_BLOCK;
-
-
-/**
-
- Indicates that the string with string identifier
- StringIdCurrent is the same as a previously defined string and
- increments StringIdCurrent by one.
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_DUPLICATE.
-
- @param StringId The string identifier of a previously
- defined string with the exact same string
- text. Description
-
-
-**/
-typedef struct _EFI_HII_SIBT_DUPLICATE_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- EFI_STRING_ID StringId;
-} EFI_HII_SIBT_DUPLICATE_BLOCK;
-
-/**
-
- Any strings with a string identifier greater than or equal to
- StringIdCurrent are empty.
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_END.
-
-**/
-typedef struct _EFI_HII_SIBT_END_BLOCK {
- EFI_HII_STRING_BLOCK Header;
-} EFI_HII_SIBT_END_BLOCK;
-
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skip
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_EXT1,
- EFI_HII_SIBT_EXT2 or EFI_HII_SIBT_EXT4.
-
- @param Length Size of the string block, in bytes.
-
-**/
-typedef struct _EFI_HII_SIBT_EXT1_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 BlockType2;
- UINT8 Length;
-} EFI_HII_SIBT_EXT1_BLOCK;
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skip
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_EXT1,
- EFI_HII_SIBT_EXT2 or EFI_HII_SIBT_EXT4.
-
- @param Length Size of the string block, in bytes.
-
-**/
-typedef struct _EFI_HII_SIBT_EXT2_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 BlockType2;
- UINT16 Length;
-} EFI_HII_SIBT_EXT2_BLOCK;
-
-/**
-
- These are reserved for future expansion, with length bytes
- included so that they can be easily skip
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_EXT1,
- EFI_HII_SIBT_EXT2 or EFI_HII_SIBT_EXT4.
-
- @param Length Size of the string block, in bytes.
-
-**/
-typedef struct _EFI_HII_SIBT_EXT4_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 BlockType2;
- UINT32 Length;
-} EFI_HII_SIBT_EXT4_BLOCK;
-
-/**
-
- Associates a font identifier FontId with a font name FontName,
- size FontSize and style FontStyle. This font identifier may be
- used with the string blocks. The font identifier 0 is the
- default font for those string blocks which do not specify a font
- identifier.
-
- @param Header Standard extended header, where
- Header.BlockType = EFI_HII_SIBT_FONT.
-
- @param FontId Font identifier, which must be unique within
- the font package.
-
- @param FontSize Character cell size, in pixels, of the font.
-
- @param FontStyle Font style.
-
- @param FontName Null-terminated font family name.
-
-**/
-typedef struct _EFI_HII_SIBT_FONT_BLOCK {
- EFI_HII_SIBT_EXT2_BLOCK Header;
- UINT8 FontId;
- UINT16 FontSize;
- EFI_HII_FONT_STYLE FontStyle;
- CHAR16 FontName[1];
-} EFI_HII_SIBT_FONT_BLOCK;
-
-/**
-
- Increments the current string identifier StringIdCurrent by the
- number specified.
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_SKIP1.
-
- @param SkipCount The unsigned 8-bit value to add to
- StringIdCurrent.
-
-**/
-typedef struct _EFI_HII_SIBT_SKIP1_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 SkipCount;
-} EFI_HII_SIBT_SKIP1_BLOCK;
-
-/**
-
- Increments the current string identifier StringIdCurrent by
- the number specified.
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_SKIP2.
-
- @param SkipCount The unsigned 16-bit value to add to
- StringIdCurrent.
-
-**/
-typedef struct _EFI_HII_SIBT_SKIP2_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT16 SkipCount;
-} EFI_HII_SIBT_SKIP2_BLOCK;
-
-/**
-
- This string block provides the SCSU-encoded text for the string
- in the default font with string identifier StringIdCurrent and
- increments StringIdCurrent by one.
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRING_SCSU.
-
- @param StringText The string text is a null-terminated
- string, which is assigned to the string
- identifier StringIdCurrent.
-
-**/
-typedef struct _EFI_HII_SIBT_STRING_SCSU_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 StringText[1];
-} EFI_HII_SIBT_STRING_SCSU_BLOCK;
-
-
-/**
-
- This string block provides the SCSU-encoded text for the string
- in the font specified by FontIdentifier with string identifier
- StringIdCurrent and increments StringIdCurrent by one.
-
- @param Header Standard string block header, where
- Header.BlockType = EFI_HII_SIBT_STRING_SCSU_FONT.
-
- @param FontIdentifier The identifier of the font to be used
- as the starting font for the entire
- string. The identifier must either be
- 0 for the default font or an
- identifier previously specified by an
- EFI_HII_SIBT_FONT block. Any string
- characters that deviates from this
- font family, size or style must
- provide an explicit control character.
-
- @param StringText The string text is a null-terminated
- encoded string, which is assigned to the
- string identifier StringIdCurrent.
-
-
-**/
-typedef struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 FontIdentifier;
- UINT8 StringText[1];
-} EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK;
-
-
-/**
-
- This string block provides the SCSU-encoded text for StringCount
- strings which have the default font and which have sequential
- string identifiers. The strings are assigned the identifiers,
- starting with StringIdCurrent and continuing through
- StringIdCurrent + StringCount ??C 1. StringIdCurrent is
- incremented by StringCount.
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRINGS_SCSU.
-
- @param StringCount Number of strings in StringText.
-
- @param StringText The strings, where each string is a
- null-terminated encoded string.
-
-**/
-typedef struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT16 StringCount;
- UINT8 StringText[1];
-} EFI_HII_SIBT_STRINGS_SCSU_BLOCK;
-
-
-/**
-
- This string block provides the SCSU-encoded text for StringCount
- strings which have the font specified by FontIdentifier and
- which have sequential string identifiers. The strings are
- assigned the identifiers, starting with StringIdCurrent and
- continuing through StringIdCurrent + StringCount ??C 1.
- StringIdCurrent is incremented by StringCount.
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRINGS_SCSU_FONT.
-
- @param StringCount Number of strings in StringText.
-
- @param FontIdentifier The identifier of the font to be used
- as the starting font for the entire
- string. The identifier must either be
- 0 for the default font or an
- identifier previously specified by an
- EFI_HII_SIBT_FONT block. Any string
- characters that deviates from this
- font family, size or style must
- provide an explicit control character.
-
- @param StringText The strings, where each string is a
- null-terminated encoded string.
-
-**/
-typedef struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT16 StringCount;
- UINT8 FontIdentifier;
- UINT8 StringText[1];
-} EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK;
-
-
-/**
-
- This string block provides the UCS-2 encoded text for the string
- in the default font with string identifier StringIdCurrent and
- increments StringIdCurrent by one.
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRING_UCS2.
-
- @param StringText The string text is a null-terminated UCS-2
- string, which is assigned to the string
- identifier StringIdCurrent.
-
-**/
-typedef struct _EFI_HII_SIBT_STRING_UCS2_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- CHAR16 StringText[1];
-} EFI_HII_SIBT_STRING_UCS2_BLOCK;
-
-
-/**
-
- This string block provides the UCS-2 encoded text for the string
- in the font specified by FontIdentifier with string identifier
- StringIdCurrent and increments StringIdCurrent by one
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRING_UCS2_FONT.
-
- @param FontIdentifier The identifier of the font to be used
- as the starting font for the entire
- string. The identifier must either be
- 0 for the default font or an
- identifier previously specified by an
- EFI_HII_SIBT_FONT block. Any string
- characters that deviates from this
- font family, size or style must
- provide an explicit control character.
-
- @param StringText The string text is a null-terminated UCS-2
- string, which is assigned to the string
- identifier StringIdCurrent.
-
-**/
-typedef struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT8 FontIdentifier;
- CHAR16 StringText[1];
-} EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK;
-
-
-/**
-
- This string block provides the UCS-2 encoded text for the
- strings in the default font with string identifiers
- StringIdCurrent to StringIdCurrent + StringCount - 1 and
- increments StringIdCurrent by StringCount.
-
- @param Header Standard header where Header.BlockType =
- EFI_HII_SIBT_STRINGS_UCS2.
-
- @param StringCount Number of strings in StringText.
-
- @param StringText The string text is a series of
- null-terminated UCS-2 strings, which are
- assigned to the string identifiers
- StringIdCurrent.to StringIdCurrent +
- StringCount - 1.
-
-**/
-typedef struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK {
- EFI_HII_STRING_BLOCK Header;
- UINT16 StringCount;
- CHAR16 StringText[1];
-} EFI_HII_SIBT_STRINGS_UCS2_BLOCK;
-
-
-/**
-
- The fixed header consists of a standard record header and the
- offsets of the image and palette information.
-
- @param Header Standard package header, where Header.Type =
- EFI_HII_PACKAGE_IMAGES. ImageInfoOffset
- Offset, relative to this header, of the image
- information. If this is zero, then there are
- no images in the package.
-
- @param PaletteInfoOffset Offset, relative to this header, of
- the palette information. If this is
- zero, then there are no palettes in
- the image package.
-
-**/
-typedef struct _EFI_HII_IMAGE_PACKAGE_HDR {
- EFI_HII_PACKAGE_HEADER Header;
- UINT32 ImageInfoOffset;
- UINT32 PaletteInfoOffset;
-} EFI_HII_IMAGE_PACKAGE_HDR;
-
-
-//
-// EFI_HII_IMAGE_BLOCK
-//
-typedef struct _EFI_HII_IMAGE_BLOCK {
- UINT8 BlockType;
- UINT8 BlockBody[1];
-} EFI_HII_IMAGE_BLOCK;
-
-//
-// EFI_HII_IMAGE_BLOCK.BlockType.
-//
-#define EFI_HII_IIBT_END 0x00
-#define EFI_HII_IIBT_IMAGE_1BIT 0x10
-#define EFI_HII_IIBT_IMAGE_1BIT_TRANS 0x11
-#define EFI_HII_IIBT_IMAGE_4BIT 0x12
-#define EFI_HII_IIBT_IMAGE_4BIT_TRANS 0x13
-#define EFI_HII_IIBT_IMAGE_8BIT 0x14
-#define EFI_HII_IIBT_IMAGE_8BIT_TRANS 0x15
-#define EFI_HII_IIBT_IMAGE_24BIT 0x16
-#define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17
-#define EFI_HII_IIBT_IMAGE_JPEG 0x18
-#define EFI_HII_IIBT_DUPLICATE 0x20
-#define EFI_HII_IIBT_SKIP2 0x21
-#define EFI_HII_IIBT_SKIP1 0x22
-#define EFI_HII_IIBT_EXT1 0x30
-#define EFI_HII_IIBT_EXT2 0x31
-#define EFI_HII_IIBT_EXT4 0x32
-
-
-/**
-
- Any images with an image identifier greater than or equal to
- ImageIdCurrent are empty.
-
- @param Header Standard image block header, where
- Header.BlockType = EFI_HII_IIBT_END.
-
-**/
-typedef struct _EFI_HII_IIBT_END_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
-} EFI_HII_IIBT_END_BLOCK;
-
-
-/**
-
- Future extensions for image records which need a length-byte
- length use this prefix.
-
- @param Header Standard image block header, where
- Header.BlockType = EFI_HII_IIBT_EXT1,
- EFI_HII_IIBT_EXT2 or EFI_HII_IIBT_EXT4.
-
- @param Length Size of the image block, in bytes, including
- the image block header.
-
-**/
-typedef struct _EFI_HII_IIBT_EXT1_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 BlockType2;
- UINT8 Length;
-} EFI_HII_IIBT_EXT1_BLOCK;
-
-/**
-
- Future extensions for image records which need a length-byte
- length use this prefix.
-
- @param Header Standard image block header, where
- Header.BlockType = EFI_HII_IIBT_EXT1,
- EFI_HII_IIBT_EXT2 or EFI_HII_IIBT_EXT4.
-
- @param Length Size of the image block, in bytes, including
- the image block header.
-
-**/
-typedef struct _EFI_HII_IIBT_EXT2_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 BlockType2;
- UINT16 Length;
-} EFI_HII_IIBT_EXT2_BLOCK;
-
-/**
-
- Future extensions for image records which need a length-byte
- length use this prefix.
-
- @param Header Standard image block header, where
- Header.BlockType = EFI_HII_IIBT_EXT1,
- EFI_HII_IIBT_EXT2 or EFI_HII_IIBT_EXT4.
-
- @param Length Size of the image block, in bytes, including
- the image block header.
-
-**/
-typedef struct _EFI_HII_IIBT_EXT4_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 BlockType2;
- UINT32 Length;
-} EFI_HII_IIBT_EXT4_BL0CK;
-
-//
-// EFI_HII_IIBT_IMAGE_1BIT_BASE
-//
-typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BASE {
- UINT16 Width;
- UINT16 Height;
- // UINT8 Data[...];
-} EFI_HII_IIBT_IMAGE_1BIT_BASE;
-
-/**
-
- This record assigns the 1-bit-per-pixel bitmap data to the
- ImageIdCurrent identifier and increment ImageIdCurrent by one.
- The data in the EFI_HII_IMAGE_1BIT_TRANS structure is exactly
- the same as the EFI_HII_IMAGE_1BIT structure, the difference is
- how the data is treated. The bitmap pixel value 0 is the
- transparency value and will not be written to the
- screen. The bitmap pixel value 1 will be translated to the color
- specified by Palette.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_IMAGE_1BIT_TRANS.
-
- @param PaletteIndex Index of the palette in the palette
- information.
-
- @param Bitmap The bitmap specifies a series of pixels, one
- bit per pixel, left-to-right, top-to-bottom,
- and is padded out to the nearest byte. The
- number of bytes per bitmap can be calculated
- as: ((Width + 7)/8) * Height.
-
-**/
-typedef struct _EFI_HII_IBIT_IMAGE_1BIT_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 PaletteIndex;
- EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
-} EFI_HII_IIBT_IMAGE_1BIT_BLOCK;
-
-typedef EFI_HII_IIBT_IMAGE_1BIT_BLOCK EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK;
-
-
-//
-// EFI_HII_RGB_PIXEL
-//
-typedef struct _EFI_HII_RGB_PIXEL {
- UINT8 b;
- UINT8 g;
- UINT8 r;
-} EFI_HII_RGB_PIXEL;
-
-//
-// FI_HII_IIBT_IMAGE_24BIT_BASE
-//
-typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BASE {
- UINT16 Width;
- UINT16 Height;
- // EFI_HII_RGB_PIXEL Bitmap[...];
-} EFI_HII_IIBT_IMAGE_24BIT_BASE;
-
-/**
-
- This record assigns the 24-bit-per-pixel bitmap data to the
- ImageIdCurrent identifier and increment ImageIdCurrent by one.
- The image's upper left hand corner pixel is composed of the
- first three bitmap bytes. The first byte is the pixel????s blue
- component value, the next byte is the pixel????s green component
- value, and the third byte is the pixel's red component value
- (B,G,R). Each color component value can vary from 0x00 (color
- off) to 0xFF (color full on), allowing 16.8 millions colors that
- can be specified.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_IMAGE_24BIT. Bitmap The bitmap
- specifies a series of pixels, 24 bits per
- pixel, left-to-right, top-to-bottom. The
- number of bytes per bitmap can be calculated
- as: (Width * 3) * Height.
-
- @param Type See EFI_HII_RGB_PIXEL definition.
-
-**/
-typedef struct {
- EFI_HII_IMAGE_BLOCK Header;
- EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
-} EFI_HII_IIBT_IMAGE_24BIT_BLOCK;
-
-typedef EFI_HII_IIBT_IMAGE_24BIT_BLOCK EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK;
-
-
-
-//
-// EFI_HII_IIBT_IMAGE_4BIT_BASE
-//
-typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BASE {
- UINT16 Width;
- UINT16 Height;
- // UINT8 Data[...];
-} EFI_HII_IIBT_IMAGE_4BIT_BASE;
-
-/**
-
- This record assigns the 4-bit-per-pixel bitmap data to the
- ImageIdCurrent identifier using the specified palette and
- increment ImageIdCurrent by one. The image????s upper left hand
- corner pixel is the most significant nibble of the first bitmap
- byte.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_IMAGE_4BIT.
-
- @param PaletteIndex Index of the palette in the palette
- information.
-
- @param Bitmap The bitmap specifies a series of pixels, four
- bits per pixel, left-to-right, top-to-bottom,
- and is padded out to the nearest byte. The
- number of bytes per bitmap can be calculated
- as: ((Width + 1)/2) Height.
-
-**/
-typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 PaletteIndex;
- EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
-} EFI_HII_IIBT_IMAGE_4BIT_BLOCK;
-
-typedef EFI_HII_IIBT_IMAGE_4BIT_BLOCK EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK;
-
-
-
-//
-// EFI_HII_IIBT_IMAGE_8BIT_BASE
-//
-typedef struct _EFI_HII_IIBT_IMAGE_8BIT_BASE {
- UINT16 Width;
- UINT16 Height;
- // UINT8 Data[...];
-} EFI_HII_IIBT_IMAGE_8BIT_BASE;
-
-/**
-
- This record assigns the 8-bit-per-pixel bitmap data to the
- ImageIdCurrent identifier using the specified palette and
- increment ImageIdCurrent by one. The image????s upper left hand
- corner pixel is the first bitmap byte.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_IMAGE_8BIT.
-
- @param PaletteIndex Index of the palette in the palette
- information.
-
- @param Bitmap The bitmap specifies a series of pixels, eight
- bits per pixel, left-to-right, top-to-bottom.
- The number of bytes per bitmap can be
- calculated as: Width * Height.
-
-**/
-typedef struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 PaletteIndex;
- EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
-} EFI_HII_IIBT_IMAGE_8BIT_PALETTE;
-
-typedef EFI_HII_IIBT_IMAGE_8BIT_PALETTE EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK;
-
-
-/**
-
- Indicates that the image with image ID ImageValueCurrent has the
- same image as a previously defined image ID and increments
- ImageValueCurrent by one
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_DUPLICATE.
-
- @param ImageId The previously defined image ID with the exact
- same image.
-
-
-**/
-typedef struct _EFI_HII_IIBT_DUPLICATE_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- EFI_IMAGE_ID ImageId;
-} EFI_HII_IIBT_DUPLICATE_BLOCK;
-
-
-/**
-
- This record assigns the JPEG image data to the ImageIdCurrent
- identifier and increment ImageIdCurrent by one. The JPEG decoder
- is only required to cover the basic JPEG encoding types, which
- are produced by standard available paint packages (for example:
- MSPaint under Windows from Microsoft). This would include JPEG
- encoding of high (1:1:1) and medium (4:1:1) quality with only
- three components (R,G,B) ??C no support for the special gray
- component encoding.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_IMAGE_JPEG.
-
- @param Size Specifies the size of the JPEG encoded data.
-
- @param Data JPEG encoded data with ????JFIF???? signature at
- offset 6 in the data block. The JPEG encoded
- data, specifies type of encoding and final size
- of true-color image.
-
-**/
-typedef struct _EFI_HII_IIBT_JPEG {
- EFI_HII_IMAGE_BLOCK Header;
- UINT32 Size;
- //UINT8 Data[ бн ];
-} EFI_HII_IIBT_JPEG;
-
-
-/**
-
- Increments the current image ID ImageIdCurrent by the number
- specified.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_SKIP1.
-
- @param SkipCount The unsigned 8-bit value to add to
- ImageIdCurrent.
-
-**/
-typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT8 SkipCount;
-} EFI_HII_IIBT_SKIP1_BLOCK;
-
-/**
-
- Increments the current image ID ImageIdCurrent by the number
- specified.
-
- @param Header Standard image header, where Header.BlockType
- = EFI_HII_IIBT_SKIP2.
-
- @param SkipCount The unsigned 16-bit value to add to
- ImageIdCurrent.
-
-**/
-typedef struct _EFI_HII_IIBT_SKIP2_BLOCK {
- EFI_HII_IMAGE_BLOCK Header;
- UINT16 SkipCount;
-} EFI_HII_IIBT_SKIP2_BLOCK;
-
-
-/**
-
- This fixed header is followed by zero or more variable-length
- palette information records. The structures are assigned a
- number 1 to n.
-
- @param PaletteCount Number of palettes.
-
-**/
-typedef struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER {
- UINT16 PaletteCount;
-} EFI_HII_IMAGE_PALETTE_INFO_HEADER;
-
-/**
-
- Each palette information record is an array of 24-bit color
- structures. The first entry (PaletteValue[0]) corresponds to
- color 0 in the source image; the second entry (PaletteValue[1])
- corresponds to color 1, etc. Each palette entry is a three byte
- entry, with the first byte equal to the blue component of the
- color, followed by green, and finally red (B,G,R). Each color
- component value can vary from 0x00 (color off) to 0xFF (color
- full on), allowing 16.8 millions colors that can be specified.
-
- @param PaletteSize Size of the palette information.
-
- @param PaletteValue Array of color values.
-
-**/
-typedef struct _EFI_HII_IMAGE_PALETTE_INFO {
- UINT16 PaletteSize;
- // EFI_HII_RGB_PIXEL PaletteValue[...];
-} EFI_HII_IMAGE_PALETTE_INFO;
-
-
//
// EFI_HII_DATABASE_NOTIFY_TYPE
@@ -1503,11 +59,11 @@ typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
typedef
EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_NOTIFY) (
- IN CONST UINT8 PackageType,
+ IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
IN CONST EFI_HII_PACKAGE_HEADER *Package,
- IN CONST EFI_HII_HANDLE Handle,
- IN CONST EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
+ IN EFI_HII_HANDLE Handle,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
);
/**
@@ -1531,7 +87,7 @@ EFI_STATUS
@param DriverHandle Associate the package list with this EFI
handle Handle A pointer to the
- EFI_HII_HANDLE instance.
+ EFI_HII_HANDLE instance.
@retval EFI_SUCCESS The package list associated with the
Handle was added to the HII database.
@@ -1546,11 +102,11 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_NEW_PACK) (
+(EFIAPI *EFI_HII_DATABASE_NEW_PACK) (
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
+ IN EFI_HANDLE DriverHandle,
+ OUT EFI_HII_HANDLE *Handle
);
@@ -1577,9 +133,9 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_REMOVE_PACK) (
+(EFIAPI *EFI_HII_DATABASE_REMOVE_PACK) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HII_HANDLE Handle
+ IN EFI_HII_HANDLE Handle
);
@@ -1626,9 +182,9 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_UPDATE_PACK) (
+(EFIAPI *EFI_HII_DATABASE_UPDATE_PACK) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HII_HANDLE Handle,
+ IN EFI_HII_HANDLE Handle,
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
);
@@ -1660,7 +216,7 @@ EFI_STATUS
that is required for the handles
found.
- @param Handle An array of EFI_HII_HANDLE instances returned.
+ @param Handle An array of EFI_HII_HANDLE instances returned.
@retval EFI_SUCCESS Handle was updated successfully.
@@ -1676,12 +232,12 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_LIST_PACKS) (
+(EFIAPI *EFI_HII_DATABASE_LIST_PACKS) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST UINT8 PackageType,
+ IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
IN OUT UINTN *HandleBufferLength,
- OUT EFI_HII_HANDLE *Handle
+ OUT EFI_HII_HANDLE *Handle
);
@@ -1704,7 +260,7 @@ EFI_STATUS
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
instance.
- @param Handle An EFI_HII_HANDLE that corresponds to the
+ @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.
@@ -1726,11 +282,11 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_EXPORT_PACKS) (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HII_HANDLE Handle,
- IN OUT UINTN *BufferSize,
- OUT EFI_HII_PACKAGE_HEADER *Buffer
+(EFIAPI *EFI_HII_DATABASE_EXPORT_PACKS) (
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT UINTN *BufferSize,
+ OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
);
@@ -1789,12 +345,12 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_REGISTER_NOTIFY) (
+(EFIAPI *EFI_HII_DATABASE_REGISTER_NOTIFY) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST UINT8 PackageType,
+ IN UINT8 PackageType,
IN CONST EFI_GUID *PackageGuid,
- IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
- IN CONST EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
OUT EFI_HANDLE *NotifyHandle
);
@@ -1817,217 +373,14 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_UNREGISTER_NOTIFY) (
+(EFIAPI *EFI_HII_DATABASE_UNREGISTER_NOTIFY) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HANDLE NotificationHandle
+ IN EFI_HANDLE NotificationHandle
);
/**
- @param Header The general pack header which defines both the
- type of pack and the length of the entire
- pack.
-
- @param LayoutCount The number of keyboard layouts contained
- in the entire keyboard pack.
-
- @param Layout An array of LayoutCount number of keyboard
- layouts.
-
-**/
-typedef struct {
- EFI_HII_PACKAGE_HEADER Header;
- UINT16 LayoutCount;
- // EFI_HII_KEYBOARD_LAYOUT Layout[...];
-} EFI_HII_KEYBOARD_PACK;
-
-/**
-
- @param LayoutLength The length of the current keyboard
- layout.
-
- @param Guid The unique ID associated with this keyboard
- layout.
-
- @param LayoutDescriptorString An offset location (0 is the
- beginning of the
- EFI_KEYBOARD_LAYOUT instance)
- of the string which describes
- this keyboard layout. The data
- that is being referenced is in
- EFI_DESCRIPTION_STRING_BUNDLE
- format.
-
- @param DescriptorCount The number of Descriptor entries in
- this layout.
-
- @param Descriptors An array of key descriptors.
-
-**/
-typedef struct {
- UINT16 LayoutLength;
- EFI_GUID Guid;
- RELOFST LayoutDescriptorString;
- UINT8 DescriptorCount;
- // EFI_KEY_DESCRIPTOR Descriptors[...];
-} EFI_HII_KEYBOARD_LAYOUT;
-
-
-/**
-
- @param Language The language to associate with
- DescriptionString.
-
- @param Space A space (U-0x0020) character to force as a
- separator between the Language field and the
- formal description string.
-
- @param DescriptionString A null-terminated description
- string.
-
-**/
-typedef struct {
- CHAR16 Language[3];
- CHAR16 Space;
- CHAR16 DescriptionString[1];
-} EFI_DESCRIPTION_STRING;
-
-/**
-
- @param DescriptionCount The number of description strings.
-
- @param DescriptionString An array of language-specific
- description strings.
-
-**/
-typedef struct {
- UINT16 DescriptionCount;
- // EFI_DESCRIPTION_STRING DescriptionString[];
-} EFI_DESCRIPTION_STRING_BUNDLE;
-
-/**
-
- See the figure below for which key corresponds to the values in
- the enumeration above. For example, EfiKeyLCtrl corresponds to
- the left control key in the lower-left corner of the keyboard,
- EfiKeyFour corresponds to the 4 key on the numeric keypad, and
- EfiKeySLck corresponds to the Scroll Lock key in the upper-right
- corner of the keyboard.
-
-**/
-typedef enum {
- EfiKeyLCtrl, EfiKeyA0, EfiKeyLAlt, EfiKeySpaceBar,
- EfiKeyA2, EfiKeyA3, EfiKeyA4, EfiKeyRCtrl, EfiKeyLeftArrow,
- EfiKeyDownArrow, EfiKeyRightArrow, EfiKeyZero,
- EfiKeyPeriod, EfiKeyEnter, EfiKeyLShift, EfiKeyB0,
- EfiKeyB1, EfiKeyB2, EfiKeyB3, EfiKeyB4, EfiKeyB5, EfiKeyB6,
- EfiKeyB7, EfiKeyB8, EfiKeyB9, EfiKeyB10, EfiKeyRshift,
- EfiKeyUpArrow, EfiKeyOne, EfiKeyTwo, EfiKeyThree,
- EfiKeyCapsLock, EfiKeyC1, EfiKeyC2, EfiKeyC3, EfiKeyC4,
- EfiKeyC5, EfiKeyC6, EfiKeyC7, EfiKeyC8, EfiKeyC9,
- EfiKeyC10, EfiKeyC11, EfiKeyC12, EfiKeyFour, EfiKeyFive,
- EfiKeySix, EfiKeyPlus, EfiKeyTab, EfiKeyD1, EfiKeyD2,
- EfiKeyD3, EfiKeyD4, EfiKeyD5, EfiKeyD6, EfiKeyD7, EfiKeyD8,
- EfiKeyD9, EfiKeyD10, EfiKeyD11, EfiKeyD12, EfiKeyD13,
- EfiKeyDel, EfiKeyEnd, EfiKeyPgDn, EfiKeySeven, EfiKeyEight,
- EfiKeyNine, EfiKeyE0, EfiKeyE1, EfiKeyE2, EfiKeyE3,
- EfiKeyE4, EfiKeyE5, EfiKeyE6, EfiKeyE7, EfiKeyE8, EfiKeyE9,
- EfiKeyE10, EfiKeyE11, EfiKeyE12, EfiKeyBackSpace,
- EfiKeyIns, EfiKeyHome, EfiKeyPgUp, EfiKeyNLck, EfiKeySlash,
- EfiKeyAsterisk, EfiKeyMinus, EfiKeyEsc, EfiKeyF1, EfiKeyF2,
- EfiKeyF3, EfiKeyF4, EfiKeyF5, EfiKeyF6, EfiKeyF7, EfiKeyF8,
- EfiKeyF9, EfiKeyF10, EfiKeyF11, EfiKeyF12, EfiKeyPrint,
- EfiKeySLck, EfiKeyPause
-} EFI_KEY;
-
-/**
-
- @param Key Used to describe a physical key on a keyboard.
-
- @param Unicode Unicode value for the Key.
-
- @param ShiftedUnicode Unicode value for the key with the
- shift key being held down.
-
- @param AltGrUnicode Unicode value for the key with the
- Alt-GR being held down.
-
- @param ShiftedAltGrUnicode Unicode value for the key with the
- Alt-GR and shift keys being held down.
-
- @param Modifier Modifier keys are defined to allow for
- special functionality that is not
- necessarily accomplished by a printable
- character. Many of these modifier keys are
- flags to toggle certain state bits on and
- off inside of a keyboard driver.
-
-**/
-typedef struct {
- EFI_KEY Key;
- CHAR16 Unicode;
- CHAR16 ShiftedUnicode;
- CHAR16 AltGrUnicode;
- CHAR16 ShiftedAltGrUnicode;
- UINT16 Modifier;
-} EFI_KEY_DESCRIPTOR;
-
-
-//
-// Modifier values
-//
-#define EFI_NULL_MODIFIER 0x0000
-#define EFI_LEFT_CONTROL_MODIFIER 0x0001
-#define EFI_RIGHT_CONTROL_MODIFIER 0x0002
-#define EFI_LEFT_ALT_MODIFIER 0x0003
-#define EFI_RIGHT_ALT_MODIFIER 0x0004
-#define EFI_ALT_GR_MODIFIER 0x0005
-#define EFI_INSERT_MODIFIER 0x0006
-#define EFI_DELETE_MODIFIER 0x0007
-#define EFI_PAGE_DOWN_MODIFIER 0x0008
-#define EFI_PAGE_UP_MODIFIER 0x0009
-#define EFI_HOME_MODIFIER 0x000A
-#define EFI_END_MODIFIER 0x000B
-#define EFI_LEFT_SHIFT_MODIFIER 0x000C
-#define EFI_RIGHT_SHIFT_MODIFIER 0x000D
-#define EFI_CAPS_LOCK_MODIFIER 0x000E
-#define EFI_NUM_LOCK _MODIFIER 0x000F
-#define EFI_LEFT_ARROW_MODIFIER 0x0010
-#define EFI_RIGHT_ARROW_MODIFIER 0x0011
-#define EFI_DOWN_ARROW_MODIFIER 0x0012
-#define EFI_UP_ARROW_MODIFIER 0X0013
-#define EFI_NS_KEY_MODIFIER 0x0014
-#define EFI_NS_KEY_DEPENDENCY_MODIFIER 0x0015
-#define EFI_FUNCTION_KEY_ONE_MODIFIER 0x0016
-#define EFI_FUNCTION_KEY_TWO_MODIFIER 0x0017
-#define EFI_FUNCTION_KEY_THREE_MODIFIER 0x0018
-#define EFI_FUNCTION_KEY_FOUR_MODIFIER 0x0019
-#define EFI_FUNCTION_KEY_FIVE_MODIFIER 0x001A
-#define EFI_FUNCTION_KEY_SIX_MODIFIER 0x001B
-#define EFI_FUNCTION_KEY_SEVEN_MODIFIER 0x001C
-#define EFI_FUNCTION_KEY_EIGHT_MODIFIER 0x001D
-#define EFI_FUNCTION_KEY_NINE_MODIFIER 0x001E
-#define EFI_FUNCTION_KEY_TEN_MODIFIER 0x001F
-#define EFI_FUNCTION_KEY_ELEVEN_MODIFIER 0x0020
-#define EFI_FUNCTION_KEY_TWELVE_MODIFIER 0x0021
-//
-// Keys that have multiple control functions based on modifier
-// settings are handled in the keyboard driver implementation.
-// For instance PRINT_KEY might have a modifier held down and
-// is still a nonprinting character, but might have an alternate
-// control function like SYSREQUEST
-//
-#define EFI_PRINT_MODIFIER 0x0022
-#define EFI_SYS_REQUEST_MODIFIER 0x0023
-#define EFI_SCROLL_LOCK_MODIFIER 0x0024
-#define EFI_PAUSE_MODIFIER 0x0025
-#define EFI_BREAK_MODIFIER 0x0026
-
-
-
-/**
-
This routine retrieves an array of GUID values for each keyboard
layout that was previously registered in the system.
@@ -2089,6 +442,7 @@ EFI_STATUS
(EFIAPI *EFI_HII_GET_KEYBOARD_LAYOUT) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
IN CONST EFI_GUID *KeyGuid,
+ IN OUT UINT16 *KeyboardLayoutLength,
OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
);
@@ -2129,7 +483,7 @@ EFI_STATUS
@param This A pointer to the EFI_HII_DATABASE_PROTOCOL
instance.
- @param PackageListHandle An EFI_HII_HANDLE that corresponds
+ @param PackageListHandle An EFI_HII_HANDLE that corresponds
to the desired package list in the
HIIdatabase.
@@ -2146,9 +500,9 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_HII_GET_PACK_HANDLE) (
+(EFIAPI *EFI_HII_DATABASE_GET_PACK_HANDLE) (
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HII_HANDLE PackageListHandle,
+ IN EFI_HII_HANDLE PackageListHandle,
OUT EFI_HANDLE *DriverHandle
);
@@ -2190,20 +544,21 @@ EFI_STATUS
**/
struct _EFI_HII_DATABASE_PROTOCOL {
- EFI_HII_NEW_PACK NewPackageList;
- EFI_HII_REMOVE_PACK RemovePackageList;
- EFI_HII_UPDATE_PACK UpdatePackageList;
- EFI_HII_LIST_PACKS ListPackageLists;
- EFI_HII_EXPORT_PACKS ExportPackageLists;
- EFI_HII_REGISTER_NOTIFY RegisterPackageNotify;
- EFI_HII_UNREGISTER_NOTIFY UnregisterPackageNotify;
- EFI_HII_FIND_KEYBOARD_LAYOUTS FindKeyboardLayouts;
- EFI_HII_GET_KEYBOARD_LAYOUT GetKeyboardLayout;
- EFI_HII_SET_KEYBOARD_LAYOUT SetKeyboardLayout;
- EFI_HII_GET_PACK_HANDLE GetPackageHandle;
+ EFI_HII_DATABASE_NEW_PACK NewPackageList;
+ EFI_HII_DATABASE_REMOVE_PACK RemovePackageList;
+ EFI_HII_DATABASE_UPDATE_PACK UpdatePackageList;
+ EFI_HII_DATABASE_LIST_PACKS ListPackageLists;
+ EFI_HII_DATABASE_EXPORT_PACKS ExportPackageLists;
+ EFI_HII_DATABASE_REGISTER_NOTIFY RegisterPackageNotify;
+ EFI_HII_DATABASE_UNREGISTER_NOTIFY UnregisterPackageNotify;
+ EFI_HII_FIND_KEYBOARD_LAYOUTS FindKeyboardLayouts;
+ EFI_HII_GET_KEYBOARD_LAYOUT GetKeyboardLayout;
+ EFI_HII_SET_KEYBOARD_LAYOUT SetKeyboardLayout;
+ EFI_HII_DATABASE_GET_PACK_HANDLE GetPackageListHandle;
};
extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
#endif
+