EDKII:Display engine should not depend on the framework code

Display engine base on class opcode to detect whether in
front page.Now remove class/subclass and use FormsetGuid
or ClassGuid to judge whether in front page

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17590 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Dandan Bi
2015-06-09 05:09:50 +00:00
committed by dandanbi
parent 9d58ab0923
commit 5e30b69eb4
7 changed files with 51 additions and 6 deletions

View File

@ -2,7 +2,7 @@
This library class defines a set of interfaces to customize Display module
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2013-2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
@ -256,7 +256,32 @@ ProcessUserOpcode(
IN EFI_IFR_OP_HEADER *OpCodeData
)
{
EFI_GUID * ClassGuid;
UINT8 ClassGuidNum;
ClassGuid = NULL;
ClassGuidNum = 0;
switch (OpCodeData->OpCode) {
case EFI_IFR_FORM_SET_OP:
//
// process the statement outside of form,if it is formset op, get its formsetguid or classguid and compared with gFrontPageFormSetGuid
//
if (CompareGuid((EFI_GUID*)PcdGetPtr (PcdFrontPageFormSetGuid),(EFI_GUID*)&((EFI_IFR_FORM_SET *) OpCodeData)->Guid)){
gClassOfVfr = FORMSET_CLASS_FRONT_PAGE;
} else{
ClassGuidNum = (UINT8)(((EFI_IFR_FORM_SET *)OpCodeData)->Flags & 0x3);
ClassGuid = (EFI_GUID *)(VOID *)((UINT8 *)OpCodeData + sizeof (EFI_IFR_FORM_SET));
while (ClassGuidNum-- > 0){
if (CompareGuid((EFI_GUID*)PcdGetPtr (PcdFrontPageFormSetGuid),ClassGuid)){
gClassOfVfr = FORMSET_CLASS_FRONT_PAGE;
break;
}
ClassGuid ++;
}
}
break;
case EFI_IFR_GUID_OP:
if (CompareGuid (&gEfiIfrTianoGuid, (EFI_GUID *)((CHAR8*) OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {
//