]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/CommonDataClass/FdfClass.py
Update the way to allocate high PMM, firstly try to allocate high PMM below 16MB...
[mirror_edk2.git] / BaseTools / Source / Python / CommonDataClass / FdfClass.py
CommitLineData
30fdf114
LG
1## @file\r
2# classes represent data in FDF\r
3#\r
40d841f6 4# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
30fdf114 5#\r
40d841f6 6# This program and the accompanying materials\r
30fdf114
LG
7# are licensed and made available under the terms and conditions of the BSD License\r
8# which accompanies this distribution. The full text of the license may be found at\r
9# http://opensource.org/licenses/bsd-license.php\r
10#\r
11# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13#\r
14\r
15## FD data in FDF\r
16#\r
17#\r
18class FDClassObject:\r
19 ## The constructor\r
20 #\r
21 # @param self The object pointer\r
22 #\r
23 def __init__(self):\r
24 self.FdUiName = ''\r
25 self.CreateFileName = None\r
26 self.BaseAddress = None\r
27 self.BaseAddressPcd = None\r
28 self.Size = None\r
29 self.SizePcd = None\r
30 self.ErasePolarity = '1'\r
31 # 3-tuple list (blockSize, numBlocks, pcd)\r
32 self.BlockSizeList = []\r
33 # DefineVarDict[var] = value\r
34 self.DefineVarDict = {}\r
35 # SetVarDict[var] = value\r
36 self.SetVarDict = {}\r
37 self.RegionList = []\r
38 self.vtfRawDict = {}\r
39\r
40## FV data in FDF\r
41#\r
42#\r
43class FvClassObject:\r
44 ## The constructor\r
45 #\r
46 # @param self The object pointer\r
47 #\r
48 def __init__(self):\r
49 self.UiFvName = None\r
50 self.CreateFileName = None\r
51 # 3-tuple list (blockSize, numBlocks, pcd)\r
52 self.BlockSizeList = []\r
53 # DefineVarDict[var] = value\r
54 self.DefineVarDict = {}\r
55 # SetVarDict[var] = value\r
56 self.SetVarDict = {}\r
57 self.FvAlignment = None\r
58 # FvAttributeDict[attribute] = TRUE/FALSE (1/0)\r
59 self.FvAttributeDict = {}\r
60 self.FvNameGuid = None\r
61 self.AprioriSectionList = []\r
62 self.FfsList = []\r
63 self.BsBaseAddress = None\r
64 self.RtBaseAddress = None\r
65\r
66## Region data in FDF\r
67#\r
68#\r
69class RegionClassObject:\r
70 ## The constructor\r
71 #\r
72 # @param self The object pointer\r
73 #\r
74 def __init__(self):\r
75 self.Offset = None # The begin position of the Region\r
76 self.Size = None # The Size of the Region\r
77 self.PcdOffset = None\r
78 self.PcdSize = None\r
79 self.SetVarDict = {}\r
80 self.RegionType = None\r
81 self.RegionDataList = []\r
82\r
83## FFS data in FDF\r
84#\r
85# \r
86class FfsClassObject:\r
87 ## The constructor\r
88 #\r
89 # @param self The object pointer\r
90 #\r
91 def __init__(self):\r
92 self.NameGuid = None\r
93 self.Fixed = False\r
94 self.CheckSum = False\r
95 self.Alignment = None\r
96 self.SectionList = []\r
97\r
98## FILE statement data in FDF\r
99#\r
100# \r
101class FileStatementClassObject (FfsClassObject) :\r
102 ## The constructor\r
103 #\r
104 # @param self The object pointer\r
105 #\r
106 def __init__(self):\r
107 FfsClassObject.__init__(self)\r
108 self.FvFileType = None\r
109 self.FileName = None\r
110 self.KeyStringList = []\r
111 self.FvName = None\r
112 self.FdName = None\r
113 self.DefineVarDict = {}\r
114 self.AprioriSection = None\r
115 self.KeepReloc = None\r
116\r
117## INF statement data in FDF\r
118#\r
119#\r
120class FfsInfStatementClassObject(FfsClassObject):\r
121 ## The constructor\r
122 #\r
123 # @param self The object pointer\r
124 #\r
125 def __init__(self):\r
126 FfsClassObject.__init__(self)\r
127 self.Rule = None\r
128 self.Version = None\r
129 self.Ui = None\r
130 self.InfFileName = None\r
131 self.BuildNum = ''\r
132 self.KeyStringList = []\r
133 self.KeepReloc = None\r
134 self.UseArch = None\r
135\r
136## APRIORI section data in FDF\r
137#\r
138#\r
139class AprioriSectionClassObject:\r
140 ## The constructor\r
141 #\r
142 # @param self The object pointer\r
143 #\r
144 def __init__(self):\r
145 # DefineVarDict[var] = value\r
146 self.DefineVarDict = {}\r
147 self.FfsList = []\r
148\r
149## section data in FDF\r
150#\r
151# \r
152class SectionClassObject:\r
153 ## The constructor\r
154 #\r
155 # @param self The object pointer\r
156 #\r
157 def __init__(self):\r
158 self.Alignment = None\r
159 \r
160## Depex expression section in FDF\r
161#\r
162# \r
163class DepexSectionClassObject (SectionClassObject):\r
164 ## The constructor\r
165 #\r
166 # @param self The object pointer\r
167 #\r
168 def __init__(self):\r
169 self.DepexType = None\r
170 self.Expression = None\r
52302d4d 171 self.ExpressionProcessed = False\r
30fdf114
LG
172\r
173## Compress section data in FDF\r
174#\r
175#\r
176class CompressSectionClassObject (SectionClassObject) :\r
177 ## The constructor\r
178 #\r
179 # @param self The object pointer\r
180 #\r
181 def __init__(self):\r
182 SectionClassObject.__init__(self)\r
183 self.CompType = None\r
184 self.SectionList = []\r
185\r
186## Data section data in FDF\r
187#\r
188# \r
189class DataSectionClassObject (SectionClassObject):\r
190 ## The constructor\r
191 #\r
192 # @param self The object pointer\r
193 #\r
194 def __init__(self):\r
195 SectionClassObject.__init__(self)\r
196 self.SecType = None\r
197 self.SectFileName = None\r
198 self.SectionList = []\r
199 self.KeepReloc = True\r
200\r
201## Rule section data in FDF\r
202#\r
203#\r
204class EfiSectionClassObject (SectionClassObject):\r
205 ## The constructor\r
206 #\r
207 # @param self The object pointer\r
208 #\r
209 def __init__(self):\r
210 SectionClassObject.__init__(self)\r
211 self.SectionType = None\r
212 self.Optional = False\r
213 self.FileType = None\r
214 self.StringData = None\r
215 self.FileName = None\r
216 self.FileExtension = None\r
217 self.BuildNum = None\r
218 self.KeepReloc = None\r
219\r
220## FV image section data in FDF\r
221#\r
222# \r
223class FvImageSectionClassObject (SectionClassObject):\r
224 ## The constructor\r
225 #\r
226 # @param self The object pointer\r
227 #\r
228 def __init__(self):\r
229 SectionClassObject.__init__(self)\r
230 self.Fv = None\r
231 self.FvName = None\r
232 self.FvFileType = None\r
233 self.FvFileName = None\r
234 self.FvFileExtension = None\r
52302d4d 235 self.FvAddr = None\r
30fdf114
LG
236\r
237## GUIDed section data in FDF\r
238#\r
239# \r
240class GuidSectionClassObject (SectionClassObject) :\r
241 ## The constructor\r
242 #\r
243 # @param self The object pointer\r
244 #\r
245 def __init__(self):\r
246 SectionClassObject.__init__(self)\r
247 self.NameGuid = None\r
248 self.SectionList = []\r
249 self.SectionType = None\r
250 self.ProcessRequired = False\r
251 self.AuthStatusValid = False\r
52302d4d
LG
252 self.FvAddr = []\r
253 self.FvParentAddr = None\r
254 self.IncludeFvSection = False\r
30fdf114
LG
255\r
256## UI section data in FDF\r
257#\r
258#\r
259class UiSectionClassObject (SectionClassObject):\r
260 ## The constructor\r
261 #\r
262 # @param self The object pointer\r
263 #\r
264 def __init__(self):\r
265 SectionClassObject.__init__(self)\r
266 self.StringData = None\r
267 self.FileName = None\r
268\r
269## Version section data in FDF\r
270#\r
271# \r
272class VerSectionClassObject (SectionClassObject):\r
273 ## The constructor\r
274 #\r
275 # @param self The object pointer\r
276 #\r
277 def __init__(self):\r
278 SectionClassObject.__init__(self)\r
279 self.BuildNum = None\r
280 self.StringData = None\r
281 self.FileName = None\r
282\r
283## Rule data in FDF\r
284#\r
285#\r
286class RuleClassObject :\r
287 ## The constructor\r
288 #\r
289 # @param self The object pointer\r
290 #\r
291 def __init__(self):\r
292 self.Arch = None\r
293 self.ModuleType = None # For Module Type\r
294 self.TemplateName = None\r
295 self.NameGuid = None\r
296 self.Fixed = False\r
297 self.Alignment = None\r
52302d4d 298 self.SectAlignment = None\r
30fdf114
LG
299 self.CheckSum = False\r
300 self.FvFileType = None # for Ffs File Type\r
301 self.KeyStringList = []\r
302 self.KeepReloc = None\r
303\r
304## Complex rule data in FDF\r
305#\r
306# \r
307class RuleComplexFileClassObject(RuleClassObject) :\r
308 ## The constructor\r
309 #\r
310 # @param self The object pointer\r
311 #\r
312 def __init__(self):\r
313 RuleClassObject.__init__(self)\r
314 self.SectionList = []\r
315\r
316## Simple rule data in FDF\r
317#\r
318#\r
319class RuleSimpleFileClassObject(RuleClassObject) :\r
320 ## The constructor\r
321 #\r
322 # @param self The object pointer\r
323 #\r
324 def __init__(self):\r
325 RuleClassObject.__init__(self)\r
326 self.FileName = None\r
327 self.SectionType = ''\r
328 self.FileExtension = None\r
329\r
330## File extension rule data in FDF\r
331#\r
332#\r
333class RuleFileExtensionClassObject(RuleClassObject):\r
334 ## The constructor\r
335 #\r
336 # @param self The object pointer\r
337 #\r
338 def __init__(self):\r
339 RuleClassObject.__init__(self)\r
340 self.FileExtension = None\r
341\r
342## Capsule data in FDF\r
343#\r
344# \r
345class CapsuleClassObject :\r
346 ## The constructor\r
347 #\r
348 # @param self The object pointer\r
349 #\r
350 def __init__(self):\r
351 self.SpecName = None\r
352 self.UiCapsuleName = None\r
353 self.CreateFile = None\r
354 self.GroupIdNumber = None\r
355 # DefineVarDict[var] = value\r
356 self.DefineVarDict = {}\r
357 # SetVarDict[var] = value\r
358 self.SetVarDict = {}\r
359 # TokensDict[var] = value\r
360 self.TokensDict = {}\r
361 self.CapsuleDataList = []\r
362\r
363## VTF data in FDF\r
364#\r
365#\r
366class VtfClassObject :\r
367 ## The constructor\r
368 #\r
369 # @param self The object pointer\r
370 #\r
371 def __init__(self):\r
372 self.KeyArch = None\r
373 self.ArchList = None\r
374 self.UiName = None\r
375 self.ResetBin = None\r
376 self.ComponentStatementList = []\r
377\r
378## VTF component data in FDF\r
379#\r
380# \r
381class ComponentStatementClassObject :\r
382 ## The constructor\r
383 #\r
384 # @param self The object pointer\r
385 #\r
386 def __init__(self):\r
387 self.CompName = None\r
388 self.CompLoc = None\r
389 self.CompType = None\r
390 self.CompVer = None\r
391 self.CompCs = None\r
392 self.CompBin = None\r
393 self.CompSym = None\r
394 self.CompSize = None\r
395 self.FilePos = None\r
396 \r
397## OptionROM data in FDF\r
398#\r
399#\r
400class OptionRomClassObject:\r
401 ## The constructor\r
402 #\r
403 # @param self The object pointer\r
404 #\r
405 def __init__(self):\r
406 self.DriverName = None\r
407 self.FfsList = []\r
52302d4d 408 \r