// /** @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 - 2018, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Handles >4GB capsule blocks"

#string STR_MODULE_DESCRIPTION          #language en-US "The X64 entry point to process capsule in long mode. This module is built as X64.<BR><BR>\n"
                                                        "This driver will have external input - capsule image. This external input must be validated carefully to avoid security issues like buffer overflow or integer overflow.<BR>"

