3 Copyright (c) 2004 - 2007, 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
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.
15 EdkIIGlueDxeDriverEntryPoint.c
19 DXE Driver entry point template file
23 #include "EdkIIGlueDxe.h"
24 #include "Common/EdkIIGlueDependencies.h"
26 STATIC EFI_EVENT _mDriverExitBootServicesNotifyEvent
;
29 // Driver Model related definitions.
30 // LIMITATION: only support one instance of Driver Model protocols per driver.
31 // In case where multiple Driver Model protocols need to be installed in a single driver,
32 // manually edit this file and compile/link the modified file with the driver.
35 #ifdef __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__
36 extern EFI_DRIVER_BINDING_PROTOCOL __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__
;
39 #ifdef __EDKII_GLUE_COMPONENT_NAME_PROTOCOL_INSTANCE__
40 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
41 extern EFI_COMPONENT_NAME2_PROTOCOL __EDKII_GLUE_COMPONENT_NAME_PROTOCOL_INSTANCE__
;
43 extern EFI_COMPONENT_NAME_PROTOCOL __EDKII_GLUE_COMPONENT_NAME_PROTOCOL_INSTANCE__
;
47 #ifdef __EDKII_GLUE_DRIVER_CONFIGURATION_PROTOCOL_INSTANCE__
48 extern EFI_DRIVER_CONFIGURATION_PROTOCOL __EDKII_GLUE_DRIVER_CONFIGURATION_PROTOCOL_INSTANCE__
;
51 #ifdef __EDKII_GLUE_DRIVER_DIAGNOSTICS_PROTOCOL_INSTANCE__
52 extern EFI_DRIVER_DIAGNOSTICS_PROTOCOL __EDKII_GLUE_DRIVER_DIAGNOSTICS_PROTOCOL_INSTANCE__
;
55 GLOBAL_REMOVE_IF_UNREFERENCED
const EFI_DRIVER_MODEL_PROTOCOL_LIST _gDriverModelProtocolList
[] = {
57 #ifdef __EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__
58 &__EDKII_GLUE_DRIVER_BINDING_PROTOCOL_INSTANCE__
,
63 #ifdef __EDKII_GLUE_COMPONENT_NAME_PROTOCOL_INSTANCE__
64 &__EDKII_GLUE_COMPONENT_NAME_PROTOCOL_INSTANCE__
,
69 #ifdef __EDKII_GLUE_DRIVER_CONFIGURATION_PROTOCOL_INSTANCE__
70 &__EDKII_GLUE_DRIVER_CONFIGURATION_PROTOCOL_INSTANCE__
,
75 #ifdef __EDKII_GLUE_DRIVER_DIAGNOSTICS_PROTOCOL_INSTANCE__
76 &__EDKII_GLUE_DRIVER_DIAGNOSTICS_PROTOCOL_INSTANCE__
,
85 // Only one handler for SetVirtualAddressMap Event and ExitBootServices Event each
87 #ifdef __EDKII_GLUE_SET_VIRTUAL_ADDRESS_MAP_EVENT_HANDLER__
89 __EDKII_GLUE_SET_VIRTUAL_ADDRESS_MAP_EVENT_HANDLER__ (
95 GLOBAL_REMOVE_IF_UNREFERENCED
const EFI_EVENT_NOTIFY _gDriverSetVirtualAddressMapEvent
[] = {
96 #ifdef __EDKII_GLUE_SET_VIRTUAL_ADDRESS_MAP_EVENT_HANDLER__
97 __EDKII_GLUE_SET_VIRTUAL_ADDRESS_MAP_EVENT_HANDLER__
,
102 #ifdef __EDKII_GLUE_EXIT_BOOT_SERVICES_EVENT_HANDLER__
104 __EDKII_GLUE_EXIT_BOOT_SERVICES_EVENT_HANDLER__ (
111 Set AtRuntime flag as TRUE after ExitBootServices
113 @param[in] Event The Event that is being processed
114 @param[in] Context Event Context
118 RuntimeDriverExitBootServices (
123 GLOBAL_REMOVE_IF_UNREFERENCED
const EFI_EVENT_NOTIFY _gDriverExitBootServicesEvent
[] = {
124 #ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
126 // only Runtime drivers need to link EdkDxeRuntimeDriverLib
128 RuntimeDriverExitBootServices
,
130 #ifdef __EDKII_GLUE_EXIT_BOOT_SERVICES_EVENT_HANDLER__
131 __EDKII_GLUE_EXIT_BOOT_SERVICES_EVENT_HANDLER__
,
138 // Module Unload Handler
141 #ifdef __EDKII_GLUE_MODULE_UNLOAD_HANDLER__
144 __EDKII_GLUE_MODULE_UNLOAD_HANDLER__ (
145 EFI_HANDLE ImageHandle
151 ProcessModuleUnloadList (
152 EFI_HANDLE ImageHandle
155 #ifdef __EDKII_GLUE_MODULE_UNLOAD_HANDLER__
156 return (__EDKII_GLUE_MODULE_UNLOAD_HANDLER__ (ImageHandle
));
162 #ifdef __EDKII_GLUE_EFI_CALLER_ID_GUID__
163 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCallerIdGuid
= __EDKII_GLUE_EFI_CALLER_ID_GUID__
;
167 // Library constructors
170 ProcessLibraryConstructorList (
171 IN EFI_HANDLE ImageHandle
,
172 IN EFI_SYSTEM_TABLE
*SystemTable
176 // Declare "Status" if any of the following libraries are used
178 #if defined(__EDKII_GLUE_DXE_HOB_LIB__) \
179 || defined(__EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__) \
180 || defined(__EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__) \
181 || defined(__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__) \
182 || defined(__EDKII_GLUE_DXE_SERVICES_TABLE_LIB__) \
183 || defined(__EDKII_GLUE_DXE_SMBUS_LIB__) \
184 || defined(__EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__) \
185 || defined(__EDKII_GLUE_EDK_DXE_SAL_LIB__) \
186 || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__)
191 // EdkII Glue Library Constructors:
192 // NOTE: the constructors must be called according to dependency order
194 // UefiBootServicesTableLib UefiBootServicesTableLibConstructor()
195 // DxeIoLibCpuIo IoLibConstructor()
196 // DxeSalLib DxeSalLibConstructor(), IPF only
197 // EdkDxeRuntimeDriverLib RuntimeDriverLibConstruct()
198 // DxeHobLib HobLibConstructor()
199 // UefiDriverModelLib UefiDriverModelLibConstructor()
200 // DxeSmbusLib SmbusLibConstructor()
201 // DxeServicesTableLib DxeServicesTableLibConstructor()
202 // UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor()
205 #ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
206 Status
= UefiBootServicesTableLibConstructor (ImageHandle
, SystemTable
);
207 ASSERT_EFI_ERROR (Status
);
210 #ifdef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__
211 Status
= IoLibConstructor (ImageHandle
, SystemTable
);
212 ASSERT_EFI_ERROR (Status
);
215 #ifdef __EDKII_GLUE_EDK_DXE_SAL_LIB__
216 Status
= DxeSalLibConstructor(ImageHandle
, SystemTable
);
217 ASSERT_EFI_ERROR (Status
);
220 #ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
221 Status
= RuntimeDriverLibConstruct (ImageHandle
, SystemTable
);
222 ASSERT_EFI_ERROR (Status
);
225 #ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
226 Status
= UefiRuntimeServicesTableLibConstructor (ImageHandle
, SystemTable
);
227 ASSERT_EFI_ERROR (Status
);
230 #ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
231 Status
= UefiDriverModelLibConstructor (ImageHandle
, SystemTable
);
232 ASSERT_EFI_ERROR (Status
);
235 #ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__
236 Status
= DxeServicesTableLibConstructor (ImageHandle
, SystemTable
);
237 ASSERT_EFI_ERROR (Status
);
240 #ifdef __EDKII_GLUE_DXE_HOB_LIB__
241 Status
= HobLibConstructor (ImageHandle
, SystemTable
);
242 ASSERT_EFI_ERROR (Status
);
245 #ifdef __EDKII_GLUE_DXE_SMBUS_LIB__
246 Status
= SmbusLibConstructor (ImageHandle
, SystemTable
);
247 ASSERT_EFI_ERROR (Status
);
253 // Library Destructors
256 ProcessLibraryDestructorList (
257 IN EFI_HANDLE ImageHandle
,
258 IN EFI_SYSTEM_TABLE
*SystemTable
261 #if defined (__EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__) || defined (__EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__)
266 // NOTE: the destructors must be called according to dependency order
268 #ifdef __EDKII_GLUE_UEFI_DRIVER_MODEL_LIB__
269 Status
= UefiDriverModelLibDestructor (ImageHandle
, SystemTable
);
270 ASSERT_EFI_ERROR (Status
);
273 #ifdef __EDKII_GLUE_EDK_DXE_RUNTIME_DRIVER_LIB__
274 Status
= RuntimeDriverLibDeconstruct (ImageHandle
, SystemTable
);
275 ASSERT_EFI_ERROR (Status
);
281 Unload function that is registered in the LoadImage protocol. It un-installs
282 protocols produced and deallocates pool used by the driver. Called by the core
283 when unloading the driver.
292 _DriverUnloadHandler (
293 EFI_HANDLE ImageHandle
299 // If an UnloadImage() handler is specified, then call it
301 Status
= ProcessModuleUnloadList (ImageHandle
);
304 // If the driver specific unload handler does not return an error, then call all of the
305 // library destructors. If the unload handler returned an error, then the driver can not be
306 // unloaded, and the library destructors should not be called
308 if (!EFI_ERROR (Status
)) {
310 // Close our ExitBootServices () notify function
312 if (_gDriverExitBootServicesEvent
[0] != NULL
) {
313 ASSERT (gBS
!= NULL
);
314 Status
= gBS
->CloseEvent (_mDriverExitBootServicesNotifyEvent
);
315 ASSERT_EFI_ERROR (Status
);
319 // NOTE: To allow passing in gST here, any library instance having a destructor
320 // must depend on EfiDriverLib
322 ProcessLibraryDestructorList (ImageHandle
, gST
);
326 // Return the status from the driver specific unload handler
333 _DriverExitBootServices (
341 Set AtRuntime flag as TRUE after ExitBootServices
345 Event - The Event that is being processed
347 Context - Event Context
355 EFI_EVENT_NOTIFY ChildNotifyEventHandler
;
358 for (Index
= 0; _gDriverExitBootServicesEvent
[Index
] != NULL
; Index
++) {
359 ChildNotifyEventHandler
= _gDriverExitBootServicesEvent
[Index
];
360 ChildNotifyEventHandler (Event
, NULL
);
364 EFI_DRIVER_ENTRY_POINT (_ModuleEntryPoint
);
367 // Module Entry Point
369 #ifdef __EDKII_GLUE_MODULE_ENTRY_POINT__
372 __EDKII_GLUE_MODULE_ENTRY_POINT__ (
373 EFI_HANDLE ImageHandle
,
374 EFI_SYSTEM_TABLE
*SystemTable
379 Enrty point to DXE Driver.
381 @param ImageHandle ImageHandle of the loaded driver.
382 @param SystemTable Pointer to the EFI System Table.
384 @retval EFI_SUCCESS One or more of the drivers returned a success code.
385 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
391 IN EFI_HANDLE ImageHandle
,
392 IN EFI_SYSTEM_TABLE
*SystemTable
396 EFI_LOADED_IMAGE_PROTOCOL
*LoadedImage
;
398 // if (_gUefiDriverRevision != 0) {
400 // // Make sure that the EFI/UEFI spec revision of the platform is >= EFI/UEFI spec revision of the driver
402 // if (SystemTable->Hdr.Revision < _gUefiDriverRevision) {
403 // return EFI_INCOMPATIBLE_VERSION;
407 // DEBUG ((EFI_D_ERROR, "EdkII Glue Driver Entry - 0\n"));
410 // Call constructor for all libraries
412 ProcessLibraryConstructorList (ImageHandle
, SystemTable
);
415 // Register our ExitBootServices () notify function
417 if (_gDriverExitBootServicesEvent
[0] != NULL
) {
418 Status
= SystemTable
->BootServices
->CreateEvent (
419 EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES
,
421 _DriverExitBootServices
,
423 &_mDriverExitBootServicesNotifyEvent
426 ASSERT_EFI_ERROR (Status
);
430 // Install unload handler...
432 Status
= SystemTable
->BootServices
->HandleProtocol (
434 &gEfiLoadedImageProtocolGuid
,
435 (VOID
**)&LoadedImage
437 ASSERT_EFI_ERROR (Status
);
438 LoadedImage
->Unload
= _DriverUnloadHandler
;
441 // Call the driver entry point
443 #ifdef __EDKII_GLUE_MODULE_ENTRY_POINT__
444 Status
= (__EDKII_GLUE_MODULE_ENTRY_POINT__ (ImageHandle
, SystemTable
));
446 Status
= EFI_SUCCESS
;
450 // If all of the drivers returned errors, then invoke all of the library destructors
452 if (EFI_ERROR (Status
)) {
454 // Close our ExitBootServices () notify function
456 if (_gDriverExitBootServicesEvent
[0] != NULL
) {
457 EFI_STATUS CloseEventStatus
;
458 CloseEventStatus
= SystemTable
->BootServices
->CloseEvent (_mDriverExitBootServicesNotifyEvent
);
459 ASSERT_EFI_ERROR (CloseEventStatus
);
462 ProcessLibraryDestructorList (ImageHandle
, SystemTable
);
466 // Return the cummalative return status code from all of the driver entry points
473 Enrty point wrapper of DXE Driver.
475 @param ImageHandle ImageHandle of the loaded driver.
476 @param SystemTable Pointer to the EFI System Table.
478 @retval EFI_SUCCESS One or more of the drivers returned a success code.
479 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
481 EBC build envrionment has /D $(IMAGE_ENTRY_POINT)=EfiMain which overrides what GlueLib
482 defines: /D IMAGE_ENTRY_POINT=_ModuleEntryPoint, so _ModuleEntryPoint will be replaced with
483 EfiMain thus the function below isn't needed in EBC envrionment.
490 IN EFI_HANDLE ImageHandle
,
491 IN EFI_SYSTEM_TABLE
*SystemTable
494 return _ModuleEntryPoint (ImageHandle
, SystemTable
);
499 // Guids not present in R8.6 code base
503 // Protocol/Arch Protocol GUID globals
505 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiDriverConfigurationProtocolGuid
= { 0xbfd7dc1d, 0x24f1, 0x40d9, { 0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe } };
506 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiDriverDiagnosticsProtocolGuid
= { 0x4d330321, 0x025f, 0x4aac, { 0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63 } };
507 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpProtocolGuid
= { 0xf4b427bb, 0xba21, 0x4f16, { 0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c } };
508 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpServiceBindingProtocolGuid
= { 0xf44c00ee, 0x1f2c, 0x4a00, { 0xaa, 0x09, 0x1c, 0x9f, 0x3e, 0x08, 0x00, 0xa3 } };
509 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ProtocolGuid
= { 0x8a219718, 0x4ef5, 0x4761, { 0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56 } };
510 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid
= { 0x9d9a39d8, 0xbd42, 0x4a73, { 0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80 } };
511 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ProtocolGuid
= { 0x41d94cd2, 0x35b6, 0x455a, { 0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd } };
512 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ServiceBindingProtocolGuid
= { 0xc51711e7, 0xb4bf, 0x404a, { 0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4 } };
513 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ConfigProtocolGuid
= { 0x3b95aa31, 0x3793, 0x434b, { 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e } };
514 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid
= { 0x3b95aa31, 0x3793, 0x434b, { 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e } };
515 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid
= { 0xf36ff770, 0xa7e1, 0x42cf, { 0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c } };
516 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMtftp4ProtocolGuid
= { 0x3ad9df29, 0x4501, 0x478d, { 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 } };
517 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMtftp4ServiceBindingProtocolGuid
= { 0x2FE800BE, 0x8F01, 0x4aa6, { 0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F } };
518 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ProtocolGuid
= { 0x65530BC7, 0xA359, 0x410f, { 0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62 } };
519 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ServiceBindingProtocolGuid
= { 0x00720665, 0x67EB, 0x4a99, { 0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9 } };
520 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUdp4ProtocolGuid
= { 0x3ad9df29, 0x4501, 0x478d, { 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 } };
521 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUdp4ServiceBindingProtocolGuid
= { 0x83f01464, 0x99bd, 0x45e5, { 0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6 } };
522 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationInfoProtocolGuid
= { 0x7671d9d0, 0x53db, 0x4173, { 0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } };
523 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid
= { 0x5c99a21, 0xc70f, 0x4ad2, { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } };
524 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid
= { 0x8b843e20, 0x8132, 0x4852, { 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c } };
525 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid
= { 0x379be4e, 0xd706, 0x437d, { 0xb0, 0x37, 0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4 } };
526 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashProtocolGuid
= { 0xc5184932, 0xdba5, 0x46db, { 0xa5, 0xba, 0xcc, 0x0b, 0xda, 0x9c, 0x14, 0x35 } };
527 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashServiceBindingProtocolGuid
= { 0x42881c98, 0xa4f3, 0x44b0, { 0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd } };
528 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIScsiInitiatorNameProtocolGuid
= { 0xa6a72875, 0x2962, 0x4c18, { 0x9f, 0x46, 0x8d, 0xa6, 0x44, 0xcc, 0xfe, 0x00 } };
529 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiExtScsiPassThruProtocolGuid
= { 0x1d3de7f0, 0x0807, 0x424f, { 0xaa, 0x69, 0x11, 0xa5, 0x4e, 0x19, 0xa4, 0x6f } };
530 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTapeIoProtocolGuid
= { 0x1e93e633, 0xd65a, 0x459e, { 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } };
531 #if (EFI_SPECIFICATION_VERSION < 0x00020000)
532 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUsb2HcProtocolGuid
= { 0x3e745226, 0x9818, 0x45b6, { 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } };
542 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocBspStoreGuid
= { 0x564b33cd, 0xc92a, 0x4593, { 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22 } };
543 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocStackGuid
= { 0x4ed4bf27, 0x4092, 0x42e9, { 0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x00, 0xc9, 0xbd } };
544 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocModuleGuid
= { 0xf8e21975, 0x0899, 0x4f58, { 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a } };
545 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationChapRadiusGuid
= { 0xd6062b50, 0x15ca, 0x11da, { 0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } };
546 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationChapLocalGuid
= { 0xc280c73e, 0x15ca, 0x11da, { 0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } };
547 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha1Guid
= { 0x2ae9d80f, 0x3fb2, 0x4095, { 0xb7, 0xb1, 0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6 } };
548 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha224Guid
= { 0x8df01a06, 0x9bd5, 0x4bf7, { 0xb0, 0x21, 0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b } };
549 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha256Guid
= { 0x51aa59de, 0xfdf2, 0x4ea3, { 0xbc, 0x63, 0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9 } };
550 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha384Guid
= { 0xefa96432, 0xde33, 0x4dd2, { 0xae, 0xe6, 0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a } };
551 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha512Guid
= { 0xcaa4381e, 0x750c, 0x4770, { 0xb8, 0x70, 0x7a, 0x23, 0xb4, 0xe4, 0x21, 0x30 } };
552 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmMD5Guid
= { 0xaf7c79c, 0x65b5, 0x4319, { 0xb0, 0xae, 0x44, 0xec, 0x48, 0x4e, 0x4a, 0xd7 } };
553 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gBootObjectAuthorizationParmsetGuid
= { 0xedd35e31, 0x7b9, 0x11d2, { 0x83, 0xa3, 0x00, 0xa0, 0xc9, 0x1f, 0xad, 0xcf } };
554 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gSmmCommunicateHeaderGuid
= { 0xf328e36c, 0x23b6, 0x4a95, { 0x85, 0x4b, 0x32, 0xe1, 0x95, 0x34, 0xcd, 0x75 } };
555 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCapsuleGuid
= { 0x3B6686BD, 0x0D76, 0x4030, { 0xB7, 0x0E, 0xB5, 0x51, 0x9E, 0x2F, 0xC5, 0xA0 } };
556 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiConfigFileNameGuid
= { 0x98B8D59B, 0xE8BA, 0x48EE, { 0x98, 0xDD, 0xC2, 0x95, 0x39, 0x2F, 0x1E, 0xDB } };