summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Pi
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Include/Pi')
-rw-r--r--MdePkg/Include/Pi/PiSmmCis.h76
1 files changed, 43 insertions, 33 deletions
diff --git a/MdePkg/Include/Pi/PiSmmCis.h b/MdePkg/Include/Pi/PiSmmCis.h
index dc71f639be..77556be0fe 100644
--- a/MdePkg/Include/Pi/PiSmmCis.h
+++ b/MdePkg/Include/Pi/PiSmmCis.h
@@ -19,7 +19,17 @@
#include <Pi/PiMultiPhase.h>
#include <Protocol/SmmCpuIo.h>
-typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_SYSTEM_TABLE -> EFI_SMM_SYSTEM_TABLE2
+/// EFI_SMM_SYSTEM_TABLE_REVISION -> EFI_SMM_SYSTEM_TABLE2_REVISION
+/// EFI_SMM_INSTALL_CONFIGURATION_TABLE -> EFI_SMM_INSTALL_CONFIGURATION_TABLE2
+///
+
+typedef struct _EFI_SMM_SYSTEM_TABLE2 EFI_SMM_SYSTEM_TABLE2;
///
/// The System Management System Table (SMST) signature
@@ -28,7 +38,7 @@ typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
///
/// The System Management System Table (SMST) revision is 1.0
///
-#define EFI_SMM_SYSTEM_TABLE_REVISION ((1 << 16) | (0x00))
+#define EFI_SMM_SYSTEM_TABLE2_REVISION ((1 << 16) | (0x00))
/**
Adds, updates, or removes a configuration table entry from the System Management System Table.
@@ -50,11 +60,11 @@ typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE)(
- IN CONST EFI_SMM_SYSTEM_TABLE *SystemTable,
- IN CONST EFI_GUID *Guid,
- IN VOID *Table,
- IN UINTN TableSize
+(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE2)(
+ IN CONST EFI_SMM_SYSTEM_TABLE2 *SystemTable,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Table,
+ IN UINTN TableSize
);
/**
@@ -261,40 +271,40 @@ VOID
/// services for managing SMRAM allocation and providing basic I/O services. These services are
/// intended for both preboot and runtime usage.
///
-struct _EFI_SMM_SYSTEM_TABLE {
+struct _EFI_SMM_SYSTEM_TABLE2 {
///
/// The table header for the SMST.
///
- EFI_TABLE_HEADER Hdr;
+ EFI_TABLE_HEADER Hdr;
///
/// A pointer to a NULL-terminated Unicode string containing the vendor name.
/// It is permissible for this pointer to be NULL.
///
- CHAR16 *SmmFirmwareVendor;
+ CHAR16 *SmmFirmwareVendor;
///
/// The particular revision of the firmware.
///
- UINT32 SmmFirmwareRevision;
+ UINT32 SmmFirmwareRevision;
- EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;
+ EFI_SMM_INSTALL_CONFIGURATION_TABLE2 SmmInstallConfigurationTable;
///
/// I/O Service
///
- EFI_SMM_CPU_IO_PROTOCOL SmmIo;
+ EFI_SMM_CPU_IO_PROTOCOL SmmIo;
///
/// Runtime memory services
///
- EFI_ALLOCATE_POOL SmmAllocatePool;
- EFI_FREE_POOL SmmFreePool;
- EFI_ALLOCATE_PAGES SmmAllocatePages;
- EFI_FREE_PAGES SmmFreePages;
+ EFI_ALLOCATE_POOL SmmAllocatePool;
+ EFI_FREE_POOL SmmFreePool;
+ EFI_ALLOCATE_PAGES SmmAllocatePages;
+ EFI_FREE_PAGES SmmFreePages;
///
/// MP service
///
- EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;
+ EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;
///
/// CPU information records
@@ -304,23 +314,23 @@ struct _EFI_SMM_SYSTEM_TABLE {
/// A number between zero and and the NumberOfCpus field. This field designates
/// which processor is executing the SMM infrastructure.
///
- UINTN CurrentlyExecutingCpu;
+ UINTN CurrentlyExecutingCpu;
///
/// The number of current operational processors in the platform. This is a 1 based counter.
///
- UINTN NumberOfCpus;
+ UINTN NumberOfCpus;
///
/// Points to an array, where each element describes the number of bytes in the
/// corresponding save state specified by CpuSaveState. There are always
/// NumberOfCpus entries in the array.
///
- UINTN *CpuSaveStateSize;
+ UINTN *CpuSaveStateSize;
///
/// Points to an array, where each element is a pointer to a CPU save state. The
/// corresponding element in CpuSaveStateSize specifies the number of bytes in the
/// save state area. There are always NumberOfCpus entries in the array.
///
- VOID **CpuSaveState;
+ VOID **CpuSaveState;
///
/// Extensibility table
@@ -329,29 +339,29 @@ struct _EFI_SMM_SYSTEM_TABLE {
///
/// The number of UEFI Configuration Tables in the buffer SmmConfigurationTable.
///
- UINTN NumberOfTableEntries;
+ UINTN NumberOfTableEntries;
///
/// A pointer to the UEFI Configuration Tables. The number of entries in the table is
/// NumberOfTableEntries.
///
- EFI_CONFIGURATION_TABLE *SmmConfigurationTable;
+ EFI_CONFIGURATION_TABLE *SmmConfigurationTable;
///
/// Protocol services
///
- EFI_INSTALL_PROTOCOL_INTERFACE SmmInstallProtocolInterface;
- EFI_UNINSTALL_PROTOCOL_INTERFACE SmmUninstallProtocolInterface;
- EFI_HANDLE_PROTOCOL SmmHandleProtocol;
- EFI_SMM_REGISTER_PROTOCOL_NOTIFY SmmRegisterProtocolNotify;
- EFI_LOCATE_HANDLE SmmLocateHandle;
- EFI_LOCATE_PROTOCOL SmmLocateProtocol;
+ EFI_INSTALL_PROTOCOL_INTERFACE SmmInstallProtocolInterface;
+ EFI_UNINSTALL_PROTOCOL_INTERFACE SmmUninstallProtocolInterface;
+ EFI_HANDLE_PROTOCOL SmmHandleProtocol;
+ EFI_SMM_REGISTER_PROTOCOL_NOTIFY SmmRegisterProtocolNotify;
+ EFI_LOCATE_HANDLE SmmLocateHandle;
+ EFI_LOCATE_PROTOCOL SmmLocateProtocol;
///
/// SMI Management functions
///
- EFI_SMM_INTERRUPT_MANAGE SmiManage;
- EFI_SMM_INTERRUPT_REGISTER SmiHandlerRegister;
- EFI_SMM_INTERRUPT_UNREGISTER SmiHandlerUnRegister;
+ EFI_SMM_INTERRUPT_MANAGE SmiManage;
+ EFI_SMM_INTERRUPT_REGISTER SmiHandlerRegister;
+ EFI_SMM_INTERRUPT_UNREGISTER SmiHandlerUnRegister;
};
#endif