3 Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
4 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 EdkIIGlueSmmDriverEntryPoint.c
19 Smm Driver entry point template file
23 #include "EdkIIGlueDxe.h"
24 #include "Common/EdkIIGlueDependencies.h"
28 // Module Unload Handler
30 #ifdef __EDKII_GLUE_MODULE_UNLOAD_HANDLER__
33 __EDKII_GLUE_MODULE_UNLOAD_HANDLER__ (
34 EFI_HANDLE ImageHandle
40 ProcessModuleUnloadList (
41 EFI_HANDLE ImageHandle
44 #ifdef __EDKII_GLUE_MODULE_UNLOAD_HANDLER__
45 return (__EDKII_GLUE_MODULE_UNLOAD_HANDLER__ (ImageHandle
));
51 #ifdef __EDKII_GLUE_EFI_CALLER_ID_GUID__
52 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCallerIdGuid
= __EDKII_GLUE_EFI_CALLER_ID_GUID__
;
56 // Library constructors
60 ProcessLibraryConstructorList (
61 IN EFI_HANDLE ImageHandle
,
62 IN EFI_SYSTEM_TABLE
*SystemTable
66 // Declare "Status" if any of the following libraries are used
68 #if defined(__EDKII_GLUE_DXE_HOB_LIB__) \
69 || defined(__EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__) \
70 || defined(__EDKII_GLUE_DXE_SERVICES_TABLE_LIB__) \
71 || defined(__EDKII_GLUE_DXE_SMBUS_LIB__) \
72 || defined(__EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__) \
73 || defined(__EDKII_GLUE_DXE_IO_LIB_CPU_IO__) \
74 || defined(__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)
79 // EdkII Glue Library Constructors:
80 // NOTE: the constructors must be called according to dependency order
81 // NOTE: compared with EdkIIGlueDxeDriverEntryPoint.c, the EdkDxeRuntimeDriverLib
82 // and the UefiDriverModelLib are not applicable for SMM Drivers so not listed
85 // UefiBootServicesTableLib UefiBootServicesTableLibConstructor()
86 // DxeIoLibCpuIo IoLibConstructor
87 // DxeHobLib HobLibConstructor()
88 // DxeSmbusLib SmbusLibConstructor()
89 // DxeServicesTableLib DxeServicesTableLibConstructor()
90 // UefiRuntimeServicesTableLib UefiRuntimeServicesTableLibConstructor()
91 // SmmRuntimeDxeReportStatusCodeLib ReportStatusCodeLibConstruct()
92 // check here: check lib usage
93 #ifdef __EDKII_GLUE_UEFI_BOOT_SERVICES_TABLE_LIB__
94 Status
= UefiBootServicesTableLibConstructor (ImageHandle
, SystemTable
);
95 ASSERT_EFI_ERROR (Status
);
98 #ifdef __EDKII_GLUE_DXE_IO_LIB_CPU_IO__
99 Status
= IoLibConstructor (ImageHandle
, SystemTable
);
100 ASSERT_EFI_ERROR (Status
);
103 #ifdef __EDKII_GLUE_UEFI_RUNTIME_SERVICES_TABLE_LIB__
104 Status
= UefiRuntimeServicesTableLibConstructor (ImageHandle
, SystemTable
);
105 ASSERT_EFI_ERROR (Status
);
108 #ifdef __EDKII_GLUE_DXE_SERVICES_TABLE_LIB__
109 Status
= DxeServicesTableLibConstructor (ImageHandle
, SystemTable
);
110 ASSERT_EFI_ERROR (Status
);
113 #ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__
114 Status
= ReportStatusCodeLibConstruct (ImageHandle
, SystemTable
);
115 ASSERT_EFI_ERROR (Status
);
118 #ifdef __EDKII_GLUE_DXE_HOB_LIB__
119 Status
= HobLibConstructor (ImageHandle
, SystemTable
);
120 ASSERT_EFI_ERROR (Status
);
123 #ifdef __EDKII_GLUE_DXE_SMBUS_LIB__
124 Status
= SmbusLibConstructor (ImageHandle
, SystemTable
);
125 ASSERT_EFI_ERROR (Status
);
130 // Library destructors
134 ProcessLibraryDestructorList (
135 IN EFI_HANDLE ImageHandle
,
136 IN EFI_SYSTEM_TABLE
*SystemTable
139 #if defined (__EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__)
144 // NOTE: the destructors must be called according to dependency order
146 #ifdef __EDKII_GLUE_SMM_RUNTIME_DXE_REPORT_STATUS_CODE_LIB__
147 Status
= ReportStatusCodeLibDestruct (ImageHandle
, SystemTable
);
148 ASSERT_EFI_ERROR (Status
);
152 EFI_BOOT_SERVICES
*mBS
;
155 This function returns the size, in bytes,
156 of the device path data structure specified by DevicePath.
157 If DevicePath is NULL, then 0 is returned.
159 @param DevicePath A pointer to a device path data structure.
161 @return The size of a device path in bytes.
167 SmmGetDevicePathSize (
168 IN CONST EFI_DEVICE_PATH_PROTOCOL
*DevicePath
171 CONST EFI_DEVICE_PATH_PROTOCOL
*Start
;
173 if (DevicePath
== NULL
) {
178 // Search for the end of the device path structure
181 while (!EfiIsDevicePathEnd (DevicePath
)) {
182 DevicePath
= EfiNextDevicePathNode (DevicePath
);
186 // Compute the size and add back in the size of the end device path structure
188 return ((UINTN
) DevicePath
- (UINTN
) Start
) + sizeof (EFI_DEVICE_PATH_PROTOCOL
);
192 This function appends the device path SecondDevicePath
193 to every device path instance in FirstDevicePath.
195 @param FirstDevicePath A pointer to a device path data structure.
197 @param SecondDevicePath A pointer to a device path data structure.
199 @return A pointer to the new device path is returned.
200 NULL is returned if space for the new device path could not be allocated from pool.
201 It is up to the caller to free the memory used by FirstDevicePath and SecondDevicePath
202 if they are no longer needed.
205 EFI_DEVICE_PATH_PROTOCOL
*
207 SmmAppendDevicePath (
208 IN CONST EFI_DEVICE_PATH_PROTOCOL
*FirstDevicePath
,
209 IN CONST EFI_DEVICE_PATH_PROTOCOL
*SecondDevicePath
216 EFI_DEVICE_PATH_PROTOCOL
*NewDevicePath
;
217 EFI_DEVICE_PATH_PROTOCOL
*DevicePath2
;
219 ASSERT (FirstDevicePath
!= NULL
&& SecondDevicePath
!= NULL
);
222 // Allocate space for the combined device path. It only has one end node of
223 // length EFI_DEVICE_PATH_PROTOCOL
225 Size1
= SmmGetDevicePathSize (FirstDevicePath
);
226 Size2
= SmmGetDevicePathSize (SecondDevicePath
);
227 Size
= Size1
+ Size2
- sizeof (EFI_DEVICE_PATH_PROTOCOL
);
229 Status
= (mBS
->AllocatePool
) (EfiBootServicesData
, Size
, (VOID
**) &NewDevicePath
);
231 if (EFI_SUCCESS
== Status
) {
232 (mBS
->CopyMem
) ((VOID
*) NewDevicePath
, (VOID
*) FirstDevicePath
, Size1
);
234 // Over write Src1 EndNode and do the copy
236 DevicePath2
= (EFI_DEVICE_PATH_PROTOCOL
*) ((CHAR8
*) NewDevicePath
+ (Size1
- sizeof (EFI_DEVICE_PATH_PROTOCOL
)));
237 (mBS
->CopyMem
) ((VOID
*) DevicePath2
, (VOID
*) SecondDevicePath
, Size2
);
240 return NewDevicePath
;
244 Unload function that is registered in the LoadImage protocol. It un-installs
245 protocols produced and deallocates pool used by the driver. Called by the core
246 when unloading the driver.
248 @param ImageHandle ImageHandle of the unloaded driver
250 @return Status of the ProcessModuleUnloadList.
255 _DriverUnloadHandler (
256 EFI_HANDLE ImageHandle
262 // Call the unload handlers for all the modules
264 Status
= ProcessModuleUnloadList (ImageHandle
);
267 // If the driver specific unload handler does not return an error, then call all of the
268 // library destructors. If the unload handler returned an error, then the driver can not be
269 // unloaded, and the library destructors should not be called
271 if (!EFI_ERROR (Status
)) {
273 // NOTE: To allow passing in gST here, any library instance having a destructor
274 // must depend on EfiDriverLib
279 // Return the status from the driver specific unload handler
284 EFI_DRIVER_ENTRY_POINT (_ModuleEntryPoint
);
287 // Module Entry Point
289 #ifdef __EDKII_GLUE_MODULE_ENTRY_POINT__
292 __EDKII_GLUE_MODULE_ENTRY_POINT__ (
293 EFI_HANDLE ImageHandle
,
294 EFI_SYSTEM_TABLE
*SystemTable
299 Enrty point to DXE SMM Driver.
301 @param ImageHandle ImageHandle of the loaded driver.
302 @param SystemTable Pointer to the EFI System Table.
304 @retval EFI_SUCCESS One or more of the drivers returned a success code.
305 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
311 IN EFI_HANDLE ImageHandle
,
312 IN EFI_SYSTEM_TABLE
*SystemTable
316 EFI_LOADED_IMAGE_PROTOCOL
*LoadedImage
;
317 EFI_SMM_BASE_PROTOCOL
*SmmBase
;
319 EFI_DEVICE_PATH_PROTOCOL
*CompleteFilePath
;
320 EFI_DEVICE_PATH_PROTOCOL
*ImageDevicePath
;
324 // Call constructor for all libraries
326 ProcessLibraryConstructorList (ImageHandle
, SystemTable
);
329 // Cache a pointer to the Boot Services Table
331 mBS
= SystemTable
->BootServices
;
334 // Retrieve SMM Base Protocol
336 Status
= mBS
->LocateProtocol (
337 &gEfiSmmBaseProtocolGuid
,
341 ASSERT_EFI_ERROR (Status
);
344 // Check to see if we are already in SMM
346 SmmBase
->InSmm (SmmBase
, &InSmm
);
353 // Retrieve the Loaded Image Protocol
355 Status
= mBS
->HandleProtocol (
357 &gEfiLoadedImageProtocolGuid
,
360 ASSERT_EFI_ERROR (Status
);
363 // Install the unload handler
365 Status
= mBS
->HandleProtocol (
367 &gEfiLoadedImageProtocolGuid
,
368 (VOID
**)&LoadedImage
370 ASSERT_EFI_ERROR (Status
);
371 LoadedImage
->Unload
= _DriverUnloadHandler
;
374 // Retrieve the Device Path Protocol from the DeviceHandle tha this driver was loaded from
376 Status
= mBS
->HandleProtocol (
377 LoadedImage
->DeviceHandle
,
378 &gEfiDevicePathProtocolGuid
,
379 (VOID
*)&ImageDevicePath
381 ASSERT_EFI_ERROR (Status
);
384 // Build the full device path to the currently execuing image
386 CompleteFilePath
= SmmAppendDevicePath (ImageDevicePath
, LoadedImage
->FilePath
);
389 // Load the image in memory to SMRAM; it will automatically generate the
392 Status
= SmmBase
->Register (SmmBase
, CompleteFilePath
, NULL
, 0, &Handle
, FALSE
);
393 ASSERT_EFI_ERROR (Status
);
397 // Call the list of driver entry points
399 #ifdef __EDKII_GLUE_MODULE_ENTRY_POINT__
400 Status
= (__EDKII_GLUE_MODULE_ENTRY_POINT__ (ImageHandle
, SystemTable
));
402 Status
= EFI_SUCCESS
;
406 if (EFI_ERROR (Status
)) {
407 ProcessLibraryDestructorList (ImageHandle
, SystemTable
);
414 Enrty point wrapper of DXE SMM Driver.
416 @param ImageHandle ImageHandle of the loaded driver.
417 @param SystemTable Pointer to the EFI System Table.
419 @retval EFI_SUCCESS One or more of the drivers returned a success code.
420 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
426 IN EFI_HANDLE ImageHandle
,
427 IN EFI_SYSTEM_TABLE
*SystemTable
430 return _ModuleEntryPoint (ImageHandle
, SystemTable
);
434 // Guids not present in R8.6 code base
438 // Protocol/Arch Protocol GUID globals
440 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiDriverConfigurationProtocolGuid
= { 0xbfd7dc1d, 0x24f1, 0x40d9, { 0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe } };
441 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUefiDriverDiagnosticsProtocolGuid
= { 0x4d330321, 0x025f, 0x4aac, { 0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63 } };
442 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpProtocolGuid
= { 0xf4b427bb, 0xba21, 0x4f16, { 0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c } };
443 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiArpServiceBindingProtocolGuid
= { 0xf44c00ee, 0x1f2c, 0x4a00, { 0xaa, 0x09, 0x1c, 0x9f, 0x3e, 0x08, 0x00, 0xa3 } };
444 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ProtocolGuid
= { 0x8a219718, 0x4ef5, 0x4761, { 0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56 } };
445 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDhcp4ServiceBindingProtocolGuid
= { 0x9d9a39d8, 0xbd42, 0x4a73, { 0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80 } };
446 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ProtocolGuid
= { 0x41d94cd2, 0x35b6, 0x455a, { 0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd } };
447 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ServiceBindingProtocolGuid
= { 0xc51711e7, 0xb4bf, 0x404a, { 0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4 } };
448 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIp4ConfigProtocolGuid
= { 0x3b95aa31, 0x3793, 0x434b, { 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e } };
449 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid
= { 0x3b95aa31, 0x3793, 0x434b, { 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e } };
450 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid
= { 0xf36ff770, 0xa7e1, 0x42cf, { 0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c } };
451 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMtftp4ProtocolGuid
= { 0x3ad9df29, 0x4501, 0x478d, { 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 } };
452 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMtftp4ServiceBindingProtocolGuid
= { 0x2FE800BE, 0x8F01, 0x4aa6, { 0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F } };
453 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ProtocolGuid
= { 0x65530BC7, 0xA359, 0x410f, { 0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62 } };
454 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTcp4ServiceBindingProtocolGuid
= { 0x00720665, 0x67EB, 0x4a99, { 0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9 } };
455 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUdp4ProtocolGuid
= { 0x3ad9df29, 0x4501, 0x478d, { 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3 } };
456 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUdp4ServiceBindingProtocolGuid
= { 0x83f01464, 0x99bd, 0x45e5, { 0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6 } };
457 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationInfoProtocolGuid
= { 0x7671d9d0, 0x53db, 0x4173, { 0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7 } };
458 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathFromTextProtocolGuid
= { 0x5c99a21, 0xc70f, 0x4ad2, { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } };
459 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid
= { 0x8b843e20, 0x8132, 0x4852, { 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c } };
460 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathUtilitiesProtocolGuid
= { 0x379be4e, 0xd706, 0x437d, { 0xb0, 0x37, 0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4 } };
461 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashProtocolGuid
= { 0xc5184932, 0xdba5, 0x46db, { 0xa5, 0xba, 0xcc, 0x0b, 0xda, 0x9c, 0x14, 0x35 } };
462 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashServiceBindingProtocolGuid
= { 0x42881c98, 0xa4f3, 0x44b0, { 0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd } };
463 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiIScsiInitiatorNameProtocolGuid
= { 0xa6a72875, 0x2962, 0x4c18, { 0x9f, 0x46, 0x8d, 0xa6, 0x44, 0xcc, 0xfe, 0x00 } };
464 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiExtScsiPassThruProtocolGuid
= { 0x1d3de7f0, 0x0807, 0x424f, { 0xaa, 0x69, 0x11, 0xa5, 0x4e, 0x19, 0xa4, 0x6f } };
465 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTapeIoProtocolGuid
= { 0x1e93e633, 0xd65a, 0x459e, { 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } };
466 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUsb2HcProtocolGuid
= { 0x3e745226, 0x9818, 0x45b6, { 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } };
475 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocBspStoreGuid
= { 0x564b33cd, 0xc92a, 0x4593, { 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22 } };
476 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocStackGuid
= { 0x4ed4bf27, 0x4092, 0x42e9, { 0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x00, 0xc9, 0xbd } };
477 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobMemoryAllocModuleGuid
= { 0xf8e21975, 0x0899, 0x4f58, { 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a } };
478 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationChapRadiusGuid
= { 0xd6062b50, 0x15ca, 0x11da, { 0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } };
479 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAuthenticationChapLocalGuid
= { 0xc280c73e, 0x15ca, 0x11da, { 0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } };
480 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha1Guid
= { 0x2ae9d80f, 0x3fb2, 0x4095, { 0xb7, 0xb1, 0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6 } };
481 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha224Guid
= { 0x8df01a06, 0x9bd5, 0x4bf7, { 0xb0, 0x21, 0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b } };
482 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha256Guid
= { 0x51aa59de, 0xfdf2, 0x4ea3, { 0xbc, 0x63, 0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9 } };
483 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha384Guid
= { 0xefa96432, 0xde33, 0x4dd2, { 0xae, 0xe6, 0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a } };
484 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha512Guid
= { 0xcaa4381e, 0x750c, 0x4770, { 0xb8, 0x70, 0x7a, 0x23, 0xb4, 0xe4, 0x21, 0x30 } };
485 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmMD5Guid
= { 0xaf7c79c, 0x65b5, 0x4319, { 0xb0, 0xae, 0x44, 0xec, 0x48, 0x4e, 0x4a, 0xd7 } };
486 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gBootObjectAuthorizationParmsetGuid
= { 0xedd35e31, 0x7b9, 0x11d2, { 0x83, 0xa3, 0x00, 0xa0, 0xc9, 0x1f, 0xad, 0xcf } };
487 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gSmmCommunicateHeaderGuid
= { 0xf328e36c, 0x23b6, 0x4a95, { 0x85, 0x4b, 0x32, 0xe1, 0x95, 0x34, 0xcd, 0x75 } };
488 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCapsuleGuid
= { 0x3B6686BD, 0x0D76, 0x4030, { 0xB7, 0x0E, 0xB5, 0x51, 0x9E, 0x2F, 0xC5, 0xA0 } };
489 GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiConfigFileNameGuid
= { 0x98B8D59B, 0xE8BA, 0x48EE, { 0x98, 0xDD, 0xC2, 0x95, 0x39, 0x2F, 0x1E, 0xDB } };