3 Copyright (c) 2006 - 2018, 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 Host
25 #include "WinInclude.h"
28 #include <IndustryStandard/PeImage.h>
29 #include <Guid/FileInfo.h>
30 #include <Guid/FileSystemInfo.h>
31 #include <Guid/FileSystemVolumeLabelInfo.h>
32 #include <Ppi/EmuThunk.h>
33 #include <Protocol/EmuThunk.h>
34 #include <Protocol/SimpleFileSystem.h>
36 #include <Protocol/EmuBlockIo.h>
37 #include <Protocol/BlockIo.h>
39 #include <Library/BaseLib.h>
40 #include <Library/PeCoffLib.h>
41 #include <Library/DebugLib.h>
42 #include <Library/MemoryAllocationLib.h>
43 #include <Library/ThunkPpiList.h>
44 #include <Library/ThunkProtocolList.h>
45 #include <Library/PcdLib.h>
46 #include <Library/PrintLib.h>
47 #include <Library/BaseMemoryLib.h>
48 #include <Library/PeiServicesLib.h>
49 #include <Library/PeCoffExtraActionLib.h>
52 #define TEMPORARY_RAM_SIZE 0x20000
60 EFI_PHYSICAL_ADDRESS Memory
;
66 SecPeCoffGetEntryPoint (
68 IN OUT VOID
**EntryPoint
73 IN UINTN TemporaryRam
,
74 IN UINTN TemporaryRamSize
,
75 IN VOID
*BootFirmwareVolumeBase
,
76 IN UINTN BootFirmwareVolumeSize
,
77 IN VOID
*SecCorePe32File
82 This is the service to load the SEC Core from the Firmware Volume
85 TemporaryRam - Memory to use for SEC.
86 TemporaryRamSize - Size of Memory to use for SEC
87 BootFirmwareVolumeBase - Start of the Boot FV
88 SecCorePe32File - SEC Core PE32
91 Success means control is transfered and thus we should never return
100 IN OUT EFI_PHYSICAL_ADDRESS
*FdBase
,
101 IN OUT UINT64
*FdSize
107 TODO: Add function description
111 Index - TODO: add argument description
112 FdBase - TODO: add argument description
113 FdSize - TODO: add argument description
117 TODO: add return values
128 IN OUT UINTN
*ReadSize
,
135 TODO: Add function description
139 FileHandle - TODO: add argument description
140 FileOffset - TODO: add argument description
141 ReadSize - TODO: add argument description
142 Buffer - TODO: add argument description
146 TODO: add return values
154 IN UINTN
*StrLen OPTIONAL
160 TODO: Add function description
164 Ascii - TODO: add argument description
165 StrLen - TODO: add argument description
169 TODO: add return values
175 CountSeparatorsInString (
176 IN CONST CHAR16
*String
,
183 TODO: Add function description
187 String - TODO: add argument description
188 Separator - TODO: add argument description
192 TODO: add return values
198 EfiSystemMemoryRange (
199 IN VOID
*MemoryAddress
205 extern EMU_THUNK_PROTOCOL gEmuThunkProtocol
;
206 extern EMU_IO_THUNK_PROTOCOL mWinNtWndThunkIo
;
207 extern EMU_IO_THUNK_PROTOCOL mWinNtFileSystemThunkIo
;
208 extern EMU_IO_THUNK_PROTOCOL mWinNtBlockIoThunkIo
;