## @file
#  CPU Exception Handler library instance for SEC/PEI modules.
#
#  Copyright (c) 2012 - 2018, 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                      = SecPeiCpuExceptionHandlerLib
  MODULE_UNI_FILE                = SecPeiCpuExceptionHandlerLib.uni
  FILE_GUID                      = CA4BBC99-DFC6-4234-B553-8B6586B7B113
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.1
  LIBRARY_CLASS                  = CpuExceptionHandlerLib|SEC PEI_CORE PEIM

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources.Ia32]
  Ia32/ExceptionHandlerAsm.nasm
  Ia32/ExceptionTssEntryAsm.nasm
  Ia32/ExceptionHandlerAsm.S
  Ia32/ArchExceptionHandler.c
  Ia32/ArchInterruptDefs.h

[Sources.X64]
  X64/ExceptionHandlerAsm.nasm
  X64/ExceptionHandlerAsm.S
  X64/ArchExceptionHandler.c
  X64/ArchInterruptDefs.h

[Sources.common]
  CpuExceptionCommon.h
  CpuExceptionCommon.c
  SecPeiCpuException.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseLib
  SerialPortLib
  PrintLib
  LocalApicLib
  PeCoffGetEntryPointLib
