TianoCore EDK2 master
Loading...
Searching...
No Matches
DxeMain.h
Go to the documentation of this file.
1
10#ifndef _DXE_MAIN_H_
11#define _DXE_MAIN_H_
12
13#include <PiDxe.h>
14
17#include <Protocol/DevicePath.h>
18#include <Protocol/Runtime.h>
19#include <Protocol/LoadFile.h>
20#include <Protocol/LoadFile2.h>
24#include <Protocol/Variable.h>
25#include <Protocol/Timer.h>
27#include <Protocol/Bds.h>
32#include <Protocol/StatusCode.h>
33#include <Protocol/Decompress.h>
35#include <Protocol/Security.h>
36#include <Protocol/Security2.h>
37#include <Protocol/Reset.h>
38#include <Protocol/Cpu.h>
39#include <Protocol/Metronome.h>
41#include <Protocol/Capsule.h>
44#include <Protocol/TcgService.h>
46#include <Protocol/SmmBase2.h>
51#include <Guid/HobList.h>
53#include <Guid/FileInfo.h>
54#include <Guid/Apriori.h>
55#include <Guid/DxeServices.h>
58#include <Guid/EventGroup.h>
61#include <Guid/IdleLoopEvent.h>
64#include <Guid/MemoryProfile.h>
65
67#include <Library/DebugLib.h>
68#include <Library/UefiLib.h>
69#include <Library/BaseLib.h>
70#include <Library/HobLib.h>
76#include <Library/PeCoffLib.h>
79#include <Library/PcdLib.h>
88
89//
90// attributes for reserved memory before it is promoted to system memory
91//
92#define EFI_MEMORY_PRESENT 0x0100000000000000ULL
93#define EFI_MEMORY_INITIALIZED 0x0200000000000000ULL
94#define EFI_MEMORY_TESTED 0x0400000000000000ULL
95
96//
97// range for memory mapped port I/O on IPF
98//
99#define EFI_MEMORY_PORT_IO 0x4000000000000000ULL
100
109#define EFI_DEP_REPLACE_TRUE 0xff
110
114#define DEPEX_STACK_SIZE_INCREMENT 0x1000
115
116typedef struct {
117 EFI_GUID *ProtocolGuid;
118 VOID **Protocol;
119 EFI_EVENT Event;
120 VOID *Registration;
121 BOOLEAN Present;
123
124//
125// DXE Dispatcher Data structures
126//
127
128#define KNOWN_HANDLE_SIGNATURE SIGNATURE_32('k','n','o','w')
129typedef struct {
130 UINTN Signature;
131 LIST_ENTRY Link; // mFvHandleList
132 EFI_HANDLE Handle;
133 EFI_GUID FvNameGuid;
135
136#define EFI_CORE_DRIVER_ENTRY_SIGNATURE SIGNATURE_32('d','r','v','r')
137typedef struct {
138 UINTN Signature;
139 LIST_ENTRY Link; // mDriverList
140
141 LIST_ENTRY ScheduledLink; // mScheduledQueue
142
143 EFI_HANDLE FvHandle;
144 EFI_GUID FileName;
145 EFI_DEVICE_PATH_PROTOCOL *FvFileDevicePath;
147
148 VOID *Depex;
149 UINTN DepexSize;
150
151 BOOLEAN Before;
152 BOOLEAN After;
153 EFI_GUID BeforeAfterGuid;
154
155 BOOLEAN Dependent;
156 BOOLEAN Unrequested;
157 BOOLEAN Scheduled;
158 BOOLEAN Untrusted;
159 BOOLEAN Initialized;
160 BOOLEAN DepexProtocolError;
161
162 EFI_HANDLE ImageHandle;
163 BOOLEAN IsFvImage;
165
166//
167// The data structure of GCD memory map entry
168//
169#define EFI_GCD_MAP_SIGNATURE SIGNATURE_32('g','c','d','m')
170typedef struct {
171 UINTN Signature;
172 LIST_ENTRY Link;
173 EFI_PHYSICAL_ADDRESS BaseAddress;
174 UINT64 EndAddress;
175 UINT64 Capabilities;
176 UINT64 Attributes;
177 EFI_GCD_MEMORY_TYPE GcdMemoryType;
178 EFI_GCD_IO_TYPE GcdIoType;
179 EFI_HANDLE ImageHandle;
180 EFI_HANDLE DeviceHandle;
182
183#define LOADED_IMAGE_PRIVATE_DATA_SIGNATURE SIGNATURE_32('l','d','r','i')
184
185typedef struct {
186 UINTN Signature;
192 BOOLEAN Started;
202 CHAR8 *FixupData;
210 VOID *ExitData;
214 BASE_LIBRARY_JUMP_BUFFER *JumpContext;
216 UINT16 Machine;
228
229#define LOADED_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
230 CR(a, LOADED_IMAGE_PRIVATE_DATA, Info, LOADED_IMAGE_PRIVATE_DATA_SIGNATURE)
231
232//
233// DXE Core Global Variables
234//
235extern EFI_SYSTEM_TABLE *gDxeCoreST;
236extern EFI_RUNTIME_SERVICES *gDxeCoreRT;
237extern EFI_DXE_SERVICES *gDxeCoreDS;
238extern EFI_HANDLE gDxeCoreImageHandle;
239
240extern BOOLEAN gMemoryMapTerminated;
241
242extern EFI_DECOMPRESS_PROTOCOL gEfiDecompress;
243
244extern EFI_RUNTIME_ARCH_PROTOCOL *gRuntime;
245extern EFI_CPU_ARCH_PROTOCOL *gCpu;
246extern EFI_WATCHDOG_TIMER_ARCH_PROTOCOL *gWatchdogTimer;
249extern EFI_SECURITY_ARCH_PROTOCOL *gSecurity;
250extern EFI_SECURITY2_ARCH_PROTOCOL *gSecurity2;
252extern EFI_SMM_BASE2_PROTOCOL *gSmmBase2;
253
255
256extern EFI_GUID *gDxeCoreFileName;
257extern EFI_LOADED_IMAGE_PROTOCOL *gDxeCoreLoadedImage;
258
259extern EFI_MEMORY_TYPE_INFORMATION gMemoryTypeInformation[EfiMaxMemoryType + 1];
260
261extern BOOLEAN gDispatcherRunning;
262extern EFI_RUNTIME_ARCH_PROTOCOL gRuntimeTemplate;
263
264extern BOOLEAN gMemoryAttributesTableForwardCfi;
265
266extern EFI_LOAD_FIXED_ADDRESS_CONFIGURATION_TABLE gLoadModuleAtFixAddressConfigurationTable;
267extern BOOLEAN gLoadFixedAddressCodeMemoryReady;
268//
269// Service Initialization Functions
270//
271
276VOID
278 VOID
279 );
280
281VOID
284 IN UINT64 Length
285 );
286
302VOID
304 IN EFI_MEMORY_TYPE Type,
306 IN UINT64 NumberOfPages,
307 IN UINT64 Attribute
308 );
309
314VOID
316 VOID
317 );
318
323VOID
325 VOID
326 );
327
345 IN VOID **HobStart,
346 OUT EFI_PHYSICAL_ADDRESS *MemoryBaseAddress,
347 OUT UINT64 *MemoryLength
348 );
349
366 IN OUT VOID **HobStart,
367 IN EFI_PHYSICAL_ADDRESS MemoryBaseAddress,
368 IN UINT64 MemoryLength
369 );
370
379 VOID
380 );
381
393 IN VOID *HobStart
394 );
395
400VOID
402 VOID
403 );
404
414 VOID
415 );
416
424VOID
427 );
428
436VOID
437EFIAPI
439 IN UINT64 Duration
440 );
441
447VOID
449 VOID
450 );
451
465BOOLEAN
468 );
469
485 );
486
498EFIAPI
500 IN EFI_HANDLE ImageHandle,
501 IN UINTN MapKey
502 );
503
517 IN UINTN MapKey
518 );
519
526VOID
528 IN EFI_GUID *EventGroup
529 );
530
547EFIAPI
549 IN EFI_GUID *Guid,
550 IN VOID *Table
551 );
552
563EFIAPI
565 IN EFI_TPL NewTpl
566 );
567
575VOID
576EFIAPI
578 IN EFI_TPL NewTpl
579 );
580
592EFIAPI
593CoreStall (
594 IN UINTN Microseconds
595 );
596
620EFIAPI
622 IN UINTN Timeout,
623 IN UINT64 WatchdogCode,
624 IN UINTN DataSize,
625 IN CHAR16 *WatchdogData OPTIONAL
626 );
627
643EFIAPI
645 IN OUT EFI_HANDLE *UserHandle,
646 IN EFI_GUID *Protocol,
647 IN EFI_INTERFACE_TYPE InterfaceType,
648 IN VOID *Interface
649 );
650
670 IN OUT EFI_HANDLE *UserHandle,
671 IN EFI_GUID *Protocol,
672 IN EFI_INTERFACE_TYPE InterfaceType,
673 IN VOID *Interface,
674 IN BOOLEAN Notify
675 );
676
699EFIAPI
701 IN OUT EFI_HANDLE *Handle,
702 ...
703 );
704
720EFIAPI
722 IN EFI_HANDLE Handle,
723 ...
724 );
725
741EFIAPI
743 IN EFI_HANDLE UserHandle,
744 IN EFI_GUID *Protocol,
745 IN VOID *OldInterface,
746 IN VOID *NewInterface
747 );
748
763EFIAPI
765 IN EFI_HANDLE UserHandle,
766 IN EFI_GUID *Protocol,
767 IN VOID *Interface
768 );
769
782EFIAPI
784 IN EFI_HANDLE UserHandle,
785 IN EFI_GUID *Protocol,
786 OUT VOID **Interface
787 );
788
810EFIAPI
812 IN EFI_HANDLE UserHandle,
813 IN EFI_GUID *Protocol,
814 OUT VOID **Interface OPTIONAL,
815 IN EFI_HANDLE ImageHandle,
816 IN EFI_HANDLE ControllerHandle,
817 IN UINT32 Attributes
818 );
819
832EFIAPI
834 IN EFI_HANDLE UserHandle,
835 IN EFI_GUID *Protocol,
837 OUT UINTN *EntryCount
838 );
839
866EFIAPI
868 IN EFI_HANDLE UserHandle,
869 IN EFI_GUID *Protocol,
870 IN EFI_HANDLE AgentHandle,
871 IN EFI_HANDLE ControllerHandle
872 );
873
898EFIAPI
900 IN EFI_HANDLE UserHandle,
901 OUT EFI_GUID ***ProtocolBuffer,
902 OUT UINTN *ProtocolBufferCount
903 );
904
919EFIAPI
921 IN EFI_GUID *Protocol,
922 IN EFI_EVENT Event,
923 OUT VOID **Registration
924 );
925
937 IN EFI_EVENT Event
938 );
939
959EFIAPI
961 IN EFI_LOCATE_SEARCH_TYPE SearchType,
962 IN EFI_GUID *Protocol OPTIONAL,
963 IN VOID *SearchKey OPTIONAL,
964 IN OUT UINTN *BufferSize,
965 OUT EFI_HANDLE *Buffer
966 );
967
984EFIAPI
986 IN EFI_GUID *Protocol,
987 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
988 OUT EFI_HANDLE *Device
989 );
990
1014EFIAPI
1016 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1017 IN EFI_GUID *Protocol OPTIONAL,
1018 IN VOID *SearchKey OPTIONAL,
1019 IN OUT UINTN *NumberHandles,
1020 OUT EFI_HANDLE **Buffer
1021 );
1022
1040EFIAPI
1042 IN EFI_GUID *Protocol,
1043 IN VOID *Registration OPTIONAL,
1044 OUT VOID **Interface
1045 );
1046
1054UINT64
1056 VOID
1057 );
1058
1066VOID
1068 UINT64 Key
1069 );
1070
1098EFIAPI
1100 IN EFI_HANDLE ControllerHandle,
1101 IN EFI_HANDLE *DriverImageHandle OPTIONAL,
1102 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
1103 IN BOOLEAN Recursive
1104 );
1105
1139EFIAPI
1141 IN EFI_HANDLE ControllerHandle,
1142 IN EFI_HANDLE DriverImageHandle OPTIONAL,
1143 IN EFI_HANDLE ChildHandle OPTIONAL
1144 );
1145
1165EFIAPI
1167 IN EFI_ALLOCATE_TYPE Type,
1168 IN EFI_MEMORY_TYPE MemoryType,
1169 IN UINTN NumberOfPages,
1171 );
1172
1185EFIAPI
1187 IN EFI_PHYSICAL_ADDRESS Memory,
1188 IN UINTN NumberOfPages
1189 );
1190
1222EFIAPI
1224 IN OUT UINTN *MemoryMapSize,
1225 IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
1226 OUT UINTN *MapKey,
1227 OUT UINTN *DescriptorSize,
1228 OUT UINT32 *DescriptorVersion
1229 );
1230
1245EFIAPI
1247 IN EFI_MEMORY_TYPE PoolType,
1248 IN UINTN Size,
1249 OUT VOID **Buffer
1250 );
1251
1266EFIAPI
1268 IN EFI_MEMORY_TYPE PoolType,
1269 IN UINTN Size,
1270 OUT VOID **Buffer
1271 );
1272
1283EFIAPI
1285 IN VOID *Buffer
1286 );
1287
1299EFIAPI
1301 IN VOID *Buffer,
1302 OUT EFI_MEMORY_TYPE *PoolType OPTIONAL
1303 );
1304
1340EFIAPI
1342 IN BOOLEAN BootPolicy,
1343 IN EFI_HANDLE ParentImageHandle,
1344 IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
1345 IN VOID *SourceBuffer OPTIONAL,
1346 IN UINTN SourceSize,
1347 OUT EFI_HANDLE *ImageHandle
1348 );
1349
1363EFIAPI
1365 IN EFI_HANDLE ImageHandle
1366 );
1367
1388EFIAPI
1390 IN EFI_HANDLE ImageHandle,
1391 OUT UINTN *ExitDataSize,
1392 OUT CHAR16 **ExitData OPTIONAL
1393 );
1394
1419EFIAPI
1420CoreExit (
1421 IN EFI_HANDLE ImageHandle,
1422 IN EFI_STATUS Status,
1423 IN UINTN ExitDataSize,
1424 IN CHAR16 *ExitData OPTIONAL
1425 );
1426
1446EFIAPI
1448 IN UINT32 Type,
1449 IN EFI_TPL NotifyTpl,
1451 IN VOID *NotifyContext OPTIONAL,
1452 OUT EFI_EVENT *Event
1453 );
1454
1476EFIAPI
1478 IN UINT32 Type,
1479 IN EFI_TPL NotifyTpl,
1481 IN CONST VOID *NotifyContext OPTIONAL,
1482 IN CONST EFI_GUID *EventGroup OPTIONAL,
1483 OUT EFI_EVENT *Event
1484 );
1485
1507EFIAPI
1509 IN UINT32 Type,
1510 IN EFI_TPL NotifyTpl,
1512 IN CONST VOID *NotifyContext OPTIONAL,
1513 IN CONST EFI_GUID *EventGroup OPTIONAL,
1514 OUT EFI_EVENT *Event
1515 );
1516
1533EFIAPI
1535 IN EFI_EVENT UserEvent,
1536 IN EFI_TIMER_DELAY Type,
1537 IN UINT64 TriggerTime
1538 );
1539
1550EFIAPI
1552 IN EFI_EVENT UserEvent
1553 );
1554
1570EFIAPI
1572 IN UINTN NumberOfEvents,
1573 IN EFI_EVENT *UserEvents,
1574 OUT UINTN *UserIndex
1575 );
1576
1587EFIAPI
1589 IN EFI_EVENT UserEvent
1590 );
1591
1603EFIAPI
1605 IN EFI_EVENT UserEvent
1606 );
1607
1621EFIAPI
1623 IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
1624 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1625 IN UINT64 Length,
1626 IN UINT64 Capabilities
1627 );
1628
1647EFIAPI
1649 IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
1650 IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
1651 IN UINTN Alignment,
1652 IN UINT64 Length,
1653 IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
1654 IN EFI_HANDLE ImageHandle,
1655 IN EFI_HANDLE DeviceHandle OPTIONAL
1656 );
1657
1669EFIAPI
1671 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1672 IN UINT64 Length
1673 );
1674
1686EFIAPI
1688 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1689 IN UINT64 Length
1690 );
1691
1703EFIAPI
1705 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1707 );
1708
1732EFIAPI
1734 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1735 IN UINT64 Length,
1736 IN UINT64 Attributes
1737 );
1738
1757EFIAPI
1759 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1760 IN UINT64 Length,
1761 IN UINT64 Capabilities
1762 );
1763
1777EFIAPI
1779 OUT UINTN *NumberOfDescriptors,
1780 OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap
1781 );
1782
1795EFIAPI
1797 IN EFI_GCD_IO_TYPE GcdIoType,
1798 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1799 IN UINT64 Length
1800 );
1801
1820EFIAPI
1822 IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
1823 IN EFI_GCD_IO_TYPE GcdIoType,
1824 IN UINTN Alignment,
1825 IN UINT64 Length,
1826 IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
1827 IN EFI_HANDLE ImageHandle,
1828 IN EFI_HANDLE DeviceHandle OPTIONAL
1829 );
1830
1842EFIAPI
1844 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1845 IN UINT64 Length
1846 );
1847
1859EFIAPI
1861 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1862 IN UINT64 Length
1863 );
1864
1876EFIAPI
1878 IN EFI_PHYSICAL_ADDRESS BaseAddress,
1880 );
1881
1894EFIAPI
1896 OUT UINTN *NumberOfDescriptors,
1897 OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap
1898 );
1899
1915EFIAPI
1917 VOID
1918 );
1919
1935EFIAPI
1937 IN EFI_HANDLE FirmwareVolumeHandle,
1938 IN EFI_GUID *DriverName
1939 );
1940
1954EFIAPI
1955CoreTrust (
1956 IN EFI_HANDLE FirmwareVolumeHandle,
1957 IN EFI_GUID *DriverName
1958 );
1959
1972EFIAPI
1974 IN EFI_HANDLE ImageHandle,
1975 IN EFI_SYSTEM_TABLE *SystemTable
1976 );
1977
1990EFIAPI
1992 IN EFI_HANDLE ImageHandle,
1993 IN EFI_SYSTEM_TABLE *SystemTable
1994 );
1995
2014EFIAPI
2016 IN VOID *FvHeader,
2017 IN UINTN Size,
2018 OUT EFI_HANDLE *FVProtocolHandle
2019 );
2020
2021//
2022// Functions used during debug buils
2023//
2024
2030VOID
2032 VOID
2033 );
2034
2040VOID
2042 VOID
2043 );
2044
2055EFIAPI
2057 UINTN Arg1
2058 );
2059
2070EFIAPI
2072 UINTN Arg1,
2073 UINTN Arg2
2074 );
2075
2087EFIAPI
2089 UINTN Arg1,
2090 UINTN Arg2,
2091 UINTN Arg3
2092 );
2093
2106EFIAPI
2108 UINTN Arg1,
2109 UINTN Arg2,
2110 UINTN Arg3,
2111 UINTN Arg4
2112 );
2113
2127EFIAPI
2129 UINTN Arg1,
2130 UINTN Arg2,
2131 UINTN Arg3,
2132 UINTN Arg4,
2133 UINTN Arg5
2134 );
2135
2176EFIAPI
2179 IN VOID *Source,
2180 IN UINT32 SourceSize,
2181 OUT UINT32 *DestinationSize,
2182 OUT UINT32 *ScratchSize
2183 );
2184
2220EFIAPI
2223 IN VOID *Source,
2224 IN UINT32 SourceSize,
2225 IN OUT VOID *Destination,
2226 IN UINT32 DestinationSize,
2227 IN OUT VOID *Scratch,
2228 IN UINT32 ScratchSize
2229 );
2230
2247EFIAPI
2249 IN UINTN SectionStreamLength,
2250 IN VOID *SectionStream,
2251 OUT UINTN *SectionStreamHandle
2252 );
2253
2313EFIAPI
2314GetSection (
2315 IN UINTN SectionStreamHandle,
2316 IN EFI_SECTION_TYPE *SectionType,
2317 IN EFI_GUID *SectionDefinitionGuid,
2318 IN UINTN SectionInstance,
2319 IN VOID **Buffer,
2320 IN OUT UINTN *BufferSize,
2321 OUT UINT32 *AuthenticationStatus,
2322 IN BOOLEAN IsFfs3Fv
2323 );
2324
2339EFIAPI
2341 IN UINTN StreamHandleToClose,
2342 IN BOOLEAN FreeStreamBuffer
2343 );
2344
2356VOID
2358 VOID
2359 );
2360
2369VOID
2371 VOID
2372 );
2373
2384VOID
2386 IN UINT32 ImageInfoType,
2387 IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,
2388 IN EFI_HANDLE ImageHandle
2389 );
2390
2397VOID
2399 EFI_HANDLE ImageHandle
2400 );
2401
2413EFIAPI
2415 IN EFI_HANDLE ImageHandle,
2416 IN EFI_SYSTEM_TABLE *SystemTable
2417 );
2418
2428UINT32
2431 );
2432
2454 IN EFI_PHYSICAL_ADDRESS BaseAddress,
2455 IN UINT64 Length,
2456 IN EFI_HANDLE ParentHandle,
2457 IN UINT32 AuthenticationStatus,
2458 OUT EFI_HANDLE *FvProtocol OPTIONAL
2459 );
2460
2470VOID
2473 );
2474
2491 );
2492
2502VOID
2505 );
2506
2527 IN OUT EFI_LBA *StartLba,
2528 IN OUT UINTN *Offset,
2529 IN UINTN DataSize,
2530 OUT UINT8 *Data
2531 );
2532
2552 OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader
2553 );
2554
2564BOOLEAN
2567 );
2568
2575VOID
2577 IN VOID *HobStart
2578 );
2579
2584VOID
2586 VOID
2587 );
2588
2604 IN EFI_FV_FILETYPE FileType
2605 );
2606
2621 );
2622
2646EFIAPI
2648 IN EFI_PHYSICAL_ADDRESS CallerAddress,
2649 IN MEMORY_PROFILE_ACTION Action,
2650 IN EFI_MEMORY_TYPE MemoryType,
2651 IN UINTN Size, // Valid for AllocatePages/FreePages/AllocatePool
2652 IN VOID *Buffer,
2653 IN CHAR8 *ActionString OPTIONAL
2654 );
2655
2665VOID
2668 IN UINT64 NumberOfPages,
2669 IN UINT64 NewAttributes
2670 );
2671
2675VOID
2676EFIAPI
2678 VOID
2679 );
2680
2684VOID
2685EFIAPI
2687 VOID
2688 );
2689
2695VOID
2697 IN EFI_MEMORY_TYPE MemoryType
2698 );
2699
2705VOID
2707 IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage
2708 );
2709
2715VOID
2717 IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage
2718 );
2719
2726VOID
2728 IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,
2729 IN EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath
2730 );
2731
2738VOID
2740 IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage,
2741 IN EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath
2742 );
2743
2747VOID
2749 VOID
2750 );
2751
2768EFIAPI
2770 IN EFI_MEMORY_TYPE OldType,
2771 IN EFI_MEMORY_TYPE NewType,
2772 IN EFI_PHYSICAL_ADDRESS Memory,
2773 IN UINT64 Length
2774 );
2775
2787VOID
2789 IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
2790 IN OUT UINTN *MemoryMapSize,
2791 IN UINTN DescriptorSize
2792 );
2793
2802 VOID
2803 );
2804
2805#endif
UINT64 UINTN
EFI_STATUS EFIAPI GetSection(IN UINTN SectionStreamHandle, IN EFI_SECTION_TYPE *SectionType, IN EFI_GUID *SectionDefinitionGuid, IN UINTN SectionInstance, IN VOID **Buffer, IN OUT UINTN *BufferSize, OUT UINT32 *AuthenticationStatus, IN BOOLEAN IsFfs3Fv)
EFI_STATUS EFIAPI CoreExitBootServices(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: DxeMain.c:770
EFI_STATUS EFIAPI CoreFreeIoSpace(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Gcd.c:1931
EFI_STATUS EFIAPI FwVolDriverInit(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: FwVol.c:712
EFI_STATUS EFIAPI CoreUninstallProtocolInterface(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: Handle.c:805
EFI_STATUS EFIAPI CoreGetIoSpaceDescriptor(IN EFI_PHYSICAL_ADDRESS BaseAddress, OUT EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor)
Definition: Gcd.c:1995
EFI_STATUS EFIAPI CoreOpenProtocol(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, OUT VOID **Interface OPTIONAL, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE ControllerHandle, IN UINT32 Attributes)
Definition: Handle.c:1078
EFI_STATUS CoreInitializeEventServices(VOID)
Definition: Event.c:120
EFI_TIMER_ARCH_PROTOCOL * gTimer
Definition: TimerDxe.c:264
EFI_STATUS EFIAPI CoreEfiNotAvailableYetArg5(UINTN Arg1, UINTN Arg2, UINTN Arg3, UINTN Arg4, UINTN Arg5)
Definition: DxeMain.c:716
EFI_STATUS CoreAcquireLockOrFail(IN EFI_LOCK *Lock)
Definition: Library.c:29
EFI_STATUS EFIAPI CoreAllocatePages(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN NumberOfPages, IN OUT EFI_PHYSICAL_ADDRESS *Memory)
VOID CoreDisplayMissingArchProtocols(VOID)
EFI_STATUS EFIAPI CoreHandleProtocol(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: Handle.c:1040
VOID CoreNewDebugImageInfoEntry(IN UINT32 ImageInfoType, IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, IN EFI_HANDLE ImageHandle)
EFI_STATUS EFIAPI CoreEfiNotAvailableYetArg1(UINTN Arg1)
Definition: DxeMain.c:608
VOID MemoryProtectionExitBootServicesCallback(VOID)
EFI_STATUS EFIAPI CoreEfiNotAvailableYetArg4(UINTN Arg1, UINTN Arg2, UINTN Arg3, UINTN Arg4)
Definition: DxeMain.c:686
EFI_STATUS CoreInitializeHandleServices(VOID)
Definition: Handle.c:89
VOID CoreDisplayDiscoveredNotDispatched(VOID)
Definition: Dispatcher.c:1471
EFI_STATUS EFIAPI CoreInstallConfigurationTable(IN EFI_GUID *Guid, IN VOID *Table)
EFI_STATUS EFIAPI CoreDisconnectController(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
VOID CoreInitializeDebugImageInfoTable(VOID)
EFI_STATUS EFIAPI CoreCheckEvent(IN EFI_EVENT UserEvent)
Definition: Event.c:573
EFI_STATUS EFIAPI CoreSchedule(IN EFI_HANDLE FirmwareVolumeHandle, IN EFI_GUID *DriverName)
Definition: Dispatcher.c:301
VOID CoreUpdateDebugTableCrc32(VOID)
EFI_STATUS EFIAPI CoreSetTimer(IN EFI_EVENT UserEvent, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: Timer.c:236
EFI_STATUS EFIAPI CoreGetIoSpaceMap(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap)
Definition: Gcd.c:2047
VOID CoreRemoveDebugImageInfoEntry(EFI_HANDLE ImageHandle)
VOID CoreAddMemoryDescriptor(IN EFI_MEMORY_TYPE Type, IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 NumberOfPages, IN UINT64 Attribute)
Definition: Page.c:653
EFI_STATUS EFIAPI CoreFreePages(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages)
Definition: Page.c:1737
VOID InsertImageRecord(IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage)
EFI_STATUS EFIAPI CoreGetMemorySpaceDescriptor(IN EFI_PHYSICAL_ADDRESS BaseAddress, OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor)
Definition: Gcd.c:1617
EFI_STATUS EFIAPI InitializeSectionExtraction(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI CoreInternalFreePool(IN VOID *Buffer, OUT EFI_MEMORY_TYPE *PoolType OPTIONAL)
Definition: Pool.c:563
EFI_STATUS EFIAPI CoreLocateProtocol(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
Definition: Locate.c:575
EFI_STATUS ProduceFVBProtocolOnBuffer(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN EFI_HANDLE ParentHandle, IN UINT32 AuthenticationStatus, OUT EFI_HANDLE *FvProtocol OPTIONAL)
Definition: FwVolBlock.c:432
EFI_STATUS EFIAPI CoreAddMemorySpace(IN EFI_GCD_MEMORY_TYPE GcdMemoryType, IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Capabilities)
Definition: Gcd.c:1478
VOID CoreAcquireGcdMemoryLock(VOID)
Definition: Gcd.c:266
EFI_STATUS EFIAPI CoreCreateEventInternal(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN CONST VOID *NotifyContext OPTIONAL, IN CONST EFI_GUID *EventGroup OPTIONAL, OUT EFI_EVENT *Event)
Definition: Event.c:358
VOID CoreUpdateMemoryAttributes(IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 NumberOfPages, IN UINT64 NewAttributes)
Definition: Page.c:1099
EFI_STATUS UnregisterMemoryProfileImage(IN LOADED_IMAGE_PRIVATE_DATA *DriverEntry)
VOID CoreAcquireLock(IN EFI_LOCK *Lock)
Definition: Library.c:59
VOID EFIAPI CoreInitializeMemoryAttributesTable(VOID)
EFI_STATUS CoreInitializeMemoryServices(IN VOID **HobStart, OUT EFI_PHYSICAL_ADDRESS *MemoryBaseAddress, OUT UINT64 *MemoryLength)
Definition: Gcd.c:2236
EFI_STATUS ReadFvbData(IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb, IN OUT EFI_LBA *StartLba, IN OUT UINTN *Offset, IN UINTN DataSize, OUT UINT8 *Data)
Definition: FwVol.c:69
EFI_STATUS EFIAPI CoreProtocolsPerHandle(IN EFI_HANDLE UserHandle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Definition: Handle.c:1550
EFI_STATUS EFIAPI OpenSectionStream(IN UINTN SectionStreamLength, IN VOID *SectionStream, OUT UINTN *SectionStreamHandle)
VOID EFIAPI CoreTimerTick(IN UINT64 Duration)
Definition: Timer.c:188
VOID ProtectUefiImage(IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, IN EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath)
EFI_STATUS EFIAPI CoreFreeMemorySpace(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Gcd.c:1551
VOID CoreReleaseLock(IN EFI_LOCK *Lock)
Definition: Library.c:80
EFI_STATUS EFIAPI CoreRemoveMemorySpace(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Gcd.c:1573
EFI_STATUS EFIAPI CoreReinstallProtocolInterface(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: Notify.c:173
EFI_TPL EFIAPI CoreRaiseTpl(IN EFI_TPL NewTpl)
Definition: Tpl.c:57
EFI_STATUS EFIAPI CloseSectionStream(IN UINTN StreamHandleToClose, IN BOOLEAN FreeStreamBuffer)
VOID MergeMemoryMap(IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, IN OUT UINTN *MemoryMapSize, IN UINTN DescriptorSize)
EFI_STATUS CoreInitializeGcdServices(IN OUT VOID **HobStart, IN EFI_PHYSICAL_ADDRESS MemoryBaseAddress, IN UINT64 MemoryLength)
Definition: Gcd.c:2574
EFI_STATUS EFIAPI CoreLocateHandleBuffer(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *NumberHandles, OUT EFI_HANDLE **Buffer)
Definition: Locate.c:667
EFI_STATUS EFIAPI DxeMainUefiDecompress(IN EFI_DECOMPRESS_PROTOCOL *This, IN VOID *Source, IN UINT32 SourceSize, IN OUT VOID *Destination, IN UINT32 DestinationSize, IN OUT VOID *Scratch, IN UINT32 ScratchSize)
Definition: DxeMain.c:949
EFI_STATUS EFIAPI CoreLocateDevicePath(IN EFI_GUID *Protocol, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *Device)
Definition: Locate.c:448
EFI_STATUS EFIAPI CoreSetMemorySpaceCapabilities(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Capabilities)
Definition: Gcd.c:1711
EFI_STATUS GetFwVolHeader(IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb, OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader)
Definition: FwVol.c:175
EFI_STATUS EFIAPI CoreProcessFirmwareVolume(IN VOID *FvHeader, IN UINTN Size, OUT EFI_HANDLE *FVProtocolHandle)
Definition: FwVolBlock.c:676
EFI_STATUS EFIAPI CoreAddIoSpace(IN EFI_GCD_IO_TYPE GcdIoType, IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Gcd.c:1846
EFI_STATUS EFIAPI DxeMainUefiDecompressGetInfo(IN EFI_DECOMPRESS_PROTOCOL *This, IN VOID *Source, IN UINT32 SourceSize, OUT UINT32 *DestinationSize, OUT UINT32 *ScratchSize)
Definition: DxeMain.c:898
VOID MemoryProfileInstallProtocol(VOID)
EFI_TPL gEfiCurrentTpl
Definition: Event.c:16
EFI_STATUS EFIAPI CoreInstallProtocolInterface(IN OUT EFI_HANDLE *UserHandle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface)
Definition: Handle.c:398
EFI_STATUS EFIAPI CoreInstallMultipleProtocolInterfaces(IN OUT EFI_HANDLE *Handle,...)
Definition: Handle.c:630
EFI_STATUS EFIAPI CoreSetMemorySpaceAttributes(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN UINT64 Attributes)
Definition: Gcd.c:1680
EFI_STATUS EFIAPI CoreConnectController(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE *DriverImageHandle OPTIONAL, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL, IN BOOLEAN Recursive)
Definition: DriverSupport.c:44
EFI_STATUS EFIAPI CoreSignalEvent(IN EFI_EVENT UserEvent)
Definition: Event.c:514
UINT32 GetFvbAuthenticationStatus(IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbProtocol)
Definition: FwVolBlock.c:396
EFI_STATUS EFIAPI CoreGetMemoryMap(IN OUT UINTN *MemoryMapSize, IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
Definition: Page.c:1881
EFI_STATUS EFIAPI CoreStall(IN UINTN Microseconds)
Definition: Stall.c:49
EFI_STATUS CoreInstallProtocolInterfaceNotify(IN OUT EFI_HANDLE *UserHandle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface, IN BOOLEAN Notify)
Definition: Handle.c:432
EFI_STATUS EFIAPI CoreStartImage(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: Image.c:1602
EFI_STATUS EFIAPI CoreUpdateProfile(IN EFI_PHYSICAL_ADDRESS CallerAddress, IN MEMORY_PROFILE_ACTION Action, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Size, IN VOID *Buffer, IN CHAR8 *ActionString OPTIONAL)
VOID CoreNotifySignalList(IN EFI_GUID *EventGroup)
Definition: Event.c:238
EFI_STATUS EFIAPI CoreGetMemorySpaceMap(OUT UINTN *NumberOfDescriptors, OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap)
Definition: Gcd.c:1737
EFI_STATUS EFIAPI CoreInternalAllocatePool(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: Pool.c:203
EFI_STATUS EFIAPI CoreDispatcher(VOID)
Definition: Dispatcher.c:400
EFI_STATUS EFIAPI CoreExit(IN EFI_HANDLE ImageHandle, IN EFI_STATUS Status, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: Image.c:1830
EFI_BDS_ARCH_PROTOCOL * gBds
Definition: DxeMain.c:24
EFI_STATUS EFIAPI CoreTrust(IN EFI_HANDLE FirmwareVolumeHandle, IN EFI_GUID *DriverName)
Definition: Dispatcher.c:351
EFI_STATUS RegisterMemoryProfileImage(IN LOADED_IMAGE_PRIVATE_DATA *DriverEntry, IN EFI_FV_FILETYPE FileType)
EFI_STATUS EFIAPI ApplyMemoryProtectionPolicy(IN EFI_MEMORY_TYPE OldType, IN EFI_MEMORY_TYPE NewType, IN EFI_PHYSICAL_ADDRESS Memory, IN UINT64 Length)
VOID CoreConnectHandlesByKey(UINT64 Key)
Definition: Handle.c:1643
EFI_STATUS EFIAPI CoreCloseProtocol(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle)
Definition: Handle.c:1345
EFI_STATUS EFIAPI CoreEfiNotAvailableYetArg2(UINTN Arg1, UINTN Arg2)
Definition: DxeMain.c:632
EFI_STATUS CoreInitializeImageServices(IN VOID *HobStart)
Definition: Image.c:184
VOID CoreSetMemoryTypeInformationRange(IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Length)
Definition: Page.c:547
EFI_STATUS EFIAPI FwVolBlockDriverInit(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: FwVolBlock.c:613
BOOLEAN VerifyFvHeaderChecksum(IN EFI_FIRMWARE_VOLUME_HEADER *FvHeader)
Definition: Ffs.c:92
EFI_STATUS EFIAPI CoreRegisterProtocolNotify(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: Notify.c:99
EFI_STATUS EFIAPI CoreLocateHandle(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *BufferSize, OUT EFI_HANDLE *Buffer)
Definition: Locate.c:269
VOID MemoryProfileInit(IN VOID *HobStart)
EFI_STATUS CorePreProcessDepex(IN EFI_CORE_DRIVER_ENTRY *DriverEntry)
Definition: Dependency.c:157
EFI_STATUS EFIAPI CoreSetWatchdogTimer(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
VOID EFIAPI CoreInitializeMemoryProtection(VOID)
VOID CoreNotifyOnProtocolInstallation(VOID)
EFI_STATUS EFIAPI CoreCreateEventEx(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN CONST VOID *NotifyContext OPTIONAL, IN CONST EFI_GUID *EventGroup OPTIONAL, OUT EFI_EVENT *Event)
Definition: Event.c:312
VOID CoreInitializeDispatcher(VOID)
Definition: Dispatcher.c:1444
EFI_STATUS EFIAPI CoreCloseEvent(IN EFI_EVENT UserEvent)
Definition: Event.c:700
EFI_STATUS EFIAPI CoreAllocateIoSpace(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_IO_TYPE GcdIoType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle OPTIONAL)
Definition: Gcd.c:1884
EFI_STATUS CoreAllEfiServicesAvailable(VOID)
VOID InstallMemoryAttributesTableOnMemoryAllocation(IN EFI_MEMORY_TYPE MemoryType)
VOID CoreReleaseGcdMemoryLock(VOID)
Definition: Gcd.c:278
EFI_STATUS EFIAPI CoreRemoveIoSpace(IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length)
Definition: Gcd.c:1953
UINT64 CoreGetHandleDatabaseKey(VOID)
Definition: Handle.c:1628
EFI_STATUS EFIAPI CoreWaitForEvent(IN UINTN NumberOfEvents, IN EFI_EVENT *UserEvents, OUT UINTN *UserIndex)
Definition: Event.c:642
EFI_STATUS EFIAPI CoreAllocatePool(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: Pool.c:267
BOOLEAN CoreIsSchedulable(IN EFI_CORE_DRIVER_ENTRY *DriverEntry)
Definition: Dependency.c:197
EFI_STATUS EFIAPI CoreLoadImage(IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN VOID *SourceBuffer OPTIONAL, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
Definition: Image.c:1541
VOID CalculateEfiHdrCrc(IN OUT EFI_TABLE_HEADER *Hdr)
Definition: DxeMain.c:741
VOID RemoveImageRecord(IN EFI_RUNTIME_IMAGE_ENTRY *RuntimeImage)
VOID CoreInitializePool(VOID)
Definition: Pool.c:115
EFI_STATUS EFIAPI CoreOpenProtocolInformation(IN EFI_HANDLE UserHandle, IN EFI_GUID *Protocol, OUT EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, OUT UINTN *EntryCount)
Definition: Handle.c:1436
EFI_STATUS CoreTerminateMemoryMap(IN UINTN MapKey)
Definition: Page.c:2260
EFI_STATUS EFIAPI CoreUninstallMultipleProtocolInterfaces(IN EFI_HANDLE Handle,...)
Definition: Handle.c:931
EFI_STATUS EFIAPI CoreEfiNotAvailableYetArg3(UINTN Arg1, UINTN Arg2, UINTN Arg3)
Definition: DxeMain.c:658
VOID EFIAPI CoreRestoreTpl(IN EFI_TPL NewTpl)
Definition: Tpl.c:95
EFI_STATUS EFIAPI CoreUnloadImage(IN EFI_HANDLE ImageHandle)
Definition: Image.c:1919
EFI_STATUS EFIAPI CoreCreateEvent(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN VOID *NotifyContext OPTIONAL, OUT EFI_EVENT *Event)
Definition: Event.c:279
EFI_STATUS EFIAPI CoreAllocateMemorySpace(IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType, IN EFI_GCD_MEMORY_TYPE GcdMemoryType, IN UINTN Alignment, IN UINT64 Length, IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress, IN EFI_HANDLE ImageHandle, IN EFI_HANDLE DeviceHandle OPTIONAL)
Definition: Gcd.c:1429
EFI_METRONOME_ARCH_PROTOCOL * gMetronome
Definition: Metronome.c:51
EFI_STATUS EFIAPI CoreFreePool(IN VOID *Buffer)
Definition: Pool.c:591
VOID UnprotectUefiImage(IN EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, IN EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath)
EFI_STATUS CoreUnregisterProtocolNotify(IN EFI_EVENT Event)
Definition: Handle.c:369
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_GCD_MEMORY_TYPE
Definition: PiDxeCis.h:21
EFI_GCD_ALLOCATE_TYPE
Definition: PiDxeCis.h:92
EFI_GCD_IO_TYPE
Definition: PiDxeCis.h:70
VOID EFIAPI NotifyFunction(IN EFI_EVENT Event, IN VOID *Context)
Definition: ScsiBus.c:1492
EFI_STATUS EFIAPI Lock(IN EFI_SMM_ACCESS2_PROTOCOL *This)
Definition: SmmAccessDxe.c:133
EFI_STATUS EFIAPI DriverEntry(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: TdTcg2Dxe.c:2427
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
UINT64 EFI_LBA
Definition: UefiBaseType.h:45
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
UINTN EFI_TPL
Definition: UefiBaseType.h:41
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_MEMORY_TYPE
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1189
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:463
EFI_TIMER_DELAY
Definition: UefiSpec.h:527
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2108
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1505
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:29
Definition: Base.h:213
EFI_DEVICE_PATH_PROTOCOL * LoadedImageDevicePath
Pointer to Loaded Image Device Path Protocol.
Definition: DxeMain.h:222
EFI_IMAGE_ENTRY_POINT EntryPoint
The image's entry point.
Definition: DxeMain.h:194
EFI_RUNTIME_IMAGE_ENTRY * RuntimeData
Runtime image list.
Definition: DxeMain.h:220
EFI_TPL Tpl
Tpl of started image.
Definition: DxeMain.h:204
EFI_HANDLE Handle
Image handle.
Definition: DxeMain.h:188
BASE_LIBRARY_JUMP_BUFFER * JumpContext
Pointer to buffer for context save/restore.
Definition: DxeMain.h:214
VOID * ExitData
Pointer to exit data from started image.
Definition: DxeMain.h:210
UINT16 Machine
Machine type from PE image.
Definition: DxeMain.h:216
UINTN Type
Image type.
Definition: DxeMain.h:190
EFI_PHYSICAL_ADDRESS ImageBasePage
Location in memory.
Definition: DxeMain.h:198
EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL * PeCoffEmu
PE/COFF Image Emulator Protocol pointer.
Definition: DxeMain.h:218
BOOLEAN Started
If entrypoint has been called.
Definition: DxeMain.h:192
VOID * JumpBuffer
Pointer to pool allocation for context save/restore.
Definition: DxeMain.h:212
UINTN NumberOfPages
Number of pages.
Definition: DxeMain.h:200
UINTN ExitDataSize
Size of ExitData from started image.
Definition: DxeMain.h:208
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext
PeCoffLoader ImageContext.
Definition: DxeMain.h:224
EFI_STATUS Status
Status returned by started image.
Definition: DxeMain.h:206
EFI_STATUS LoadImageStatus
Status returned by LoadImage() service.
Definition: DxeMain.h:226
CHAR8 * FixupData
Original fixup data.
Definition: DxeMain.h:202
EFI_LOADED_IMAGE_PROTOCOL Info
loaded image protocol
Definition: DxeMain.h:196