]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/Sec/SecMain.h
Remove extra #includes where possible to make build more efficient
[mirror_edk2.git] / UnixPkg / Sec / SecMain.h
CommitLineData
804405e7 1/*++\r
2\r
3Copyright (c) 2006 - 2008, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12\r
13Module Name:\r
14 SecMain.h\r
15\r
16Abstract:\r
17 Include file for host API based SEC\r
18\r
19--*/\r
bac49e77 20#include <FrameworkPei.h>\r
804405e7 21\r
22#include <Protocol/UnixThunk.h>\r
804405e7 23#include <Ppi/StatusCode.h>\r
24\r
25#include <Library/PeCoffLib.h>\r
26#include <Library/BaseLib.h>\r
27#include <Library/BaseMemoryLib.h>\r
28#include <Library/PrintLib.h>\r
29#include <Library/PcdLib.h>\r
30#include <Library/DebugLib.h>\r
31\r
32#define STACK_SIZE 0x20000 \r
33\r
34typedef struct {\r
35 EFI_PHYSICAL_ADDRESS Address;\r
36 UINT64 Size;\r
37} UNIX_FD_INFO;\r
38\r
39typedef struct {\r
40 EFI_PHYSICAL_ADDRESS Memory;\r
41 UINT64 Size;\r
42} UNIX_SYSTEM_MEMORY;\r
43\r
44\r
45\r
46EFI_STATUS\r
47EFIAPI\r
48SecWinNtPeiLoadFile (\r
49 VOID *Pe32Data, // TODO: add IN/OUT modifier to Pe32Data\r
50 EFI_PHYSICAL_ADDRESS *ImageAddress, // TODO: add IN/OUT modifier to ImageAddress\r
51 UINT64 *ImageSize, // TODO: add IN/OUT modifier to ImageSize\r
52 EFI_PHYSICAL_ADDRESS *EntryPoint // TODO: add IN/OUT modifier to EntryPoint\r
53 )\r
54/*++\r
55\r
56Routine Description:\r
57\r
58 TODO: Add function description\r
59\r
60Arguments:\r
61\r
62 Pe32Data - TODO: add argument description\r
63 ImageAddress - TODO: add argument description\r
64 ImageSize - TODO: add argument description\r
65 EntryPoint - TODO: add argument description\r
66\r
67Returns:\r
68\r
69 TODO: add return values\r
70\r
71--*/\r
72;\r
73\r
74EFI_STATUS\r
75EFIAPI\r
76SecWinNtPeiAutoScan (\r
77 IN UINTN Index,\r
78 OUT EFI_PHYSICAL_ADDRESS *MemoryBase,\r
79 OUT UINT64 *MemorySize\r
80 )\r
81/*++\r
82\r
83Routine Description:\r
84\r
85 TODO: Add function description\r
86\r
87Arguments:\r
88\r
89 Index - TODO: add argument description\r
90 MemoryBase - TODO: add argument description\r
91 MemorySize - TODO: add argument description\r
92\r
93Returns:\r
94\r
95 TODO: add return values\r
96\r
97--*/\r
98;\r
99\r
100VOID *\r
101EFIAPI\r
102SecWinNtWinNtThunkAddress (\r
103 VOID\r
104 )\r
105/*++\r
106\r
107Routine Description:\r
108\r
109 TODO: Add function description\r
110\r
111Arguments:\r
112\r
113 InterfaceSize - TODO: add argument description\r
114 InterfaceBase - TODO: add argument description\r
115\r
116Returns:\r
117\r
118 TODO: add return values\r
119\r
120--*/\r
121;\r
122\r
123EFI_STATUS\r
124EFIAPI\r
125SecWinNtWinNtFwhAddress (\r
126 IN OUT UINT64 *FwhSize,\r
127 IN OUT EFI_PHYSICAL_ADDRESS *FwhBase\r
128 )\r
129/*++\r
130\r
131Routine Description:\r
132\r
133 TODO: Add function description\r
134\r
135Arguments:\r
136\r
137 FwhSize - TODO: add argument description\r
138 FwhBase - TODO: add argument description\r
139\r
140Returns:\r
141\r
142 TODO: add return values\r
143\r
144--*/\r
145;\r
146\r
147EFI_STATUS\r
148EFIAPI\r
149SecPeiReportStatusCode (\r
150 IN EFI_PEI_SERVICES **PeiServices,\r
151 IN EFI_STATUS_CODE_TYPE CodeType,\r
152 IN EFI_STATUS_CODE_VALUE Value,\r
153 IN UINT32 Instance,\r
154 IN EFI_GUID * CallerId,\r
155 IN EFI_STATUS_CODE_DATA * Data OPTIONAL\r
156 )\r
157/*++\r
158\r
159Routine Description:\r
160\r
161 TODO: Add function description\r
162\r
163Arguments:\r
164\r
165 PeiServices - TODO: add argument description\r
166 CodeType - TODO: add argument description\r
167 Value - TODO: add argument description\r
168 Instance - TODO: add argument description\r
169 CallerId - TODO: add argument description\r
170 Data - TODO: add argument description\r
171\r
172Returns:\r
173\r
174 TODO: add return values\r
175\r
176--*/\r
177;\r
178\r
179INTN\r
180EFIAPI\r
181main (\r
182 IN INTN Argc,\r
183 IN CHAR8 **Argv,\r
184 IN CHAR8 **Envp\r
185 )\r
186/*++\r
187\r
188Routine Description:\r
189\r
190 TODO: Add function description\r
191\r
192Arguments:\r
193\r
194 Argc - TODO: add argument description\r
195 Argv - TODO: add argument description\r
196 Envp - TODO: add argument description\r
197\r
198Returns:\r
199\r
200 TODO: add return values\r
201\r
202--*/\r
203;\r
204\r
205VOID\r
206SecLoadFromCore (\r
207 IN UINTN LargestRegion,\r
208 IN UINTN LargestRegionSize,\r
209 IN UINTN BootFirmwareVolumeBase,\r
210 IN VOID *PeiCoreFile\r
211 )\r
212/*++\r
213\r
214Routine Description:\r
215\r
216 TODO: Add function description\r
217\r
218Arguments:\r
219\r
220 LargestRegion - TODO: add argument description\r
221 LargestRegionSize - TODO: add argument description\r
222 BootFirmwareVolumeBase - TODO: add argument description\r
223 PeiCoreFile - TODO: add argument description\r
224\r
225Returns:\r
226\r
227 TODO: add return values\r
228\r
229--*/\r
230;\r
231\r
232EFI_STATUS\r
233SecLoadFile (\r
234 IN VOID *Pe32Data,\r
235 IN EFI_PHYSICAL_ADDRESS *ImageAddress,\r
236 IN UINT64 *ImageSize,\r
237 IN EFI_PHYSICAL_ADDRESS *EntryPoint\r
238 )\r
239/*++\r
240\r
241Routine Description:\r
242\r
243 TODO: Add function description\r
244\r
245Arguments:\r
246\r
247 Pe32Data - TODO: add argument description\r
248 ImageAddress - TODO: add argument description\r
249 ImageSize - TODO: add argument description\r
250 EntryPoint - TODO: add argument description\r
251\r
252Returns:\r
253\r
254 TODO: add return values\r
255\r
256--*/\r
257;\r
258\r
259EFI_STATUS\r
260SecFfsFindPeiCore (\r
261 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
262 OUT VOID **Pe32Data\r
263 )\r
264/*++\r
265\r
266Routine Description:\r
267\r
268 TODO: Add function description\r
269\r
270Arguments:\r
271\r
272 FwVolHeader - TODO: add argument description\r
273 Pe32Data - TODO: add argument description\r
274\r
275Returns:\r
276\r
277 TODO: add return values\r
278\r
279--*/\r
280;\r
281\r
282EFI_STATUS\r
283SecFfsFindNextFile (\r
284 IN EFI_FV_FILETYPE SearchType,\r
285 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
286 IN OUT EFI_FFS_FILE_HEADER **FileHeader\r
287 )\r
288/*++\r
289\r
290Routine Description:\r
291\r
292 TODO: Add function description\r
293\r
294Arguments:\r
295\r
296 SearchType - TODO: add argument description\r
297 FwVolHeader - TODO: add argument description\r
298 FileHeader - TODO: add argument description\r
299\r
300Returns:\r
301\r
302 TODO: add return values\r
303\r
304--*/\r
305;\r
306\r
307EFI_STATUS\r
308SecFfsFindSectionData (\r
309 IN EFI_SECTION_TYPE SectionType,\r
310 IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
311 IN OUT VOID **SectionData\r
312 )\r
313/*++\r
314\r
315Routine Description:\r
316\r
317 TODO: Add function description\r
318\r
319Arguments:\r
320\r
321 SectionType - TODO: add argument description\r
322 FfsFileHeader - TODO: add argument description\r
323 SectionData - TODO: add argument description\r
324\r
325Returns:\r
326\r
327 TODO: add return values\r
328\r
329--*/\r
330;\r
331\r
332EFI_STATUS\r
333EFIAPI\r
334SecWinNtPeCoffLoaderLoadAsDll (\r
335 IN CHAR8 *PdbFileName,\r
336 IN VOID **ImageEntryPoint,\r
337 OUT VOID **ModHandle\r
338 )\r
339/*++\r
340\r
341Routine Description:\r
342\r
343 TODO: Add function description\r
344\r
345Arguments:\r
346\r
347 PdbFileName - TODO: add argument description\r
348 ImageEntryPoint - TODO: add argument description\r
349 ModHandle - TODO: add argument description\r
350\r
351Returns:\r
352\r
353 TODO: add return values\r
354\r
355--*/\r
356;\r
357\r
358EFI_STATUS\r
359EFIAPI\r
360SecWinNtPeCoffLoaderFreeLibrary (\r
361 OUT VOID *ModHandle\r
362 )\r
363/*++\r
364\r
365Routine Description:\r
366\r
367 TODO: Add function description\r
368\r
369Arguments:\r
370\r
371 ModHandle - TODO: add argument description\r
372\r
373Returns:\r
374\r
375 TODO: add return values\r
376\r
377--*/\r
378;\r
379\r
380EFI_STATUS\r
381EFIAPI\r
382SecWinNtFdAddress (\r
383 IN UINTN Index,\r
384 IN OUT EFI_PHYSICAL_ADDRESS *FdBase,\r
385 IN OUT UINT64 *FdSize\r
386 )\r
387/*++\r
388\r
389Routine Description:\r
390\r
391 TODO: Add function description\r
392\r
393Arguments:\r
394\r
395 Index - TODO: add argument description\r
396 FdBase - TODO: add argument description\r
397 FdSize - TODO: add argument description\r
398\r
399Returns:\r
400\r
401 TODO: add return values\r
402\r
403--*/\r
404;\r
405\r
406EFI_STATUS\r
407GetImageReadFunction (\r
408 IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,\r
409 IN EFI_PHYSICAL_ADDRESS *TopOfMemory\r
410 )\r
411/*++\r
412\r
413Routine Description:\r
414\r
415 TODO: Add function description\r
416\r
417Arguments:\r
418\r
419 ImageContext - TODO: add argument description\r
420 TopOfMemory - TODO: add argument description\r
421\r
422Returns:\r
423\r
424 TODO: add return values\r
425\r
426--*/\r
427;\r
428\r
429EFI_STATUS\r
430EFIAPI\r
431SecImageRead (\r
432 IN VOID *FileHandle,\r
433 IN UINTN FileOffset,\r
434 IN OUT UINTN *ReadSize,\r
435 OUT VOID *Buffer\r
436 )\r
437/*++\r
438\r
439Routine Description:\r
440\r
441 TODO: Add function description\r
442\r
443Arguments:\r
444\r
445 FileHandle - TODO: add argument description\r
446 FileOffset - TODO: add argument description\r
447 ReadSize - TODO: add argument description\r
448 Buffer - TODO: add argument description\r
449\r
450Returns:\r
451\r
452 TODO: add return values\r
453\r
454--*/\r
455;\r
456\r
457CHAR16 *\r
458AsciiToUnicode (\r
459 IN CHAR8 *Ascii,\r
460 IN UINTN *StrLen OPTIONAL\r
461 )\r
462/*++\r
463\r
464Routine Description:\r
465\r
466 TODO: Add function description\r
467\r
468Arguments:\r
469\r
470 Ascii - TODO: add argument description\r
471 StrLen - TODO: add argument description\r
472\r
473Returns:\r
474\r
475 TODO: add return values\r
476\r
477--*/\r
478;\r
479\r
480UINTN\r
481CountSeperatorsInString (\r
482 IN const CHAR16 *String,\r
483 IN CHAR16 Seperator\r
484 )\r
485/*++\r
486\r
487Routine Description:\r
488\r
489 TODO: Add function description\r
490\r
491Arguments:\r
492\r
493 String - TODO: add argument description\r
494 Seperator - TODO: add argument description\r
495\r
496Returns:\r
497\r
498 TODO: add return values\r
499\r
500--*/\r
501;\r
502\r
804405e7 503EFI_STATUS\r
504EFIAPI\r
505SecTemporaryRamSupport (\r
506 IN CONST EFI_PEI_SERVICES **PeiServices,\r
507 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,\r
508 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,\r
509 IN UINTN CopySize\r
510 );\r
511\r
804405e7 512extern EFI_UNIX_THUNK_PROTOCOL *gUnix;\r