+++ /dev/null
-/**\r
-**/\r
-/**\r
-\r
-Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-\r
-\r
- @file\r
- SmmIchnDispatchEx.h\r
-\r
- @brief\r
- SmmIchnDispatch Extended Protocol\r
-\r
-**/\r
-#ifndef _EFI_SMM_ICHN_DISPATCH_EX_H_\r
-#define _EFI_SMM_ICHN_DISPATCH_EX_H_\r
-\r
-#ifdef ECP_FLAG\r
-#include <Protocol/SmmIchnDispatch/SmmIchnDispatch.h>\r
-#else\r
-#include <Protocol/SmmIchnDispatch.h>\r
-#endif\r
-\r
-#define EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL_GUID \\r
- { \\r
- 0x3920405b, 0xc897, 0x44da, 0x88, 0xf3, 0x4c, 0x49, 0x8a, 0x6f, 0xf7, 0x36 \\r
- }\r
-extern EFI_GUID gEfiSmmIchnDispatchExProtocolGuid;\r
-\r
-///\r
-/// Forward reference for ANSI C compatibility\r
-///\r
-typedef struct _EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL;\r
-\r
-///\r
-/// Related Definitions\r
-///\r
-///\r
-/// Ichn Dispatch Extended Types\r
-///\r
-typedef enum {\r
- IchnExPciExpress = NUM_ICHN_TYPES + 1,\r
- IchnExMonitor,\r
- IchnExSpi,\r
- IchnExQRT,\r
- IchnExGpioUnlock,\r
- IchnExTmrOverflow,\r
- IchnExPcie0Hotplug,\r
- IchnExPcie1Hotplug,\r
- IchnExPcie2Hotplug,\r
- IchnExPcie3Hotplug,\r
- IchnExPcie0LinkActive,\r
- IchnExPcie1LinkActive,\r
- IchnExPcie2LinkActive,\r
- IchnExPcie3LinkActive,\r
- ///\r
- /// INSERT NEW ITEMS JUST BEFORE THIS LINE\r
- ///\r
- IchnExTypeMAX /// the maximum number of items in this enumeration\r
-} EFI_SMM_ICHN_EX_SMI_TYPE;\r
-\r
-typedef struct {\r
- EFI_SMM_ICHN_EX_SMI_TYPE Type;\r
-} EFI_SMM_ICHN_DISPATCH_EX_CONTEXT;\r
-\r
-///\r
-/// Member functions\r
-///\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_SMM_ICHN_DISPATCH_EX) (\r
- IN EFI_HANDLE DispatchHandle,\r
- IN EFI_SMM_ICHN_DISPATCH_EX_CONTEXT * DispatchContext\r
- );\r
-\r
-/**\r
-\r
- @brief\r
- Dispatch function for a ICH n Extended specific SMI handler.\r
-\r
- @param[in] DispatchHandle Handle of this dispatch function.\r
- @param[in] DispatchContext Pointer to the dispatch function's context.\r
- The DispatchContext fields are filled in\r
- by the dispatching driver prior to\r
- invoking this dispatch function.\r
-\r
- @retval None\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_ICHN_EX_REGISTER) (\r
- IN EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL * This,\r
- IN EFI_SMM_ICHN_DISPATCH_EX DispatchFunction,\r
- IN EFI_SMM_ICHN_DISPATCH_EX_CONTEXT * DispatchContext,\r
- OUT EFI_HANDLE * DispatchHandle\r
- );\r
-\r
-/**\r
-\r
- @brief\r
- Register a child SMI source dispatch function with a parent SMM driver\r
-\r
- @param[in] This Protocol instance pointer.\r
- @param[in] DispatchFunction Pointer to dispatch function to be invoked for\r
- this SMI source\r
- @param[in] 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 the ICHN SMI source for which the dispatch\r
- function should be invoked.\r
- @param[in] DispatchHandle Handle of dispatch function, for when interfacing\r
- with the parent SMM driver.\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 driver was unable to 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 ICHN input value\r
- is not within valid range.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_ICHN_EX_UNREGISTER) (\r
- IN EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL * This,\r
- IN EFI_HANDLE DispatchHandle\r
- );\r
-\r
-/**\r
-\r
- @brief\r
- Unregister a child SMI source dispatch function with a parent SMM driver\r
-\r
- @param[in] This Protocol instance pointer.\r
- @param[in] DispatchHandle Handle of dispatch function to deregister.\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 Others TBD\r
-\r
-**/\r
-\r
-///\r
-/// Interface structure for the SMM Ich n specific SMI Dispatch Protocol\r
-///\r
-typedef struct _EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL {\r
- EFI_SMM_ICHN_EX_REGISTER Register;\r
- EFI_SMM_ICHN_EX_UNREGISTER UnRegister;\r
-};\r
-\r
-#endif\r