## @file
#  NULL instance to register CPU features.
#
#  This library registers CPU features defined in Intel(R) 64 and IA-32
#  Architectures Software Developer's Manual.
#
# Copyright (c) 2017, 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                      = CpuCommonFeaturesLib
  MODULE_UNI_FILE                = CpuCommonFeaturesLib.uni
  FILE_GUID                      = 6D69F79F-9535-4893-9DD7-93929898252C
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL

  CONSTRUCTOR                    = CpuCommonFeaturesLibConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  CpuCommonFeaturesLib.c
  CpuCommonFeatures.h
  Aesni.c
  C1e.c
  ClockModulation.c
  Eist.c
  ExecuteDisable.c
  FastStrings.c
  FeatureControl.c
  LimitCpuIdMaxval.c
  MachineCheck.c
  MonitorMwait.c
  PendingBreak.c
  X2Apic.c
  Ppin.c
  ProcTrace.c

[Packages]
  MdePkg/MdePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  PcdLib
  DebugLib
  RegisterCpuFeaturesLib
  BaseMemoryLib
  MemoryAllocationLib
  LocalApicLib

[Pcd]
  gUefiCpuPkgTokenSpaceGuid.PcdCpuFeaturesSupport            ## CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuClockModulationDutyCycle   ## SOMETIMES_CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdIsPowerOnReset                ## SOMETIMES_CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuProcTraceOutputScheme      ## SOMETIMES_CONSUMES
  gUefiCpuPkgTokenSpaceGuid.PcdCpuProcTraceMemSize           ## SOMETIMES_CONSUMES