From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../WifiConnectionMgrDxe.h | 321 +++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h (limited to 'src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h') diff --git a/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h b/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h new file mode 100644 index 00000000..b3f35bec --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrDxe.h @@ -0,0 +1,321 @@ +/** @file + The miscellaneous structure definitions for WiFi connection driver. + + Copyright (c) 2019, Intel Corporation. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __EFI_WIFI_MGR_DXE_H__ +#define __EFI_WIFI_MGR_DXE_H__ + +#include + +// +// Libraries +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// +// UEFI Driver Model Protocols +// +#include +#include +#include +#include +#include + +// +// Consumed Protocols +// +#include +#include +#include +#include +#include +#include + +// +// Produced Protocols +// +#include + +// +// Guids +// +#include +#include +#include + +// +// NvData struct definition +// +#include "WifiConnectionMgrConfigNVDataStruct.h" +#include "WifiConnectionMgrConfig.h" +#include "EapContext.h" +#include "WifiConnectionMgrConfigHii.h" + +// +// Driver Version +// +#define WIFI_MGR_DXE_VERSION 0xb + +#define OUI_IEEE_80211I 0xAC0F00 + +typedef enum { + Ieee80211PairwiseCipherSuiteUseGroupCipherSuite = 0, + Ieee80211PairwiseCipherSuiteWEP40 = 1, + Ieee80211PairwiseCipherSuiteTKIP = 2, + Ieee80211PairwiseCipherSuiteCCMP = 4, + Ieee80211PairwiseCipherSuiteWEP104 = 5, + Ieee80211PairwiseCipherSuiteBIP = 6, + //... +} IEEE_80211_PAIRWISE_CIPHER_SUITE; + +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_USE_GROUP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteUseGroupCipherSuite << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_WEP40 (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteWEP40 << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_TKIP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteTKIP << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_CCMP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteCCMP << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_WEP104 (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteWEP104 << 24)) +#define IEEE_80211_PAIRWISE_CIPHER_SUITE_BIP (OUI_IEEE_80211I | (Ieee80211PairwiseCipherSuiteBIP << 24)) + +typedef enum { + Ieee80211AkmSuite8021XOrPMKSA = 1, + Ieee80211AkmSuitePSK = 2, + Ieee80211AkmSuite8021XOrPMKSASHA256 = 5, + Ieee80211AkmSuitePSKSHA256 = 6 + //... +} IEEE_80211_AKM_SUITE; + +#define IEEE_80211_AKM_SUITE_8021X_OR_PMKSA (OUI_IEEE_80211I | (Ieee80211AkmSuite8021XOrPMKSA << 24)) +#define IEEE_80211_AKM_SUITE_PSK (OUI_IEEE_80211I | (Ieee80211AkmSuitePSK << 24)) +#define IEEE_80211_AKM_SUITE_8021X_OR_PMKSA_SHA256 (OUI_IEEE_80211I | (Ieee80211AkmSuite8021XOrPMKSASHA256 << 24)) +#define IEEE_80211_AKM_SUITE_PSK_SHA256 (OUI_IEEE_80211I | (Ieee80211AkmSuitePSKSHA256 << 24)) + +// +// Protocol instances +// +extern EFI_DRIVER_BINDING_PROTOCOL gWifiMgrDxeDriverBinding; +extern EFI_COMPONENT_NAME2_PROTOCOL gWifiMgrDxeComponentName2; +extern EFI_COMPONENT_NAME_PROTOCOL gWifiMgrDxeComponentName; +extern EFI_HII_CONFIG_ACCESS_PROTOCOL gWifiMgrDxeHiiConfigAccess; + +// +// Private Context Data Structure +// +typedef enum { + WifiMgrDisconnected, + WifiMgrConnectingToAp, + WifiMgrConnectedToAp, + WifiMgrDisconnectingToAp, + WifiMgrConnectStateMaximum +} WIFI_MGR_CONNECT_STATE; + +typedef enum { + WifiMgrScanFinished, + WifiMgrScanning, + WifiMgrScanStateMaximum +} WIFI_MGR_SCAN_STATE; + +#define WIFI_SCAN_FREQUENCY 30 + +typedef struct _WIFI_MGR_SUPPORTED_SUITES { + EFI_80211_AKM_SUITE_SELECTOR *SupportedAKMSuites; + EFI_80211_CIPHER_SUITE_SELECTOR *SupportedSwCipherSuites; + EFI_80211_CIPHER_SUITE_SELECTOR *SupportedHwCipherSuites; +} WIFI_MGR_SUPPORTED_SUITES; + +#define EFI_WIFIMGR_PRIVATE_GUID \ + { \ + 0x99b7c019, 0x4789, 0x4829, { 0xa7, 0xbd, 0x0d, 0x4b, 0xaa, 0x62, 0x28, 0x72 } \ + } + +typedef struct _WIFI_MGR_PRIVATE_DATA WIFI_MGR_PRIVATE_DATA; + +typedef struct _WIFI_MGR_PRIVATE_PROTOCOL { + UINT32 Reserved; +} WIFI_MGR_PRIVATE_PROTOCOL; + +typedef struct _WIFI_MGR_FILE_CONTEXT { + EFI_FILE_HANDLE FHandle; + UINT16 *FileName; +} WIFI_MGR_FILE_CONTEXT; + +typedef enum { + FileTypeCACert, + FileTypeClientCert, + FileTypeMax +} WIFI_MGR_FILE_TYPE; + +typedef struct { + UINT32 Signature; + EFI_HANDLE DriverHandle; + EFI_HANDLE ControllerHandle; + EFI_EVENT TickTimer; + WIFI_MGR_PRIVATE_DATA *Private; + + // + // Pointers to consumed protocols + // + EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL *Wmp; + EFI_SUPPLICANT_PROTOCOL *Supplicant; + EFI_EAP_CONFIGURATION_PROTOCOL *EapConfig; + + // + // Produced protocols + // + WIFI_MGR_PRIVATE_PROTOCOL WifiMgrIdentifier; + + // + // Private functions and data fields + // + LIST_ENTRY Link; // Link to the NicList in global private data structure. + UINT32 NicIndex; + EFI_80211_MAC_ADDRESS MacAddress; + WIFI_MGR_SUPPORTED_SUITES SupportedSuites; + EFI_ADAPTER_INFO_MEDIA_STATE LastLinkState; + + // + // The network is currently connected, connecting or disconnecting. + // Only one network can be operated at one time. + // + WIFI_MGR_NETWORK_PROFILE *CurrentOperateNetwork; + WIFI_MGR_NETWORK_PROFILE *ConnectPendingNetwork; + BOOLEAN HasDisconnectPendingNetwork; + + // + //Profile related data fields + // + LIST_ENTRY ProfileList; // List of WIFI_MGR_NETWORK_PROFILE + UINT32 AvailableCount; + UINT32 MaxProfileIndex; + WIFI_MGR_NETWORK_PROFILE *UserSelectedProfile; + + // + // Data fields for Hii functionlity + // + BOOLEAN OneTimeScanRequest; + BOOLEAN OneTimeConnectRequest; + BOOLEAN OneTimeDisconnectRequest; + WIFI_MGR_SCAN_STATE ScanState; + UINTN ScanTickTime; + WIFI_MGR_CONNECT_STATE ConnectState; + BOOLEAN ConnectStateChanged; +} WIFI_MGR_DEVICE_DATA; + +#define WIFI_MGR_DEVICE_DATA_SIGNATURE SIGNATURE_32 ('W','M','D','D') + +#define WIFI_MGR_DEVICE_DATA_FROM_IDENTIFIER(Identifier) \ + CR ( \ + Identifier, \ + WIFI_MGR_DEVICE_DATA, \ + WifiMgrIdentifier, \ + WIFI_MGR_DEVICE_DATA_SIGNATURE \ + ) + +typedef struct { + UINT32 Signature; + LIST_ENTRY Link; + CHAR16 SSId[SSID_STORAGE_SIZE]; +} WIFI_HIDDEN_NETWORK_DATA; + +#define WIFI_MGR_HIDDEN_NETWORK_SIGNATURE SIGNATURE_32 ('W','M','H','N') + +#define WIFI_MGR_HIDDEN_NETWORK_FROM_IDENTIFIER(Identifier) \ + CR ( \ + Identifier, \ + WIFI_HIDDEN_NETWORK_DATA, \ + WifiMgrIdentifier, \ + WIFI_MGR_HIDDEN_NETWORK_SIGNATURE \ + ) + +// +// Global private data struct +// +struct _WIFI_MGR_PRIVATE_DATA { + + UINT32 Signature; + EFI_HANDLE DriverHandle; + EFI_HII_HANDLE RegisteredHandle; + EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; + + UINT32 NicCount; + LIST_ENTRY NicList; + WIFI_MGR_DEVICE_DATA *CurrentNic; + + // + // Data fields for Hii functionlity + // + EFI_EVENT NetworkListRefreshEvent; // Event to refresh the network list form + EFI_EVENT ConnectFormRefreshEvent; // Event to refresh the connect form + EFI_EVENT MainPageRefreshEvent; // Event to refresh the main page + + // + //User Input Record + // + UINT8 SecurityType; + UINT8 EapAuthMethod; + UINT8 EapSecondAuthMethod; + CHAR16 EapIdentity[EAP_IDENTITY_SIZE]; + + WIFI_MGR_FILE_CONTEXT *FileContext; + WIFI_MGR_FILE_TYPE FileType; + + UINT32 HiddenNetworkCount; + LIST_ENTRY HiddenNetworkList; +}; + +#define WIFI_MGR_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('W','M','P','D') + +#define WIFI_MGR_PRIVATE_DATA_FROM_CONFIG_ACCESS(This) \ + CR ( \ + This, \ + WIFI_MGR_PRIVATE_DATA, \ + ConfigAccess, \ + WIFI_MGR_PRIVATE_DATA_SIGNATURE \ + ) +extern WIFI_MGR_PRIVATE_DATA *mPrivate; + +typedef enum { + TokenTypeGetNetworksToken, + TokenTypeConnectNetworkToken, + TokenTypeDisconnectNetworkToken, + TokenTypeMax, +} WIFI_MGR_MAC_CONFIG_TOKEN_TYPE; + +typedef union { + EFI_80211_GET_NETWORKS_TOKEN *GetNetworksToken; + EFI_80211_CONNECT_NETWORK_TOKEN *ConnectNetworkToken; + EFI_80211_DISCONNECT_NETWORK_TOKEN *DisconnectNetworkToken; +} MAC_CONNECTION2_ADAPTER_TOKEN; + +typedef struct { + WIFI_MGR_DEVICE_DATA *Nic; + WIFI_MGR_MAC_CONFIG_TOKEN_TYPE Type; + MAC_CONNECTION2_ADAPTER_TOKEN Token; +} WIFI_MGR_MAC_CONFIG_TOKEN; + +// +// Include files with function prototypes +// +#include "WifiConnectionMgrDriverBinding.h" +#include "WifiConnectionMgrImpl.h" +#include "WifiConnectionMgrComponentName.h" +#include "WifiConnectionMgrHiiConfigAccess.h" +#include "WifiConnectionMgrMisc.h" +#include "WifiConnectionMgrFileUtil.h" + +#endif -- cgit v1.2.3