## @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 - 2011, 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                      = Cpu
  FILE_GUID                      = f3794b60-8985-11db-8e53-0040d02b1835
  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 X64 IPF EBC
#

[Sources]
  CpuIo.c
  Cpu.c
  CpuDriver.h
  MpService.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  EmulatorPkg/EmulatorPkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiDriverEntryPoint
  UefiLib
  HiiLib
  DebugLib
  BaseLib
  EmuThunkLib
  PcdLib

[Protocols]
  gEmuIoThunkProtocolGuid                       # PROTOCOL_NOTIFY SOMETIMES_CONSUMED
  gEfiSmbiosProtocolGuid                        # PROTOCOL SOMETIMES_CONSUMED
  gEfiCpuIo2ProtocolGuid                        # PROTOCOL ALWAYS_PRODUCED
  gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_PRODUCED
  gEmuThreadThunkProtocolGuid
  gEfiMpServiceProtocolGuid

[Guids]
  gIdleLoopEventGuid                            ## CONSUMES ## GUID

[Pcd]
  gEmulatorPkgTokenSpaceGuid.PcdEmuMpServicesPollingInterval

[Depex]
  gEfiSmbiosProtocolGuid
