## @file
#  The CPU specific programming for PiSmmCpuDxeSmm module.
#
#  Copyright (c) 2009 - 2016, 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                      = SmmCpuFeaturesLib
  MODULE_UNI_FILE                = SmmCpuFeaturesLib.uni
  FILE_GUID                      = FC3DC10D-D271-422a-AFF3-CBCF70344431
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = SmmCpuFeaturesLib
  CONSTRUCTOR                    = SmmCpuFeaturesLibConstructor

[Sources]
  SmmCpuFeaturesLib.c
  SmmCpuFeaturesLibNoStm.c

[Packages]
  MdePkg/MdePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  PcdLib
  MemoryAllocationLib
  DebugLib

[Pcd]
  gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber        ## SOMETIMES_CONSUMES
