]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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
d1050b9d
MK
27 EFI_STATUS Status;\r
28 TLS_AUTH_CONFIG_PRIVATE_DATA *PrivateData;\r
7618784b
HW
29\r
30 Status = gBS->HandleProtocol (\r
31 ImageHandle,\r
32 &gEfiCallerIdGuid,\r
d1050b9d 33 (VOID **)&PrivateData\r
7618784b
HW
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
d1050b9d 73 TLS_AUTH_CONFIG_PRIVATE_DATA *PrivateData;\r
7618784b
HW
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