3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
11 Include file for Windows API based SEC
17 #include <WinNtPeim.h>
18 #include <Guid/StatusCodeDataTypeDebug.h>
19 #include <Library/BaseLib.h>
20 #include <Library/PeCoffLib.h>
21 #include <Ppi/NtPeiLoadFile.h>
22 #include <Ppi/NtAutoscan.h>
23 #include <Ppi/NtThunk.h>
24 #include <Ppi/StatusCode.h>
25 #include <Ppi/NtFwh.h>
26 #include <Ppi/TemporaryRamSupport.h>
27 #include <Library/PcdLib.h>
28 #include <Library/DebugLib.h>
29 #include <Library/PrintLib.h>
30 #include <Library/BaseMemoryLib.h>
31 #include <Library/ReportStatusCodeLib.h>
33 #include <IndustryStandard/PeImage.h>
35 #define STACK_SIZE 0x20000
38 EFI_PHYSICAL_ADDRESS Address
;
43 EFI_PHYSICAL_ADDRESS Memory
;
47 #define MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100
52 } PDB_NAME_TO_MOD_HANDLE
;
60 VOID
*Pe32Data
, // TODO: add IN/OUT modifier to Pe32Data
61 EFI_PHYSICAL_ADDRESS
*ImageAddress
, // TODO: add IN/OUT modifier to ImageAddress
62 UINT64
*ImageSize
, // TODO: add IN/OUT modifier to ImageSize
63 EFI_PHYSICAL_ADDRESS
*EntryPoint
// TODO: add IN/OUT modifier to EntryPoint
69 TODO: Add function description
73 Pe32Data - TODO: add argument description
74 ImageAddress - TODO: add argument description
75 ImageSize - TODO: add argument description
76 EntryPoint - TODO: add argument description
80 TODO: add return values
89 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
90 OUT UINT64
*MemorySize
96 TODO: Add function description
100 Index - TODO: add argument description
101 MemoryBase - TODO: add argument description
102 MemorySize - TODO: add argument description
106 TODO: add return values
113 SecWinNtWinNtThunkAddress (
120 TODO: Add function description
124 InterfaceSize - TODO: add argument description
125 InterfaceBase - TODO: add argument description
129 TODO: add return values
136 SecWinNtWinNtFwhAddress (
137 IN OUT UINT64
*FwhSize
,
138 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
144 TODO: Add function description
148 FwhSize - TODO: add argument description
149 FwhBase - TODO: add argument description
153 TODO: add return values
160 SecPeiReportStatusCode (
161 IN CONST EFI_PEI_SERVICES
**PeiServices
,
162 IN EFI_STATUS_CODE_TYPE CodeType
,
163 IN EFI_STATUS_CODE_VALUE Value
,
165 IN CONST EFI_GUID
* CallerId
,
166 IN CONST EFI_STATUS_CODE_DATA
* Data OPTIONAL
172 TODO: Add function description
176 PeiServices - TODO: add argument description
177 CodeType - TODO: add argument description
178 Value - TODO: add argument description
179 Instance - TODO: add argument description
180 CallerId - TODO: add argument description
181 Data - TODO: add argument description
185 TODO: add return values
201 TODO: Add function description
205 Argc - TODO: add argument description
206 Argv - TODO: add argument description
207 Envp - TODO: add argument description
211 TODO: add return values
220 DWORD CreationDispostion
,
221 EFI_PHYSICAL_ADDRESS
*BaseAddress
,
228 TODO: Add function description
232 FileName - TODO: add argument description
233 MapSize - TODO: add argument description
234 CreationDispostion - TODO: add argument description
235 BaseAddress - TODO: add argument description
236 Length - TODO: add argument description
240 TODO: add return values
247 IN UINTN LargestRegion
,
248 IN UINTN LargestRegionSize
,
249 IN UINTN BootFirmwareVolumeBase
,
256 TODO: Add function description
260 LargestRegion - TODO: add argument description
261 LargestRegionSize - TODO: add argument description
262 BootFirmwareVolumeBase - TODO: add argument description
263 PeiCoreFile - TODO: add argument description
267 TODO: add return values
275 IN EFI_PHYSICAL_ADDRESS
*ImageAddress
,
276 IN UINT64
*ImageSize
,
277 IN EFI_PHYSICAL_ADDRESS
*EntryPoint
283 TODO: Add function description
287 Pe32Data - TODO: add argument description
288 ImageAddress - TODO: add argument description
289 ImageSize - TODO: add argument description
290 EntryPoint - TODO: add argument description
294 TODO: add return values
301 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
308 TODO: Add function description
312 FwVolHeader - TODO: add argument description
313 Pe32Data - TODO: add argument description
317 TODO: add return values
324 IN EFI_FV_FILETYPE SearchType
,
325 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
326 IN OUT EFI_FFS_FILE_HEADER
**FileHeader
332 TODO: Add function description
336 SearchType - TODO: add argument description
337 FwVolHeader - TODO: add argument description
338 FileHeader - TODO: add argument description
342 TODO: add return values
348 SecFfsFindSectionData (
349 IN EFI_SECTION_TYPE SectionType
,
350 IN EFI_FFS_FILE_HEADER
*FfsFileHeader
,
351 IN OUT VOID
**SectionData
357 TODO: Add function description
361 SectionType - TODO: add argument description
362 FfsFileHeader - TODO: add argument description
363 SectionData - TODO: add argument description
367 TODO: add return values
374 SecWinNtPeCoffLoaderLoadAsDll (
375 IN CHAR8
*PdbFileName
,
376 IN VOID
**ImageEntryPoint
,
383 TODO: Add function description
387 PdbFileName - TODO: add argument description
388 ImageEntryPoint - TODO: add argument description
389 ModHandle - TODO: add argument description
393 TODO: add return values
400 SecWinNtPeCoffLoaderFreeLibrary (
407 TODO: Add function description
411 ModHandle - TODO: add argument description
415 TODO: add return values
424 IN OUT EFI_PHYSICAL_ADDRESS
*FdBase
,
425 IN OUT UINT64
*FdSize
431 TODO: Add function description
435 Index - TODO: add argument description
436 FdBase - TODO: add argument description
437 FdSize - TODO: add argument description
441 TODO: add return values
447 GetImageReadFunction (
448 IN PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
,
449 IN EFI_PHYSICAL_ADDRESS
*TopOfMemory
455 TODO: Add function description
459 ImageContext - TODO: add argument description
460 TopOfMemory - TODO: add argument description
464 TODO: add return values
474 IN OUT UINTN
*ReadSize
,
481 TODO: Add function description
485 FileHandle - TODO: add argument description
486 FileOffset - TODO: add argument description
487 ReadSize - TODO: add argument description
488 Buffer - TODO: add argument description
492 TODO: add return values
500 IN UINTN
*StrLen OPTIONAL
506 TODO: Add function description
510 Ascii - TODO: add argument description
511 StrLen - TODO: add argument description
515 TODO: add return values
521 CountSeparatorsInString (
522 IN CONST CHAR16
*String
,
529 TODO: Add function description
533 String - TODO: add argument description
534 Separator - TODO: add argument description
538 TODO: add return values
545 SecTemporaryRamSupport (
546 IN CONST EFI_PEI_SERVICES
**PeiServices
,
547 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase
,
548 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase
,
553 extern EFI_WIN_NT_THUNK_PROTOCOL
*gWinNt
;