MdeModulePkg/Include: Add PiSmmMemoryAttributesTable.h

This table describes the SMM memory attributes.

The new GUID gEdkiiPiSmmMemoryAttributesTableGuid and its associated
structure are based on the EFI_MEMORY_ATTRIBUTES_TABLE and GUID from the
UEFI Specification.

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
[lersek@redhat.com: update commit message as requested by Michael Kinney]
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
Jiewen Yao 2016-10-23 23:09:16 +08:00 committed by Laszlo Ersek
parent a52aed37f3
commit 97d2760429
1 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,51 @@
/** @file
Define the GUID of the EDKII PI SMM memory attribute table, which
is published by PI SMM Core.
Copyright (c) 2016, 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 that 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 _PI_SMM_MEMORY_ATTRIBUTES_TABLE_H_
#define _PI_SMM_MEMORY_ATTRIBUTES_TABLE_H_
#define EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE_GUID {\
0x6b9fd3f7, 0x16df, 0x45e8, {0xbd, 0x39, 0xb9, 0x4a, 0x66, 0x54, 0x1a, 0x5d} \
}
//
// The PI SMM memory attribute table contains the SMM memory map for SMM image.
//
// This table is installed to SMST as SMM configuration table.
//
// This table is published at gEfiSmmEndOfDxeProtocolGuid notification, because
// there should be no more SMM driver loaded after that. The EfiRuntimeServicesCode
// region should not be changed any more.
//
// This table is published, if and only if all SMM PE/COFF have aligned section
// as specified in UEFI specification Section 2.3. For example, IA32/X64 alignment is 4KiB.
//
// If this table is published, the EfiRuntimeServicesCode contains code only
// and it is EFI_MEMORY_RO; the EfiRuntimeServicesData contains data only
// and it is EFI_MEMORY_XP.
//
typedef struct {
UINT32 Version;
UINT32 NumberOfEntries;
UINT32 DescriptorSize;
UINT32 Reserved;
//EFI_MEMORY_DESCRIPTOR Entry[1];
} EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE;
#define EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001
extern EFI_GUID gEdkiiPiSmmMemoryAttributesTableGuid;
#endif