https://svn.code.sf.net/p/edk2/code/trunk/edk2/, which are for MinnowBoard MAX open source project. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Wei <david.wei@intel.com> Reviewed-by: Mike Wu <mike.wu@intel.com> Reviewed-by: Hot Tian <hot.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16599 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			130 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
| **/
 | |
| /**
 | |
| 
 | |
| Copyright (c) 2012  - 2014, 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 that 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.
 | |
| 
 | |
| 
 | |
| 
 | |
|   @file
 | |
|   ActiveBios.h
 | |
| 
 | |
|   @brief
 | |
|   This protocol is used to report and control what BIOS is mapped to the
 | |
|   BIOS address space anchored at 4GB boundary.
 | |
| 
 | |
|   This protocol is EFI compatible.
 | |
| 
 | |
|   E.G. For current generation ICH, the 4GB-16MB to 4GB range can be mapped
 | |
|   to PCI, SPI, or FWH.
 | |
| 
 | |
| **/
 | |
| #ifndef _EFI_ACTIVE_BIOS_PROTOCOL_H_
 | |
| #define _EFI_ACTIVE_BIOS_PROTOCOL_H_
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| //
 | |
| #define EFI_ACTIVE_BIOS_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0xebbe2d1b, 0x1647, 0x4bda, 0xab, 0x9a, 0x78, 0x63, 0xe3, 0x96, 0xd4, 0x1a \
 | |
|   }
 | |
| extern EFI_GUID                           gEfiActiveBiosProtocolGuid;
 | |
| 
 | |
| ///
 | |
| /// Forward reference for ANSI C compatibility
 | |
| ///
 | |
| typedef struct _EFI_ACTIVE_BIOS_PROTOCOL  EFI_ACTIVE_BIOS_PROTOCOL;
 | |
| 
 | |
| ///
 | |
| /// Protocol definitions
 | |
| ///
 | |
| typedef enum {
 | |
|   ActiveBiosStateSpi,
 | |
|   ActiveBiosStatePci,   /// Obsolete since VLV
 | |
|   ActiveBiosStateLpc,
 | |
|   ActiveBiosStateMax
 | |
| } EFI_ACTIVE_BIOS_STATE;
 | |
| 
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ACTIVE_BIOS_SET_ACTIVE_BIOS_STATE) (
 | |
|   IN EFI_ACTIVE_BIOS_PROTOCOL     * This,
 | |
|   IN EFI_ACTIVE_BIOS_STATE        DesiredState,
 | |
|   IN UINTN                        Key
 | |
|   )
 | |
| /**
 | |
| 
 | |
|   @brief
 | |
|   Change the current active BIOS settings to the requested state.
 | |
|   The caller is responsible for requesting a supported state from
 | |
|   the EFI_ACTIVE_BIOS_STATE selections.
 | |
|   This will fail if someone has locked the interface and the correct key is
 | |
|   not provided.
 | |
| 
 | |
|   @param[in] This                 Pointer to the EFI_ACTIVE_BIOS_PROTOCOL instance.
 | |
|   @param[in] DesiredState         The requested state to configure the system for.
 | |
|   @param[in] Key                  If the interface is locked, Key must be the Key
 | |
|                                   returned from the LockState function call.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The function completed successfully
 | |
|   @retval EFI_ACCESS_DENIED       The interface is currently locked.
 | |
| 
 | |
| **/
 | |
| ;
 | |
| 
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_ACTIVE_BIOS_LOCK_ACTIVE_BIOS_STATE) (
 | |
|   IN     EFI_ACTIVE_BIOS_PROTOCOL   * This,
 | |
|   IN     BOOLEAN                    Lock,
 | |
|   IN OUT UINTN                      *Key
 | |
|   );
 | |
| 
 | |
| /**
 | |
| 
 | |
|   @brief
 | |
|   Lock the current active BIOS state from further changes.  This allows a
 | |
|   caller to implement a critical section.  This is optionally supported
 | |
|   functionality.  Size conscious implementations may choose to require
 | |
|   callers cooperate without support from this protocol.
 | |
| 
 | |
|   @param[in] This                 Pointer to the EFI_ACTIVE_BIOS_PROTOCOL instance.
 | |
|   @param[in] Lock                 TRUE to lock the current state, FALSE to unlock.
 | |
|   @param[in] Key                  If Lock is TRUE, then a key will be returned.  If
 | |
|                                   Lock is FALSE, the key returned from the prior call
 | |
|                                   to lock the protocol must be provided to unlock the
 | |
|                                   protocol.  The value of Key is undefined except that
 | |
|                                   it cannot be 0.
 | |
| 
 | |
|   @retval EFI_SUCCESS             Command succeed.
 | |
|   @exception EFI_UNSUPPORTED      The function is not supported.
 | |
|   @retval EFI_ACCESS_DENIED       The interface is currently locked.
 | |
|   @retval EFI_DEVICE_ERROR        Device error, command aborts abnormally.
 | |
| 
 | |
| **/
 | |
| 
 | |
| ///
 | |
| /// Protocol definition
 | |
| ///
 | |
| /// Note that some functions are optional.  This means that they may be NULL.
 | |
| /// Caller is required to verify that an optional function is defined by checking
 | |
| /// that the value is not NULL.
 | |
| ///
 | |
| struct _EFI_ACTIVE_BIOS_PROTOCOL {
 | |
|   EFI_ACTIVE_BIOS_STATE                   State;
 | |
|   EFI_ACTIVE_BIOS_SET_ACTIVE_BIOS_STATE   SetState;
 | |
|   EFI_ACTIVE_BIOS_LOCK_ACTIVE_BIOS_STATE  LockState;
 | |
| };
 | |
| 
 | |
| #endif
 |