]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/Win/Host/WinHost.h
EmulatorPkg/WinHost: Enable network support.
[mirror_edk2.git] / EmulatorPkg / Win / Host / WinHost.h
1 /**@file
2
3 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
4 (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7
8 Module Name:
9 WinHost.h
10
11 Abstract:
12 Include file for Windows Host
13
14 **/
15 #ifndef _HOST_H_
16 #define _HOST_H_
17
18 #include <stdio.h>
19 #include <time.h>
20 #include "WinInclude.h"
21
22 #include <PiPei.h>
23 #include <IndustryStandard/PeImage.h>
24 #include <Guid/FileInfo.h>
25 #include <Guid/FileSystemInfo.h>
26 #include <Guid/FileSystemVolumeLabelInfo.h>
27 #include <Ppi/EmuThunk.h>
28 #include <Protocol/EmuThunk.h>
29 #include <Protocol/SimpleFileSystem.h>
30
31 #include <Protocol/EmuBlockIo.h>
32 #include <Protocol/BlockIo.h>
33 #include <Protocol/EmuSnp.h>
34
35 #include <Library/BaseLib.h>
36 #include <Library/PeCoffLib.h>
37 #include <Library/DebugLib.h>
38 #include <Library/MemoryAllocationLib.h>
39 #include <Library/ThunkPpiList.h>
40 #include <Library/ThunkProtocolList.h>
41 #include <Library/PcdLib.h>
42 #include <Library/PrintLib.h>
43 #include <Library/BaseMemoryLib.h>
44 #include <Library/PeiServicesLib.h>
45 #include <Library/PeCoffExtraActionLib.h>
46 #include <Library/NetLib.h>
47
48
49 #define TEMPORARY_RAM_SIZE 0x20000
50
51 typedef struct {
52 VOID *Address;
53 UINTN Size;
54 } NT_FD_INFO;
55
56 typedef struct {
57 EFI_PHYSICAL_ADDRESS Memory;
58 UINT64 Size;
59 } NT_SYSTEM_MEMORY;
60
61 RETURN_STATUS
62 EFIAPI
63 SecPeCoffGetEntryPoint (
64 IN VOID *Pe32Data,
65 IN OUT VOID **EntryPoint
66 );
67
68 VOID
69 SecLoadSecCore (
70 IN UINTN TemporaryRam,
71 IN UINTN TemporaryRamSize,
72 IN VOID *BootFirmwareVolumeBase,
73 IN UINTN BootFirmwareVolumeSize,
74 IN VOID *SecCorePe32File
75 )
76 /*++
77
78 Routine Description:
79 This is the service to load the SEC Core from the Firmware Volume
80
81 Arguments:
82 TemporaryRam - Memory to use for SEC.
83 TemporaryRamSize - Size of Memory to use for SEC
84 BootFirmwareVolumeBase - Start of the Boot FV
85 SecCorePe32File - SEC Core PE32
86
87 Returns:
88 Success means control is transferred and thus we should never return
89
90 --*/
91 ;
92
93 EFI_STATUS
94 EFIAPI
95 SecWinNtFdAddress (
96 IN UINTN Index,
97 IN OUT EFI_PHYSICAL_ADDRESS *FdBase,
98 IN OUT UINT64 *FdSize
99 )
100 /*++
101
102 Routine Description:
103
104 TODO: Add function description
105
106 Arguments:
107
108 Index - TODO: add argument description
109 FdBase - TODO: add argument description
110 FdSize - TODO: add argument description
111
112 Returns:
113
114 TODO: add return values
115
116 --*/
117 ;
118
119
120 EFI_STATUS
121 EFIAPI
122 SecImageRead (
123 IN VOID *FileHandle,
124 IN UINTN FileOffset,
125 IN OUT UINTN *ReadSize,
126 OUT VOID *Buffer
127 )
128 /*++
129
130 Routine Description:
131
132 TODO: Add function description
133
134 Arguments:
135
136 FileHandle - TODO: add argument description
137 FileOffset - TODO: add argument description
138 ReadSize - TODO: add argument description
139 Buffer - TODO: add argument description
140
141 Returns:
142
143 TODO: add return values
144
145 --*/
146 ;
147
148 CHAR16 *
149 AsciiToUnicode (
150 IN CHAR8 *Ascii,
151 IN UINTN *StrLen OPTIONAL
152 )
153 /*++
154
155 Routine Description:
156
157 TODO: Add function description
158
159 Arguments:
160
161 Ascii - TODO: add argument description
162 StrLen - TODO: add argument description
163
164 Returns:
165
166 TODO: add return values
167
168 --*/
169 ;
170
171 UINTN
172 CountSeparatorsInString (
173 IN CONST CHAR16 *String,
174 IN CHAR16 Separator
175 )
176 /*++
177
178 Routine Description:
179
180 TODO: Add function description
181
182 Arguments:
183
184 String - TODO: add argument description
185 Separator - TODO: add argument description
186
187 Returns:
188
189 TODO: add return values
190
191 --*/
192 ;
193
194 BOOLEAN
195 EfiSystemMemoryRange (
196 IN VOID *MemoryAddress
197 );
198 VOID
199 SecInitializeThunk (
200 VOID
201 );
202 extern EMU_THUNK_PROTOCOL gEmuThunkProtocol;
203 extern EMU_IO_THUNK_PROTOCOL mWinNtWndThunkIo;
204 extern EMU_IO_THUNK_PROTOCOL mWinNtFileSystemThunkIo;
205 extern EMU_IO_THUNK_PROTOCOL mWinNtBlockIoThunkIo;
206 extern EMU_IO_THUNK_PROTOCOL mWinNtSnpThunkIo;
207
208 #endif