mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 09:12:31 +00:00 
			
		
		
		
	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
 |