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

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)

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.

typedef EFI_STATUS(EFIAPI * EFI_SMMCORE_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)

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.

typedef EFI_STATUS(EFIAPI * EFI_SMMCORE_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN NumberOfPages)

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.

typedef EFI_STATUS(EFIAPI * EFI_SMMCORE_FREE_POOL)(IN VOID *Buffer)

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.


Generated on Wed Sep 2 13:08:33 2015 for IntelFrameworkPkg[ALL] by  doxygen 1.5.7.1