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
21 #include "Uefi/UefiSpec.h"
23 #include <Protocol/UnixThunk.h>
24 #include <Pi/PiFirmwareVolume.h>
25 #include <Ppi/StatusCode.h>
27 #include <Library/PeCoffLib.h>
28 #include <Library/BaseLib.h>
29 #include <Library/BaseMemoryLib.h>
30 #include <Library/PrintLib.h>
31 #include <Library/PcdLib.h>
32 #include <Library/DebugLib.h>
34 #define STACK_SIZE 0x20000
37 EFI_PHYSICAL_ADDRESS Address
;
42 EFI_PHYSICAL_ADDRESS Memory
;
51 VOID
*Pe32Data
, // TODO: add IN/OUT modifier to Pe32Data
52 EFI_PHYSICAL_ADDRESS
*ImageAddress
, // TODO: add IN/OUT modifier to ImageAddress
53 UINT64
*ImageSize
, // TODO: add IN/OUT modifier to ImageSize
54 EFI_PHYSICAL_ADDRESS
*EntryPoint
// TODO: add IN/OUT modifier to EntryPoint
60 TODO: Add function description
64 Pe32Data - TODO: add argument description
65 ImageAddress - TODO: add argument description
66 ImageSize - TODO: add argument description
67 EntryPoint - TODO: add argument description
71 TODO: add return values
80 OUT EFI_PHYSICAL_ADDRESS
*MemoryBase
,
81 OUT UINT64
*MemorySize
87 TODO: Add function description
91 Index - TODO: add argument description
92 MemoryBase - TODO: add argument description
93 MemorySize - TODO: add argument description
97 TODO: add return values
104 SecWinNtWinNtThunkAddress (
111 TODO: Add function description
115 InterfaceSize - TODO: add argument description
116 InterfaceBase - TODO: add argument description
120 TODO: add return values
127 SecWinNtWinNtFwhAddress (
128 IN OUT UINT64
*FwhSize
,
129 IN OUT EFI_PHYSICAL_ADDRESS
*FwhBase
135 TODO: Add function description
139 FwhSize - TODO: add argument description
140 FwhBase - TODO: add argument description
144 TODO: add return values
151 SecPeiReportStatusCode (
152 IN EFI_PEI_SERVICES
**PeiServices
,
153 IN EFI_STATUS_CODE_TYPE CodeType
,
154 IN EFI_STATUS_CODE_VALUE Value
,
156 IN EFI_GUID
* CallerId
,
157 IN EFI_STATUS_CODE_DATA
* Data OPTIONAL
163 TODO: Add function description
167 PeiServices - TODO: add argument description
168 CodeType - TODO: add argument description
169 Value - TODO: add argument description
170 Instance - TODO: add argument description
171 CallerId - TODO: add argument description
172 Data - TODO: add argument description
176 TODO: add return values
192 TODO: Add function description
196 Argc - TODO: add argument description
197 Argv - TODO: add argument description
198 Envp - TODO: add argument description
202 TODO: add return values
209 IN UINTN LargestRegion
,
210 IN UINTN LargestRegionSize
,
211 IN UINTN BootFirmwareVolumeBase
,
218 TODO: Add function description
222 LargestRegion - TODO: add argument description
223 LargestRegionSize - TODO: add argument description
224 BootFirmwareVolumeBase - TODO: add argument description
225 PeiCoreFile - TODO: add argument description
229 TODO: add return values
237 IN EFI_PHYSICAL_ADDRESS
*ImageAddress
,
238 IN UINT64
*ImageSize
,
239 IN EFI_PHYSICAL_ADDRESS
*EntryPoint
245 TODO: Add function description
249 Pe32Data - TODO: add argument description
250 ImageAddress - TODO: add argument description
251 ImageSize - TODO: add argument description
252 EntryPoint - TODO: add argument description
256 TODO: add return values
263 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
270 TODO: Add function description
274 FwVolHeader - TODO: add argument description
275 Pe32Data - TODO: add argument description
279 TODO: add return values
286 IN EFI_FV_FILETYPE SearchType
,
287 IN EFI_FIRMWARE_VOLUME_HEADER
*FwVolHeader
,
288 IN OUT EFI_FFS_FILE_HEADER
**FileHeader
294 TODO: Add function description
298 SearchType - TODO: add argument description
299 FwVolHeader - TODO: add argument description
300 FileHeader - TODO: add argument description
304 TODO: add return values
310 SecFfsFindSectionData (
311 IN EFI_SECTION_TYPE SectionType
,
312 IN EFI_FFS_FILE_HEADER
*FfsFileHeader
,
313 IN OUT VOID
**SectionData
319 TODO: Add function description
323 SectionType - TODO: add argument description
324 FfsFileHeader - TODO: add argument description
325 SectionData - TODO: add argument description
329 TODO: add return values
336 SecWinNtPeCoffLoaderLoadAsDll (
337 IN CHAR8
*PdbFileName
,
338 IN VOID
**ImageEntryPoint
,
345 TODO: Add function description
349 PdbFileName - TODO: add argument description
350 ImageEntryPoint - TODO: add argument description
351 ModHandle - TODO: add argument description
355 TODO: add return values
362 SecWinNtPeCoffLoaderFreeLibrary (
369 TODO: Add function description
373 ModHandle - TODO: add argument description
377 TODO: add return values
386 IN OUT EFI_PHYSICAL_ADDRESS
*FdBase
,
387 IN OUT UINT64
*FdSize
393 TODO: Add function description
397 Index - TODO: add argument description
398 FdBase - TODO: add argument description
399 FdSize - TODO: add argument description
403 TODO: add return values
409 GetImageReadFunction (
410 IN PE_COFF_LOADER_IMAGE_CONTEXT
*ImageContext
,
411 IN EFI_PHYSICAL_ADDRESS
*TopOfMemory
417 TODO: Add function description
421 ImageContext - TODO: add argument description
422 TopOfMemory - TODO: add argument description
426 TODO: add return values
436 IN OUT UINTN
*ReadSize
,
443 TODO: Add function description
447 FileHandle - TODO: add argument description
448 FileOffset - TODO: add argument description
449 ReadSize - TODO: add argument description
450 Buffer - TODO: add argument description
454 TODO: add return values
462 IN UINTN
*StrLen OPTIONAL
468 TODO: Add function description
472 Ascii - TODO: add argument description
473 StrLen - TODO: add argument description
477 TODO: add return values
483 CountSeperatorsInString (
484 IN
const CHAR16
*String
,
491 TODO: Add function description
495 String - TODO: add argument description
496 Seperator - TODO: add argument description
500 TODO: add return values
507 SecTemporaryRamSupport (
508 IN CONST EFI_PEI_SERVICES
**PeiServices
,
509 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase
,
510 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase
,
514 extern EFI_UNIX_THUNK_PROTOCOL
*gUnix
;