]> git.proxmox.com Git - mirror_edk2.git/blob - EmbeddedPkg/Include/Library/PrePiLib.h
a857308ecec20534dc55853c96332ad074053c57
[mirror_edk2.git] / EmbeddedPkg / Include / Library / PrePiLib.h
1 /** @file
2 Library that helps implement monolithic PEI. (SEC goes to DXE)
3
4 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __PRE_PI_LIB_H__
17 #define __PRE_PI_LIB_H__
18
19 #include <Guid/ExtractSection.h>
20
21 /**
22 This service enables discovery of additional firmware volumes.
23
24 @param Instance This instance of the firmware volume to find. The value 0 is the
25 Boot Firmware Volume (BFV).
26 @param FwVolHeader Pointer to the firmware volume header of the volume to return.
27
28 @retval EFI_SUCCESS The volume was found.
29 @retval EFI_NOT_FOUND The volume was not found.
30 @retval EFI_INVALID_PARAMETER FwVolHeader is NULL.
31
32 **/
33 EFI_STATUS
34 EFIAPI
35 FfsFindNextVolume (
36 IN UINTN Instance,
37 IN OUT EFI_PEI_FV_HANDLE *VolumeHandle
38 );
39
40
41 /**
42 This service enables discovery of additional firmware files.
43
44 @param SearchType A filter to find files only of this type.
45 @param FwVolHeader Pointer to the firmware volume header of the volume to search.
46 This parameter must point to a valid FFS volume.
47 @param FileHeader Pointer to the current file from which to begin searching.
48
49 @retval EFI_SUCCESS The file was found.
50 @retval EFI_NOT_FOUND The file was not found.
51 @retval EFI_NOT_FOUND The header checksum was not zero.
52
53 **/
54 EFI_STATUS
55 EFIAPI
56 FfsFindNextFile (
57 IN EFI_FV_FILETYPE SearchType,
58 IN EFI_PEI_FV_HANDLE VolumeHandle,
59 IN OUT EFI_PEI_FILE_HANDLE *FileHandle
60 );
61
62
63 /**
64 This service enables discovery sections of a given type within a valid FFS file.
65
66 @param SearchType The value of the section type to find.
67 @param FfsFileHeader A pointer to the file header that contains the set of sections to
68 be searched.
69 @param SectionData A pointer to the discovered section, if successful.
70
71 @retval EFI_SUCCESS The section was found.
72 @retval EFI_NOT_FOUND The section was not found.
73
74 **/
75 EFI_STATUS
76 EFIAPI
77 FfsFindSectionData (
78 IN EFI_SECTION_TYPE SectionType,
79 IN EFI_PEI_FILE_HANDLE FileHandle,
80 OUT VOID **SectionData
81 );
82
83
84 /**
85 Find a file in the volume by name
86
87 @param FileName A pointer to the name of the file to
88 find within the firmware volume.
89
90 @param VolumeHandle The firmware volume to search FileHandle
91 Upon exit, points to the found file's
92 handle or NULL if it could not be found.
93
94 @retval EFI_SUCCESS File was found.
95
96 @retval EFI_NOT_FOUND File was not found.
97
98 @retval EFI_INVALID_PARAMETER VolumeHandle or FileHandle or
99 FileName was NULL.
100
101 **/
102 EFI_STATUS
103 EFIAPI
104 FfsFindByName (
105 IN CONST EFI_GUID *FileName,
106 IN CONST EFI_PEI_FV_HANDLE VolumeHandle,
107 OUT EFI_PEI_FILE_HANDLE *FileHandle
108 );
109
110
111 /**
112 Get information about the file by name.
113
114 @param FileHandle Handle of the file.
115
116 @param FileInfo Upon exit, points to the file's
117 information.
118
119 @retval EFI_SUCCESS File information returned.
120
121 @retval EFI_INVALID_PARAMETER If FileHandle does not
122 represent a valid file.
123
124 @retval EFI_INVALID_PARAMETER If FileInfo is NULL.
125
126 **/
127 EFI_STATUS
128 EFIAPI
129 FfsGetFileInfo (
130 IN CONST EFI_PEI_FILE_HANDLE FileHandle,
131 OUT EFI_FV_FILE_INFO *FileInfo
132 );
133
134
135 /**
136 Get Information about the volume by name
137
138 @param VolumeHandle Handle of the volume.
139
140 @param VolumeInfo Upon exit, points to the volume's
141 information.
142
143 @retval EFI_SUCCESS File information returned.
144
145 @retval EFI_INVALID_PARAMETER If FileHandle does not
146 represent a valid file.
147
148 @retval EFI_INVALID_PARAMETER If FileInfo is NULL.
149
150 **/
151 EFI_STATUS
152 EFIAPI
153 FfsGetVolumeInfo (
154 IN EFI_PEI_FV_HANDLE VolumeHandle,
155 OUT EFI_FV_INFO *VolumeInfo
156 );
157
158
159
160 /**
161 Get Fv image from the FV type file, then add FV & FV2 Hob.
162
163 @param FileHandle File handle of a Fv type file.
164
165 @retval EFI_NOT_FOUND FV image can't be found.
166 @retval EFI_SUCCESS Successfully to process it.
167
168 **/
169 EFI_STATUS
170 EFIAPI
171 FfsProcessFvFile (
172 IN EFI_PEI_FILE_HANDLE FvFileHandle
173 );
174
175
176 /**
177 Search through every FV until you find a file of type FileType
178
179 @param FileType File handle of a Fv type file.
180 @param Volumehandle On succes Volume Handle of the match
181 @param FileHandle On success File Handle of the match
182
183 @retval EFI_NOT_FOUND FV image can't be found.
184 @retval EFI_SUCCESS Successfully found FileType
185
186 **/
187 EFI_STATUS
188 EFIAPI
189 FfsAnyFvFindFirstFile (
190 IN EFI_FV_FILETYPE FileType,
191 OUT EFI_PEI_FV_HANDLE *VolumeHandle,
192 OUT EFI_PEI_FILE_HANDLE *FileHandle
193 );
194
195
196 /**
197 Get Fv image from the FV type file, then add FV & FV2 Hob.
198
199 @param FileHandle File handle of a Fv type file.
200
201
202 @retval EFI_NOT_FOUND FV image can't be found.
203 @retval EFI_SUCCESS Successfully to process it.
204
205 **/
206 EFI_STATUS
207 EFIAPI
208 FfsProcessFvFile (
209 IN EFI_PEI_FILE_HANDLE FvFileHandle
210 );
211
212
213 /**
214 This service enables PEIMs to ascertain the present value of the boot mode.
215
216
217 @retval BootMode
218
219 **/
220 EFI_BOOT_MODE
221 EFIAPI
222 GetBootMode (
223 VOID
224 );
225
226
227 /**
228 This service enables PEIMs to update the boot mode variable.
229
230 @param BootMode The value of the boot mode to set.
231
232 @retval EFI_SUCCESS The value was successfully updated
233
234 **/
235 EFI_STATUS
236 EFIAPI
237 SetBootMode (
238 IN EFI_BOOT_MODE BootMode
239 );
240
241 /**
242 This service enables a PEIM to ascertain the address of the list of HOBs in memory.
243
244 @param HobList A pointer to the list of HOBs that the PEI Foundation will initialize.
245
246 @retval EFI_SUCCESS The list was successfully returned.
247 @retval EFI_NOT_AVAILABLE_YET The HOB list is not yet published.
248
249 **/
250 VOID *
251 EFIAPI
252 GetHobList (
253 VOID
254 );
255
256
257 /**
258 Updates the pointer to the HOB list.
259
260 @param HobList Hob list pointer to store
261
262 **/
263 EFI_STATUS
264 EFIAPI
265 SetHobList (
266 IN VOID *HobList
267 );
268
269 EFI_HOB_HANDOFF_INFO_TABLE*
270 HobConstructor (
271 IN VOID *EfiMemoryBegin,
272 IN UINTN EfiMemoryLength,
273 IN VOID *EfiFreeMemoryBottom,
274 IN VOID *EfiFreeMemoryTop
275 );
276
277 /**
278 This service enables PEIMs to create various types of HOBs.
279
280 @param Type The type of HOB to be installed.
281 @param Length The length of the HOB to be added.
282
283 @retval !NULL The HOB was successfully created.
284 @retval NULL There is no additional space for HOB creation.
285
286 **/
287 VOID *
288 CreateHob (
289 IN UINT16 HobType,
290 IN UINT16 HobLenght
291 );
292
293
294 /**
295 Returns the next instance of a HOB type from the starting HOB.
296
297 This function searches the first instance of a HOB type from the starting HOB pointer.
298 If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
299 In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
300 unconditionally: it returns HobStart back if HobStart itself meets the requirement;
301 caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
302 If HobStart is NULL, then ASSERT().
303
304 @param Type The HOB type to return.
305 @param HobStart The starting HOB pointer to search from.
306
307 @return The next instance of a HOB type from the starting HOB.
308
309 **/
310 VOID *
311 EFIAPI
312 GetNextHob (
313 IN UINT16 Type,
314 IN CONST VOID *HobStart
315 );
316
317 /**
318 Returns the first instance of a HOB type among the whole HOB list.
319
320 This function searches the first instance of a HOB type among the whole HOB list.
321 If there does not exist such HOB type in the HOB list, it will return NULL.
322
323 @param Type The HOB type to return.
324
325 @return The next instance of a HOB type from the starting HOB.
326
327 **/
328 VOID *
329 EFIAPI
330 GetFirstHob (
331 IN UINT16 Type
332 );
333
334 /**
335 This function searches the first instance of a HOB from the starting HOB pointer.
336 Such HOB should satisfy two conditions:
337 its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
338 If there does not exist such HOB from the starting HOB pointer, it will return NULL.
339 Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
340 to extract the data section and its size info respectively.
341 In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
342 unconditionally: it returns HobStart back if HobStart itself meets the requirement;
343 caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
344 If Guid is NULL, then ASSERT().
345 If HobStart is NULL, then ASSERT().
346
347 @param Guid The GUID to match with in the HOB list.
348 @param HobStart A pointer to a Guid.
349
350 @return The next instance of the matched GUID HOB from the starting HOB.
351
352 **/
353 VOID *
354 EFIAPI
355 GetNextGuidHob (
356 IN CONST EFI_GUID *Guid,
357 IN CONST VOID *HobStart
358 );
359
360 /**
361 This function searches the first instance of a HOB among the whole HOB list.
362 Such HOB should satisfy two conditions:
363 its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
364 If there does not exist such HOB from the starting HOB pointer, it will return NULL.
365 Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
366 to extract the data section and its size info respectively.
367 If Guid is NULL, then ASSERT().
368
369 @param Guid The GUID to match with in the HOB list.
370
371 @return The first instance of the matched GUID HOB among the whole HOB list.
372
373 **/
374 VOID *
375 EFIAPI
376 GetFirstGuidHob (
377 IN CONST EFI_GUID *Guid
378 );
379
380
381 /**
382 Builds a HOB for a loaded PE32 module.
383
384 This function builds a HOB for a loaded PE32 module.
385 It can only be invoked during PEI phase;
386 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
387 If ModuleName is NULL, then ASSERT().
388 If there is no additional space for HOB creation, then ASSERT().
389
390 @param ModuleName The GUID File Name of the module.
391 @param MemoryAllocationModule The 64 bit physical address of the module.
392 @param ModuleLength The length of the module in bytes.
393 @param EntryPoint The 64 bit physical address of the module entry point.
394
395 **/
396 VOID
397 EFIAPI
398 BuildModuleHob (
399 IN CONST EFI_GUID *ModuleName,
400 IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule,
401 IN UINT64 ModuleLength,
402 IN EFI_PHYSICAL_ADDRESS EntryPoint
403 );
404
405 /**
406 Builds a HOB that describes a chunk of system memory.
407
408 This function builds a HOB that describes a chunk of system memory.
409 It can only be invoked during PEI phase;
410 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
411 If there is no additional space for HOB creation, then ASSERT().
412
413 @param ResourceType The type of resource described by this HOB.
414 @param ResourceAttribute The resource attributes of the memory described by this HOB.
415 @param PhysicalStart The 64 bit physical address of memory described by this HOB.
416 @param NumberOfBytes The length of the memory described by this HOB in bytes.
417
418 **/
419 VOID
420 EFIAPI
421 BuildResourceDescriptorHob (
422 IN EFI_RESOURCE_TYPE ResourceType,
423 IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,
424 IN EFI_PHYSICAL_ADDRESS PhysicalStart,
425 IN UINT64 NumberOfBytes
426 );
427
428 /**
429 Builds a GUID HOB with a certain data length.
430
431 This function builds a customized HOB tagged with a GUID for identification
432 and returns the start address of GUID HOB data so that caller can fill the customized data.
433 The HOB Header and Name field is already stripped.
434 It can only be invoked during PEI phase;
435 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
436 If Guid is NULL, then ASSERT().
437 If there is no additional space for HOB creation, then ASSERT().
438 If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
439
440 @param Guid The GUID to tag the customized HOB.
441 @param DataLength The size of the data payload for the GUID HOB.
442
443 @return The start address of GUID HOB data.
444
445 **/
446 VOID *
447 EFIAPI
448 BuildGuidHob (
449 IN CONST EFI_GUID *Guid,
450 IN UINTN DataLength
451 );
452
453 /**
454 Copies a data buffer to a newly-built HOB.
455
456 This function builds a customized HOB tagged with a GUID for identification,
457 copies the input data to the HOB data field and returns the start address of the GUID HOB data.
458 The HOB Header and Name field is already stripped.
459 It can only be invoked during PEI phase;
460 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
461 If Guid is NULL, then ASSERT().
462 If Data is NULL and DataLength > 0, then ASSERT().
463 If there is no additional space for HOB creation, then ASSERT().
464 If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
465
466 @param Guid The GUID to tag the customized HOB.
467 @param Data The data to be copied into the data field of the GUID HOB.
468 @param DataLength The size of the data payload for the GUID HOB.
469
470 @return The start address of GUID HOB data.
471
472 **/
473 VOID *
474 EFIAPI
475 BuildGuidDataHob (
476 IN CONST EFI_GUID *Guid,
477 IN VOID *Data,
478 IN UINTN DataLength
479 );
480
481 /**
482 Builds a Firmware Volume HOB.
483
484 This function builds a Firmware Volume HOB.
485 It can only be invoked during PEI phase;
486 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
487 If there is no additional space for HOB creation, then ASSERT().
488
489 @param BaseAddress The base address of the Firmware Volume.
490 @param Length The size of the Firmware Volume in bytes.
491
492 **/
493 VOID
494 EFIAPI
495 BuildFvHob (
496 IN EFI_PHYSICAL_ADDRESS BaseAddress,
497 IN UINT64 Length
498 );
499
500 /**
501 Builds a Firmware Volume HOB and a resrouce descriptor hob
502
503 This function builds a Firmware Volume HOB.
504 It can only be invoked during PEI phase;
505 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
506 If there is no additional space for HOB creation, then ASSERT().
507
508 @param BaseAddress The base address of the Firmware Volume.
509 @param Length The size of the Firmware Volume in bytes.
510
511 **/
512 VOID
513 EFIAPI
514 BuildFvHobs (
515 IN EFI_PHYSICAL_ADDRESS PhysicalStart,
516 IN UINT64 NumberOfBytes,
517 IN EFI_RESOURCE_ATTRIBUTE_TYPE *ResourceAttribute OPTIONAL
518 );
519
520
521 /**
522 Builds a EFI_HOB_TYPE_FV2 HOB.
523
524 This function builds a EFI_HOB_TYPE_FV2 HOB.
525 It can only be invoked during PEI phase;
526 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
527 If there is no additional space for HOB creation, then ASSERT().
528
529 @param BaseAddress The base address of the Firmware Volume.
530 @param Length The size of the Firmware Volume in bytes.
531 @param FvName The name of the Firmware Volume.
532 @param FileName The name of the file.
533
534 **/
535 VOID
536 EFIAPI
537 BuildFv2Hob (
538 IN EFI_PHYSICAL_ADDRESS BaseAddress,
539 IN UINT64 Length,
540 IN CONST EFI_GUID *FvName,
541 IN CONST EFI_GUID *FileName
542 );
543
544 /**
545 Builds a Capsule Volume HOB.
546
547 This function builds a Capsule Volume HOB.
548 It can only be invoked during PEI phase;
549 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
550 If there is no additional space for HOB creation, then ASSERT().
551
552 @param BaseAddress The base address of the Capsule Volume.
553 @param Length The size of the Capsule Volume in bytes.
554
555 **/
556 VOID
557 EFIAPI
558 BuildCvHob (
559 IN EFI_PHYSICAL_ADDRESS BaseAddress,
560 IN UINT64 Length
561 );
562
563 /**
564 Builds a HOB for the CPU.
565
566 This function builds a HOB for the CPU.
567 It can only be invoked during PEI phase;
568 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
569 If there is no additional space for HOB creation, then ASSERT().
570
571 @param SizeOfMemorySpace The maximum physical memory addressability of the processor.
572 @param SizeOfIoSpace The maximum physical I/O addressability of the processor.
573
574 **/
575 VOID
576 EFIAPI
577 BuildCpuHob (
578 IN UINT8 SizeOfMemorySpace,
579 IN UINT8 SizeOfIoSpace
580 );
581
582 /**
583 Builds a HOB for the Stack.
584
585 This function builds a HOB for the stack.
586 It can only be invoked during PEI phase;
587 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
588 If there is no additional space for HOB creation, then ASSERT().
589
590 @param BaseAddress The 64 bit physical address of the Stack.
591 @param Length The length of the stack in bytes.
592
593 **/
594 VOID
595 EFIAPI
596 BuildStackHob (
597 IN EFI_PHYSICAL_ADDRESS BaseAddress,
598 IN UINT64 Length
599 );
600
601 /**
602 Update the Stack Hob if the stack has been moved
603
604 @param BaseAddress The 64 bit physical address of the Stack.
605 @param Length The length of the stack in bytes.
606
607 **/
608 VOID
609 UpdateStackHob (
610 IN EFI_PHYSICAL_ADDRESS BaseAddress,
611 IN UINT64 Length
612 );
613
614
615 /**
616 Builds a HOB for the BSP store.
617
618 This function builds a HOB for BSP store.
619 It can only be invoked during PEI phase;
620 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
621 If there is no additional space for HOB creation, then ASSERT().
622
623 @param BaseAddress The 64 bit physical address of the BSP.
624 @param Length The length of the BSP store in bytes.
625 @param MemoryType Type of memory allocated by this HOB.
626
627 **/
628 VOID
629 EFIAPI
630 BuildBspStoreHob (
631 IN EFI_PHYSICAL_ADDRESS BaseAddress,
632 IN UINT64 Length,
633 IN EFI_MEMORY_TYPE MemoryType
634 );
635
636 /**
637 Builds a HOB for the memory allocation.
638
639 This function builds a HOB for the memory allocation.
640 It can only be invoked during PEI phase;
641 for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
642 If there is no additional space for HOB creation, then ASSERT().
643
644 @param BaseAddress The 64 bit physical address of the memory.
645 @param Length The length of the memory allocation in bytes.
646 @param MemoryType Type of memory allocated by this HOB.
647
648 **/
649 VOID
650 EFIAPI
651 BuildMemoryAllocationHob (
652 IN EFI_PHYSICAL_ADDRESS BaseAddress,
653 IN UINT64 Length,
654 IN EFI_MEMORY_TYPE MemoryType
655 );
656
657
658 VOID
659 EFIAPI
660 BuildExtractSectionHob (
661 IN EFI_GUID *Guid,
662 IN EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER SectionGetInfo,
663 IN EXTRACT_GUIDED_SECTION_DECODE_HANDLER SectionExtraction
664 );
665
666 VOID
667 EFIAPI
668 BuildPeCoffLoaderHob (
669 VOID
670 );
671
672
673 /**
674 Allocates one or more 4KB pages of type EfiBootServicesData.
675
676 Allocates the number of 4KB pages of MemoryType and returns a pointer to the
677 allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL
678 is returned. If there is not enough memory remaining to satisfy the request, then NULL is
679 returned.
680
681 @param Pages The number of 4 KB pages to allocate.
682
683 @return A pointer to the allocated buffer or NULL if allocation fails.
684
685 **/
686 VOID *
687 EFIAPI
688 AllocatePages (
689 IN UINTN Pages
690 );
691
692 /**
693 Allocates a buffer of type EfiBootServicesData.
694
695 Allocates the number bytes specified by AllocationSize of type EfiBootServicesData and returns a
696 pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is
697 returned. If there is not enough memory remaining to satisfy the request, then NULL is returned.
698
699 @param AllocationSize The number of bytes to allocate.
700
701 @return A pointer to the allocated buffer or NULL if allocation fails.
702
703 **/
704 VOID *
705 EFIAPI
706 AllocatePool (
707 IN UINTN AllocationSize
708 );
709
710
711 /**
712 Allocates one or more 4KB pages of type EfiBootServicesData at a specified alignment.
713
714 Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData with an
715 alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is
716 returned. If there is not enough memory at the specified alignment remaining to satisfy the
717 request, then NULL is returned.
718 If Alignment is not a power of two and Alignment is not zero, then ASSERT().
719
720 @param Pages The number of 4 KB pages to allocate.
721 @param Alignment The requested alignment of the allocation. Must be a power of two.
722 If Alignment is zero, then byte alignment is used.
723
724 @return A pointer to the allocated buffer or NULL if allocation fails.
725
726 **/
727 VOID *
728 EFIAPI
729 AllocateAlignedPages (
730 IN UINTN Pages,
731 IN UINTN Alignment
732 );
733
734
735 EFI_STATUS
736 EFIAPI
737 LoadPeCoffImage (
738 IN VOID *PeCoffImage,
739 OUT EFI_PHYSICAL_ADDRESS *ImageAddress,
740 OUT UINT64 *ImageSize,
741 OUT EFI_PHYSICAL_ADDRESS *EntryPoint
742 );
743
744 EFI_STATUS
745 EFIAPI
746 LoadDxeCoreFromFfsFile (
747 IN EFI_PEI_FILE_HANDLE FileHandle,
748 IN UINTN StackSize
749 );
750
751 EFI_STATUS
752 EFIAPI
753 LoadDxeCoreFromFv (
754 IN UINTN *FvInstance, OPTIONAL
755 IN UINTN StackSize
756 );
757
758 EFI_STATUS
759 EFIAPI
760 DecompressFirstFv (
761 VOID
762 );
763
764 VOID
765 EFIAPI
766 AddDxeCoreReportStatusCodeCallback (
767 VOID
768 );
769
770
771 #endif