Merged in the following trackers from EDK:

EDK1145 Cursor mising in shell in some case 
EDK1099: Dell - [HII] HiiGetFontInfo() not retrieve the system font by FoFontInfoMask
EDK1127: [UEFI 2.10] Keyboard layout support 
EDK1129: [UEFI HII] GUID is represented wrongly in Config String
And some other fixes such as
*[UEFI HII] HiiGetAltCfg is generating "Name=" sub string in the wrong format 
*UEFI HII: GetUnicodeStringTextOrSize() doesn't handle NULL StringDest properly
*GetFontInfo() need be updated to avoid iteration 
*HIIStringProtocolTest failed on multiple platform
*[Uefi 2.1] Comply with latest Hii ECR 
* GetFontInfo() need be updated to avoid iteration


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5360 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2008-06-23 09:38:38 +00:00
parent 9a2d4fe9a7
commit 54cf87805f
14 changed files with 350 additions and 115 deletions

View File

@@ -2,7 +2,7 @@
The file provides Database manager for HII-related data
structures.
Copyright (c) 2006 - 2007, Intel Corporation
Copyright (c) 2006 - 2008, 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
@@ -127,8 +127,7 @@ EFI_STATUS
@retval EFI_SUCCESS The data associated with the Handle was
removed from the HII database.
@retval EFI_INVALID_PARAMETER The Handle was not valid.
@retval EFI_NOT_FOUND The specified Handle is not in database.
**/
typedef
@@ -177,7 +176,8 @@ EFI_STATUS
@retval EFI_OUT_OF_RESOURCES Unable to allocate enough memory
for the updated database.
@retval EFI_INVALID_PARAMETER The Handle was not valid.
@retval EFI_INVALID_PARAMETER PackageList was NULL.
@retval EFI_NOT_FOUND The specified Handle is not in database.
**/
typedef
@@ -219,14 +219,20 @@ EFI_STATUS
@param Handle An array of EFI_HII_HANDLE instances returned.
@retval EFI_SUCCESS Handle was updated successfully.
@retval EFI_SUCCESS The matching handles are outputed successfully.
HandleBufferLength is updated with the actual length.
@retval EFI_BUFFER_TOO_SMALL The HandleBufferLength parameter
@retval EFI_BUFFER_TOO_SMALL The HandleBufferLength parameter
indicates that Handle is too
small to support the number of
handles. HandleBufferLength is
updated with a value that will
enable the data to fit.
@retval EFI_NOT_FOUND No matching handle could not be found in database.
@retval EFI_INVALID_PARAMETER Handle or HandleBufferLength was NULL.
@retval EFI_INVALID_PARAMETER PackageType is not a EFI_HII_PACKAGE_TYPE_GUID but
PackageGuid is not NULL, PackageType is a EFI_HII_
PACKAGE_TYPE_GUID but PackageGuid is NULL.
**/
@@ -368,8 +374,9 @@ EFI_STATUS
@retval EFI_SUCCESS Unregister the notification
Successsfully
@retval EFI_INVALID_PARAMETER The Handle is invalid.
@retval EFI_NOT_FOUND The incoming notification handle does not exist
in current hii database.
**/
typedef
EFI_STATUS

View File

@@ -1,7 +1,7 @@
/** @file
The file provides services to retrieve font information.
Copyright (c) 2006 - 2007, Intel Corporation
Copyright (c) 2006 - 2008, 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
@@ -31,8 +31,8 @@ typedef VOID *EFI_FONT_HANDLE;
typedef UINT32 EFI_HII_OUT_FLAGS;
#define EFI_HII_OUT_FLAG_CLIP 0x00000001
#define EFI_HII_OUT_FLAG_WRAP 0x00000002
#define EFI_HII_OUT_FLAG_CLEAN_Y 0x00000004
#define EFI_HII_OUT_FLAG_CLEAN_X 0x00000008
#define EFI_HII_OUT_FLAG_CLIP_CLEAN_Y 0x00000004
#define EFI_HII_OUT_FLAG_CLIP_CLEAN_X 0x00000008
#define EFI_HII_OUT_FLAG_TRANSPARENT 0x00000010
#define EFI_HII_IGNORE_IF_NO_GLYPH 0x00000020
#define EFI_HII_IGNORE_LINE_BREAK 0x00000040
@@ -87,9 +87,9 @@ typedef UINT32 EFI_FONT_INFO_MASK;
// EFI_FONT_INFO
//
typedef struct {
UINT32 FontStyle;
UINT16 FontSize;
CHAR16 FontName[1];
EFI_HII_FONT_STYLE FontStyle;
UINT16 FontSize; // character cell height in pixels
CHAR16 FontName[1];
} EFI_FONT_INFO;
/**
@@ -253,10 +253,9 @@ typedef struct _EFI_FONT_DISPLAY_INFO {
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output
buffer for RowInfoArray or Blt.
@retval EFI_INVALID_PARAMETER The String or Blt or Height or
Width was NULL.
@retval EFI_INVALID_PARAMETER The String or Blt.
@retval EFI_INVALID_PARAMETER Flags were invalid combination..
**/
typedef
EFI_STATUS
@@ -388,6 +387,10 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER The String or Blt or Height or
Width was NULL.
@retval EFI_INVALID_PARAMETER The Blt or PackageList was NULL.
@retval EFI_INVALID_PARAMETER Flags were invalid combination.
@retval EFI_NOT_FOUND The specified PackageList is not in the Database or the stringid is not
in the specified PackageList.
**/
typedef
@@ -469,7 +472,8 @@ EFI_STATUS
to NULL if there are no more matching fonts.
@param StringInfoIn Upon entry, points to the font to return
information about.
information about. If NULL, then the information about the system default
font will be returned.
@param StringInfoOut Upon return, contains the matching
font's information. If NULL, then no
@@ -483,8 +487,9 @@ EFI_STATUS
@retval EFI_NOT_FOUND No matching font was found.
@retval EFI_INVALID_PARAMETER FontHandle is NULL or
StringInfoIn is NULL
@retval EFI_INVALID_PARAMETER StringInfoIn->FontInfoMask is an invalid combination.
@retval EFI_OUT_OF_RESOURCES There were insufficient resources to complete the request.
**/
typedef
@@ -492,7 +497,7 @@ EFI_STATUS
(EFIAPI *EFI_HII_GET_FONT_INFO) (
IN CONST EFI_HII_FONT_PROTOCOL *This,
IN OUT EFI_FONT_HANDLE *FontHandle,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn, OPTIONAL
OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
IN CONST EFI_STRING String OPTIONAL
);

View File

@@ -1,7 +1,7 @@
/** @file
The file provides services to access to images in the images database.
Copyright (c) 2006 - 2007, Intel Corporation
Copyright (c) 2006 - 2008, 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
@@ -48,7 +48,7 @@ typedef struct _EFI_IMAGE_INPUT {
UINT32 Flags;
UINT16 Width;
UINT16 Height;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Bitmap[1];
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Bitmap;
} EFI_IMAGE_INPUT;
@@ -109,21 +109,14 @@ EFI_STATUS
@param Image Points to the new 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 image was returned successfully.
The specified PackageList is not in the database.
@retval EFI_NOT_FOUND The image specified by ImageId is not
available.
@retval EFI_BUFFER_TOO_SMALL The buffer specified by
ImageLength is too small to hold
the image.
@retval EFI_INVALID_PARAMETER The Image or Langugae was NULL.
@retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because there was not
enough memory.
**/
@@ -133,8 +126,7 @@ EFI_STATUS
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
OUT EFI_IMAGE_INPUT *Image
);
/**
@@ -156,7 +148,8 @@ EFI_STATUS
@retval EFI_SUCCESS The image was successfully updated.
@retval EFI_NOT_FOUND The image specified by ImageId is not
in the database.
in the database.
The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Image or Language was
NULL.
@@ -180,8 +173,8 @@ typedef UINT32 EFI_HII_DRAW_FLAGS;
#define EFI_HII_DRAW_FLAG_CLIP 0x00000001
#define EFI_HII_DRAW_FLAG_TRANSPARENT 0x00000030
#define EFI_HII_DRAW_FLAG_DEFAULT 0x00000000
#define EFI_HII_DRAW_FLAG_FORCE_TRANS 0x00000001
#define EFI_HII_DRAW_FLAG_FORCE_OPAQUE 0x00000002
#define EFI_HII_DRAW_FLAG_FORCE_TRANS 0x00000010
#define EFI_HII_DRAW_FLAG_FORCE_OPAQUE 0x00000020
#define EFI_HII_DIRECT_TO_SCREEN 0x00000080
@@ -332,8 +325,9 @@ EFI_STATUS
@retval EFI_OUT_OF_RESOURCES Unable to allocate an output
buffer for RowInfoArray or Blt.
@retval EFI_INVALID_PARAMETER The Image or Blt or Height or
Width was NULL.
@retval EFI_NOT_FOUND The image specified by ImageId is not in the database.
The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The Blt was NULL.
**/
typedef

View File

@@ -1,7 +1,7 @@
/** @file
The file provides services to manipulate string data.
Copyright (c) 2006 - 2007, Intel Corporation
Copyright (c) 2006 - 2008, 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
@@ -101,14 +101,16 @@ EFI_STATUS
points to the length of the string, in
bytes.
@param StringFontInfo Points to the string's font
information or NULL if the string font
information is not desired.
@param StringFontInfo Points to a buffer that will be callee allocated and will
have the string's font information into this buffer.
The caller is responsible for freeing this buffer.
If the parameter is NULL a buffer will not be allocated
and the string font information will not be returned.
@retval EFI_SUCCESS The string was returned successfully.
@retval EFI_NOT_FOUND The string specified by StringId is not
available.
available. The specified PackageList is not in the database.
@retval EFI_INVALID_LANGUAGE The string specified by StringId
is available but not in the
@@ -158,7 +160,7 @@ EFI_STATUS
@retval EFI_SUCCESS The string was successfully updated.
@retval EFI_NOT_FOUND The string specified by StringId is not
in the database.
in the database. The specified PackageList is not in the database.
@retval EFI_INVALID_PARAMETER The String or Language was NULL.
@@ -203,7 +205,8 @@ EFI_STATUS
updated to contain the required
size.
@retval EFI_INVALID_PARAMETER Languages is NULL.
@retval EFI_INVALID_PARAMETER Languages or LanguagesSize is NULL.
@retval EFI_NOT_FOUND The specified PackageList is not in the database.
**/
@@ -261,6 +264,7 @@ EFI_STATUS
@retval EFI_INVALID_PARAMETER FirstLanguage is NULL or
SecondLanguage is NULL.
@retval EFI_NOT_FOUND The specified PackageList is not in the database.
**/
typedef