MdeModulePkg/Include/Guid/MemoryProfile.h File Reference


Data Structures

struct  MEMORY_PROFILE_COMMON_HEADER
struct  MEMORY_PROFILE_CONTEXT
struct  MEMORY_PROFILE_DRIVER_INFO
struct  MEMORY_PROFILE_ALLOC_INFO
struct  MEMORY_PROFILE_DESCRIPTOR
struct  MEMORY_PROFILE_FREE_MEMORY
struct  MEMORY_PROFILE_MEMORY_RANGE
struct  _EDKII_MEMORY_PROFILE_PROTOCOL
struct  SMRAM_PROFILE_PARAMETER_HEADER
struct  SMRAM_PROFILE_PARAMETER_GET_PROFILE_INFO
struct  SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA
struct  SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE
struct  SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE

Defines

#define MEMORY_PROFILE_CONTEXT_SIGNATURE   SIGNATURE_32 ('M','P','C','T')
#define MEMORY_PROFILE_CONTEXT_REVISION   0x0002
#define MEMORY_PROFILE_DRIVER_INFO_SIGNATURE   SIGNATURE_32 ('M','P','D','I')
#define MEMORY_PROFILE_DRIVER_INFO_REVISION   0x0002
#define MEMORY_PROFILE_ALLOC_INFO_SIGNATURE   SIGNATURE_32 ('M','P','A','I')
#define MEMORY_PROFILE_ALLOC_INFO_REVISION   0x0001
#define MEMORY_PROFILE_DESCRIPTOR_SIGNATURE   SIGNATURE_32 ('M','P','D','R')
#define MEMORY_PROFILE_DESCRIPTOR_REVISION   0x0001
#define MEMORY_PROFILE_FREE_MEMORY_SIGNATURE   SIGNATURE_32 ('M','P','R','M')
#define MEMORY_PROFILE_FREE_MEMORY_REVISION   0x0001
#define MEMORY_PROFILE_MEMORY_RANGE_SIGNATURE   SIGNATURE_32 ('M','P','M','R')
#define MEMORY_PROFILE_MEMORY_RANGE_REVISION   0x0001
#define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO   0x1
#define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA   0x2
#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE   0x3
#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE   0x4
#define EDKII_MEMORY_PROFILE_GUID

Typedefs

typedef struct
_EDKII_MEMORY_PROFILE_PROTOCOL 
EDKII_MEMORY_PROFILE_PROTOCOL
typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_GET_DATA )(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN OUT UINT64 *ProfileSize, OUT VOID *ProfileBuffer)
typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_REGISTER_IMAGE )(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN PHYSICAL_ADDRESS ImageBase, IN UINT64 ImageSize, IN EFI_FV_FILETYPE FileType)
typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_UNREGISTER_IMAGE )(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN PHYSICAL_ADDRESS ImageBase, IN UINT64 ImageSize)

Enumerations

enum  MEMORY_PROFILE_ACTION { MemoryProfileActionAllocatePages = 1, MemoryProfileActionFreePages = 2, MemoryProfileActionAllocatePool = 3, MemoryProfileActionFreePool = 4 }

Variables

EFI_GUID gEdkiiMemoryProfileGuid

Detailed Description

Memory profile data structure.

Copyright (c) 2014 - 2015, 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.


Define Documentation

#define EDKII_MEMORY_PROFILE_GUID

Value:

{ \
  0x821c9a09, 0x541a, 0x40f6, 0x9f, 0x43, 0xa, 0xd1, 0x93, 0xa1, 0x2c, 0xfe \
}

#define MEMORY_PROFILE_ALLOC_INFO_REVISION   0x0001

#define MEMORY_PROFILE_ALLOC_INFO_SIGNATURE   SIGNATURE_32 ('M','P','A','I')

#define MEMORY_PROFILE_CONTEXT_REVISION   0x0002

#define MEMORY_PROFILE_CONTEXT_SIGNATURE   SIGNATURE_32 ('M','P','C','T')

#define MEMORY_PROFILE_DESCRIPTOR_REVISION   0x0001

#define MEMORY_PROFILE_DESCRIPTOR_SIGNATURE   SIGNATURE_32 ('M','P','D','R')

#define MEMORY_PROFILE_DRIVER_INFO_REVISION   0x0002

#define MEMORY_PROFILE_DRIVER_INFO_SIGNATURE   SIGNATURE_32 ('M','P','D','I')

#define MEMORY_PROFILE_FREE_MEMORY_REVISION   0x0001

#define MEMORY_PROFILE_FREE_MEMORY_SIGNATURE   SIGNATURE_32 ('M','P','R','M')

#define MEMORY_PROFILE_MEMORY_RANGE_REVISION   0x0001

#define MEMORY_PROFILE_MEMORY_RANGE_SIGNATURE   SIGNATURE_32 ('M','P','M','R')

#define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA   0x2

#define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO   0x1

#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE   0x3

#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE   0x4


Typedef Documentation

typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_GET_DATA)(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN OUT UINT64 *ProfileSize, OUT VOID *ProfileBuffer)

Get memory profile data.

Parameters:
[in] This The EDKII_MEMORY_PROFILE_PROTOCOL instance.
[in,out] ProfileSize On entry, points to the size in bytes of the ProfileBuffer. On return, points to the size of the data returned in ProfileBuffer.
[out] ProfileBuffer Profile buffer.
Returns:
EFI_SUCCESS Get the memory profile data successfully.

EFI_BUFFER_TO_SMALL The ProfileSize is too small for the resulting data. ProfileSize is updated with the size required.

typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_REGISTER_IMAGE)(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN PHYSICAL_ADDRESS ImageBase, IN UINT64 ImageSize, IN EFI_FV_FILETYPE FileType)

Register image to memory profile.

Parameters:
[in] This The EDKII_MEMORY_PROFILE_PROTOCOL instance.
[in] FilePath File path of the image.
[in] ImageBase Image base address.
[in] ImageSize Image size.
[in] FileType File type of the image.
Returns:
EFI_SUCCESS Register success.

EFI_OUT_OF_RESOURCE No enough resource for this register.

typedef EFI_STATUS(EFIAPI * EDKII_MEMORY_PROFILE_UNREGISTER_IMAGE)(IN EDKII_MEMORY_PROFILE_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN PHYSICAL_ADDRESS ImageBase, IN UINT64 ImageSize)

Unregister image from memory profile.

Parameters:
[in] This The EDKII_MEMORY_PROFILE_PROTOCOL instance.
[in] FilePath File path of the image.
[in] ImageBase Image base address.
[in] ImageSize Image size.
Returns:
EFI_SUCCESS Unregister success.

EFI_NOT_FOUND The image is not found.


Enumeration Type Documentation

Enumerator:
MemoryProfileActionAllocatePages 
MemoryProfileActionFreePages 
MemoryProfileActionAllocatePool 
MemoryProfileActionFreePool 


Variable Documentation


Generated on Thu Sep 24 23:30:14 2015 for MdeModulePkg[ALL] by  doxygen 1.5.7.1