## @file
# OEM hook status code handler PEIM which produces general handler and hook it
# onto the PEI status code router.
#
# Copyright (c) 2007 - 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                      = WinNtOemHookStatusCodeHandlerPei
  FILE_GUID                      = D233D6BD-F1B1-425A-BF45-5CAF2B88EDDC
  MODULE_TYPE                    = PEIM
  ENTRY_POINT                    = WinNtOemHookStatusCodeHandlerPeiEntry


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  WinNtOemHookStatusCodeHandlerPei.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  Nt32Pkg/Nt32Pkg.dec

[LibraryClasses]
  PeimEntryPoint
  PeiServicesLib
  DebugLib
  OemHookStatusCodeLib

[Ppis]
  gEfiPeiRscHandlerPpiGuid                      ## CONSUMES

[Depex]
  gEfiPeiRscHandlerPpiGuid
