## @file
#  Status Code Handler Driver which produces general handlers and hook them
#  onto the DXE status code router.
#
#  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                      = StatusCodeHandlerRuntimeDxe
  FILE_GUID                      = 6C2004EF-4E0E-4BE4-B14C-340EB4AA5891
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  ENTRY_POINT                    = StatusCodeHandlerRuntimeDxeEntry

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  StatusCodeHandlerRuntimeDxe.c
  StatusCodeHandlerRuntimeDxe.h
  SerialStatusCodeWorker.c
  MemoryStatusCodeWorker.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  SerialPortLib
  UefiRuntimeLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  HobLib
  PcdLib
  PrintLib
  ReportStatusCodeLib
  DebugLib
  SynchronizationLib

[Guids]
  gMemoryStatusCodeRecordGuid                   ## CONSUMES ## HOB
  gEfiEventVirtualAddressChangeGuid             ## CONSUMES ## Event
  gEfiEventExitBootServicesGuid                 ## CONSUMES ## Event

[Protocols]
  gEfiRscHandlerProtocolGuid                    ## CONSUMES

[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128| PcdStatusCodeUseMemory

[Depex]
  gEfiRscHandlerProtocolGuid
