BaseTools/AutoGen: auto generate MM template APIs and dependencies.
This patch adds changes to auto generate MM_CORE_STANDALONE and MM_STANDALONE Entry Point templates. Also, it adds changes to help auto generate dependency expressions for MM_STANDALONE modules. PI Specification v1.5 specifies Management Mode System Table (MMST) which is a collection of common services for managing MMRAM allocation and providing basic I/O services. MMST is similar to the UEFI System Table. (Currently, EFI_SMM_SYSTEM_TABLE2 defines Management Mode System Table) Some of auto generated MM_CORE_STANDALONE and MM_STANDALONE template APIs use MMST as parameter. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
committed by
Yonghong Zhu
parent
87d9a2b316
commit
5a9c3e3e58
@ -42,6 +42,8 @@ gType2Phase = {
|
||||
"UEFI_DRIVER" : "DXE",
|
||||
"UEFI_APPLICATION" : "DXE",
|
||||
"SMM_CORE" : "DXE",
|
||||
"MM_STANDALONE" : "MM",
|
||||
"MM_CORE_STANDALONE" : "MM",
|
||||
}
|
||||
|
||||
## Convert dependency expression string into EFI internal representation
|
||||
@ -98,6 +100,19 @@ class DependencyExpression:
|
||||
"FALSE" : 0x07,
|
||||
"END" : 0x08,
|
||||
"SOR" : 0x09
|
||||
},
|
||||
|
||||
"MM" : {
|
||||
"BEFORE": 0x00,
|
||||
"AFTER" : 0x01,
|
||||
"PUSH" : 0x02,
|
||||
"AND" : 0x03,
|
||||
"OR" : 0x04,
|
||||
"NOT" : 0x05,
|
||||
"TRUE" : 0x06,
|
||||
"FALSE" : 0x07,
|
||||
"END" : 0x08,
|
||||
"SOR" : 0x09
|
||||
}
|
||||
}
|
||||
|
||||
@ -289,7 +304,7 @@ class DependencyExpression:
|
||||
return
|
||||
|
||||
# don't generate depex if all operands are architecture protocols
|
||||
if self.ModuleType in ['UEFI_DRIVER', 'DXE_DRIVER', 'DXE_RUNTIME_DRIVER', 'DXE_SAL_DRIVER', 'DXE_SMM_DRIVER'] and \
|
||||
if self.ModuleType in ['UEFI_DRIVER', 'DXE_DRIVER', 'DXE_RUNTIME_DRIVER', 'DXE_SAL_DRIVER', 'DXE_SMM_DRIVER', 'MM_STANDALONE'] and \
|
||||
Op == 'AND' and \
|
||||
self.ArchProtocols == set([GuidStructureStringToGuidString(Guid) for Guid in AllOperand]):
|
||||
self.PostfixNotation = []
|
||||
|
Reference in New Issue
Block a user