+++ /dev/null
-/** @file\r
- This file declares the Smm Gpi Smi Child Protocol.\r
-\r
- The EFI_SMM_GPI_DISPATCH_PROTOCOL is defined in Framework of EFI SMM Core Interface Spec\r
- Version 0.9. It provides the ability to install child handlers for the given event types.\r
- Several inputs can be enabled. This purpose of this interface is to generate an\r
- SMI in response to any of these inputs having a true value provided.\r
-\r
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _SMM_GPI_DISPATCH_H_\r
-#define _SMM_GPI_DISPATCH_H_\r
-\r
-\r
-//\r
-// Global ID for the GPI SMI Protocol\r
-//\r
-#define EFI_SMM_GPI_DISPATCH_PROTOCOL_GUID \\r
- { \\r
- 0xe0744b81, 0x9513, 0x49cd, {0x8c, 0xea, 0xe9, 0x24, 0x5e, 0x70, 0x39, 0xda } \\r
- }\r
-\r
-typedef struct _EFI_SMM_GPI_DISPATCH_PROTOCOL EFI_SMM_GPI_DISPATCH_PROTOCOL;\r
-\r
-//\r
-// Related Definitions\r
-//\r
-\r
-//\r
-// GpiMask is a bit mask of 32 possible general purpose inputs that can generate\r
-// an SMI. Bit 0 corresponds to logical GPI[0], 1 corresponds to logical GPI[1], and so on.\r
-//\r
-// The logical GPI index to physical pin on device is described by the GPI device name\r
-// found on the same handle as the GpiSmi child dispatch protocol. The GPI device name\r
-// is defined as protocol with a GUID name and NULL protocol pointer.\r
-//\r
-typedef struct {\r
- UINTN GpiNum;\r
-} EFI_SMM_GPI_DISPATCH_CONTEXT;\r
-\r
-//\r
-// Member functions\r
-//\r
-\r
-/**\r
- Dispatch function for a GPI SMI handler.\r
-\r
- @param DispatchHandle The handle of this dispatch function.\r
- @param DispatchContext The pointer to the dispatch function's context.\r
- The DispatchContext fields are filled in by the\r
- dispatching driver prior to invoking this dispatch\r
- function.\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_SMM_GPI_DISPATCH)(\r
- IN EFI_HANDLE DispatchHandle,\r
- IN EFI_SMM_GPI_DISPATCH_CONTEXT *DispatchContext\r
- );\r
-\r
-/**\r
- Register a child SMI source dispatch function with a parent SMM driver\r
-\r
- @param This The pointer to the EFI_SMM_GPI_DISPATCH_PROTOCOL instance.\r
- @param DispatchFunction Function to install.\r
- @param DispatchContext The pointer to the dispatch function's context.\r
- Indicates to the register\r
- function the GPI(s) for which the dispatch function\r
- should be invoked.\r
- @param DispatchHandle The handle generated by the dispatcher to track the\r
- 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 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 GPI input value\r
- is not within valid range.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_GPI_REGISTER)(\r
- IN EFI_SMM_GPI_DISPATCH_PROTOCOL *This,\r
- IN EFI_SMM_GPI_DISPATCH DispatchFunction,\r
- IN EFI_SMM_GPI_DISPATCH_CONTEXT *DispatchContext,\r
- OUT EFI_HANDLE *DispatchHandle\r
- );\r
-\r
-/**\r
- Unregisters a General Purpose Input (GPI) service.\r
-\r
- @param This The pointer to the EFI_SMM_GPI_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 DispatchHandle is invalid.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_GPI_UNREGISTER)(\r
- IN EFI_SMM_GPI_DISPATCH_PROTOCOL *This,\r
- IN EFI_HANDLE DispatchHandle\r
- );\r
-\r
-//\r
-// Interface structure for the SMM GPI SMI Dispatch Protocol\r
-//\r
-struct _EFI_SMM_GPI_DISPATCH_PROTOCOL {\r
- EFI_SMM_GPI_REGISTER Register;\r
- EFI_SMM_GPI_UNREGISTER UnRegister;\r
-\r
- ///\r
- /// Denotes the maximum value of inputs that can have handlers attached.\r
- ///\r
- UINTN NumSupportedGpis;\r
-};\r
-\r
-extern EFI_GUID gEfiSmmGpiDispatchProtocolGuid;\r
-\r
-#endif\r
-\r