]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/Python/CommonDataClass/FdfClass.py
0fb54d89145c7436e4bb6e360f1ce0b9e0642e98
[mirror_edk2.git] / BaseTools / Source / Python / CommonDataClass / FdfClass.py
1 ## @file
2 # classes represent data in FDF
3 #
4 # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
5 #
6 # This program and the accompanying materials
7 # are licensed and made available under the terms and conditions of the BSD License
8 # which accompanies this distribution. The full text of the license may be found at
9 # http://opensource.org/licenses/bsd-license.php
10 #
11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 #
14
15 ## FD data in FDF
16 #
17 #
18 class FDClassObject:
19 ## The constructor
20 #
21 # @param self The object pointer
22 #
23 def __init__(self):
24 self.FdUiName = ''
25 self.CreateFileName = None
26 self.BaseAddress = None
27 self.BaseAddressPcd = None
28 self.Size = None
29 self.SizePcd = None
30 self.ErasePolarity = None
31 # 3-tuple list (blockSize, numBlocks, pcd)
32 self.BlockSizeList = []
33 # DefineVarDict[var] = value
34 self.DefineVarDict = {}
35 # SetVarDict[var] = value
36 self.SetVarDict = {}
37 self.RegionList = []
38
39 ## FFS data in FDF
40 #
41 #
42 class FfsClassObject:
43 ## The constructor
44 #
45 # @param self The object pointer
46 #
47 def __init__(self):
48 self.NameGuid = None
49 self.Fixed = False
50 self.CheckSum = False
51 self.Alignment = None
52 self.SectionList = []
53
54 ## FILE statement data in FDF
55 #
56 #
57 class FileStatementClassObject (FfsClassObject) :
58 ## The constructor
59 #
60 # @param self The object pointer
61 #
62 def __init__(self):
63 FfsClassObject.__init__(self)
64 self.FvFileType = None
65 self.FileName = None
66 self.KeyStringList = []
67 self.FvName = None
68 self.FdName = None
69 self.DefineVarDict = {}
70 self.KeepReloc = None
71
72 ## INF statement data in FDF
73 #
74 #
75 class FfsInfStatementClassObject(FfsClassObject):
76 ## The constructor
77 #
78 # @param self The object pointer
79 #
80 def __init__(self):
81 FfsClassObject.__init__(self)
82 self.Rule = None
83 self.Version = None
84 self.Ui = None
85 self.InfFileName = None
86 self.BuildNum = ''
87 self.KeyStringList = []
88 self.KeepReloc = None
89 self.UseArch = None
90
91 ## section data in FDF
92 #
93 #
94 class SectionClassObject:
95 ## The constructor
96 #
97 # @param self The object pointer
98 #
99 def __init__(self):
100 self.Alignment = None
101
102 ## Depex expression section in FDF
103 #
104 #
105 class DepexSectionClassObject (SectionClassObject):
106 ## The constructor
107 #
108 # @param self The object pointer
109 #
110 def __init__(self):
111 self.DepexType = None
112 self.Expression = None
113 self.ExpressionProcessed = False
114
115 ## Compress section data in FDF
116 #
117 #
118 class CompressSectionClassObject (SectionClassObject) :
119 ## The constructor
120 #
121 # @param self The object pointer
122 #
123 def __init__(self):
124 SectionClassObject.__init__(self)
125 self.CompType = None
126 self.SectionList = []
127
128 ## Data section data in FDF
129 #
130 #
131 class DataSectionClassObject (SectionClassObject):
132 ## The constructor
133 #
134 # @param self The object pointer
135 #
136 def __init__(self):
137 SectionClassObject.__init__(self)
138 self.SecType = None
139 self.SectFileName = None
140 self.SectionList = []
141 self.KeepReloc = True
142
143 ## Rule section data in FDF
144 #
145 #
146 class EfiSectionClassObject (SectionClassObject):
147 ## The constructor
148 #
149 # @param self The object pointer
150 #
151 def __init__(self):
152 SectionClassObject.__init__(self)
153 self.SectionType = None
154 self.Optional = False
155 self.FileType = None
156 self.StringData = None
157 self.FileName = None
158 self.FileExtension = None
159 self.BuildNum = None
160 self.KeepReloc = None
161
162 ## FV image section data in FDF
163 #
164 #
165 class FvImageSectionClassObject (SectionClassObject):
166 ## The constructor
167 #
168 # @param self The object pointer
169 #
170 def __init__(self):
171 SectionClassObject.__init__(self)
172 self.Fv = None
173 self.FvName = None
174 self.FvFileType = None
175 self.FvFileName = None
176 self.FvFileExtension = None
177 self.FvAddr = None
178
179 ## GUIDed section data in FDF
180 #
181 #
182 class GuidSectionClassObject (SectionClassObject) :
183 ## The constructor
184 #
185 # @param self The object pointer
186 #
187 def __init__(self):
188 SectionClassObject.__init__(self)
189 self.NameGuid = None
190 self.SectionList = []
191 self.SectionType = None
192 self.ProcessRequired = False
193 self.AuthStatusValid = False
194 self.ExtraHeaderSize = -1
195 self.FvAddr = []
196 self.FvParentAddr = None
197 self.IncludeFvSection = False
198
199 ## UI section data in FDF
200 #
201 #
202 class UiSectionClassObject (SectionClassObject):
203 ## The constructor
204 #
205 # @param self The object pointer
206 #
207 def __init__(self):
208 SectionClassObject.__init__(self)
209 self.StringData = None
210 self.FileName = None
211
212 ## Version section data in FDF
213 #
214 #
215 class VerSectionClassObject (SectionClassObject):
216 ## The constructor
217 #
218 # @param self The object pointer
219 #
220 def __init__(self):
221 SectionClassObject.__init__(self)
222 self.BuildNum = None
223 self.StringData = None
224 self.FileName = None
225
226 ## Rule data in FDF
227 #
228 #
229 class RuleClassObject :
230 ## The constructor
231 #
232 # @param self The object pointer
233 #
234 def __init__(self):
235 self.Arch = None
236 self.ModuleType = None # For Module Type
237 self.TemplateName = None
238 self.NameGuid = None
239 self.Fixed = False
240 self.Alignment = None
241 self.SectAlignment = None
242 self.CheckSum = False
243 self.FvFileType = None # for Ffs File Type
244 self.KeyStringList = []
245 self.KeepReloc = None
246
247 ## Complex rule data in FDF
248 #
249 #
250 class RuleComplexFileClassObject(RuleClassObject) :
251 ## The constructor
252 #
253 # @param self The object pointer
254 #
255 def __init__(self):
256 RuleClassObject.__init__(self)
257 self.SectionList = []
258
259 ## Simple rule data in FDF
260 #
261 #
262 class RuleSimpleFileClassObject(RuleClassObject) :
263 ## The constructor
264 #
265 # @param self The object pointer
266 #
267 def __init__(self):
268 RuleClassObject.__init__(self)
269 self.FileName = None
270 self.SectionType = ''
271 self.FileExtension = None
272
273 ## File extension rule data in FDF
274 #
275 #
276 class RuleFileExtensionClassObject(RuleClassObject):
277 ## The constructor
278 #
279 # @param self The object pointer
280 #
281 def __init__(self):
282 RuleClassObject.__init__(self)
283 self.FileExtension = None
284
285 ## Capsule data in FDF
286 #
287 #
288 class CapsuleClassObject :
289 ## The constructor
290 #
291 # @param self The object pointer
292 #
293 def __init__(self):
294 self.SpecName = None
295 self.UiCapsuleName = None
296 self.CreateFile = None
297 self.GroupIdNumber = None
298 # DefineVarDict[var] = value
299 self.DefineVarDict = {}
300 # SetVarDict[var] = value
301 self.SetVarDict = {}
302 # TokensDict[var] = value
303 self.TokensDict = {}
304 self.CapsuleDataList = []
305 self.FmpPayloadList = []
306
307 ## OptionROM data in FDF
308 #
309 #
310 class OptionRomClassObject:
311 ## The constructor
312 #
313 # @param self The object pointer
314 #
315 def __init__(self):
316 self.DriverName = None
317 self.FfsList = []
318