]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c
ArmPkg: only attempt buildin MmCommunicationDxe for AArch64
[mirror_edk2.git] / NetworkPkg / TlsAuthConfigDxe / TlsAuthConfigDxe.c
CommitLineData
7618784b
HW
1/** @file\r
2 The DriverEntryPoint for TlsAuthConfigDxe driver.\r
3\r
f75a7f56 4 Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>\r
7618784b 5\r
ecf98fbc 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
7618784b
HW
7\r
8**/\r
9\r
10#include "TlsAuthConfigImpl.h"\r
11\r
12/**\r
13 Unloads an image.\r
14\r
15 @param ImageHandle Handle that identifies the image to be unloaded.\r
16\r
17 @retval EFI_SUCCESS The image has been unloaded.\r
18 @retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.\r
19\r
20**/\r
21EFI_STATUS\r
22EFIAPI\r
23TlsAuthConfigDxeUnload (\r
24 IN EFI_HANDLE ImageHandle\r
25 )\r
26{\r
27 EFI_STATUS Status;\r
28 TLS_AUTH_CONFIG_PRIVATE_DATA *PrivateData;\r
29\r
30 Status = gBS->HandleProtocol (\r
31 ImageHandle,\r
32 &gEfiCallerIdGuid,\r
33 (VOID **) &PrivateData\r
34 );\r
35 if (EFI_ERROR (Status)) {\r
36 return Status;\r
37 }\r
38\r
39 ASSERT (PrivateData->Signature == TLS_AUTH_CONFIG_PRIVATE_DATA_SIGNATURE);\r
40\r
41 gBS->UninstallMultipleProtocolInterfaces (\r
bf7249df 42 ImageHandle,\r
7618784b
HW
43 &gEfiCallerIdGuid,\r
44 PrivateData,\r
45 NULL\r
46 );\r
47\r
48 TlsAuthConfigFormUnload (PrivateData);\r
49\r
50 return EFI_SUCCESS;\r
51}\r
52\r
53/**\r
54 This is the declaration of an EFI image entry point. This entry point is\r
55 the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including\r
56 both device drivers and bus drivers.\r
57\r
58 @param ImageHandle The firmware allocated handle for the UEFI image.\r
59 @param SystemTable A pointer to the EFI System Table.\r
60\r
61 @retval EFI_SUCCESS The operation completed successfully.\r
62 @retval Others An unexpected error occurred.\r
63**/\r
64EFI_STATUS\r
65EFIAPI\r
66TlsAuthConfigDxeDriverEntryPoint (\r
67 IN EFI_HANDLE ImageHandle,\r
68 IN EFI_SYSTEM_TABLE *SystemTable\r
69 )\r
70{\r
71 EFI_STATUS Status;\r
72\r
73 TLS_AUTH_CONFIG_PRIVATE_DATA *PrivateData;\r
74\r
75 PrivateData = NULL;\r
76\r
77 //\r
78 // If already started, return.\r
79 //\r
80 Status = gBS->OpenProtocol (\r
81 ImageHandle,\r
82 &gEfiCallerIdGuid,\r
83 NULL,\r
84 ImageHandle,\r
85 ImageHandle,\r
86 EFI_OPEN_PROTOCOL_TEST_PROTOCOL\r
87 );\r
88 if (!EFI_ERROR (Status)) {\r
89 return EFI_ALREADY_STARTED;\r
90 }\r
91\r
92 //\r
93 // Initialize the private data structure.\r
94 //\r
95 PrivateData = AllocateZeroPool (sizeof (TLS_AUTH_CONFIG_PRIVATE_DATA));\r
96 if (PrivateData == NULL) {\r
97 return EFI_OUT_OF_RESOURCES;\r
98 }\r
99\r
100 //\r
101 // Initialize the HII configuration form.\r
102 //\r
103 Status = TlsAuthConfigFormInit (PrivateData);\r
104 if (EFI_ERROR (Status)) {\r
105 goto ON_ERROR;\r
106 }\r
107\r
108 //\r
109 // Install private GUID.\r
110 //\r
111 Status = gBS->InstallMultipleProtocolInterfaces (\r
112 &ImageHandle,\r
113 &gEfiCallerIdGuid,\r
114 PrivateData,\r
115 NULL\r
116 );\r
117 if (EFI_ERROR (Status)) {\r
118 goto ON_ERROR;\r
119 }\r
120\r
121 return EFI_SUCCESS;\r
122\r
123ON_ERROR:\r
124 TlsAuthConfigFormUnload (PrivateData);\r
f75a7f56 125\r
7618784b
HW
126 return Status;\r
127}\r
128\r