]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/UPT/Library/DataType.py
BaseTools: Updated build tools to support new LoongArch.
[mirror_edk2.git] / BaseTools / Source / Python / UPT / Library / DataType.py
CommitLineData
4234283c
LG
1## @file\r
2# This file is used to define class for data type structure\r
3#\r
f7496d71 4# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
c53807cb 5# Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.\r
4234283c 6#\r
2e351cbe 7# SPDX-License-Identifier: BSD-2-Clause-Patent\r
4234283c
LG
8\r
9'''\r
10DataType\r
11'''\r
12\r
13##\r
14# Module List Items\r
15#\r
16MODULE_LIST = ["BASE",\r
17 "SEC",\r
18 "PEI_CORE",\r
19 "PEIM",\r
20 "DXE_CORE",\r
21 "DXE_DRIVER",\r
22 "SMM_CORE",\r
23 "DXE_RUNTIME_DRIVER",\r
24 "DXE_SAL_DRIVER",\r
25 "DXE_SMM_DRIVER",\r
26 "UEFI_DRIVER",\r
27 "UEFI_APPLICATION",\r
28 "USER_DEFINED"]\r
29\r
30VALID_DEPEX_MODULE_TYPE_LIST = ["PEIM",\r
31 "DXE_DRIVER",\r
32 "DXE_SMM_DRIVER",\r
33 "DXE_RUNTIME_DRIVER",\r
34 "DXE_SAL_DRIVER",\r
35 "UEFI_DRIVER",\r
36 ]\r
37##\r
38# Usage List Items\r
39#\r
40USAGE_LIST = ["CONSUMES",\r
41 "SOMETIMES_CONSUMES",\r
42 "PRODUCES",\r
43 "SOMETIMES_PRODUCES"]\r
44\r
421ccda3
HC
45TAB_LANGUAGE_EN_US = 'en-US'\r
46TAB_LANGUAGE_ENG = 'eng'\r
47TAB_LANGUAGE_EN = 'en'\r
48TAB_LANGUAGE_EN_X = 'en-x-tianocore'\r
4234283c
LG
49\r
50USAGE_ITEM_PRODUCES = 'PRODUCES'\r
51USAGE_ITEM_SOMETIMES_PRODUCES = 'SOMETIMES_PRODUCES'\r
52USAGE_ITEM_CONSUMES = 'CONSUMES'\r
53USAGE_ITEM_SOMETIMES_CONSUMES = 'SOMETIMES_CONSUMES'\r
54USAGE_ITEM_TO_START = 'TO_START'\r
55USAGE_ITEM_BY_START = 'BY_START'\r
56USAGE_ITEM_NOTIFY = 'NOTIFY'\r
57USAGE_ITEM_UNDEFINED = 'UNDEFINED'\r
58\r
59USAGE_CONSUMES_LIST = [USAGE_ITEM_CONSUMES,\r
60 'CONSUMED',\r
61 'ALWAYS_CONSUMED',\r
f7496d71 62 'ALWAYS_CONSUMES'\r
4234283c
LG
63 ]\r
64\r
65USAGE_PRODUCES_LIST = [USAGE_ITEM_PRODUCES,\r
66 'PRODUCED',\r
67 'ALWAYS_PRODUCED',\r
f7496d71 68 'ALWAYS_PRODUCES'\r
4234283c
LG
69 ]\r
70\r
71USAGE_SOMETIMES_PRODUCES_LIST = [USAGE_ITEM_SOMETIMES_PRODUCES,\r
72 'SOMETIMES_PRODUCED'\r
73 ]\r
74\r
75USAGE_SOMETIMES_CONSUMES_LIST = [USAGE_ITEM_SOMETIMES_CONSUMES,\r
76 'SOMETIMES_CONSUMED'\r
77 ]\r
78\r
79ITEM_UNDEFINED = 'UNDEFINED'\r
80\r
421ccda3
HC
81TAB_PCD_VALIDRANGE = '@ValidRange'\r
82TAB_PCD_VALIDLIST = '@ValidList'\r
83TAB_PCD_EXPRESSION = '@Expression'\r
84TAB_PCD_PROMPT = '@Prompt'\r
85TAB_STR_TOKENCNAME = 'STR'\r
86TAB_STR_TOKENPROMPT = 'PROMPT'\r
87TAB_STR_TOKENHELP = 'HELP'\r
88TAB_STR_TOKENERR = 'ERR'\r
4234283c
LG
89\r
90#\r
fb0b35e0 91# Dictionary of usage tokens and their synonyms\r
f7496d71 92#\r
4234283c
LG
93ALL_USAGE_TOKENS = {\r
94 "PRODUCES" : "PRODUCES",\r
95 "PRODUCED" : "PRODUCES",\r
96 "ALWAYS_PRODUCES" : "PRODUCES",\r
97 "ALWAYS_PRODUCED" : "PRODUCES",\r
98 "SOMETIMES_PRODUCES" : "SOMETIMES_PRODUCES",\r
99 "SOMETIMES_PRODUCED" : "SOMETIMES_PRODUCES",\r
100 "CONSUMES" : "CONSUMES",\r
101 "CONSUMED" : "CONSUMES",\r
102 "ALWAYS_CONSUMES" : "CONSUMES",\r
103 "ALWAYS_CONSUMED" : "CONSUMES",\r
104 "SOMETIMES_CONSUMES" : "SOMETIMES_CONSUMES",\r
105 "SOMETIMES_CONSUMED" : "SOMETIMES_CONSUMES",\r
106 "SOMETIME_CONSUMES" : "SOMETIMES_CONSUMES",\r
f7496d71 107 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
108 }\r
109\r
110PROTOCOL_USAGE_TOKENS = {\r
111 "TO_START" : "TO_START",\r
112 "BY_START" : "BY_START"\r
113 }\r
f7496d71 114\r
4234283c 115PROTOCOL_USAGE_TOKENS.update (ALL_USAGE_TOKENS)\r
f7496d71 116\r
4234283c
LG
117#\r
118# Dictionary of GUID type tokens\r
f7496d71
LG
119#\r
120GUID_TYPE_TOKENS = {\r
4234283c
LG
121 "Event" : "Event",\r
122 "File" : "File",\r
123 "FV" : "FV",\r
124 "GUID" : "GUID",\r
125 "Guid" : "GUID",\r
126 "HII" : "HII",\r
127 "HOB" : "HOB",\r
128 "Hob" : "HOB",\r
129 "Hob:" : "HOB",\r
130 "SystemTable" : "SystemTable",\r
131 "TokenSpaceGuid" : "TokenSpaceGuid",\r
f7496d71 132 "UNDEFINED" : "UNDEFINED"\r
4234283c 133 }\r
f7496d71 134\r
4234283c
LG
135#\r
136# Dictionary of Protocol Notify tokens and their synonyms\r
f7496d71
LG
137#\r
138PROTOCOL_NOTIFY_TOKENS = {\r
4234283c
LG
139 "NOTIFY" : "NOTIFY",\r
140 "PROTOCOL_NOTIFY" : "NOTIFY",\r
f7496d71 141 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
142 }\r
143\r
144#\r
145# Dictionary of PPI Notify tokens and their synonyms\r
f7496d71
LG
146#\r
147PPI_NOTIFY_TOKENS = {\r
4234283c
LG
148 "NOTIFY" : "NOTIFY",\r
149 "PPI_NOTIFY" : "NOTIFY",\r
f7496d71 150 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
151 }\r
152\r
153EVENT_TOKENS = {\r
154 "EVENT_TYPE_PERIODIC_TIMER" : "EVENT_TYPE_PERIODIC_TIMER",\r
155 "EVENT_TYPE_RELATIVE_TIMER" : "EVENT_TYPE_RELATIVE_TIMER",\r
f7496d71 156 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
157 }\r
158\r
159BOOTMODE_TOKENS = {\r
160 "FULL" : "FULL",\r
161 "MINIMAL" : "MINIMAL",\r
162 "NO_CHANGE" : "NO_CHANGE",\r
163 "DIAGNOSTICS" : "DIAGNOSTICS",\r
164 "DEFAULT" : "DEFAULT",\r
165 "S2_RESUME" : "S2_RESUME",\r
166 "S3_RESUME" : "S3_RESUME",\r
167 "S4_RESUME" : "S4_RESUME",\r
168 "S5_RESUME" : "S5_RESUME",\r
169 "FLASH_UPDATE" : "FLASH_UPDATE",\r
170 "RECOVERY_FULL" : "RECOVERY_FULL",\r
171 "RECOVERY_MINIMAL" : "RECOVERY_MINIMAL",\r
172 "RECOVERY_NO_CHANGE" : "RECOVERY_NO_CHANGE",\r
173 "RECOVERY_DIAGNOSTICS" : "RECOVERY_DIAGNOSTICS",\r
174 "RECOVERY_DEFAULT" : "RECOVERY_DEFAULT",\r
175 "RECOVERY_S2_RESUME" : "RECOVERY_S2_RESUME",\r
176 "RECOVERY_S3_RESUME" : "RECOVERY_S3_RESUME",\r
177 "RECOVERY_S4_RESUME" : "RECOVERY_S4_RESUME",\r
178 "RECOVERY_S5_RESUME" : "RECOVERY_S5_RESUME",\r
179 "RECOVERY_FLASH_UPDATE" : "RECOVERY_FLASH_UPDATE",\r
f7496d71 180 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
181 }\r
182\r
f7496d71 183HOB_TOKENS = {\r
4234283c
LG
184 "PHIT" : "PHIT",\r
185 "MEMORY_ALLOCATION" : "MEMORY_ALLOCATION",\r
186 "LOAD_PEIM" : "LOAD_PEIM",\r
187 "RESOURCE_DESCRIPTOR" : "RESOURCE_DESCRIPTOR",\r
188 "FIRMWARE_VOLUME" : "FIRMWARE_VOLUME",\r
f7496d71 189 "UNDEFINED" : "UNDEFINED"\r
4234283c
LG
190 }\r
191\r
192##\r
193# Usage List Items for Protocol\r
194#\r
195PROTOCOL_USAGE_LIST = USAGE_LIST + ["TO_START", "BY_START"]\r
196\r
197##\r
198# End of Line\r
199# Use this but not os.linesep for os.linesep has bug in it.\r
200#\r
201END_OF_LINE = '\n'\r
202\r
203##\r
204# Arch List Items\r
205#\r
206ARCH_LIST = ["IA32",\r
207 "X64",\r
208 "IPF",\r
209 "EBC",\r
210 "COMMON"]\r
211##\r
212# PCD driver type list items\r
213#\r
2d53d54a 214PCD_DRIVER_TYPE_LIST = ["PEI_PCD_DRIVER", "DXE_PCD_DRIVER"]\r
4234283c
LG
215\r
216##\r
217# Boot Mode List Items\r
218#\r
219BOOT_MODE_LIST = ["FULL",\r
220 "MINIMAL",\r
f7496d71
LG
221 "NO_CHANGE",\r
222 "DIAGNOSTICS",\r
223 "DEFAULT",\r
4234283c 224 "S2_RESUME",\r
f7496d71
LG
225 "S3_RESUME",\r
226 "S4_RESUME",\r
227 "S5_RESUME",\r
4234283c 228 "FLASH_UPDATE",\r
f7496d71
LG
229 "RECOVERY_FULL",\r
230 "RECOVERY_MINIMAL",\r
4234283c 231 "RECOVERY_NO_CHANGE",\r
f7496d71 232 "RECOVERY_DIAGNOSTICS",\r
4234283c 233 "RECOVERY_DEFAULT",\r
f7496d71 234 "RECOVERY_S2_RESUME",\r
4234283c 235 "RECOVERY_S3_RESUME",\r
f7496d71 236 "RECOVERY_S4_RESUME",\r
4234283c
LG
237 "RECOVERY_S5_RESUME",\r
238 "RECOVERY_FLASH_UPDATE"]\r
239\r
240##\r
241# Event Type List Items\r
242#\r
243EVENT_TYPE_LIST = ["EVENT_TYPE_PERIODIC_TIMER",\r
244 "EVENT_TYPE_RELATIVE_TIMER"]\r
245\r
246##\r
247# Hob Type List Items\r
248#\r
f7496d71 249HOB_TYPE_LIST = ["PHIT",\r
4234283c 250 "MEMORY_ALLOCATION",\r
f7496d71 251 "RESOURCE_DESCRIPTOR",\r
4234283c
LG
252 "FIRMWARE_VOLUME",\r
253 "LOAD_PEIM"]\r
254\r
255##\r
256# GUID_TYPE_LIST\r
257#\r
258GUID_TYPE_LIST = ["Event", "File", "FV", "GUID", "HII", "HOB",\r
259 "SystemTable", "TokenSpaceGuid", "Variable"]\r
260##\r
261# PCD Usage Type List of Package\r
262#\r
263PCD_USAGE_TYPE_LIST_OF_PACKAGE = ["FeatureFlag", "PatchableInModule",\r
264 "FixedAtBuild", "Dynamic", "DynamicEx"]\r
265\r
266##\r
267# PCD Usage Type List of Module\r
268#\r
269PCD_USAGE_TYPE_LIST_OF_MODULE = ["FEATUREPCD", "PATCHPCD", "FIXEDPCD", "PCD", "PCDEX"]\r
270##\r
271# PCD Usage Type List of UPT\r
272#\r
273PCD_USAGE_TYPE_LIST_OF_UPT = PCD_USAGE_TYPE_LIST_OF_MODULE\r
274\r
275##\r
276# Binary File Type List\r
277#\r
421ccda3 278BINARY_FILE_TYPE_LIST = ["PE32", "PIC", "TE", "DXE_DEPEX", "VER", "UI", "COMPAT16", "FV", "BIN", "RAW",\r
4234283c
LG
279 "ACPI", "ASL",\r
280 "PEI_DEPEX",\r
281 "SMM_DEPEX",\r
421ccda3
HC
282 "SUBTYPE_GUID",\r
283 "DISPOSABLE"\r
4234283c
LG
284 ]\r
285BINARY_FILE_TYPE_LIST_IN_UDP = \\r
286 ["GUID", "FREEFORM",\r
287 "UEFI_IMAGE", "PE32", "PIC",\r
f7496d71 288 "PEI_DEPEX",\r
4234283c
LG
289 "DXE_DEPEX",\r
290 "SMM_DEPEX",\r
291 "FV", "TE",\r
f7496d71 292 "BIN", "VER", "UI"\r
4234283c
LG
293 ]\r
294\r
421ccda3 295SUBTYPE_GUID_BINARY_FILE_TYPE = "FREEFORM"\r
4234283c 296##\r
f7496d71
LG
297# Possible values for COMPONENT_TYPE, and their descriptions, are listed in\r
298# the table,\r
299# "Component (module) Types." For each component, the BASE_NAME and\r
300# COMPONENT_TYPE\r
4234283c
LG
301# are required. The COMPONENT_TYPE definition is case sensitive.\r
302#\r
303COMPONENT_TYPE_LIST = [\r
304 "APPLICATION",\r
305 "ACPITABLE",\r
306 "APRIORI",\r
307 "BINARY",\r
308 "BS_DRIVER",\r
309 "CONFIG",\r
310 "FILE",\r
311 "FVIMAGEFILE",\r
312 "LIBRARY",\r
313 "LOGO",\r
314 "LEGACY16",\r
315 "MICROCODE",\r
316 "PE32_PEIM",\r
317 "PEI_CORE",\r
318 "RAWFILE",\r
319 "RT_DRIVER",\r
320 "SAL_RT_DRIVER",\r
321 "SECURITY_CORE",\r
322 "COMBINED_PEIM_DRIVER",\r
323 "PIC_PEIM",\r
324 "RELOCATABLE_PEIM"\r
325 ]\r
326\r
327##\r
328# Common Definitions\r
329#\r
330TAB_SPLIT = '.'\r
331TAB_COMMENT_EDK1_START = '/*'\r
332TAB_COMMENT_EDK1_END = '*/'\r
333TAB_COMMENT_EDK1_SPLIT = '//'\r
334TAB_COMMENT_SPLIT = '#'\r
335TAB_EQUAL_SPLIT = '='\r
336TAB_DEQUAL_SPLIT = '=='\r
337TAB_VALUE_SPLIT = '|'\r
338TAB_COMMA_SPLIT = ','\r
421ccda3 339TAB_HORIZON_LINE_SPLIT = '-'\r
4234283c
LG
340TAB_SPACE_SPLIT = ' '\r
341TAB_UNDERLINE_SPLIT = '_'\r
342TAB_SEMI_COLON_SPLIT = ';'\r
343TAB_COLON_SPLIT = ':'\r
344TAB_SECTION_START = '['\r
345TAB_SECTION_END = ']'\r
346TAB_OPTION_START = '<'\r
347TAB_OPTION_END = '>'\r
348TAB_SLASH = '\\'\r
349TAB_BACK_SLASH = '/'\r
350TAB_SPECIAL_COMMENT = '##'\r
351TAB_HEADER_COMMENT = '@file'\r
2bc3256c 352TAB_BINARY_HEADER_COMMENT = '@BinaryHeader'\r
421ccda3
HC
353TAB_STAR = '*'\r
354TAB_ENCODING_UTF16LE = 'utf_16_le'\r
355TAB_CAPHEX_START = '0X'\r
356TAB_HEX_START = '0x'\r
357TAB_PCD_ERROR = 'Error'\r
358TAB_PCD_ERROR_SECTION_COMMENT = 'Error message section'\r
359TAB_UNI_FILE_SUFFIXS = ['.uni', '.UNI', '.Uni']\r
4234283c
LG
360\r
361TAB_EDK_SOURCE = '$(EDK_SOURCE)'\r
362TAB_EFI_SOURCE = '$(EFI_SOURCE)'\r
363TAB_WORKSPACE = '$(WORKSPACE)'\r
364\r
365TAB_ARCH_NULL = ''\r
366TAB_ARCH_COMMON = 'COMMON'\r
367TAB_ARCH_IA32 = 'IA32'\r
368TAB_ARCH_X64 = 'X64'\r
369TAB_ARCH_IPF = 'IPF'\r
370TAB_ARCH_ARM = 'ARM'\r
c53807cb 371TAB_ARCH_LOONGARCH64 = 'LOONGARCH64'\r
4234283c
LG
372TAB_ARCH_EBC = 'EBC'\r
373\r
374ARCH_LIST = \\r
c53807cb 375[TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_LOONGARCH64, TAB_ARCH_EBC]\r
4234283c
LG
376\r
377SUP_MODULE_BASE = 'BASE'\r
378SUP_MODULE_SEC = 'SEC'\r
379SUP_MODULE_PEI_CORE = 'PEI_CORE'\r
380SUP_MODULE_PEIM = 'PEIM'\r
381SUP_MODULE_DXE_CORE = 'DXE_CORE'\r
382SUP_MODULE_DXE_DRIVER = 'DXE_DRIVER'\r
383SUP_MODULE_DXE_RUNTIME_DRIVER = 'DXE_RUNTIME_DRIVER'\r
384SUP_MODULE_DXE_SAL_DRIVER = 'DXE_SAL_DRIVER'\r
385SUP_MODULE_DXE_SMM_DRIVER = 'DXE_SMM_DRIVER'\r
386SUP_MODULE_UEFI_DRIVER = 'UEFI_DRIVER'\r
387SUP_MODULE_UEFI_APPLICATION = 'UEFI_APPLICATION'\r
388SUP_MODULE_USER_DEFINED = 'USER_DEFINED'\r
389SUP_MODULE_SMM_CORE = 'SMM_CORE'\r
390\r
391SUP_MODULE_LIST = \\r
392[SUP_MODULE_BASE, SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, \\r
393SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, \\r
394 SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, \\r
395 SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_UEFI_DRIVER, \\r
396 SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED, \\r
397 SUP_MODULE_SMM_CORE]\r
398SUP_MODULE_LIST_STRING = TAB_VALUE_SPLIT.join(l for l in SUP_MODULE_LIST)\r
399\r
400EDK_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
401EDK_COMPONENT_TYPE_SECUARITY_CORE = 'SECUARITY_CORE'\r
402EDK_COMPONENT_TYPE_PEI_CORE = 'PEI_CORE'\r
403EDK_COMPONENT_TYPE_COMBINED_PEIM_DRIVER = 'COMBINED_PEIM_DRIVER'\r
404EDK_COMPONENT_TYPE_PIC_PEIM = 'PIC_PEIM'\r
405EDK_COMPONENT_TYPE_RELOCATABLE_PEIM = 'RELOCATABLE_PEIM'\r
406EDK_COMPONENT_TYPE_BS_DRIVER = 'BS_DRIVER'\r
407EDK_COMPONENT_TYPE_RT_DRIVER = 'RT_DRIVER'\r
408EDK_COMPONENT_TYPE_SAL_RT_DRIVER = 'SAL_RT_DRIVER'\r
409EDK_COMPONENT_TYPE_APPLICATION = 'APPLICATION'\r
410EDK_NAME = 'EDK'\r
411EDKII_NAME = 'EDKII'\r
412\r
413BINARY_FILE_TYPE_FW = 'FW'\r
414BINARY_FILE_TYPE_GUID = 'GUID'\r
415BINARY_FILE_TYPE_PREEFORM = 'PREEFORM'\r
416BINARY_FILE_TYPE_UEFI_APP = 'UEFI_APP'\r
417BINARY_FILE_TYPE_UNI_UI = 'UNI_UI'\r
418BINARY_FILE_TYPE_SEC_UI = 'SEC_UI'\r
419BINARY_FILE_TYPE_UNI_VER = 'UNI_VER'\r
420BINARY_FILE_TYPE_SEC_VER = 'SEC_VER'\r
421BINARY_FILE_TYPE_LIB = 'LIB'\r
422BINARY_FILE_TYPE_PE32 = 'PE32'\r
423BINARY_FILE_TYPE_PIC = 'PIC'\r
424BINARY_FILE_TYPE_PEI_DEPEX = 'PEI_DEPEX'\r
425BINARY_FILE_TYPE_DXE_DEPEX = 'DXE_DEPEX'\r
426BINARY_FILE_TYPE_SMM_DEPEX = 'SMM_DEPEX'\r
427BINARY_FILE_TYPE_TE = 'TE'\r
428BINARY_FILE_TYPE_VER = 'VER'\r
429BINARY_FILE_TYPE_UI = 'UI'\r
430BINARY_FILE_TYPE_BIN = 'BIN'\r
431BINARY_FILE_TYPE_FV = 'FV'\r
432BINARY_FILE_TYPE_UI_LIST = [BINARY_FILE_TYPE_UNI_UI,\r
433 BINARY_FILE_TYPE_SEC_UI,\r
434 BINARY_FILE_TYPE_UI\r
f7496d71 435 ]\r
4234283c
LG
436BINARY_FILE_TYPE_VER_LIST = [BINARY_FILE_TYPE_UNI_VER,\r
437 BINARY_FILE_TYPE_SEC_VER,\r
438 BINARY_FILE_TYPE_VER\r
439 ]\r
440\r
441DEPEX_SECTION_LIST = ['<PEI_DEPEX>',\r
442 '<DXE_DEPEX>',\r
443 '<SMM_DEPEX>'\r
444 ]\r
445\r
446PLATFORM_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
447PLATFORM_COMPONENT_TYPE_LIBRARY_CLASS = 'LIBRARY_CLASS'\r
448PLATFORM_COMPONENT_TYPE_MODULE = 'MODULE'\r
449\r
450TAB_LIBRARIES = 'Libraries'\r
451\r
452TAB_SOURCE = 'Source'\r
453TAB_SOURCES = 'Sources'\r
454TAB_SOURCES_COMMON = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_COMMON\r
455TAB_SOURCES_IA32 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32\r
456TAB_SOURCES_X64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64\r
457TAB_SOURCES_IPF = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF\r
458TAB_SOURCES_ARM = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 459TAB_SOURCES_LOONGARCH64 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
460TAB_SOURCES_EBC = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC\r
461\r
462TAB_BINARIES = 'Binaries'\r
463TAB_BINARIES_COMMON = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_COMMON\r
464TAB_BINARIES_IA32 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IA32\r
465TAB_BINARIES_X64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64\r
466TAB_BINARIES_IPF = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF\r
467TAB_BINARIES_ARM = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 468TAB_BINARIES_LOONGARCH64 = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
469TAB_BINARIES_EBC = TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC\r
470\r
471TAB_INCLUDES = 'Includes'\r
472TAB_INCLUDES_COMMON = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_COMMON\r
473TAB_INCLUDES_IA32 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IA32\r
474TAB_INCLUDES_X64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64\r
475TAB_INCLUDES_IPF = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF\r
476TAB_INCLUDES_ARM = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 477TAB_INCLUDES_LOONGARCH64 = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
478TAB_INCLUDES_EBC = TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC\r
479\r
480TAB_GUIDS = 'Guids'\r
481TAB_GUIDS_COMMON = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON\r
482TAB_GUIDS_IA32 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IA32\r
483TAB_GUIDS_X64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64\r
484TAB_GUIDS_IPF = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF\r
485TAB_GUIDS_ARM = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 486TAB_GUIDS_LOONGARCH64 = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
487TAB_GUIDS_EBC = TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC\r
488\r
489TAB_PROTOCOLS = 'Protocols'\r
490TAB_PROTOCOLS_COMMON = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_COMMON\r
491TAB_PROTOCOLS_IA32 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IA32\r
492TAB_PROTOCOLS_X64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64\r
493TAB_PROTOCOLS_IPF = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF\r
494TAB_PROTOCOLS_ARM = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 495TAB_PROTOCOLS_LOONGARCH64 = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
496TAB_PROTOCOLS_EBC = TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC\r
497\r
498TAB_PPIS = 'Ppis'\r
499TAB_PPIS_COMMON = TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON\r
500TAB_PPIS_IA32 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IA32\r
501TAB_PPIS_X64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64\r
502TAB_PPIS_IPF = TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF\r
503TAB_PPIS_ARM = TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 504TAB_PPIS_LOONGARCH64 = TAB_PPIS + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
505TAB_PPIS_EBC = TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC\r
506\r
507TAB_LIBRARY_CLASSES = 'LibraryClasses'\r
508TAB_LIBRARY_CLASSES_COMMON = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_COMMON\r
509TAB_LIBRARY_CLASSES_IA32 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IA32\r
510TAB_LIBRARY_CLASSES_X64 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_X64\r
511TAB_LIBRARY_CLASSES_IPF = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IPF\r
512TAB_LIBRARY_CLASSES_ARM = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 513TAB_LIBRARY_CLASSES_LOONGARCH64 = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
514TAB_LIBRARY_CLASSES_EBC = TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_EBC\r
515\r
516TAB_PACKAGES = 'Packages'\r
517TAB_PACKAGES_COMMON = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_COMMON\r
518TAB_PACKAGES_IA32 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IA32\r
519TAB_PACKAGES_X64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64\r
520TAB_PACKAGES_IPF = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF\r
521TAB_PACKAGES_ARM = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 522TAB_PACKAGES_LOONGARCH64 = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
523TAB_PACKAGES_EBC = TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC\r
524\r
525TAB_PCDS = 'Pcds'\r
526TAB_PCDS_FIXED_AT_BUILD = 'FixedAtBuild'\r
527TAB_PCDS_PATCHABLE_IN_MODULE = 'PatchableInModule'\r
528TAB_PCDS_FEATURE_FLAG = 'FeatureFlag'\r
529TAB_PCDS_DYNAMIC_EX = 'DynamicEx'\r
530TAB_PCDS_DYNAMIC_EX_DEFAULT = 'DynamicExDefault'\r
531TAB_PCDS_DYNAMIC_EX_VPD = 'DynamicExVpd'\r
532TAB_PCDS_DYNAMIC_EX_HII = 'DynamicExHii'\r
533TAB_PCDS_DYNAMIC = 'Dynamic'\r
534TAB_PCDS_DYNAMIC_DEFAULT = 'DynamicDefault'\r
535TAB_PCDS_DYNAMIC_VPD = 'DynamicVpd'\r
536TAB_PCDS_DYNAMIC_HII = 'DynamicHii'\r
537\r
538TAB_PTR_TYPE_PCD = 'VOID*'\r
539\r
540PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, \\r
541 TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII]\r
542PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, \\r
543 TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
544\r
545## Dynamic-ex PCD types\r
546#\r
547gDYNAMIC_EX_PCD = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, \\r
548 TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
549\r
550TAB_PCDS_FIXED_AT_BUILD_NULL = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD\r
551TAB_PCDS_FIXED_AT_BUILD_COMMON = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
552TAB_SPLIT + TAB_ARCH_COMMON\r
553TAB_PCDS_FIXED_AT_BUILD_IA32 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
554TAB_SPLIT + TAB_ARCH_IA32\r
555TAB_PCDS_FIXED_AT_BUILD_X64 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
556TAB_SPLIT + TAB_ARCH_X64\r
557TAB_PCDS_FIXED_AT_BUILD_IPF = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
558TAB_SPLIT + TAB_ARCH_IPF\r
559TAB_PCDS_FIXED_AT_BUILD_ARM = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
560TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb
CL
561TAB_PCDS_FIXED_AT_BUILD_LOONGARCH64 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
562TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
563TAB_PCDS_FIXED_AT_BUILD_EBC = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + \\r
564TAB_SPLIT + TAB_ARCH_EBC\r
565\r
566TAB_PCDS_PATCHABLE_IN_MODULE_NULL = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE\r
567TAB_PCDS_PATCHABLE_IN_MODULE_COMMON = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE \\r
568+ TAB_SPLIT + TAB_ARCH_COMMON\r
569TAB_PCDS_PATCHABLE_IN_MODULE_IA32 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
570TAB_SPLIT + TAB_ARCH_IA32\r
571TAB_PCDS_PATCHABLE_IN_MODULE_X64 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
572TAB_SPLIT + TAB_ARCH_X64\r
573TAB_PCDS_PATCHABLE_IN_MODULE_IPF = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
574TAB_SPLIT + TAB_ARCH_IPF\r
575TAB_PCDS_PATCHABLE_IN_MODULE_ARM = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
576TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb
CL
577TAB_PCDS_PATCHABLE_IN_MODULE_LOONGARCH64 = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
578TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
579TAB_PCDS_PATCHABLE_IN_MODULE_EBC = TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \\r
580TAB_SPLIT + TAB_ARCH_EBC\r
581\r
582TAB_PCDS_FEATURE_FLAG_NULL = TAB_PCDS + TAB_PCDS_FEATURE_FLAG\r
583TAB_PCDS_FEATURE_FLAG_COMMON = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT \\r
584+ TAB_ARCH_COMMON\r
585TAB_PCDS_FEATURE_FLAG_IA32 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
586TAB_ARCH_IA32\r
587TAB_PCDS_FEATURE_FLAG_X64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
588TAB_ARCH_X64\r
589TAB_PCDS_FEATURE_FLAG_IPF = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
590TAB_ARCH_IPF\r
591TAB_PCDS_FEATURE_FLAG_ARM = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
592TAB_ARCH_ARM\r
c53807cb
CL
593TAB_PCDS_FEATURE_FLAG_LOONGARCH64 = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
594TAB_ARCH_LOONGARCH64\r
4234283c
LG
595TAB_PCDS_FEATURE_FLAG_EBC = TAB_PCDS + TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \\r
596TAB_ARCH_EBC\r
597\r
598TAB_PCDS_DYNAMIC_EX_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX\r
599TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_DEFAULT\r
600TAB_PCDS_DYNAMIC_EX_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_HII\r
601TAB_PCDS_DYNAMIC_EX_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_EX_VPD\r
602TAB_PCDS_DYNAMIC_EX_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
603TAB_ARCH_COMMON\r
604TAB_PCDS_DYNAMIC_EX_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
605TAB_ARCH_IA32\r
606TAB_PCDS_DYNAMIC_EX_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
607TAB_ARCH_X64\r
608TAB_PCDS_DYNAMIC_EX_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
609TAB_ARCH_IPF\r
610TAB_PCDS_DYNAMIC_EX_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
611TAB_ARCH_ARM\r
c53807cb
CL
612TAB_PCDS_DYNAMIC_EX_LOONGARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
613TAB_ARCH_LOONGARCH64\r
4234283c
LG
614TAB_PCDS_DYNAMIC_EX_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \\r
615TAB_ARCH_EBC\r
616\r
617TAB_PCDS_DYNAMIC_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC\r
618TAB_PCDS_DYNAMIC_DEFAULT_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_DEFAULT\r
619TAB_PCDS_DYNAMIC_HII_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_HII\r
620TAB_PCDS_DYNAMIC_VPD_NULL = TAB_PCDS + TAB_PCDS_DYNAMIC_VPD\r
621TAB_PCDS_DYNAMIC_COMMON = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + \\r
622TAB_ARCH_COMMON\r
623TAB_PCDS_DYNAMIC_IA32 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IA32\r
624TAB_PCDS_DYNAMIC_X64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_X64\r
625TAB_PCDS_DYNAMIC_IPF = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IPF\r
626TAB_PCDS_DYNAMIC_ARM = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 627TAB_PCDS_DYNAMIC_LOONGARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
628TAB_PCDS_DYNAMIC_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_EBC\r
629\r
630TAB_PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC_DEFAULT_NULL, \\r
631 TAB_PCDS_DYNAMIC_VPD_NULL, \\r
632 TAB_PCDS_DYNAMIC_HII_NULL]\r
633TAB_PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL, \\r
634 TAB_PCDS_DYNAMIC_EX_VPD_NULL, \\r
635 TAB_PCDS_DYNAMIC_EX_HII_NULL]\r
636\r
637TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE = \\r
638'PcdLoadFixAddressPeiCodePageNumber'\r
639TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
640TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE = \\r
641'PcdLoadFixAddressBootTimeCodePageNumber'\r
642TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
643TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE = \\r
644'PcdLoadFixAddressRuntimeCodePageNumber'\r
645TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
646TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE = \\r
647'PcdLoadFixAddressSmmCodePageNumber'\r
648TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
649TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_LIST = \\r
650[TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE, \\r
651TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE, \\r
652TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE, \\r
653TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE]\r
654PCD_SECTION_LIST = [TAB_PCDS_FIXED_AT_BUILD_NULL.upper(), \\r
655 TAB_PCDS_PATCHABLE_IN_MODULE_NULL.upper(), \\r
656 TAB_PCDS_FEATURE_FLAG_NULL.upper(), \\r
657 TAB_PCDS_DYNAMIC_EX_NULL.upper(), \\r
658 TAB_PCDS_DYNAMIC_NULL.upper()]\r
659INF_PCD_SECTION_LIST = ["FixedPcd".upper(), "FeaturePcd".upper(), \\r
660 "PatchPcd".upper(), "Pcd".upper(), "PcdEx".upper()]\r
661\r
662TAB_DEPEX = 'Depex'\r
663TAB_DEPEX_COMMON = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_COMMON\r
664TAB_DEPEX_IA32 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IA32\r
665TAB_DEPEX_X64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64\r
666TAB_DEPEX_IPF = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF\r
667TAB_DEPEX_ARM = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 668TAB_DEPEX_LOONGARCH64 = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
669TAB_DEPEX_EBC = TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC\r
670\r
671TAB_SKUIDS = 'SkuIds'\r
672\r
673TAB_LIBRARIES = 'Libraries'\r
674TAB_LIBRARIES_COMMON = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_COMMON\r
675TAB_LIBRARIES_IA32 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IA32\r
676TAB_LIBRARIES_X64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64\r
677TAB_LIBRARIES_IPF = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF\r
678TAB_LIBRARIES_ARM = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 679TAB_LIBRARIES_LOONGARCH64 = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
680TAB_LIBRARIES_EBC = TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC\r
681\r
682TAB_COMPONENTS = 'Components'\r
683TAB_COMPONENTS_COMMON = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_COMMON\r
684TAB_COMPONENTS_IA32 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IA32\r
685TAB_COMPONENTS_X64 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_X64\r
686TAB_COMPONENTS_IPF = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF\r
687TAB_COMPONENTS_ARM = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_ARM\r
c53807cb 688TAB_COMPONENTS_LOONGARCH64 = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_LOONGARCH64\r
4234283c
LG
689TAB_COMPONENTS_EBC = TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_EBC\r
690\r
4234283c
LG
691TAB_BUILD_OPTIONS = 'BuildOptions'\r
692\r
693TAB_DEFINE = 'DEFINE'\r
694TAB_NMAKE = 'Nmake'\r
695TAB_USER_EXTENSIONS = 'UserExtensions'\r
696TAB_INCLUDE = '!include'\r
645a5128
HC
697TAB_PRIVATE = 'Private'\r
698TAB_INTEL = 'Intel'\r
4234283c
LG
699\r
700#\r
701# Common Define\r
702#\r
703TAB_COMMON_DEFINES = 'Defines'\r
704\r
705#\r
706# Inf Definitions\r
707#\r
708TAB_INF_DEFINES = TAB_COMMON_DEFINES\r
709TAB_INF_DEFINES_INF_VERSION = 'INF_VERSION'\r
710TAB_INF_DEFINES_BASE_NAME = 'BASE_NAME'\r
711TAB_INF_DEFINES_FILE_GUID = 'FILE_GUID'\r
712TAB_INF_DEFINES_MODULE_TYPE = 'MODULE_TYPE'\r
713TAB_INF_DEFINES_EFI_SPECIFICATION_VERSION = 'EFI_SPECIFICATION_VERSION'\r
714TAB_INF_DEFINES_UEFI_SPECIFICATION_VERSION = 'UEFI_SPECIFICATION_VERSION'\r
715TAB_INF_DEFINES_PI_SPECIFICATION_VERSION = 'PI_SPECIFICATION_VERSION'\r
716TAB_INF_DEFINES_EDK_RELEASE_VERSION = 'EDK_RELEASE_VERSION'\r
421ccda3 717TAB_INF_DEFINES_MODULE_UNI_FILE = 'MODULE_UNI_FILE'\r
4234283c
LG
718TAB_INF_DEFINES_BINARY_MODULE = 'BINARY_MODULE'\r
719TAB_INF_DEFINES_LIBRARY_CLASS = 'LIBRARY_CLASS'\r
720TAB_INF_DEFINES_COMPONENT_TYPE = 'COMPONENT_TYPE'\r
721TAB_INF_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME'\r
722TAB_INF_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'\r
723TAB_INF_DEFINES_BUILD_TYPE = 'BUILD_TYPE'\r
724TAB_INF_DEFINES_FFS_EXT = 'FFS_EXT'\r
725TAB_INF_DEFINES_FV_EXT = 'FV_EXT'\r
726TAB_INF_DEFINES_SOURCE_FV = 'SOURCE_FV'\r
727TAB_INF_DEFINES_PACKAGE = 'PACKAGE'\r
728TAB_INF_DEFINES_VERSION_NUMBER = 'VERSION_NUMBER'\r
f7496d71 729TAB_INF_DEFINES_VERSION = 'VERSION'\r
4234283c
LG
730TAB_INF_DEFINES_VERSION_STRING = 'VERSION_STRING'\r
731TAB_INF_DEFINES_PCD_IS_DRIVER = 'PCD_IS_DRIVER'\r
732TAB_INF_DEFINES_TIANO_EDK1_FLASHMAP_H = 'TIANO_EDK1_FLASHMAP_H'\r
733TAB_INF_DEFINES_ENTRY_POINT = 'ENTRY_POINT'\r
734TAB_INF_DEFINES_UNLOAD_IMAGE = 'UNLOAD_IMAGE'\r
735TAB_INF_DEFINES_CONSTRUCTOR = 'CONSTRUCTOR'\r
736TAB_INF_DEFINES_DESTRUCTOR = 'DESTRUCTOR'\r
f7496d71
LG
737TAB_INF_DEFINES_PCI_VENDOR_ID = 'PCI_VENDOR_ID'\r
738TAB_INF_DEFINES_PCI_DEVICE_ID = 'PCI_DEVICE_ID'\r
739TAB_INF_DEFINES_PCI_CLASS_CODE = 'PCI_CLASS_CODE'\r
4234283c
LG
740TAB_INF_DEFINES_PCI_REVISION = 'PCI_REVISION'\r
741TAB_INF_DEFINES_PCI_COMPRESS = 'PCI_COMPRESS'\r
742TAB_INF_DEFINES_DEFINE = 'DEFINE'\r
743TAB_INF_DEFINES_SPEC = 'SPEC'\r
744TAB_INF_DEFINES_UEFI_HII_RESOURCE_SECTION = 'UEFI_HII_RESOURCE_SECTION'\r
745TAB_INF_DEFINES_CUSTOM_MAKEFILE = 'CUSTOM_MAKEFILE'\r
746TAB_INF_DEFINES_MACRO = '__MACROS__'\r
747TAB_INF_DEFINES_SHADOW = 'SHADOW'\r
748TAB_INF_DEFINES_DPX_SOURCE = 'DPX_SOURCE'\r
749TAB_INF_FIXED_PCD = 'FixedPcd'\r
750TAB_INF_FEATURE_PCD = 'FeaturePcd'\r
751TAB_INF_PATCH_PCD = 'PatchPcd'\r
752TAB_INF_PCD = 'Pcd'\r
753TAB_INF_PCD_EX = 'PcdEx'\r
754TAB_INF_GUIDTYPE_VAR = 'Variable'\r
2bc3256c
LG
755TAB_INF_ABSTRACT = 'STR_MODULE_ABSTRACT'\r
756TAB_INF_DESCRIPTION = 'STR_MODULE_DESCRIPTION'\r
757TAB_INF_LICENSE = 'STR_MODULE_LICENSE'\r
758TAB_INF_BINARY_ABSTRACT = 'STR_MODULE_BINARY_ABSTRACT'\r
759TAB_INF_BINARY_DESCRIPTION = 'STR_MODULE_BINARY_DESCRIPTION'\r
760TAB_INF_BINARY_LICENSE = 'STR_MODULE_BINARY_LICENSE'\r
4234283c
LG
761#\r
762# Dec Definitions\r
763#\r
764TAB_DEC_DEFINES = TAB_COMMON_DEFINES\r
765TAB_DEC_DEFINES_DEC_SPECIFICATION = 'DEC_SPECIFICATION'\r
766TAB_DEC_DEFINES_PACKAGE_NAME = 'PACKAGE_NAME'\r
767TAB_DEC_DEFINES_PACKAGE_GUID = 'PACKAGE_GUID'\r
768TAB_DEC_DEFINES_PACKAGE_VERSION = 'PACKAGE_VERSION'\r
421ccda3 769TAB_DEC_DEFINES_PKG_UNI_FILE = 'PACKAGE_UNI_FILE'\r
2bc3256c
LG
770TAB_DEC_PACKAGE_ABSTRACT = 'STR_PACKAGE_ABSTRACT'\r
771TAB_DEC_PACKAGE_DESCRIPTION = 'STR_PACKAGE_DESCRIPTION'\r
772TAB_DEC_PACKAGE_LICENSE = 'STR_PACKAGE_LICENSE'\r
773TAB_DEC_BINARY_ABSTRACT = 'STR_PACKAGE_BINARY_ABSTRACT'\r
774TAB_DEC_BINARY_DESCRIPTION = 'STR_PACKAGE_BINARY_DESCRIPTION'\r
775TAB_DEC_BINARY_LICENSE = 'STR_PACKAGE_ASBUILT_LICENSE'\r
4234283c
LG
776#\r
777# Dsc Definitions\r
778#\r
779TAB_DSC_DEFINES = TAB_COMMON_DEFINES\r
780TAB_DSC_DEFINES_PLATFORM_NAME = 'PLATFORM_NAME'\r
781TAB_DSC_DEFINES_PLATFORM_GUID = 'PLATFORM_GUID'\r
782TAB_DSC_DEFINES_PLATFORM_VERSION = 'PLATFORM_VERSION'\r
783TAB_DSC_DEFINES_DSC_SPECIFICATION = 'DSC_SPECIFICATION'\r
784TAB_DSC_DEFINES_OUTPUT_DIRECTORY = 'OUTPUT_DIRECTORY'\r
785TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES = 'SUPPORTED_ARCHITECTURES'\r
786TAB_DSC_DEFINES_BUILD_TARGETS = 'BUILD_TARGETS'\r
787TAB_DSC_DEFINES_SKUID_IDENTIFIER = 'SKUID_IDENTIFIER'\r
788TAB_DSC_DEFINES_FLASH_DEFINITION = 'FLASH_DEFINITION'\r
789TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'\r
790TAB_DSC_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME'\r
791TAB_DSC_DEFINES_BS_BASE_ADDRESS = 'BsBaseAddress'\r
792TAB_DSC_DEFINES_RT_BASE_ADDRESS = 'RtBaseAddress'\r
793TAB_DSC_DEFINES_DEFINE = 'DEFINE'\r
794TAB_FIX_LOAD_TOP_MEMORY_ADDRESS = 'FIX_LOAD_TOP_MEMORY_ADDRESS'\r
795\r
796#\r
797# TargetTxt Definitions\r
798#\r
799TAB_TAT_DEFINES_ACTIVE_PLATFORM = 'ACTIVE_PLATFORM'\r
800TAB_TAT_DEFINES_ACTIVE_MODULE = 'ACTIVE_MODULE'\r
801TAB_TAT_DEFINES_TOOL_CHAIN_CONF = 'TOOL_CHAIN_CONF'\r
802TAB_TAT_DEFINES_MULTIPLE_THREAD = 'MULTIPLE_THREAD'\r
803TAB_TAT_DEFINES_MAX_CONCURRENT_THREAD_NUMBER = 'MAX_CONCURRENT_THREAD_NUMBER'\r
804TAB_TAT_DEFINES_TARGET = 'TARGET'\r
805TAB_TAT_DEFINES_TOOL_CHAIN_TAG = 'TOOL_CHAIN_TAG'\r
806TAB_TAT_DEFINES_TARGET_ARCH = 'TARGET_ARCH'\r
807TAB_TAT_DEFINES_BUILD_RULE_CONF = "BUILD_RULE_CONF"\r
808\r
809#\r
810# ToolDef Definitions\r
811#\r
812TAB_TOD_DEFINES_TARGET = 'TARGET'\r
813TAB_TOD_DEFINES_TOOL_CHAIN_TAG = 'TOOL_CHAIN_TAG'\r
814TAB_TOD_DEFINES_TARGET_ARCH = 'TARGET_ARCH'\r
815TAB_TOD_DEFINES_COMMAND_TYPE = 'COMMAND_TYPE'\r
816TAB_TOD_DEFINES_FAMILY = 'FAMILY'\r
817TAB_TOD_DEFINES_BUILDRULEFAMILY = 'BUILDRULEFAMILY'\r
818\r
819#\r
820# Conditional Statements\r
821#\r
822TAB_IF = '!if'\r
823TAB_END_IF = '!endif'\r
824TAB_ELSE_IF = '!elseif'\r
825TAB_ELSE = '!else'\r
826TAB_IF_DEF = '!ifdef'\r
827TAB_IF_N_DEF = '!ifndef'\r
828TAB_IF_EXIST = '!if exist'\r
829\r
830#\r
831# Unknown section\r
832#\r
833TAB_UNKNOWN = 'UNKNOWN'\r
834\r
835#\r
f7496d71 836# Header section (virtual section for abstract, description, copyright,\r
4234283c
LG
837# license)\r
838#\r
839TAB_HEADER = 'Header'\r
840TAB_HEADER_ABSTRACT = 'Abstract'\r
f7496d71 841TAB_HEADER_DESCRIPTION = 'Description'\r
4234283c
LG
842TAB_HEADER_COPYRIGHT = 'Copyright'\r
843TAB_HEADER_LICENSE = 'License'\r
2bc3256c
LG
844TAB_BINARY_HEADER_IDENTIFIER = 'BinaryHeader'\r
845TAB_BINARY_HEADER_USERID = 'TianoCore'\r
421ccda3 846\r
4234283c
LG
847#\r
848# Build database path\r
849#\r
f7496d71 850DATABASE_PATH = ":memory:"\r
4234283c
LG
851#\r
852# used by ECC\r
853#\r
854MODIFIER_LIST = ['IN', 'OUT', 'OPTIONAL', 'UNALIGNED', 'EFI_RUNTIMESERVICE', \\r
855 'EFI_BOOTSERVICE', 'EFIAPI']\r
856#\r
857# Dependency Expression\r
858#\r
859DEPEX_SUPPORTED_OPCODE = ["BEFORE", "AFTER", "PUSH", "AND", "OR", "NOT", \\r
860 "END", "SOR", "TRUE", "FALSE", '(', ')']\r
861\r
862TAB_STATIC_LIBRARY = "STATIC-LIBRARY-FILE"\r
863TAB_DYNAMIC_LIBRARY = "DYNAMIC-LIBRARY-FILE"\r
864TAB_FRAMEWORK_IMAGE = "EFI-IMAGE-FILE"\r
865TAB_C_CODE_FILE = "C-CODE-FILE"\r
866TAB_C_HEADER_FILE = "C-HEADER-FILE"\r
867TAB_UNICODE_FILE = "UNICODE-TEXT-FILE"\r
868TAB_DEPENDENCY_EXPRESSION_FILE = "DEPENDENCY-EXPRESSION-FILE"\r
869TAB_UNKNOWN_FILE = "UNKNOWN-TYPE-FILE"\r
870TAB_DEFAULT_BINARY_FILE = "_BINARY_FILE_"\r
871#\r
f7496d71 872# used to indicate the state of processing header comment section of dec,\r
4234283c
LG
873# inf files\r
874#\r
875HEADER_COMMENT_NOT_STARTED = -1\r
876HEADER_COMMENT_STARTED = 0\r
877HEADER_COMMENT_FILE = 1\r
878HEADER_COMMENT_ABSTRACT = 2\r
879HEADER_COMMENT_DESCRIPTION = 3\r
880HEADER_COMMENT_COPYRIGHT = 4\r
881HEADER_COMMENT_LICENSE = 5\r
882HEADER_COMMENT_END = 6\r
883\r
884#\r
885# Static values for data models\r
886#\r
887MODEL_UNKNOWN = 0\r
888\r
889MODEL_FILE_C = 1001\r
890MODEL_FILE_H = 1002\r
891MODEL_FILE_ASM = 1003\r
892MODEL_FILE_INF = 1011\r
893MODEL_FILE_DEC = 1012\r
894MODEL_FILE_DSC = 1013\r
895MODEL_FILE_FDF = 1014\r
896MODEL_FILE_INC = 1015\r
897MODEL_FILE_CIF = 1016\r
898\r
899MODEL_IDENTIFIER_FILE_HEADER = 2001\r
900MODEL_IDENTIFIER_FUNCTION_HEADER = 2002\r
901MODEL_IDENTIFIER_COMMENT = 2003\r
902MODEL_IDENTIFIER_PARAMETER = 2004\r
903MODEL_IDENTIFIER_STRUCTURE = 2005\r
904MODEL_IDENTIFIER_VARIABLE = 2006\r
905MODEL_IDENTIFIER_INCLUDE = 2007\r
906MODEL_IDENTIFIER_PREDICATE_EXPRESSION = 2008\r
907MODEL_IDENTIFIER_ENUMERATE = 2009\r
908MODEL_IDENTIFIER_PCD = 2010\r
909MODEL_IDENTIFIER_UNION = 2011\r
910MODEL_IDENTIFIER_MACRO_IFDEF = 2012\r
911MODEL_IDENTIFIER_MACRO_IFNDEF = 2013\r
912MODEL_IDENTIFIER_MACRO_DEFINE = 2014\r
913MODEL_IDENTIFIER_MACRO_ENDIF = 2015\r
914MODEL_IDENTIFIER_MACRO_PROGMA = 2016\r
915MODEL_IDENTIFIER_FUNCTION_CALLING = 2018\r
916MODEL_IDENTIFIER_TYPEDEF = 2017\r
917MODEL_IDENTIFIER_FUNCTION_DECLARATION = 2019\r
918MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION = 2020\r
919\r
920MODEL_EFI_PROTOCOL = 3001\r
921MODEL_EFI_PPI = 3002\r
922MODEL_EFI_GUID = 3003\r
923MODEL_EFI_LIBRARY_CLASS = 3004\r
924MODEL_EFI_LIBRARY_INSTANCE = 3005\r
925MODEL_EFI_PCD = 3006\r
926MODEL_EFI_SOURCE_FILE = 3007\r
927MODEL_EFI_BINARY_FILE = 3008\r
928MODEL_EFI_SKU_ID = 3009\r
929MODEL_EFI_INCLUDE = 3010\r
930MODEL_EFI_DEPEX = 3011\r
931\r
932MODEL_PCD = 4000\r
933MODEL_PCD_FIXED_AT_BUILD = 4001\r
934MODEL_PCD_PATCHABLE_IN_MODULE = 4002\r
935MODEL_PCD_FEATURE_FLAG = 4003\r
936MODEL_PCD_DYNAMIC_EX = 4004\r
937MODEL_PCD_DYNAMIC_EX_DEFAULT = 4005\r
938MODEL_PCD_DYNAMIC_EX_VPD = 4006\r
939MODEL_PCD_DYNAMIC_EX_HII = 4007\r
940MODEL_PCD_DYNAMIC = 4008\r
941MODEL_PCD_DYNAMIC_DEFAULT = 4009\r
942MODEL_PCD_DYNAMIC_VPD = 4010\r
943MODEL_PCD_DYNAMIC_HII = 4011\r
944\r
945MODEL_META_DATA_FILE_HEADER = 5000\r
946MODEL_META_DATA_HEADER = 5001\r
947MODEL_META_DATA_INCLUDE = 5002\r
948MODEL_META_DATA_DEFINE = 5003\r
949MODEL_META_DATA_CONDITIONAL_STATEMENT_IF = 5004\r
950MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE = 5005\r
951MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF = 5006\r
952MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF = 5007\r
953MODEL_META_DATA_BUILD_OPTION = 5008\r
954MODEL_META_DATA_COMPONENT = 5009\r
955MODEL_META_DATA_USER_EXTENSION = 5010\r
956MODEL_META_DATA_PACKAGE = 5011\r
957MODEL_META_DATA_NMAKE = 5012\r
958MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSEIF = 50013\r
959MODEL_META_DATA_CONDITIONAL_STATEMENT_ENDIF = 5014\r
4234283c
LG
960\r
961TOOL_FAMILY_LIST = ["MSFT",\r
962 "INTEL",\r
963 "GCC",\r
4234283c
LG
964 ]\r
965\r
966TYPE_HOB_SECTION = 'HOB'\r
967TYPE_EVENT_SECTION = 'EVENT'\r
f7496d71 968TYPE_BOOTMODE_SECTION = 'BOOTMODE'\r
421ccda3
HC
969\r
970PCD_ERR_CODE_MAX_SIZE = 4294967295\r