--- /dev/null
+## @file\r
+# This file is used to define class for data type structure\r
+#\r
+# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# This program and the accompanying materials are licensed and made available \r
+# under the terms and conditions of the BSD License which accompanies this \r
+# distribution. The full text of the license may be found at \r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+'''\r
+DataType\r
+'''\r
+\r
+##\r
+# Module List Items\r
+#\r
+MODULE_LIST = ["BASE",\r
+ "SEC",\r
+ "PEI_CORE",\r
+ "PEIM",\r
+ "DXE_CORE",\r
+ "DXE_DRIVER",\r
+ "SMM_CORE",\r
+ "DXE_RUNTIME_DRIVER",\r
+ "DXE_SAL_DRIVER",\r
+ "DXE_SMM_DRIVER",\r
+ "UEFI_DRIVER",\r
+ "UEFI_APPLICATION",\r
+ "USER_DEFINED"]\r
+\r
+VALID_DEPEX_MODULE_TYPE_LIST = ["PEIM",\r
+ "DXE_DRIVER",\r
+ "DXE_SMM_DRIVER",\r
+ "DXE_RUNTIME_DRIVER",\r
+ "DXE_SAL_DRIVER",\r
+ "UEFI_DRIVER",\r
+ ]\r
+##\r
+# Usage List Items\r
+#\r
+USAGE_LIST = ["CONSUMES",\r
+ "SOMETIMES_CONSUMES",\r
+ "PRODUCES",\r
+ "SOMETIMES_PRODUCES"]\r
+\r
+LANGUAGE_EN_US = 'en-US'\r
+\r
+USAGE_ITEM_PRODUCES = 'PRODUCES'\r
+USAGE_ITEM_SOMETIMES_PRODUCES = 'SOMETIMES_PRODUCES'\r
+USAGE_ITEM_CONSUMES = 'CONSUMES'\r
+USAGE_ITEM_SOMETIMES_CONSUMES = 'SOMETIMES_CONSUMES'\r
+USAGE_ITEM_TO_START = 'TO_START'\r
+USAGE_ITEM_BY_START = 'BY_START'\r
+USAGE_ITEM_NOTIFY = 'NOTIFY'\r
+USAGE_ITEM_UNDEFINED = 'UNDEFINED'\r
+\r
+USAGE_CONSUMES_LIST = [USAGE_ITEM_CONSUMES,\r
+ 'CONSUMED',\r
+ 'ALWAYS_CONSUMED',\r
+ 'ALWAYS_CONSUMES' \r
+ ]\r
+\r
+USAGE_PRODUCES_LIST = [USAGE_ITEM_PRODUCES,\r
+ 'PRODUCED',\r
+ 'ALWAYS_PRODUCED',\r
+ 'ALWAYS_PRODUCES' \r
+ ]\r
+\r
+USAGE_SOMETIMES_PRODUCES_LIST = [USAGE_ITEM_SOMETIMES_PRODUCES,\r
+ 'SOMETIMES_PRODUCED'\r
+ ]\r
+\r
+USAGE_SOMETIMES_CONSUMES_LIST = [USAGE_ITEM_SOMETIMES_CONSUMES,\r
+ 'SOMETIMES_CONSUMED'\r
+ ]\r
+\r
+ITEM_UNDEFINED = 'UNDEFINED'\r
+\r
+\r
+#\r
+# Dictionary of usage tokens and their synonmys\r
+# \r
+ALL_USAGE_TOKENS = {\r
+ "PRODUCES" : "PRODUCES",\r
+ "PRODUCED" : "PRODUCES",\r
+ "ALWAYS_PRODUCES" : "PRODUCES",\r
+ "ALWAYS_PRODUCED" : "PRODUCES",\r
+ "SOMETIMES_PRODUCES" : "SOMETIMES_PRODUCES",\r
+ "SOMETIMES_PRODUCED" : "SOMETIMES_PRODUCES",\r
+ "CONSUMES" : "CONSUMES",\r
+ "CONSUMED" : "CONSUMES",\r
+ "ALWAYS_CONSUMES" : "CONSUMES",\r
+ "ALWAYS_CONSUMED" : "CONSUMES",\r
+ "SOMETIMES_CONSUMES" : "SOMETIMES_CONSUMES",\r
+ "SOMETIMES_CONSUMED" : "SOMETIMES_CONSUMES",\r
+ "SOMETIME_CONSUMES" : "SOMETIMES_CONSUMES",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+PROTOCOL_USAGE_TOKENS = {\r
+ "TO_START" : "TO_START",\r
+ "BY_START" : "BY_START"\r
+ }\r
+ \r
+PROTOCOL_USAGE_TOKENS.update (ALL_USAGE_TOKENS)\r
+ \r
+#\r
+# Dictionary of GUID type tokens\r
+# \r
+GUID_TYPE_TOKENS = { \r
+ "Event" : "Event",\r
+ "File" : "File",\r
+ "FV" : "FV",\r
+ "GUID" : "GUID",\r
+ "Guid" : "GUID",\r
+ "HII" : "HII",\r
+ "HOB" : "HOB",\r
+ "Hob" : "HOB",\r
+ "Hob:" : "HOB",\r
+ "SystemTable" : "SystemTable",\r
+ "TokenSpaceGuid" : "TokenSpaceGuid",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+ \r
+#\r
+# Dictionary of Protocol Notify tokens and their synonyms\r
+# \r
+PROTOCOL_NOTIFY_TOKENS = { \r
+ "NOTIFY" : "NOTIFY",\r
+ "PROTOCOL_NOTIFY" : "NOTIFY",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+#\r
+# Dictionary of PPI Notify tokens and their synonyms\r
+# \r
+PPI_NOTIFY_TOKENS = { \r
+ "NOTIFY" : "NOTIFY",\r
+ "PPI_NOTIFY" : "NOTIFY",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+EVENT_TOKENS = {\r
+ "EVENT_TYPE_PERIODIC_TIMER" : "EVENT_TYPE_PERIODIC_TIMER",\r
+ "EVENT_TYPE_RELATIVE_TIMER" : "EVENT_TYPE_RELATIVE_TIMER",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+BOOTMODE_TOKENS = {\r
+ "FULL" : "FULL",\r
+ "MINIMAL" : "MINIMAL",\r
+ "NO_CHANGE" : "NO_CHANGE",\r
+ "DIAGNOSTICS" : "DIAGNOSTICS",\r
+ "DEFAULT" : "DEFAULT",\r
+ "S2_RESUME" : "S2_RESUME",\r
+ "S3_RESUME" : "S3_RESUME",\r
+ "S4_RESUME" : "S4_RESUME",\r
+ "S5_RESUME" : "S5_RESUME",\r
+ "FLASH_UPDATE" : "FLASH_UPDATE",\r
+ "RECOVERY_FULL" : "RECOVERY_FULL",\r
+ "RECOVERY_MINIMAL" : "RECOVERY_MINIMAL",\r
+ "RECOVERY_NO_CHANGE" : "RECOVERY_NO_CHANGE",\r
+ "RECOVERY_DIAGNOSTICS" : "RECOVERY_DIAGNOSTICS",\r
+ "RECOVERY_DEFAULT" : "RECOVERY_DEFAULT",\r
+ "RECOVERY_S2_RESUME" : "RECOVERY_S2_RESUME",\r
+ "RECOVERY_S3_RESUME" : "RECOVERY_S3_RESUME",\r
+ "RECOVERY_S4_RESUME" : "RECOVERY_S4_RESUME",\r
+ "RECOVERY_S5_RESUME" : "RECOVERY_S5_RESUME",\r
+ "RECOVERY_FLASH_UPDATE" : "RECOVERY_FLASH_UPDATE",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+HOB_TOKENS = { \r
+ "PHIT" : "PHIT",\r
+ "MEMORY_ALLOCATION" : "MEMORY_ALLOCATION",\r
+ "LOAD_PEIM" : "LOAD_PEIM",\r
+ "RESOURCE_DESCRIPTOR" : "RESOURCE_DESCRIPTOR",\r
+ "FIRMWARE_VOLUME" : "FIRMWARE_VOLUME",\r
+ "UNDEFINED" : "UNDEFINED" \r
+ }\r
+\r
+##\r
+# Usage List Items for Protocol\r
+#\r
+PROTOCOL_USAGE_LIST = USAGE_LIST + ["TO_START", "BY_START"]\r
+\r
+##\r
+# End of Line\r
+# Use this but not os.linesep for os.linesep has bug in it.\r
+#\r
+END_OF_LINE = '\n'\r
+\r
+##\r
+# Arch List Items\r
+#\r
+ARCH_LIST = ["IA32",\r
+ "X64",\r
+ "IPF",\r
+ "EBC",\r
+ "COMMON"]\r
+##\r
+# PCD driver type list items\r
+#\r
+PCD_DIRVER_TYPE_LIST = ["PEI_PCD_DRIVER", "DXE_PCD_DRIVER"]\r
+\r
+##\r
+# Boot Mode List Items\r
+#\r
+BOOT_MODE_LIST = ["FULL",\r
+ "MINIMAL",\r
+ "NO_CHANGE", \r
+ "DIAGNOSTICS", \r
+ "DEFAULT", \r
+ "S2_RESUME",\r
+ "S3_RESUME", \r
+ "S4_RESUME", \r
+ "S5_RESUME", \r
+ "FLASH_UPDATE",\r
+ "RECOVERY_FULL", \r
+ "RECOVERY_MINIMAL", \r
+ "RECOVERY_NO_CHANGE",\r
+ "RECOVERY_DIAGNOSTICS", \r
+ "RECOVERY_DEFAULT",\r
+ "RECOVERY_S2_RESUME", \r
+ "RECOVERY_S3_RESUME",\r
+ "RECOVERY_S4_RESUME", \r
+ "RECOVERY_S5_RESUME",\r
+ "RECOVERY_FLASH_UPDATE"]\r
+\r
+##\r
+# Event Type List Items\r
+#\r
+EVENT_TYPE_LIST = ["EVENT_TYPE_PERIODIC_TIMER",\r
+ "EVENT_TYPE_RELATIVE_TIMER"]\r
+\r
+##\r
+# Hob Type List Items\r
+#\r
+HOB_TYPE_LIST = ["PHIT", \r
+ "MEMORY_ALLOCATION",\r
+ "RESOURCE_DESCRIPTOR", \r
+ "FIRMWARE_VOLUME",\r
+ "LOAD_PEIM"]\r
+\r
+##\r
+# GUID_TYPE_LIST\r
+#\r
+GUID_TYPE_LIST = ["Event", "File", "FV", "GUID", "HII", "HOB",\r
+ "SystemTable", "TokenSpaceGuid", "Variable"]\r
+##\r
+# PCD Usage Type List of Package\r
+#\r
+PCD_USAGE_TYPE_LIST_OF_PACKAGE = ["FeatureFlag", "PatchableInModule",\r
+ "FixedAtBuild", "Dynamic", "DynamicEx"]\r
+\r
+##\r
+# PCD Usage Type List of Module\r
+#\r
+PCD_USAGE_TYPE_LIST_OF_MODULE = ["FEATUREPCD", "PATCHPCD", "FIXEDPCD", "PCD", "PCDEX"]\r
+##\r
+# PCD Usage Type List of UPT\r
+#\r
+PCD_USAGE_TYPE_LIST_OF_UPT = PCD_USAGE_TYPE_LIST_OF_MODULE\r
+\r
+##\r
+# Binary File Type List\r
+#\r
+BINARY_FILE_TYPE_LIST = ["GUID", "PE32", "PIC", "TE", "DXE_DEPEX", "VER", "UI", "COMPAT16", "FV", "BIN", "RAW",\r
+ "ACPI", "ASL",\r
+ "PEI_DEPEX",\r
+ "SMM_DEPEX",\r
+ "SUBTYPE_GUID" \r
+ ]\r
+BINARY_FILE_TYPE_LIST_IN_UDP = \\r
+ ["GUID", "FREEFORM",\r
+ "UEFI_IMAGE", "PE32", "PIC",\r
+ "PEI_DEPEX", \r
+ "DXE_DEPEX",\r
+ "SMM_DEPEX",\r
+ "FV", "TE",\r
+ "BIN", "VER", "UI" \r
+ ]\r
+\r
+##\r
+# Possible values for COMPONENT_TYPE, and their descriptions, are listed in \r
+# the table, \r
+# "Component (module) Types." For each component, the BASE_NAME and \r
+# COMPONENT_TYPE \r
+# are required. The COMPONENT_TYPE definition is case sensitive.\r
+#\r
+COMPONENT_TYPE_LIST = [\r
+ "APPLICATION",\r
+ "ACPITABLE",\r
+ "APRIORI",\r
+ "BINARY",\r
+ "BS_DRIVER",\r
+ "CONFIG",\r
+ "FILE",\r
+ "FVIMAGEFILE",\r
+ "LIBRARY",\r
+ "LOGO",\r
+ "LEGACY16",\r
+ "MICROCODE",\r
+ "PE32_PEIM",\r
+ "PEI_CORE",\r
+ "RAWFILE",\r
+ "RT_DRIVER",\r
+ "SAL_RT_DRIVER",\r
+ "SECURITY_CORE",\r
+ "COMBINED_PEIM_DRIVER",\r
+ "PIC_PEIM",\r
+ "RELOCATABLE_PEIM"\r
+ ]\r
+\r
+##\r
+# Common Definitions\r
+#\r
+TAB_SPLIT = '.'\r
+TAB_COMMENT_EDK1_START = '/*'\r
+TAB_COMMENT_EDK1_END = '*/'\r
+TAB_COMMENT_EDK1_SPLIT = '//'\r
+TAB_COMMENT_SPLIT = '#'\r
+TAB_EQUAL_SPLIT = '='\r
+TAB_DEQUAL_SPLIT = '=='\r
+TAB_VALUE_SPLIT = '|'\r
+TAB_COMMA_SPLIT = ','\r
+TAB_SPACE_SPLIT = ' '\r
+TAB_UNDERLINE_SPLIT = '_'\r
+TAB_SEMI_COLON_SPLIT = ';'\r
+TAB_COLON_SPLIT = ':'\r
+TAB_SECTION_START = '['\r
+TAB_SECTION_END = ']'\r
+TAB_OPTION_START = '<'\r
+TAB_OPTION_END = '>'\r
+TAB_SLASH = '\\'\r
+TAB_BACK_SLASH = '/'\r
+TAB_SPECIAL_COMMENT = '##'\r
+TAB_HEADER_COMMENT = '@file'\r
+TAB_STAR = "*"\r
+\r
+TAB_EDK_SOURCE = '$(EDK_SOURCE)'\r
+TAB_EFI_SOURCE = '$(EFI_SOURCE)'\r
+TAB_WORKSPACE = '$(WORKSPACE)'\r
+\r
+TAB_ARCH_NULL = ''\r
+TAB_ARCH_COMMON = 'COMMON'\r
+TAB_ARCH_IA32 = 'IA32'\r
+TAB_ARCH_X64 = 'X64'\r
+TAB_ARCH_IPF = 'IPF'\r
+TAB_ARCH_ARM = 'ARM'\r
+TAB_ARCH_EBC = 'EBC'\r
+\r
+ARCH_LIST = \\r
+[TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_EBC]\r
+\r
+SUP_MODULE_BASE = 'BASE'\r
+SUP_MODULE_SEC = 'SEC'\r
+SUP_MODULE_PEI_CORE = 'PEI_CORE'\r
+SUP_MODULE_PEIM = 'PEIM'\r
+SUP_MODULE_DXE_CORE = 'DXE_CORE'\r
+SUP_MODULE_DXE_DRIVER = 'DXE_DRIVER'\r
+SUP_MODULE_DXE_RUNTIME_DRIVER = 'DXE_RUNTIME_DRIVER'\r
+SUP_MODULE_DXE_SAL_DRIVER = 'DXE_SAL_DRIVER'\r
+SUP_MODULE_DXE_SMM_DRIVER = 'DXE_SMM_DRIVER'\r
+SUP_MODULE_UEFI_DRIVER = 'UEFI_DRIVER'\r
+SUP_MODULE_UEFI_APPLICATION = 'UEFI_APPLICATION'\r
+SUP_MODULE_USER_DEFINED = 'USER_DEFINED'\r
+SUP_MODULE_SMM_CORE = 'SMM_CORE'\r
+\r
+SUP_MODULE_LIST = \\r
+[SUP_MODULE_BASE, SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, \\r
+SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, \\r
+ SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, \\r
+ SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_UEFI_DRIVER, \\r
+ SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED, \\r
+ SUP_MODULE_SMM_CORE]\r
+SUP_MODULE_LIST_STRING = TAB_VALUE_SPLIT.join(l for l in SUP_MODULE_LIST)\r
+\r
+EDK_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
+EDK_COMPONENT_TYPE_SECUARITY_CORE = 'SECUARITY_CORE'\r
+EDK_COMPONENT_TYPE_PEI_CORE = 'PEI_CORE'\r
+EDK_COMPONENT_TYPE_COMBINED_PEIM_DRIVER = 'COMBINED_PEIM_DRIVER'\r
+EDK_COMPONENT_TYPE_PIC_PEIM = 'PIC_PEIM'\r
+EDK_COMPONENT_TYPE_RELOCATABLE_PEIM = 'RELOCATABLE_PEIM'\r
+EDK_COMPONENT_TYPE_BS_DRIVER = 'BS_DRIVER'\r
+EDK_COMPONENT_TYPE_RT_DRIVER = 'RT_DRIVER'\r
+EDK_COMPONENT_TYPE_SAL_RT_DRIVER = 'SAL_RT_DRIVER'\r
+EDK_COMPONENT_TYPE_APPLICATION = 'APPLICATION'\r
+EDK_NAME = 'EDK'\r
+EDKII_NAME = 'EDKII'\r
+\r
+BINARY_FILE_TYPE_FW = 'FW'\r
+BINARY_FILE_TYPE_GUID = 'GUID'\r
+BINARY_FILE_TYPE_PREEFORM = 'PREEFORM'\r
+BINARY_FILE_TYPE_UEFI_APP = 'UEFI_APP'\r
+BINARY_FILE_TYPE_UNI_UI = 'UNI_UI'\r
+BINARY_FILE_TYPE_SEC_UI = 'SEC_UI'\r
+BINARY_FILE_TYPE_UNI_VER = 'UNI_VER'\r
+BINARY_FILE_TYPE_SEC_VER = 'SEC_VER'\r
+BINARY_FILE_TYPE_LIB = 'LIB'\r
+BINARY_FILE_TYPE_PE32 = 'PE32'\r
+BINARY_FILE_TYPE_PIC = 'PIC'\r
+BINARY_FILE_TYPE_PEI_DEPEX = 'PEI_DEPEX'\r
+BINARY_FILE_TYPE_DXE_DEPEX = 'DXE_DEPEX'\r
+BINARY_FILE_TYPE_SMM_DEPEX = 'SMM_DEPEX'\r
+BINARY_FILE_TYPE_TE = 'TE'\r
+BINARY_FILE_TYPE_VER = 'VER'\r
+BINARY_FILE_TYPE_UI = 'UI'\r
+BINARY_FILE_TYPE_BIN = 'BIN'\r
+BINARY_FILE_TYPE_FV = 'FV'\r
+BINARY_FILE_TYPE_UI_LIST = [BINARY_FILE_TYPE_UNI_UI,\r
+ BINARY_FILE_TYPE_SEC_UI,\r
+ BINARY_FILE_TYPE_UI\r
+ ] \r
+BINARY_FILE_TYPE_VER_LIST = [BINARY_FILE_TYPE_UNI_VER,\r
+ BINARY_FILE_TYPE_SEC_VER,\r
+ BINARY_FILE_TYPE_VER\r
+ ]\r
+\r
+DEPEX_SECTION_LIST = ['<PEI_DEPEX>',\r
+ '<DXE_DEPEX>',\r
+ '<SMM_DEPEX>'\r
+ ]\r
+\r
+PLATFORM_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
+PLATFORM_COMPONENT_TYPE_LIBRARY_CLASS = 'LIBRARY_CLASS'\r
+PLATFORM_COMPONENT_TYPE_MODULE = 'MODULE'\r
+\r
+TAB_LIBRARIES = 'Libraries'\r
+\r
+TAB_SOURCE = 'Source'\r
+TAB_SOURCES = 'Sources'\r
+TAB_SOURCES_COMMON = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_SOURCES_IA32 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_SOURCES_X64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_SOURCES_IPF = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_SOURCES_ARM = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_SOURCES_EBC = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_BINARIES = 'Binaries'\r
+TAB_BINARIES_COMMON = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_BINARIES_IA32 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_BINARIES_X64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_BINARIES_IPF = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_BINARIES_ARM = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_BINARIES_EBC = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_INCLUDES = 'Includes'\r
+TAB_INCLUDES_COMMON = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_INCLUDES_IA32 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_INCLUDES_X64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_INCLUDES_IPF = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_INCLUDES_ARM = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_INCLUDES_EBC = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_GUIDS = 'Guids'\r
+TAB_GUIDS_COMMON = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_GUIDS_IA32 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_GUIDS_X64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_GUIDS_IPF = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_GUIDS_ARM = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_GUIDS_EBC = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PROTOCOLS = 'Protocols'\r
+TAB_PROTOCOLS_COMMON = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_PROTOCOLS_IA32 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PROTOCOLS_X64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PROTOCOLS_IPF = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PROTOCOLS_ARM = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PROTOCOLS_EBC = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PPIS = 'Ppis'\r
+TAB_PPIS_COMMON = TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_PPIS_IA32 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PPIS_X64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PPIS_IPF = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PPIS_ARM = TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PPIS_EBC = TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_LIBRARY_CLASSES = 'LibraryClasses'\r
+TAB_LIBRARY_CLASSES_COMMON = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_LIBRARY_CLASSES_IA32 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_LIBRARY_CLASSES_X64 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_LIBRARY_CLASSES_IPF = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_LIBRARY_CLASSES_ARM = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_LIBRARY_CLASSES_EBC = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PACKAGES = 'Packages'\r
+TAB_PACKAGES_COMMON = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_PACKAGES_IA32 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PACKAGES_X64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PACKAGES_IPF = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PACKAGES_ARM = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PACKAGES_EBC = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PCDS = 'Pcds'\r
+TAB_PCDS_FIXED_AT_BUILD = 'FixedAtBuild'\r
+TAB_PCDS_PATCHABLE_IN_MODULE = 'PatchableInModule'\r
+TAB_PCDS_FEATURE_FLAG = 'FeatureFlag'\r
+TAB_PCDS_DYNAMIC_EX = 'DynamicEx'\r
+TAB_PCDS_DYNAMIC_EX_DEFAULT = 'DynamicExDefault'\r
+TAB_PCDS_DYNAMIC_EX_VPD = 'DynamicExVpd'\r
+TAB_PCDS_DYNAMIC_EX_HII = 'DynamicExHii'\r
+TAB_PCDS_DYNAMIC = 'Dynamic'\r
+TAB_PCDS_DYNAMIC_DEFAULT = 'DynamicDefault'\r
+TAB_PCDS_DYNAMIC_VPD = 'DynamicVpd'\r
+TAB_PCDS_DYNAMIC_HII = 'DynamicHii'\r
+\r
+TAB_PTR_TYPE_PCD = 'VOID*'\r
+\r
+PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, \\r
+ TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII]\r
+PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, \\r
+ TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
+\r
+## Dynamic-ex PCD types\r
+#\r
+gDYNAMIC_EX_PCD = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, \\r
+ TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
+\r
+TAB_PCDS_FIXED_AT_BUILD_NULL = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD\r
+TAB_PCDS_FIXED_AT_BUILD_COMMON = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_PCDS_FIXED_AT_BUILD_IA32 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PCDS_FIXED_AT_BUILD_X64 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PCDS_FIXED_AT_BUILD_IPF = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PCDS_FIXED_AT_BUILD_ARM = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PCDS_FIXED_AT_BUILD_EBC = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
+TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PCDS_PATCHABLE_IN_MODULE_NULL = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE\r
+TAB_PCDS_PATCHABLE_IN_MODULE_COMMON = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE \\r
++ TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_PCDS_PATCHABLE_IN_MODULE_IA32 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
+TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PCDS_PATCHABLE_IN_MODULE_X64 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
+TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PCDS_PATCHABLE_IN_MODULE_IPF = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
+TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PCDS_PATCHABLE_IN_MODULE_ARM = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
+TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PCDS_PATCHABLE_IN_MODULE_EBC = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
+TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PCDS_FEATURE_FLAG_NULL = TAB_PCDS + TAB_PCDS_FEATURE_FLAG\r
+TAB_PCDS_FEATURE_FLAG_COMMON = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT \\r
++ TAB_ARCH_COMMON\r
+TAB_PCDS_FEATURE_FLAG_IA32 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
+TAB_ARCH_IA32\r
+TAB_PCDS_FEATURE_FLAG_X64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
+TAB_ARCH_X64\r
+TAB_PCDS_FEATURE_FLAG_IPF = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
+TAB_ARCH_IPF\r
+TAB_PCDS_FEATURE_FLAG_ARM = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
+TAB_ARCH_ARM\r
+TAB_PCDS_FEATURE_FLAG_EBC = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
+TAB_ARCH_EBC\r
+\r
+TAB_PCDS_DYNAMIC_EX_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX\r
+TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_DEFAULT\r
+TAB_PCDS_DYNAMIC_EX_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_HII\r
+TAB_PCDS_DYNAMIC_EX_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_VPD\r
+TAB_PCDS_DYNAMIC_EX_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_COMMON\r
+TAB_PCDS_DYNAMIC_EX_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_IA32\r
+TAB_PCDS_DYNAMIC_EX_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_X64\r
+TAB_PCDS_DYNAMIC_EX_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_IPF\r
+TAB_PCDS_DYNAMIC_EX_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_ARM\r
+TAB_PCDS_DYNAMIC_EX_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
+TAB_ARCH_EBC\r
+\r
+TAB_PCDS_DYNAMIC_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC\r
+TAB_PCDS_DYNAMIC_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_DEFAULT\r
+TAB_PCDS_DYNAMIC_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_HII\r
+TAB_PCDS_DYNAMIC_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_VPD\r
+TAB_PCDS_DYNAMIC_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + \\r
+TAB_ARCH_COMMON\r
+TAB_PCDS_DYNAMIC_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_PCDS_DYNAMIC_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_PCDS_DYNAMIC_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_PCDS_DYNAMIC_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_PCDS_DYNAMIC_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC_DEFAULT_NULL, \\r
+ TAB_PCDS_DYNAMIC_VPD_NULL, \\r
+ TAB_PCDS_DYNAMIC_HII_NULL]\r
+TAB_PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL, \\r
+ TAB_PCDS_DYNAMIC_EX_VPD_NULL, \\r
+ TAB_PCDS_DYNAMIC_EX_HII_NULL]\r
+\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE = \\r
+'PcdLoadFixAddressPeiCodePageNumber'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE = \\r
+'PcdLoadFixAddressBootTimeCodePageNumber'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE = \\r
+'PcdLoadFixAddressRuntimeCodePageNumber'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE = \\r
+'PcdLoadFixAddressSmmCodePageNumber'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_LIST = \\r
+[TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE, \\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE, \\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE, \\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE]\r
+PCD_SECTION_LIST = [TAB_PCDS_FIXED_AT_BUILD_NULL.upper(), \\r
+ TAB_PCDS_PATCHABLE_IN_MODULE_NULL.upper(), \\r
+ TAB_PCDS_FEATURE_FLAG_NULL.upper(), \\r
+ TAB_PCDS_DYNAMIC_EX_NULL.upper(), \\r
+ TAB_PCDS_DYNAMIC_NULL.upper()]\r
+INF_PCD_SECTION_LIST = ["FixedPcd".upper(), "FeaturePcd".upper(), \\r
+ "PatchPcd".upper(), "Pcd".upper(), "PcdEx".upper()]\r
+\r
+TAB_DEPEX = 'Depex'\r
+TAB_DEPEX_COMMON = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_DEPEX_IA32 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_DEPEX_X64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_DEPEX_IPF = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_DEPEX_ARM = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_DEPEX_EBC = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_SKUIDS = 'SkuIds'\r
+\r
+TAB_LIBRARIES = 'Libraries'\r
+TAB_LIBRARIES_COMMON = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_LIBRARIES_IA32 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_LIBRARIES_X64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_LIBRARIES_IPF = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_LIBRARIES_ARM = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_LIBRARIES_EBC = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_COMPONENTS = 'Components'\r
+TAB_COMPONENTS_COMMON = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_COMMON\r
+TAB_COMPONENTS_IA32 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IA32\r
+TAB_COMPONENTS_X64 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_X64\r
+TAB_COMPONENTS_IPF = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF\r
+TAB_COMPONENTS_ARM = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_ARM\r
+TAB_COMPONENTS_EBC = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_EBC\r
+\r
+TAB_COMPONENTS_SOURCE_OVERRIDE_PATH = 'SOURCE_OVERRIDE_PATH'\r
+\r
+TAB_BUILD_OPTIONS = 'BuildOptions'\r
+\r
+TAB_DEFINE = 'DEFINE'\r
+TAB_NMAKE = 'Nmake'\r
+TAB_USER_EXTENSIONS = 'UserExtensions'\r
+TAB_INCLUDE = '!include'\r
+\r
+#\r
+# Common Define\r
+#\r
+TAB_COMMON_DEFINES = 'Defines'\r
+\r
+#\r
+# Inf Definitions\r
+#\r
+TAB_INF_DEFINES = TAB_COMMON_DEFINES\r
+TAB_INF_DEFINES_INF_VERSION = 'INF_VERSION'\r
+TAB_INF_DEFINES_BASE_NAME = 'BASE_NAME'\r
+TAB_INF_DEFINES_FILE_GUID = 'FILE_GUID'\r
+TAB_INF_DEFINES_MODULE_TYPE = 'MODULE_TYPE'\r
+TAB_INF_DEFINES_EFI_SPECIFICATION_VERSION = 'EFI_SPECIFICATION_VERSION'\r
+TAB_INF_DEFINES_UEFI_SPECIFICATION_VERSION = 'UEFI_SPECIFICATION_VERSION'\r
+TAB_INF_DEFINES_PI_SPECIFICATION_VERSION = 'PI_SPECIFICATION_VERSION'\r
+TAB_INF_DEFINES_EDK_RELEASE_VERSION = 'EDK_RELEASE_VERSION'\r
+TAB_INF_DEFINES_BINARY_MODULE = 'BINARY_MODULE'\r
+TAB_INF_DEFINES_LIBRARY_CLASS = 'LIBRARY_CLASS'\r
+TAB_INF_DEFINES_COMPONENT_TYPE = 'COMPONENT_TYPE'\r
+TAB_INF_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME'\r
+TAB_INF_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'\r
+TAB_INF_DEFINES_BUILD_TYPE = 'BUILD_TYPE'\r
+TAB_INF_DEFINES_FFS_EXT = 'FFS_EXT'\r
+TAB_INF_DEFINES_FV_EXT = 'FV_EXT'\r
+TAB_INF_DEFINES_SOURCE_FV = 'SOURCE_FV'\r
+TAB_INF_DEFINES_PACKAGE = 'PACKAGE'\r
+TAB_INF_DEFINES_VERSION_NUMBER = 'VERSION_NUMBER'\r
+TAB_INF_DEFINES_VERSION = 'VERSION' \r
+TAB_INF_DEFINES_VERSION_STRING = 'VERSION_STRING'\r
+TAB_INF_DEFINES_PCD_IS_DRIVER = 'PCD_IS_DRIVER'\r
+TAB_INF_DEFINES_TIANO_EDK1_FLASHMAP_H = 'TIANO_EDK1_FLASHMAP_H'\r
+TAB_INF_DEFINES_ENTRY_POINT = 'ENTRY_POINT'\r
+TAB_INF_DEFINES_UNLOAD_IMAGE = 'UNLOAD_IMAGE'\r
+TAB_INF_DEFINES_CONSTRUCTOR = 'CONSTRUCTOR'\r
+TAB_INF_DEFINES_DESTRUCTOR = 'DESTRUCTOR'\r
+TAB_INF_DEFINES_PCI_VENDOR_ID = 'PCI_VENDOR_ID' \r
+TAB_INF_DEFINES_PCI_DEVICE_ID = 'PCI_DEVICE_ID' \r
+TAB_INF_DEFINES_PCI_CLASS_CODE = 'PCI_CLASS_CODE' \r
+TAB_INF_DEFINES_PCI_REVISION = 'PCI_REVISION'\r
+TAB_INF_DEFINES_PCI_COMPRESS = 'PCI_COMPRESS'\r
+TAB_INF_DEFINES_DEFINE = 'DEFINE'\r
+TAB_INF_DEFINES_SPEC = 'SPEC'\r
+TAB_INF_DEFINES_UEFI_HII_RESOURCE_SECTION = 'UEFI_HII_RESOURCE_SECTION'\r
+TAB_INF_DEFINES_CUSTOM_MAKEFILE = 'CUSTOM_MAKEFILE'\r
+TAB_INF_DEFINES_MACRO = '__MACROS__'\r
+TAB_INF_DEFINES_SHADOW = 'SHADOW'\r
+TAB_INF_DEFINES_DPX_SOURCE = 'DPX_SOURCE'\r
+TAB_INF_FIXED_PCD = 'FixedPcd'\r
+TAB_INF_FEATURE_PCD = 'FeaturePcd'\r
+TAB_INF_PATCH_PCD = 'PatchPcd'\r
+TAB_INF_PCD = 'Pcd'\r
+TAB_INF_PCD_EX = 'PcdEx'\r
+TAB_INF_GUIDTYPE_VAR = 'Variable'\r
+\r
+#\r
+# Dec Definitions\r
+#\r
+TAB_DEC_DEFINES = TAB_COMMON_DEFINES\r
+TAB_DEC_DEFINES_DEC_SPECIFICATION = 'DEC_SPECIFICATION'\r
+TAB_DEC_DEFINES_PACKAGE_NAME = 'PACKAGE_NAME'\r
+TAB_DEC_DEFINES_PACKAGE_GUID = 'PACKAGE_GUID'\r
+TAB_DEC_DEFINES_PACKAGE_VERSION = 'PACKAGE_VERSION'\r
+TAB_DEC_DEFINES_PKG_UNI_FILE = 'PKG_UNI_FILE'\r
+\r
+#\r
+# Dsc Definitions\r
+#\r
+TAB_DSC_DEFINES = TAB_COMMON_DEFINES\r
+TAB_DSC_DEFINES_PLATFORM_NAME = 'PLATFORM_NAME'\r
+TAB_DSC_DEFINES_PLATFORM_GUID = 'PLATFORM_GUID'\r
+TAB_DSC_DEFINES_PLATFORM_VERSION = 'PLATFORM_VERSION'\r
+TAB_DSC_DEFINES_DSC_SPECIFICATION = 'DSC_SPECIFICATION'\r
+TAB_DSC_DEFINES_OUTPUT_DIRECTORY = 'OUTPUT_DIRECTORY'\r
+TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES = 'SUPPORTED_ARCHITECTURES'\r
+TAB_DSC_DEFINES_BUILD_TARGETS = 'BUILD_TARGETS'\r
+TAB_DSC_DEFINES_SKUID_IDENTIFIER = 'SKUID_IDENTIFIER'\r
+TAB_DSC_DEFINES_FLASH_DEFINITION = 'FLASH_DEFINITION'\r
+TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'\r
+TAB_DSC_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME'\r
+TAB_DSC_DEFINES_BS_BASE_ADDRESS = 'BsBaseAddress'\r
+TAB_DSC_DEFINES_RT_BASE_ADDRESS = 'RtBaseAddress'\r
+TAB_DSC_DEFINES_DEFINE = 'DEFINE'\r
+TAB_FIX_LOAD_TOP_MEMORY_ADDRESS = 'FIX_LOAD_TOP_MEMORY_ADDRESS'\r
+\r
+#\r
+# TargetTxt Definitions\r
+#\r
+TAB_TAT_DEFINES_ACTIVE_PLATFORM = 'ACTIVE_PLATFORM'\r
+TAB_TAT_DEFINES_ACTIVE_MODULE = 'ACTIVE_MODULE'\r
+TAB_TAT_DEFINES_TOOL_CHAIN_CONF = 'TOOL_CHAIN_CONF'\r
+TAB_TAT_DEFINES_MULTIPLE_THREAD = 'MULTIPLE_THREAD'\r
+TAB_TAT_DEFINES_MAX_CONCURRENT_THREAD_NUMBER = 'MAX_CONCURRENT_THREAD_NUMBER'\r
+TAB_TAT_DEFINES_TARGET = 'TARGET'\r
+TAB_TAT_DEFINES_TOOL_CHAIN_TAG = 'TOOL_CHAIN_TAG'\r
+TAB_TAT_DEFINES_TARGET_ARCH = 'TARGET_ARCH'\r
+TAB_TAT_DEFINES_BUILD_RULE_CONF = "BUILD_RULE_CONF"\r
+\r
+#\r
+# ToolDef Definitions\r
+#\r
+TAB_TOD_DEFINES_TARGET = 'TARGET'\r
+TAB_TOD_DEFINES_TOOL_CHAIN_TAG = 'TOOL_CHAIN_TAG'\r
+TAB_TOD_DEFINES_TARGET_ARCH = 'TARGET_ARCH'\r
+TAB_TOD_DEFINES_COMMAND_TYPE = 'COMMAND_TYPE'\r
+TAB_TOD_DEFINES_FAMILY = 'FAMILY'\r
+TAB_TOD_DEFINES_BUILDRULEFAMILY = 'BUILDRULEFAMILY'\r
+\r
+#\r
+# Conditional Statements\r
+#\r
+TAB_IF = '!if'\r
+TAB_END_IF = '!endif'\r
+TAB_ELSE_IF = '!elseif'\r
+TAB_ELSE = '!else'\r
+TAB_IF_DEF = '!ifdef'\r
+TAB_IF_N_DEF = '!ifndef'\r
+TAB_IF_EXIST = '!if exist'\r
+\r
+#\r
+# Unknown section\r
+#\r
+TAB_UNKNOWN = 'UNKNOWN'\r
+\r
+#\r
+# Header section (virtual section for abstract, description, copyright, \r
+# license)\r
+#\r
+TAB_HEADER = 'Header'\r
+TAB_HEADER_ABSTRACT = 'Abstract'\r
+TAB_HEADER_DESCRIPTION = 'Description' \r
+TAB_HEADER_COPYRIGHT = 'Copyright'\r
+TAB_HEADER_LICENSE = 'License'\r
+#\r
+# Build database path\r
+#\r
+DATABASE_PATH = ":memory:" \r
+#\r
+# used by ECC\r
+#\r
+MODIFIER_LIST = ['IN', 'OUT', 'OPTIONAL', 'UNALIGNED', 'EFI_RUNTIMESERVICE', \\r
+ 'EFI_BOOTSERVICE', 'EFIAPI']\r
+#\r
+# Dependency Expression\r
+#\r
+DEPEX_SUPPORTED_OPCODE = ["BEFORE", "AFTER", "PUSH", "AND", "OR", "NOT", \\r
+ "END", "SOR", "TRUE", "FALSE", '(', ')']\r
+\r
+TAB_STATIC_LIBRARY = "STATIC-LIBRARY-FILE"\r
+TAB_DYNAMIC_LIBRARY = "DYNAMIC-LIBRARY-FILE"\r
+TAB_FRAMEWORK_IMAGE = "EFI-IMAGE-FILE"\r
+TAB_C_CODE_FILE = "C-CODE-FILE"\r
+TAB_C_HEADER_FILE = "C-HEADER-FILE"\r
+TAB_UNICODE_FILE = "UNICODE-TEXT-FILE"\r
+TAB_DEPENDENCY_EXPRESSION_FILE = "DEPENDENCY-EXPRESSION-FILE"\r
+TAB_UNKNOWN_FILE = "UNKNOWN-TYPE-FILE"\r
+TAB_DEFAULT_BINARY_FILE = "_BINARY_FILE_"\r
+#\r
+# used to indicate the state of processing header comment section of dec, \r
+# inf files\r
+#\r
+HEADER_COMMENT_NOT_STARTED = -1\r
+HEADER_COMMENT_STARTED = 0\r
+HEADER_COMMENT_FILE = 1\r
+HEADER_COMMENT_ABSTRACT = 2\r
+HEADER_COMMENT_DESCRIPTION = 3\r
+HEADER_COMMENT_COPYRIGHT = 4\r
+HEADER_COMMENT_LICENSE = 5\r
+HEADER_COMMENT_END = 6\r
+\r
+#\r
+# Static values for data models\r
+#\r
+MODEL_UNKNOWN = 0\r
+\r
+MODEL_FILE_C = 1001\r
+MODEL_FILE_H = 1002\r
+MODEL_FILE_ASM = 1003\r
+MODEL_FILE_INF = 1011\r
+MODEL_FILE_DEC = 1012\r
+MODEL_FILE_DSC = 1013\r
+MODEL_FILE_FDF = 1014\r
+MODEL_FILE_INC = 1015\r
+MODEL_FILE_CIF = 1016\r
+\r
+MODEL_IDENTIFIER_FILE_HEADER = 2001\r
+MODEL_IDENTIFIER_FUNCTION_HEADER = 2002\r
+MODEL_IDENTIFIER_COMMENT = 2003\r
+MODEL_IDENTIFIER_PARAMETER = 2004\r
+MODEL_IDENTIFIER_STRUCTURE = 2005\r
+MODEL_IDENTIFIER_VARIABLE = 2006\r
+MODEL_IDENTIFIER_INCLUDE = 2007\r
+MODEL_IDENTIFIER_PREDICATE_EXPRESSION = 2008\r
+MODEL_IDENTIFIER_ENUMERATE = 2009\r
+MODEL_IDENTIFIER_PCD = 2010\r
+MODEL_IDENTIFIER_UNION = 2011\r
+MODEL_IDENTIFIER_MACRO_IFDEF = 2012\r
+MODEL_IDENTIFIER_MACRO_IFNDEF = 2013\r
+MODEL_IDENTIFIER_MACRO_DEFINE = 2014\r
+MODEL_IDENTIFIER_MACRO_ENDIF = 2015\r
+MODEL_IDENTIFIER_MACRO_PROGMA = 2016\r
+MODEL_IDENTIFIER_FUNCTION_CALLING = 2018\r
+MODEL_IDENTIFIER_TYPEDEF = 2017\r
+MODEL_IDENTIFIER_FUNCTION_DECLARATION = 2019\r
+MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION = 2020\r
+\r
+MODEL_EFI_PROTOCOL = 3001\r
+MODEL_EFI_PPI = 3002\r
+MODEL_EFI_GUID = 3003\r
+MODEL_EFI_LIBRARY_CLASS = 3004\r
+MODEL_EFI_LIBRARY_INSTANCE = 3005\r
+MODEL_EFI_PCD = 3006\r
+MODEL_EFI_SOURCE_FILE = 3007\r
+MODEL_EFI_BINARY_FILE = 3008\r
+MODEL_EFI_SKU_ID = 3009\r
+MODEL_EFI_INCLUDE = 3010\r
+MODEL_EFI_DEPEX = 3011\r
+\r
+MODEL_PCD = 4000\r
+MODEL_PCD_FIXED_AT_BUILD = 4001\r
+MODEL_PCD_PATCHABLE_IN_MODULE = 4002\r
+MODEL_PCD_FEATURE_FLAG = 4003\r
+MODEL_PCD_DYNAMIC_EX = 4004\r
+MODEL_PCD_DYNAMIC_EX_DEFAULT = 4005\r
+MODEL_PCD_DYNAMIC_EX_VPD = 4006\r
+MODEL_PCD_DYNAMIC_EX_HII = 4007\r
+MODEL_PCD_DYNAMIC = 4008\r
+MODEL_PCD_DYNAMIC_DEFAULT = 4009\r
+MODEL_PCD_DYNAMIC_VPD = 4010\r
+MODEL_PCD_DYNAMIC_HII = 4011\r
+\r
+MODEL_META_DATA_FILE_HEADER = 5000\r
+MODEL_META_DATA_HEADER = 5001\r
+MODEL_META_DATA_INCLUDE = 5002\r
+MODEL_META_DATA_DEFINE = 5003\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IF = 5004\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE = 5005\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF = 5006\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF = 5007\r
+MODEL_META_DATA_BUILD_OPTION = 5008\r
+MODEL_META_DATA_COMPONENT = 5009\r
+MODEL_META_DATA_USER_EXTENSION = 5010\r
+MODEL_META_DATA_PACKAGE = 5011\r
+MODEL_META_DATA_NMAKE = 5012\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSEIF = 50013\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ENDIF = 5014\r
+MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH = 5015\r
+\r
+TOOL_FAMILY_LIST = ["MSFT",\r
+ "INTEL",\r
+ "GCC",\r
+ "RVCT"\r
+ ]\r
+\r
+TYPE_HOB_SECTION = 'HOB'\r
+TYPE_EVENT_SECTION = 'EVENT'\r
+TYPE_BOOTMODE_SECTION = 'BOOTMODE' \r