VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrMisc.h@ 80721

Last change on this file since 80721 was 80721, checked in by vboxsync, 5 years ago

Devices/EFI/FirmwareNew: Start upgrade process to edk2-stable201908 (compiles on Windows and works to some extent), bugref:4643

  • Property svn:eol-style set to native
File size: 7.8 KB
Line 
1/** @file
2 The Miscellaneous Routines for WiFi Connection Manager.
3
4 Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef __EFI_WIFI_MGR_MISC_H__
11#define __EFI_WIFI_MGR_MISC_H__
12
13/**
14 Empty function for event process function.
15
16 @param[in] Event The Event needs to be processed
17 @param[in] Context The context of the event
18
19**/
20VOID
21EFIAPI
22WifiMgrInternalEmptyFunction (
23 IN EFI_EVENT Event,
24 IN VOID *Context
25 );
26
27/**
28 Convert the mac address into a hexadecimal encoded ":" seperated string.
29
30 @param[in] Mac The mac address
31 @param[in] StrSize The size, in bytes, of the output buffer specified by Str
32 @param[out] Str The storage to return the mac string
33
34**/
35VOID
36WifiMgrMacAddrToStr (
37 IN EFI_80211_MAC_ADDRESS *Mac,
38 IN UINT32 StrSize,
39 OUT CHAR16 *Str
40 );
41
42/**
43 Read private key file to buffer.
44
45 @param[in] FileContext The file context of private key file.
46 @param[out] PrivateKeyDataAddr The buffer address to restore private key file, should be
47 freed by caller.
48 @param[out] PrivateKeyDataSize The size of read private key file.
49
50 @retval EFI_SUCCESS Successfully read the private key file.
51 @retval EFI_INVALID_PARAMETER One or more of the parameters is invalid.
52
53**/
54EFI_STATUS
55WifiMgrReadFileToBuffer (
56 IN WIFI_MGR_FILE_CONTEXT *FileContext,
57 OUT VOID **PrivateKeyDataAddr,
58 OUT UINTN *PrivateKeyDataSize
59 );
60
61
62/**
63 Get the Nic data by the NicIndex.
64
65 @param[in] Private The pointer to the global private data structure.
66 @param[in] NicIndex The index indicates the position of wireless NIC.
67
68 @return Pointer to the Nic data, or NULL if not found.
69
70**/
71WIFI_MGR_DEVICE_DATA *
72WifiMgrGetNicByIndex (
73 IN WIFI_MGR_PRIVATE_DATA *Private,
74 IN UINT32 NicIndex
75 );
76
77/**
78 Find a network profile through its' SSId and securit type, and the SSId is an unicode string.
79
80 @param[in] SSId The target network's SSId.
81 @param[in] SecurityType The target network's security type.
82 @param[in] ProfileList The profile list on a Nic.
83
84 @return Pointer to a network profile, or NULL if not found.
85
86**/
87WIFI_MGR_NETWORK_PROFILE *
88WifiMgrGetProfileByUnicodeSSId (
89 IN CHAR16 *SSId,
90 IN UINT8 SecurityType,
91 IN LIST_ENTRY *ProfileList
92 );
93
94/**
95 Find a network profile through its' SSId and securit type, and the SSId is an ascii string.
96
97 @param[in] SSId The target network's SSId.
98 @param[in] SecurityType The target network's security type.
99 @param[in] ProfileList The profile list on a Nic.
100
101 @return Pointer to a network profile, or NULL if not found.
102
103**/
104WIFI_MGR_NETWORK_PROFILE *
105WifiMgrGetProfileByAsciiSSId (
106 IN CHAR8 *SSId,
107 IN UINT8 SecurityType,
108 IN LIST_ENTRY *ProfileList
109 );
110
111/**
112 Find a network profile through its' profile index.
113
114 @param[in] ProfileIndex The target network's profile index.
115 @param[in] ProfileList The profile list on a Nic.
116
117 @return Pointer to a network profile, or NULL if not found.
118
119**/
120WIFI_MGR_NETWORK_PROFILE *
121WifiMgrGetProfileByProfileIndex (
122 IN UINT32 ProfileIndex,
123 IN LIST_ENTRY *ProfileList
124 );
125
126/**
127 To test if the AKMSuite is in supported AKMSuite list.
128
129 @param[in] SupportedAKMSuiteCount The count of the supported AKMSuites.
130 @param[in] SupportedAKMSuiteList The supported AKMSuite list.
131 @param[in] AKMSuite The AKMSuite to be tested.
132
133 @return True if this AKMSuite is supported, or False if not.
134
135**/
136BOOLEAN
137WifiMgrSupportAKMSuite (
138 IN UINT16 SupportedAKMSuiteCount,
139 IN UINT32 *SupportedAKMSuiteList,
140 IN UINT32 *AKMSuite
141 );
142
143/**
144 To check if the CipherSuite is in supported CipherSuite list.
145
146 @param[in] SupportedCipherSuiteCount The count of the supported CipherSuites.
147 @param[in] SupportedCipherSuiteList The supported CipherSuite list.
148 @param[in] CipherSuite The CipherSuite to be tested.
149
150 @return True if this CipherSuite is supported, or False if not.
151
152**/
153BOOLEAN
154WifiMgrSupportCipherSuite (
155 IN UINT16 SupportedCipherSuiteCount,
156 IN UINT32 *SupportedCipherSuiteList,
157 IN UINT32 *CipherSuite
158 );
159
160/**
161 Check an AKM suite list and a Cipher suite list to see if one or more AKM suites or Cipher suites
162 are supported and find the matchable security type.
163
164 @param[in] AKMList The target AKM suite list to be checked.
165 @param[in] CipherList The target Cipher suite list to be checked
166 @param[in] Nic The Nic to operate, contains the supported AKMSuite list
167 and supported CipherSuite list
168 @param[out] SecurityType To identify a security type from the AKM suite list and
169 Cipher suite list
170 @param[out] AKMSuiteSupported To identify if this security type is supported. If it is
171 NULL, overcome this field
172 @param[out] CipherSuiteSupported To identify if this security type is supported. If it is
173 NULL, overcome this field
174
175 @retval EFI_SUCCESS This operation has completed successfully.
176 @retval EFI_INVALID_PARAMETER No Nic found or the suite list is null.
177
178**/
179EFI_STATUS
180WifiMgrCheckRSN (
181 IN EFI_80211_AKM_SUITE_SELECTOR *AKMList,
182 IN EFI_80211_CIPHER_SUITE_SELECTOR *CipherList,
183 IN WIFI_MGR_DEVICE_DATA *Nic,
184 OUT UINT8 *SecurityType,
185 OUT BOOLEAN *AKMSuiteSupported,
186 OUT BOOLEAN *CipherSuiteSupported
187 );
188
189/**
190 To get the security type for a certain AKMSuite and CipherSuite.
191
192 @param[in] AKMSuite An certain AKMSuite.
193 @param[in] CipherSuite An certain CipherSuite.
194
195 @return a security type if found, or SECURITY_TYPE_UNKNOWN.
196
197**/
198UINT8
199WifiMgrGetSecurityType (
200 IN UINT32 *AKMSuite,
201 IN UINT32 *CipherSuite
202 );
203
204/**
205 Get supported AKMSuites and CipherSuites from supplicant.
206
207 @param[in] Nic The Nic to operate.
208
209 @retval EFI_SUCCESS Get the supported suite list successfully.
210 @retval EFI_INVALID_PARAMETER No Nic found or supplicant is NULL.
211
212**/
213EFI_STATUS
214WifiMgrGetSupportedSuites (
215 IN WIFI_MGR_DEVICE_DATA *Nic
216 );
217
218/**
219 Clean secrets from a network profile.
220
221 @param[in] Profile The profile to be cleanned.
222
223**/
224VOID
225WifiMgrCleanProfileSecrets (
226 IN WIFI_MGR_NETWORK_PROFILE *Profile
227 );
228
229/**
230 Free all network profiles in a profile list.
231
232 @param[in] ProfileList The profile list to be freed.
233
234**/
235VOID
236WifiMgrFreeProfileList (
237 IN LIST_ENTRY *ProfileList
238 );
239
240/**
241 Free user configured hidden network list.
242
243 @param[in] HiddenList The hidden network list to be freed.
244
245**/
246VOID
247WifiMgrFreeHiddenList (
248 IN LIST_ENTRY *HiddenList
249 );
250
251/**
252 Free the resources of a config token.
253
254 @param[in] ConfigToken The config token to be freed.
255
256**/
257VOID
258WifiMgrFreeToken (
259 IN WIFI_MGR_MAC_CONFIG_TOKEN *ConfigToken
260 );
261
262#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette