From 76570576a6cb2907a4f1406fce036d1e47e9ed1d Mon Sep 17 00:00:00 2001 From: Star Zeng Date: Sat, 18 Jun 2016 09:04:31 +0800 Subject: MdeModulePkg: Introduce new library class MemoryProfileLib Provides services to record memory profile of multilevel caller. Cc: Jiewen Yao Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng Reviewed-by: Jiewen Yao --- MdeModulePkg/Include/Library/MemoryProfileLib.h | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 MdeModulePkg/Include/Library/MemoryProfileLib.h (limited to 'MdeModulePkg/Include/Library/MemoryProfileLib.h') diff --git a/MdeModulePkg/Include/Library/MemoryProfileLib.h b/MdeModulePkg/Include/Library/MemoryProfileLib.h new file mode 100644 index 0000000000..8543801391 --- /dev/null +++ b/MdeModulePkg/Include/Library/MemoryProfileLib.h @@ -0,0 +1,53 @@ +/** @file + Provides services to record memory profile of multilevel caller. + + Copyright (c) 2016, 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. + +**/ + +#ifndef _MEMORY_PROFILE_LIB_H_ +#define _MEMORY_PROFILE_LIB_H_ + +#include + +/** + Record memory profile of multilevel caller. + + @param[in] CallerAddress Address of caller. + @param[in] Action Memory profile action. + @param[in] MemoryType Memory type. + EfiMaxMemoryType means the MemoryType is unknown. + @param[in] Buffer Buffer address. + @param[in] Size Buffer size. + @param[in] ActionString String for memory profile action. + Only needed for user defined allocate action. + + @return EFI_SUCCESS Memory profile is updated. + @return EFI_UNSUPPORTED Memory profile is unsupported, + or memory profile for the image is not required, + or memory profile for the memory type is not required. + @return EFI_ACCESS_DENIED It is during memory profile data getting. + @return EFI_ABORTED Memory profile recording is not enabled. + @return EFI_OUT_OF_RESOURCES No enough resource to update memory profile for allocate action. + @return EFI_NOT_FOUND No matched allocate info found for free action. + +**/ +EFI_STATUS +EFIAPI +MemoryProfileLibRecord ( + IN PHYSICAL_ADDRESS CallerAddress, + IN MEMORY_PROFILE_ACTION Action, + IN EFI_MEMORY_TYPE MemoryType, + IN VOID *Buffer, + IN UINTN Size, + IN CHAR8 *ActionString OPTIONAL + ); + +#endif -- cgit v1.2.3