## @file
# Misc Sub class driver
#
# Parses the MiscSubclassDataTable and reports any generated data to the DataHub.
#  All .uni file who tagged with "ToolCode="DUMMY"" in following file list is included by
#  MiscSubclassDriver.uni file, the StrGather tool will expand MiscSubclassDriver.uni file
#  and parse all .uni file.
# Copyright (c) 2006 - 2010, 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                      = MiscSubclass
  FILE_GUID                      = f2fbd108-8985-11db-b06a-0040d02b1835
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = MiscSubclassDriverEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  MiscBaseBoardManufacturer.uni
  MiscBaseBoardManufacturerData.c
  MiscBaseBoardManufacturerFunction.c
  MiscBiosVendor.uni
  MiscBiosVendorData.c
  MiscBiosVendorFunction.c
  MiscBootInformationData.c
  MiscBootInformationFunction.c
  MiscChassisManufacturer.uni
  MiscChassisManufacturerData.c
  MiscChassisManufacturerFunction.c
  MiscNumberOfInstallableLanguagesData.c
  MiscNumberOfInstallableLanguagesFunction.c
  MiscOemString.uni
  MiscOemStringData.c
  MiscOemStringFunction.c
  MiscPortInternalConnectorDesignator.uni
  MiscPortInternalConnectorDesignatorData.c
  MiscPortInternalConnectorDesignatorFunction.c
  MiscResetCapabilitiesData.c
  MiscResetCapabilitiesFunction.c
  MiscSystemLanguageString.uni
  MiscSystemLanguageStringData.c
  MiscSystemLanguageStringFunction.c
  MiscSystemManufacturer.uni
  MiscSystemManufacturerData.c
  MiscSystemManufacturerFunction.c
  MiscSystemOptionString.uni
  MiscSystemOptionStringData.c
  MiscSystemOptionStringFunction.c
  MiscSystemSlotDesignation.uni
  MiscSystemSlotDesignationData.c
  MiscSystemSlotDesignationFunction.c
  MiscDevicePath.h
  MiscSubClassDriver.h
  MiscSubClassDriver.uni
  MiscSubclassDriverDataTable.c
  MiscSubclassDriverEntryPoint.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  EmulatorPkg/EmulatorPkg.dec

[LibraryClasses]
  DevicePathLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiDriverEntryPoint
  UefiLib
  HiiLib
  DebugLib
  BaseLib
  PcdLib

[Protocols]
  gEfiSmbiosProtocolGuid                        # PROTOCOL ALWAYS_CONSUMED

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
  gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize


[Depex]
  gEfiSmbiosProtocolGuid
