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
This commit is contained in:
qwang12
2008-01-21 14:41:31 +00:00
parent 93e3992d1e
commit 7d582d6b49
21 changed files with 3518 additions and 3273 deletions

View File

@@ -22,18 +22,18 @@
Return the graphics image file named FileNameGuid into Image and return it's
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
file name.
@param[in] FileNameGuid File Name of graphics file in the FV(s).
@param[in] FileNameGuid File Name of graphics file in the FV(s).
@param[out] Image Pointer to pointer to return graphics image. If NULL, a
buffer will be allocated.
buffer will be allocated.
@param[out] ImageSize Size of the graphics Image in bytes. Zero if no image found.
@retval EFI_INVALID_PARAMETER invalid parameter
@retval EFI_INVALID_PARAMETER invalid parameter
@retval EFI_UNSUPPORTED Range can not be erased
@retval EFI_SUCCESS Image and ImageSize are valid.
@retval EFI_BUFFER_TOO_SMALL Image not big enough. ImageSize has required size
@retval EFI_NOT_FOUND FileNameGuid not found
**/
EFI_STATUS
GetGraphicsBitMapFromFV (
@@ -42,23 +42,50 @@ GetGraphicsBitMapFromFV (
OUT UINTN *ImageSize
);
/**
Return the graphics image file named FileNameGuid into Image and return it's
size in ImageSize. All Firmware Volumes (FV) in the system are searched for the
file name.
@param[in] ImageHandle The driver image handle of the caller. The parameter is used to
optimize the loading of the image file so that the FV from which
the driver image is loaded will be tried first.
@param[in] FileNameGuid File Name of graphics file in the FV(s).
@param[out] Image Pointer to pointer to return graphics image. If NULL, a
buffer will be allocated.
@param[out] ImageSize Size of the graphics Image in bytes. Zero if no image found.
@retval EFI_INVALID_PARAMETER invalid parameter
@retval EFI_UNSUPPORTED Range can not be erased
@retval EFI_SUCCESS Image and ImageSize are valid.
@retval EFI_BUFFER_TOO_SMALL Image not big enough. ImageSize has required size
@retval EFI_NOT_FOUND FileNameGuid not found
**/
EFI_STATUS
GetGraphicsBitMapFromFVEx (
IN EFI_HANDLE ImageHandle,
IN EFI_GUID *FileNameGuid,
OUT VOID **Image,
OUT UINTN *ImageSize
);
/**
Convert a *.BMP graphics image to a UGA blt buffer. If a NULL UgaBlt buffer
is passed in a UgaBlt buffer will be allocated by this routine. If a UgaBlt
buffer is passed in it will be used if it is big enough.
@param[in] BmpImage Pointer to BMP file
@param[in] BmpImageSize Number of bytes in BmpImage
@param[in,out] UgaBlt Buffer containing UGA version of BmpImage.
@param[in,out] UgaBltSize Size of UgaBlt in bytes.
@param[out] PixelHeight Height of UgaBlt/BmpImage in pixels
@param[out] PixelWidth Width of UgaBlt/BmpImage in pixels
@param[in] BmpImage Pointer to BMP file
@param[in] BmpImageSize Number of bytes in BmpImage
@param[in,out] UgaBlt Buffer containing UGA version of BmpImage.
@param[in,out] UgaBltSize Size of UgaBlt in bytes.
@param[out] PixelHeight Height of UgaBlt/BmpImage in pixels
@param[out] PixelWidth Width of UgaBlt/BmpImage in pixels
@retval EFI_SUCCESS UgaBlt and UgaBltSize are returned.
@retval EFI_UNSUPPORTED BmpImage is not a valid *.BMP image
@retval EFI_BUFFER_TOO_SMALL The passed in UgaBlt buffer is not big enough.
UgaBltSize will contain the required size.
UgaBltSize will contain the required size.
**/
EFI_STATUS
ConvertBmpToUgaBlt (
@@ -74,9 +101,9 @@ ConvertBmpToUgaBlt (
/**
Use Console Control to turn off UGA based Simple Text Out consoles from going
to the UGA device. Put up LogoFile on every UGA device that is a console
@param[in] LogoFile File name of logo to display on the center of the screen.
@param[in] LogoFile File name of logo to display on the center of the screen.
@retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.
@retval EFI_UNSUPPORTED Logo not found
@@ -86,11 +113,30 @@ EnableQuietBoot (
IN EFI_GUID *LogoFile
);
/**
Use Console Control to turn off GOP/UGA based Simple Text Out consoles from going
to the UGA device. Put up LogoFile on every UGA device that is a console
@param LogoFile File name of logo to display on the center of the screen.
@param ImageHandle The driver image handle of the caller. The parameter is used to
optimize the loading of the logo file so that the FV from which
the driver image is loaded will be tried first.
@retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.
@retval EFI_UNSUPPORTED Logo not found
**/
EFI_STATUS
EnableQuietBootEx (
IN EFI_GUID *LogoFile,
IN EFI_HANDLE ImageHandle
);
/**
Use Console Control to turn on UGA based Simple Text Out consoles. The UGA
Simple Text Out screens will now be synced up with all non UGA output devices
@retval EFI_SUCCESS UGA devices are back in text mode and synced up.
**/
@@ -105,9 +151,9 @@ DisableQuietBoot (
This is the ConInHandle and ConIn handle in the EFI system table. All key
presses will be ignored until the Password is typed in. The only way to
disable the password is to type it in to a ConIn device.
@param[in] Password Password used to lock ConIn device.
@param[in] Password Password used to lock ConIn device.
@retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo
displayed.
@retval EFI_UNSUPPORTED Password not found
@@ -120,16 +166,16 @@ LockKeyboards (
/**
Print to graphics screen at the given X,Y coordinates of the graphics screen.
see definition of Print to find rules for constructing Fmt.
@param[in] X Row to start printing at
@param[in] Y Column to start printing at
@param[in] Foreground Foreground color
@param[in] Background background color
@param[in] Fmt Print format sting. See definition of Print
@param[in] ... Argumnet stream defined by Fmt string
Print to graphics screen at the given X,Y coordinates of the graphics screen.
see definition of Print to find rules for constructing Fmt.
@param[in] X Row to start printing at
@param[in] Y Column to start printing at
@param[in] Foreground Foreground color
@param[in] Background background color
@param[in] Fmt Print format sting. See definition of Print
@param[in] ... Argumnet stream defined by Fmt string
@retval UINTN Number of Characters printed
**/

View File

@@ -15,29 +15,165 @@
#ifndef __HII_LIB_H__
#define __HII_LIB_H__
#error "UEFI 2.1 HII is not fully implemented for now, Please don't include this file now."
//#include <PiDxe.h>
#include <Protocol/HiiDatabase.h>
//
// Limited buffer size recommended by RFC4646 (4.3. Length Considerations)
// (42 characters plus a NULL terminator)
//
#define RFC_3066_ENTRY_SIZE (42 + 1)
/**
This function allocates pool for an EFI_HII_PACKAGES structure
with enough space for the variable argument list of package pointers.
The allocated structure is initialized using NumberOfPackages, Guid,
and the variable length argument list of package pointers.
This function allocates pool for an EFI_HII_PACKAGE_LIST structure
with additional space that is big enough to host all packages described by the variable
argument list of package pointers. The allocated structure is initialized using NumberOfPackages,
GuidId, and the variable length argument list of package pointers.
@param NumberOfPackages The number of HII packages to prepare.
@param Guid Package GUID.
Then, EFI_HII_PACKAGE_LIST will be register to the default System HII Database. The
Handle to the newly registered Package List is returned throught HiiHandle.
@param NumberOfPackages The number of HII packages to register.
@param GuidId Package List GUID ID.
@param HiiHandle The ID used to retrieve the Package List later.
@param ... The variable argument list describing all HII Package.
@return
The allocated and initialized packages.
**/
EFI_HII_PACKAGE_LIST_HEADER *
EFI_STATUS
EFIAPI
PreparePackages (
IN CONST UINTN NumberOfPackages,
IN CONST EFI_GUID *Guid OPTIONAL,
HiiLibAddPackagesToHiiDatabase (
IN UINTN NumberOfPackages,
IN CONST EFI_GUID *GuidId,
IN EFI_HANDLE DriverHandle, OPTIONAL
OUT EFI_HII_HANDLE *HiiHandle, OPTIONAL
...
);
)
;
EFI_STATUS
EFIAPI
HiiLibAddFontPackageToHiiDatabase (
IN UINTN FontSize,
IN CONST UINT8 *FontBinary,
IN CONST EFI_GUID *GuidId,
OUT EFI_HII_HANDLE *HiiHandle OPTIONAL
)
;
EFI_STATUS
EFIAPI
HiiLibRemovePackagesFromHiiDatabase (
IN EFI_HII_HANDLE HiiHandle
)
;
/**
This function adds the string into String Package of each language.
@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 String Points to the new null-terminated string.
@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 is NULL.
**/
EFI_STATUS
EFIAPI
HiiLibCreateString (
IN EFI_HII_HANDLE PackageList,
OUT EFI_STRING_ID *StringId,
IN CONST EFI_STRING String
)
;
/**
This function update the specified string in String Package of each language.
@param PackageList Handle of the package list where this string will
be added.
@param StringId Ths String Id to be updated.
@param String Points to the new null-terminated string.
@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 is NULL.
**/
EFI_STATUS
EFIAPI
HiiLibUpdateString (
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
IN CONST EFI_STRING String
)
;
//
// Just use the UEFI prototype
//
EFI_STATUS
EFIAPI
HiiLibGetStringFromGuidId (
IN EFI_GUID *ProducerGuid,
IN EFI_STRING_ID StringId,
OUT EFI_STRING *String
)
;
//
// This function is Implementation Specifc. HII_VENDOR_DEVICE_PATH
// This should be moved to MdeModulepkg.
//
EFI_STATUS
EFIAPI
HiiLibCreateHiiDriverHandle (
OUT EFI_HANDLE *DriverHandle
)
;
EFI_STATUS
EFIAPI
HiiLibDestroyHiiDriverHandle (
IN EFI_HANDLE DriverHandle
)
;
EFI_STATUS
HiiLibExtractClassFromHiiHandle (
IN EFI_HII_HANDLE Handle,
OUT UINT16 *Class,
OUT EFI_STRING_ID *FormSetTitle,
OUT EFI_STRING_ID *FormSetHelp
)
/*++
Routine Description:
Extract formset class for given HII handle.
Arguments:
HiiHandle - Hii handle
Class - Class of the formset
FormSetTitle - Formset title string
FormSetHelp - Formset help string
Returns:
EFI_SUCCESS - Successfully extract Class for specified Hii handle.
--*/
;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -617,4 +617,10 @@ FreeAlignedPool (
IN VOID *Buffer
);
VOID
EFIAPI
SafeFreePool (
IN VOID *Buffer
);
#endif