IntelFrameworkPkg/Include/Framework/SmmCis.h File Reference
|
Data Structures |
struct | EFI_SMI_CPU_SAVE_STATE |
struct | EFI_PMI_SYSTEM_CONTEXT |
union | EFI_SMM_CPU_SAVE_STATE |
struct | EFI_SMI_OPTIONAL_FPSAVE_STATE |
struct | EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT |
union | EFI_SMM_FLOATING_POINT_SAVE_STATE |
struct | _EFI_SMM_SYSTEM_TABLE |
Defines |
#define | EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09) |
Typedefs |
typedef struct
_EFI_SMM_SYSTEM_TABLE | EFI_SMM_SYSTEM_TABLE |
typedef EFI_STATUS(EFIAPI * | EFI_SMMCORE_ALLOCATE_POOL )(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer) |
typedef EFI_STATUS(EFIAPI * | EFI_SMMCORE_FREE_POOL )(IN VOID *Buffer) |
typedef EFI_STATUS(EFIAPI * | EFI_SMMCORE_ALLOCATE_PAGES )(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN NumberOfPages, OUT EFI_PHYSICAL_ADDRESS *Memory) |
typedef EFI_STATUS(EFIAPI * | EFI_SMMCORE_FREE_PAGES )(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages) |
typedef EFI_STATUS(EFIAPI * | EFI_SMM_HANDLER_ENTRY_POINT )(IN EFI_HANDLE SmmImageHandle, IN OUT VOID *CommunicationBuffer, IN OUT UINTN *SourceSize) |
typedef EFI_STATUS(EFIAPI * | EFI_SMM_INSTALL_CONFIGURATION_TABLE )(IN EFI_SMM_SYSTEM_TABLE *SystemTable, IN EFI_GUID *Guid, IN VOID *Table, IN UINTN TableSize) |
Detailed Description
Include file for definitions in the Intel Platform Innovation Framework for EFI System Management Mode Core Interface Specification (SMM CIS) version 0.91.
Copyright (c) 2007 - 2010, 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 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.
Define Documentation
#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09) |
Typedef Documentation
typedef EFI_STATUS(EFIAPI * EFI_SMM_HANDLER_ENTRY_POINT)(IN EFI_HANDLE SmmImageHandle, IN OUT VOID *CommunicationBuffer, IN OUT UINTN *SourceSize) |
This function is the main entry point for an SMM handler dispatch or communicate-based callback.
- Parameters:
-
| SmmImageHandle | A unique value returned by the SMM infrastructure in response to registration for a communicate-based callback or dispatch. |
| CommunicationBuffer | An optional buffer that will be populated by the SMM infrastructure in response to a non-SMM agent (preboot or runtime) invoking the EFI_SMM_BASE_PROTOCOL.Communicate() service. |
| SourceSize | If CommunicationBuffer is non-NULL, this field indicates the size of the data payload in this buffer. |
- Returns:
- Status Code
The SmmInstallConfigurationTable() function is used to maintain the list of configuration tables that are stored in the System Management System Table. The list is stored as an array of (GUID, Pointer) pairs. The list must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.
- Parameters:
-
| SystemTable | A pointer to the SMM System Table. |
| Guid | A pointer to the GUID for the entry to add, update, or remove. |
| Table | A pointer to the buffer of the table to add. |
| TableSize | The size of the table to install. |
- Return values:
-
| EFI_SUCCESS | The (Guid, Table) pair was added, updated, or removed. |
| EFI_INVALID_PARAMETER | Guid is not valid. |
| EFI_NOT_FOUND | An attempt was made to delete a non-existent entry. |
| EFI_OUT_OF_RESOURCES | There is not enough memory available to complete the operation. |
typedef EFI_STATUS(EFIAPI * EFI_SMMCORE_ALLOCATE_PAGES)(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN NumberOfPages, OUT EFI_PHYSICAL_ADDRESS *Memory) |
Allocates memory pages from the system.
- Parameters:
-
| Type | The type of allocation to perform. |
| MemoryType | The only supported type is EfiRuntimeServicesData. |
| NumberofPages | The number of contiguous 4 KB pages to allocate. |
| Memory | Pointer to a physical address. On input, the way in which the address is used depends on the value of Type. On output, the address is set to the base of the page range that was allocated. |
- Return values:
-
| EFI_SUCCESS | The requested pages were allocated. |
| EFI_OUT_OF_RESOURCES | The pages requested could not be allocated. |
| EFI_NOT_FOUND | The requested pages could not be found. |
| EFI_INVALID_PARAMETER | Type is not AllocateAnyPages or AllocateMaxAddress or AllocateAddress. Or, MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF. |
- Note:
- Inconsistent with specification here: In the Framework Spec, this definition is named EFI_SMM_ALLOCATE_PAGES. To avoid a naming conflict, the definition here is renamed.
Allocates pool memory from SMRAM for IA-32, or runtime memory for the Itanium processor family.
- Parameters:
-
| PoolType | The type of pool to allocate. The only supported type is EfiRuntimeServicesData. |
| Size | The number of bytes to allocate from the pool. |
| Buffer | A pointer to a pointer to the allocated buffer if the call succeeds. Otherwise, undefined. |
- Return values:
-
| EFI_SUCCESS | The requested number of bytes was allocated. |
| EFI_OUT_OF_RESOURCES | The pool requested could not be allocated. |
| EFI_UNSUPPORTED | In runtime. |
- Note:
- Inconsistent with specification here: In Framework Spec, this definition is named EFI_SMM_ALLOCATE_POOL. To avoid a naming conflict, the definition is renamed.
Frees memory pages for the system.
- Parameters:
-
| Memory | The base physical address of the pages to be freed. |
| NumberOfPages | The number of contiguous 4 KB pages to free. |
- Return values:
-
| EFI_SUCCESS | The requested memory pages were freed. |
| EFI_INVALID_PARAMETER | Memory is not a page-aligned address or NumberOfPages is invalid. |
| EFI_NOT_FOUND | The requested memory pages were not allocated with SmmAllocatePages(). |
- Note:
- Inconsistent with specification here: In the Framework Spec, this definition is named EFI_SMM_FREE_PAGES. To avoid a naming conflict, the definition here is renamed.
Returns pool memory to the system.
- Parameters:
-
| Buffer | The pointer to the buffer to free. |
- Return values:
-
| EFI_SUCCESS | The memory was returned to the system. |
| EFI_INVALID_PARAMETER | Buffer was invalid. |
| EFI_UNSUPPORTED | In runtime. |
- Note:
- Inconsistent with specification here: In Framework Spec, this definition is named EFI_SMM_FREE_POOL. To avoid a naming conflict, the definition is renamed.