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