]> git.proxmox.com Git - mirror_edk2.git/blob - UnixPkg/Sec/SecMain.h
Reviewed the code comments in the Include/Protocol directory for typos, grammar issue...
[mirror_edk2.git] / UnixPkg / Sec / SecMain.h
1 /*++
2
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
8
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.
11
12
13 Module Name:
14 SecMain.h
15
16 Abstract:
17 Include file for host API based SEC
18
19 --*/
20 #include "PiPei.h"
21 #include "Uefi/UefiSpec.h"
22
23 #include <Protocol/UnixThunk.h>
24 #include <Pi/PiFirmwareVolume.h>
25 #include <Ppi/StatusCode.h>
26
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>
33
34 #define STACK_SIZE 0x20000
35
36 typedef struct {
37 EFI_PHYSICAL_ADDRESS Address;
38 UINT64 Size;
39 } UNIX_FD_INFO;
40
41 typedef struct {
42 EFI_PHYSICAL_ADDRESS Memory;
43 UINT64 Size;
44 } UNIX_SYSTEM_MEMORY;
45
46
47
48 EFI_STATUS
49 EFIAPI
50 SecWinNtPeiLoadFile (
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
55 )
56 /*++
57
58 Routine Description:
59
60 TODO: Add function description
61
62 Arguments:
63
64 Pe32Data - TODO: add argument description
65 ImageAddress - TODO: add argument description
66 ImageSize - TODO: add argument description
67 EntryPoint - TODO: add argument description
68
69 Returns:
70
71 TODO: add return values
72
73 --*/
74 ;
75
76 EFI_STATUS
77 EFIAPI
78 SecWinNtPeiAutoScan (
79 IN UINTN Index,
80 OUT EFI_PHYSICAL_ADDRESS *MemoryBase,
81 OUT UINT64 *MemorySize
82 )
83 /*++
84
85 Routine Description:
86
87 TODO: Add function description
88
89 Arguments:
90
91 Index - TODO: add argument description
92 MemoryBase - TODO: add argument description
93 MemorySize - TODO: add argument description
94
95 Returns:
96
97 TODO: add return values
98
99 --*/
100 ;
101
102 VOID *
103 EFIAPI
104 SecWinNtWinNtThunkAddress (
105 VOID
106 )
107 /*++
108
109 Routine Description:
110
111 TODO: Add function description
112
113 Arguments:
114
115 InterfaceSize - TODO: add argument description
116 InterfaceBase - TODO: add argument description
117
118 Returns:
119
120 TODO: add return values
121
122 --*/
123 ;
124
125 EFI_STATUS
126 EFIAPI
127 SecWinNtWinNtFwhAddress (
128 IN OUT UINT64 *FwhSize,
129 IN OUT EFI_PHYSICAL_ADDRESS *FwhBase
130 )
131 /*++
132
133 Routine Description:
134
135 TODO: Add function description
136
137 Arguments:
138
139 FwhSize - TODO: add argument description
140 FwhBase - TODO: add argument description
141
142 Returns:
143
144 TODO: add return values
145
146 --*/
147 ;
148
149 EFI_STATUS
150 EFIAPI
151 SecPeiReportStatusCode (
152 IN EFI_PEI_SERVICES **PeiServices,
153 IN EFI_STATUS_CODE_TYPE CodeType,
154 IN EFI_STATUS_CODE_VALUE Value,
155 IN UINT32 Instance,
156 IN EFI_GUID * CallerId,
157 IN EFI_STATUS_CODE_DATA * Data OPTIONAL
158 )
159 /*++
160
161 Routine Description:
162
163 TODO: Add function description
164
165 Arguments:
166
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
173
174 Returns:
175
176 TODO: add return values
177
178 --*/
179 ;
180
181 INTN
182 EFIAPI
183 main (
184 IN INTN Argc,
185 IN CHAR8 **Argv,
186 IN CHAR8 **Envp
187 )
188 /*++
189
190 Routine Description:
191
192 TODO: Add function description
193
194 Arguments:
195
196 Argc - TODO: add argument description
197 Argv - TODO: add argument description
198 Envp - TODO: add argument description
199
200 Returns:
201
202 TODO: add return values
203
204 --*/
205 ;
206
207 VOID
208 SecLoadFromCore (
209 IN UINTN LargestRegion,
210 IN UINTN LargestRegionSize,
211 IN UINTN BootFirmwareVolumeBase,
212 IN VOID *PeiCoreFile
213 )
214 /*++
215
216 Routine Description:
217
218 TODO: Add function description
219
220 Arguments:
221
222 LargestRegion - TODO: add argument description
223 LargestRegionSize - TODO: add argument description
224 BootFirmwareVolumeBase - TODO: add argument description
225 PeiCoreFile - TODO: add argument description
226
227 Returns:
228
229 TODO: add return values
230
231 --*/
232 ;
233
234 EFI_STATUS
235 SecLoadFile (
236 IN VOID *Pe32Data,
237 IN EFI_PHYSICAL_ADDRESS *ImageAddress,
238 IN UINT64 *ImageSize,
239 IN EFI_PHYSICAL_ADDRESS *EntryPoint
240 )
241 /*++
242
243 Routine Description:
244
245 TODO: Add function description
246
247 Arguments:
248
249 Pe32Data - TODO: add argument description
250 ImageAddress - TODO: add argument description
251 ImageSize - TODO: add argument description
252 EntryPoint - TODO: add argument description
253
254 Returns:
255
256 TODO: add return values
257
258 --*/
259 ;
260
261 EFI_STATUS
262 SecFfsFindPeiCore (
263 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,
264 OUT VOID **Pe32Data
265 )
266 /*++
267
268 Routine Description:
269
270 TODO: Add function description
271
272 Arguments:
273
274 FwVolHeader - TODO: add argument description
275 Pe32Data - TODO: add argument description
276
277 Returns:
278
279 TODO: add return values
280
281 --*/
282 ;
283
284 EFI_STATUS
285 SecFfsFindNextFile (
286 IN EFI_FV_FILETYPE SearchType,
287 IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,
288 IN OUT EFI_FFS_FILE_HEADER **FileHeader
289 )
290 /*++
291
292 Routine Description:
293
294 TODO: Add function description
295
296 Arguments:
297
298 SearchType - TODO: add argument description
299 FwVolHeader - TODO: add argument description
300 FileHeader - TODO: add argument description
301
302 Returns:
303
304 TODO: add return values
305
306 --*/
307 ;
308
309 EFI_STATUS
310 SecFfsFindSectionData (
311 IN EFI_SECTION_TYPE SectionType,
312 IN EFI_FFS_FILE_HEADER *FfsFileHeader,
313 IN OUT VOID **SectionData
314 )
315 /*++
316
317 Routine Description:
318
319 TODO: Add function description
320
321 Arguments:
322
323 SectionType - TODO: add argument description
324 FfsFileHeader - TODO: add argument description
325 SectionData - TODO: add argument description
326
327 Returns:
328
329 TODO: add return values
330
331 --*/
332 ;
333
334 EFI_STATUS
335 EFIAPI
336 SecWinNtPeCoffLoaderLoadAsDll (
337 IN CHAR8 *PdbFileName,
338 IN VOID **ImageEntryPoint,
339 OUT VOID **ModHandle
340 )
341 /*++
342
343 Routine Description:
344
345 TODO: Add function description
346
347 Arguments:
348
349 PdbFileName - TODO: add argument description
350 ImageEntryPoint - TODO: add argument description
351 ModHandle - TODO: add argument description
352
353 Returns:
354
355 TODO: add return values
356
357 --*/
358 ;
359
360 EFI_STATUS
361 EFIAPI
362 SecWinNtPeCoffLoaderFreeLibrary (
363 OUT VOID *ModHandle
364 )
365 /*++
366
367 Routine Description:
368
369 TODO: Add function description
370
371 Arguments:
372
373 ModHandle - TODO: add argument description
374
375 Returns:
376
377 TODO: add return values
378
379 --*/
380 ;
381
382 EFI_STATUS
383 EFIAPI
384 SecWinNtFdAddress (
385 IN UINTN Index,
386 IN OUT EFI_PHYSICAL_ADDRESS *FdBase,
387 IN OUT UINT64 *FdSize
388 )
389 /*++
390
391 Routine Description:
392
393 TODO: Add function description
394
395 Arguments:
396
397 Index - TODO: add argument description
398 FdBase - TODO: add argument description
399 FdSize - TODO: add argument description
400
401 Returns:
402
403 TODO: add return values
404
405 --*/
406 ;
407
408 EFI_STATUS
409 GetImageReadFunction (
410 IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
411 IN EFI_PHYSICAL_ADDRESS *TopOfMemory
412 )
413 /*++
414
415 Routine Description:
416
417 TODO: Add function description
418
419 Arguments:
420
421 ImageContext - TODO: add argument description
422 TopOfMemory - TODO: add argument description
423
424 Returns:
425
426 TODO: add return values
427
428 --*/
429 ;
430
431 EFI_STATUS
432 EFIAPI
433 SecImageRead (
434 IN VOID *FileHandle,
435 IN UINTN FileOffset,
436 IN OUT UINTN *ReadSize,
437 OUT VOID *Buffer
438 )
439 /*++
440
441 Routine Description:
442
443 TODO: Add function description
444
445 Arguments:
446
447 FileHandle - TODO: add argument description
448 FileOffset - TODO: add argument description
449 ReadSize - TODO: add argument description
450 Buffer - TODO: add argument description
451
452 Returns:
453
454 TODO: add return values
455
456 --*/
457 ;
458
459 CHAR16 *
460 AsciiToUnicode (
461 IN CHAR8 *Ascii,
462 IN UINTN *StrLen OPTIONAL
463 )
464 /*++
465
466 Routine Description:
467
468 TODO: Add function description
469
470 Arguments:
471
472 Ascii - TODO: add argument description
473 StrLen - TODO: add argument description
474
475 Returns:
476
477 TODO: add return values
478
479 --*/
480 ;
481
482 UINTN
483 CountSeperatorsInString (
484 IN const CHAR16 *String,
485 IN CHAR16 Seperator
486 )
487 /*++
488
489 Routine Description:
490
491 TODO: Add function description
492
493 Arguments:
494
495 String - TODO: add argument description
496 Seperator - TODO: add argument description
497
498 Returns:
499
500 TODO: add return values
501
502 --*/
503 ;
504
505 EFI_STATUS
506 EFIAPI
507 SecTemporaryRamSupport (
508 IN CONST EFI_PEI_SERVICES **PeiServices,
509 IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
510 IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
511 IN UINTN CopySize
512 );
513
514 extern EFI_UNIX_THUNK_PROTOCOL *gUnix;