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