mirror of https://github.com/acidanthera/audk.git
121 lines
2.9 KiB
C
121 lines
2.9 KiB
C
|
/**
|
||
|
**/
|
||
|
/**
|
||
|
|
||
|
Copyright (c) 2011 - 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
|
||
|
PchReset.h
|
||
|
|
||
|
@brief
|
||
|
PCH Reset Protocol
|
||
|
|
||
|
**/
|
||
|
#ifndef _PCH_RESET_H_
|
||
|
#define _PCH_RESET_H_
|
||
|
|
||
|
|
||
|
//
|
||
|
#define PCH_RESET_PROTOCOL_GUID \
|
||
|
{ \
|
||
|
0xdb63592c, 0xb8cc, 0x44c8, 0x91, 0x8c, 0x51, 0xf5, 0x34, 0x59, 0x8a, 0x5a \
|
||
|
}
|
||
|
#define PCH_RESET_CALLBACK_PROTOCOL_GUID \
|
||
|
{ \
|
||
|
0x3a3300ab, 0xc929, 0x487d, 0xab, 0x34, 0x15, 0x9b, 0xc1, 0x35, 0x62, 0xc0 \
|
||
|
}
|
||
|
extern EFI_GUID gPchResetProtocolGuid;
|
||
|
extern EFI_GUID gPchResetCallbackProtocolGuid;
|
||
|
|
||
|
///
|
||
|
/// Forward reference for ANSI C compatibility
|
||
|
///
|
||
|
typedef struct _PCH_RESET_PROTOCOL PCH_RESET_PROTOCOL;
|
||
|
|
||
|
typedef struct _PCH_RESET_CALLBACK_PROTOCOL PCH_RESET_CALLBACK_PROTOCOL;
|
||
|
|
||
|
///
|
||
|
/// Related Definitions
|
||
|
///
|
||
|
///
|
||
|
/// PCH Reset Types
|
||
|
///
|
||
|
typedef enum {
|
||
|
ColdReset,
|
||
|
WarmReset,
|
||
|
ShutdownReset,
|
||
|
PowerCycleReset,
|
||
|
GlobalReset,
|
||
|
GlobalResetWithEc
|
||
|
} PCH_RESET_TYPE;
|
||
|
|
||
|
///
|
||
|
/// Member functions
|
||
|
///
|
||
|
typedef
|
||
|
EFI_STATUS
|
||
|
(EFIAPI *PCH_RESET) (
|
||
|
IN PCH_RESET_PROTOCOL * This,
|
||
|
IN PCH_RESET_TYPE PchResetType
|
||
|
)
|
||
|
/**
|
||
|
|
||
|
@brief
|
||
|
Execute Pch Reset from the host controller.
|
||
|
|
||
|
@param[in] This Pointer to the PCH_RESET_PROTOCOL instance.
|
||
|
@param[in] PchResetType Pch Reset Types which includes ColdReset, WarmReset, ShutdownReset,
|
||
|
PowerCycleReset, GlobalReset, GlobalResetWithEc
|
||
|
|
||
|
@retval EFI_SUCCESS Successfully completed.
|
||
|
@retval EFI_INVALID_PARAMETER If ResetType is invalid.
|
||
|
|
||
|
**/
|
||
|
;
|
||
|
|
||
|
typedef
|
||
|
EFI_STATUS
|
||
|
(EFIAPI *PCH_RESET_CALLBACK) (
|
||
|
IN PCH_RESET_TYPE PchResetType
|
||
|
)
|
||
|
/**
|
||
|
|
||
|
@brief
|
||
|
Execute call back function for Pch Reset.
|
||
|
|
||
|
@param[in] PchResetType Pch Reset Types which includes PowerCycle, Globalreset.
|
||
|
|
||
|
@retval EFI_SUCCESS The callback function has been done successfully
|
||
|
@retval EFI_NOT_FOUND Failed to find Pch Reset Callback protocol. Or, none of
|
||
|
callback protocol is installed.
|
||
|
@retval Others Do not do any reset from PCH
|
||
|
|
||
|
**/
|
||
|
;
|
||
|
|
||
|
///
|
||
|
/// Interface structure for the Pch Reset Protocol
|
||
|
///
|
||
|
struct _PCH_RESET_PROTOCOL {
|
||
|
PCH_RESET Reset;
|
||
|
};
|
||
|
|
||
|
///
|
||
|
/// PCH_RESET_CALLBACK_PROTOCOL Structure Definition
|
||
|
///
|
||
|
struct _PCH_RESET_CALLBACK_PROTOCOL {
|
||
|
PCH_RESET_CALLBACK ResetCallback;
|
||
|
};
|
||
|
|
||
|
#endif
|