NetworkPkg: Add WiFi Connection Manager to NetworkPkg

* V2

* Remove Arch dependency in Inf file
* Add a global guid for WiFi formset and set other guids to module levels
* Open supplicant and EapConfig by BY_DRIVER
* Remove token free function to avoid potential NULL reference
* Update WifiMgrUpdateConnectMessage() to only display message for Current Nic
* Fix the potential NULL reference in AIP call

* REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1492

Add WiFi Connection Manager in NetworkPkg to provide UI for users to scan
networks, connect or disconnect to networks.

This connection manager won't include the UNDI driver, supplicant driver,
or other device specific drivers and is therefor not a complete solution
stack for UEFI Wi-Fi, users can seek help for Wireless card vendors.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Wang Fan <fan.wang@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
This commit is contained in:
Wang Fan
2019-02-22 15:48:25 +08:00
committed by Liming Gao
parent 3eb69b081c
commit 90b24889f9
23 changed files with 7320 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
## @file
# WiFi Connection Manager.
#
# This module is an example of how to make use of UEFI WiFi connection capabilities.
# User can scan, connect and diconnect to networks through UI operations.
#
# Supported networks include:
# 1). Open Network
# 2). WPA2 Personal Network
# 3). EAP Networks (EAP-TLS, EAP-TTLS/MSCHAPv2 and PEAPv0/MSCHAPv2)
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php.
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = WifiConnectionManagerDxe
FILE_GUID = c6df98f2-5ec0-4a94-8c11-9a9828ef03f2
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 0.1
ENTRY_POINT = WifiMgrDxeDriverEntryPoint
[Sources]
WifiConnectionMgrDxe.h
WifiConnectionMgrDriverBinding.h
WifiConnectionMgrConfig.h
WifiConnectionMgrMisc.h
WifiConnectionMgrImpl.h
WifiConnectionMgrConfigNVDataStruct.h
WifiConnectionMgrHiiConfigAccess.h
WifiConnectionMgrComponentName.h
WifiConnectionMgrFileUtil.h
WifiConnectionMgrDriver.c
WifiConnectionMgrComponentName.c
WifiConnectionMgrMisc.c
WifiConnectionMgrHiiConfigAccess.c
WifiConnectionMgrImpl.c
WifiConnectionMgrFileUtil.c
WifiConnectionManagerDxeStrings.uni
WifiConnectionManagerDxe.vfr
EapContext.h
WifiConnectionMgrConfigHii.h
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
NetworkPkg/NetworkPkg.dec
[LibraryClasses]
UefiDriverEntryPoint
UefiBootServicesTableLib
UefiRuntimeServicesTableLib
MemoryAllocationLib
BaseMemoryLib
BaseLib
UefiLib
DevicePathLib
DebugLib
HiiLib
PrintLib
UefiHiiServicesLib
NetLib
FileExplorerLib
[Protocols]
gEfiHiiConfigAccessProtocolGuid ## PRODUCES
gEfiWiFi2ProtocolGuid ## TO_START
gEfiAdapterInformationProtocolGuid ## SOMETIMES_CONSUMES
gEfiSupplicantProtocolGuid ## SOMETIMES_CONSUMES
gEfiEapConfigurationProtocolGuid ## SOMETIMES_CONSUMES
[Guids]
gWifiConfigGuid ## PRODUCES ## GUID
gEfiIfrTianoGuid ## CONSUMES ## GUID (Extended IFR Guid Opcode)
gEfiAdapterInfoMediaStateGuid ## SOMETIMES_CONSUMES ## GUID # Indicate the current media state status
[Depex]
gEfiHiiConfigRoutingProtocolGuid