3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 Include file for Windows API based SEC
23 #include <WinNtPeim.h>
24 #include <Guid/StatusCodeDataTypeDebug.h>
25 #include <Library/BaseLib.h>
26 #include <Library/PeCoffLib.h>
27 #include <Ppi/NtPeiLoadFile.h>
28 #include <Ppi/NtAutoscan.h>
29 #include <Ppi/NtThunk.h>
30 #include <Ppi/StatusCode.h>
31 #include <Ppi/NtFwh.h>
32 #include <Ppi/TemporaryRamSupport.h>
33 #include <Library/PcdLib.h>
34 #include <Library/DebugLib.h>
35 #include <Library/PrintLib.h>
36 #include <Library/BaseMemoryLib.h>
37 #include <Library/ReportStatusCodeLib.h>
39 #include <IndustryStandard/PeImage.h>
41 #define STACK_SIZE 0x20000
44 EFI_PHYSICAL_ADDRESS Address
;
49 EFI_PHYSICAL_ADDRESS Memory
;
53 #define MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100
58 } PDB_NAME_TO_MOD_HANDLE
;
66 VOID
*Pe32Data
, // TODO: add IN/OUT modifier to Pe32Data
67 EFI_PHYSICAL_ADDRESS
*ImageAddress
, // TODO: add IN/OUT modifier to ImageAddress
68 UINT64
*ImageSize
, // TODO: add IN/OUT modifier to ImageSize
69 EFI_PHYSICAL_ADDRESS
*EntryPoint
// TODO: add IN/OUT modifier to EntryPoint
75 TODO: Add function description
79 Pe32Data - TODO: add argument description
80 ImageAddress - TODO: add argument description
81 ImageSize - TODO: add argument description
82 EntryPoint - TODO: add argument description
86 TODO: add return values
95 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
96 OUT UINT64
*MemorySize
102 TODO: Add function description
106 Index - TODO: add argument description
107 MemoryBase - TODO: add argument description
108 MemorySize - TODO: add argument description
112 TODO: add return values
119 SecWinNtWinNtThunkAddress (
126 TODO: Add function description
130 InterfaceSize - TODO: add argument description
131 InterfaceBase - TODO: add argument description
135 TODO: add return values
142 SecWinNtWinNtFwhAddress (
143 IN OUT UINT64
*FwhSize
,
144 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
150 TODO: Add function description
154 FwhSize - TODO: add argument description
155 FwhBase - TODO: add argument description
159 TODO: add return values
166 SecPeiReportStatusCode (
167 IN CONST EFI_PEI_SERVICES
**PeiServices
,
168 IN EFI_STATUS_CODE_TYPE CodeType
,
169 IN EFI_STATUS_CODE_VALUE Value
,
171 IN CONST EFI_GUID
* CallerId
,
172 IN CONST EFI_STATUS_CODE_DATA
* Data OPTIONAL
178 TODO: Add function description
182 PeiServices - TODO: add argument description
183 CodeType - TODO: add argument description
184 Value - TODO: add argument description
185 Instance - TODO: add argument description
186 CallerId - TODO: add argument description
187 Data - TODO: add argument description
191 TODO: add return values
207 TODO: Add function description
211 Argc - TODO: add argument description
212 Argv - TODO: add argument description
213 Envp - TODO: add argument description
217 TODO: add return values
226 DWORD CreationDispostion
,
227 EFI_PHYSICAL_ADDRESS
*BaseAddress
,
234 TODO: Add function description
238 FileName - TODO: add argument description
239 MapSize - TODO: add argument description
240 CreationDispostion - TODO: add argument description
241 BaseAddress - TODO: add argument description
242 Length - TODO: add argument description
246 TODO: add return values
253 IN UINTN LargestRegion
,
254 IN UINTN LargestRegionSize
,
255 IN UINTN BootFirmwareVolumeBase
,
262 TODO: Add function description
266 LargestRegion - TODO: add argument description
267 LargestRegionSize - TODO: add argument description
268 BootFirmwareVolumeBase - TODO: add argument description
269 PeiCoreFile - TODO: add argument description
273 TODO: add return values
281 IN EFI_PHYSICAL_ADDRESS
*ImageAddress
,
282 IN UINT64
*ImageSize
,
283 IN EFI_PHYSICAL_ADDRESS
*EntryPoint
289 TODO: Add function description
293 Pe32Data - TODO: add argument description
294 ImageAddress - TODO: add argument description
295 ImageSize - TODO: add argument description
296 EntryPoint - TODO: add argument description
300 TODO: add return values
307 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
314 TODO: Add function description
318 FwVolHeader - TODO: add argument description
319 Pe32Data - TODO: add argument description
323 TODO: add return values
330 IN EFI_FV_FILETYPE SearchType
,
331 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
332 IN OUT EFI_FFS_FILE_HEADER
**FileHeader
338 TODO: Add function description
342 SearchType - TODO: add argument description
343 FwVolHeader - TODO: add argument description
344 FileHeader - TODO: add argument description
348 TODO: add return values
354 SecFfsFindSectionData (
355 IN EFI_SECTION_TYPE SectionType
,
356 IN EFI_FFS_FILE_HEADER
*FfsFileHeader
,
357 IN OUT VOID
**SectionData
363 TODO: Add function description
367 SectionType - TODO: add argument description
368 FfsFileHeader - TODO: add argument description
369 SectionData - TODO: add argument description
373 TODO: add return values
380 SecWinNtPeCoffLoaderLoadAsDll (
381 IN CHAR8
*PdbFileName
,
382 IN VOID
**ImageEntryPoint
,
389 TODO: Add function description
393 PdbFileName - TODO: add argument description
394 ImageEntryPoint - TODO: add argument description
395 ModHandle - TODO: add argument description
399 TODO: add return values
406 SecWinNtPeCoffLoaderFreeLibrary (
413 TODO: Add function description
417 ModHandle - TODO: add argument description
421 TODO: add return values
430 IN OUT EFI_PHYSICAL_ADDRESS
*FdBase
,
431 IN OUT UINT64
*FdSize
437 TODO: Add function description
441 Index - TODO: add argument description
442 FdBase - TODO: add argument description
443 FdSize - TODO: add argument description
447 TODO: add return values
453 GetImageReadFunction (
454 IN PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
,
455 IN EFI_PHYSICAL_ADDRESS
*TopOfMemory
461 TODO: Add function description
465 ImageContext - TODO: add argument description
466 TopOfMemory - TODO: add argument description
470 TODO: add return values
480 IN OUT UINTN
*ReadSize
,
487 TODO: Add function description
491 FileHandle - TODO: add argument description
492 FileOffset - TODO: add argument description
493 ReadSize - TODO: add argument description
494 Buffer - TODO: add argument description
498 TODO: add return values
506 IN UINTN
*StrLen OPTIONAL
512 TODO: Add function description
516 Ascii - TODO: add argument description
517 StrLen - TODO: add argument description
521 TODO: add return values
527 CountSeparatorsInString (
528 IN CONST CHAR16
*String
,
535 TODO: Add function description
539 String - TODO: add argument description
540 Separator - TODO: add argument description
544 TODO: add return values
551 SecTemporaryRamSupport (
552 IN CONST EFI_PEI_SERVICES
**PeiServices
,
553 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase
,
554 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase
,
559 extern EFI_WIN_NT_THUNK_PROTOCOL
*gWinNt
;