## @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 - 2022, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[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
  gEdkiiWiFiProfileSyncProtocolGuid             ## 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
