]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/SmmBase.h
Reviewed the description in the FatBinPkg .dec file.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / SmmBase.h
index 97f0de6b2b0c7aeed5142922fa2cfc9b1a354d58..e21b495eb6f24305de980841b576312f9b756a3b 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   This file declares SMM Base abstraction protocol.\r
   This protocol is used to install SMM handlers for support of subsequent SMI/PMI activations. This\r
-  protocol is available on both IA-32 and Itanium®-based systems.\r
+  protocol is available on both IA-32 and Itanium based systems.\r
  \r
   The EFI_SMM_BASE_PROTOCOL is a set of services that is exported by a processor device. It is\r
   a required protocol for the platform processor. This protocol can be used in both boot services and\r
@@ -28,8 +28,6 @@
   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-  Module Name:  SmmBase.h\r
-\r
   @par Revision Reference:\r
   This Protocol is defined in Framework of EFI SMM Core Interface Spec\r
   Version 0.9.\r
@@ -71,7 +69,7 @@ typedef struct _EFI_SMM_BASE_PROTOCOL             EFI_SMM_BASE_PROTOCOL;
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_CALLBACK_ENTRY_POINT) (\r
+(EFIAPI *EFI_SMM_CALLBACK_ENTRY_POINT)(\r
   IN EFI_HANDLE             SmmImageHandle,\r
   IN OUT VOID               *CommunicationBuffer OPTIONAL,\r
   IN OUT UINTN              *SourceSize OPTIONAL\r
@@ -89,9 +87,11 @@ EFI_STATUS
   @param  SourceBuffer          Optional source buffer in case of the image file\r
                                 being in memory.\r
   @param  SourceSize            Size of the source image file, if in memory.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
-  @param  LegacyIA32Binary      The binary image to load is legacy 16 bit code.\r
+  @param  ImageHandle           The handle that the base driver uses to decode \r
+                                the handler. Unique among SMM handlers only, \r
+                                not unique across DXE/EFI.\r
+  @param  LegacyIA32Binary      An optional parameter that details that the associated \r
+                                file is a real-mode IA-32 binary.\r
 \r
   @retval EFI_SUCCESS           The operation was successful.\r
   @retval EFI_OUT_OF_RESOURCES  There were no additional SMRAM resources to load the handler\r
@@ -102,23 +102,21 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_REGISTER_HANDLER) (\r
+(EFIAPI *EFI_SMM_REGISTER_HANDLER)(\r
   IN EFI_SMM_BASE_PROTOCOL                           *This,\r
   IN  EFI_DEVICE_PATH_PROTOCOL                       *FilePath,\r
   IN  VOID                                           *SourceBuffer OPTIONAL,\r
   IN  UINTN                                          SourceSize,\r
   OUT EFI_HANDLE                                     *ImageHandle,\r
   IN  BOOLEAN                                        LegacyIA32Binary OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
-  Remove a given driver SMRAM.  This is the equivalent of performing\r
-  the UnloadImage System Management Mode.\r
+  Removes a handler from execution within SMRAM.  This is the equivalent of performing\r
+  the UnloadImage in System Management Mode.\r
 \r
   @param  This                  Protocol instance pointer.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
+  @param  ImageHandle           The handler to be removed.\r
 \r
   @retval EFI_SUCCESS           The operation was successful\r
   @retval EFI_INVALID_PARAMETER The handler did not exist\r
@@ -127,23 +125,21 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_UNREGISTER_HANDLER) (\r
+(EFIAPI *EFI_SMM_UNREGISTER_HANDLER)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   IN EFI_HANDLE                     ImageHandle\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   The SMM Inter-module Communicate Service Communicate() function\r
   provides a services to send/received messages from a registered\r
   EFI service.  The BASE protocol driver is responsible for doing\r
-  any of the copies such that the data lives in boot-service accessible RAM.\r
+  any of the copies such that the data lives in boot-service-accessible RAM.\r
 \r
   @param  This                  Protocol instance pointer.\r
-  @param  ImageHandle           Pointer to the handle that reflects the driver\r
-                                loaded into SMM.\r
+  @param  ImageHandle           The handle of the registered driver.\r
   @param  CommunicationBuffer   Pointer to the buffer to convey into SMRAM.\r
-  @param  SourceSize            Size of the contents of buffer..\r
+  @param  SourceSize            The size of the data buffer being passed in.\r
 \r
   @retval EFI_SUCCESS           The message was successfully posted\r
   @retval EFI_INVALID_PARAMETER The buffer was NULL\r
@@ -151,24 +147,22 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_COMMUNICATE) (\r
+(EFIAPI *EFI_SMM_COMMUNICATE)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   IN EFI_HANDLE                     ImageHandle,\r
   IN OUT VOID                       *CommunicationBuffer,\r
   IN OUT UINTN                      *SourceSize\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Register a callback to execute within SMM.\r
-  This allows receipt of messages created with the Boot Service COMMUNICATE.\r
+  This allows receipt of messages created with EFI_SMM_BASE_PROTOCOL.Communicate().\r
 \r
   @param  This                  Protocol instance pointer.\r
-  @param  CallbackAddress       Address of the callback service\r
-  @param  MakeFirst             If present, will stipulate that the handler is posted\r
-                                to be the first module executed in the dispatch table.\r
-  @param  MakeLast              If present, will stipulate that the handler is posted\r
-                                to be last executed in the dispatch table.\r
+  @param  SmmImageHandle        Handle of the callback service.\r
+  @param  CallbackAddress       Address of the callback service.\r
+  @param  MakeLast              If present, will stipulate that the handler is posted to \r
+                                be executed last in the dispatch table.\r
   @param  FloatingPointSave     This is an optional parameter which informs the\r
                                 EFI_SMM_ACCESS_PROTOCOL Driver core if it needs to save\r
                                 the floating point register state. If any of the handlers\r
@@ -177,19 +171,18 @@ EFI_STATUS
   @retval EFI_SUCCESS           The operation was successful\r
   @retval EFI_OUT_OF_RESOURCES  Not enough space in the dispatch queue\r
   @retval EFI_UNSUPPORTED       In runtime.\r
-  @retval EFI_UNSUPPORTED       Not in SMM.\r
+  @retval EFI_UNSUPPORTED       The caller is not in SMM.\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_CALLBACK_SERVICE) (\r
+(EFIAPI *EFI_SMM_CALLBACK_SERVICE)(\r
   IN EFI_SMM_BASE_PROTOCOL                            *This,\r
   IN EFI_HANDLE                                       SmmImageHandle,\r
   IN EFI_SMM_CALLBACK_ENTRY_POINT                     CallbackAddress,\r
   IN BOOLEAN                                          MakeLast OPTIONAL,\r
   IN BOOLEAN                                          FloatingPointSave OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   The SmmAllocatePool() function allocates a memory region of Size bytes from memory of\r
@@ -200,7 +193,9 @@ EFI_STATUS
   @param  This                  Protocol instance pointer.\r
   @param  PoolType              The type of pool to allocate.\r
                                 The only supported type is EfiRuntimeServicesData;\r
-                                the interface will internally map this runtime request to SMRAM.\r
+                                the interface will internally map this runtime request to \r
+                                SMRAM for IA-32 and leave as this type for the Itanium \r
+                                processor family. Other types can be ignored.\r
   @param  Size                  The number of bytes to allocate from the pool.\r
   @param  Buffer                A pointer to a pointer to the allocated buffer if the call\r
                                 succeeds; undefined otherwise.\r
@@ -213,13 +208,12 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_ALLOCATE_POOL) (\r
+(EFIAPI *EFI_SMM_ALLOCATE_POOL)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   IN EFI_MEMORY_TYPE                PoolType,\r
   IN UINTN                          Size,\r
   OUT VOID                          **Buffer\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   The SmmFreePool() function returns the memory specified by Buffer to the system.\r
@@ -236,11 +230,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_FREE_POOL) (\r
+(EFIAPI *EFI_SMM_FREE_POOL)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   IN VOID                           *Buffer\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   This routine tells caller if execution context is SMM or not.\r
@@ -253,11 +246,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_INSIDE_OUT) (\r
+(EFIAPI *EFI_SMM_INSIDE_OUT)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   OUT BOOLEAN                       *InSmm\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   The GetSmstLocation() function returns the locatin of the System Management\r
@@ -275,11 +267,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SMM_GET_SMST_LOCATION) (\r
+(EFIAPI *EFI_SMM_GET_SMST_LOCATION)(\r
   IN EFI_SMM_BASE_PROTOCOL          *This,\r
   IN OUT EFI_SMM_SYSTEM_TABLE       **Smst\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   @par Protocol Description:\r