## @file
#  This library instance provides the basic network services.
#
#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
#  (C) Copyright 2015 Hewlett Packard Enterprise Development LP<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                      = DxeNetLib
  MODULE_UNI_FILE                = DxeNetLib.uni
  FILE_GUID                      = db6dcef3-9f4e-4340-9351-fc35aa8a5888
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NetLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  DxeNetLib.c
  NetBuffer.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  BaseLib
  DebugLib
  BaseMemoryLib
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  UefiLib
  MemoryAllocationLib
  DevicePathLib
  PrintLib


[Guids]
  gEfiSmbiosTableGuid                           ## SOMETIMES_CONSUMES  ## SystemTable
  gEfiSmbios3TableGuid                          ## SOMETIMES_CONSUMES  ## SystemTable


[Protocols]
  gEfiSimpleNetworkProtocolGuid                 ## SOMETIMES_CONSUMES
  gEfiManagedNetworkProtocolGuid                ## SOMETIMES_CONSUMES
  gEfiManagedNetworkServiceBindingProtocolGuid  ## SOMETIMES_CONSUMES
  gEfiIp4Config2ProtocolGuid                    ## SOMETIMES_CONSUMES
  gEfiComponentNameProtocolGuid                 ## SOMETIMES_CONSUMES
  gEfiComponentName2ProtocolGuid                ## SOMETIMES_CONSUMES
