## @file
# Component description file for Cpu module.
#
# This CPU module abstracts the interrupt subsystem of a platform and the CPU-specific setjump-long pair.
# Copyright (c) 2006 - 2010, Intel Corporation
#
#  All rights reserved. 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                      = Cpu
  FILE_GUID                      = ee993080-5197-4d4e-b63c-f1f7413e33ce
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeCpu

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  CpuIo.c
  Cpu.c
  CpuDriver.h
  Strings.uni

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  Nt32Pkg/Nt32Pkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiDriverEntryPoint
  DebugLib
  HiiLib

[Protocols]
  gEfiWinNtIoProtocolGuid                       # PROTOCOL_NOTIFY SOMETIMES_CONSUMED
  gEfiSmbiosProtocolGuid                        # PROTOCOL SOMETIMES_CONSUMED
  gEfiWinNtIoProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiCpuIo2ProtocolGuid                        # PROTOCOL ALWAYS_PRODUCED
  gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_PRODUCED

[Depex]
  gEfiSmbiosProtocolGuid
