#ifndef _SMM_CIS_H_\r
#define _SMM_CIS_H_\r
\r
+//\r
+// Share some common definitions with PI SMM\r
+//\r
+#include <Pi/PiSmmCis.h>\r
+#include <Protocol/SmmCpuIo.h>\r
+\r
#define EFI_SMM_CPU_IO_GUID \\r
{ \\r
0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
//\r
// SMM Base specification constant and types\r
//\r
-#define SMM_SMST_SIGNATURE SIGNATURE_32 ('S', 'M', 'S', 'T')\r
#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)\r
\r
-//\r
-// *******************************************************\r
-// EFI_SMM_IO_WIDTH\r
-// *******************************************************\r
-//\r
-typedef enum {\r
- SMM_IO_UINT8 = 0,\r
- SMM_IO_UINT16 = 1,\r
- SMM_IO_UINT32 = 2,\r
- SMM_IO_UINT64 = 3\r
-} EFI_SMM_IO_WIDTH;\r
-\r
/**\r
Provides the basic memory and I/O interfaces that are used to\r
abstract accesses to devices.\r
IN UINTN NumberOfPages\r
);\r
\r
-/**\r
- Lets the caller get one distinct application processor (AP) in the enabled processor pool to execite a \r
- caller-provided code stream while in SMM. \r
-\r
- @param Procedure A pointer to the code stream to be run on the designated AP of the system.\r
- @param CpuNumber The zero-based index of the processor number of the AP on which the code stream is\r
- supposed to run. If the processor number points to the current processor or a disabled\r
- processor, then it will not run the supplied code.\r
- @param ProcArguments Allows the caller to pass a list of parameters to the code that is run by\r
- the AP. It is an optional common mailbox between APs and the BSP to share information.\r
-\r
- @retval EFI_SUCCESS The call was successful and the return parameters are valid.\r
- @retval EFI_INVALID_PARAMETER The input arguments are out of range.\r
- @retval EFI_INVALID_PARAMETER The CPU requested is not available on this SMI invocation.\r
- @retval EFI_INVALID_PARAMETER The CPU cannot support an additional service invocation.\r
- \r
- @note: Inconsistent with specification here:\r
- In Framework Spec, this definition does not exist. This method is introduced in PI1.0 spec for \r
- implementation needs.\r
- \r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_STARTUP_THIS_AP)(\r
- IN FRAMEWORK_EFI_AP_PROCEDURE Procedure,\r
- IN UINTN CpuNumber,\r
- IN OUT VOID *ProcArguments OPTIONAL\r
- );\r
-\r
///\r
/// The processor save-state information for IA-32 processors. This information is important in that the\r
/// SMM drivers may need to ascertain the state of the processor before invoking the SMI.\r