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