Add support to original EFI_IFR_FORM_SET in initial UEFI2.1 spec. Now, it has been updated to new one in UEFI2.1D.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9905 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4 2010-02-02 01:37:48 +00:00
parent d10a41e634
commit 158bb28ae0
1 changed files with 18 additions and 11 deletions

View File

@ -294,18 +294,25 @@ ExtractDisplayedHiiFormFromHiiHandle (
OpCodeData = Package + Offset2; OpCodeData = Package + Offset2;
if (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) { if (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) {
// if (((EFI_IFR_OP_HEADER *) OpCodeData)->Length > OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
// Find FormSet OpCode //
// // Find FormSet OpCode
ClassGuidNum = ((EFI_IFR_FORM_SET *) OpCodeData)->Flags; //
ClassGuid = (EFI_GUID *) (VOID *)(OpCodeData + sizeof (EFI_IFR_FORM_SET)); ClassGuidNum = ((EFI_IFR_FORM_SET *) OpCodeData)->Flags;
while (ClassGuidNum-- > 0) { ClassGuid = (EFI_GUID *) (VOID *)(OpCodeData + sizeof (EFI_IFR_FORM_SET));
if (CompareGuid (SetupClassGuid, ClassGuid)) { while (ClassGuidNum-- > 0) {
CopyMem (FormSetTitle, &((EFI_IFR_FORM_SET *) OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID)); if (CompareGuid (SetupClassGuid, ClassGuid)) {
CopyMem (FormSetHelp, &((EFI_IFR_FORM_SET *) OpCodeData)->Help, sizeof (EFI_STRING_ID)); CopyMem (FormSetTitle, &((EFI_IFR_FORM_SET *) OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID));
FreePool (HiiPackageList); CopyMem (FormSetHelp, &((EFI_IFR_FORM_SET *) OpCodeData)->Help, sizeof (EFI_STRING_ID));
return TRUE; FreePool (HiiPackageList);
return TRUE;
}
} }
} else {
CopyMem (FormSetTitle, &((EFI_IFR_FORM_SET *) OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID));
CopyMem (FormSetHelp, &((EFI_IFR_FORM_SET *) OpCodeData)->Help, sizeof (EFI_STRING_ID));
FreePool (HiiPackageList);
return TRUE;
} }
} }