2 The module entry point for SecureBoot configuration module.
4 Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
9 #include "SecureBootConfigImpl.h"
12 The entry point for SecureBoot configuration driver.
14 @param[in] ImageHandle The image handle of the driver.
15 @param[in] SystemTable The system table.
17 @retval EFI_ALREADY_STARTED The driver already exists in system.
18 @retval EFI_OUT_OF_RESOURCES Fail to execute entry point due to lack of resources.
19 @retval EFI_SUCCESS All the related protocols are installed on the driver.
20 @retval Others Fail to get the SecureBootEnable variable.
25 SecureBootConfigDriverEntryPoint (
26 IN EFI_HANDLE ImageHandle
,
27 IN EFI_SYSTEM_TABLE
*SystemTable
31 SECUREBOOT_CONFIG_PRIVATE_DATA
*PrivateData
;
34 // If already started, return.
36 Status
= gBS
->OpenProtocol (
42 EFI_OPEN_PROTOCOL_TEST_PROTOCOL
44 if (!EFI_ERROR (Status
)) {
45 return EFI_ALREADY_STARTED
;
49 // Create a private data structure.
51 PrivateData
= AllocateCopyPool (sizeof (SECUREBOOT_CONFIG_PRIVATE_DATA
), &mSecureBootConfigPrivateDateTemplate
);
52 if (PrivateData
== NULL
) {
53 return EFI_OUT_OF_RESOURCES
;
57 // Install SecureBoot configuration form
59 Status
= InstallSecureBootConfigForm (PrivateData
);
60 if (EFI_ERROR (Status
)) {
65 // Install private GUID.
67 Status
= gBS
->InstallMultipleProtocolInterfaces (
74 if (EFI_ERROR (Status
)) {
81 if (PrivateData
!= NULL
) {
82 UninstallSecureBootConfigForm (PrivateData
);
89 Unload the SecureBoot configuration form.
91 @param[in] ImageHandle The driver's image handle.
93 @retval EFI_SUCCESS The SecureBoot configuration form is unloaded.
94 @retval Others Failed to unload the form.
99 SecureBootConfigDriverUnload (
100 IN EFI_HANDLE ImageHandle
104 SECUREBOOT_CONFIG_PRIVATE_DATA
*PrivateData
;
106 Status
= gBS
->HandleProtocol (
109 (VOID
**)&PrivateData
111 if (EFI_ERROR (Status
)) {
115 ASSERT (PrivateData
->Signature
== SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE
);
117 gBS
->UninstallMultipleProtocolInterfaces (
124 UninstallSecureBootConfigForm (PrivateData
);