mirror of https://github.com/acidanthera/audk.git
Sync BaseTool trunk (version r2601) into EDKII BaseTools.
Signed-off-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14710 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
ac0908afc2
commit
ea0f646433
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -14,4 +14,4 @@
|
|||
|
||||
**/
|
||||
|
||||
#define __BUILD_VERSION ""
|
||||
#define __BUILD_VERSION "Build 2601"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
IFR is primarily consumed by the EFI presentation engine, and produced by EFI
|
||||
internal application and drivers as well as all add-in card option-ROM drivers
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2013, 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 which accompanies this
|
||||
|
@ -691,6 +691,7 @@ typedef union {
|
|||
#define EFI_IFR_SECURITY_OP 0x60
|
||||
#define EFI_IFR_MODAL_TAG_OP 0x61
|
||||
#define EFI_IFR_REFRESH_ID_OP 0x62
|
||||
#define EFI_IFR_WARNING_IF_OP 0x63
|
||||
|
||||
|
||||
typedef struct _EFI_IFR_OP_HEADER {
|
||||
|
@ -1015,6 +1016,12 @@ typedef struct _EFI_IFR_NO_SUBMIT_IF {
|
|||
EFI_STRING_ID Error;
|
||||
} EFI_IFR_NO_SUBMIT_IF;
|
||||
|
||||
typedef struct _EFI_IFR_WARNING_IF {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
EFI_STRING_ID Warning;
|
||||
UINT8 TimeOut;
|
||||
} EFI_IFR_WARNING_IF;
|
||||
|
||||
typedef struct _EFI_IFR_REFRESH {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
UINT8 RefreshInterval;
|
||||
|
|
|
@ -1673,6 +1673,7 @@ static struct {
|
|||
{ sizeof (EFI_IFR_SECURITY), 0 }, // EFI_IFR_SECURITY_OP - 0x60
|
||||
{ sizeof (EFI_IFR_MODAL_TAG), 0}, // EFI_IFR_MODAL_TAG_OP - 0x61
|
||||
{ sizeof (EFI_IFR_REFRESH_ID), 0}, // EFI_IFR_REFRESH_ID_OP - 0x62
|
||||
{ sizeof (EFI_IFR_WARNING_IF), 1}, // EFI_IFR_WARNING_IF_OP - 0x63
|
||||
};
|
||||
|
||||
#ifdef CIFROBJ_DEUBG
|
||||
|
@ -1695,7 +1696,7 @@ static struct {
|
|||
"EFI_IFR_STRING_REF1","EFI_IFR_STRING_REF2", "EFI_IFR_CONDITIONAL", "EFI_IFR_QUESTION_REF3", "EFI_IFR_ZERO", "EFI_IFR_ONE",
|
||||
"EFI_IFR_ONES", "EFI_IFR_UNDEFINED", "EFI_IFR_LENGTH", "EFI_IFR_DUP", "EFI_IFR_THIS", "EFI_IFR_SPAN",
|
||||
"EFI_IFR_VALUE", "EFI_IFR_DEFAULT", "EFI_IFR_DEFAULTSTORE", "EFI_IFR_FORM_MAP", "EFI_IFR_CATENATE", "EFI_IFR_GUID",
|
||||
"EFI_IFR_SECURITY", "EFI_IFR_MODAL_TAG", "EFI_IFR_REFRESH_ID",
|
||||
"EFI_IFR_SECURITY", "EFI_IFR_MODAL_TAG", "EFI_IFR_REFRESH_ID", "EFI_IFR_WARNING_IF",
|
||||
};
|
||||
|
||||
VOID
|
||||
|
|
|
@ -1612,6 +1612,26 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
class CIfrWarningIf : public CIfrObj, public CIfrOpHeader {
|
||||
private:
|
||||
EFI_IFR_WARNING_IF *mWarningIf;
|
||||
|
||||
public:
|
||||
CIfrWarningIf () : CIfrObj (EFI_IFR_WARNING_IF_OP, (CHAR8 **)&mWarningIf),
|
||||
CIfrOpHeader (EFI_IFR_WARNING_IF_OP, &mWarningIf->Header) {
|
||||
mWarningIf->Warning = EFI_STRING_ID_INVALID;
|
||||
mWarningIf->TimeOut = 0;
|
||||
}
|
||||
|
||||
VOID SetWarning (IN EFI_STRING_ID Warning) {
|
||||
mWarningIf->Warning = Warning;
|
||||
}
|
||||
|
||||
VOID SetTimeOut (IN UINT8 TimeOut) {
|
||||
mWarningIf->TimeOut = TimeOut;
|
||||
}
|
||||
};
|
||||
|
||||
class CIfrNoSubmitIf : public CIfrObj, public CIfrOpHeader {
|
||||
private:
|
||||
EFI_IFR_NO_SUBMIT_IF *mNoSubmitIf;
|
||||
|
|
|
@ -184,6 +184,7 @@ VfrParserStart (
|
|||
#token Goto("goto") "goto"
|
||||
#token FormSetGuid("formsetguid") "formsetguid"
|
||||
#token InconsistentIf("inconsistentif") "inconsistentif"
|
||||
#token WarningIf("warningif") "warningif"
|
||||
#token NoSubmitIf("nosubmitif") "nosubmitif"
|
||||
#token EndIf("endif") "endif"
|
||||
#token Key("key") "key"
|
||||
|
@ -2627,7 +2628,8 @@ vfrStatementQuestionTag :
|
|||
vfrStatementRefresh |
|
||||
vfrStatementVarstoreDevice |
|
||||
vfrStatementExtension |
|
||||
vfrStatementRefreshEvent
|
||||
vfrStatementRefreshEvent |
|
||||
vfrStatementWarningIf
|
||||
;
|
||||
|
||||
vfrStatementQuestionTagList :
|
||||
|
@ -2825,6 +2827,15 @@ vfrStatementNoSubmitIf :
|
|||
E:EndIf << CRT_END_OP (E); >>
|
||||
;
|
||||
|
||||
vfrStatementWarningIf :
|
||||
<< CIfrWarningIf WIObj; >>
|
||||
L:WarningIf << WIObj.SetLineNo(L->getLine()); >>
|
||||
Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" "," << WIObj.SetWarning (_STOSID(S->getText())); >>
|
||||
{Timeout "=" T:Number "," << WIObj.SetTimeOut (_STOU8(T->getText())); >>}
|
||||
vfrStatementExpression[0]
|
||||
E:EndIf << CRT_END_OP (E); >>
|
||||
;
|
||||
|
||||
vfrStatementDisableIfQuest :
|
||||
<<
|
||||
CIfrDisableIf DIObj;
|
||||
|
|
|
@ -13,4 +13,4 @@
|
|||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
gBUILD_VERSION = ""
|
||||
gBUILD_VERSION = "Build 2601"
|
||||
|
|
|
@ -17,4 +17,4 @@
|
|||
Build version information
|
||||
'''
|
||||
|
||||
gBUILD_VERSION = ""
|
||||
gBUILD_VERSION = "Build 2601"
|
||||
|
|
|
@ -827,6 +827,7 @@ class DscParser(MetaFileParser):
|
|||
except:
|
||||
EdkLogger.error("Parser", FILE_READ_FAILURE, ExtraData=self.MetaFile)
|
||||
|
||||
OwnerId = {}
|
||||
for Index in range(0, len(Content)):
|
||||
Line = CleanString(Content[Index])
|
||||
# skip empty line
|
||||
|
@ -847,6 +848,7 @@ class DscParser(MetaFileParser):
|
|||
self._SubsectionType = MODEL_UNKNOWN
|
||||
self._SubsectionName = ''
|
||||
self._Owner[-1] = -1
|
||||
OwnerId = {}
|
||||
continue
|
||||
# subsection header
|
||||
elif Line[0] == TAB_OPTION_START and Line[-1] == TAB_OPTION_END:
|
||||
|
@ -871,6 +873,9 @@ class DscParser(MetaFileParser):
|
|||
# LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, Enabled=-1
|
||||
#
|
||||
for Arch, ModuleType in self._Scope:
|
||||
Owner = self._Owner[-1]
|
||||
if self._SubsectionType != MODEL_UNKNOWN:
|
||||
Owner = OwnerId[Arch]
|
||||
self._LastItem = self._Store(
|
||||
self._ItemType,
|
||||
self._ValueList[0],
|
||||
|
@ -878,7 +883,7 @@ class DscParser(MetaFileParser):
|
|||
self._ValueList[2],
|
||||
Arch,
|
||||
ModuleType,
|
||||
self._Owner[-1],
|
||||
Owner,
|
||||
self._From,
|
||||
self._LineIndex + 1,
|
||||
- 1,
|
||||
|
@ -886,6 +891,8 @@ class DscParser(MetaFileParser):
|
|||
- 1,
|
||||
self._Enabled
|
||||
)
|
||||
if self._SubsectionType == MODEL_UNKNOWN and self._InSubsection:
|
||||
OwnerId[Arch] = self._LastItem
|
||||
|
||||
if self._DirectiveStack:
|
||||
Type, Line, Text = self._DirectiveStack[-1]
|
||||
|
@ -1040,6 +1047,11 @@ class DscParser(MetaFileParser):
|
|||
ExtraData=self._CurrentLine + " (<TokenSpaceGuidCName>.<TokenCName>|<PcdValue>)",
|
||||
File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
if self._ValueList[2] == '':
|
||||
#
|
||||
# The PCD values are optional for FIXEDATBUILD and PATCHABLEINMODULE
|
||||
#
|
||||
if self._SectionType in (MODEL_PCD_FIXED_AT_BUILD, MODEL_PCD_PATCHABLE_IN_MODULE):
|
||||
return
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "No PCD value given",
|
||||
ExtraData=self._CurrentLine + " (<TokenSpaceGuidCName>.<TokenCName>|<PcdValue>)",
|
||||
File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
|
|
Loading…
Reference in New Issue