3 Copyright (c) 2006 - 2008, Intel Corporation
4 All rights reserved. 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 host API based SEC
20 #include <FrameworkPei.h>
22 #include <Protocol/UnixThunk.h>
23 #include <Ppi/StatusCode.h>
25 #include <Library/PeCoffLib.h>
26 #include <Library/BaseLib.h>
27 #include <Library/BaseMemoryLib.h>
28 #include <Library/PrintLib.h>
29 #include <Library/PcdLib.h>
30 #include <Library/DebugLib.h>
32 #define STACK_SIZE 0x20000
35 EFI_PHYSICAL_ADDRESS Address
;
40 EFI_PHYSICAL_ADDRESS Memory
;
49 VOID
*Pe32Data
, // TODO: add IN/OUT modifier to Pe32Data
50 EFI_PHYSICAL_ADDRESS
*ImageAddress
, // TODO: add IN/OUT modifier to ImageAddress
51 UINT64
*ImageSize
, // TODO: add IN/OUT modifier to ImageSize
52 EFI_PHYSICAL_ADDRESS
*EntryPoint
// TODO: add IN/OUT modifier to EntryPoint
58 TODO: Add function description
62 Pe32Data - TODO: add argument description
63 ImageAddress - TODO: add argument description
64 ImageSize - TODO: add argument description
65 EntryPoint - TODO: add argument description
69 TODO: add return values
78 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
79 OUT UINT64
*MemorySize
85 TODO: Add function description
89 Index - TODO: add argument description
90 MemoryBase - TODO: add argument description
91 MemorySize - TODO: add argument description
95 TODO: add return values
102 SecWinNtWinNtThunkAddress (
109 TODO: Add function description
113 InterfaceSize - TODO: add argument description
114 InterfaceBase - TODO: add argument description
118 TODO: add return values
125 SecWinNtWinNtFwhAddress (
126 IN OUT UINT64
*FwhSize
,
127 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
133 TODO: Add function description
137 FwhSize - TODO: add argument description
138 FwhBase - TODO: add argument description
142 TODO: add return values
149 SecPeiReportStatusCode (
150 IN EFI_PEI_SERVICES
**PeiServices
,
151 IN EFI_STATUS_CODE_TYPE CodeType
,
152 IN EFI_STATUS_CODE_VALUE Value
,
154 IN EFI_GUID
* CallerId
,
155 IN EFI_STATUS_CODE_DATA
* Data OPTIONAL
161 TODO: Add function description
165 PeiServices - TODO: add argument description
166 CodeType - TODO: add argument description
167 Value - TODO: add argument description
168 Instance - TODO: add argument description
169 CallerId - TODO: add argument description
170 Data - TODO: add argument description
174 TODO: add return values
190 TODO: Add function description
194 Argc - TODO: add argument description
195 Argv - TODO: add argument description
196 Envp - TODO: add argument description
200 TODO: add return values
207 IN UINTN LargestRegion
,
208 IN UINTN LargestRegionSize
,
209 IN UINTN BootFirmwareVolumeBase
,
216 TODO: Add function description
220 LargestRegion - TODO: add argument description
221 LargestRegionSize - TODO: add argument description
222 BootFirmwareVolumeBase - TODO: add argument description
223 PeiCoreFile - TODO: add argument description
227 TODO: add return values
235 IN EFI_PHYSICAL_ADDRESS
*ImageAddress
,
236 IN UINT64
*ImageSize
,
237 IN EFI_PHYSICAL_ADDRESS
*EntryPoint
243 TODO: Add function description
247 Pe32Data - TODO: add argument description
248 ImageAddress - TODO: add argument description
249 ImageSize - TODO: add argument description
250 EntryPoint - TODO: add argument description
254 TODO: add return values
261 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
268 TODO: Add function description
272 FwVolHeader - TODO: add argument description
273 Pe32Data - TODO: add argument description
277 TODO: add return values
284 IN EFI_FV_FILETYPE SearchType
,
285 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
286 IN OUT EFI_FFS_FILE_HEADER
**FileHeader
292 TODO: Add function description
296 SearchType - TODO: add argument description
297 FwVolHeader - TODO: add argument description
298 FileHeader - TODO: add argument description
302 TODO: add return values
308 SecFfsFindSectionData (
309 IN EFI_SECTION_TYPE SectionType
,
310 IN EFI_FFS_FILE_HEADER
*FfsFileHeader
,
311 IN OUT VOID
**SectionData
317 TODO: Add function description
321 SectionType - TODO: add argument description
322 FfsFileHeader - TODO: add argument description
323 SectionData - TODO: add argument description
327 TODO: add return values
334 SecWinNtPeCoffLoaderLoadAsDll (
335 IN CHAR8
*PdbFileName
,
336 IN VOID
**ImageEntryPoint
,
343 TODO: Add function description
347 PdbFileName - TODO: add argument description
348 ImageEntryPoint - TODO: add argument description
349 ModHandle - TODO: add argument description
353 TODO: add return values
360 SecWinNtPeCoffLoaderFreeLibrary (
367 TODO: Add function description
371 ModHandle - TODO: add argument description
375 TODO: add return values
384 IN OUT EFI_PHYSICAL_ADDRESS
*FdBase
,
385 IN OUT UINT64
*FdSize
391 TODO: Add function description
395 Index - TODO: add argument description
396 FdBase - TODO: add argument description
397 FdSize - TODO: add argument description
401 TODO: add return values
407 GetImageReadFunction (
408 IN PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
,
409 IN EFI_PHYSICAL_ADDRESS
*TopOfMemory
415 TODO: Add function description
419 ImageContext - TODO: add argument description
420 TopOfMemory - TODO: add argument description
424 TODO: add return values
434 IN OUT UINTN
*ReadSize
,
441 TODO: Add function description
445 FileHandle - TODO: add argument description
446 FileOffset - TODO: add argument description
447 ReadSize - TODO: add argument description
448 Buffer - TODO: add argument description
452 TODO: add return values
460 IN UINTN
*StrLen OPTIONAL
466 TODO: Add function description
470 Ascii - TODO: add argument description
471 StrLen - TODO: add argument description
475 TODO: add return values
481 CountSeperatorsInString (
482 IN
const CHAR16
*String
,
489 TODO: Add function description
493 String - TODO: add argument description
494 Seperator - TODO: add argument description
498 TODO: add return values
505 SecTemporaryRamSupport (
506 IN CONST EFI_PEI_SERVICES
**PeiServices
,
507 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase
,
508 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase
,
512 extern EFI_UNIX_THUNK_PROTOCOL
*gUnix
;