Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		
							
								
								
									
										147
									
								
								MdePkg/Include/Protocol/SmmStandbyButtonDispatch.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								MdePkg/Include/Protocol/SmmStandbyButtonDispatch.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,147 @@ | ||||
| /** @file | ||||
|   This file declares EFI Smm Standby Button Smi Child Protocol | ||||
|  | ||||
|   Copyright (c) 2006, 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          | ||||
|   which 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.              | ||||
|  | ||||
|   Module Name:  SmmStandbyButtonDispatch.h | ||||
|  | ||||
|   @par Revision Reference: | ||||
|   This Protocol is defined in Framework of EFI SMM Core Interface Spec | ||||
|   Version 0.9. | ||||
|  | ||||
| **/ | ||||
|  | ||||
| #ifndef _EFI_SMM_STANDBY_BUTTON_DISPATCH_H_ | ||||
| #define _EFI_SMM_STANDBY_BUTTON_DISPATCH_H_ | ||||
|  | ||||
| // | ||||
| // Global ID for the Standby Button SMI Protocol | ||||
| // | ||||
| #define EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL_GUID \ | ||||
|   { \ | ||||
|     0x78965b98, 0xb0bf, 0x449e, {0x8b, 0x22, 0xd2, 0x91, 0x4e, 0x49, 0x8a, 0x98 } \ | ||||
|   } | ||||
|  | ||||
| typedef struct _EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL  EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL; | ||||
|  | ||||
| // | ||||
| // Related Definitions | ||||
| // | ||||
| // | ||||
| // Standby Button. Example, Use for changing LEDs before ACPI OS is on. | ||||
| //    - DXE/BDS Phase | ||||
| //    - OS Install Phase | ||||
| // | ||||
| typedef enum { | ||||
|   Entry, | ||||
|   Exit | ||||
| } EFI_STANDBY_BUTTON_PHASE; | ||||
|  | ||||
| typedef struct { | ||||
|   EFI_STANDBY_BUTTON_PHASE  Phase; | ||||
| } EFI_SMM_STANDBY_BUTTON_DISPATCH_CONTEXT; | ||||
|  | ||||
| // | ||||
| // Member functions | ||||
| // | ||||
| /** | ||||
|   Dispatch function for a Standby Button SMI handler. | ||||
|  | ||||
|   @param  DispatchHandle Handle of this dispatch function. | ||||
|   @param  DispatchContext Pointer to the dispatch function's context. | ||||
|   The DispatchContext fields are filled in | ||||
|   by the dispatching driver prior to | ||||
|   invoking this dispatch function. | ||||
|  | ||||
|   @return Nothing | ||||
|  | ||||
| **/ | ||||
| typedef | ||||
| VOID | ||||
| (EFIAPI *EFI_SMM_STANDBY_BUTTON_DISPATCH) ( | ||||
|   IN  EFI_HANDLE                                DispatchHandle, | ||||
|   IN  EFI_SMM_STANDBY_BUTTON_DISPATCH_CONTEXT   *DispatchContext | ||||
|   ); | ||||
|  | ||||
| /** | ||||
|   Register a child SMI source dispatch function with a parent SMM driver | ||||
|  | ||||
|   @param  This Protocol instance pointer. | ||||
|   @param  DispatchFunction Pointer to dispatch function to be invoked for | ||||
|   this SMI source | ||||
|   @param  DispatchContext Pointer to the dispatch function's context. | ||||
|   The caller fills this context in before calling | ||||
|   the register function to indicate to the register | ||||
|   function the Standby Button SMI phase for which the dispatch | ||||
|   function should be invoked. | ||||
|   @param  DispatchHandle Handle of dispatch function, for when interfacing | ||||
|   with the parent Sx state SMM driver. | ||||
|  | ||||
|   @retval  EFI_SUCCESS The dispatch function has been successfully | ||||
|   registered and the SMI source has been enabled. | ||||
|   @retval  EFI_DEVICE_ERROR The driver was unable to enable the SMI source. | ||||
|   @retval  EFI_OUT_OF_RESOURCES Not enough memory (system or SMM) to manage this | ||||
|   child. | ||||
|   @retval  EFI_INVALID_PARAMETER DispatchContext is invalid. The Standby Button  SMI | ||||
|   phase is not within valid range. | ||||
|  | ||||
| **/ | ||||
| typedef | ||||
| EFI_STATUS | ||||
| (EFIAPI *EFI_SMM_STANDBY_BUTTON_REGISTER) ( | ||||
|   IN EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL           *This, | ||||
|   IN  EFI_SMM_STANDBY_BUTTON_DISPATCH                   DispatchFunction, | ||||
|   IN  EFI_SMM_STANDBY_BUTTON_DISPATCH_CONTEXT           *DispatchContext, | ||||
|   OUT EFI_HANDLE                                        *DispatchHandle | ||||
|   ); | ||||
|  | ||||
| /** | ||||
|   Unregister a child SMI source dispatch function with a parent SMM driver | ||||
|  | ||||
|   @param  This Protocol instance pointer. | ||||
|   @param  DispatchHandle Handle of dispatch function to deregister. | ||||
|  | ||||
|   @retval  EFI_SUCCESS The dispatch function has been successfully | ||||
|   unregistered and the SMI source has been disabled | ||||
|   if there are no other registered child dispatch | ||||
|   functions for this SMI source. | ||||
|   @retval  EFI_INVALID_PARAMETER Handle is invalid. | ||||
|   @retval  other TBD | ||||
|  | ||||
| **/ | ||||
| typedef | ||||
| EFI_STATUS | ||||
| (EFIAPI *EFI_SMM_STANDBY_BUTTON_UNREGISTER) ( | ||||
|   IN EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL           *This, | ||||
|   IN  EFI_HANDLE                                        DispatchHandle | ||||
|   ); | ||||
|  | ||||
| // | ||||
| // Interface structure for the SMM Standby Button SMI Dispatch Protocol | ||||
| // | ||||
| /** | ||||
|   @par Protocol Description: | ||||
|   Provides the parent dispatch service for the standby button SMI source generator. | ||||
|  | ||||
|   @param Register | ||||
|   Installs a child service to be dispatched by this protocol. | ||||
|  | ||||
|   @param UnRegister | ||||
|   Removes a child service dispatched by this protocol. | ||||
|  | ||||
| **/ | ||||
| struct _EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL { | ||||
|   EFI_SMM_STANDBY_BUTTON_REGISTER   Register; | ||||
|   EFI_SMM_STANDBY_BUTTON_UNREGISTER UnRegister; | ||||
| }; | ||||
|  | ||||
| extern EFI_GUID gEfiSmmStandbyButtonDispatchProtocolGuid; | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user