// /** @file
// Instance of Memory Allocation Library using EFI Boot Services,
//  with memory profile support.
//
// Memory Allocation Library that uses EFI Boot Services to allocate
// and free memory, with memory profile support.
//
// Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Instance of Memory Allocation Library using EFI Boot Services, with memory profile support"

#string STR_MODULE_DESCRIPTION          #language en-US "This Memory Allocation Library uses EFI Boot Services to allocate and free memory, with memory profile support."

