mirror of https://github.com/acidanthera/audk.git
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
|