Sync in bug fix from EDK I:

1) issue with setup browser and IFR refresh opcode
2) [HII]HIIConfigRoutingExportConfig generate error format of <MultiConfigAltResp>
3) [HII] ConfigRouting->ExtractConfig() will cause overflow
4) [Hii Database] EFI_HII_DATABASE_NOTIFY should be invoked when a string package is created internally when a new String Token is created
5) [PT]HIIConfigAccessProtocolTest fail on NT32uefi
6) Incorrect HII package types in EDK

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6377 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2008-11-04 14:22:22 +00:00
parent ba954c772d
commit 9185c388a9
3 changed files with 516 additions and 5 deletions

View File

@@ -434,6 +434,47 @@ CreateStringOpCode (
IN OUT EFI_HII_UPDATE_DATA *Data
)
;
/**
Construct <ConfigAltResp> for a buffer storage.
@param ConfigRequest The Config request string. If set to NULL, all the
configurable elements will be extracted from BlockNameArray.
@param ConfigAltResp The returned <ConfigAltResp>.
@param Progress On return, points to a character in the Request.
@param Guid GUID of the buffer storage.
@param Name Name of the buffer storage.
@param DriverHandle The DriverHandle which is used to invoke HiiDatabase
protocol interface NewPackageList().
@param BufferStorage Content of the buffer storage.
@param BufferStorageSize Length in bytes of the buffer storage.
@param BlockNameArray Array generated by VFR compiler.
@param NumberAltCfg Number of Default value array generated by VFR compiler.
The sequential input parameters will be number of
AltCfgId and DefaultValueArray pairs. When set to 0,
there will be no <AltResp>.
retval EFI_OUT_OF_RESOURCES Run out of memory resource.
retval EFI_INVALID_PARAMETER ConfigAltResp is NULL.
retval EFI_SUCCESS Operation successful.
**/
EFI_STATUS
ConstructConfigAltResp (
IN EFI_STRING ConfigRequest, OPTIONAL
OUT EFI_STRING *Progress,
OUT EFI_STRING *ConfigAltResp,
IN EFI_GUID *Guid,
IN CHAR16 *Name,
IN EFI_HANDLE *DriverHandle,
IN VOID *BufferStorage,
IN UINTN BufferStorageSize,
IN VOID *BlockNameArray, OPTIONAL
IN UINTN NumberAltCfg,
...
//IN UINT16 AltCfgId,
//IN VOID *DefaultValueArray,
)
;
/**
Converts the unicode character of the string from uppercase to lowercase.
@@ -578,6 +619,25 @@ ConstructConfigHdr (
;
/**
Determines if the Routing data (Guid and Name) is correct in <ConfigHdr>.
@param ConfigString Either <ConfigRequest> or <ConfigResp>.
@param StorageGuid GUID of the storage.
@param StorageName Name of the stoarge.
@retval TRUE Routing information is correct in ConfigString.
@retval FALSE Routing information is incorrect in ConfigString.
**/
BOOLEAN
IsConfigHdrMatch (
IN EFI_STRING ConfigString,
IN EFI_GUID *StorageGuid, OPTIONAL
IN CHAR16 *StorageName OPTIONAL
)
;
/**
Search BlockName "&OFFSET=Offset&WIDTH=Width" in a string.

View File

@@ -66,13 +66,13 @@ typedef struct {
//
#define EFI_HII_PACKAGE_TYPE_ALL 0x00
#define EFI_HII_PACKAGE_TYPE_GUID 0x01
#define EFI_HII_PACKAGE_FORM 0x02
#define EFI_HII_PACKAGE_KEYBOARD_LAYOUT 0x03
#define EFI_HII_PACKAGE_FORMS 0x02
#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_KEYBOARD_LAYOUT 0x09
#define EFI_HII_PACKAGE_END 0xDF
#define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0
#define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF