## @file
# CapsuleX64 module handles >4GB capsule blocks.
#
# The X64 entrypoint to process capsule in long mode.
# This module is built as X64.
#
#  Caution: This module requires additional review when modified.
#  This driver will have external input - capsule image.
#  This external input must be validated carefully to avoid security issue like
#  buffer overflow, integer overflow.
#
# Copyright (c) 2011 - 2015, 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                      = CapsuleX64
  MODULE_UNI_FILE                = CapsuleX64.uni
  FILE_GUID                      = F7FDE4A6-294C-493c-B50F-9734553BB757
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = X64
#

[Sources]
  X64/X64Entry.c
  X64/PageFaultHandler.asm
  X64/PageFaultHandler.S
  Common/CapsuleCoalesce.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  CpuExceptionHandlerLib
  DebugAgentLib

[Depex]
  FALSE

[UserExtensions.TianoCore."ExtraFiles"]
  CapsuleX64Extra.uni
