]> git.proxmox.com Git - mirror_edk2.git/blame - Nt32Pkg/Sec/SecMain.h
Update the copyright notice format
[mirror_edk2.git] / Nt32Pkg / Sec / SecMain.h
CommitLineData
6ae81428 1/**@file\r
2e19fd0f 2\r
8f2a5f80
HT
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
2e19fd0f 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 Windows API based SEC\r
18\r
6ae81428 19**/\r
2e19fd0f 20\r
21#include <stdio.h>\r
2e19fd0f 22#include <PiPei.h>\r
2e19fd0f 23#include <WinNtPeim.h>\r
5e335a52 24#include <Guid/StatusCodeDataTypeDebug.h>\r
2e19fd0f 25#include <Library/BaseLib.h>\r
26#include <Library/PeCoffLib.h>\r
2e19fd0f 27#include <Ppi/NtPeiLoadFile.h>\r
28#include <Ppi/NtAutoscan.h>\r
29#include <Ppi/NtThunk.h>\r
30#include <Ppi/StatusCode.h>\r
31#include <Ppi/NtFwh.h>\r
58dcdada 32#include <Ppi/TemporaryRamSupport.h>\r
2e19fd0f 33#include <Library/PcdLib.h>\r
34#include <Library/DebugLib.h>\r
35#include <Library/PrintLib.h>\r
36#include <Library/BaseMemoryLib.h>\r
d0dc913e
A
37#include <Library/ReportStatusCodeLib.h>\r
38\r
39#include <IndustryStandard/PeImage.h>\r
40\r
2e19fd0f 41#define STACK_SIZE 0x20000 \r
42\r
43typedef struct {\r
44 EFI_PHYSICAL_ADDRESS Address;\r
45 UINT64 Size;\r
46} NT_FD_INFO;\r
47\r
2e19fd0f 48typedef struct {\r
2e19fd0f 49 EFI_PHYSICAL_ADDRESS Memory;\r
50 UINT64 Size;\r
51} NT_SYSTEM_MEMORY;\r
52\r
2e19fd0f 53#define MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100\r
54\r
55typedef struct {\r
56 CHAR8 *PdbPointer;\r
57 VOID *ModHandle;\r
58} PDB_NAME_TO_MOD_HANDLE;\r
59\r
60\r
61\r
62\r
63EFI_STATUS\r
64EFIAPI\r
65SecWinNtPeiLoadFile (\r
66 VOID *Pe32Data, // TODO: add IN/OUT modifier to Pe32Data\r
67 EFI_PHYSICAL_ADDRESS *ImageAddress, // TODO: add IN/OUT modifier to ImageAddress\r
68 UINT64 *ImageSize, // TODO: add IN/OUT modifier to ImageSize\r
69 EFI_PHYSICAL_ADDRESS *EntryPoint // TODO: add IN/OUT modifier to EntryPoint\r
70 )\r
71/*++\r
72\r
73Routine Description:\r
74\r
75 TODO: Add function description\r
76\r
77Arguments:\r
78\r
79 Pe32Data - TODO: add argument description\r
80 ImageAddress - TODO: add argument description\r
81 ImageSize - TODO: add argument description\r
82 EntryPoint - TODO: add argument description\r
83\r
84Returns:\r
85\r
86 TODO: add return values\r
87\r
88--*/\r
89;\r
90\r
91EFI_STATUS\r
92EFIAPI\r
93SecWinNtPeiAutoScan (\r
94 IN UINTN Index,\r
95 OUT EFI_PHYSICAL_ADDRESS *MemoryBase,\r
96 OUT UINT64 *MemorySize\r
97 )\r
98/*++\r
99\r
100Routine Description:\r
101\r
102 TODO: Add function description\r
103\r
104Arguments:\r
105\r
106 Index - TODO: add argument description\r
107 MemoryBase - TODO: add argument description\r
108 MemorySize - TODO: add argument description\r
109\r
110Returns:\r
111\r
112 TODO: add return values\r
113\r
114--*/\r
115;\r
116\r
117VOID *\r
118EFIAPI\r
119SecWinNtWinNtThunkAddress (\r
120 VOID\r
121 )\r
122/*++\r
123\r
124Routine Description:\r
125\r
126 TODO: Add function description\r
127\r
128Arguments:\r
129\r
130 InterfaceSize - TODO: add argument description\r
131 InterfaceBase - TODO: add argument description\r
132\r
133Returns:\r
134\r
135 TODO: add return values\r
136\r
137--*/\r
138;\r
139\r
140EFI_STATUS\r
141EFIAPI\r
142SecWinNtWinNtFwhAddress (\r
143 IN OUT UINT64 *FwhSize,\r
144 IN OUT EFI_PHYSICAL_ADDRESS *FwhBase\r
145 )\r
146/*++\r
147\r
148Routine Description:\r
149\r
150 TODO: Add function description\r
151\r
152Arguments:\r
153\r
154 FwhSize - TODO: add argument description\r
155 FwhBase - TODO: add argument description\r
156\r
157Returns:\r
158\r
159 TODO: add return values\r
160\r
161--*/\r
162;\r
163\r
164EFI_STATUS\r
165EFIAPI\r
166SecPeiReportStatusCode (\r
e1001af1 167 IN CONST EFI_PEI_SERVICES **PeiServices,\r
2e19fd0f 168 IN EFI_STATUS_CODE_TYPE CodeType,\r
169 IN EFI_STATUS_CODE_VALUE Value,\r
170 IN UINT32 Instance,\r
e1001af1 171 IN CONST EFI_GUID * CallerId,\r
172 IN CONST EFI_STATUS_CODE_DATA * Data OPTIONAL\r
2e19fd0f 173 )\r
174/*++\r
175\r
176Routine Description:\r
177\r
178 TODO: Add function description\r
179\r
180Arguments:\r
181\r
182 PeiServices - TODO: add argument description\r
183 CodeType - TODO: add argument description\r
184 Value - TODO: add argument description\r
185 Instance - TODO: add argument description\r
186 CallerId - TODO: add argument description\r
187 Data - TODO: add argument description\r
188\r
189Returns:\r
190\r
191 TODO: add return values\r
192\r
193--*/\r
194;\r
195\r
196INTN\r
197EFIAPI\r
198main (\r
199 IN INTN Argc,\r
200 IN CHAR8 **Argv,\r
201 IN CHAR8 **Envp\r
202 )\r
203/*++\r
204\r
205Routine Description:\r
206\r
207 TODO: Add function description\r
208\r
209Arguments:\r
210\r
211 Argc - TODO: add argument description\r
212 Argv - TODO: add argument description\r
213 Envp - TODO: add argument description\r
214\r
215Returns:\r
216\r
217 TODO: add return values\r
218\r
219--*/\r
220;\r
221\r
222EFI_STATUS\r
223WinNtOpenFile (\r
224 CHAR16 *FileName,\r
225 UINT32 MapSize,\r
226 DWORD CreationDispostion,\r
227 EFI_PHYSICAL_ADDRESS *BaseAddress,\r
228 UINT64 *Length\r
229 )\r
230/*++\r
231\r
232Routine Description:\r
233\r
234 TODO: Add function description\r
235\r
236Arguments:\r
237\r
238 FileName - TODO: add argument description\r
239 MapSize - TODO: add argument description\r
240 CreationDispostion - TODO: add argument description\r
241 BaseAddress - TODO: add argument description\r
242 Length - TODO: add argument description\r
243\r
244Returns:\r
245\r
246 TODO: add return values\r
247\r
248--*/\r
249;\r
250\r
251VOID\r
252SecLoadFromCore (\r
253 IN UINTN LargestRegion,\r
254 IN UINTN LargestRegionSize,\r
255 IN UINTN BootFirmwareVolumeBase,\r
256 IN VOID *PeiCoreFile\r
257 )\r
258/*++\r
259\r
260Routine Description:\r
261\r
262 TODO: Add function description\r
263\r
264Arguments:\r
265\r
266 LargestRegion - TODO: add argument description\r
267 LargestRegionSize - TODO: add argument description\r
268 BootFirmwareVolumeBase - TODO: add argument description\r
269 PeiCoreFile - TODO: add argument description\r
270\r
271Returns:\r
272\r
273 TODO: add return values\r
274\r
275--*/\r
276;\r
277\r
278EFI_STATUS\r
279SecLoadFile (\r
280 IN VOID *Pe32Data,\r
281 IN EFI_PHYSICAL_ADDRESS *ImageAddress,\r
282 IN UINT64 *ImageSize,\r
283 IN EFI_PHYSICAL_ADDRESS *EntryPoint\r
284 )\r
285/*++\r
286\r
287Routine Description:\r
288\r
289 TODO: Add function description\r
290\r
291Arguments:\r
292\r
293 Pe32Data - TODO: add argument description\r
294 ImageAddress - TODO: add argument description\r
295 ImageSize - TODO: add argument description\r
296 EntryPoint - TODO: add argument description\r
297\r
298Returns:\r
299\r
300 TODO: add return values\r
301\r
302--*/\r
303;\r
304\r
305EFI_STATUS\r
306SecFfsFindPeiCore (\r
307 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
308 OUT VOID **Pe32Data\r
309 )\r
310/*++\r
311\r
312Routine Description:\r
313\r
314 TODO: Add function description\r
315\r
316Arguments:\r
317\r
318 FwVolHeader - TODO: add argument description\r
319 Pe32Data - TODO: add argument description\r
320\r
321Returns:\r
322\r
323 TODO: add return values\r
324\r
325--*/\r
326;\r
327\r
328EFI_STATUS\r
329SecFfsFindNextFile (\r
330 IN EFI_FV_FILETYPE SearchType,\r
331 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
332 IN OUT EFI_FFS_FILE_HEADER **FileHeader\r
333 )\r
334/*++\r
335\r
336Routine Description:\r
337\r
338 TODO: Add function description\r
339\r
340Arguments:\r
341\r
342 SearchType - TODO: add argument description\r
343 FwVolHeader - TODO: add argument description\r
344 FileHeader - TODO: add argument description\r
345\r
346Returns:\r
347\r
348 TODO: add return values\r
349\r
350--*/\r
351;\r
352\r
353EFI_STATUS\r
354SecFfsFindSectionData (\r
355 IN EFI_SECTION_TYPE SectionType,\r
356 IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
357 IN OUT VOID **SectionData\r
358 )\r
359/*++\r
360\r
361Routine Description:\r
362\r
363 TODO: Add function description\r
364\r
365Arguments:\r
366\r
367 SectionType - TODO: add argument description\r
368 FfsFileHeader - TODO: add argument description\r
369 SectionData - TODO: add argument description\r
370\r
371Returns:\r
372\r
373 TODO: add return values\r
374\r
375--*/\r
376;\r
377\r
378EFI_STATUS\r
379EFIAPI\r
380SecWinNtPeCoffLoaderLoadAsDll (\r
381 IN CHAR8 *PdbFileName,\r
382 IN VOID **ImageEntryPoint,\r
383 OUT VOID **ModHandle\r
384 )\r
385/*++\r
386\r
387Routine Description:\r
388\r
389 TODO: Add function description\r
390\r
391Arguments:\r
392\r
393 PdbFileName - TODO: add argument description\r
394 ImageEntryPoint - TODO: add argument description\r
395 ModHandle - TODO: add argument description\r
396\r
397Returns:\r
398\r
399 TODO: add return values\r
400\r
401--*/\r
402;\r
403\r
404EFI_STATUS\r
405EFIAPI\r
406SecWinNtPeCoffLoaderFreeLibrary (\r
407 OUT VOID *ModHandle\r
408 )\r
409/*++\r
410\r
411Routine Description:\r
412\r
413 TODO: Add function description\r
414\r
415Arguments:\r
416\r
417 ModHandle - TODO: add argument description\r
418\r
419Returns:\r
420\r
421 TODO: add return values\r
422\r
423--*/\r
424;\r
425\r
426EFI_STATUS\r
427EFIAPI\r
428SecWinNtFdAddress (\r
429 IN UINTN Index,\r
430 IN OUT EFI_PHYSICAL_ADDRESS *FdBase,\r
431 IN OUT UINT64 *FdSize\r
432 )\r
433/*++\r
434\r
435Routine Description:\r
436\r
437 TODO: Add function description\r
438\r
439Arguments:\r
440\r
441 Index - TODO: add argument description\r
442 FdBase - TODO: add argument description\r
443 FdSize - TODO: add argument description\r
444\r
445Returns:\r
446\r
447 TODO: add return values\r
448\r
449--*/\r
450;\r
451\r
452EFI_STATUS\r
453GetImageReadFunction (\r
454 IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,\r
455 IN EFI_PHYSICAL_ADDRESS *TopOfMemory\r
456 )\r
457/*++\r
458\r
459Routine Description:\r
460\r
461 TODO: Add function description\r
462\r
463Arguments:\r
464\r
465 ImageContext - TODO: add argument description\r
466 TopOfMemory - TODO: add argument description\r
467\r
468Returns:\r
469\r
470 TODO: add return values\r
471\r
472--*/\r
473;\r
474\r
475EFI_STATUS\r
476EFIAPI\r
477SecImageRead (\r
478 IN VOID *FileHandle,\r
479 IN UINTN FileOffset,\r
480 IN OUT UINTN *ReadSize,\r
481 OUT VOID *Buffer\r
482 )\r
483/*++\r
484\r
485Routine Description:\r
486\r
487 TODO: Add function description\r
488\r
489Arguments:\r
490\r
491 FileHandle - TODO: add argument description\r
492 FileOffset - TODO: add argument description\r
493 ReadSize - TODO: add argument description\r
494 Buffer - 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
503CHAR16 *\r
504AsciiToUnicode (\r
505 IN CHAR8 *Ascii,\r
506 IN UINTN *StrLen OPTIONAL\r
507 )\r
508/*++\r
509\r
510Routine Description:\r
511\r
512 TODO: Add function description\r
513\r
514Arguments:\r
515\r
516 Ascii - TODO: add argument description\r
517 StrLen - TODO: add argument description\r
518\r
519Returns:\r
520\r
521 TODO: add return values\r
522\r
523--*/\r
524;\r
525\r
526UINTN\r
527CountSeperatorsInString (\r
03c19e06 528 IN CONST CHAR16 *String,\r
2e19fd0f 529 IN CHAR16 Seperator\r
530 )\r
531/*++\r
532\r
533Routine Description:\r
534\r
535 TODO: Add function description\r
536\r
537Arguments:\r
538\r
539 String - TODO: add argument description\r
540 Seperator - TODO: add argument description\r
541\r
542Returns:\r
543\r
544 TODO: add return values\r
545\r
546--*/\r
547;\r
548\r
58dcdada 549EFI_STATUS\r
550EFIAPI\r
551SecTemporaryRamSupport (\r
552 IN CONST EFI_PEI_SERVICES **PeiServices,\r
553 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,\r
554 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,\r
555 IN UINTN CopySize\r
556 );\r
2e19fd0f 557\r
2e19fd0f 558\r
559extern EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;\r