/** @file\r
Provides the parent dispatch service for a given SMI source generator.\r
\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- 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: SmmSwDispatch.h\r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+ \r
+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
@par Revision Reference:\r
- This Protocol is defined in Framework of EFI SMM Core Interface Spec\r
+ This Protocol is defined in Framework for EFI SMM Core Interface Spec\r
Version 0.9.\r
\r
**/\r
#ifndef _EFI_SMM_SW_DISPATCH_H_\r
#define _EFI_SMM_SW_DISPATCH_H_\r
\r
-#include <PiDxe.h>\r
\r
//\r
// Global ID for the SW SMI Protocol\r
/**\r
Dispatch function for a Software SMI handler.\r
\r
- @param DispatchHandle Handle of this dispatch function.\r
- @param DispatchContext Pointer to the dispatch function's context.\r
+ @param DispatchHandle The handle of this dispatch function.\r
+ @param DispatchContext The pointer to the dispatch function's context.\r
The SwSmiInputValue field is filled in\r
by the software dispatch driver prior to\r
invoking this dispatch function.\r
);\r
\r
/**\r
- Register a child SMI source dispatch function with a parent SMM driver\r
+ Register a child SMI source dispatch function with a parent SMM driver.\r
\r
- @param This Pointer to the EFI_SMM_SW_DISPATCH_PROTOCOL instance.\r
- @param DispatchFunction Function to install.\r
- @param DispatchContext Pointer to the dispatch function's context.\r
- The caller fills this context in before calling\r
- the register function to indicate to the register\r
- function which Software SMI input value the\r
- dispatch function should be invoked for.\r
- @param DispatchHandle Handle generated by the dispatcher to track the function instance.\r
+ @param This The pointer to the EFI_SMM_SW_DISPATCH_PROTOCOL instance.\r
+ @param DispatchFunction The function to install.\r
+ @param DispatchContext The pointer to the dispatch function's context.\r
+ Indicates to the register\r
+ function the Software SMI input value for which \r
+ to invoke the dispatch function.\r
+ @param DispatchHandle The handle generated by the dispatcher to track \r
+ the function instance.\r
\r
@retval EFI_SUCCESS The dispatch function has been successfully\r
registered and the SMI source has been enabled.\r
- @retval EFI_DEVICE_ERROR The SW driver was unable to enable the SMI source.\r
+ @retval EFI_DEVICE_ERROR The SW driver could not enable the SMI source.\r
@retval EFI_OUT_OF_RESOURCES Not enough memory (system or SMM) to manage this\r
child.\r
@retval EFI_INVALID_PARAMETER DispatchContext is invalid. The SW SMI input value\r
/**\r
Unregister a child SMI source dispatch function with a parent SMM driver\r
\r
- @param This Pointer to the EFI_SMM_SW_DISPATCH_PROTOCOL instance.\r
- @param DispatchHandle Handle of the service to remove.\r
+ @param This The pointer to the EFI_SMM_SW_DISPATCH_PROTOCOL instance.\r
+ @param DispatchHandle The handle of the service to remove.\r
\r
@retval EFI_SUCCESS The dispatch function has been successfully\r
unregistered and the SMI source has been disabled\r
if there are no other registered child dispatch\r
functions for this SMI source.\r
- @retval EFI_INVALID_PARAMETER Handle is invalid.\r
+ @retval EFI_INVALID_PARAMETER The handle is invalid.\r
\r
**/\r
typedef\r
IN EFI_HANDLE DispatchHandle\r
);\r
\r
+\r
//\r
// Interface structure for the SMM Software SMI Dispatch Protocol\r
//\r
/**\r
- @par Protocol Description:\r
Provides the parent dispatch service for a given SMI source generator.\r
-\r
- @param Register\r
- Installs a child service to be dispatched by this protocol.\r
-\r
- @param UnRegister\r
- Removes a child service dispatched by this protocol.\r
-\r
- @param MaximumSwiValue\r
- A read-only field that describes the maximum value that can be used\r
- in the EFI_SMM_SW_DISPATCH_PROTOCOL.Register() service.\r
-\r
**/\r
+///\r
+/// Inconsistent with the specification here:\r
+/// In The Framework specification SmmCis, this definition is named as \r
+/// _EFI_SMM_ICHN_DISPATCH_PROTOCOL by mistake.\r
+///\r
struct _EFI_SMM_SW_DISPATCH_PROTOCOL {\r
+ ///\r
+ /// Installs a child service to be dispatched by this protocol.\r
+ ///\r
EFI_SMM_SW_REGISTER Register;\r
+\r
+ ///\r
+ /// Removes a child service dispatched by this protocol.\r
+ ///\r
EFI_SMM_SW_UNREGISTER UnRegister;\r
+\r
+ ///\r
+ /// A read-only field that describes the maximum value that can be used\r
+ /// in the EFI_SMM_SW_DISPATCH_PROTOCOL.Register() service.\r
+ ///\r
UINTN MaximumSwiValue;\r
};\r
\r